From 18694b48a0f596f730a8d975857b6a34cabbb67b Mon Sep 17 00:00:00 2001 From: hlb <894797954@qq.com> Date: Tue, 28 Nov 2023 11:41:32 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=84=E6=A0=BC?= =?UTF-8?q?=E5=9E=8B=E5=8F=B7=E5=92=8C=E7=AE=B1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/Outputs/CarryCodeDetailOutput.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryCodeDetailOutput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryCodeDetailOutput.cs index 23538105..e3e8e379 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryCodeDetailOutput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryCodeDetailOutput.cs @@ -31,5 +31,13 @@ public string? material_name { get; set; } public string? material_id { get; set; } + /// + /// 规格型号 + /// + public string? material_specification { get; set; } + /// + /// 箱号 + /// + public string? container_no { get; set; } } } From c36679d418b2c56d0e6719881258e4ff14ad1784 Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Tue, 28 Nov 2023 14:24:20 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=82=B9=E5=B7=A1?= =?UTF-8?q?=E6=A3=80=E4=BF=9D=E5=85=BB=E7=BB=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs | 1 + .../Tnb.EquipMgr.Entities/Entity/EqpMaintainTemEquipH.cs | 3 +++ EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemH.cs | 3 +++ .../Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemEquipH.cs | 2 ++ EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemH.cs | 3 +++ EquipMgr/Tnb.EquipMgr/EqpMaintainTemService.cs | 2 ++ EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 6 +++--- EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs | 2 ++ .../Listener/GenerateMaintainPlanTimeWorker.cs | 4 ++++ .../Listener/GenerateSpotInspectionPlanTimeWorker.cs | 2 ++ 10 files changed, 25 insertions(+), 3 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs index 0b5aebc5..d6643199 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs @@ -164,4 +164,5 @@ public partial class EqpMaintainRecordH : BaseEntity /// public string? org_id { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemEquipH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemEquipH.cs index 41edadb4..62ca2c7a 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemEquipH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemEquipH.cs @@ -134,4 +134,7 @@ public partial class EqpMaintainTemEquipH : BaseEntity /// public string? org_id { get; set; } + public string? duty_user_id { get; set; } + public string? repeat_user_id { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemH.cs index 4fd84f75..6d1497d0 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainTemH.cs @@ -129,4 +129,7 @@ public partial class EqpMaintainTemH : BaseEntity /// public string? org_id { get; set; } + public string? duty_user_id { get; set; } + public string? repeat_user_id { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemEquipH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemEquipH.cs index 8e63be09..29c9e05c 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemEquipH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemEquipH.cs @@ -128,5 +128,7 @@ public partial class EqpSpotInsTemEquipH : BaseEntity /// 所属组织 /// public string? org_id { get; set; } + public string? duty_user_id { get; set; } + public string? repeat_user_id { get; set; } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemH.cs index bd5b27af..dc246db5 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsTemH.cs @@ -124,4 +124,7 @@ public partial class EqpSpotInsTemH : BaseEntity /// public string? org_id { get; set; } + public string? duty_user_id { get; set; } + public string? repeat_user_id { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr/EqpMaintainTemService.cs b/EquipMgr/Tnb.EquipMgr/EqpMaintainTemService.cs index cb689602..4cec677a 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpMaintainTemService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpMaintainTemService.cs @@ -74,6 +74,8 @@ namespace Tnb.EquipMgr org_id = eqpMaintainTemH.org_id, create_id = _userManager.UserId, create_time = DateTime.Now, + duty_user_id= eqpMaintainTemH.duty_user_id, + repeat_user_id= eqpMaintainTemH.repeat_user_id }; insertEqpMaintainTemEquipHs.Add(eqpMaintainTemEquipH); diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index d5388b94..58df680d 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -103,15 +103,15 @@ namespace Tnb.EquipMgr code = (string)input.data["code"], name = (string)input.data["name"], equip_id = (string)input.data["equip_id"], - expect_complete_time = input.data["expect_complete_time"] != null && input.data["expect_complete_time"].ToString() != "" ? Convert.ToDateTime(input.data["expect_complete_time"]) : null, + expect_complete_time = input.data["expect_complete_time"] != null && input.data["expect_complete_time"].ToString() != "" ? DateTimeOffset.FromUnixTimeSeconds(((long)input.data["expect_complete_time"]) / 1000).ToLocalTime().DateTime : null, is_ugent = (int?)(long)input.data["is_ugent"], attachment = input.data.ContainsKey("attachment") ? (string)input.data["attachment"] : null, apply_user_id = (string)input.data["apply_user_id"], create_id = (string)input.data["create_id"], create_time = DateTime.Now, org_id = (string)input.data["org_id"], - remark = (string)input.data["remark"], - description = (string)input.data["description"], + remark = input.data.ContainsKey("remark") ? (string)input.data["remark"] : "", + description = input.data.ContainsKey("description") ? (string)input.data["description"] : "", status = RepairApplyStatus.TOBEEXECUTED }; _ = await _repository.InsertAsync(eqpRepairApply); diff --git a/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs index 64dc3a39..64a5669f 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs @@ -74,6 +74,8 @@ namespace Tnb.EquipMgr org_id = eqpSpotInsTemH.org_id, create_id = _userManager.UserId, create_time = DateTime.Now, + duty_user_id= eqpSpotInsTemH.duty_user_id, + repeat_user_id= eqpSpotInsTemH.repeat_user_id }; insertEqpSpotInsTemEquipHs.Add(eqpSpotInsTemEquipH); diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs index adfe18c8..192ca171 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs @@ -105,7 +105,11 @@ namespace JNPF.TaskScheduler.Listener is_repeat = item.is_repeat, repeat_post_info_user_id = item.repeat_post_info_user_id, is_send = item.is_send, + repeat_user_id = item.repeat_user_id, + execute_user_id = item.duty_user_id, create_time = DateTime.Now, + + status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED }); } diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs index 67761aed..14889bf3 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs @@ -104,6 +104,8 @@ namespace JNPF.TaskScheduler.Listener repeat_post_info_user_id = item.repeat_post_info_user_id, is_send = item.is_send, create_time = DateTime.Now, + repeat_user_id= item.repeat_user_id, + spot_record_user_id=item.duty_user_id, status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED }); } From 61e476771fedc8d3bdf996e163142db9c4b530c8 Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Tue, 28 Nov 2023 14:32:10 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index 58df680d..f49cdbc5 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -4,6 +4,7 @@ using JNPF.Common.Filter; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; +using JNPF.JsonSerialization; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Entitys.System; using JNPF.Systems.Interfaces.System; @@ -105,7 +106,7 @@ namespace Tnb.EquipMgr equip_id = (string)input.data["equip_id"], expect_complete_time = input.data["expect_complete_time"] != null && input.data["expect_complete_time"].ToString() != "" ? DateTimeOffset.FromUnixTimeSeconds(((long)input.data["expect_complete_time"]) / 1000).ToLocalTime().DateTime : null, is_ugent = (int?)(long)input.data["is_ugent"], - attachment = input.data.ContainsKey("attachment") ? (string)input.data["attachment"] : null, + attachment = input.data.ContainsKey("attachment") ? JSON.Serialize(input.data["attachment"]) : null, apply_user_id = (string)input.data["apply_user_id"], create_id = (string)input.data["create_id"], create_time = DateTime.Now, From fc7bbf74961febb003f8e7e6e3682dd0b0bad0f0 Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Tue, 28 Nov 2023 16:53:35 +0800 Subject: [PATCH 4/7] 1 --- .../Tnb.EquipMgr/EqpRepairApplyService.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs index f49cdbc5..0617edca 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairApplyService.cs @@ -99,22 +99,22 @@ namespace Tnb.EquipMgr input.data["code"] = await _billRuleService.GetBillNumber(CodeTemplateConst.EQPREPAIR_CODE); } - EqpRepairApply eqpRepairApply = new() - { - code = (string)input.data["code"], - name = (string)input.data["name"], - equip_id = (string)input.data["equip_id"], - expect_complete_time = input.data["expect_complete_time"] != null && input.data["expect_complete_time"].ToString() != "" ? DateTimeOffset.FromUnixTimeSeconds(((long)input.data["expect_complete_time"]) / 1000).ToLocalTime().DateTime : null, - is_ugent = (int?)(long)input.data["is_ugent"], - attachment = input.data.ContainsKey("attachment") ? JSON.Serialize(input.data["attachment"]) : null, - apply_user_id = (string)input.data["apply_user_id"], - create_id = (string)input.data["create_id"], - create_time = DateTime.Now, - org_id = (string)input.data["org_id"], - remark = input.data.ContainsKey("remark") ? (string)input.data["remark"] : "", - description = input.data.ContainsKey("description") ? (string)input.data["description"] : "", - status = RepairApplyStatus.TOBEEXECUTED - }; + EqpRepairApply eqpRepairApply = new(); + + eqpRepairApply.code = (string)input.data["code"]; + eqpRepairApply.name = (string)input.data["name"]; + eqpRepairApply.equip_id = (string)input.data["equip_id"]; + eqpRepairApply.expect_complete_time = input.data["expect_complete_time"] != null && input.data["expect_complete_time"].ToString() != "" ? DateTimeOffset.FromUnixTimeSeconds(((long)input.data["expect_complete_time"]) / 1000).ToLocalTime().DateTime : null; + eqpRepairApply.is_ugent = (int?)(long)input.data["is_ugent"]; + eqpRepairApply.attachment = input.data.ContainsKey("attachment") ? JsonConvert.SerializeObject(input.data["attachment"]) : null; + eqpRepairApply.apply_user_id = (string)input.data["apply_user_id"]; + eqpRepairApply.create_id = (string)input.data["create_id"]; + eqpRepairApply.create_time = DateTime.Now; + eqpRepairApply.org_id = (string)input.data["org_id"]; + eqpRepairApply.remark = input.data.ContainsKey("remark") ? (string)input.data["remark"] : ""; + eqpRepairApply.description = input.data.ContainsKey("description") ? (string)input.data["description"] : ""; + eqpRepairApply.status = RepairApplyStatus.TOBEEXECUTED; + _ = await _repository.InsertAsync(eqpRepairApply); // VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); From ba7d9813b44f5fb63d203a079fd30db70115ef2a Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Wed, 29 Nov 2023 11:44:01 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E9=A2=86=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/EquipSparePartRecord.cs | 24 +++++++ .../Dto/EquipSparePartsQueryOutput.cs | 1 + .../Tnb.EquipMgr/EqpEquipSparePartsService.cs | 66 ++++++++++++++++++- .../GenerateMaintainPlanTimeWorker.cs | 23 ++++++- .../GenerateSpotInspectionPlanTimeWorker.cs | 21 +++++- 5 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartRecord.cs diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartRecord.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartRecord.cs new file mode 100644 index 00000000..4bd1b2b5 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartRecord.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.EquipMgr.Entities +{ + public class EquipSparePartRecordInput + { + public string? equip_id { get; set; } + } + public class EquipSparePartRecordOut + { + public string? id { get; set; } + public string? code { get; set; } + public string? name { get; set; } + public string? type { get; set; } + public string? execuser { get; set; } + public string? execdatetime { get; set; } + public int? num { get; set; } + + } +} diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartsQueryOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartsQueryOutput.cs index 33f096ac..37ccbbca 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartsQueryOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSparePartsQueryOutput.cs @@ -8,6 +8,7 @@ namespace Tnb.EquipMgr.Entities.Dto public string? code { get; set; } public string? name { get; set; } public string? specification { get; set; } + public int? num { get; set; } } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpEquipSparePartsService.cs b/EquipMgr/Tnb.EquipMgr/EqpEquipSparePartsService.cs index bcd10817..2360799e 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpEquipSparePartsService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpEquipSparePartsService.cs @@ -1,11 +1,14 @@ +using System.CodeDom.Compiler; using JNPF.Common.Core.Manager; using JNPF.Common.Filter; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; +using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Entitys.System; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; +using NPOI.SS.Formula.Functions; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; @@ -68,6 +71,9 @@ namespace Tnb.EquipMgr { queryJson = JsonConvert.DeserializeObject>(input.queryJson); } + var eqpSpareParts = await db.Queryable().ToListAsync(); + var InstockDs= await db.Queryable().ToListAsync(); + var RequisitionDs = await db.Queryable().ToListAsync(); SqlSugarPagedList result = await db.Queryable() .LeftJoin((a, b) => a.spare_parts_id == b.id) .LeftJoin((a, b, c) => c.EnCode == Tnb.BasicData.DictConst.SparePartsType && c.DeleteMark == null) @@ -82,10 +88,68 @@ namespace Tnb.EquipMgr type_name = d.FullName, code = b.code, name = b.name, - specification = b.specification + specification = b.specification, + num = 0 }).ToPagedListAsync(input.currentPage, input.pageSize); + foreach (var item in result.list) + { + try + { + var part = eqpSpareParts.Where(p => p.code == item.code).First(); + var Instocknum = InstockDs.Where(p => p.spare_parts_id == part.id).Sum(p => p.quantity); + var Requisitionum = RequisitionDs.Where(p => p.spare_parts_id == part.id).Sum(p => p.quantity); + item.num = Instocknum > Requisitionum ? Instocknum - Requisitionum : 0; + } + catch (Exception) + { + } + } return PageResult.SqlSugarPageResult(result); } + + //获取备品备件历史 + [HttpPost] + public async Task GetEquipSparePartRecord(EquipSparePartRecordInput input) + { + ISqlSugarClient db = _repository.AsSugarClient(); + var partsids = await db.Queryable().Where(p => p.equip_id == input.equip_id).Select(p => p.spare_parts_id).ToListAsync(); + var Instocks = await db.Queryable() + .LeftJoin((a, b) => a.instock_id == b.id) + .LeftJoin((a, b, c) => a.spare_parts_id == c.id) + .LeftJoin((a, b, c, d) => b.instock_id == d.Id) + .Where((a, b, c, d) => partsids.Contains(a.spare_parts_id!)) + .Select((a, b, c, d) => new EquipSparePartRecordOut() + { + id = a.id, + code = c.code, + name = c.name, + type = "入库", + execuser = d.RealName, + execdatetime = b.create_time != null ? b.create_time.ToString() : "", + num = a.quantity + }) + .ToListAsync(); + + var Requisitions = await db.Queryable() + .LeftJoin((a, b) => a.spare_parts_requisition_id == b.id) + .LeftJoin((a, b, c) => a.spare_parts_id == c.id) + .LeftJoin((a, b, c, d) => b.recipient_id == d.Id) + .Where((a, b, c, d) => partsids.Contains(a.spare_parts_id!)) + .Select((a, b, c, d) => new EquipSparePartRecordOut() + { + id = a.id, + code = c.code, + name = c.name, + type = "领用", + execuser = d.RealName, + execdatetime = b.create_time != null ? b.create_time.ToString()!.Substring(0,19) : "", + num = a.quantity + }) + .ToListAsync(); + Instocks.AddRange(Requisitions); + var result = Instocks.OrderByDescending(p => DateTime.Parse(p.execdatetime!)); + return result; + } } } \ No newline at end of file diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs index 192ca171..64fbc34b 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs @@ -1,5 +1,8 @@ using JNPF.Common.Security; using JNPF.Logging; +using JNPF.Message; +using JNPF.Message.Interfaces.Message; +using JNPF.Message.Service; using SqlSugar; using Tnb.EquipMgr.Entities; @@ -15,7 +18,7 @@ namespace JNPF.TaskScheduler.Listener // { // _repository = repository; // } - + private IMessageService _sendMessageService => App.GetService(); [SpareTime("0 0 0 * * ?", "生成设备保养计划", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)] public async void GenerateSpotInspectionPlan(SpareTimer timer, long count) { @@ -171,6 +174,24 @@ namespace JNPF.TaskScheduler.Listener Console.WriteLine(dbResult.ErrorMessage); Log.Error(dbResult.ErrorMessage); } + else + { + List equipments = await db.Queryable().Where(x => x.life == Tnb.EquipMgr.EquipmentLife.ENABLE).ToListAsync(); + foreach (var item in tobeCreateList) + { + try + { + if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null) + continue; + var users = new List() { item.execute_user_id }; + var title = equipments.FirstOrDefault(x => x.id == item.equip_id).code + "设备保养提醒"; + await _sendMessageService.SentMessage(users, title, title); + } + catch (Exception) + { + } + } + } Log.Information($"---------------生成{tobeCreateList.Count}个计划---------------"); } } diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs index 14889bf3..a473253d 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs @@ -1,5 +1,6 @@ using JNPF.Common.Security; using JNPF.Logging; +using JNPF.Message.Interfaces.Message; using SqlSugar; using Tnb.EquipMgr.Entities; @@ -15,7 +16,7 @@ namespace JNPF.TaskScheduler.Listener // { // _repository = repository; // } - + private IMessageService _sendMessageService => App.GetService(); [SpareTime("0 0,30 * * * ?", "生成点巡检计划", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)] public async void GenerateSpotInspectionPlan(SpareTimer timer, long count) { @@ -172,6 +173,24 @@ namespace JNPF.TaskScheduler.Listener Console.WriteLine(dbResult.ErrorMessage); Log.Error(dbResult.ErrorMessage); } + else + { + List equipments = await db.Queryable().Where(x => x.life == Tnb.EquipMgr.EquipmentLife.ENABLE).ToListAsync(); + foreach (var item in tobeCreateList) + { + try + { + if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null) + continue; + var users = new List() { item.spot_record_user_id }; + var title = equipments.FirstOrDefault(x => x.id == item.equip_id).code + "设备点巡检提醒"; + await _sendMessageService.SentMessage(users, title, title); + } + catch (Exception) + { + } + } + } Log.Information($"---------------生成{tobeCreateList.Count}个计划---------------"); } } From 297f90bd0c179817e74ade2f8f30b028924f83fd Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Wed, 29 Nov 2023 16:56:59 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=A4=87=E4=BB=B6=E9=A2=86=E7=94=A8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.EquipMgr/EqpSparePartsRequisitionHService.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/EquipMgr/Tnb.EquipMgr/EqpSparePartsRequisitionHService.cs b/EquipMgr/Tnb.EquipMgr/EqpSparePartsRequisitionHService.cs index 225f3154..0438198c 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpSparePartsRequisitionHService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpSparePartsRequisitionHService.cs @@ -1,3 +1,4 @@ +using System.Linq; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Security; @@ -117,7 +118,14 @@ namespace Tnb.EquipMgr if (eqpSparePartsList.Count > 0) { - _ = await db.Insertable(eqpSparePartsList).ExecuteCommandAsync(); + var datas= await db.Queryable().ToListAsync(); + foreach (var item in eqpSparePartsList) + { + if (!datas.Where(p => p.equip_id == item.equip_id && p.spare_parts_id == item.spare_parts_id).Any()) + _ = await db.Insertable(eqpSparePartsList).ExecuteCommandAsync(); + + } + } } From 325e1c8f07850629b65b8b462cfcfdcdd51286ee Mon Sep 17 00:00:00 2001 From: qianjiawei <1184704771@qq.com> Date: Thu, 30 Nov 2023 14:02:58 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E7=82=B9=E5=B7=A1=E6=A3=80=E5=A4=8D=E6=A0=B8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/EquipMaintainRecordQueryOutput.cs | 2 ++ .../Dto/EquipSpotInsRecordQueryOutput.cs | 2 ++ .../Tnb.EquipMgr.Entities/Dto/MaintainRecordRepeatInput.cs | 1 + .../Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs | 2 ++ EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs | 5 +++++ EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs | 6 ++++++ EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs | 2 ++ EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs | 2 ++ 8 files changed, 22 insertions(+) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipMaintainRecordQueryOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipMaintainRecordQueryOutput.cs index 12b4ded0..ada9dbb8 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipMaintainRecordQueryOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipMaintainRecordQueryOutput.cs @@ -4,6 +4,8 @@ namespace Tnb.EquipMgr.Entities.Dto { public string? id { get; set; } public string? attachment { get; set; } + + public string? fhattachment { get; set; } public string? create_time { get; set; } public string? equip_id { get; set; } public string? equip_id_id { get; set; } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSpotInsRecordQueryOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSpotInsRecordQueryOutput.cs index ba40ffb9..3664bb2c 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSpotInsRecordQueryOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipSpotInsRecordQueryOutput.cs @@ -4,6 +4,8 @@ namespace Tnb.EquipMgr.Entities.Dto { public string? id { get; set; } public string? attachment { get; set; } + + public string? fhattachment { get; set; } public string? create_time { get; set; } public string? equip_id { get; set; } public string? repeat_remark { get; set; } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRecordRepeatInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRecordRepeatInput.cs index ff09b958..1f07e4c0 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRecordRepeatInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRecordRepeatInput.cs @@ -7,6 +7,7 @@ namespace Tnb.EquipMgr.Entities.Dto public string repeat_result { get; set; } = string.Empty; public string? repeat_remark { get; set; } + public string? attachment { get; set; } public List>? details { get; set; } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs index 35cc5b6d..35074944 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs @@ -7,5 +7,7 @@ namespace Tnb.EquipMgr.Entities.Dto public string? repeat_result { get; set; } public string? repeat_remark { get; set; } + + public string? attachment { get; set; } } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs index d6643199..d0d33f2e 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpMaintainRecordH.cs @@ -164,5 +164,10 @@ public partial class EqpMaintainRecordH : BaseEntity /// public string? org_id { get; set; } + /// + /// 复核附件 + /// + public string? fhattachment { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs index 38b993c6..5807603b 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs @@ -159,4 +159,10 @@ public partial class EqpSpotInsRecordH : BaseEntity /// public string? repeat_result { get; set; } + + /// + /// 复核附件 + /// + public string? fhattachment { get; set; } + } diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs index c7c003da..b1e45c66 100644 --- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs @@ -214,6 +214,7 @@ namespace Tnb.EquipMgr { _ = await _repository.UpdateAsync(x => new EqpMaintainRecordH() { + fhattachment=input.attachment, repeat_result = input.repeat_result, repeat_remark = input.repeat_remark, repeat_user_id = _userManager.UserId, @@ -244,6 +245,7 @@ namespace Tnb.EquipMgr { id = a.id, attachment = a.attachment, + fhattachment= a.fhattachment, create_time = a.create_time == null ? null : a.create_time.Value.ToString(DbTimeFormat.MM), equip_id = b.code, equip_id_id = a.equip_id, diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 111e86a7..cc558030 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -183,6 +183,7 @@ namespace Tnb.EquipMgr repeat_result = input.repeat_result, repeat_remark = input.repeat_remark, repeat_user_id = _userManager.UserId, + fhattachment=input.attachment, repeat_time = DateTime.Now, status = SpotInsRecordExecutionStatus.COMPLETED }, x => x.id == input.id); @@ -204,6 +205,7 @@ namespace Tnb.EquipMgr { id = a.id, attachment = a.attachment, + fhattachment=a.fhattachment, create_time = a.create_time == null ? null : a.create_time.Value.ToString(DbTimeFormat.MM), equip_id = a.equip_id, repeat_remark = a.repeat_remark,