¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | | public class WomcaaManager : Repository<Womcaa> |
| | | { |
| | | private readonly WomcabManager _womcabManager = new(); |
| | | |
| | | public bool SaveList(List<ErpWOM> rohIns) |
| | | { |
| | | var result = rohIns.Select(Save).ToList(); |
| | | return result.All(b => b); |
| | | } |
| | | |
| | | public bool Save(ErpWOM wom) |
| | | { |
| | | var womErpCaa = wom.ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | var mesWomcabs = |
| | | MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | switch (womErpCaa.Type) |
| | | { |
| | | case "3": |
| | | return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | case "2": |
| | | case "4": |
| | | case "5": |
| | | return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) |
| | | ? 1 |
| | | : 0; |
| | | default: |
| | | throw new NotImplementedException( |
| | | $"typeç±»å为{womErpCaa.Type}çä¸åå¨"); |
| | | } |
| | | }) > 0; |
| | | } |
| | | |
| | | 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 = db.Insertable(mesWomcaa) |
| | | .IgnoreColumns(true).ExecuteCommand() > 0; |
| | | |
| | | var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand() > 0; |
| | | |
| | | |
| | | 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 UpdateData(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; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | | throw new NotImplementedException("æ´æ°å¤±è´¥"); |
| | | } |
| | | |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) |
| | | { |
| | | var entity = new Womcaa |
| | | { |
| | | Erpid = Convert.ToInt64(dto.Id), |
| | | Caa001 = dto.FBillNo, |
| | | Caa021 = dto.FWorkShopID, |
| | | 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, |
| | | |
| | | CreateType = dto.FCreateType, |
| | | Caa020 = dto.FBillNo, |
| | | SrcBillType = dto.FSrcBillType, |
| | | SrcBillNo = dto.FSrcBillNo, |
| | | SrcBillentryseq = dto.FSrcBillEntrySeq, |
| | | SaleOrderNo = dto.FSaleOrderNo, |
| | | SaleOrderEntryseq = dto.FSaleOrderEntrySeq, |
| | | ForceCloserid = dto.FForceCloserId, |
| | | CloseType = dto.FCloseType, |
| | | SrcSplitBillno = dto.FSrcSplitBillNo, |
| | | Caa016 = dto.FDescription, |
| | | PrdOrg = dto.FPrdOrgId, |
| | | TrustOrg = dto.FEnTrustOrgId, |
| | | Bomtype = dto.FBOMType, |
| | | Bommaster = dto.FBOMMaster, |
| | | Bomaltrnate = dto.FBOMAlternate, |
| | | Bomeffedate = dto.FBOMEffeDate, |
| | | Routingalternate = dto.FRoutingAlternate, |
| | | Routingeffedate = dto.FRoutingEffeDate, |
| | | Mrpqty = dto.FMRPQty, |
| | | Actualstartdate = dto.FActualStartDate, |
| | | Actualcompletedate = dto.FActualCompleteDate, |
| | | Mosourcedoctype = dto.FMOSourceDocType, |
| | | Project = dto.FProject, |
| | | Ownerorg = dto.FOwnerOrg, |
| | | Createdby = dto.FCreatedBy, |
| | | Createdon = dto.FCreatedOn, |
| | | Totalstartqty = dto.FTotalStartQty, |
| | | Totalcompleteqty = dto.FTotalCompleteQty, |
| | | Totalrcvqty = dto.FTotalRcvQty, |
| | | Totalreworkingqty = dto.FTotalReworkingQty, |
| | | Reasonforrework = dto.FReasonForRework, |
| | | Isforcewholeset = dto.FIsForceWholeSet, |
| | | PREVMO = dto.FPrevMO, |
| | | Typea = dto.TypeA |
| | | }; |
| | | |
| | | |
| | | var single = base.GetSingle(it => it.Erpid == entity.Erpid); |
| | | if (single != null) entity.Id = single.Id; |
| | | |
| | | //Caa006 = dto.FMaterialId, |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == dto.FMaterialId |
| | | && x.OrgId == dto.FPrdOrgId |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | var mesLinkU9_xm = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == Convert.ToString(dto.FProject) |
| | | && x.OrgId == dto.FPrdOrgId |
| | | && x.TableType == "MES_PROJECT").First(); |
| | | |
| | | if (mesLinkU9 != null) entity.Caa006 = mesLinkU9.MesId; |
| | | if (mesLinkU9_xm != null) entity.Project = Convert.ToInt64(mesLinkU9_xm.MesId); |
| | | |
| | | return entity; |
| | | } |
| | | |
| | | private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList) |
| | | { |
| | | var womcabList = new List<Womcab>(); |
| | | |
| | | foreach (var dto in dtoList) |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | Erpid = !string.IsNullOrEmpty(dto.ID) |
| | | ? Convert.ToDecimal(dto.ID) |
| | | : throw new Exception("å表idä¸å
许为空"), |
| | | Cab001 = dto.FBillNo, |
| | | Cab002 = dto.FSeq, |
| | | Cab003 = dto.FMaterialID, |
| | | Cab006 = !string.IsNullOrEmpty(dto.FNeedQty) |
| | | ? Convert.ToDecimal(dto.FNeedQty) |
| | | : null, |
| | | MustQty = !string.IsNullOrEmpty(dto.FMustQty) |
| | | ? Convert.ToDecimal(dto.FMustQty) |
| | | : null, |
| | | Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) |
| | | ? Convert.ToDecimal(dto.FPickedQty) |
| | | : null, |
| | | PositionNo = dto.FPositionNO, |
| | | SupplyOrganization = dto.FChildSupplyOrgId, |
| | | IssuingOrganization = dto.FSupplyOrg, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | DepotCode = dto.FStockID, |
| | | IssueType = dto.FIssueType, |
| | | Cab009 = dto.FUnitID, |
| | | SupplyType = dto.FSupplyType, |
| | | Cab012 = !string.IsNullOrEmpty(dto.FStdQty) |
| | | ? Convert.ToDecimal(dto.FStdQty) |
| | | : null, |
| | | FreplaceGroup = !string.IsNullOrEmpty(dto.FReplaceGroup) |
| | | ? Convert.ToInt64(dto.FReplaceGroup) |
| | | : null, |
| | | UseRate = !string.IsNullOrEmpty(dto.FUseRate) |
| | | ? Convert.ToDecimal(dto.FUseRate) |
| | | : null, |
| | | |
| | | Cab014 = !string.IsNullOrEmpty(dto.FIsKeyItem) |
| | | ? Convert.ToInt64(dto.FIsKeyItem) |
| | | : null, |
| | | Numerator = !string.IsNullOrEmpty(dto.FNumerator) |
| | | ? Convert.ToDecimal(dto.FNumerator) |
| | | : null, |
| | | Denominator = !string.IsNullOrEmpty(dto.FDenominator) |
| | | ? Convert.ToDecimal(dto.FDenominator) |
| | | : null, |
| | | Pid = !string.IsNullOrEmpty(dto.FID) |
| | | ? Convert.ToDecimal(dto.FID) |
| | | : throw new Exception("ç¶idä¸å
许为空"), |
| | | Eid = !string.IsNullOrEmpty(dto.FID) |
| | | ? Convert.ToDecimal(dto.FID) |
| | | : throw new Exception("ç¶idä¸å
许为空"), |
| | | Scrapqty = !string.IsNullOrEmpty(dto.FFixScrapQty) |
| | | ? Convert.ToDecimal(dto.FFixScrapQty) |
| | | : null, |
| | | Scraprate = !string.IsNullOrEmpty(dto.FScrapRate) |
| | | ? Convert.ToDecimal(dto.FScrapRate) |
| | | : null, |
| | | Project = dto.FProject, |
| | | Bomreqqty = dto.FBOMReqQty, |
| | | Materialtype = dto.FMaterialType, |
| | | IsOverIssue = dto.FIsOverIssue, |
| | | StandardMaterialscale = dto.FStandardMaterialScale, |
| | | Fixedmaterialnum = dto.FFixedMaterialNum, |
| | | IsSubstitute = dto.FIsSubstitute, |
| | | Substituteditem = dto.FSubstitutedItem, |
| | | Issueuom = dto.FIssueUOM, |
| | | Qpa = dto.FQPA, |
| | | Scraptype = dto.FScrapType, |
| | | Bfopportunity = dto.FBFOpportunity, |
| | | Supplywh = dto.FSupplyWh, |
| | | Mocompletesetcheck = dto.FMOCompleteSetCheck, |
| | | Mostartsetcheck = dto.FMOStartSetCheck, |
| | | Iscoupleissue = dto.FIsCoupleIssue, |
| | | FDescription = dto.FDescription, |
| | | TypeB = dto.TypeB |
| | | |
| | | }; |
| | | |
| | | var entity = Db.Queryable<Womcab>() |
| | | .Where(s => s.Erpid == womcab.Erpid).Single(); |
| | | if (entity != null) womcab.Id = entity.Id; |
| | | |
| | | //Cab003 = dto.FMaterialID |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == dto.FMaterialID |
| | | && x.OrgId == "1002011210000095" |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | var mesLinkU9_xm = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == Convert.ToString(dto.FProject) |
| | | && x.OrgId == "1002011210000095" |
| | | && x.TableType == "MES_PROJECT").First(); |
| | | |
| | | if (mesLinkU9 != null) womcab.Cab003 = mesLinkU9.MesId; |
| | | if (mesLinkU9_xm != null) womcab.Project = mesLinkU9_xm.MesId; |
| | | |
| | | womcabList.Add(womcab); |
| | | } |
| | | |
| | | return womcabList; |
| | | } |
| | | } |