¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | | public class WomcaaManager : Repository<Womcaa> |
| | | { |
| | | //å½å类已ç»ç»§æ¿äº Repository å¢ãå ãæ¥ãæ¹çæ¹æ³ |
| | | |
| | | //è¿éé¢åç代ç ä¸ä¼ç»è¦ç,妿è¦éæ°çæè¯·å é¤ WomcaaManager.cs |
| | | |
| | | 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, wom.ErpCabs[0].FBillNo); |
| | | var mesWomcabs = |
| | | MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | switch (womErpCaa.Type) |
| | | { |
| | | case "3": |
| | | return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | case "2": |
| | | case "4": |
| | | //kyy 2024-09-13 åæ´ |
| | | 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 (StringUtil.CheckGuid(mesWomcaa.Guid)) |
| | | base.DeleteById(mesWomcaa.Guid); |
| | | |
| | | |
| | | if (mesWomcabs.Count > 0) |
| | | db.Deleteable<Womcab>() |
| | | .Where(s => s.Pid == 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) return true; |
| | | throw new NotImplementedException("æå
¥ææ´æ°å¤±è´¥"); |
| | | } |
| | | |
| | | private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | | var decimals = mesWomcabs.Select(s => s.Guid).ToArray(); |
| | | var update = base.DeleteById(mesWomcaa.Guid); |
| | | var insertOrUpdate = db |
| | | .Deleteable<Womcab>().In(decimals) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | | throw new NotImplementedException("æ´æ°å¤±è´¥"); |
| | | } |
| | | |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string PPBOMNO) |
| | | { |
| | | var entity = new Womcaa |
| | | { |
| | | Erpid = Convert.ToInt32(dto.Id), /// ERPID |
| | | Caa001 = PPBOMNO, /// åå· |
| | | Caa021 = dto.FWorkShopID, /// å·¥ä½è½¦é´ |
| | | 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 = DateTime.TryParse(dto.FConveyDate, out var conveyDate) |
| | | ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate.ToString()) |
| | | : null, /// å¼åæ¥æ |
| | | StockInlimith = dto.FStockInLimitH, /// å
¥åºä¸é |
| | | StockInlimitl = dto.FStockInLimitL, /// å
¥åºä¸é |
| | | Mtono = dto.FMTONO, /// 计åè·è¸ªå· |
| | | Lot = dto.FLot, /// æ¹å· |
| | | Caa013 = dto.FBomId, /// BOMçæ¬¡ |
| | | |
| | | CreateType = dto.FCreateType, /// çææ¹å¼ |
| | | 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, /// 夿³¨ |
| | | |
| | | Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID) |
| | | ? Convert.ToInt32(dto.PLAN_ID) |
| | | : null, /// ERPæºåID |
| | | Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ) |
| | | ? Convert.ToInt32(dto.PLAN_SEQ) |
| | | : null, /// ERPæºåè¡å· |
| | | Caa020 = dto.PLAN_NUM, /// ERPæºååå·(ä»»å¡åå·) |
| | | //Caa015 = dto.F_UNW_Text_xsddh, /// éå®è®¢åå· |
| | | ErpSczz = Convert.ToInt32(dto.FPrdOrgId), /// ç产ç»ç»ID |
| | | ErpWtzz = Convert.ToInt32(dto.FEnTrustOrgId), /// å§æç»ç»ID |
| | | Btbz = dto.Btbz, /// å§æç»ç»ID |
| | | //Caa015Head = dto.F_XIFG_Integer_tzk, /// éå®è®¢åè¡å· |
| | | //MainProductNo = dto.F_XIFG_Base_w5c, /// 主产åç¼ç |
| | | // MainProductQty = |
| | | // Convert.ToInt32(dto.F_XIFG_Qty_yrr), /// 主产åç产æ°é |
| | | // CustomerItemNumber = dto.F_XIFG_Text_fg2, /// 客æ·è´§å· |
| | | // PackingListNumber = dto.F_XIFG_Text_yrr, /// å
è£
åå· |
| | | // CustomerName = dto.F_XIFG_Text_qtr1, /// 客æ·åç§° |
| | | // Customer = dto.F_XIFG_Base_83g1, /// å®¢æ· |
| | | Caa0111 = dto.FPlanFinishDate, /// é¢è®¡å®å·¥æ¶é´å¤ä»½ |
| | | Typea = dto.TypeA, /// é¢è®¡å®å·¥æ¶é´å¤ä»½ |
| | | //Typeb = dto.TypeB /// é¢è®¡å®å·¥æ¶é´å¤ä»½ |
| | | SynchronousDate = DateTime.Now |
| | | }; |
| | | |
| | | var single = base.GetSingle(it => it.Erpid == entity.Erpid); |
| | | if (single != null) entity.Guid = single.Guid; |
| | | |
| | | return entity; |
| | | } |
| | | |
| | | private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList) |
| | | { |
| | | var womcabList = new List<Womcab>(); |
| | | |
| | | foreach (var dto in dtoList) |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | Erpid = Convert.ToInt32(dto.Id), /// ERPID |
| | | Cab001 = dto.FBillNo, /// å·¥ååå· |
| | | Cab002 = Convert.ToInt32(dto.FSeq), /// åºå· |
| | | Cab003 = dto.FMaterialID, /// ææç¼ç |
| | | Cab006 = !string.IsNullOrEmpty(dto.FNeedQty) |
| | | ? Convert.ToDecimal(dto.FNeedQty) |
| | | : null, /// éé¢ç¨é |
| | | Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) |
| | | ? Convert.ToDecimal(dto.FPickedQty) |
| | | : null, /// å·²é¢ç¨é |
| | | PositionNo = dto.FPositionNO, /// ä½ç½®å· |
| | | SupplyOrganization = dto.FChildSupplyOrgId, /// ä¾åºç»ç» |
| | | IssuingOrganization = dto.FSUPPLYORG, /// åæç»ç» |
| | | 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, /// ä¾åºç±»å(Céè´ Zèªå¶ Wå§å¤) |
| | | Cab012 = !string.IsNullOrEmpty(dto.FStdQty) |
| | | ? Convert.ToDecimal(dto.FStdQty) |
| | | : null, /// ç»æç¨é |
| | | Cab014 = dto.FIsKeyItem, /// æ¯å¦æ¿æ |
| | | Numerator = dto.FNumerator, /// åå |
| | | Denominator = dto.FDenominator, /// 忝 |
| | | Pid = Convert.ToInt32(dto.PID), /// ERP头ID |
| | | Eid = Convert.ToInt32(dto.Id), /// ERP ID |
| | | |
| | | Scrapqty = dto.FFixScrapQty, /// åºå®æè |
| | | Scraprate = dto.FScrapRate, /// å卿èç |
| | | Freplacegroup = Convert.ToInt32(dto.FReplaceGroup), |
| | | UseRate = Convert.ToDecimal(dto.FUseRate), |
| | | MaterialType = dto.FMaterialType, |
| | | MustQty = Convert.ToDecimal(dto.FMustQty), |
| | | Typeb = dto.TypeB |
| | | // Fsaleorderno = dto.FSALEORDERNO, /// éå®è®¢å |
| | | // |
| | | // CustomerItemNumber = dto.F_XIFG_Text_re5, /// 客æ·è´§å· |
| | | // PackingListNumber = dto.F_XIFG_Text_apv, /// å
è£
åå· |
| | | // MainProduct = dto.F_XIFG_Base_re5, /// 主产å |
| | | // MainProductQty = |
| | | // Convert.ToInt32(dto.F_XIFG_Qty_apv), /// ä¸»äº§åæ°é |
| | | // ParentItemName = dto.F_XIFG_Base_apv /// ç¶é¡¹ç©æåç§° |
| | | }; |
| | | |
| | | var entity = Db.Queryable<Womcab>() |
| | | .Where(s => s.Eid == womcab.Eid).Single(); |
| | | if (entity != null) womcab.Guid = entity.Guid; |
| | | |
| | | womcabList.Add(womcab); |
| | | } |
| | | |
| | | return womcabList; |
| | | } |
| | | } |