From ef9b07abfcee94d1de2a2c9192c58bee61695fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E9=B9=8F?= Date: Sat, 26 Apr 2025 18:41:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=B7=A5=E6=8A=A5=E5=91=8A=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=88=90=E5=93=81=E5=85=A5=E5=BA=93=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs | 5 ++ .../ICSSoft.Common/TransTypeEnum.cs | 4 ++ .../ICSManufactureService.cs | 42 ++++++++--------- .../ICSSoft.DataProject/ICSSubmitService.cs | 46 +++++++++++++------ 4 files changed, 61 insertions(+), 36 deletions(-) diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs index 1d74854..f446ebd 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs @@ -103,6 +103,11 @@ public static string ICSManufactureReceiveURL = url+ "ManufactureReceiveDoc/Approve"; public static string U9ICSManufactureReceiveURL = url+ "U9ManufactureReceiveDoc/Approve"; + /// + /// 根据完工报告单生成成品入库单 + /// + public static string ICSManufactureReceiveCreateURL = url+ "ManufactureReceiveDoc/Create"; + /// /// 返工工单 /// diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs index f39a10c..1416b18 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs @@ -136,6 +136,10 @@ namespace ICSSoft.Common [DBValue("72")] ManufactureMESReceive, + [Description("产成品入库-产成品入库单-mes-更新")] + [DBValue("72-1")] + ManufactureMESReceiveUpt, + [Description("销售发货-销售发货单")] [DBValue("19")] SalesShipmentDoc, //(合并发料) diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs index 6c33600..dff96d6 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs @@ -3440,7 +3440,7 @@ and d.lotno is null"; } /// - /// MES成品入库单调用ERP接口 + /// 完工报告单入库调用ERP接口 /// /// /// @@ -3505,7 +3505,7 @@ and d.lotno is null"; } - #region ERP开立状态单据审核 + #region 完工报告单入库创建ERP成品入库单 string sql = @"DECLARE @quantity DECIMAL(38,4); DECLARE @rcvquantity DECIMAL(38,4); SELECT @quantity=SUM(Quantity),@rcvquantity=SUM(RCVQuantity) FROM ICSManufactureReceive b @@ -3515,33 +3515,29 @@ BEGIN RAISERROR('" + language.GetNameByCode("WMSAPIInfo096") + @"',16,1); RETURN END -select LotNo,WorkPoint,InvCode,ToWarehouseCode,MUSER,Quantity,TransCode,TransSequence +select a.WorkPoint,a.ToWarehouseCode,b.RCVID,b.RCVDetailID,a.MUSER,GETDATE() AS MTIME,a.InvCode,a.Quantity,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,mo.Amount,mo.MODetailID,b.RCVID+a.WorkPoint AS Costre INTO #NewTempERP -from ICSWareHouseLotInfoLog -WHERE Identification='{0}' AND ERPUpload='0' +from ICSWareHouseLotInfoLog a +INNER JOIN ICSMO mo ON mo.MOCode=a.TransCode AND mo.Sequence=a.TransSequence AND mo.WorkPoint=a.WorkPoint +INNER JOIN ICSManufactureReceive b ON b.SourceCode=mo.MOCode AND b.Sequence=mo.Sequence AND b.WorkPoint=mo.WorkPoint AND b.RCVCode='{3}' +INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint +INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock004' AND a.WorkPoint=conStock.WorkPoint +WHERE a.Identification='{0}' AND a.ERPUpload='0' - SELECT b.RCVID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint - FROM #NewTempERP a - INNER JOIN ICSMO mo ON mo.MOCode=a.TransCode AND mo.Sequence=a.TransSequence AND mo.WorkPoint=a.WorkPoint - INNER JOIN ICSManufactureReceive b ON b.SourceCode=mo.MOCode AND b.Sequence=mo.Sequence AND b.WorkPoint=mo.WorkPoint AND b.RCVCode='{3}' - INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint - INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock004' AND a.WorkPoint=conStock.WorkPoint - GROUP BY b.RCVID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint +SELECT DISTINCT Costre,WorkPoint,ToWarehouseCode AS WHCode,RCVID AS MOCode,MUSER AS [User],MTime,UpdateStock,UpdateTodoQuantity FROM #NewTempERP +SELECT Costre,RCVDetailID AS Sequence,InvCode,SUM(Quantity) AS Quantity,Amount,RCVDetailID AS MODetailID FROM #NewTempERP +GROUP BY Costre,RCVDetailID,InvCode,Quantity,Amount,RCVDetailID - DROP TABLE #NewTempERP"; +DROP TABLE #NewTempERP"; sql = string.Format(sql, Identification, checklotno, checkrcvcode, TransCode); - DataTable dt = DBHelper.SQlReturnData(sql, cmd); - - string Inputstr = JsonConvert.SerializeObject(dt); - log.Debug("MES成品入库单入库调用ERP接口传参:" + Environment.NewLine + Inputstr); - //U9ICSManufactureReceiveURL + DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd); + string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre"); + log.Debug("完工报告单入库调用ERP接口传参:" + Environment.NewLine + Inputstr); + string resultStr = ""; - if (DBHelper.IsU9()) - { resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.U9ICSManufactureReceiveURL, Inputstr); } - else - resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.ICSManufactureReceiveURL, Inputstr); + resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.ICSManufactureReceiveCreateURL, Inputstr); Result result = new Result(); result = JsonConvert.DeserializeObject(resultStr); @@ -3549,7 +3545,7 @@ WHERE Identification='{0}' AND ERPUpload='0' { try { - foreach (DataRow dr in dt.Rows) + foreach (DataRow dr in ds.Tables[0].Rows) { ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "", "", cmd, language, BusinessCode); } diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs index 3bba01f..995d7bf 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs @@ -6135,6 +6135,18 @@ LEFT JOIN (SELECT SUM(Quantity) AS sumQty,SUM(InQuantity) AS sumIsQty,WorkPoint, orderby = @" a.MTIME DESC"; } #endregion + #region 产成品入库-产成品入库单-mes + else if (TransType == TransTypeEnum.ManufactureMESReceive.GetDescription()) + { + columns = @" DISTINCT a.RCVCode AS TransCode"; + + tableName = @"ICSManufactureReceive a "; + + where = @" a.WorkPoint='{1}' AND a.Type='1' AND a.Status='1' AND a.Quantity>ISNULL(a.RCVQuantity, 0)"; + + orderby = @" a.MTIME DESC"; + } + #endregion #region 采购拒收 else if (TransType == TransTypeEnum.PurchaseRejectDoc.GetDescription()) { @@ -6163,7 +6175,7 @@ LEFT JOIN (SELECT SUM(Quantity) AS sumQty,SUM(InQuantity) AS sumIsQty,WorkPoint, else { - //throw new Exception(); + throw new Exception("未设置当前类型的查询"); } where = string.Format(where, JsonData.TransCode, JsonData.WorkPoint, enableCode); sql = string.Format(sql, columns, tableName, where, orderby); @@ -30238,6 +30250,14 @@ a.ExtensionID foreach (var item in JsonData) { + string workPointSql = string.Format(@"IF NOT EXISTS(SELECT DISTINCT WorkPoint FROM ICSMO WHERE MOCode='{0}') + BEGIN + RAISERROR('工单 {0} 不存在或未写入站点',16,1) + RETURN + END + +SELECT DISTINCT WorkPoint FROM ICSMO WHERE MOCode='{0}'", item.MOCode); + string workPointCode = (string)DBHelper.ExecuteScalar(workPointSql, cmd); //检验自由项 Colspan = item.ProjectCode + "~" + item.BatchCode + "~" + item.Version @@ -30247,14 +30267,14 @@ a.ExtensionID + "~" + item.cFree8 + "~" + item.cFree9 + "~" + item.cFree10; sql = @"select ID,Colspan from ICSExtension a where Colspan='{0}' and WorkPoint='{1}'"; - sql = string.Format(sql, Colspan, item.WorkPoint); + sql = string.Format(sql, Colspan, workPointCode); DataTable dttt = DBHelper.SQlReturnData(sql, cmd); if (dttt.Rows.Count == 0) { IDD = Guid.NewGuid().ToString(); sql = @"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint) select '{17}','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',GETDATE(),'{15}',f.F_RealName,'{16}'from Sys_SRM_User f where f.F_Account='{15}' and f.F_Location='{16}'"; - sql = string.Format(sql, Colspan, item.ProjectCode, item.BatchCode, item.Version, item.Brand, item.cFree1, item.cFree2, item.cFree3, item.cFree4, item.cFree5, item.cFree6, item.cFree7, item.cFree8, item.cFree9, item.cFree10, item.MUSER, item.WorkPoint, IDD); + sql = string.Format(sql, Colspan, item.ProjectCode, item.BatchCode, item.Version, item.Brand, item.cFree1, item.cFree2, item.cFree3, item.cFree4, item.cFree5, item.cFree6, item.cFree7, item.cFree8, item.cFree9, item.cFree10, item.MUSER, workPointCode, IDD); if (!DBHelper.ExecuteNonQuery(sql, cmd)) { throw new Exception(language.GetNameByCode("WMSAPIInfo366")); @@ -30340,7 +30360,7 @@ a.ExtensionID -- 记录日志表 -- INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransID,TransCode,TransSequence,LotNo,InvCode,Quantity,Lock,TransType,BusinessCode,MUSER,MUSERName,MTIME,WorkPoint) -- VALUES(NEWID(),'{10}',(SELECT ID FROM ICSMO WHERE MOCode='{1}' AND Sequence='{2}' AND WorkPoint='{9}'),'{1}','{2}','{3}','{4}',{5},0,'17','17','{8}','{8}',GETDATE(),'{9}')"; - sql = string.Format(sql, item.ID, item.MOCode, item.Sequence, item.LotNo, item.InvCode, item.Quantity, item.BatchCode, item.ProductDate, item.MUSER, item.WorkPoint, Identification, IDD); + sql = string.Format(sql, item.ID, item.MOCode, item.Sequence, item.LotNo, item.InvCode, item.Quantity, item.BatchCode, item.ProductDate, item.MUSER, workPointCode, Identification, IDD); log.Debug("同步产成品条码SQL:" + Environment.NewLine + sql); if (!DBHelper.ExecuteNonQuery(sql, cmd)) @@ -30364,7 +30384,7 @@ a.ExtensionID END SELECT 1 FROM ICSContainer WHERE ContainerCode='{0}' AND WorkPoint='{1}'"; - sql = string.Format(sql, item.ContainerCode, item.WorkPoint, item.MUSER, ContainerID, item.ContainerName); + sql = string.Format(sql, item.ContainerCode, workPointCode, item.MUSER, ContainerID, item.ContainerName); DataTable dt = DBHelper.SQlReturnData(sql, cmd); if (dt == null || dt.Rows.Count <= 0) { @@ -30373,7 +30393,7 @@ a.ExtensionID sql = @"select 1 FROM ICSContainerLot WHERE LotNo='{0}' AND WorkPoint='{1}' "; - sql = string.Format(sql, item.LotNo, item.WorkPoint); + sql = string.Format(sql, item.LotNo, workPointCode); DataTable dttte = DBHelper.SQlReturnData(sql, cmd); if (dttte.Rows.Count > 0) { @@ -30382,7 +30402,7 @@ a.ExtensionID sql = @"UPDATE ICSContainerLot SET ContainerID=(SELECT ID FROM ICSContainer WHERE ContainerCode='{0}' AND WorkPoint='{1}' ) where lotno='{2}' and WorkPoint='{1}' "; - sql = string.Format(sql, item.ContainerCode, item.WorkPoint, item.LotNo); + sql = string.Format(sql, item.ContainerCode, workPointCode, item.LotNo); if (!DBHelper.ExecuteNonQuery(sql, cmd)) { @@ -30394,7 +30414,7 @@ a.ExtensionID sql = @"select 1 from ICSInventoryLot where LotNo='{0}' and WorkPoint='{1}' "; - sql = string.Format(sql, item.LotNo, item.WorkPoint); + sql = string.Format(sql, item.LotNo, workPointCode); DataTable dttaa = DBHelper.SQlReturnData(sql, cmd); if (dttaa.Rows.Count > 0) { @@ -30404,20 +30424,20 @@ a.ExtensionID FROM ICSContainer a WHERE a.ContainerCode='{0}' AND WorkPoint='{2}' "; - sql = string.Format(sql, item.ContainerCode, item.MUSER, item.WorkPoint, item.LotNo); + sql = string.Format(sql, item.ContainerCode, item.MUSER, workPointCode, item.LotNo); if (!DBHelper.ExecuteNonQuery(sql, cmd)) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo525"), item.WorkPoint, item.LotNo)); + throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo525"), workPointCode, item.LotNo)); } ///记录日志 sql = @"INSERT INTO ICSContainerLog(ID,ContainerID,ContainerOrLotNo,Type,MUSER,MUSERName,WorkPoint,MTIME) VALUES(NEWID(), (SELECT DISTINCT ID FROM ICSContainer WHERE ContainerCode='{0}'), '{1}', 2, '{2}', (SELECT DISTINCT F_RealName FROM Sys_SRM_User WHERE F_Account='{2}'), '{3}', GETDATE())"; - sql = string.Format(sql, item.ContainerCode, item.LotNo, item.MUSER, item.WorkPoint); + sql = string.Format(sql, item.ContainerCode, item.LotNo, item.MUSER, workPointCode); if (!DBHelper.ExecuteNonQuery(sql, cmd)) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo526"), item.WorkPoint, item.LotNo)); + throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo526"), workPointCode, item.LotNo)); } } @@ -30426,7 +30446,7 @@ a.ExtensionID } - codes += "'" + item.LotNo + item.WorkPoint + "',"; + codes += "'" + item.LotNo + workPointCode + "',"; } #region 查询返回数据