| | |
| | | using MES.Service.DB; |
| | | using Dm; |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using SqlSugar; |
| | | using System.Net.NetworkInformation; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | |
| | | public bool Save(ErpWOM wom) |
| | | { |
| | | var womErpCaa = wom.ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | var mesWomcabs = |
| | | MapErpCABtoWomcab(wom.ErpCabs); |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo); |
| | | var mesWomcabs =MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | switch (womErpCaa.Type) |
| | | { |
| | | case "3": |
| | | return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | return DeleteData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | case "1": |
| | | case "2": |
| | | case "4": |
| | | return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) |
| | | ? 1 |
| | | : 0; |
| | | return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | case "5": |
| | | return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | default: |
| | | throw new NotImplementedException( |
| | | $"type没有{womErpCaa.Type}这个类型"); |
| | |
| | | }) > 0; |
| | | } |
| | | |
| | | private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs) |
| | | { |
| | | if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id); |
| | | |
| | | if (mesWomcaa.Id != null) |
| | | { |
| | | base.DeleteById(mesWomcaa.Id); |
| | | } |
| | | if (mesWomcabs.Count > 0) |
| | | db.Deleteable<Womcab>() |
| | | .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | |
| | | { |
| | | db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | } |
| | | var orUpdate = base.Insert(mesWomcaa); |
| | | var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); |
| | | if (orUpdate && baOrUpdate) { |
| | | //定义输入参数 |
| | | var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001); |
| | | // 定义输出参数 |
| | | var outParam1 = new SugarParameter("c_Result", null, true); |
| | | var outParam2 = new SugarParameter("C_MSG", null, true); |
| | | // 使用 SqlSugar 执行存储过程 |
| | | Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, 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.CommitTran(); |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | } |
| | | |
| | | private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs) |
| | | { |
| | | if (mesWomcaa.Id != null) { |
| | | base.DeleteById(mesWomcaa.Id); |
| | | } |
| | | if (mesWomcabs.Count > 0) { |
| | | db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | } |
| | | var orUpdate = base.Insert(mesWomcaa); |
| | | var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); |
| | | |
| | | if (orUpdate && baOrUpdate) return true; |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | } |
| | | |
| | | private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | private bool DeleteData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs) |
| | | { |
| | | var decimals = mesWomcabs.Select(s => s.Id).ToArray(); |
| | | var update = base.DeleteById(mesWomcaa.Id); |
| | | var insertOrUpdate = db |
| | | .Deleteable<Womcab>().In(decimals) |
| | | .ExecuteCommand() > 0; |
| | | var insertOrUpdate = db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | | throw new NotImplementedException("更新失败"); |
| | | } |
| | | |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string FBillNo) |
| | | { |
| | | var entity = new Womcaa |
| | | { |
| | | Erpid = Convert.ToDecimal(dto.Id), |
| | | Caa001 = dto.FBillNo, |
| | | Caa021 = dto.FWorkShopID0, |
| | | Caa001 = FBillNo, |
| | | Caa004 = dto.FBillType, |
| | | Caa005 = dto.FConveyDate, |
| | | Caa006 = dto.FMaterialId, |
| | | Caa009 = dto.FUnitId, |
| | | Caa010 = dto.FPlanStartDate, |
| | | Caa011 = dto.FPlanFinishDate, |
| | | Caa012 = Convert.ToDecimal(dto.FQty), |
| | | Caa013 = dto.FBomId, |
| | | Caa015 = dto.FSaleOrderNo, |
| | | Caa016 = dto.FDescription, |
| | | Caa017 = 0, |
| | | Caa018 = Convert.ToDecimal(dto.PLAN_ID), |
| | | Caa019 = dto.PLAN_SEQ, |
| | | Caa020 = dto.PLAN_NUM, |
| | | Caa021 = dto.FWorkShopID, |
| | | Fstatus = 0, |
| | | Caa022 = Convert.ToDecimal(dto.FQty), |
| | | Caa023 = dto.FStatus, |
| | | Caa024 = 0, |
| | | RoutingId = dto.FRoutingId, |
| | | WorkShopId = dto.FREMWorkShopId, |
| | | DepotCode = dto.FStockId, |
| | | CreateDate = dto.FDate, |
| | | Caa004 = dto.FBillType, |
| | | Caa023 = dto.FStatus, |
| | | Caa006 = dto.FMaterialId, |
| | | Caa009 = dto.FUnitId, |
| | | Caa012 = !string.IsNullOrEmpty(dto.FQty) |
| | | ? Convert.ToDecimal(dto.FQty) |
| | | : null, |
| | | WorkGroupId = dto.FWorkGroupId, |
| | | PlanId = dto.FPlannerID, |
| | | Caa010 = dto.FPlanStartDate, |
| | | Caa011 = dto.FPlanFinishDate, |
| | | Caa005 = dto.FConveyDate, |
| | | StockInlimith = dto.FStockInLimitH, |
| | | StockInlimitl = dto.FStockInLimitL, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | Caa013 = dto.FBomId, |
| | | Caa015 = dto.F_UNW_Text_xsddh, |
| | | CreateType = dto.FCreateType, |
| | | SrcBillType = dto.FSrcBillType, |
| | | SrcBillNo = dto.FSrcBillNo, |
| | |
| | | ForceCloserid = dto.FForceCloserId, |
| | | CloseType = dto.FCloseType, |
| | | SrcSplitBillno = dto.FSrcSplitBillNo, |
| | | Caa016 = dto.FMemoItem, |
| | | Caa018 = Convert.ToDecimal(dto.planId), |
| | | Caa019 = Convert.ToDecimal(dto.planSeq), |
| | | Caa020 = dto.planNum |
| | | PrdOrg=dto.FPrdOrgId, |
| | | TrustOrg=dto.FEnTrustOrgId, |
| | | TbTime=DateTime.Now, |
| | | JaBs = "0", |
| | | F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty, |
| | | F_WWC_DATETIME = dto.F_WWC_DATETIME != null ? DateTime.ParseExact(dto.F_WWC_DATETIME, "yyyy-MM-dd HH:mm:ss", null) : null, |
| | | FGS = Convert.ToDecimal(dto.FGS), |
| | | F_WWC_DECIMAL = Convert.ToDecimal(dto.F_WWC_DECIMAL), |
| | | F_WWC_XB = dto.F_WWC_XB, |
| | | F_WWC_BASE = dto.F_WWC_BASE, |
| | | IsXg = 0 |
| | | |
| | | }; |
| | | if (dto.FStatus == "6" || dto.FStatus == "7") |
| | | { |
| | | entity.JaBs = "1"; |
| | | entity.JaTime = DateTime.Now; |
| | | } |
| | | |
| | | var single = base.GetSingle(it => it.Erpid == entity.Erpid); |
| | | if (single != null) entity.Id = single.Id; |
| | |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | Erpid = Convert.ToDecimal(dto.ID), |
| | | Erpid = Convert.ToDecimal(dto.Id), |
| | | Cab001 = dto.FBillNo, |
| | | Cab002 = dto.FSeq, |
| | | Cab003 = dto.FMaterialID2, |
| | | Cab006 = !string.IsNullOrEmpty(dto.FNeedQty2) |
| | | ? Convert.ToDecimal(dto.FNeedQty2) |
| | | : null, |
| | | Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) |
| | | ? Convert.ToDecimal(dto.FPickedQty) |
| | | : null, |
| | | Cab003 = dto.FMaterialID, |
| | | Cab006 = Convert.ToDecimal(dto.FMustQty), |
| | | Cab007 = Convert.ToDecimal(dto.FPickedQty), |
| | | Cab009 = dto.FUnitID, |
| | | Cab012 = Convert.ToDecimal(dto.FStdQty), |
| | | Cab014 = dto.FIsKeyItem, |
| | | Pid = Convert.ToDecimal(dto.Pid), |
| | | Eid = Convert.ToDecimal(dto.Pid), |
| | | PositionNo = dto.FPositionNO, |
| | | IssuingOrganization=dto.FSupplyOrg, |
| | | SupplyOrganization=dto.FChildSupplyOrgId, |
| | | OwnerId = dto.FOwnerID, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | DepotCode = dto.FStockID, |
| | | IssueType = dto.FIssueType, |
| | | Cab008 = dto.F_UNW_Text_tpgy, |
| | | Cab009 = dto.FUnitID, |
| | | SupplyType = dto.FSupplyType, |
| | | Cab012 = !string.IsNullOrEmpty(dto.FStdQty) |
| | | ? Convert.ToDecimal(dto.FStdQty) |
| | | : null, |
| | | Cab014 = dto.FIsKeyItem, |
| | | Numerator = dto.FNumerator, |
| | | Denominator = dto.FDenominator, |
| | | Eid = Convert.ToDecimal(dto.PID), |
| | | Numerator = Convert.ToDecimal(dto.FNumerator), |
| | | Denominator = Convert.ToDecimal(dto.FDenominator), |
| | | SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty), |
| | | SCRAPRATE = Convert.ToDecimal(dto.FScrapRate) |
| | | SCRAPRATE = Convert.ToDecimal(dto.FScrapRate), |
| | | SalesOrder = dto.F_WWC_TEXT, |
| | | F_WWC_TEXT1 = dto.F_WWC_TEXT1, |
| | | F_WWC_DATE = dto.F_WWC_DATE != null ? DateTime.ParseExact(dto.F_WWC_DATE, "yyyy-MM-dd HH:mm:ss", null) : null, |
| | | F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty, |
| | | FUSERATE = dto.FUseRate, |
| | | FMATERIALTYPE = dto.FMaterialType |
| | | }; |
| | | |
| | | var entity = Db.Queryable<Womcab>() |