diff --git a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs index b4639659..fb5fbf2c 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs @@ -60,5 +60,12 @@ namespace Tnb.ProductionMgr.Interfaces /// /// Task ReportInstock(CheckCompleteInput input,PrdReport report = null,ISqlSugarClient db = null); + + /// + /// /生产任务下发,开始 、结束、完成 + /// + /// + /// + Task PrdTaskRelease(PrdTaskReleaseUpInput input, ISqlSugarClient db = null); } } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 5b52b245..724c7c3f 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1110,7 +1110,7 @@ namespace Tnb.ProductionMgr /// /// [HttpPost] - public async Task PrdTaskRelease(PrdTaskReleaseUpInput input) + public async Task PrdTaskRelease(PrdTaskReleaseUpInput input,ISqlSugarClient db = null) { int row = -1; if (input is null) @@ -1126,10 +1126,17 @@ namespace Tnb.ProductionMgr { throw new ArgumentException($"{nameof(input.Behavior)} not be null or empty"); } - ISqlSugarClient db = _repository.AsSugarClient(); + + bool tranFlag = true; + if (db==null) + { + tranFlag = false; + db = _repository.AsSugarClient(); + } + try { - await db.Ado.BeginTranAsync(); + if(tranFlag) await db.Ado.BeginTranAsync(); List prdTaskList = new List(); //var taskList = await _db.Queryable().Where(it => input.TaskIds.Contains(it.id) && it.mo_task_status == DictConst.ToBeScheduledEncode).ToListAsync(); //if (taskList?.Count > 0) @@ -1606,12 +1613,12 @@ namespace Tnb.ProductionMgr } - await db.Ado.CommitTranAsync(); + if(tranFlag) await db.Ado.CommitTranAsync(); } catch (Exception e) { Log.Error(e.Message,e); - await db.Ado.RollbackTranAsync(); + if(tranFlag) await db.Ado.RollbackTranAsync(); throw Oops.Bah(e.Message); } diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs index 18919b8b..567ecc44 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs @@ -24,6 +24,7 @@ using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Interfaces; using Tnb.ProductionMgr.Interfaces; using Tnb.ProductionMgr.Entities; +using Tnb.ProductionMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Enums; using Tnb.ProductionMgr.Entities.Dto.PrdManage; using Tnb.WarehouseMgr.Entities; @@ -151,7 +152,11 @@ namespace Tnb.QcMgr // } BasMaterial basMaterial = await db.Queryable().Where(x=>x.id==moTask.material_id).FirstAsync(); PrdReport prdReport = await db.Queryable().SingleAsync(x => x.id == QcCheckExecH.report_id); - UserEntity userEntity = await db.Queryable().SingleAsync(x => x.Id == prdReport.create_id); + UserEntity userEntity = null; + if (prdReport != null) + { + userEntity = await db.Queryable().SingleAsync(x => x.Id == prdReport.create_id); + } CheckTaskOut CheckTaskOut = new() { mainid = id, @@ -382,7 +387,25 @@ namespace Tnb.QcMgr check_result = ((EnumCheckConclusion)dic[CheckTaskInput.result]).ToString(), },prdReport,db); } + }else if (QcCheckExecH.checktype == WmsWareHouseConst.XUNJIAN_ID) + { + if (CheckTaskInput.result == "no") + { + PrdMoTask prdMoTask = await db.Queryable().Where(x=>x.mo_task_code==QcCheckExecH.mo_task_code && x.id!=null).FirstAsync(); + await _prdMoTaskService.PrdTaskRelease(new PrdTaskReleaseUpInput() + { + TaskIds = NPOI.Util.Arrays.AsList(prdMoTask.id), + Behavior = "Pause", + PauseReeson = "巡检不合格" + }); + List carryCodes = await db.Queryable().Where(x=>x.mo_task_id==prdMoTask.id).Select(x=>x.material_box_code).Distinct().ToListAsync(); + await db.Updateable() + .SetColumns(x => x.is_check == ((int)EnumCheckConclusion.暂控).ToString()) + .Where(x => carryCodes.Contains(x.carry_code)) + .ExecuteCommandAsync(); + } } + await db.Ado.CommitTranAsync(); } catch (Exception e) @@ -420,6 +443,7 @@ namespace Tnb.QcMgr .Select((a, b, c, d, e, f, g, h) => new Result { mainid = a.id, + bill_code = a.bill_code, material_name = b.name, material_code = b.code, material_standard = b.material_standard,