| | |
| | | |
| | | private readonly WomcabManager _womcabManager = new(); |
| | | |
| | | /// <summary> |
| | | /// 验证BOM是否为空 |
| | | /// </summary> |
| | | /// <param name="erpCabs">BOM明细列表</param> |
| | | /// <param name="billNo">生产任务单号</param> |
| | | /// <exception cref="Exception">当BOM为空时抛出异常</exception> |
| | | private void ValidateBomNotEmpty(List<ErpCAB> erpCabs, string billNo) |
| | | { |
| | | if (erpCabs == null || erpCabs.Count == 0) |
| | | { |
| | | throw new Exception($"生产任务单 {billNo} 的BOM为空,不允许推送到MES系统"); |
| | | } |
| | | |
| | | // 检查是否有有效的BOM明细(物料编码不为空且需领用量大于0) |
| | | var validBomItems = erpCabs.Where(cab => |
| | | !string.IsNullOrWhiteSpace(cab.FMaterialID2) && |
| | | !string.IsNullOrWhiteSpace(cab.FNeedQty2) && |
| | | decimal.TryParse(cab.FNeedQty2, out decimal qty) && qty > 0).ToList(); |
| | | |
| | | if (validBomItems.Count == 0) |
| | | { |
| | | throw new Exception($"生产任务单 {billNo} 的BOM明细无效(物料编码为空或需领用量为0),不允许推送到MES系统"); |
| | | } |
| | | } |
| | | |
| | | public bool SaveList(List<ErpWOM> rohIns) |
| | | { |
| | | var result = rohIns.Select(Save).ToList(); |
| | |
| | | var womErpCaa = wom. ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | var mesWomcabs = MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | // 验证BOM是否为空 |
| | | ValidateBomNotEmpty(wom.ErpCabs, womErpCaa.FBillNo); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | |
| | | if (mesWomcabs.Count > 0) |
| | | { |
| | | |
| | | // var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList(); |
| | | var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList(); |
| | | var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList(); |
| | | //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList(); |
| | | |
| | | |
| | | /*db.Deleteable<Womcab>() |
| | | db.Deleteable<Womcab>() |
| | | .Where(it => mesWomcab |
| | | .Any(p => p.CAB001 == it.Cab001 |
| | | && p.CAB002 == it.Cab002 |
| | | && p.CAB003 == it.Cab003)) |
| | | .ExecuteCommand();*/ |
| | | db.Deleteable<Womcab>() |
| | | .Where(it => mesWomcab |
| | | .Any(p => p.CAB001 == it.Cab001 |
| | | && p.CAB002 == it.Cab002)) |
| | | .ExecuteCommand(); |
| | | //db.Deleteable<Womcab>() |
| | | // .Where(it => mesWomcab |
| | | // .Any(p => p.CAB001 == it.Cab001 |
| | | // && p.CAB002 == it.Cab002)) |
| | | // .ExecuteCommand(); |
| | | |
| | | }; |
| | | |
| | |
| | | .ExecuteCommand() > 0; |
| | | |
| | | |
| | | //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList(); |
| | | var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList(); |
| | | var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList(); |
| | | //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList(); |
| | | |
| | | |
| | | |
| | | //var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002 && p.CAB003 == it.Cab003)).ExecuteCommand() > 0; |
| | | var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002)).ExecuteCommand() > 0; |
| | | var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002 && p.CAB003 == it.Cab003)).ExecuteCommand() > 0; |
| | | //var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002)).ExecuteCommand() > 0; |
| | | |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | |
| | | Cust_item_no = dto.FCustitemno, |
| | | DemandDate = DemandDate, |
| | | CustNumber = dto.CustNumber, |
| | | ModelType = dto.ModelType |
| | | ModelType = dto.ModelType, |
| | | OrderNo = dto.FOrderNo |
| | | |
| | | |
| | | |