diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasMbomProcess.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasMbomProcess.cs index c6c79b0a..cb5b4f99 100644 --- a/BasicData/Tnb.BasicData.Entities/Entity/BasMbomProcess.cs +++ b/BasicData/Tnb.BasicData.Entities/Entity/BasMbomProcess.cs @@ -53,5 +53,15 @@ public partial class BasMbomProcess : BaseEntity /// 工艺路线子表id /// public string route_detail_id { get; set; } + + /// + /// 是否时最后一道工序 + /// + public int is_last { get; set; } + + /// + /// 排序 + /// + public int ordinal { get; set; } } diff --git a/BasicData/Tnb.BasicData/BasMbomService.cs b/BasicData/Tnb.BasicData/BasMbomService.cs index 7c441b64..4eae1f35 100644 --- a/BasicData/Tnb.BasicData/BasMbomService.cs +++ b/BasicData/Tnb.BasicData/BasMbomService.cs @@ -282,6 +282,7 @@ namespace Tnb.BasicData if (mbomSaveDataInput != null && mbomSaveDataInput.processes != null) { + int index = 0; foreach (var process in mbomSaveDataInput.processes) { string mbomProcessId = SnowflakeIdHelper.NextId(); @@ -296,6 +297,8 @@ namespace Tnb.BasicData byproduct_status = process.byproduct_status, production_method = process.production_method, route_detail_id = process.route_detail_id, + ordinal = ++index, + is_last = index==mbomSaveDataInput.processes.Count ? 1 : 0, }); diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs index 16772015..097e9df0 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs @@ -182,4 +182,10 @@ public partial class PrdMoTask : BaseEntity /// 生产bom工序id /// public string? mbom_process_id { get; set; } + + /// + /// 最后一道工序完成数量 + /// + public int? last_process_complete_qty { get; set; } + } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 643340d9..79fe64ea 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -320,8 +320,9 @@ namespace Tnb.ProductionMgr result = await _db.Queryable().LeftJoin((a, b) => a.mo_id == b.id) .LeftJoin((a, b, c) => a.material_id == c.id) .LeftJoin((a, b, c, d) => a.workline_id == d.Id) + .LeftJoin((a,b,c,d,e)=>a.process_id==e.id) .Where((a, b, c, d) => b.id == moId || b.parent_id == moId) - .Select((a, b, c, d) => new PrdMoTaskOutput + .Select((a, b, c, d,e) => new PrdMoTaskOutput { mo_task_code = a.mo_task_code, mo_task_status = a.mo_task_status, @@ -329,10 +330,12 @@ namespace Tnb.ProductionMgr workline_name = d.FullName, material_code = c.code, material_name = c.name, + 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"), estimated_end_date = a.estimated_end_date.Value.ToString("yyyy-MM-dd HH"), - plan_qty = b.scheduled_qty, + plan_qty = a.scheduled_qty, complete_qty = a.complete_qty, }) .Mapper(it => @@ -1263,7 +1266,22 @@ namespace Tnb.ProductionMgr .SetColumns(x => x.reported_work_qty == x.reported_work_qty + input.reported_qty) .Where(x => x.id == input.mo_task_id).ExecuteCommandAsync(); } - + var mbomProcess = await db.Queryable().SingleAsync(x => x.id == prdMoTask.mbom_process_id); + if (mbomProcess.is_last==1 && prdMoTask != null && !string.IsNullOrEmpty(prdMoTask.parent_id)) + { + var parentMoTask = await db.Queryable().SingleAsync(x => x.id == prdMoTask.parent_id); + if (parentMoTask?.last_process_complete_qty == null) + { + await db.Updateable() + .SetColumns(x => x.last_process_complete_qty == input.reported_qty) + .Where(x => x.id == prdMoTask.parent_id).ExecuteCommandAsync(); + }else if (parentMoTask?.last_process_complete_qty != null) + { + await db.Updateable() + .SetColumns(x => x.last_process_complete_qty == x.last_process_complete_qty + input.reported_qty) + .Where(x => x.id == prdMoTask.parent_id).ExecuteCommandAsync(); + } + } var master = await db.Queryable().FirstAsync(it => it.mo_task_id == input.mo_task_id); if (master != null) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index c884c791..a285f4b6 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -70,7 +70,7 @@ namespace Tnb.ProductionMgr plan_end_date = a.estimated_end_date, plan_qty = c.plan_qty, // complete_qty = SqlFunc.Subqueryable().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty), - complete_qty = a.reported_work_qty+a.scrap_qty, + complete_qty = a.last_process_complete_qty, mo_task_status = a.mo_task_status, }) @@ -94,8 +94,8 @@ namespace Tnb.ProductionMgr node.workline_id = $"{workLine.Item1}/{workLine.Item2}"; } } - node.plan_start_date = item.estimated_start_date.HasValue ? item.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; - node.plan_end_date = item.estimated_end_date.HasValue ? item.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; + node.plan_start_date = item.plan_start_date.HasValue ? item.plan_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; + node.plan_end_date = item.plan_end_date.HasValue ? item.plan_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; await GetChild(item.id, trees, dic); trees.Add(node); } @@ -116,8 +116,12 @@ namespace Tnb.ProductionMgr private async Task GetChild(string parentId, List nodes, Dictionary dic) { - var items = await _db.Queryable().LeftJoin((a, b) => a.process_id == b.id).LeftJoin((a, b, c) => a.mo_id == c.id) + var items = await _db.Queryable() + .LeftJoin((a, b) => a.process_id == b.id) + .LeftJoin((a, b, c) => a.mo_id == c.id) + .LeftJoin((a,b,c,d)=>a.mbom_process_id==d.id) .Where(a => a.parent_id == parentId && a.mo_task_status != "ToBeScheduled") + .OrderBy((a,b,c,d)=>d.ordinal) .Select((a, b, c) => new PrdMoTask { id = a.id, @@ -129,7 +133,8 @@ namespace Tnb.ProductionMgr plan_start_date = a.estimated_start_date, plan_end_date = a.estimated_end_date, plan_qty = c.plan_qty, - complete_qty = SqlFunc.Subqueryable().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty), + //complete_qty = SqlFunc.Subqueryable().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty), + complete_qty = a.reported_work_qty+a.scrap_qty, mo_task_status = a.mo_task_status, }).ToListAsync(); diff --git a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs index dff6b0da..a451bb01 100644 --- a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs +++ b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckTask.cs @@ -29,16 +29,15 @@ namespace Tnb.QcMgr.Entities.Dto public string? itemdid { get; set; } public ExecItemShow? setShow { get; set; } public ExecItemData? setData { get; set; } - public PostItemForm? postItemForm { get; set; } } public class PostItemForm { public string? attachment { get; set; } - public string[]? checkbox { get; set; } + public object[]? checkbox { get; set; } public string? errorcause { get; set; } public string? errorlevel { get; set; } - public int measuredValue { get; set; } + public object? measuredValue { get; set; } public string? radio { get; set; } public string? remark { get; set; } public string? text { get; set; } @@ -103,29 +102,53 @@ namespace Tnb.QcMgr.Entities.Dto public string? status { get; set; } public string? result { get; set; } - public List? checktypes { get; set; } + public List>? checktypes { get; set; } } - public class CheckExexTypeInput + public class Exextype { - public string? id { get; set; } + public string? checktypeid { get; set; } + public string? checktypename { get; set; } public List? items { get; set; } } public class ExecItemInput { - public string? itemdid { get; set; } - + public string? itemdid { get; set; } public string? itemid { get; set; } - public string? extype { get; set; } - public string? excontent { get; set; } - public string? check { get; set; } - public string? errorcause { get; set; } - public string? errorlevel { get; set; } - public string? remark { get; set; } - public string? attachment { get; set; } - public string? isexec { get; set; } - public string? customer { get; set; } - public string? result { get; set; } + public string? code { get; set; } + public string? name { get; set; } + public ExecItemData? setData { get; set; } + public ExecItemShow? setShow { get; set; } public string? postItemForm { get; set; } - + public string? result { get; set; } } + + + + public class Result + { + public string? mainid { get; set; } + public string? checknum { get; set; } + public string? status { get; set; } + public string? result { get; set; } + + public List>? checktypes { get; set; } + } + public class Checktype + { + public string? checktypeid { get; set; } + public string? checktypename { get; set; } + public List? items { get; set; } + } + public class ExecItem + { + public string? itemdid { get; set; } + public string? itemid { get; set; } + public string? code { get; set; } + public string? name { get; set; } + public ExecItemData? setData { get; set; } + public ExecItemShow? setShow { get; set; } + public PostItemForm? postItemForm { get; set; } + public string? result { get; set; } + } + } diff --git a/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckExecD.cs b/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckExecD.cs index 2e02c084..c793007a 100644 --- a/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckExecD.cs +++ b/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckExecD.cs @@ -106,8 +106,12 @@ namespace Tnb.QcMgr.Entities /// 数据 /// public string? postdata { get; set; } + /// + /// 抽样数索引 + /// + public string? checkindex { get; set; } + - } diff --git a/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckTaskService.cs b/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckTaskService.cs index f2ba5df5..808b10f6 100644 --- a/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckTaskService.cs +++ b/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckTaskService.cs @@ -22,5 +22,12 @@ namespace Tnb.QcMgr.Interfaces /// /// public Task SaveData(CheckTaskInput CheckTaskInput); + + /// + /// 获取任务结果明细 + /// + /// + /// + public Task GetTaskResult(string id); } } diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs index e50ee4a0..a90d7d75 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF.Common.Core.Manager; using JNPF.Common.Enums; +using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; @@ -137,8 +138,6 @@ namespace Tnb.QcMgr Item.setShow.attachment = !string.IsNullOrEmpty(Item.setData.attachment); Item.setShow.customer = !string.IsNullOrEmpty(Item.setData.customer); Item.setShow.isexec = Item.setData.isexec == null ? false : true; - if(!string.IsNullOrEmpty(QcCheckExecD.postdata)) - Item.postItemForm= JSON.Deserialize(QcCheckExecD.postdata!); CheckTaskOut.checktypes.Where(p => p.checktypeid == QcCheckExecD.typeid).First()?.items?.Add(Item); } return CheckTaskOut; @@ -157,46 +156,155 @@ namespace Tnb.QcMgr { var QcCheckExecH = await db.Queryable().Where(p => p.id == CheckTaskInput.mainid).FirstAsync(); QcCheckExecH.checknum = CheckTaskInput.checknum; - QcCheckExecH.status = CheckTaskInput.status; + QcCheckExecH.status = "26745885292053"; QcCheckExecH.result = CheckTaskInput.result; QcCheckExecH.execuser = _userManager.UserId; QcCheckExecH.exectime = DateTime.Now.ToString(); var QcCheckExecDs = await db.Queryable().Where(p => p.mainid == CheckTaskInput.mainid).ToListAsync(); - if (CheckTaskInput.checktypes != null) + var QcCheckExecDdel = new List(); + var QcCheckExecDinsert = new List(); + if (CheckTaskInput.checktypes?.Count > 0) { - foreach (var checktype in CheckTaskInput.checktypes) + for (int i=0;i< CheckTaskInput.checktypes.Count;i++) { - if (checktype.items != null) + if (CheckTaskInput.checktypes[i].Count > 0) { - foreach (var item in checktype.items) + foreach (var exextype in CheckTaskInput.checktypes[i]) { - var QcCheckExecD = QcCheckExecDs.Where(p => p.id == item.itemdid).FirstOrDefault(); - if (QcCheckExecD == null) - continue; - QcCheckExecD.excontent = item.excontent; - QcCheckExecD.check = item.check; - QcCheckExecD.errorcause = item.errorcause; - QcCheckExecD.errorlevel = item.errorlevel; - QcCheckExecD.remark = item.remark; - QcCheckExecD.attachment = item.attachment; - QcCheckExecD.isexec = item.isexec; - QcCheckExecD.custom = item.customer; - QcCheckExecD.result = item.result; - QcCheckExecD.postdata = item.postItemForm; + if (exextype.items != null) + { + foreach (var item in exextype.items) + { + var QcCheckExecD = QcCheckExecDs.Where(p => p.id == item.itemdid).FirstOrDefault(); + if (QcCheckExecD == null) + continue; + if (QcCheckExecDdel.Where(p => p.id == QcCheckExecD.id).FirstOrDefault() == null) + QcCheckExecDdel.Add(QcCheckExecD); + var insert = new QcCheckExecD(); + insert.mainid = QcCheckExecD.mainid; + insert.extype = QcCheckExecD.extype; + insert.excontent = QcCheckExecD.excontent; + insert.check = QcCheckExecD.check; + insert.errorcause = QcCheckExecD.errorcause; + insert.errorlevel = QcCheckExecD.errorlevel; + insert.remark = QcCheckExecD.remark; + insert.attachment = QcCheckExecD.attachment; + insert.isexec = QcCheckExecD.isexec; + insert.custom = QcCheckExecD.custom; + insert.typeid = QcCheckExecD.typeid; + insert.itemid = QcCheckExecD.itemid; + insert.create_id = QcCheckExecD.create_id; + insert.create_time = QcCheckExecD.create_time; + insert.postdata = item.postItemForm; + insert.result = item.result; + insert.checkindex = (i + 1).ToString(); + QcCheckExecDinsert.Add(insert); + } + } } } } } await db.Ado.BeginTranAsync(); await db.Updateable(QcCheckExecH).ExecuteCommandAsync(); - await db.Updateable(QcCheckExecDs).ExecuteCommandAsync(); + await db.Deleteable(QcCheckExecDdel).ExecuteCommandAsync(); + await db.Insertable(QcCheckExecDinsert).ExecuteCommandAsync(); await db.Ado.CommitTranAsync(); } catch (Exception) { - + throw Oops.Oh(ErrorCode.COM1000); } } + + /// + /// 获取任务结果明细 + /// + /// + /// + [HttpGet] + public async Task GetTaskResult(string id) + { + var db = _repository.AsSugarClient(); + var QcCheckExecH = await db.Queryable().Where(p => p.id == id).FirstAsync(); + var QcCheckExecDs = await db.Queryable().Where(p => p.mainid == id).ToListAsync(); + var QcCheckItems = await db.Queryable().ToListAsync(); + var QcCheckTypes = await db.Queryable().ToListAsync(); + var QcErrorCauses = await db.Queryable().ToListAsync(); + var QcErrorLevels = await db.Queryable().ToListAsync(); + + Result Result = new Result(); + Result.mainid = id; + Result.checknum = QcCheckExecH.checknum!; + Result.status = QcCheckExecH.status!; + Result.checktypes = new List>(); + var groupkeys = QcCheckExecDs.Select(p=>p.checkindex).Distinct().ToList(); + foreach (var key in groupkeys) + { + var QcCheckExecDsbykey= QcCheckExecDs.Where(p=>p.checkindex==key).ToList(); + var checktype = new List(); + foreach (var QcCheckExecD in QcCheckExecDsbykey) + { + if (checktype.Where(p => p.checktypeid == QcCheckExecD.typeid).ToList().Count == 0) + { + Checktype checkType = new Checktype(); + checkType.checktypeid = QcCheckExecD.typeid!; + checkType.checktypename = QcCheckTypes.Where(p => p.id == QcCheckExecD.typeid).First().name!; + checkType.items = new List(); + checktype.Add(checkType); + } + ExecItem Item = new ExecItem(); + Item.itemid = QcCheckExecD.itemid!; + 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.setData = new ExecItemData(); + Item.setData.extype = QcCheckExecD.extype!; + Item.setData.excontent = JSON.Deserialize(QcCheckExecD.excontent!); + Item.setData.check = QcCheckExecD.check!; + if (!string.IsNullOrEmpty(QcCheckExecD.errorcause)) + { + var strs = QcCheckExecD.errorcause!.Replace("[", "").Replace("]", "").Split(',', StringSplitOptions.RemoveEmptyEntries); + Item.setData.errorcause = new List(); + foreach (var str in strs) + { + Item.setData.errorcause.Add(new Error { id = str, name = QcErrorCauses.Where(p => p.id == str).First().name! }); + } + } + if (!string.IsNullOrEmpty(QcCheckExecD.errorlevel)) + { + var strs = QcCheckExecD.errorlevel!.Replace("[", "").Replace("]", "").Split(',', StringSplitOptions.RemoveEmptyEntries); + Item.setData.errorlevel = new List(); + foreach (var str in strs) + { + Item.setData.errorlevel.Add(new Error { id = str, name = QcErrorLevels.Where(p => p.id == str).First().name! }); + } + } + Item.setData.remark = QcCheckExecD.remark!; + Item.setData.attachment = QcCheckExecD.attachment!; + Item.setData.customer = QcCheckExecD.custom!; + if (!string.IsNullOrEmpty(QcCheckExecD.isexec)) + Item.setData.isexec = JSON.Deserialize(QcCheckExecD.isexec!); + Item.setShow = new ExecItemShow(); + Item.setShow.extype = !string.IsNullOrEmpty(Item.setData.extype); + Item.setShow.excontent = !string.IsNullOrEmpty(QcCheckExecD.excontent); + Item.setShow.check = !string.IsNullOrEmpty(Item.setData.check); + Item.setShow.errorcause = Item.setData.errorcause?.Count == 0 ? false : true; + Item.setShow.errorlevel = Item.setData.errorlevel?.Count == 0 ? false : true; + Item.setShow.remark = !string.IsNullOrEmpty(Item.setData.remark); + Item.setShow.attachment = !string.IsNullOrEmpty(Item.setData.attachment); + Item.setShow.customer = !string.IsNullOrEmpty(Item.setData.customer); + Item.setShow.isexec = Item.setData.isexec == null ? false : true; + if (!string.IsNullOrEmpty(QcCheckExecD.postdata)) + Item.postItemForm = JSON.Deserialize(QcCheckExecD.postdata!); + checktype.Where(p => p.checktypeid == QcCheckExecD.typeid).First()?.items?.Add(Item); + } + Result.checktypes.Add(checktype); + } + + return Result; + } } + } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs index bb1412d5..377f2f6d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs @@ -67,15 +67,13 @@ namespace Tnb.WarehouseMgr var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : ""; var carry = await _db.Queryable().SingleAsync(it => it.id == carryId); var subCarry = await _db.Queryable().SingleAsync(it => it.id == subCarryId); - - //WmsCarrybindH wmsCarrybindH = carry?.Adapt()!; if (carry != null && subCarry != null) { - carry.carry_status = "1"; var row = await _db.Updateable(carry).ExecuteCommandAsync(); subCarry.carry_status = "1"; row = await _db.Updateable(subCarry).ExecuteCommandAsync(); + //更新载具明细表 WmsCarryD wmsCarryD = new() { id = SnowflakeIdHelper.NextId(), @@ -89,6 +87,7 @@ namespace Tnb.WarehouseMgr }; row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync(); var items = await _db.Queryable().Where(it => it.carry_id == subCarryId).ToListAsync(); + //更新载具绑定条码表 for (int i = 0; i < items.Count; i++) { WmsCarrybindCode wmsCarrybindCode = new(); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs index 92bacdd8..739d972f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs @@ -71,6 +71,7 @@ namespace Tnb.WarehouseMgr { var row = await _db.Deleteable().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync(); var items = await _db.Queryable().Where(it => it.carry_id == subCarryId).ToListAsync(); + //更新载具解绑记录条码表 WmsCarryunbindCode wmsCarryUnbindCode = new(); for (int i = 0; i < items.Count; i++) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs index 8f9f52cd..eecedd09 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs @@ -51,7 +51,7 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; OverideFuncs.CreateAsync = PDACarryBind; } - + private async Task PDACarryBind(VisualDevModelDataCrInput input) { var isOk = false; @@ -67,27 +67,28 @@ namespace Tnb.WarehouseMgr var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : ""; var carry = await _db.Queryable().SingleAsync(it => it.id == carryId); var subCarry = await _db.Queryable().SingleAsync(it => it.id == subCarryId); - WmsCarryD wmsCarryD = new() - { - id = SnowflakeIdHelper.NextId(), - carry_id = carry.id, - org_id = carry?.org_id!, - membercarry_id = subCarry.id, - membercarry_code = subCarry.carry_code, - loc = input.data[nameof(WmsCarrybindH.loc)].ParseToInt(1), - create_id = _userManager.UserId, - create_time = DateTime.Now - }; - //WmsCarrybindH wmsCarrybindH = carry?.Adapt()!; if (carry != null && subCarry != null) { + //更新载具明细 + WmsCarryD wmsCarryD = new() + { + id = SnowflakeIdHelper.NextId(), + carry_id = carry.id, + org_id = carry?.org_id!, + membercarry_id = subCarry.id, + membercarry_code = subCarry.carry_code, + loc = input.data[nameof(WmsCarrybindH.loc)].ParseToInt(1), + create_id = _userManager.UserId, + create_time = DateTime.Now + }; var row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync(); carry.carry_status = "1"; row = await _db.Updateable(carry).ExecuteCommandAsync(); subCarry.carry_status = "1"; row = await _db.Updateable(subCarry).ExecuteCommandAsync(); var items = await _db.Queryable().Where(it => it.carry_id == subCarryId).ToListAsync(); + //更新载具绑定条码表 for (int i = 0; i < items.Count; i++) { WmsCarrybindCode wmsCarrybindCode = new(); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs index 3193b41b..2cd84bfc 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs @@ -65,8 +65,7 @@ namespace Tnb.WarehouseMgr VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTKPDA_ID, true); await _runService.Create(templateEntity, input); - //入库取终点 - //var OutStockStrategyInput = new OutStockStrategyQuery { carry_id = input.data[nameof(OutStockStrategyQuery.carry_id)].ToString(), Size = 1 }; + //出库取起点 var carry = await _db.Queryable().FirstAsync(it => it.id == input.data[nameof(WmsMoveOutstock.carry_id)].ToString()); WmsPointH sPoint = null; WmsPointH ePoint = null; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs index 113907a3..37b39ebf 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs @@ -66,11 +66,11 @@ namespace Tnb.WarehouseMgr var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : ""; var carry = await _db.Queryable().FirstAsync(it => it.id == carryId); var subCarry = await _db.Queryable().FirstAsync(it => it.id == subCarryId); - //WmsCarryunbindH wmsCarryUnbindH = carry.Adapt(); if (carry != null && subCarry != null) { var row = await _db.Deleteable().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync(); var items = await _db.Queryable().Where(it => it.carry_id == subCarryId).ToListAsync(); + //更新载具解绑记录 WmsCarryunbindCode wmsCarryUnbindCode = new(); for (int i = 0; i < items.Count; i++) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs index 91abdd0c..0f4dbfda 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs @@ -68,9 +68,6 @@ namespace Tnb.WarehouseMgr VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSEMPTYOUTSTKPDA_ID, true); await _runService.Create(templateEntity, input); - /*//入库取终点 - var inStockStrategyInput = new InStockStrategyQuery { warehouse_id = input.data[nameof(InStockStrategyQuery.warehouse_id)].ToString(), Size = 1 }; - var endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);*/ //判断目标库位是否自动签收 var loc = await _db.Queryable().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString()); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs index 8dec4e17..45fbce7b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs @@ -81,6 +81,7 @@ namespace Tnb.WarehouseMgr var carryCodes = await _db.Queryable().Where(it => it.carry_id == carryId).ToListAsync(); if (carry != null && feedBox != null) { + //更新投料箱 feedBox.material_id = carryMaterial.material_id; feedBox.material_code = carryMaterial.material_code; feedBox.qty = carryMaterial.qty; @@ -89,6 +90,7 @@ namespace Tnb.WarehouseMgr feedBox.create_id = _userManager.UserId; feedBox.create_time = DateTime.Now; var row = await _db.Updateable(feedBox).ExecuteCommandAsync(); + //更新投料记录条码表 foreach (var carryCode in carryCodes) { WmsFeedingrecordCode wmsFeedingrecordCode = new(); @@ -106,6 +108,7 @@ namespace Tnb.WarehouseMgr wmsFeedingrecordCode.create_time = DateTime.Now; row = await _db.Insertable(wmsFeedingrecordCode).ExecuteCommandAsync(); } + //更新载具 row = await UpdateNullCarry(carry); isOk = (row > 0); if (!isOk) throw Oops.Oh(ErrorCode.COM1001); diff --git a/system/Tnb.Systems/Permission/DepartmentService.cs b/system/Tnb.Systems/Permission/DepartmentService.cs index 0e74df6e..85325c15 100644 --- a/system/Tnb.Systems/Permission/DepartmentService.cs +++ b/system/Tnb.Systems/Permission/DepartmentService.cs @@ -6,6 +6,7 @@ using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; +using JNPF.Logging; using JNPF.Systems.Entitys.Dto.Department; using JNPF.Systems.Entitys.Dto.Organize; using JNPF.Systems.Entitys.Dto.SysConfig; @@ -248,7 +249,8 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra if (await _repository.IsAnyAsync(o => o.ParentId == input.parentId && o.FullName == input.fullName && o.Category == "department" && o.DeleteMark == null)) throw Oops.Oh(ErrorCode.D2019); OrganizeEntity? entity = input.Adapt(); - entity.Category = "department"; + // entity.Category = "department"; + entity.Category = input.category; entity.Id = SnowflakeIdHelper.NextId(); entity.EnabledMark = 1; entity.CreatorTime = DateTime.Now; @@ -473,7 +475,8 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra var processVal = jsonObj.GetValue("rowprocess"); if (processVal is not null) { - var dic = _repository.GetList().ToDictionary(x => x.FullName, x => x.Id); + //modifyby zhoukeda 2023.06.25 + var dic = _repository.GetList(x=>x.DeleteMark==null).ToDictionary(x => x.FullName, x => x.Id); var procList = jsonObj.Value("rowprocess"); var pids = procList.Select(x => x.Value("id")).Distinct().ToList(); var dbProcIds = await _repository.AsSugarClient().Queryable().Where(it => pids.Contains(it.process_id)).Select(it => it.process_id).ToListAsync(); @@ -517,8 +520,9 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra if (sysConfig.qyhIsSynOrg) await _synThirdInfoService.SynDep(1, 1, sysConfig, orgList); } - catch (Exception) + catch (Exception e) { + Log.Error(e.Message); } #endregion } diff --git a/system/Tnb.Systems/Tnb.Systems.csproj b/system/Tnb.Systems/Tnb.Systems.csproj index 35ba2198..49f58031 100644 --- a/system/Tnb.Systems/Tnb.Systems.csproj +++ b/system/Tnb.Systems/Tnb.Systems.csproj @@ -17,4 +17,8 @@ + + + +