From 1cd4e66b490e4b6cc3368771cdff164990e152e7 Mon Sep 17 00:00:00 2001
From: cdk <2441919651@qq.com>
Date: 星期一, 22 十二月 2025 17:35:57 +0800
Subject: [PATCH] 接口增加单位换算,dab增加两个字段
---
MES.Service/service/WomcaaManager.cs | 254 ++++++++++++++++++++++++++++++++------------------
1 files changed, 160 insertions(+), 94 deletions(-)
diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 56e8138..f0369f4 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -1,6 +1,7 @@
锘縰sing MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
+using MES.Service.util;
using SqlSugar;
namespace MES.Service.service;
@@ -22,7 +23,8 @@
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);
@@ -31,12 +33,15 @@
switch (womErpCaa.Type)
{
case "3":
- return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+ return SaveOrUpdateData(db, mesWomcaa, mesWomcabs,womErpCaa.Type)
+ ? 1
+ : 0;
+ //return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; //鍙嶅鏍镐笉鍒犻櫎锛屽仛update銆�
case "2":
case "4":
//kyy 2024-09-13 鍙樻洿
case "5":
- return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
+ return SaveOrUpdateData(db, mesWomcaa, mesWomcabs,womErpCaa.Type)
? 1
: 0;
default:
@@ -47,25 +52,64 @@
}
private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,
- List<Womcab> mesWomcabs)
+ List<Womcab> mesWomcabs, string type)
{
- if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
+ if(type == "3" || (mesWomcaa.DocumentStatus != null && mesWomcaa.DocumentStatus != "C"))
+ {
+ mesWomcaa.Typea = "3"; // 鏂板瀛楁璧嬪��
+ mesWomcaa.Caa001 = mesWomcaa.Caa001 + "F" + mesWomcaa.Erpid.ToString();
+ }
+
+
+
+ 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);
- if (orUpdate && baOrUpdate) return true;
+ //鍗曟潯鎻掑叆蹇界暐绌哄瓧娈�
+ var orUpdate = db.Insertable(mesWomcaa)
+ .IgnoreColumns(true).ExecuteCommand() > 0;
+
+ //鎵归噺鎻掑叆蹇界暐绌哄瓧娈�
+ var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1)
+ .IgnoreColumnsNull()
+ .ExecuteCommand() > 0;
+
+ // if (orUpdate && baOrUpdate)
+ // throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+
+ if (orUpdate && baOrUpdate)
+ {
+ db.Ado.ExecuteCommand("exec [dbo].[prc_unit_check] @billno, @ModuleType",
+ new { billno = mesWomcaa.Caa001, ModuleType = "鐢熶骇宸ュ崟" });
+
+
+ // 璋冪敤瀛樺偍杩囩▼鏇存柊鐢ㄦ枡娓呭崟
+ db.Ado.ExecuteCommand("exec [dbo].[prc_update_womdab] @outMsg output,@outSum output,@inEdtUserGuid,@inCaaGuid",
+ new {
+ outMsg = (string)null, // 杈撳嚭鍙傛暟
+ outSum = (int?)null, // 杈撳嚭鍙傛暟
+ inEdtUserGuid = new Guid("11111111-1111-1111-1111-111111111111"),
+ inCaaGuid = new Guid(mesWomcaa.Guid.ToString())
+ });
+ 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);
+ //throw new NotImplementedException("瀛樺湪涓嬫湁鍗曟嵁锛屼笉鍏佽鍙嶅");
+
+ var decimals = mesWomcabs.Select(s => s.Guid).ToArray();
+ var update = base.DeleteById(mesWomcaa.Guid);
var insertOrUpdate = db
.Deleteable<Womcab>().In(decimals)
.ExecuteCommand() > 0;
@@ -74,67 +118,76 @@
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,
+ DocumentStatus = dto.FDocumentStatus
};
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;
}
@@ -147,49 +200,62 @@
{
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澶碔D
+ 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,
+ F_UNW_QTY_YFSL = dto.F_UNW_QTY_YFSL,
+ // 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;
+ womcab.IS_LOCK = entity.IS_LOCK;
+ womcab.IS_LOCK_DATE = entity.IS_LOCK_DATE;
+
+ }
womcabList.Add(womcab);
}
--
Gitblit v1.9.3