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,