diff --git a/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomListOutput.cs b/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomListOutput.cs index 0a0c08a5..d87f9e8c 100644 --- a/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomListOutput.cs +++ b/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomListOutput.cs @@ -19,6 +19,10 @@ namespace Tnb.BasicData.Entities.Dto public string? unit_id { get; set; } public string? version { get; set; } /// + /// 数量 + /// + public int quantity { get; set; } + /// /// 工艺路线名称 /// public string? route_id { get; set; } diff --git a/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomTreeOutput.cs b/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomTreeOutput.cs index 1c494894..bbd8639b 100644 --- a/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomTreeOutput.cs +++ b/BasicData/Tnb.BasicData.Entities/Dto/BasEbom/EbomTreeOutput.cs @@ -45,12 +45,11 @@ namespace Tnb.BasicData.Entities.Dto /// public string? loss_rate {get;set;} - /// - /// Desc:数量 - /// Default:NULL::character varying - /// Nullable:True /// - public string? quantity {get;set;} + /// + /// 数量 + /// + public int quantity { get; set; } /// /// Desc:需要称量 diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasEbomD.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasEbomD.cs index eb68464a..8ab72cc4 100644 --- a/BasicData/Tnb.BasicData.Entities/Entity/BasEbomD.cs +++ b/BasicData/Tnb.BasicData.Entities/Entity/BasEbomD.cs @@ -37,7 +37,7 @@ public partial class BasEbomD : BaseEntity /// /// 数量 /// - public string? quantity { get; set; } + public int quantity { get; set; } /// /// 损耗率 diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasEbomH.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasEbomH.cs index 75de569c..f480d120 100644 --- a/BasicData/Tnb.BasicData.Entities/Entity/BasEbomH.cs +++ b/BasicData/Tnb.BasicData.Entities/Entity/BasEbomH.cs @@ -32,7 +32,7 @@ public partial class BasEbomH : BaseEntity /// /// 数量 /// - public string? quantity { get; set; } + public int quantity { get; set; } /// /// 单位id diff --git a/BasicData/Tnb.BasicData/BasEbomService.cs b/BasicData/Tnb.BasicData/BasEbomService.cs index 363c5878..01679ee6 100644 --- a/BasicData/Tnb.BasicData/BasEbomService.cs +++ b/BasicData/Tnb.BasicData/BasEbomService.cs @@ -63,6 +63,7 @@ namespace Tnb.BasicData material_id_id = b.id, status = SqlFunc.IIF(a.status == "0", "禁用", "启用"), descrip = a.descrip, + quantity = a.quantity, version = a.version, route_id = c.name, route_id_id = c.id, diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs index e080b375..0c36460f 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoService.cs @@ -179,6 +179,56 @@ namespace Tnb.ProductionMgr .ExecuteCommandAsync(); return (row > 0); } + // /// + // /// 关联同组工单 + // /// + // /// 关联同组工单输入参数 + // /// + // [HttpPost] + // public async Task RelevancySameGroupMo(MoCrInput input) + // { + // (bool executeRes, string errMsg) multi = (true, ""); + // var list = await _repository.AsSugarClient().Queryable() + // .InnerJoin((a, b) => a.material_id == b.material_id) + // .Where((a, b) => input.WorkOrderIds.Contains(a.id)) + // .Select((a, b) => new + // { + // planDate = a.plan_start_date, + // mold_code = b.mold_code, + // }).ToListAsync(); + // var planDateAll = true; + // var moldIdAll = true; + // if (list?.Count > 0) + // { + // var planDate = list.FirstOrDefault()?.planDate; + // var moldCode = list.FirstOrDefault()?.mold_code; + // + // planDateAll = list.Skip(1).All(x => x.planDate == planDate); + // moldIdAll = list.Skip(1).All(x => x.mold_code == moldCode); + // if (planDateAll && moldIdAll) + // { + // var groupId = SnowflakeIdHelper.NextId(); + // multi.executeRes = await _repository.AsSugarClient().Updateable() + // .SetColumns(c => new PrdMo { combine_mo_code = groupId }) + // .Where(it => input.WorkOrderIds.Contains(it.id)) + // .ExecuteCommandHasChangeAsync(); + // } + // else + // { + // multi.executeRes = false; + // if (!planDateAll) + // { + // throw new AppFriendlyException("计划开始日期不一致", null); + // } + // if (!moldIdAll) + // { + // throw new AppFriendlyException("未关联到同一模具下", null); + // } + // } + // } + // return multi; + // } + /// /// 关联同组工单 /// @@ -189,12 +239,13 @@ namespace Tnb.ProductionMgr { (bool executeRes, string errMsg) multi = (true, ""); var list = await _repository.AsSugarClient().Queryable() - .InnerJoin((a, b) => a.material_id == b.material_id) - .Where((a, b) => input.WorkOrderIds.Contains(a.id)) - .Select((a, b) => new + .LeftJoin((a, b) => a.material_id == b.material_id) + .LeftJoin((a,b,c)=>b.mold_id==c.id) + .Where((a, b,c) => input.WorkOrderIds.Contains(a.id)) + .Select((a, b,c) => new { planDate = a.plan_start_date, - mold_code = b.mold_code, + mold_code = c.mold_code, }).ToListAsync(); var planDateAll = true; var moldIdAll = true; @@ -203,8 +254,8 @@ namespace Tnb.ProductionMgr var planDate = list.FirstOrDefault()?.planDate; var moldCode = list.FirstOrDefault()?.mold_code; - planDateAll = list.Skip(1).All(x => x.planDate == planDate); - moldIdAll = list.Skip(1).All(x => x.mold_code == moldCode); + planDateAll = list.All(x => x.planDate == planDate); + moldIdAll = moldCode != null && list.All(x => x.mold_code == moldCode); if (planDateAll && moldIdAll) { var groupId = SnowflakeIdHelper.NextId(); @@ -218,11 +269,11 @@ namespace Tnb.ProductionMgr multi.executeRes = false; if (!planDateAll) { - throw new AppFriendlyException("计划开始日期不一致", null); + throw Oops.Bah("计划开始日期不一致"); } if (!moldIdAll) { - throw new AppFriendlyException("未关联到同一模具下", null); + throw Oops.Bah("未关联到同一模具下"); } } }