| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service; |
| | |
| | | public bool Save(ErpWOM wom) |
| | | { |
| | | var womErpCaa = wom.ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo); |
| | | var mesWomcabs = |
| | | MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | |
| | | private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | | if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id); |
| | | if (StringUtil.CheckGuid(mesWomcaa.Guid)) |
| | | base.DeleteById(mesWomcaa.Guid); |
| | | |
| | | |
| | | if (mesWomcabs.Count > 0) |
| | | db.Deleteable<Womcab>() |
| | | .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | |
| | | var orUpdate = base.Insert(mesWomcaa); |
| | | var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); |
| | | //单条插入忽略空字段 |
| | | 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.Id).ToArray(); |
| | | var update = base.DeleteById(mesWomcaa.Id); |
| | | var decimals = mesWomcabs.Select(s => s.Guid).ToArray(); |
| | | var update = base.DeleteById(mesWomcaa.Guid); |
| | | var insertOrUpdate = db |
| | | .Deleteable<Womcab>().In(decimals) |
| | | .ExecuteCommand() > 0; |
| | |
| | | throw new NotImplementedException("更新失败"); |
| | | } |
| | | |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string PPBOMNO) |
| | | { |
| | | var entity = new Womcaa |
| | | { |
| | | Erpid = Convert.ToDecimal(dto.Id), |
| | | Caa001 = dto.FBillNo, |
| | | 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, |
| | | 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 = dto.FConveyDate, |
| | | StockInlimith = dto.FStockInLimitH, |
| | | StockInlimitl = dto.FStockInLimitL, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | Caa013 = dto.FBomId, |
| | | : 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, |
| | | 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.ToDecimal(dto.PLAN_ID) |
| | | : null, |
| | | ? Convert.ToInt32(dto.PLAN_ID) |
| | | : null, /// ERP源单ID |
| | | Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ) |
| | | ? Convert.ToDecimal(dto.PLAN_SEQ) |
| | | : null, |
| | | Caa020 = dto.PLAN_NUM, |
| | | Caa015 = dto.F_UNW_Text_xsddh, |
| | | EerSczz = dto.erP_SCZZ, |
| | | EerWtzz = dto.erP_WTZZ, |
| | | Caa015Head = dto.F_XIFG_Integer_tzk, |
| | | MainProductNo = dto.F_XIFG_Base_w5c, |
| | | MainProductQty = 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 |
| | | ? 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.Id = single.Id; |
| | | if (single != null) entity.Guid = single.Guid; |
| | | |
| | | return entity; |
| | | } |
| | |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | Erpid = Convert.ToDecimal(dto.FENTRYID), |
| | | Cab001 = dto.FBillNo, |
| | | Cab002 = dto.FSeq, |
| | | Cab003 = dto.FMaterialID, |
| | | 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, |
| | | : 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, |
| | | : 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, |
| | | Eid = Convert.ToDecimal(dto.FID), |
| | | |
| | | Scrapqty = dto.FFixScrapQty, |
| | | Scraprate = dto.FScrapRate, |
| | | Fsaleorderno = dto.FSALEORDERNO, |
| | | |
| | | CustomerItemNumber = dto.F_XIFG_Text_re5, |
| | | PackingListNumber = dto.F_XIFG_Text_apv, |
| | | MainProduct = dto.F_XIFG_Base_re5, |
| | | MainProductQty = Convert.ToDecimal(dto.F_XIFG_Qty_apv), |
| | | ParentItemName = dto.F_XIFG_Base_apv |
| | | : 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.Erpid == womcab.Erpid).Single(); |
| | | if (entity != null) womcab.Id = entity.Id; |
| | | .Where(s => s.Eid == womcab.Eid).Single(); |
| | | if (entity != null) womcab.Guid = entity.Guid; |
| | | |
| | | womcabList.Add(womcab); |
| | | } |