diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/WorkOrderAdjustmentListOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/WorkOrderAdjustmentListOutput.cs
new file mode 100644
index 00000000..46a099c5
--- /dev/null
+++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/WorkOrderAdjustmentListOutput.cs
@@ -0,0 +1,21 @@
+namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
+{
+ ///
+ /// 任务单调整列表输出
+ ///
+ public class WorkOrderAdjustmentListOutput
+ {
+ public string id { get; set; }
+ public string mo_task_code { get; set; }
+ public string mo_task_status { get; set; }
+ public string material_id { get; set; }
+ public string mold_id { get; set; }
+ public int? plan_qty { get; set; }
+ public int? complete_qty { get; set; }
+ public int? scheduled_qty { get; set; }
+ public string workline_id { get; set; }
+ public string estimated_start_date { get; set; }
+ public string estimated_end_date { get; set; }
+ public string eqp_id { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
index 4b8074d5..b53f0461 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
@@ -888,6 +888,7 @@ namespace Tnb.ProductionMgr
if (subTaskList?.Count > 0)
{
List subMoTasks = new();
+ List subMoTaskLogs = new();
foreach (var item in subTaskList)
{
PrdMoTask subMoTask = new();
@@ -909,6 +910,20 @@ namespace Tnb.ProductionMgr
subMoTask.create_id = _userManager.UserId;
subMoTask.create_time = DateTime.Now;
subMoTasks.Add(subMoTask);
+
+ var subTaskLog = new PrdTaskLog();
+ var subMaterial = await _db.Queryable().SingleAsync(x => x.id == item.material_id);
+ subTaskLog.id = SnowflakeIdHelper.NextId();
+ subTaskLog.mo_code = (await _db.Queryable().FirstAsync(it => it.id == input.mo_id))?.mo_code!;
+ subTaskLog.item_code = subMaterial?.code!;
+ subTaskLog.item_standard = subMaterial?.material_standard!;
+ subTaskLog.status = DictConst.ToBeScheduledEncode;
+ subTaskLog.operator_name = _userManager.RealName;
+ subTaskLog.create_id = _userManager.UserId;
+ subTaskLog.create_time = DateTime.Now;
+ subTaskLog.mo_task_id = subMoTask.id;
+ subTaskLog.mo_task_code = subMoTask.mo_task_code!;
+ subMoTaskLogs.Add(subTaskLog);
}
//根据生产任务编号生成子任务编号
if (moTask.mo_task_code!.IsNotEmptyOrNull())
@@ -920,6 +935,7 @@ namespace Tnb.ProductionMgr
}
}
row = await _db.Insertable(subMoTasks).ExecuteCommandAsync();
+ await _db.Insertable(subMoTaskLogs).ExecuteCommandAsync();
}
await _db.Ado.CommitTranAsync();
}
@@ -1575,49 +1591,83 @@ namespace Tnb.ProductionMgr
}
return instance;
}
+ // private async Task GetList(VisualDevModelListQueryInput input)
+ // {
+ // var db = _repository.AsSugarClient();
+ // VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
+ // var data = await _runService.GetListResult(templateEntity, input);
+ // if (data?.list?.Count > 0)
+ // {
+ // foreach (var row in data.list)
+ // {
+ // var dic = row.ToDictionary(x => x.Key, x => x.Value);
+ // var pkName = "material_id_id";
+ // if (dic.ContainsKey(pkName))
+ // {
+ // var materialId = dic[pkName]?.ToString();
+ // var material = await db.Queryable().FirstAsync(it => it.id == materialId);
+ // if (material != null)
+ // {
+ // row["material_id"] = $"{material.code}/{material.name}";
+ // }
+ // }
+ // //模具
+ // if (dic.ContainsKey("mold_id"))
+ // {
+ // var moldId = dic["mold_id"]?.ToString();
+ // var mold = await db.Queryable().FirstAsync(it => it.id == moldId);
+ // if (mold != null)
+ // {
+ // row["mold_id"] = $"{mold.mold_code}/{mold.mold_name}";
+ // }
+ // }
+ // //设备
+ // if (dic.ContainsKey("eqp_id"))
+ // {
+ // var eqpId = dic["eqp_id"]?.ToString();
+ // var eqp = await db.Queryable().FirstAsync(it => it.id == eqpId);
+ // if (eqp != null)
+ // {
+ // row["eqp_id"] = $"{eqp.code}/{eqp.name}";
+ // }
+ // }
+ // }
+ // }
+ // return data!;
+ // }
+
private async Task GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
- VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
- var data = await _runService.GetListResult(templateEntity, input);
- if (data?.list?.Count > 0)
- {
- foreach (var row in data.list)
+ Dictionary queryJson = !string.IsNullOrEmpty(input.queryJson) ? JsonConvert.DeserializeObject>(input.queryJson) : new Dictionary();
+ string moTaskCode = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : "";
+ string eqpId = queryJson.ContainsKey("eqp_id") ? queryJson["eqp_id"].ToString() : "";
+ var result = await db.Queryable()
+ .LeftJoin((a, b) => a.material_id == b.id)
+ .LeftJoin((a, b, c) => c.EnCode == DictConst.TaskStatus)
+ .LeftJoin((a, b, c, d) => c.Id == d.DictionaryTypeId && a.mo_task_status == d.EnCode)
+ .LeftJoin((a,b,c,d,e)=>a.mold_id==e.id)
+ .LeftJoin((a,b,c,d,e,f)=>a.mo_id==f.id)
+ .LeftJoin((a,b,c,d,e,f,g)=>a.workline_id==g.Id)
+ .LeftJoin((a,b,c,d,e,f,g,h)=>a.eqp_id==h.id)
+ .WhereIF(!string.IsNullOrEmpty(moTaskCode), (a, b, c, d) => a.mo_task_code.Contains(moTaskCode))
+ .WhereIF(!string.IsNullOrEmpty(eqpId), (a, b, c, d) => a.workline_id==eqpId || a.eqp_id==eqpId)
+ .Select((a, b, c, d,e,f,g,h) => new WorkOrderAdjustmentListOutput
{
- var dic = row.ToDictionary(x => x.Key, x => x.Value);
- var pkName = "material_id_id";
- if (dic.ContainsKey(pkName))
- {
- var materialId = dic[pkName]?.ToString();
- var material = await db.Queryable().FirstAsync(it => it.id == materialId);
- if (material != null)
- {
- row["material_id"] = $"{material.code}/{material.name}";
- }
- }
- //模具
- if (dic.ContainsKey("mold_id"))
- {
- var moldId = dic["mold_id"]?.ToString();
- var mold = await db.Queryable().FirstAsync(it => it.id == moldId);
- if (mold != null)
- {
- row["mold_id"] = $"{mold.mold_code}/{mold.mold_name}";
- }
- }
- //设备
- if (dic.ContainsKey("eqp_id"))
- {
- var eqpId = dic["eqp_id"]?.ToString();
- var eqp = await db.Queryable().FirstAsync(it => it.id == eqpId);
- if (eqp != null)
- {
- row["eqp_id"] = $"{eqp.code}/{eqp.name}";
- }
- }
- }
- }
- return data!;
+ id = a.id,
+ mo_task_code = a.mo_task_code,
+ material_id = b.code+"/"+b.name,
+ mold_id = e.mold_code+"/"+e.mold_name,
+ mo_task_status = d.FullName,
+ plan_qty = f.plan_qty,
+ complete_qty = SqlFunc.IsNull(a.reported_work_qty,0) + SqlFunc.IsNull(a.scrap_qty,0),
+ scheduled_qty = a.scheduled_qty,
+ workline_id = a.workline_id==null ? "" :g.EnCode+"/"+g.FullName,
+ estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString("yyyy-MM-dd"),
+ estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString("yyyy-MM-dd"),
+ eqp_id = a.eqp_id==null ? "" : h.code+"/"+h.name,
+ }).ToPagedListAsync(input.currentPage, input.pageSize);
+ return PageResult.SqlSugarPageResult(result);
}
///