From f0704473b673f5b20057607a1464922f87350e8c Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Mon, 16 Oct 2023 15:55:15 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E9=87=8D=E5=86=99=E7=82=B9=E5=B7=A1?= =?UTF-8?q?=E6=A3=80=E6=89=A7=E8=A1=8C=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/EqpSpotInsRecordListOutput.cs | 19 ++++++++ .../Tnb.EquipMgr/EquSpotInsRecordService.cs | 44 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs new file mode 100644 index 00000000..f09d07ff --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs @@ -0,0 +1,19 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class EqpSpotInsRecordListOutput + { + public string id { get; set; } + public string equip_id { get; set; } + public string equip_id_id { get; set; } + public string status { get; set; } + public string result { get; set; } + public string repeat_result { get; set; } + public string create_time { get; set; } + public string spot_record_date_time { get; set; } + public string repeat_user_id { get; set; } + public string repeat_user_id_id { get; set; } + public string spot_record_user_id{ get; set; } + public string spot_record_user_id_id { get; set; } + public string repeat_time { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index ad2106a0..b149f9fe 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -2,16 +2,20 @@ using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Filter; +using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Systems.Entitys.Permission; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; +using Tnb.BasicData.Entities; +using Tnb.BasicData.Entities.Dto; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; @@ -43,6 +47,46 @@ namespace Tnb.EquipMgr _runService = runService; _userManager = userManager; // OverideFuncs.UpdateAsync = ExecuteSpotIns; + OverideFuncs.GetListAsync = GetList; + } + + private async Task GetList(VisualDevModelListQueryInput input) + { + var db = _repository.AsSugarClient(); + Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); + string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; + string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; + var list = await db.Queryable((a, b, c,d) => new object[] + { + JoinType.Left, a.equip_id == b.id, + JoinType.Left, a.spot_record_user_id == c.Id, + JoinType.Left, a.repeat_user_id == d.Id, + }) + .WhereIF(!string.IsNullOrEmpty(status),(a,b,c)=>a.status==status) + .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) + .Select((a, b, c,d) => new EqpSpotInsRecordListOutput + { + id = a.id, + equip_id = b.code+"/"+b.name, + equip_id_id = a.equip_id, + status = a.status, + result = a.result=="1" ? "合格" : "不合格", + repeat_result = a.repeat_result=="1" ? "合格" : "不合格", + create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + spot_record_date_time = a.spot_record_date_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + repeat_time = a.repeat_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + spot_record_user_id = c.RealName, + spot_record_user_id_id = a.spot_record_user_id, + repeat_user_id = d.RealName, + repeat_user_id_id = a.repeat_user_id, + }) + .Mapper(a => + { + a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; + }) + .ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50)); + + return PageResult.SqlSugarPageResult(list); } /// From f6a92e607d7b48813a732613e442734f2f16da76 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 17 Oct 2023 10:44:48 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E5=92=8C=E7=A7=BB=E5=8A=A8=E7=AB=AF=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/PrdManage/PrdMoTaskListOutput.cs | 12 ++++++++++++ .../Tnb.ProductionMgr/PrdPackReportService.cs | 19 +++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdMoTaskListOutput.cs diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdMoTaskListOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdMoTaskListOutput.cs new file mode 100644 index 00000000..7f72eb6b --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdMoTaskListOutput.cs @@ -0,0 +1,12 @@ +using JNPF.Common.Filter; + +namespace Tnb.ProductionMgr.Entities.Dto.PrdManage +{ + public class PrdMoTaskListOutput : PageInputBase + { + /// + /// 工位id + /// + public string stationId { get; set; } + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 664a4b4d..1878168f 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -347,9 +347,9 @@ namespace Tnb.ProductionMgr /// /// [HttpPost] - public async Task GetPadPrdMoTaskList(PrdPackReportQueryInput input) + public async Task GetPadPrdMoTaskList(PrdMoTaskListOutput input) { - if (string.IsNullOrEmpty(input.stationId)) + if (string.IsNullOrEmpty(input.stationId)) { return new { @@ -357,7 +357,16 @@ namespace Tnb.ProductionMgr list = Array.Empty() }; } - + + Dictionary queryJson = string.IsNullOrEmpty(input.queryJson) ? new Dictionary() : input.queryJson.ToObject>(); + string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : ""; + string mo_task_status = queryJson.ContainsKey("mo_task_status") ? queryJson["mo_task_status"].ToString() : ""; + if (string.IsNullOrEmpty(input.sidx)) + { + input.sidx = "create_time"; + input.sort = "desc"; + } + var result = await _db.Queryable() .LeftJoin((a, b) => a.material_id == b.id) .LeftJoin((a, b, c) => a.process_id == c.id) @@ -366,6 +375,8 @@ namespace Tnb.ProductionMgr .LeftJoin((a,b,c,d,e,f)=>a.eqp_id==f.id) .LeftJoin((a,b,c,d,e,f,g)=>a.mold_id==g.id) .Where((a, b) => a.workstation_id == input.stationId && (a.mo_task_status == DictConst.ToBeStartedEnCode || a.mo_task_status == DictConst.MoStatusPauseCode || a.mo_task_status == DictConst.ComplatedEnCode || a.mo_task_status == DictConst.InProgressEnCode) ) + .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) + .WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status.Contains(mo_task_status)) .Select((a, b, c, d, e,f,g) => new PADPackageTaskPageOutput { id = a.id, @@ -398,7 +409,7 @@ namespace Tnb.ProductionMgr schedule_type = a.schedule_type, }) .MergeTable() - .OrderByDescending((a) => a.create_time) + .OrderBy($"{input.sidx} {input.sort}") .ToPagedListAsync(input.currentPage, int.MaxValue); return PageResult.SqlSugarPageResult(result); From 8166acf483f17b99c90275eeb5c85b5ea37484a6 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 17 Oct 2023 18:45:18 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E4=BB=BB=E5=8A=A1=E5=8D=95=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=20=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8D=95=E5=BC=80=E5=A7=8B=E4=BF=9D=E5=AD=98=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4=20=E6=8F=90?= =?UTF-8?q?=E6=8A=A5=E5=90=8E=E8=AE=B0=E5=BD=95=E9=A2=84=E8=AE=A1=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/PrdManage/PADPackageTaskPageOutput.cs | 25 +++++++++++ .../Entity/PrdMoTask.cs | 8 ++-- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 42 ++++++++++++++++++- .../Tnb.ProductionMgr/PrdPackReportService.cs | 14 +++++-- 4 files changed, 81 insertions(+), 8 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs index 622015f1..84ddc2a2 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs @@ -92,5 +92,30 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage public string mold_code { get; set; } public string mold_name { get; set; } public DateTime? create_time { get; set; } + + /// + /// 成型周期 + /// + public decimal? moulding_cycle { get; set; } + + /// + /// 模穴数 + /// + public int? mold_cavity { get; set; } + + /// + /// 标准工时 + /// + public string? standard_time { get; set; } + + /// + /// 实际开工日期 + /// + public string? act_start_date { get; set; } + + /// + /// 预计结束时间 + /// + public string? plan_end_date { get; set; } } } \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs index 05bad995..be888dc5 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs @@ -100,12 +100,12 @@ public partial class PrdMoTask : BaseEntity public int? schedule_type { get; set; } /// - /// 计划开始时间 + /// 预计开始时间 /// public DateTime? plan_start_date { get; set; } /// - /// 计划结束时间 + /// 预计结束时间 /// public DateTime? plan_end_date { get; set; } @@ -150,12 +150,12 @@ public partial class PrdMoTask : BaseEntity public int? prd_order { get; set; } /// - /// 预计开始时间 + /// 计划开始时间 /// public DateTime? estimated_start_date { get; set; } /// - /// 预计结束时间 + /// 计划结束时间 /// public DateTime? estimated_end_date { get; set; } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 200f5dba..341c9405 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1085,6 +1085,8 @@ namespace Tnb.ProductionMgr // } } + + var taskReportLogs = new List(); var prdTaskList = await db.Queryable().Where(it => input.TaskIds.Contains(it.id)).ToListAsync(); if (prdTaskList?.Count > 0) @@ -1105,6 +1107,10 @@ namespace Tnb.ProductionMgr } #endregion prdTaskList.ForEach(x => x.mo_task_status = status); + if (behavior == PrdTaskBehavior.Start) + { + prdTaskList.ForEach(x => x.act_start_date = DateTime.Now); + } row = await db.Updateable(prdTaskList).ExecuteCommandAsync(); foreach (var item in prdTaskList) { @@ -1494,6 +1500,25 @@ namespace Tnb.ProductionMgr .SetColumns(x => x.complete_qty == x.complete_qty + input.reported_qty) .Where(x => x.id == prdMo.id).ExecuteCommandAsync(); } + + PerProcessStandardsH processStandardsH = await db.Queryable() + .Where(x => x.equip_id == prdMoTask.eqp_id && x.molds_id == prdMoTask.mold_id && + x.output_material_id == prdMoTask.material_id && x.enabled == 1) + .OrderByDescending(x => x.create_time).FirstAsync(); + + ToolMolds toolMolds = await db.Queryable().SingleAsync(x => x.id == prdMoTask.mold_id); + if (toolMolds != null && toolMolds?.mold_cavity > 0 && processStandardsH != null && + processStandardsH?.moulding_cycle > 0) + { + decimal? addTime = ((prdMoTask.scheduled_qty-input.reported_qty) * processStandardsH?.moulding_cycle - 1) / toolMolds.mold_cavity + 1; + if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) + { + DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); + await db.Updateable() + .SetColumns(x => x.plan_end_date == cal_plan_end_date) + .Where(x => x.id == input.mo_task_id).ExecuteCommandAsync(); + } + } } if (prdMoTask.schedule_type == 2 && !string.IsNullOrEmpty(prdMoTask.mbom_process_id)) @@ -1541,6 +1566,20 @@ namespace Tnb.ProductionMgr .Where(x => x.id == prdMo.id).ExecuteCommandAsync(); } } + + var list = await db.Queryable() + .LeftJoin((a,b)=>a.process_id==b.process_id && b.enabled==1) + .Where((a,b)=>a.process_id==prdMoTask.process_id).Select((a,b)=>b).ToListAsync(); + + decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x); + decimal? addTime = (prdMoTask.scheduled_qty-input.reported_qty) * max; + if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) + { + DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); + await db.Updateable() + .SetColumns(x => x.plan_end_date == cal_plan_end_date) + .Where(x => x.id == input.mo_task_id).ExecuteCommandAsync(); + } } var master = await db.Queryable().FirstAsync(it => it.mo_task_id == input.mo_task_id); @@ -2018,7 +2057,7 @@ namespace Tnb.ProductionMgr else { var list = await db.Queryable() - .LeftJoin((a,b)=>a.process_id==b.process_id) + .LeftJoin((a,b)=>a.process_id==b.process_id && b.enabled==1) .Where((a,b)=>a.mbom_id==input.mbom_id).Select((a,b)=>b).ToListAsync(); decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x); @@ -2027,6 +2066,7 @@ namespace Tnb.ProductionMgr } } + /// /// 获取这个产线生产中的任务单 diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 1878168f..33cb8ca5 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -12,6 +12,7 @@ using SqlSugar; using Tnb.BasicData; using Tnb.BasicData.Entities; using Tnb.EquipMgr.Entities; +using Tnb.PerMgr.Entities; using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Entities.Dto.PrdManage; using Tnb.ProductionMgr.Interfaces; @@ -374,10 +375,12 @@ namespace Tnb.ProductionMgr .LeftJoin((a, b, c, d, e) => e.DictionaryTypeId == DictConst.PrdTaskStatusTypeId && a.mo_task_status == e.EnCode) .LeftJoin((a,b,c,d,e,f)=>a.eqp_id==f.id) .LeftJoin((a,b,c,d,e,f,g)=>a.mold_id==g.id) + .LeftJoin((a,b,c,d,e,f,g,h)=>a.material_id==h.output_material_id && a.eqp_id==h.equip_id && a.mold_id==h.molds_id && h.enabled==1) + .LeftJoin((a,b,c,d,e,f,g,h,i)=>a.process_id==i.process_id && i.enabled==1) .Where((a, b) => a.workstation_id == input.stationId && (a.mo_task_status == DictConst.ToBeStartedEnCode || a.mo_task_status == DictConst.MoStatusPauseCode || a.mo_task_status == DictConst.ComplatedEnCode || a.mo_task_status == DictConst.InProgressEnCode) ) .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) - .WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status.Contains(mo_task_status)) - .Select((a, b, c, d, e,f,g) => new PADPackageTaskPageOutput + .WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) + .Select((a, b, c, d, e,f,g,h,i) => new PADPackageTaskPageOutput { id = a.id, mo_task_code = a.mo_task_code, @@ -407,10 +410,15 @@ namespace Tnb.ProductionMgr mold_code = g.mold_code, mold_name = g.mold_name, schedule_type = a.schedule_type, + mold_cavity = g.mold_cavity, + moulding_cycle = h.moulding_cycle, + standard_time = i.standard_time, + act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + plan_end_date = a.plan_end_date==null ? "" : a.plan_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), }) .MergeTable() .OrderBy($"{input.sidx} {input.sort}") - .ToPagedListAsync(input.currentPage, int.MaxValue); + .ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); From 596f483d63a2d59b970195c1e894d515b08d5364 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Wed, 18 Oct 2023 18:17:31 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E8=87=AA=E6=A3=80=E6=8F=90=E6=8A=A5?= =?UTF-8?q?=E4=B9=9F=E8=AE=A1=E7=AE=97=E9=A2=84=E8=AE=A1=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 341c9405..3c57b8fa 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1510,7 +1510,7 @@ namespace Tnb.ProductionMgr if (toolMolds != null && toolMolds?.mold_cavity > 0 && processStandardsH != null && processStandardsH?.moulding_cycle > 0) { - decimal? addTime = ((prdMoTask.scheduled_qty-input.reported_qty) * processStandardsH?.moulding_cycle - 1) / toolMolds.mold_cavity + 1; + decimal? addTime = ((prdMoTask.scheduled_qty-input.reported_qty-(prdMoTask.scrap_qty??0)) * processStandardsH?.moulding_cycle - 1) / toolMolds.mold_cavity + 1; if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) { DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); @@ -1572,7 +1572,7 @@ namespace Tnb.ProductionMgr .Where((a,b)=>a.process_id==prdMoTask.process_id).Select((a,b)=>b).ToListAsync(); decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x); - decimal? addTime = (prdMoTask.scheduled_qty-input.reported_qty) * max; + decimal? addTime = (prdMoTask.scheduled_qty-input.reported_qty-(prdMoTask.scrap_qty??0)) * max; if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) { DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); @@ -1792,6 +1792,44 @@ namespace Tnb.ProductionMgr await db.Updateable(reportMaster).ExecuteCommandAsync(); } + if (prdMoTask.schedule_type == 1) + { + PerProcessStandardsH processStandardsH = await db.Queryable() + .Where(x => x.equip_id == prdMoTask.eqp_id && x.molds_id == prdMoTask.mold_id && + x.output_material_id == prdMoTask.material_id && x.enabled == 1) + .OrderByDescending(x => x.create_time).FirstAsync(); + + ToolMolds toolMolds = await db.Queryable().SingleAsync(x => x.id == prdMoTask.mold_id); + if (toolMolds != null && toolMolds?.mold_cavity > 0 && processStandardsH != null && + processStandardsH?.moulding_cycle > 0) + { + decimal? addTime = ((prdMoTask.scheduled_qty-prdMoTask.reported_work_qty-input.scrap_qty) * processStandardsH?.moulding_cycle - 1) / toolMolds.mold_cavity + 1; + if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) + { + DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); + await db.Updateable() + .SetColumns(x => x.plan_end_date == cal_plan_end_date) + .Where(x => x.id == input.mo_task_id).ExecuteCommandAsync(); + } + } + } + else + { + var list = await db.Queryable() + .LeftJoin((a,b)=>a.process_id==b.process_id && b.enabled==1) + .Where((a,b)=>a.process_id==prdMoTask.process_id).Select((a,b)=>b).ToListAsync(); + + decimal max = list.Select(x => Convert.ToDecimal(x.standard_time)).Max(x => x); + decimal? addTime = (prdMoTask.scheduled_qty-prdMoTask.reported_work_qty-input.scrap_qty) * max; + if (prdMoTask.act_start_date != null && addTime != null && addTime > 0) + { + DateTime cal_plan_end_date = prdMoTask.act_start_date.Value.AddSeconds((double)addTime); + await db.Updateable() + .SetColumns(x => x.plan_end_date == cal_plan_end_date) + .Where(x => x.id == input.mo_task_id).ExecuteCommandAsync(); + } + } + }); return result.IsSuccess; } From 9051f99543353fae2c61c15833c62b100bf2ffe2 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 20 Oct 2023 17:28:13 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E6=8A=A5=E4=BF=AE=E5=88=97=E8=A1=A8=E7=9C=8B=E6=9D=BF=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/PadRepairListInput.cs | 9 +++ .../Dto/PadRepairListOutput.cs | 24 ++++++++ .../IEqpRepairApplyService.cs | 6 ++ .../Tnb.EquipMgr/EqpRepairApplyService.cs | 61 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListOutput.cs diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs new file mode 100644 index 00000000..3d40f76a --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs @@ -0,0 +1,9 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class PadRepairListInput + { + public string status { get; set; } + + public string equip_info { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListOutput.cs new file mode 100644 index 00000000..ef577df0 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListOutput.cs @@ -0,0 +1,24 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class PadRepairListOutput + { + public string id { get; set; } + + public string code { get; set; } + + public string name { get; set; } + public string equip_id { get; set; } + public string equip_id_id { get; set; } + public string apply_user_id { get; set; } + public string apply_user_id_id { get; set; } + public string expect_complete_time { get; set; } + public string is_ugent { get; set; } + public string description { get; set; } + public string remark { get; set; } + public string create_time { get; set; } + public string complete_time { get; set; } + public string repairer_id { get; set; } + public string repairer_id_id { get; set; } + public string status { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairApplyService.cs index f23044b1..00a88135 100644 --- a/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairApplyService.cs @@ -59,5 +59,11 @@ namespace Tnb.EquipMgr.Interfaces /// /// public Task GetRepairRecordList(EquipQueryInput input); + + /// + /// 看板端设备报修维修列表接口 + /// + /// + public Task GetPadRepairList(PadRepairListInput input); } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index f6047912..01d77186 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -6,9 +6,11 @@ using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Systems.Entitys.Permission; +using JNPF.Systems.Entitys.System; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; +using Tnb.BasicData; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; @@ -177,5 +179,64 @@ namespace Tnb.EquipMgr return PageResult.SqlSugarPageResult(result); } + + [HttpPost] + public async Task GetPadRepairList(PadRepairListInput input) + { + List statusList = new List(); + if (!string.IsNullOrEmpty(input.status)) + { + switch (input.status) + { + case "1" : + statusList.Add(RepairApplyStatus.TOBEEXECUTED); + statusList.Add(RepairApplyStatus.REFUSE); + break; + case "2" : + statusList.Add(RepairApplyStatus.TOBERECEIVED); + statusList.Add(RepairApplyStatus.RECEIVED); + statusList.Add(RepairApplyStatus.OUTAPPLYAPPROVE); + statusList.Add(RepairApplyStatus.APPROVEPASS); + statusList.Add(RepairApplyStatus.APPROVENOTPASS); + statusList.Add(RepairApplyStatus.TOBEOUTAPPLY); + break; + case "3" : + statusList.Add(RepairApplyStatus.COMPLETED); + statusList.Add(RepairApplyStatus.CLOSE); + statusList.Add(RepairApplyStatus.REPEAL); + break; + } + } + var db = _repository.AsSugarClient(); + var result = await db.Queryable() + .LeftJoin((a,b)=>a.apply_user_id==b.Id) + .LeftJoin((a,b,c)=>a.repairer_id==c.Id) + .LeftJoin((a,b,c,d)=>a.equip_id==d.id) + .LeftJoin((a,b,c,d,e)=>e.EnCode==DictConst.RepairStatus) + .LeftJoin((a,b,c,d,e,f)=>e.Id==f.DictionaryTypeId && a.status==f.EnCode) + .WhereIF(!string.IsNullOrEmpty(input.equip_info),(a,b,c,d)=>d.code.Contains(input.equip_info) || d.name.Contains(input.equip_info)) + .WhereIF(!string.IsNullOrEmpty(input.status),(a,b,c,d)=>statusList.Contains(a.status)) + .Select((a,b,c,d,e,f) => new PadRepairListOutput + { + id = a.id, + equip_id = d.code+"/"+d.name, + equip_id_id = a.equip_id, + code = a.code, + name = a.name, + apply_user_id =b.RealName, + apply_user_id_id =b.Id, + is_ugent = a.is_ugent==1 ? "是" : "否", + description = a.description, + create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + complete_time = a.complete_time==null ? "" : a.complete_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + expect_complete_time = a.expect_complete_time==null ? "" : a.expect_complete_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + repairer_id = c.RealName, + repairer_id_id = c.Id, + remark = a.remark, + status = f.FullName + }).ToListAsync(); + + return result; + } } } \ No newline at end of file From 3e75338075f4a5701e198037cd8c259da8b5e84d Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Sat, 21 Oct 2023 15:06:13 +0800 Subject: [PATCH 06/22] =?UTF-8?q?bug=20+=20+=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.BasicData.Entities/Consts/DictConst.cs | 6 ++++-- EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs | 15 +++++++++++++++ EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 4 ++-- .../Dto/PrdManage/PADPackageTaskPageOutput.cs | 5 +++++ .../Tnb.ProductionMgr/PrdPackReportService.cs | 4 +++- 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs index 5cae0a5c..3d130676 100644 --- a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs +++ b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs @@ -217,8 +217,10 @@ public static class DictConst /// 设备维修状态 /// public const string RepairStatus = "RepairStatus"; - - + /// + /// 设备保养类型 + /// + public const string EqpMaintainType = "EqpMaintainType"; #endregion } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index d80b10d1..899d9dbf 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -6,12 +6,14 @@ using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Systems.Entitys.Permission; +using JNPF.Systems.Entitys.System; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; +using Tnb.BasicData; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; @@ -105,6 +107,19 @@ namespace Tnb.EquipMgr EqpMaintainRecordH eqpSpotInsRecordH = await _repository.GetSingleAsync(x => x.id == id); List eqpSpotInsRecordDs = await _repository.AsSugarClient().Queryable() .Where(x => x.maintain_record_id == id).ToListAsync(); + Dictionary typeDic = await _repository.AsSugarClient().Queryable() + .LeftJoin((a, b) => a.Id == b.DictionaryTypeId) + .Where((a, b) => a.EnCode == DictConst.EqpMaintainType) + .Select((a, b) => new + { + b.EnCode, b.FullName + }) + .MergeTable() + .ToDictionaryAsync(it => it.EnCode, it => it.FullName); + eqpSpotInsRecordDs.ForEach(x => + { + x.maintain_type = typeDic.ContainsKey(x.maintain_type) ? typeDic[x.maintain_type]+"" : x.maintain_type; + }); MaintainRecordRepeatOutput output = new MaintainRecordRepeatOutput() { model = eqpSpotInsRecordH, diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index b149f9fe..5dd63d33 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -73,8 +73,8 @@ namespace Tnb.EquipMgr result = a.result=="1" ? "合格" : "不合格", repeat_result = a.repeat_result=="1" ? "合格" : "不合格", create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - spot_record_date_time = a.spot_record_date_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - repeat_time = a.repeat_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + spot_record_date_time = a.spot_record_date_time==null ? "" : a.spot_record_date_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + repeat_time = a.repeat_time==null ? "" : a.repeat_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), spot_record_user_id = c.RealName, spot_record_user_id_id = a.spot_record_user_id, repeat_user_id = d.RealName, diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs index 84ddc2a2..545a5690 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs @@ -4,6 +4,11 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage { public string id { get; set; } + /// + /// 工单号号 + /// + public string? mo_code { get; set; } + /// /// 生产任务编号 /// diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 33cb8ca5..64b2f576 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -377,14 +377,16 @@ namespace Tnb.ProductionMgr .LeftJoin((a,b,c,d,e,f,g)=>a.mold_id==g.id) .LeftJoin((a,b,c,d,e,f,g,h)=>a.material_id==h.output_material_id && a.eqp_id==h.equip_id && a.mold_id==h.molds_id && h.enabled==1) .LeftJoin((a,b,c,d,e,f,g,h,i)=>a.process_id==i.process_id && i.enabled==1) + .LeftJoin((a,b,c,d,e,f,g,h,i,j)=>a.mo_id==j.id) .Where((a, b) => a.workstation_id == input.stationId && (a.mo_task_status == DictConst.ToBeStartedEnCode || a.mo_task_status == DictConst.MoStatusPauseCode || a.mo_task_status == DictConst.ComplatedEnCode || a.mo_task_status == DictConst.InProgressEnCode) ) .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) .WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) - .Select((a, b, c, d, e,f,g,h,i) => new PADPackageTaskPageOutput + .Select((a, b, c, d, e,f,g,h,i,j) => new PADPackageTaskPageOutput { id = a.id, mo_task_code = a.mo_task_code, mo_id = a.mo_id, + mo_code = j.mo_code, material_id = a.material_id, material_code = b.code, material_name = b.name, From c01d2854dd3b585ab6f661517837272da71eda24 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Mon, 23 Oct 2023 14:33:03 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E9=87=8D=E5=86=99=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/CodeTemplateConst.cs | 7 +++ .../Tnb.EquipMgr/EqpRepairApplyService.cs | 52 ++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs index 39390136..494db034 100644 --- a/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs +++ b/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs @@ -29,5 +29,12 @@ namespace Tnb.BasicData /// 生产齐套领料 /// public const string PRDKITTINGOUTSTOCK_CODE = "PrdKittingOutStocK"; + + /// + /// 设备维修单 + /// + public const string EQPREPAIR_CODE = "EqpRepair"; + + } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index 01d77186..98d122ea 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -1,4 +1,5 @@ using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Filter; using JNPF.Common.Security; @@ -7,6 +8,10 @@ using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Entitys.System; +using JNPF.Systems.Interfaces.System; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; @@ -22,16 +27,61 @@ namespace Tnb.EquipMgr /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] - public class EqpRepairApplyService : IEqpRepairApplyService, IDynamicApiController, ITransient + [OverideVisualDev(ModuleId)] + public class EqpRepairApplyService : IEqpRepairApplyService, IOverideVisualDevService, IDynamicApiController, ITransient { + private const string ModuleId = "26165698078741"; private readonly ISqlSugarRepository _repository; + private readonly IVisualDevService _visualDevService; + private readonly IRunService _runService; + private readonly IBillRullService _billRuleService; private readonly IUserManager _userManager; + + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public EqpRepairApplyService(ISqlSugarRepository repository, + IVisualDevService visualDevService, + IRunService runService, + IBillRullService billRullService, IUserManager userManager) { _repository = repository; + _visualDevService = visualDevService; + _runService = runService; _userManager = userManager; + _billRuleService = billRullService; + OverideFuncs.CreateAsync = Create; + } + + private async Task Create(VisualDevModelDataCrInput input) + { + if (!input.data.ContainsKey("create_time")) + { + input.data.Add("create_time",DateTime.Now); + } + + if (!input.data.ContainsKey("create_id")) + { + input.data.Add("create_id",_userManager.UserId); + } + + if (!input.data.ContainsKey("apply_user_id")) + { + input.data.Add("apply_user_id",_userManager.UserId); + } + + if (!input.data.ContainsKey("org_id")) + { + input.data.Add("org_id",_userManager.GetUserInfo().Result.organizeId); + } + + if (!input.data.ContainsKey("code")) + { + input.data.Add("code",await _billRuleService.GetBillNumber(CodeTemplateConst.EQPREPAIR_CODE)); + } + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + await _runService.Create(templateEntity, input); + return await Task.FromResult(true); } [HttpPost] From 65dd14d46ed3764969be29e1a532743f355c0634 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Mon, 23 Oct 2023 17:05:54 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E7=94=9F=E4=BA=A7=20=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E4=B8=AD=E6=96=AD=E5=AE=8C=E6=88=90=E6=9A=82=E5=81=9C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 3c57b8fa..39856845 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1106,6 +1106,57 @@ namespace Tnb.ProductionMgr } } #endregion + + foreach (var item in prdTaskList) + { + switch (behavior) + { + // case PrdTaskBehavior.Release: + // if (item.mo_task_status == status) + // { + // throw Oops.Bah("已下发的不能再下发"); + // } + // break; + case PrdTaskBehavior.Start: + if (item.mo_task_status == status) + { + throw Oops.Bah("已开始的不能再开始"); + } + + if (item.mo_task_status!=DictConst.ToBeStartedEnCode || item.mo_task_status!=DictConst.MoStatusPauseCode) + { + throw Oops.Bah("状态错误无法开始"); + } + break; + case PrdTaskBehavior.Pause: + if (item.mo_task_status == status) + { + throw Oops.Bah("已暂停的不能再暂停"); + } + if (item.mo_task_status!=DictConst.InProgressEnCode) + { + throw Oops.Bah("状态错误无法暂停"); + } + break; + case PrdTaskBehavior.Compled: + if (item.mo_task_status == status) + { + throw Oops.Bah("已完成的不能再完成"); + } + if (item.mo_task_status!=DictConst.InProgressEnCode || item.mo_task_status!=DictConst.MoStatusPauseCode) + { + throw Oops.Bah("状态错误无法完成"); + } + break; + case PrdTaskBehavior.Closed: + if (item.mo_task_status == status) + { + throw Oops.Bah("已关闭的不能再关闭"); + } + break; + } + } + prdTaskList.ForEach(x => x.mo_task_status = status); if (behavior == PrdTaskBehavior.Start) { From 846ff28c47e43fe171f2380b1525fc241bec3ded Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Mon, 23 Oct 2023 17:35:09 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E8=B4=A8=E6=A3=80=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs | 2 ++ QcMgr/Tnb.QcMgr/QcCheckTaskService.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs index acffee6a..e2bae448 100644 --- a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs +++ b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs @@ -94,6 +94,8 @@ namespace Tnb.QcMgr.Entities public string? greaterThanValue { get; set; } public string? lessThanValue { get; set; } public string? excontentText { get; set; } + + public string? value { get; set; } public List? excontentOptions { get; set; } } public class ExcontentOption diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs index 5634bf81..7582e695 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs @@ -284,6 +284,7 @@ namespace Tnb.QcMgr Result.checknum = QcCheckExecH.checknum!; Result.status = QcCheckExecH.status!; Result.checktypes = new List>(); + Result.result = QcCheckExecH.result; var groupkeys = QcCheckExecDs.Select(p=>p.checkindex).Distinct().ToList(); foreach (var key in groupkeys) { @@ -304,6 +305,7 @@ namespace Tnb.QcMgr Item.itemdid = QcCheckExecD.id!; Item.code = QcCheckItems.Where(p => p.id == QcCheckExecD.itemid).First().code!; Item.name = QcCheckItems.Where(p => p.id == QcCheckExecD.itemid).First().name!; + Item.result = QcCheckExecD.result; Item.setData = new ExecItemData(); Item.setData.extype = QcCheckExecD.extype!; Item.setData.excontent = JSON.Deserialize(QcCheckExecD.excontent!); From c934c86756aaf57de17bb05cba621ad9b2d0769c Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 24 Oct 2023 09:56:47 +0800 Subject: [PATCH 10/22] bug --- .../PrdManage/ProductionSchedulingCrInput.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs index 54744d0d..dbf0f85d 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs @@ -37,19 +37,33 @@ namespace Tnb.ProductionMgr.Entities.Dto /// public DateTime? plan_end_date { get; set; } + // /// + // /// Desc:预计开始时间 + // /// Default: + // /// Nullable:True + // /// + // public DateTime? estimated_start_date { get; set; } + // + // /// + // /// Desc:预计结束时间 + // /// Default: + // /// Nullable:True + // /// + // public DateTime? estimated_end_date { get; set; } + /// /// Desc:预计开始时间 /// Default: /// Nullable:True /// - public DateTime? estimated_start_date { get; set; } + public string? estimated_start_date { get; set; } /// /// Desc:预计结束时间 /// Default: /// Nullable:True /// - public DateTime? estimated_end_date { get; set; } + public string? estimated_end_date { get; set; } From 339672d2bd6f45a56f475e06d70505c066b7cddd Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 24 Oct 2023 10:04:06 +0800 Subject: [PATCH 11/22] bug --- ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 39856845..55151c3d 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -681,6 +681,7 @@ namespace Tnb.ProductionMgr moTask.scheduled_qty = input.scheduled_qty; moTask.unit_id = mo.unit_id; moTask.mbom_process_id = basMbomProcess?.id ?? ""; + moTask.process_id = basMbomProcess.process_id; if (!string.IsNullOrEmpty(input.eqp_id)) { From 1aa2614d26a1b16f0c5b727417a2a48c67807f9a Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 24 Oct 2023 11:33:57 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=E6=97=B6=E9=97=B4=E4=B9=9F=E8=83=BD=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfigureMvcControllerExtensions.cs | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/apihost/Tnb.API.Entry/Extensions/ConfigureMvcControllerExtensions.cs b/apihost/Tnb.API.Entry/Extensions/ConfigureMvcControllerExtensions.cs index f783c29d..4a984aa6 100644 --- a/apihost/Tnb.API.Entry/Extensions/ConfigureMvcControllerExtensions.cs +++ b/apihost/Tnb.API.Entry/Extensions/ConfigureMvcControllerExtensions.cs @@ -1,4 +1,5 @@ -using JNPF; +using System.Globalization; +using JNPF; using JNPF.Common.Core.Filter; using JNPF.Common.Options; using JNPF.EventHandler; @@ -48,7 +49,8 @@ public static class ConfigureMvcControllerExtensions options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 格式化json输出的日期格式为时间戳 - options.SerializerSettings.Converters.Add(new NewtonsoftDateTimeJsonConverter()); + // options.SerializerSettings.Converters.Add(new NewtonsoftDateTimeJsonConverter()); + options.SerializerSettings.Converters.Add(new MyNewtonsoftDateTimeJsonConverter());//zhoukeda 2023.10.24 }); services.AddUnifyJsonOptions("special", new JsonSerializerSettings @@ -123,4 +125,41 @@ public static class ConfigureMvcControllerExtensions return services; } + + public class MyNewtonsoftDateTimeJsonConverter : NewtonsoftDateTimeJsonConverter + { + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + bool flag = NewtonsoftDateTimeJsonConverter.IsNullable(objectType); + if (reader.TokenType == JsonToken.Null || string.IsNullOrEmpty(reader.Value.ToString())) + { + if (!flag) + throw new JsonSerializationException(string.Format((IFormatProvider) CultureInfo.InvariantCulture, "Cannot convert null value to {0}.", (object) objectType)); + return (object) null; + } + long result = 0; + if (reader.TokenType == JsonToken.Integer) + result = (long) reader.Value; + else if (reader.TokenType == JsonToken.String) + { + if (!long.TryParse((string) reader.Value, out result)) + return (object) Convert.ToDateTime(reader.Value.ToString()); + return reader.TokenType == JsonToken.Date ? reader.Value : throw new JsonSerializationException(string.Format((IFormatProvider) CultureInfo.InvariantCulture, "Unexpected token parsing date. Expected Integer or String, got {0}.", (object) reader.TokenType)); + } + if (result < 0L) + return (object) DateTime.Now; + try + { + DateTime dt = Convert.ToDateTime(reader.Value.ToString()); + return dt; + } + catch (Exception e) + { + DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(result); + dateTimeOffset = dateTimeOffset.ToLocalTime(); + DateTime dateTime = dateTimeOffset.DateTime; + return (flag ? Nullable.GetUnderlyingType(objectType) : objectType) == typeof (DateTimeOffset) ? (object) new DateTimeOffset(dateTime, TimeSpan.Zero) : (object) dateTime; + } + } + } } \ No newline at end of file From 6268f63b0e9980fb4cc17bf4b3b03acf53c563ff Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Tue, 24 Oct 2023 11:42:37 +0800 Subject: [PATCH 13/22] bug --- .../PrdManage/ProductionSchedulingCrInput.cs | 32 +++++++++---------- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 4 +-- .../Tnb.ProductionMgr/PrdPackReportService.cs | 25 +++++++++++++-- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs index dbf0f85d..9d9ba5ae 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/ProductionSchedulingCrInput.cs @@ -37,33 +37,33 @@ namespace Tnb.ProductionMgr.Entities.Dto /// public DateTime? plan_end_date { get; set; } + /// + /// Desc:预计开始时间 + /// Default: + /// Nullable:True + /// + public DateTime? estimated_start_date { get; set; } + + /// + /// Desc:预计结束时间 + /// Default: + /// Nullable:True + /// + public DateTime? estimated_end_date { get; set; } + // /// // /// Desc:预计开始时间 // /// Default: // /// Nullable:True // /// - // public DateTime? estimated_start_date { get; set; } + // public string? estimated_start_date { get; set; } // // /// // /// Desc:预计结束时间 // /// Default: // /// Nullable:True // /// - // public DateTime? estimated_end_date { get; set; } - - /// - /// Desc:预计开始时间 - /// Default: - /// Nullable:True - /// - public string? estimated_start_date { get; set; } - - /// - /// Desc:预计结束时间 - /// Default: - /// Nullable:True - /// - public string? estimated_end_date { get; set; } + // public string? estimated_end_date { get; set; } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 55151c3d..0bcd8872 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1124,7 +1124,7 @@ namespace Tnb.ProductionMgr throw Oops.Bah("已开始的不能再开始"); } - if (item.mo_task_status!=DictConst.ToBeStartedEnCode || item.mo_task_status!=DictConst.MoStatusPauseCode) + if (item.mo_task_status!=DictConst.ToBeStartedEnCode && item.mo_task_status!=DictConst.MoStatusPauseCode) { throw Oops.Bah("状态错误无法开始"); } @@ -1144,7 +1144,7 @@ namespace Tnb.ProductionMgr { throw Oops.Bah("已完成的不能再完成"); } - if (item.mo_task_status!=DictConst.InProgressEnCode || item.mo_task_status!=DictConst.MoStatusPauseCode) + if (item.mo_task_status!=DictConst.InProgressEnCode && item.mo_task_status!=DictConst.MoStatusPauseCode) { throw Oops.Bah("状态错误无法完成"); } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 64b2f576..4d9a4742 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -361,7 +361,27 @@ namespace Tnb.ProductionMgr Dictionary queryJson = string.IsNullOrEmpty(input.queryJson) ? new Dictionary() : input.queryJson.ToObject>(); string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : ""; - string mo_task_status = queryJson.ContainsKey("mo_task_status") ? queryJson["mo_task_status"].ToString() : ""; + string status = queryJson.ContainsKey("status") ? queryJson["status"].ToString() : ""; + List statusList = new List(); + if (!string.IsNullOrEmpty(status)) + { + switch (status) + { + case "1": + statusList.Add(DictConst.InProgressEnCode); + statusList.Add(DictConst.MoStatusPauseCode); + break; + case "2": + statusList.Add(DictConst.ToBeScheduledEncode); + statusList.Add(DictConst.ToBeStartedEnCode); + break; + case "3": + statusList.Add(DictConst.ComplatedEnCode); + statusList.Add(DictConst.ClosedEnCode); + break; + } + } + // string mo_task_status = queryJson.ContainsKey("mo_task_status") ? queryJson["mo_task_status"].ToString() : ""; if (string.IsNullOrEmpty(input.sidx)) { input.sidx = "create_time"; @@ -380,7 +400,8 @@ namespace Tnb.ProductionMgr .LeftJoin((a,b,c,d,e,f,g,h,i,j)=>a.mo_id==j.id) .Where((a, b) => a.workstation_id == input.stationId && (a.mo_task_status == DictConst.ToBeStartedEnCode || a.mo_task_status == DictConst.MoStatusPauseCode || a.mo_task_status == DictConst.ComplatedEnCode || a.mo_task_status == DictConst.InProgressEnCode) ) .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) - .WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) + //.WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) + .WhereIF(statusList.Count>0,a=>statusList.Contains(a.mo_task_status)) .Select((a, b, c, d, e,f,g,h,i,j) => new PADPackageTaskPageOutput { id = a.id, From 06349a3468ae4a216335b33da971513cfd8fa2a9 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Wed, 25 Oct 2023 11:16:38 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.EquipMgr/EqpRepairApplyService.cs | 127 +++++++++---- .../Tnb.EquipMgr/EqpRepairOutApplyService.cs | 167 +++++++++--------- 2 files changed, 180 insertions(+), 114 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index 98d122ea..b0d4b5cf 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -111,23 +111,48 @@ namespace Tnb.EquipMgr { string id = dic["id"]; string repairerId = dic["repairerId"]; - await _repository.UpdateAsync(x => new EqpRepairApply() + EqpRepairApply eqpRepairApply = await _repository.GetSingleAsync(x=>x.id==id); + if (eqpRepairApply.status == RepairApplyStatus.TOBEEXECUTED || + eqpRepairApply.status == RepairApplyStatus.REFUSE) { - repairer_id = repairerId, - status = RepairApplyStatus.TOBERECEIVED, - }, x => x.id == id); - return "指派成功"; + await _repository.UpdateAsync(x => new EqpRepairApply() + { + repairer_id = repairerId, + status = RepairApplyStatus.TOBERECEIVED, + }, x => x.id == id); + return "指派成功"; + } + else + { + throw Oops.Bah("状态错误"); + } + } [HttpPost] public async Task Receive(Dictionary dic) { string id = dic["id"]; - await _repository.UpdateAsync(x => new EqpRepairApply() + EqpRepairApply eqpRepairApply = await _repository.GetSingleAsync(x=>x.id==id); + if (eqpRepairApply.status == RepairApplyStatus.TOBERECEIVED) { - status = RepairApplyStatus.RECEIVED, - }, x => x.id == id); - return "接收成功"; + if (_userManager.UserId == eqpRepairApply.repairer_id) + { + await _repository.UpdateAsync(x => new EqpRepairApply() + { + status = RepairApplyStatus.RECEIVED, + }, x => x.id == id); + return "接收成功"; + } + else + { + throw Oops.Bah("该任务没有指派给您,无法接收"); + } + } + else + { + throw Oops.Bah("状态错误"); + } } [HttpPost] @@ -138,21 +163,37 @@ namespace Tnb.EquipMgr var db = _repository.AsSugarClient(); DbResult result = await db.Ado.UseTranAsync(async () => { - await _repository.UpdateAsync(x => new EqpRepairApply() + EqpRepairApply eqpRepairApply = await _repository.GetSingleAsync(x=>x.id==id); + if (eqpRepairApply.status == RepairApplyStatus.TOBERECEIVED) { - status = RepairApplyStatus.REFUSE, - }, x => x.id == id); - EqpRepairRefuse eqpRepairRefuse = new EqpRepairRefuse() + if (_userManager.UserId == eqpRepairApply.repairer_id) + { + await _repository.UpdateAsync(x => new EqpRepairApply() + { + status = RepairApplyStatus.REFUSE, + }, x => x.id == id); + EqpRepairRefuse eqpRepairRefuse = new EqpRepairRefuse() + { + repair_apply_id = id, + reason = reason, + create_id = _userManager.UserId, + create_time = DateTime.Now, + org_id = _userManager.GetUserInfo().Result.organizeId + }; + await db.Insertable(eqpRepairRefuse).ExecuteCommandAsync(); + } + else + { + throw Oops.Bah("该任务没有指派给您,无法拒绝"); + } + } + else { - repair_apply_id = id, - reason = reason, - create_id = _userManager.UserId, - create_time = DateTime.Now, - org_id = _userManager.GetUserInfo().Result.organizeId - }; - await db.Insertable(eqpRepairRefuse).ExecuteCommandAsync(); + throw Oops.Bah("状态错误"); + } + }); - if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + if(!result.IsSuccess) throw Oops.Oh(result.ErrorMessage); return "拒绝成功"; } @@ -166,23 +207,39 @@ namespace Tnb.EquipMgr [HttpPost] public async Task Register(RepairApplyRegisterInput input) { - string status = input.is_out_apply==1 ? RepairApplyStatus.TOBEOUTAPPLY : RepairApplyStatus.COMPLETED; - await _repository.UpdateAsync(x => new EqpRepairApply() + EqpRepairApply eqpRepairApply = await _repository.GetSingleAsync(x=>x.id==input.id); + if (eqpRepairApply.status == RepairApplyStatus.TOBERECEIVED) { - fault_id = input.fault_id, - is_complete = input.is_complete, - complete_time = input.complete_time, - repair_take_time = input.repair_take_time, - is_halt = input.is_halt, - halt_take_time = input.halt_take_time, - repair_description = input.repair_description, - repair_img = input.repair_img, - is_out_apply = input.is_out_apply, - status = status, - }, x => x.id == input.id); + if (_userManager.UserId == eqpRepairApply.repairer_id) + { + string status = input.is_out_apply==1 ? RepairApplyStatus.TOBEOUTAPPLY : RepairApplyStatus.COMPLETED; + await _repository.UpdateAsync(x => new EqpRepairApply() + { + fault_id = input.fault_id, + is_complete = input.is_complete, + complete_time = input.complete_time, + repair_take_time = input.repair_take_time, + is_halt = input.is_halt, + halt_take_time = input.halt_take_time, + repair_description = input.repair_description, + repair_img = input.repair_img, + is_out_apply = input.is_out_apply, + status = status, + }, x => x.id == input.id); + return "登记成功"; + } + else + { + throw Oops.Bah("您不是责任人"); + } + } + else + { + throw Oops.Bah("状态错误"); + } - return "登记成功"; + } [HttpPost] diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs index 173720bd..a4fd2432 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs @@ -51,91 +51,66 @@ namespace Tnb.EquipMgr [HttpPost] public async Task OutApply(RepairOutApplyInput input) { - - var db = _repository.AsSugarClient(); - string id = string.IsNullOrEmpty(input.id) ? SnowflakeIdHelper.NextId() : input.id; - DbResult result = await db.Ado.UseTranAsync(async () => + EqpRepairApply eqpRepairApply = await _repository.AsSugarClient().Queryable().SingleAsync(x=>x.id==input.repair_apply_id); + if (eqpRepairApply.status == RepairApplyStatus.TOBEOUTAPPLY || + eqpRepairApply.status == RepairApplyStatus.APPROVENOTPASS) { - if (string.IsNullOrEmpty(input.id)) + var db = _repository.AsSugarClient(); + string id = string.IsNullOrEmpty(input.id) ? SnowflakeIdHelper.NextId() : input.id; + DbResult result = await db.Ado.UseTranAsync(async () => { - // await _repository.InsertAsync(new EqpRepairOutApply - // { - // id = id, - // repair_apply_id = input.repair_apply_id, - // equip_id = input.equip_id, - // supplier_id = input.supplier_id, - // estimated_cost = input.estimated_cost, - // construction_period_requirement = input.construction_period_requirement, - // out_apply_reason = input.out_apply_reason, - // remark = input.remark, - // create_id = _userManager.UserId, - // create_time = DateTime.Now, - // approve_status = RepairOutApplyStatus.TOBEAPPROVE, - // }); - } - else - { - // await _repository.UpdateAsync(x=>new EqpRepairOutApply - // { - // repair_apply_id = input.repair_apply_id, - // equip_id = input.equip_id, - // supplier_id = input.supplier_id, - // estimated_cost = input.estimated_cost, - // construction_period_requirement = input.construction_period_requirement, - // out_apply_reason = input.out_apply_reason, - // remark = input.remark, - // create_id = _userManager.UserId, - // create_time = DateTime.Now, - // approve_status = RepairOutApplyStatus.TOBEAPPROVE, - // },x=>x.id==input.id); - } - - await db.Updateable() - .SetColumns(x=>x.status == RepairApplyStatus.OUTAPPLYAPPROVE) - .Where(x=>x.id==input.repair_apply_id).ExecuteCommandAsync(); - - - - }); - - if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); - - if (result.IsSuccess) - { - if (string.IsNullOrEmpty(input.id)) - { - await _flowTaskService.Create(new FlowTaskSubmitModel() + if (string.IsNullOrEmpty(input.id)) { - flowId = flowId, - parentId = "0", - formData = new JObject() - { - {"id",id}, - {"flowId",flowId}, - {"repair_apply_id",input.repair_apply_id}, - {"equip_id",input.equip_id}, - {"create_id",_userManager.UserId}, - {"supplier_id",input.supplier_id}, - {"estimated_cost",input.estimated_cost}, - {"construction_period_requirement",input.construction_period_requirement}, - {"out_apply_reason",input.out_apply_reason}, - {"remark",input.remark}, - {"approve_status",RepairOutApplyStatus.TOBEAPPROVE}, - } - - }); - } - else - { - var entity = await _repository.GetSingleAsync(x=>x.id==input.id); - if (entity != null) + // await _repository.InsertAsync(new EqpRepairOutApply + // { + // id = id, + // repair_apply_id = input.repair_apply_id, + // equip_id = input.equip_id, + // supplier_id = input.supplier_id, + // estimated_cost = input.estimated_cost, + // construction_period_requirement = input.construction_period_requirement, + // out_apply_reason = input.out_apply_reason, + // remark = input.remark, + // create_id = _userManager.UserId, + // create_time = DateTime.Now, + // approve_status = RepairOutApplyStatus.TOBEAPPROVE, + // }); + } + else { - - await _flowTaskService.Update("",new FlowTaskSubmitModel() + // await _repository.UpdateAsync(x=>new EqpRepairOutApply + // { + // repair_apply_id = input.repair_apply_id, + // equip_id = input.equip_id, + // supplier_id = input.supplier_id, + // estimated_cost = input.estimated_cost, + // construction_period_requirement = input.construction_period_requirement, + // out_apply_reason = input.out_apply_reason, + // remark = input.remark, + // create_id = _userManager.UserId, + // create_time = DateTime.Now, + // approve_status = RepairOutApplyStatus.TOBEAPPROVE, + // },x=>x.id==input.id); + } + + await db.Updateable() + .SetColumns(x=>x.status == RepairApplyStatus.OUTAPPLYAPPROVE) + .Where(x=>x.id==input.repair_apply_id).ExecuteCommandAsync(); + + + + }); + + if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + + if (result.IsSuccess) + { + if (string.IsNullOrEmpty(input.id)) + { + await _flowTaskService.Create(new FlowTaskSubmitModel() { flowId = flowId, parentId = "0", - id = entity?.flow_task_id??"", formData = new JObject() { {"id",id}, @@ -153,9 +128,43 @@ namespace Tnb.EquipMgr }); } + else + { + var entity = await _repository.GetSingleAsync(x=>x.id==input.id); + if (entity != null) + { + + await _flowTaskService.Update("",new FlowTaskSubmitModel() + { + flowId = flowId, + parentId = "0", + id = entity?.flow_task_id??"", + formData = new JObject() + { + {"id",id}, + {"flowId",flowId}, + {"repair_apply_id",input.repair_apply_id}, + {"equip_id",input.equip_id}, + {"create_id",_userManager.UserId}, + {"supplier_id",input.supplier_id}, + {"estimated_cost",input.estimated_cost}, + {"construction_period_requirement",input.construction_period_requirement}, + {"out_apply_reason",input.out_apply_reason}, + {"remark",input.remark}, + {"approve_status",RepairOutApplyStatus.TOBEAPPROVE}, + } + + }); + } + } } + return result.IsSuccess ? "操作成功" : result.ErrorMessage; } - return result.IsSuccess ? "操作成功" : result.ErrorMessage; + else + { + throw Oops.Bah("状态错误"); + } + } [HttpPost] From a0a59c0ae71498d31803211b948fff9aec3007d2 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Thu, 26 Oct 2023 14:59:13 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=82=B9=E6=A3=80?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E5=80=92=E5=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 5dd63d33..fa0bbcc6 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -80,6 +80,7 @@ namespace Tnb.EquipMgr repeat_user_id = d.RealName, repeat_user_id_id = a.repeat_user_id, }) + .OrderByDescending(a=>a.create_time) .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; From 82017178dd490b05926fa58704e1a0fda9ea97ad Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Thu, 26 Oct 2023 15:56:38 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E9=87=8D=E5=86=99=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E4=BF=9D=E5=85=BB=E6=89=A7=E8=A1=8C=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3+bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/EqpMaintainRecordListOutput.cs | 25 ++++++++++ .../Dto/EqpSpotInsRecordListOutput.cs | 4 ++ .../Tnb.EquipMgr/EquMaintainRecordService.cs | 48 +++++++++++++++++++ .../Tnb.EquipMgr/EquSpotInsRecordService.cs | 9 ++-- 4 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs new file mode 100644 index 00000000..14af7e74 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs @@ -0,0 +1,25 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class EqpMaintainRecordListOutput + { + public string id { get; set; } + public string equip_id { get; set; } + public string equip_id_id { get; set; } + public string status { get; set; } + public string result { get; set; } + public string result_remark { get; set; } + public string repeat_result { get; set; } + public string repeat_remark { get; set; } + public string create_time { get; set; } + public string execute_time { get; set; } + public string repeat_user_id { get; set; } + public string repeat_user_id_id { get; set; } + public string execute_user_id{ get; set; } + public string execute_user_id_id { get; set; } + public string repeat_time { get; set; } + + public DateTime? date_repeat_time { get; set; } + public DateTime? date_create_time { get; set; } + public DateTime? date_execute_time { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs index f09d07ff..97af0a07 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpSpotInsRecordListOutput.cs @@ -15,5 +15,9 @@ namespace Tnb.EquipMgr.Entities.Dto public string spot_record_user_id{ get; set; } public string spot_record_user_id_id { get; set; } public string repeat_time { get; set; } + + public DateTime? date_repeat_time { get; set; } + public DateTime? date_create_time { get; set; } + public DateTime? date_spot_record_date_time { get; set; } } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index 899d9dbf..c8268edc 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -2,6 +2,7 @@ using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Filter; +using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; @@ -9,6 +10,7 @@ using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Entitys.System; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; @@ -44,8 +46,54 @@ namespace Tnb.EquipMgr _visualDevService = visualDevService; _runService = runService; _userManager = userManager; + OverideFuncs.GetListAsync = GetList; // OverideFuncs.UpdateAsync = ExecuteSpotIns; } + + private async Task GetList(VisualDevModelListQueryInput input) + { + var db = _repository.AsSugarClient(); + Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); + string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; + string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; + var list = await db.Queryable((a, b, c,d) => new object[] + { + JoinType.Left, a.equip_id == b.id, + JoinType.Left, a.execute_user_id == c.Id, + JoinType.Left, a.repeat_user_id == d.Id, + }) + .WhereIF(!string.IsNullOrEmpty(status),(a,b,c)=>a.status==status) + .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) + .Select((a, b, c,d) => new EqpMaintainRecordListOutput + { + id = a.id, + equip_id = b.code+"/"+b.name, + equip_id_id = a.equip_id, + status = a.status, + result = a.result=="1" ? "合格" : "不合格", + repeat_result = a.repeat_result=="1" ? "合格" : "不合格", + date_create_time = a.create_time, + date_execute_time = a.execute_time, + date_repeat_time = a.repeat_time, + execute_user_id = c.RealName, + execute_user_id_id = a.execute_user_id, + repeat_user_id = d.RealName, + repeat_user_id_id = a.repeat_user_id, + result_remark = a.result_remark, + repeat_remark = a.repeat_remark + }) + .OrderByDescending(a=>a.create_time) + .Mapper(a => + { + a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; + a.create_time = a.date_create_time == null ? "" : a.date_create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + a.execute_time = a.date_execute_time == null ? "" : a.date_execute_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + a.repeat_time = a.date_repeat_time == null ? "" : a.date_repeat_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + }) + .ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50)); + + return PageResult.SqlSugarPageResult(list); + } /// /// 执行设备保养计划 diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index fa0bbcc6..343d124a 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -72,9 +72,9 @@ namespace Tnb.EquipMgr status = a.status, result = a.result=="1" ? "合格" : "不合格", repeat_result = a.repeat_result=="1" ? "合格" : "不合格", - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - spot_record_date_time = a.spot_record_date_time==null ? "" : a.spot_record_date_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - repeat_time = a.repeat_time==null ? "" : a.repeat_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + date_create_time = a.create_time, + date_spot_record_date_time = a.spot_record_date_time, + date_repeat_time = a.repeat_time, spot_record_user_id = c.RealName, spot_record_user_id_id = a.spot_record_user_id, repeat_user_id = d.RealName, @@ -84,6 +84,9 @@ namespace Tnb.EquipMgr .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; + a.create_time = a.date_create_time == null ? "" : a.date_create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + a.spot_record_date_time = a.date_spot_record_date_time == null ? "" : a.date_spot_record_date_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + a.repeat_time = a.date_repeat_time == null ? "" : a.date_repeat_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); }) .ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50)); From 8e59b885c65c0128efdb9e5b071a4c312102c10c Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 11:11:47 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E4=BF=9D=E5=85=BB=E6=97=B6=E9=97=B4=20=E6=8A=A5=E4=BF=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E5=80=92?= =?UTF-8?q?=E5=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs | 2 ++ EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 2 ++ EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs index 14af7e74..807b00eb 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs @@ -17,9 +17,11 @@ namespace Tnb.EquipMgr.Entities.Dto public string execute_user_id{ get; set; } public string execute_user_id_id { get; set; } public string repeat_time { get; set; } + public string last_execute_time { get; set; } public DateTime? date_repeat_time { get; set; } public DateTime? date_create_time { get; set; } public DateTime? date_execute_time { get; set; } + public DateTime? date_last_execute_time { get; set; } } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index b0d4b5cf..d22e374f 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -270,6 +270,7 @@ namespace Tnb.EquipMgr .LeftJoin((a,b)=>a.apply_user_id==b.Id) .LeftJoin((a,b,c)=>a.repairer_id==c.Id) .Where(a=>a.equip_id==input.equip_id) + .OrderByDescending(a=>a.create_time) .Select((a,b,c) => new EquipRepairRecordQueryOutput { id = a.id, @@ -323,6 +324,7 @@ namespace Tnb.EquipMgr .LeftJoin((a,b,c,d,e,f)=>e.Id==f.DictionaryTypeId && a.status==f.EnCode) .WhereIF(!string.IsNullOrEmpty(input.equip_info),(a,b,c,d)=>d.code.Contains(input.equip_info) || d.name.Contains(input.equip_info)) .WhereIF(!string.IsNullOrEmpty(input.status),(a,b,c,d)=>statusList.Contains(a.status)) + .OrderByDescending(a=>a.create_time) .Select((a,b,c,d,e,f) => new PadRepairListOutput { id = a.id, diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index c8268edc..2586b191 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -80,7 +80,8 @@ namespace Tnb.EquipMgr repeat_user_id = d.RealName, repeat_user_id_id = a.repeat_user_id, result_remark = a.result_remark, - repeat_remark = a.repeat_remark + repeat_remark = a.repeat_remark, + date_last_execute_time = SqlFunc.Subqueryable().Where(x=>a.equip_id==x.equip_id && a.execute_time!=null).OrderByDesc(x=>x.execute_time).Select(x=>x.execute_time) }) .OrderByDescending(a=>a.create_time) .Mapper(a => @@ -89,6 +90,7 @@ namespace Tnb.EquipMgr a.create_time = a.date_create_time == null ? "" : a.date_create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); a.execute_time = a.date_execute_time == null ? "" : a.date_execute_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); a.repeat_time = a.date_repeat_time == null ? "" : a.date_repeat_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); + a.last_execute_time = a.date_last_execute_time == null ? "" : a.date_last_execute_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); }) .ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50)); From 85d2a68e98670b3a4fed009ba4342caddb9f1016 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 14:41:33 +0800 Subject: [PATCH 18/22] =?UTF-8?q?sqlsugar=E7=9A=84PostgreSQL=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=20=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E5=88=86=E9=92=9Fmm=E6=94=B9=E4=B8=BAmi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/DbTimeFormat.cs | 15 +++++++++++ BasicData/Tnb.BasicData/BasMbomService.cs | 4 +-- EquipMgr/Tnb.EquipMgr/EqpDaqService.cs | 3 ++- .../Tnb.EquipMgr/EqpRepairApplyService.cs | 8 +++--- .../Tnb.EquipMgr/EquMaintainRecordService.cs | 8 +++--- .../Tnb.EquipMgr/EquSpotInsRecordService.cs | 9 ++++--- .../Dto/PrdManage/PADPackageTaskPageOutput.cs | 4 +++ .../PrdCancelCloseDownService.cs | 4 +-- .../Tnb.ProductionMgr/PrdMoService.cs | 22 ++++++++-------- .../PrdMoTaskIssueService.cs | 2 +- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 26 +++++++++++-------- .../Tnb.ProductionMgr/PrdPackReportService.cs | 21 +++++++++------ .../ProductionReportRecordService.cs | 2 +- 13 files changed, 79 insertions(+), 49 deletions(-) create mode 100644 BasicData/Tnb.BasicData.Entities/Consts/DbTimeFormat.cs diff --git a/BasicData/Tnb.BasicData.Entities/Consts/DbTimeFormat.cs b/BasicData/Tnb.BasicData.Entities/Consts/DbTimeFormat.cs new file mode 100644 index 00000000..640564f5 --- /dev/null +++ b/BasicData/Tnb.BasicData.Entities/Consts/DbTimeFormat.cs @@ -0,0 +1,15 @@ +namespace Tnb.BasicData +{ + public static class DbTimeFormat + { + /// + /// 2024-10-27 10:10 + /// + public const string MM = "yyyy-MM-dd HH:mi"; + + /// + /// 2024-10-27 10:10:10 + /// + public const string SS = "yyyy-MM-dd HH:mi:ss"; + } +} \ No newline at end of file diff --git a/BasicData/Tnb.BasicData/BasMbomService.cs b/BasicData/Tnb.BasicData/BasMbomService.cs index dbf68bd7..ace5e263 100644 --- a/BasicData/Tnb.BasicData/BasMbomService.cs +++ b/BasicData/Tnb.BasicData/BasMbomService.cs @@ -229,8 +229,8 @@ namespace Tnb.BasicData bom_id = a.id, material_code = b.code, material_name = b.name, - start_time = a.start_time.HasValue ? a.start_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : null, - end_time = a.end_time.HasValue ? a.end_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : null, + start_time = a.start_time.HasValue ? a.start_time.Value.ToString(DbTimeFormat.SS) : null, + end_time = a.end_time.HasValue ? a.end_time.Value.ToString(DbTimeFormat.SS) : null, version = a.version, route_id = c.id, route_name = c.name, diff --git a/EquipMgr/Tnb.EquipMgr/EqpDaqService.cs b/EquipMgr/Tnb.EquipMgr/EqpDaqService.cs index 6c233f6d..39e605a2 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpDaqService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpDaqService.cs @@ -9,6 +9,7 @@ using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; +using Tnb.BasicData; namespace Tnb.EquipMgr { @@ -48,7 +49,7 @@ namespace Tnb.EquipMgr id = a.id, data_source = a.data_source, create_id = b.RealName, - create_time = a.create_time==null ? null : a.create_time.Value.ToString("yyyy-MM-dd HH:mm"), + create_time = a.create_time==null ? null : a.create_time.Value.ToString(DbTimeFormat.MM), data_type = a.data_type, enabled = a.enabled==1 ? "是" : "否", equip_id = a.equip_id, diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index d22e374f..883d2bc5 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -281,7 +281,7 @@ namespace Tnb.EquipMgr is_ugent = a.is_ugent==1 ? "是" : "否", description = a.description, repair_description = a.repair_description, - complete_time = a.complete_time==null ? null : a.complete_time.Value.ToString("yyyy-MM-dd HH:mm"), + complete_time = a.complete_time==null ? null : a.complete_time.Value.ToString(DbTimeFormat.MM), repairer_id = c.RealName }).ToPagedListAsync(input.currentPage, input.pageSize); @@ -336,9 +336,9 @@ namespace Tnb.EquipMgr apply_user_id_id =b.Id, is_ugent = a.is_ugent==1 ? "是" : "否", description = a.description, - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - complete_time = a.complete_time==null ? "" : a.complete_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), - expect_complete_time = a.expect_complete_time==null ? "" : a.expect_complete_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" : a.create_time.Value.ToString(DbTimeFormat.SS), + complete_time = a.complete_time==null ? "" : a.complete_time.Value.ToString(DbTimeFormat.SS), + expect_complete_time = a.expect_complete_time==null ? "" : a.expect_complete_time.Value.ToString(DbTimeFormat.SS), repairer_id = c.RealName, repairer_id_id = c.Id, remark = a.remark, diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index 2586b191..06a35ca7 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -235,17 +235,17 @@ namespace Tnb.EquipMgr { id = a.id, attachment = a.attachment, - create_time = a.create_time==null ? null : a.create_time.Value.ToString("yyyy-MM-dd HH:mm"), + create_time = a.create_time==null ? null : a.create_time.Value.ToString(DbTimeFormat.MM), equip_id = b.code, equip_id_id = a.equip_id, repeat_remark = a.repeat_remark, repeat_result = a.repeat_result=="1"?"合格":"不合格", - repeat_time = a.repeat_time==null ? null : a.repeat_time.Value.ToString("yyyy-MM-dd HH:mm"), + repeat_time = a.repeat_time==null ? null : a.repeat_time.Value.ToString(DbTimeFormat.MM), repeat_user_id = d.RealName, result = a.result=="1"?"合格":"不合格", result_remark = a.result_remark, maintain_tem_equip_id = a.maintain_tem_equip_id, - execute_time = a.execute_time==null ? null : a.execute_time.Value.ToString("yyyy-MM-dd HH:mm"), + execute_time = a.execute_time==null ? null : a.execute_time.Value.ToString(DbTimeFormat.MM), execute_user_id = c.RealName, status = SqlFunc.IF(a.status.Equals("1")).Return("待执行").ElseIF(a.status.Equals("2")).Return("待复核").ElseIF(a.status.Equals("3")).Return("已完成").End("") }).ToPagedListAsync(input.currentPage, input.pageSize); @@ -272,7 +272,7 @@ namespace Tnb.EquipMgr equip_id = a.equip_id, equip_code = b.code, equip_name = b.name, - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" : a.create_time.Value.ToString(DbTimeFormat.SS), result_remark = a.result_remark, result = a.result, status = a.status, diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 343d124a..8f74ae18 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -19,6 +19,7 @@ using Tnb.BasicData.Entities.Dto; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; +using Tnb.BasicData; namespace Tnb.EquipMgr { @@ -194,16 +195,16 @@ namespace Tnb.EquipMgr { id = a.id, attachment = a.attachment, - create_time = a.create_time==null ? null : a.create_time.Value.ToString("yyyy-MM-dd HH:mm"), + create_time = a.create_time==null ? null : a.create_time.Value.ToString(DbTimeFormat.MM), equip_id = a.equip_id, repeat_remark = a.repeat_remark, repeat_result = a.repeat_result=="1"?"合格":"不合格", - repeat_time = a.repeat_time==null ? null : a.repeat_time.Value.ToString("yyyy-MM-dd HH:mm"), + repeat_time = a.repeat_time==null ? null : a.repeat_time.Value.ToString(DbTimeFormat.MM), repeat_user_id = b.RealName, result = a.result=="1"?"合格":"不合格", result_remark = a.result_remark, spot_ins_tem_equip_id = a.spot_ins_tem_equip_id, - spot_record_date_time = a.spot_record_date_time==null ? null :a.spot_record_date_time.Value.ToString("yyyy-MM-dd HH:mm"), + spot_record_date_time = a.spot_record_date_time==null ? null :a.spot_record_date_time.Value.ToString(DbTimeFormat.MM), spot_record_user_id = a.spot_record_user_id, status = SqlFunc.IF(a.status.Equals("1")).Return("待执行").ElseIF(a.status.Equals("2")).Return("待复核").ElseIF(a.status.Equals("3")).Return("已完成").End("") }).ToPagedListAsync(input.currentPage, input.pageSize); @@ -230,7 +231,7 @@ namespace Tnb.EquipMgr equip_id = a.equip_id, equip_code = b.code, equip_name = b.name, - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" : a.create_time.Value.ToString(DbTimeFormat.SS), result_remark = a.result_remark, result = a.result, status = a.status, diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs index 545a5690..0c618be8 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs @@ -122,5 +122,9 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage /// 预计结束时间 /// public string? plan_end_date { get; set; } + /// + /// 实际完工日期 + /// + public string? act_end_date { get; set; } } } \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdCancelCloseDownService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdCancelCloseDownService.cs index c4ee9108..d2d3806c 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdCancelCloseDownService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdCancelCloseDownService.cs @@ -167,8 +167,8 @@ namespace Tnb.ProductionMgr { eqp_code = it.eqp_code, eqp_name = it.eqp_name, - closedown_start_time = it.closedown_start_time.HasValue ? it.closedown_start_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : null, - closedown_end_time = it.closedown_end_time.HasValue ? it.closedown_end_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : null, + closedown_start_time = it.closedown_start_time.HasValue ? it.closedown_start_time.Value.ToString(DbTimeFormat.SS) : null, + closedown_end_time = it.closedown_end_time.HasValue ? it.closedown_end_time.Value.ToString(DbTimeFormat.SS) : null, closedown_time = it.closedown_time, }) .ToListAsync(); diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs index 593aa663..823e74c8 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs @@ -396,8 +396,8 @@ namespace Tnb.ProductionMgr id = x.id, mo_task_code = x.mo_task_code, mo_task_status = y.FullName, - estimated_start_date = x.estimated_start_date==null ? "" : x.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = x.estimated_end_date==null ? "" : x.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = x.estimated_start_date==null ? "" : x.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = x.estimated_end_date==null ? "" : x.estimated_end_date.Value.ToString(DbTimeFormat.SS), scheduled_qty = x.scheduled_qty, reported_work_qty = x.reported_work_qty, scrap_qty = x.scrap_qty, @@ -456,8 +456,8 @@ namespace Tnb.ProductionMgr material_code = b.code, material_name = b.name, material_standard = b.material_standard, - act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - act_end_date = a.act_end_date==null ? "" : a.act_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") + act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString(DbTimeFormat.SS), + act_end_date = a.act_end_date==null ? "" : a.act_end_date.Value.ToString(DbTimeFormat.SS) }).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } @@ -500,8 +500,8 @@ namespace Tnb.ProductionMgr material_code = b.code, material_name = b.name, material_standard = b.material_standard, - act_start_date = a.act_start_date == null ? "" : a.act_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - act_end_date = a.act_end_date == null ? "" : a.act_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + act_start_date = a.act_start_date == null ? "" : a.act_start_date.Value.ToString(DbTimeFormat.SS), + act_end_date = a.act_end_date == null ? "" : a.act_end_date.Value.ToString(DbTimeFormat.SS), workshop_name = e.FullName, station_name = d.FullName, equip_code = f.code @@ -525,8 +525,8 @@ namespace Tnb.ProductionMgr material_code = b.code, material_name = b.name, material_standard = b.material_standard, - act_start_date = a.act_start_date == null ? "" : a.act_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - act_end_date = a.act_end_date == null ? "" : a.act_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + act_start_date = a.act_start_date == null ? "" : a.act_start_date.Value.ToString(DbTimeFormat.SS), + act_end_date = a.act_end_date == null ? "" : a.act_end_date.Value.ToString(DbTimeFormat.SS), workline_name = c.FullName, mbom_version = d.version }).ToListAsync(); @@ -751,8 +751,8 @@ namespace Tnb.ProductionMgr batch = a.batch, supplier_name = d.supplier_name, check_conclusion = c.check_conclusion, - instock_time = c.instock_time.ToString("yyyy-MM-dd HH:mm:ss"), - feeding_time = e.create_time == null ? "" : e.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + instock_time = c.instock_time.ToString(DbTimeFormat.SS), + feeding_time = e.create_time == null ? "" : e.create_time.Value.ToString(DbTimeFormat.SS), }).ToListAsync(); } @@ -984,7 +984,7 @@ namespace Tnb.ProductionMgr feeding_detail_id = x.id, feeding_time = y.create_time == null ? "" - : y.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + : y.create_time.Value.ToString(DbTimeFormat.SS), num = x.num, check_conclusion = mp.check_conclusion, feeding_name = z.RealName, diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskIssueService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskIssueService.cs index 9a07fb20..72fd26ad 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskIssueService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskIssueService.cs @@ -128,7 +128,7 @@ namespace Tnb.ProductionMgr mo_task_status = d.FullName, plan_qty = f.plan_qty, scheduled_qty = a.scheduled_qty, - create_time = a.create_time==null ? "" :a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" :a.create_time.Value.ToString(DbTimeFormat.SS), }).OrderByDescending(a=>a.create_time).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 0bcd8872..e04856d5 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -320,13 +320,13 @@ namespace Tnb.ProductionMgr eqp_name = e.name, eqp_type_code = SqlFunc.Subqueryable().Where(it => it.id == e.equip_type_id).Select(it => it.code), mo_task_qty = SqlFunc.Subqueryable().Where(a => a.mo_id == moId).Count(), - estimated_start_date = a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = a.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = a.estimated_end_date.Value.ToString(DbTimeFormat.SS), plan_qty = a.scheduled_qty, complete_qty = SqlFunc.IsNull(a.reported_work_qty,0)+SqlFunc.IsNull(a.scrap_qty,0), process_code = SqlFunc.Subqueryable().Where(it => it.id == a.process_id).Select(it => it.process_code), process_name = SqlFunc.Subqueryable().Where(it => it.id == a.process_id).Select(it => it.process_name), - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" : a.create_time.Value.ToString(DbTimeFormat.SS), }) .Mapper(it => { @@ -353,11 +353,11 @@ namespace Tnb.ProductionMgr process_code = e.process_code, process_name = e.process_name, mo_task_qty = SqlFunc.Subqueryable().Where(a => a.mo_id == moId).Count(), - estimated_start_date = a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = a.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = a.estimated_end_date.Value.ToString(DbTimeFormat.SS), plan_qty = a.scheduled_qty, complete_qty = SqlFunc.IsNull(a.reported_work_qty,0)+SqlFunc.IsNull(a.scrap_qty,0), - create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + create_time = a.create_time==null ? "" : a.create_time.Value.ToString(DbTimeFormat.SS), }) .Mapper(it => { @@ -399,8 +399,8 @@ namespace Tnb.ProductionMgr scheduled_qty = a.scheduled_qty, plan_qty = SqlFunc.Subqueryable().Where(it => it.id == a.mo_id).Select(it => it.plan_qty), complete_qty = a.last_process_complete_qty, - estimated_start_date = a.estimated_start_date==null ? null : a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm"), - estimated_end_date = a.estimated_end_date==null ? null : a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm"), + estimated_start_date = a.estimated_start_date==null ? null : a.estimated_start_date.Value.ToString(DbTimeFormat.MM), + estimated_end_date = a.estimated_end_date==null ? null : a.estimated_end_date.Value.ToString(DbTimeFormat.MM), bom_id = d.id, bom_version = d.version }) @@ -436,8 +436,8 @@ namespace Tnb.ProductionMgr plan_qty = d.plan_qty, process_task_qty = a.process_task_qty, complete_qty = SqlFunc.IsNull(a.reported_work_qty,0)+SqlFunc.IsNull(a.scrap_qty,0), - estimated_start_date = a.estimated_start_date==null ? null : a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm"), - estimated_end_date = a.estimated_end_date==null ? null : a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm"), + estimated_start_date = a.estimated_start_date==null ? null : a.estimated_start_date.Value.ToString(DbTimeFormat.MM), + estimated_end_date = a.estimated_end_date==null ? null : a.estimated_end_date.Value.ToString(DbTimeFormat.MM), process_name = e.process_name, bom_version = SqlFunc.Subqueryable().Where(it => it.material_id == a.material_id).Select(it => it.version) }) @@ -1163,6 +1163,10 @@ namespace Tnb.ProductionMgr { prdTaskList.ForEach(x => x.act_start_date = DateTime.Now); } + if (behavior == PrdTaskBehavior.Compled) + { + prdTaskList.ForEach(x => x.act_end_date = DateTime.Now); + } row = await db.Updateable(prdTaskList).ExecuteCommandAsync(); foreach (var item in prdTaskList) { @@ -2080,7 +2084,7 @@ namespace Tnb.ProductionMgr 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, eqp_id_id = a.eqp_id, - create_time = a.create_time==null ? "" :a.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss") + create_time = a.create_time==null ? "" :a.create_time.Value.ToString(DbTimeFormat.SS) }).OrderByDescending(a => a.create_time).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 4d9a4742..02f4e4c8 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -276,8 +276,8 @@ namespace Tnb.ProductionMgr scrap_qty = a.scrap_qty, scheduled_qty = a.scheduled_qty, reported_work_qty = a.reported_work_qty, - estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString(DbTimeFormat.SS), parent_id = a.parent_id, process_id = a.process_id, process_name = c.process_name, @@ -332,8 +332,8 @@ namespace Tnb.ProductionMgr scrap_qty = a.scrap_qty, scheduled_qty = a.scheduled_qty, reported_work_qty = a.reported_work_qty, - estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString(DbTimeFormat.SS), parent_id = a.parent_id, process_id = a.process_id, process_name = c.process_name, @@ -362,6 +362,8 @@ namespace Tnb.ProductionMgr Dictionary queryJson = string.IsNullOrEmpty(input.queryJson) ? new Dictionary() : input.queryJson.ToObject>(); string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : ""; string status = queryJson.ContainsKey("status") ? queryJson["status"].ToString() : ""; + DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; List statusList = new List(); if (!string.IsNullOrEmpty(status)) { @@ -402,6 +404,8 @@ namespace Tnb.ProductionMgr .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) //.WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) .WhereIF(statusList.Count>0,a=>statusList.Contains(a.mo_task_status)) + .WhereIF(status=="3" && start_time!=null,a=>a.act_end_date>=start_time) + .WhereIF(status=="3" && end_time!=null,a=>a.act_end_date<=end_time) .Select((a, b, c, d, e,f,g,h,i,j) => new PADPackageTaskPageOutput { id = a.id, @@ -419,8 +423,8 @@ namespace Tnb.ProductionMgr scrap_qty = a.scrap_qty, scheduled_qty = a.scheduled_qty, reported_work_qty = a.reported_work_qty, - estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + estimated_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString(DbTimeFormat.SS), + estimated_end_date = a.estimated_end_date==null ? "" : a.estimated_end_date.Value.ToString(DbTimeFormat.SS), parent_id = a.parent_id, process_id = a.process_id, process_name = c.process_name, @@ -436,8 +440,9 @@ namespace Tnb.ProductionMgr mold_cavity = g.mold_cavity, moulding_cycle = h.moulding_cycle, standard_time = i.standard_time, - act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), - plan_end_date = a.plan_end_date==null ? "" : a.plan_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"), + act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString(DbTimeFormat.SS), + act_end_date = a.act_end_date==null ? "" : a.act_end_date.Value.ToString(DbTimeFormat.SS), + plan_end_date = a.plan_end_date==null ? "" : a.plan_end_date.Value.ToString(DbTimeFormat.SS), }) .MergeTable() .OrderBy($"{input.sidx} {input.sort}") diff --git a/ProductionMgr/Tnb.ProductionMgr/ProductionReportRecordService.cs b/ProductionMgr/Tnb.ProductionMgr/ProductionReportRecordService.cs index 59ac0e14..6ebdb3ce 100644 --- a/ProductionMgr/Tnb.ProductionMgr/ProductionReportRecordService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/ProductionReportRecordService.cs @@ -126,7 +126,7 @@ namespace Tnb.ProductionMgr reported_qty = x.reported_qty, create_id = y.RealName, create_id_id = x.create_id, - create_time = x.create_time==null ? "" : x.create_time.Value.ToString("yyyy-MM-dd HH:mm"), + create_time = x.create_time==null ? "" : x.create_time.Value.ToString(DbTimeFormat.MM), batch = x.barcode }) }).ToPagedListAsync(input.currentPage, input.pageSize); From 79045a61de0f436b49bd0117a291188f1433f679 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 15:23:36 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E7=82=B9=E6=A3=80=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E6=8A=A5=E4=BF=AE=E6=B7=BB=E5=8A=A0=E6=97=B6=E9=97=B4=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=20=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/PadRepairListInput.cs | 7 +++++++ EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 16 ++++++++++++++-- .../Tnb.EquipMgr/EquMaintainRecordService.cs | 13 ++++++++++++- EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 13 ++++++++++++- 4 files changed, 45 insertions(+), 4 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs index 3d40f76a..07e8c6a7 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs @@ -5,5 +5,12 @@ namespace Tnb.EquipMgr.Entities.Dto public string status { get; set; } public string equip_info { get; set; } + + public DateTime? start_time { get; set; } + public DateTime? end_time { get; set; } + + public string sidx { get; set; } + public string sort { get; set; } + } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index 883d2bc5..1e4be533 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -101,7 +101,7 @@ namespace Tnb.EquipMgr string id = dic["id"]; await _repository.UpdateAsync(x => new EqpRepairApply() { - status = RepairApplyStatus.CLOSE + status = RepairApplyStatus.CLOSE, }, x => x.id == id); return "关闭成功"; } @@ -291,6 +291,9 @@ namespace Tnb.EquipMgr [HttpPost] public async Task GetPadRepairList(PadRepairListInput input) { + + DateTime? start_time = input.start_time; + DateTime? end_time = input.end_time; List statusList = new List(); if (!string.IsNullOrEmpty(input.status)) { @@ -315,6 +318,13 @@ namespace Tnb.EquipMgr break; } } + + if (string.IsNullOrEmpty(input.sidx)) + { + input.sidx = "create_time"; + input.sort = "desc"; + } + var db = _repository.AsSugarClient(); var result = await db.Queryable() .LeftJoin((a,b)=>a.apply_user_id==b.Id) @@ -324,7 +334,9 @@ namespace Tnb.EquipMgr .LeftJoin((a,b,c,d,e,f)=>e.Id==f.DictionaryTypeId && a.status==f.EnCode) .WhereIF(!string.IsNullOrEmpty(input.equip_info),(a,b,c,d)=>d.code.Contains(input.equip_info) || d.name.Contains(input.equip_info)) .WhereIF(!string.IsNullOrEmpty(input.status),(a,b,c,d)=>statusList.Contains(a.status)) - .OrderByDescending(a=>a.create_time) + .WhereIF(input.status=="3" && start_time!=null,a=>a.complete_time!=null && a.complete_time>=start_time) + .WhereIF(input.status=="3" && end_time!=null,a=>a.complete_time!=null && a.complete_time<=end_time) + .OrderBy($"{input.sidx} {input.sort}") .Select((a,b,c,d,e,f) => new PadRepairListOutput { id = a.id, diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index 06a35ca7..693c41da 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -56,6 +56,15 @@ namespace Tnb.EquipMgr Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; + DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; + + if (string.IsNullOrEmpty(input.sidx)) + { + input.sidx = "create_time"; + input.sort = "desc"; + } + var list = await db.Queryable((a, b, c,d) => new object[] { JoinType.Left, a.equip_id == b.id, @@ -64,6 +73,8 @@ namespace Tnb.EquipMgr }) .WhereIF(!string.IsNullOrEmpty(status),(a,b,c)=>a.status==status) .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) + .WhereIF(status=="3" && start_time!=null,a=>a.execute_time>=start_time) + .WhereIF(status=="3" && end_time!=null,a=>a.execute_time<=end_time) .Select((a, b, c,d) => new EqpMaintainRecordListOutput { id = a.id, @@ -83,7 +94,7 @@ namespace Tnb.EquipMgr repeat_remark = a.repeat_remark, date_last_execute_time = SqlFunc.Subqueryable().Where(x=>a.equip_id==x.equip_id && a.execute_time!=null).OrderByDesc(x=>x.execute_time).Select(x=>x.execute_time) }) - .OrderByDescending(a=>a.create_time) + .OrderBy($"{input.sidx} {input.sort}") .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 8f74ae18..6fc466c8 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -57,6 +57,15 @@ namespace Tnb.EquipMgr Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; + DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; + + if (string.IsNullOrEmpty(input.sidx)) + { + input.sidx = "create_time"; + input.sort = "desc"; + } + var list = await db.Queryable((a, b, c,d) => new object[] { JoinType.Left, a.equip_id == b.id, @@ -65,6 +74,8 @@ namespace Tnb.EquipMgr }) .WhereIF(!string.IsNullOrEmpty(status),(a,b,c)=>a.status==status) .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) + .WhereIF(status=="3" && start_time!=null,a=>a.spot_record_date_time>=start_time) + .WhereIF(status=="3" && end_time!=null,a=>a.spot_record_date_time<=end_time) .Select((a, b, c,d) => new EqpSpotInsRecordListOutput { id = a.id, @@ -81,7 +92,7 @@ namespace Tnb.EquipMgr repeat_user_id = d.RealName, repeat_user_id_id = a.repeat_user_id, }) - .OrderByDescending(a=>a.create_time) + .OrderBy($"{input.sidx} {input.sort}") .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; From d54ebf3cba297b8f7541af9462cc1463bae7ee7a Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 15:41:22 +0800 Subject: [PATCH 20/22] bug --- EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 9 +++++++-- EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs | 7 +++++-- EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index 1e4be533..aecbaf0e 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -321,9 +321,13 @@ namespace Tnb.EquipMgr if (string.IsNullOrEmpty(input.sidx)) { - input.sidx = "create_time"; + input.sidx = "a.create_time"; input.sort = "desc"; } + else + { + input.sidx = "a." + input.sidx; + } var db = _repository.AsSugarClient(); var result = await db.Queryable() @@ -355,7 +359,8 @@ namespace Tnb.EquipMgr repairer_id_id = c.Id, remark = a.remark, status = f.FullName - }).ToListAsync(); + }) + .ToListAsync(); return result; } diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index 693c41da..9c21e062 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -61,8 +61,11 @@ namespace Tnb.EquipMgr if (string.IsNullOrEmpty(input.sidx)) { - input.sidx = "create_time"; + input.sidx = "a.create_time"; input.sort = "desc"; + }else + { + input.sidx = "a." + input.sidx; } var list = await db.Queryable((a, b, c,d) => new object[] @@ -75,6 +78,7 @@ namespace Tnb.EquipMgr .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) .WhereIF(status=="3" && start_time!=null,a=>a.execute_time>=start_time) .WhereIF(status=="3" && end_time!=null,a=>a.execute_time<=end_time) + .OrderBy($"{input.sidx} {input.sort}") .Select((a, b, c,d) => new EqpMaintainRecordListOutput { id = a.id, @@ -94,7 +98,6 @@ namespace Tnb.EquipMgr repeat_remark = a.repeat_remark, date_last_execute_time = SqlFunc.Subqueryable().Where(x=>a.equip_id==x.equip_id && a.execute_time!=null).OrderByDesc(x=>x.execute_time).Select(x=>x.execute_time) }) - .OrderBy($"{input.sidx} {input.sort}") .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 6fc466c8..39eb0c0f 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -62,9 +62,13 @@ namespace Tnb.EquipMgr if (string.IsNullOrEmpty(input.sidx)) { - input.sidx = "create_time"; + input.sidx = "a.create_time"; input.sort = "desc"; } + else + { + input.sidx = "a." + input.sidx; + } var list = await db.Queryable((a, b, c,d) => new object[] { @@ -76,6 +80,7 @@ namespace Tnb.EquipMgr .WhereIF(!string.IsNullOrEmpty(equioInfo),(a,b,c)=>b.code.Contains(equioInfo)|| b.name.Contains(equioInfo)) .WhereIF(status=="3" && start_time!=null,a=>a.spot_record_date_time>=start_time) .WhereIF(status=="3" && end_time!=null,a=>a.spot_record_date_time<=end_time) + .OrderBy($"{input.sidx} {input.sort}") .Select((a, b, c,d) => new EqpSpotInsRecordListOutput { id = a.id, @@ -92,7 +97,6 @@ namespace Tnb.EquipMgr repeat_user_id = d.RealName, repeat_user_id_id = a.repeat_user_id, }) - .OrderBy($"{input.sidx} {input.sort}") .Mapper(a => { a.status = a.status=="1" ? "待执行" : a.status=="2" ? "待复核" : "已完成"; From bef9b53b4d3fdf423747576756e7c4d062e8c894 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 16:24:44 +0800 Subject: [PATCH 21/22] bug --- EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs | 7 +++---- EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs index 07e8c6a7..daf60528 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/PadRepairListInput.cs @@ -1,6 +1,8 @@ +using JNPF.Common.Filter; + namespace Tnb.EquipMgr.Entities.Dto { - public class PadRepairListInput + public class PadRepairListInput : PageInputBase { public string status { get; set; } @@ -9,8 +11,5 @@ namespace Tnb.EquipMgr.Entities.Dto public DateTime? start_time { get; set; } public DateTime? end_time { get; set; } - public string sidx { get; set; } - public string sort { get; set; } - } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index aecbaf0e..6a78f6c6 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -359,10 +359,9 @@ namespace Tnb.EquipMgr repairer_id_id = c.Id, remark = a.remark, status = f.FullName - }) - .ToListAsync(); + }).ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50)); - return result; + return PageResult.SqlSugarPageResult(result); } } } \ No newline at end of file From bf64b2f068fc1ef4700e99384b40980fdbd5eade Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 27 Oct 2023 16:37:24 +0800 Subject: [PATCH 22/22] bug --- EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs | 4 ++-- EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 4 ++-- ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index 9c21e062..043561b7 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -56,8 +56,8 @@ namespace Tnb.EquipMgr Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; - DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; - DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; + DateTime? start_time = queryJson.ContainsKey("start_time") ? queryJson["start_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["start_time"]) : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? queryJson["end_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["end_time"]) : null; if (string.IsNullOrEmpty(input.sidx)) { diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 39eb0c0f..936f43dc 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -57,8 +57,8 @@ namespace Tnb.EquipMgr Dictionary? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? new Dictionary() : input.queryJson.ToObject>(); string equioInfo = queryJson.ContainsKey("query_info") ? (queryJson["query_info"].ToString() ?? "") : ""; string status = queryJson.ContainsKey("status") ? (queryJson["status"].ToString() ?? "") : ""; - DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; - DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; + DateTime? start_time = queryJson.ContainsKey("start_time") ? queryJson["start_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["start_time"]) : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? queryJson["end_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["end_time"]) : null; if (string.IsNullOrEmpty(input.sidx)) { diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index 02f4e4c8..1bc6d536 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -362,8 +362,8 @@ namespace Tnb.ProductionMgr Dictionary queryJson = string.IsNullOrEmpty(input.queryJson) ? new Dictionary() : input.queryJson.ToObject>(); string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : ""; string status = queryJson.ContainsKey("status") ? queryJson["status"].ToString() : ""; - DateTime? start_time = queryJson.ContainsKey("start_time") ? (DateTime?)queryJson["start_time"] : null; - DateTime? end_time = queryJson.ContainsKey("end_time") ? (DateTime?)queryJson["end_time"] : null; + DateTime? start_time = queryJson.ContainsKey("start_time") ? queryJson["start_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["start_time"]) : null; + DateTime? end_time = queryJson.ContainsKey("end_time") ? queryJson["end_time"].ToString()=="" ? null : Convert.ToDateTime(queryJson["end_time"]) : null; List statusList = new List(); if (!string.IsNullOrEmpty(status)) {