| | |
| | | } |
| | | |
| | | // 检查是否有有效的BOM明细(物料编码不为空且需领用量大于0) |
| | | var validBomItems = erpCabs.Where(cab => |
| | | !string.IsNullOrWhiteSpace(cab.FMaterialID2) && |
| | | var validBomItems = erpCabs.Where(cab => |
| | | !string.IsNullOrWhiteSpace(cab.FMaterialID2) && |
| | | !string.IsNullOrWhiteSpace(cab.FNeedQty2) && |
| | | decimal.TryParse(cab.FNeedQty2, out decimal qty) && qty > 0).ToList(); |
| | | |
| | |
| | | |
| | | public bool Save(ErpWOM wom) |
| | | { |
| | | var womErpCaa = wom. ErpCaa; |
| | | var womErpCaa = wom.ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | var mesWomcabs = MapErpCABtoWomcab(wom.ErpCabs); |
| | | var mesWomcabs = MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | // 验证BOM是否为空 |
| | | ValidateBomNotEmpty(wom.ErpCabs, womErpCaa.FBillNo); |
| | |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | | |
| | | |
| | | if (mesWomcaa.Caa001 != null && mesWomcaa.SrcBillType != null) |
| | | { |
| | | |
| | | db.Deleteable<Womcaa>() |
| | | .Where(it => it.Caa001 == mesWomcaa.Caa001 && |
| | | it.SrcBillType == mesWomcaa.SrcBillType) |
| | | .ExecuteCommand(); |
| | | if (mesWomcaa.Caa001 != null && mesWomcaa.SrcBillType != null) |
| | | { |
| | | |
| | | }; |
| | | db.Deleteable<Womcaa>() |
| | | .Where(it => it.Caa001 == mesWomcaa.Caa001 && |
| | | it.SrcBillType == mesWomcaa.SrcBillType) |
| | | .ExecuteCommand(); |
| | | |
| | | |
| | | 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(); |
| | | |
| | | |
| | | // 删除该任务单的所有WOMCAB记录(BOM明细) |
| | | // 这样可以确保WOMCAB与JSON完全一致 |
| | | 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(); |
| | | .Where(it => it.Cab001 == mesWomcaa.Caa001 && |
| | | it.Cab002 == mesWomcaa.SrcBillType) |
| | | .ExecuteCommand(); |
| | | |
| | | }; |
| | | |
| | | } |
| | | ; |
| | | |
| | | var orUpdate = db.Insertable(mesWomcaa).ExecuteCommand(); |
| | | var baOrUpdate = db.Insertable(mesWomcabs).ExecuteCommand(); |
| | | |
| | | |
| | | //定义输入参数 |
| | | var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001); |
| | | var inputParam2 = new SugarParameter("P_WORK_TYPE", mesWomcaa.SrcBillType); |
| | | // 定义输出参数 |
| | | var outParam1 = new SugarParameter("c_Result",null,true); |
| | | var outParam2 = new SugarParameter("C_MSG",null,true); |
| | | var orUpdate = db.Insertable(mesWomcaa).ExecuteCommand(); |
| | | var baOrUpdate = db.Insertable(mesWomcabs).ExecuteCommand(); |
| | | |
| | | |
| | | |
| | | // 使用 SqlSugar 执行存储过程 |
| | | Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:P_WORK_TYPE,:c_Result,:C_MSG); END;", inputParam1, inputParam2, outParam1, outParam2); |
| | | //定义输入参数 |
| | | var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001); |
| | | var inputParam2 = new SugarParameter("P_WORK_TYPE", mesWomcaa.SrcBillType); |
| | | // 定义输出参数 |
| | | var outParam1 = new SugarParameter("c_Result", null, true); |
| | | var outParam2 = new SugarParameter("C_MSG", null, true); |
| | | |
| | | |
| | | |
| | | // 获取输出参数的值 |
| | | |
| | | int result = int.Parse((string)outParam1.Value); |
| | | string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; |
| | | // 使用 SqlSugar 执行存储过程 |
| | | Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:P_WORK_TYPE,:c_Result,:C_MSG); END;", inputParam1, inputParam2, outParam1, outParam2); |
| | | |
| | | |
| | | |
| | | // 获取输出参数的值 |
| | | |
| | | int result = int.Parse((string)outParam1.Value); |
| | | string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; |
| | | |
| | | |
| | | if (result == 1) |
| | | { |
| | | //存储过程失败则事务进行回滚 |
| | | db.Ado.RollbackTran(); |
| | | throw new Exception(message); |
| | | |
| | | } |
| | | { |
| | | //存储过程失败则事务进行回滚 |
| | | db.Ado.RollbackTran(); |
| | | throw new Exception(message); |
| | | |
| | | // 提交事务 |
| | | db.Ado.CommitTran(); |
| | | return true; |
| | | |
| | | } |
| | | |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | // 提交事务 |
| | | db.Ado.CommitTran(); |
| | | return true; |
| | | |
| | | |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | |
| | | { |
| | | |
| | | |
| | | string DemandDate = !string.IsNullOrEmpty(dto.DemandDate) ? DateTime.ParseExact(dto.DemandDate, "yyyymmdd", CultureInfo.InvariantCulture).ToString("yyyy-mm-dd") : null; |
| | | string DemandDate = !string.IsNullOrEmpty(dto.DemandDate) ? DateTime.ParseExact(dto.DemandDate, "yyyymmdd", CultureInfo.InvariantCulture).ToString("yyyy-mm-dd") : null; |
| | | |
| | | var entity = new Womcaa |
| | | { |
| | | SrcBillType = dto.FSrcBillType, |
| | | Caa001 = dto.FBillNo, |
| | | Caa021 = dto.FWorkShopID0, |
| | | |
| | | |
| | | DepotCode = dto.FStockId, |
| | | CreateDate = dto.FDate, |
| | | Caa004 = dto.FBillType, |
| | | |
| | | |
| | | Caa006 = dto.FMaterialId, |
| | | Caa009 = dto.FUnitId, |
| | | Caa012 = !string.IsNullOrEmpty(dto.FQty) |
| | | ? Convert.ToDecimal(dto.FQty) |
| | | : null, |
| | | |
| | | |
| | | Caa010 = dto.FPlanStartDate, |
| | | Caa011 = dto.FPlanFinishDate, |
| | | Caa005 = dto.FConveyDate, |
| | | |
| | | |
| | | Lot = dto.FLot, |
| | | |
| | | |
| | | Caa015 = dto.F_UNW_Text_xsddh, |
| | | CAA015_Head = dto.xsddh_type, |
| | | |
| | |
| | | Suppno = dto.FSuppno, |
| | | Cust_no = dto.FCustno, |
| | | Cust_item_no = dto.FCustitemno, |
| | | DemandDate = DemandDate, |
| | | CustNumber = dto.CustNumber, |
| | | ModelType = dto.ModelType, |
| | | OrderNo = dto.FOrderNo |
| | | DemandDate = DemandDate, |
| | | CustNumber = dto.CustNumber, |
| | | ModelType = dto.ModelType, |
| | | OrderNo = dto.FOrderNo |
| | | |
| | | |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | return entity; |
| | | } |
| | |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | |
| | | |
| | | Cab001 = dto.FBillNo, |
| | | Cab002 = dto.FBillNoType, |
| | | Cab003 = dto.FMaterialID2, |
| | |
| | | Cab014 = dto.FIsKeyItem, |
| | | Numerator = dto.FNumerator, |
| | | Denominator = dto.FDenominator |
| | | |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | womcabList.Add(womcab); |
| | | } |