From 4a88b242bb1bf594ecddb8959da4aa6e53a13e04 Mon Sep 17 00:00:00 2001 From: zhou keda <1315948824@qq.com> Date: Mon, 12 Aug 2024 11:50:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E9=83=A8=E4=BB=B6=E6=9C=80=E7=BB=88?= =?UTF-8?q?=E6=A3=80=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IPrdMoTaskService.cs | 2 +- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 93 +++++++++---------- .../Tnb.ProductionMgr/TimeWorkService.cs | 6 +- .../Enums/EnumTriggerType.cs | 4 +- QcMgr/Tnb.QcMgr/QcCheckPlanService.cs | 8 ++ .../Entity/WmsCarryH.cs | 2 +- 6 files changed, 62 insertions(+), 53 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs index dba4f2aa..af11e706 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs @@ -51,7 +51,7 @@ namespace Tnb.ProductionMgr.Interfaces /// Task GetLabelInfoByStationId(MarkingLabelInput input); - Task PrdReport(PrdReportCrInput input); + Task PrdReport(PrdReportCrInput input); } } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index fc82ab0c..19bb52d2 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1621,7 +1621,7 @@ namespace Tnb.ProductionMgr ///
} /// [HttpPost] - public async Task PrdReport(PrdReportCrInput input) + public async Task PrdReport(PrdReportCrInput input) { await prdreportSemaphore.WaitAsync(); try @@ -1723,21 +1723,8 @@ namespace Tnb.ProductionMgr report.material_box_code = input.material_box_code; if (prdMoTask.schedule_type == 2) { - // if (dic.TryGetValue(prdMoTask.workline_id, out string value)) - // { - // materialBoxCode = await _redisData.GetHash("value", "WBZX_x1_take_tp"); - // if (materialBoxCode == null || materialBoxCode.IsEmpty()) - // { - // throw Oops.Bah("托盘条码信息未空"); - // } - report.material_box_code = input.material_box_code; - // } - // else - // { - // throw Oops.Bah("未找到对应产线"); - // } + report.material_box_code = input.material_box_code; - // report.warehouse_id = WmsWareHouseConst.WAREHOUSE_JXK_ID; report.warehouse_id = WmsWareHouseConst.WAREHOUSE_DMJC_ID; Dictionary worklineWarehouseDic = new Dictionary() { @@ -1804,22 +1791,52 @@ namespace Tnb.ProductionMgr report.unit_id = prdMoTask.unit_id; report.process_id = mbomProcess?.process_id ?? ""; - row = await db.Insertable(report).ExecuteCommandAsync(); + + WmsCarryH wmsCarryH = await db.Queryable().SingleAsync((x => x.carry_code == materialBoxCode)); + if (wmsCarryH == null) + throw Oops.Bah($"未找到{materialBoxCode}载具"); + if (wmsCarryH.carry_status == ((int)EnumCarryStatus.占用).ToString()) + { + throw Oops.Bah($"提报失败,载具已绑定"); + } + List wmsCarryCodes = await db.Queryable().Where(x=>x.carry_id==wmsCarryH.id).ToListAsync(); + if (wmsCarryCodes != null && wmsCarryCodes.Count > 0) + { + Log.Error($"载具{materialBoxCode}状态为{wmsCarryH.carry_status},但有条码{JsonConvert.SerializeObject(wmsCarryCodes)}"); + throw Oops.Bah($"提报失败,载具异常"); + } + + #region 质检模块 //质检模块 - // TriggerPlanEntity entity = new() - // { - // materialid = prdMoTask.material_id, - // processid = prdMoTask.process_id, - // workid = prdMoTask.workstation_id - // }; - // int? reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty; - // int? scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty; - // entity.oldpronum = reported + scrap; - // entity.newpronum = input.reported_qty; - // entity.triggerevent = EnumTriggerEvent.生产检定量; - // await _qcCheckPlanService.CreateTask(entity); + + if (wmsCarryH.is_check == 0) + { + TriggerPlanEntity entity = new() + { + materialid = prdMoTask.material_id, + processid = prdMoTask.process_id, + workid = prdMoTask.workstation_id + }; + int? reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty; + int? scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty; + entity.oldpronum = reported + scrap; + entity.newpronum = input.reported_qty; + // entity.triggerevent = EnumTriggerEvent.生产检定量; + entity.triggerevent = EnumTriggerEvent.零部件最终检验事件; + await _qcCheckPlanService.CreateTask(entity); + await _db.Ado.CommitTranAsync(); + return "生成质检任务"; + }else if (wmsCarryH.is_check==1) + { + return "检验中,请稍后提报"; + } + else + { + row = await db.Insertable(report).ExecuteCommandAsync(); + } + #endregion _ = prdMoTask.reported_work_qty == null ? await db.Updateable() @@ -2012,24 +2029,6 @@ namespace Tnb.ProductionMgr - // Dictionary header = new() - // { - // ["Authorization"] = App.HttpContext != null ? App.HttpContext.Request.Headers["Authorization"] : "" - // }; - // BasFactoryConfig config = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.DOMAIN); - WmsCarryH wmsCarryH = await db.Queryable().SingleAsync((x => x.carry_code == materialBoxCode)); - if (wmsCarryH == null) - throw Oops.Bah($"未找到{materialBoxCode}载具"); - if (wmsCarryH.carry_status == ((int)EnumCarryStatus.占用).ToString()) - { - throw Oops.Bah($"提报失败,载具已绑定"); - } - List wmsCarryCodes = await db.Queryable().Where(x=>x.carry_id==wmsCarryH.id).ToListAsync(); - if (wmsCarryCodes != null && wmsCarryCodes.Count > 0) - { - Log.Error($"载具{materialBoxCode}状态为{wmsCarryH.carry_status},但有条码{JsonConvert.SerializeObject(wmsCarryCodes)}"); - throw Oops.Bah($"提报失败,载具异常"); - } BindCarryCodeInput bindCarryCodeInput = new BindCarryCodeInput(); bindCarryCodeInput.carry_id = wmsCarryH.id; @@ -2299,7 +2298,7 @@ namespace Tnb.ProductionMgr // // } - return true; + return "提报成功"; } /// diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs index ed2785ba..1b90dc6a 100644 --- a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs @@ -675,8 +675,8 @@ namespace Tnb.ProductionMgr input.reported_qty = num; input.station = ""; input.material_box_code = carryCode; - await _prdMoTaskService.PrdReport(input); - return "true"; + + return await _prdMoTaskService.PrdReport(input); } [HttpGet] @@ -704,7 +704,7 @@ namespace Tnb.ProductionMgr input.station = ""; input.material_box_code = carryCode; await _prdMoTaskService.PrdReport(input); - return "true"; + return await _prdMoTaskService.PrdReport(input); } [HttpGet] diff --git a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs index 33a749e2..103670f4 100644 --- a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs +++ b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs @@ -35,7 +35,9 @@ namespace Tnb.QcMgr.Entities.Enums [Remark("生产检", "固定次数")] 生产检固定次数 = 12, [Remark("生产检", "按流转卡")] - 生产检按流转卡 = 13 + 生产检按流转卡 = 13, + [Remark("零部件最终检验", "零部件最终检验事件")] + 零部件最终检验事件 = 14 } public class RemarkAttribute : Attribute { diff --git a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs index 283da28c..df2c6565 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs @@ -512,6 +512,14 @@ namespace Tnb.QcMgr removePlanHs.Add(plan); } } + if (enumTriggerEvent == EnumTriggerEvent.零部件最终检验事件) + { + int? number = _repository.AsSugarClient().Queryable().Where(p => p.mainid == plan.id).First().number; + if ((entity.newpronum + (entity.oldpronum / number)) <= (entity.oldpronum / number)) + { + removePlanHs.Add(plan); + } + } if (enumTriggerEvent == EnumTriggerEvent.生产检定码) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs index be1aaa56..73f2b7b5 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs @@ -72,7 +72,7 @@ public partial class WmsCarryH : BaseEntity public string out_status { get; set; } /// - /// 是否检验 + /// 检验状态 0 未检验 1 检验中 2 合格 3 不合格 /// public int is_check { get; set; }