From c19a2c13dc5730f79ee5d8470f894e558789ee9a Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Thu, 18 May 2023 17:18:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=B7=A1=E6=A3=80=E5=A4=8D=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BasicData/Tnb.BasicData/BasMaterialService.cs | 58 +++++++++---- .../Dto/SpotInsRecordExecuteInput.cs | 15 ++++ .../Dto/SpotInsRecordRepeatInput.cs | 11 +++ .../Dto/SpotInsRecordRepeatOutput.cs | 9 ++ .../Entity/EqpSpotInsRecordH.cs | 9 +- .../IEquSpotInsRecordService.cs | 18 +++- EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs | 19 ++-- .../Tnb.EquipMgr/EquSpotInsRecordService.cs | 86 +++++++++++++++---- 8 files changed, 181 insertions(+), 44 deletions(-) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordExecuteInput.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatOutput.cs diff --git a/BasicData/Tnb.BasicData/BasMaterialService.cs b/BasicData/Tnb.BasicData/BasMaterialService.cs index 6a42d2b8..20179695 100644 --- a/BasicData/Tnb.BasicData/BasMaterialService.cs +++ b/BasicData/Tnb.BasicData/BasMaterialService.cs @@ -84,25 +84,47 @@ namespace Tnb.BasicData public async Task GetMaterialSelectInfo(MaterialSelectQueryInput queryInput) { var db = _repository.AsSugarClient(); - List ids = await GetAllChildrenMaterialId(queryInput.ebom_id,0); - BasEbomH ebom = await db.Queryable().Where(x => x.id == queryInput.ebom_id).SingleAsync(); - ids.Add(ebom.material_id); - var result = await db.Queryable() - .LeftJoin((a, b) => a.unit_id == b.EnCode) - .LeftJoin((a, b, c) => b.DictionaryTypeId == c.Id && c.EnCode == DictConst.MeasurementUnit && c.DeleteMark == null) - .WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info)) - .WhereIF(!string.IsNullOrEmpty(queryInput.ebom_id), (a, b, c) => ids.Contains(a.id)) - .Select((a, b, c) => new MaterialSelectOutput() - { - id = a.id, - code = a.code, - name = a.name, - descrip = a.descrip, - unit_id = a.unit_id, - unit_name = b.FullName, - }).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize); + if (!string.IsNullOrEmpty(queryInput.ebom_id)) + { + List ids = await GetAllChildrenMaterialId(queryInput.ebom_id,0); + BasEbomH ebom = await db.Queryable().Where(x => x.id == queryInput.ebom_id).SingleAsync(); + ids.Add(ebom.material_id); + var result = await db.Queryable() + .LeftJoin((a, b) => a.unit_id == b.EnCode) + .LeftJoin((a, b, c) => b.DictionaryTypeId == c.Id && c.EnCode == DictConst.MeasurementUnit && c.DeleteMark == null) + .WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info)) + .WhereIF(!string.IsNullOrEmpty(queryInput.ebom_id), (a, b, c) => ids.Contains(a.id)) + .Select((a, b, c) => new MaterialSelectOutput() + { + id = a.id, + code = a.code, + name = a.name, + descrip = a.descrip, + unit_id = a.unit_id, + unit_name = b.FullName, + }).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize); - return PageResult.SqlSugarPageResult(result); + return PageResult.SqlSugarPageResult(result); + + } + else + { + var result = await db.Queryable() + .LeftJoin((a, b) => a.unit_id == b.EnCode) + .LeftJoin((a, b, c) => b.DictionaryTypeId == c.Id && c.EnCode == DictConst.MeasurementUnit && c.DeleteMark == null) + .WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info)) + .Select((a, b, c) => new MaterialSelectOutput() + { + id = a.id, + code = a.code, + name = a.name, + descrip = a.descrip, + unit_id = a.unit_id, + unit_name = b.FullName, + }).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize); + + return PageResult.SqlSugarPageResult(result); + } } /// diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordExecuteInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordExecuteInput.cs new file mode 100644 index 00000000..469c7b10 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordExecuteInput.cs @@ -0,0 +1,15 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class SpotInsRecordExecuteInput + { + public string id { get; set; } + + public string attachment { get; set; } + + public string result { get; set; } + + public string result_remark { get; set; } + + public List> details { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs new file mode 100644 index 00000000..ce77eef0 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatInput.cs @@ -0,0 +1,11 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class SpotInsRecordRepeatInput + { + public string id { get; set; } + + public string repeat_result { get; set; } + + public string repeat_remark { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatOutput.cs new file mode 100644 index 00000000..58ed6d64 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsRecordRepeatOutput.cs @@ -0,0 +1,9 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class SpotInsRecordRepeatOutput + { + public EqpSpotInsRecordH model { get; set; } + + public List details { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs index bd4cfe81..3646845f 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsRecordH.cs @@ -71,7 +71,7 @@ namespace Tnb.EquipMgr.Entities /// Default: /// Nullable:True /// - public int? result {get;set;} + public string? result {get;set;} /// /// Desc:点巡检结果备注 @@ -219,6 +219,13 @@ namespace Tnb.EquipMgr.Entities /// Nullable:True /// public string? attachment {get;set;} + + /// + /// Desc:复核结果1 合格2不合格 + /// Default: + /// Nullable:True + /// + public string? repeat_result {get;set;} } } diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs index 887c7a87..b639f300 100644 --- a/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs @@ -1,4 +1,5 @@ using JNPF.Common.Dtos.VisualDev; +using Tnb.EquipMgr.Entities.Dto; namespace Tnb.EquipMgr.Interfaces { @@ -9,6 +10,21 @@ namespace Tnb.EquipMgr.Interfaces /// /// /// - public Task ExecuteSpotIns(string id,VisualDevModelDataUpInput input); + public Task ExecuteSpotIns(SpotInsRecordExecuteInput input); + + /// + /// 获取点巡检复核信息 + /// + /// + /// + public Task GetSpotInsRecordRepeatInfo(Dictionary dic); + + /// + /// 复核点巡检 + /// + /// + /// + public Task RepeatSpotIns(SpotInsRecordRepeatInput input); + } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs index 67d0f81c..bd1bf6b0 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs @@ -25,20 +25,24 @@ namespace Tnb.EquipMgr private readonly IUserManager _userManager; public EqpSpotInsTemService(ISqlSugarRepository repository, - IUserManager userManager, - IVisualDevService visualDevService) + IUserManager userManager) { _repository = repository; _userManager = userManager; } + /// + /// 根据模板id发布到设备 + /// + /// + [HttpPost] public async Task Publish(SpotInsTemPublishInput input) { var db = _repository.AsSugarClient(); DbResult result = await db.Ado.UseTranAsync(async () => { EqpSpotInsTemH eqpSpotInsTemH = await _repository.GetSingleAsync(x => x.id == input.id); - List eqpSpotInsTemDs = await db.Queryable().Where(x=>x.spot_ins_item_id==input.id).ToListAsync(); + List eqpSpotInsTemDs = await db.Queryable().Where(x=>x.spot_ins_tem_id==input.id).ToListAsync(); if (input.equipIds != null && input.equipIds.Length > 0) { @@ -47,7 +51,7 @@ namespace Tnb.EquipMgr foreach (var equipId in input.equipIds) { string id = SnowflakeIdHelper.NextId(); - string code = $"{DateTime.Now.ToString("yyyy-MM-dd") + equipId}"; + string code = $"{DateTime.Now.ToString("yyyyMMdd") + equipId}"; EqpSpotInsTemEquipH eqpSpotInsTemEquipH = new EqpSpotInsTemEquipH() { id = id, @@ -82,12 +86,17 @@ namespace Tnb.EquipMgr EqpSpotInsTemEquipD eqpSpotInsTemEquipD = new EqpSpotInsTemEquipD() { id = SnowflakeIdHelper.NextId(), - spot_ins_item_id = eqpSpotInsTem.id, + spot_ins_item_id = eqpSpotInsTem.spot_ins_item_id, spot_ins_tem_equip_id = id, }; insertEqpSpotInsTemEquipDs.Add(eqpSpotInsTemEquipD); } } + + EqpSpotInsTemEquipH oldSpotInsTemEquipH = await db.Queryable().Where(x => x.spot_ins_tem_id == input.id && x.equip_id == equipId).FirstAsync(); + await db.Deleteable().Where(x => x.spot_ins_tem_id == input.id && x.equip_id==equipId).ExecuteCommandAsync(); + if(oldSpotInsTemEquipH!=null) + await db.Deleteable().Where(x => x.spot_ins_tem_equip_id==oldSpotInsTemEquipH.id).ExecuteCommandAsync(); } if (insertEqpSpotInsTemEquipHs != null && insertEqpSpotInsTemEquipHs.Count > 0) diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index 6b752382..d7fc7a2f 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; namespace Tnb.EquipMgr @@ -39,24 +40,20 @@ namespace Tnb.EquipMgr _visualDevService = visualDevService; _runService = runService; _userManager = userManager; - OverideFuncs.UpdateAsync = ExecuteSpotIns; + // OverideFuncs.UpdateAsync = ExecuteSpotIns; } - public async Task ExecuteSpotIns(string id,[FromBody]VisualDevModelDataUpInput input) + /// + /// 执行点巡检 + /// + /// + /// + [HttpPost] + public async Task ExecuteSpotIns(SpotInsRecordExecuteInput input) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - //string attachment = JsonConvert.SerializeObject(input.data["attachment"]); - // _repository.UpdateAsync(x => new EqpSpotInsRecordH() - // { - // result = (int)input.data["result"], - // attachment = attachment, - // result_remark = input.data["result_remark"].ToString(), - // }, x => x.id == input.data["id"]); - VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); - await _runService.Update(id,templateEntity, input); - - EqpSpotInsRecordH eqpSpotInsRecordH = _repository.GetSingle(x=>x.id==input.data["id"].ToString()); + EqpSpotInsRecordH eqpSpotInsRecordH = _repository.GetSingle(x=>x.id==input.id); string status = ""; if (eqpSpotInsRecordH.is_repeat == "1") { @@ -66,17 +63,68 @@ namespace Tnb.EquipMgr { status = SpotInsRecordExecutionStatus.COMPLETED; } - _repository.UpdateAsync(x => new EqpSpotInsRecordH() - { - status = status, - spot_record_date_time = DateTime.Now, - spot_record_user_id = _userManager.UserId - }, x => x.id == input.data["id"]); + await _repository.UpdateAsync(x => new EqpSpotInsRecordH() + { + result = input.result, + attachment = input.attachment, + result_remark = input.result_remark, + status = status, + spot_record_date_time = DateTime.Now, + spot_record_user_id = _userManager.UserId + }, x => x.id == input.id); + + foreach (var item in input.details) + { + await _repository.AsSugarClient().Updateable(). + SetColumns(x=>x.result==item["result"]) + .SetColumnsIF(item["judge_type"]=="1",x=>x.real_value==Convert.ToDouble(item["real_value"])) + .Where(x=>x.id==item["id"]) + .ExecuteCommandAsync(); + } + }); if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "执行成功" : result.ErrorMessage; } + + /// + /// 获取点巡检复核信息 + /// + /// + /// + [HttpPost] + public async Task GetSpotInsRecordRepeatInfo(Dictionary dic) + { + string id = dic["id"]; + EqpSpotInsRecordH eqpSpotInsRecordH = await _repository.GetSingleAsync(x => x.id == id); + List eqpSpotInsRecordDs = await _repository.AsSugarClient().Queryable() + .Where(x => x.spot_ins_record_id == id).ToListAsync(); + SpotInsRecordRepeatOutput output = new SpotInsRecordRepeatOutput() + { + model = eqpSpotInsRecordH, + details = eqpSpotInsRecordDs, + }; + return output; + } + + /// + /// 复核点巡检 + /// + /// + /// + [HttpPost] + public async Task RepeatSpotIns(SpotInsRecordRepeatInput input) + { + await _repository.UpdateAsync(x => new EqpSpotInsRecordH() + { + repeat_result = input.repeat_result, + repeat_remark = input.repeat_remark, + repeat_post_info_user_id = _userManager.UserId, + repeat_time = DateTime.Now, + status = SpotInsRecordExecutionStatus.COMPLETED + }, x => x.id == input.id); + } } } \ No newline at end of file