using Infrastructure.Attribute; using DOAN.Service.Mobile.IService; using DOAN.Model.MES.mm; using DOAN.Model.MES.base_; using DOAN.Model.MES.product; using DOAN.Model.Mobile.Dto; using DOAN.Common.Mobile; using Mapster; using System; using DOAN.Model.MES.product.Dto; namespace DOAN.Service.Mobile { [AppService(ServiceType = typeof(IPreparationTaskService), ServiceLifetime = LifeTime.Transient)] public class PreparationTaskService : BaseService, IPreparationTaskService { public List GetLines() { return Context.Queryable().Where(it => it.Status == 1).ToList(); } public List GetWorkOrderList(DateTime HandleDate, string route_code) { HandleDate = HandleDate.ToLocalTime().Date; return Context.Queryable().Where(it => it.WorkorderDate == HandleDate) .Where(it => it.LineCode == route_code).ToList(); } public MaterialModel ParseMaterialCode(string materialCode) { //1 解析原码 string materialCode_true = null; materialCode_true = ParselabelHelper.ParseLabel01(materialCode); //1 返回 物料详情 BaseMaterialList baseMaterial = Context.Queryable().Where(it => it.Code == materialCode_true).First(); TypeAdapterConfig.NewConfig() .Map(dest => dest.MaterialName, (src) => src.Name) .Map(dest => dest.Partnumber, (src) => src.Code) .Map(dest => dest.Batchnumber, (src) => "") .Map(dest => dest.quantity, (src) => 0) .Map(dest => dest.Code, (src) => "") .Map(dest => dest.Color, (src) => src.Color) .Map(dest => dest.Specification, (src) => src.Specification) .Map(dest => dest.Unit, (src) => src.Unit) .Map(dest => dest.Description, (src) => src.Description); return baseMaterial.Adapt(); } public List GetWorkorderTask(string workorder) { return Context.Queryable().Where(it => it.FkWorkorder == workorder).OrderBy(it => it.SerialNum).ToList(); } public List GetTaskInfos(string task_code) { return Context.Queryable().Where(it => it.FkTaskCode == task_code).ToList(); } public int GenerateIngredientTask(IngredientTaskRequestForm form) { int result = 0; // 生成任务 MmPreparationTask Max_task = Context.Queryable() .Where(it => it.FkWorkorder == form.workorder) .OrderByDescending(it => it.SerialNum) .First(); int SerialNumMax = 0; if (Max_task!=null) { SerialNumMax = Max_task.SerialNum; } MmPreparationTask newMmPreparationTask = new MmPreparationTask(); newMmPreparationTask.Id = XueHua; newMmPreparationTask.SerialNum = SerialNumMax + 1; newMmPreparationTask.TaskCode = form.workorder + "_" + newMmPreparationTask.SerialNum; newMmPreparationTask.FkWorkorder = form.workorder; newMmPreparationTask.PreparationStatus = 2; newMmPreparationTask.CreatedBy = "PDA"; newMmPreparationTask.CreatedTime = DateTime.Now; List TaskDetailsinserted = new List(); //生成配料任务详情 if (form.Ingredient_task != null && form.Ingredient_task.Count() > 0) { foreach (var item in form.Ingredient_task) { MmTaskMaterialInfo materialInfo = new MmTaskMaterialInfo(); materialInfo.Id = XueHua; materialInfo.FkTaskCode = newMmPreparationTask.TaskCode; materialInfo.MaterialCode = item.MaterialCode; materialInfo.MaterialName = item.MaterialName; materialInfo.Specification = item.Specification; materialInfo.Quantity = item.Quantity; materialInfo.Unit = item.Unit; materialInfo.CreatedBy = "PDA"; materialInfo.CreatedTime = DateTime.Now; TaskDetailsinserted.Add(materialInfo); } } UseTran2(() => { Context.Insertable(TaskDetailsinserted).ExecuteCommand(); result = Context.Insertable(newMmPreparationTask).ExecuteCommand(); }); return result; } public List SearchTaskByLine(string lineCode, DateTime hadleDate) { return Context.Queryable().Where(it => it.LineCode == lineCode) .Where(it => it.TaskDate == hadleDate).ToList(); } public List GetTaskInfosByLine(string task_code) { return Context.Queryable().Where(it => it.FkTaskCode == task_code).ToList(); } public int GenerateIngredientTaskByline(IngredientTaskRequestForm2 form) { int result = 0; // 生成任务 form.HandleDate = form.HandleDate.ToLocalTime().Date; MmPreparationTaskLine Max_task = Context.Queryable() .Where(it => it.LineCode == form.lineCode) .Where(it => it.TaskDate == form.HandleDate) .OrderByDescending(it => it.SerialNum) .First(); int SerialNumMax = 0; if (Max_task != null) { SerialNumMax = Max_task.SerialNum.Value; } MmPreparationTaskLine newMmPreparationTask = new MmPreparationTaskLine(); newMmPreparationTask.Id = XueHua; newMmPreparationTask.SerialNum = SerialNumMax + 1; newMmPreparationTask.TaskCode = form.HandleDate.ToString("yyyyMMdd") + "_" +form.lineCode+ "_" + newMmPreparationTask.SerialNum; newMmPreparationTask.LineCode = form.lineCode; newMmPreparationTask.TaskDate = form.HandleDate; newMmPreparationTask.PreparationStatus = 2; newMmPreparationTask.CreatedBy = "PDA"; newMmPreparationTask.CreatedTime = DateTime.Now; List TaskDetailsinserted = new List(); //生成配料任务详情 if (form.Ingredient_task != null && form.Ingredient_task.Count() > 0) { foreach (var item in form.Ingredient_task) { MmTaskMaterialInfoByLine materialInfo = new MmTaskMaterialInfoByLine(); materialInfo.Id = XueHua; materialInfo.FkTaskCode = newMmPreparationTask.TaskCode; materialInfo.MaterialCode = item.MaterialCode; materialInfo.MaterialName = item.MaterialName; materialInfo.Specification = item.Specification; materialInfo.Quantity = item.Quantity; materialInfo.Unit = item.Unit; materialInfo.CreatedBy = "PDA"; materialInfo.CreatedTime = DateTime.Now; TaskDetailsinserted.Add(materialInfo); } } UseTran2(() => { Context.Insertable(TaskDetailsinserted).ExecuteCommand(); result = Context.Insertable(newMmPreparationTask).ExecuteCommand(); }); return result; } } }