From 397cf02b1b8d58d2f9561ff878886aab5d88a9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E6=99=94?= Date: Thu, 8 Dec 2022 17:42:32 +0800 Subject: [PATCH] =?UTF-8?q?U9=E6=96=99=E5=93=81=E5=8F=8A=E6=A0=87=E5=87=86?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E5=8D=95=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ICSSoft.FromERP/ICSInventory.cs | 71 ++++++++------- .../ICSSoft.FromERP/ICSPurchaseReceive.cs | 91 ++++++++++--------- 2 files changed, 85 insertions(+), 77 deletions(-) diff --git a/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs b/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs index ee4bede..77c925b 100644 --- a/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs +++ b/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs @@ -50,48 +50,51 @@ namespace ICSSoft.FromERP erpName = string.Format(erpName, WorkPoint); #region SQL - string sql = @"select NEWID() AS ID, - cInvCode AS INVCODE, - dbo.GetReplaceStr(cInvName) AS INVNAME, - dbo.GetReplaceStr(cInvStd) AS INVSTD, - c.cComUnitName AS InvUnit, - b.cInvCName as ClassCode, - a.cAssComUnitCode as AmountUnit, - a.cInvCCode AS INVCLASS, - b.cInvCName as ClassName, - ISNULL(c.iChangRate,0) as InvRate, - a.cDefWareHouse as INVMACHINETYPE, - ISNULL(a.iMassDate,'') as EffectiveDays, - a.bInvBatch as fInExcess, - fSupplyMulti as INVCARTONQTY, - ISNULL(CONVERT(NVARCHAR(50),a.dModifyDate,21),'') as MTIME, - - '' AS INVDESC, - '' AS INVEXPORTIMPORT, - a.cInvAddCode as INVPARSETYPE, - a.cinvdefine5 as PODetailID - ,'{0}' as WorkPoint + string sql = @"select A.ID AS ID, + A.Code AS INVCODE, + dbo.GetReplaceStr(A.Name) AS INVNAME, + dbo.GetReplaceStr(A.SPECS) AS INVSTD, + D.Name AS InvUnit, + G.Code as ClassCode, + H.Name as ClassName, + 1 as InvRate, + 1 as EffectiveDays, + ISNULL(CONVERT(NVARCHAR(50),A.ModifiedOn,21),'') as MTIME, + K.Code as WorkPoint INTO #TempINV - FROM {1}.dbo.Inventory a - LEFT JOIN {1}.dbo.InventoryClass b ON a.cInvCCode = b.cInvCCode - LEFT JOIN {1}.dbo.ComputationUnit c ON a.cComUnitCode = c.cComunitCode - WHERE a.dEDate IS NULL AND a.dModifyDate>=@LastTime - ORDER BY cInvCode + from {1}.dbo.[CBO_ItemMaster] AS A + LEFT JOIN {1}.dbo.[CBO_ItemMaster_Trl] AS B ON ( A.[ID] = B.[ID] AND B.SysMLFlag='zh-CN') + LEFT JOIN {1}.dbo.[Base_UOM] AS C ON ( A.[CostUOM] = C.[ID] ) + LEFT JOIN {1}.dbo.[Base_UOM_Trl] AS D ON ( C.[ID] = D.[ID] AND D.SysMLFlag='zh-CN') + LEFT JOIN {1}.dbo.[Base_UOM] AS E ON ( A.[InventoryUOM] = E.[ID] ) + LEFT JOIN {1}.dbo.[Base_UOM_Trl] AS F ON ( E.[ID] = F.[ID] AND F.SysMLFlag='zh-CN') + LEFT JOIN {1}.dbo.[CBO_Category] AS G ON ( A.[MainItemCategory] = G.[ID] ) + LEFT JOIN {1}.dbo.[CBO_Category_Trl] AS H ON ( G.[ID] = H.[ID] AND H.SysMLFlag='zh-CN') + LEFT JOIN {1}.dbo.[Base_Organization] AS I ON ( A.[Org] = I.[ID] ) + LEFT JOIN {1}.dbo.[Base_Organization_Trl] AS J ON ( I.[ID] = J.[ID] AND J.SysMLFlag='zh-CN') + LEFT JOIN {1}.dbo.Base_Organization K ON A.Org=K.ID + LEFT JOIN {1}.dbo.CBO_InventoryInfo L on A.id=L.ItemMaster + LEFT JOIN {1}.dbo.CBO_Wh M on L.warehouse=M.id and A.org=M.org + LEFT JOIN {1}.dbo.Base_DefineValue N ON N.Code=A.DescFlexField_PrivateDescSeg5 AND N.ValueSetDef='1002204070000769' + LEFT JOIN {1}.dbo.Base_DefineValue_Trl O ON O.ID=N.ID + LEFT JOIN {1}.dbo.CBO_Category_Trl P ON P.ID=A.MainItemCategory + LEFT JOIN {1}.dbo.CBO_MfgInfo Q ON Q.ItemMaster=A.ID + where A.ModifiedOn>=@LastTime + ORDER BY A.Code IF NOT EXISTS(SELECT * FROM #TempINV) RETURN"; sql = ICSHelper.Time(Namespace, Class, WorkPoint, sql, "#TempINV"); sql += @"--删除数据 - -- DELETE ICSINVENTORY WHERE InvCode NOT IN (SELECT cInvCode FROM {1}.dbo.[Inventory]) -SELECT a.INVCODE INTO #tableICSINVENTORY -FROM ICSINVENTORY a With(NoLock) -LEFT JOIN {1}.dbo.[Inventory] b With(NoLock) ON a.INVCODE=b.cInvCode - WHERE a.WorkPoint='{0}' and b.cInvCode IS NULL + -- DELETE ICSINVENTORY WHERE InvCode NOT IN (SELECT cInvCode FROM {1}.dbo.[CBO_ItemMaster]) + SELECT a.INVCODE INTO #tableICSINVENTORY + FROM ICSINVENTORY a With(NoLock) + LEFT JOIN {1}.dbo.[CBO_ItemMaster] b With(NoLock) ON a.ID=b.ID + WHERE a.WorkPoint='{0}' and b.ID IS NULL - DELETE ICSINVENTORY - WHERE WorkPoint='{0}' and INVCODE IN ( SELECT INVCODE from #tableICSINVENTORY) - "; + DELETE ICSINVENTORY + WHERE WorkPoint='{0}' and INVCODE IN ( SELECT INVCODE from #tableICSINVENTORY) "; Dictionary values = new Dictionary(); values.Add("INVCODE", "a.INVCODE");//物料编号 values.Add("InvName", "a.INVNAME");//物料名称 diff --git a/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs b/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs index 035eda3..fac4ccd 100644 --- a/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs +++ b/ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs @@ -48,44 +48,49 @@ namespace ICSSoft.FromERP string Class = this.GetType().Name + WorkPoint; erpName = string.Format(erpName, WorkPoint); #region SQL - string sql = @" SELECT CAST(a.Autoid AS NVARCHAR(50)) AS ERPAutoid, - b.cCode AS RCVCode, - CAST(a.irowno AS NVARCHAR(50)) AS Sequence, - b.cSource as SourceCode, - CAST(f.irowno AS NVARCHAR(50)) as SourceSequence, - a.cInvCode AS InvCode, - a.iQuantity AS Quantity, - isnull(a.iNum,0) as Amount, + string sql = @" SELECT CAST(A2.ID AS NVARCHAR(50)) AS ERPAutoid, + A1.Code AS RCVCode, + CAST(A2.DocLineNo AS NVARCHAR(50)) AS Sequence, + A2.SrcDoc_SrcDocNo as SourceCode, + CAST(A2.SrcDoc_SrcDocLineNo AS NVARCHAR(50)) as SourceSequence, + A2.ItemInfo_ItemCode AS InvCode, + Case When A2.SplitFlag=2 Then (SELECT ArriveQtyCU FROM {0}.dbo.PM_RcvLine + WHERE Receivement=A1.ID AND DocLineNo=A2.DocLineNo AND SplitFlag=1) + ELSE A2.ArriveQtyCU END AS Quantity, + 0 as Amount, 0 as RCVQuantity, - b.cWhCode AS WhCode, - --b.bredvouch as Type, - '1' as Status, - b.cMaker as CreatePerson, - b.dnmaketime as CreateDateTime, - a.ID as RCVID, - a.AutoID as RCVDetailID, - ISNULL(b.dnmodifytime, b.dnmaketime) AS MTIME, - isnull(a.cItemCode,'') ProjectCode,isnull(a.cbatch,'') cBatch,'' version ,'' brand, - (case WHEN inv.bFree1=1 THEN a.cFree1 ELSE '' END) as cFree1, - (case WHEN inv.bFree2=1 THEN a.cFree2 ELSE '' END) as cFree2, - (case WHEN inv.bFree3=1 THEN a.cFree3 ELSE '' END) as cFree3, - (case WHEN inv.bFree4=1 THEN a.cFree4 ELSE '' END) as cFree4, - (case WHEN inv.bFree5=1 THEN a.cFree5 ELSE '' END) as cFree5, - (case WHEN inv.bFree6=1 THEN a.cFree6 ELSE '' END) as cFree6, - (case WHEN inv.bFree7=1 THEN a.cFree7 ELSE '' END) as cFree7, - (case WHEN inv.bFree8=1 THEN a.cFree8 ELSE '' END) as cFree8, - (case WHEN inv.bFree9=1 THEN a.cFree9 ELSE '' END) as cFree9, - (case WHEN inv.bFree10=1 THEN a.cFree10 ELSE '' END) as cFree10,CAST('' AS NVARCHAR(500)) as Colspan - , '{0}' as WorkPoint - INTO #TempPOArrive - FROM {1}.dbo.RdRecords01 a - INNER JOIN {1}.dbo.RdRecord01 b ON a.ID = b.ID - LEFT JOIN {1}.dbo.Department c ON b.cDepCode = c.cDepCode - LEFT JOIN {1}.dbo.Vendor d ON b.cVenCode = d.cVenCode - LEFT JOIN {1}.dbo.PO_Podetails e ON a.iPOsID = e.ID - LEFT JOIN {1}.dbo.Inventory inv ON a.cInvCode = inv.cInvCode - LEFT JOIN {1}.dbo.PU_ArrivalVouchs f on a.iArrsId=f.Autoid - WHERE ISNULL(b.dnmodifytime, b.dnmaketime)>=@LastTime AND b.cBusType IN ('普通采购') AND a.iQuantity<0 AND ISNULL(b.cHandler, '')='' + A5.Code AS AS WhCode, + '1' as Status, + A1.CreatedBy as CreatePerson, + A2.CreatedOn as CreateDateTime, + A1.ID as RCVID, + CAST(A2.ID AS NVARCHAR(50)) as RCVDetailID, + ISNULL(A2.ModifiedOn ,A2.CreatedOn) AS MTIME, + isnull(A7.Code,'') ProjectCode,isnull(A2.InvLotCode,'') cBatch,'' version ,'' brand, + '' as cFree1, + '' as cFree2, + '' as cFree3, + '' as cFree4, + '' as cFree5, + '' as cFree6, + '' as cFree7, + '' as cFree8, + '' as cFree9, + '' as cFree10,CAST('' AS NVARCHAR(500)) as Colspan, + A6.Code as WorkPoint + INTO #TempPOArrive + FROM {1}.dbo.PM_Receivement A1 + LEFT JOIN {1}.dbo.PM_RcvLine A2 ON A2.Receivement=A1.ID + LEFT JOIN {1}.dbo.CBO_Department A3 ON A2.RcvDept=A3.ID + LEFT JOIN {1}.dbo.CBO_Department_Trl A4 ON A4.ID = A3.ID AND A4.SysMLFlag='zh-CN' + LEFT JOIN {1}.dbo.CBO_Wh A5 ON A2.Wh=A5.ID + LEFT JOIN {1}.dbo.Base_Organization A6 ON A1.Org=A6.ID + LEFT JOIN {1}.dbo.CBO_Project A7 ON A7.ID=A2.Project + LEFT JOIN {1}.dbo.PM_RcvDocType A8 ON A1.RcvDocType=A8.ID + WHERE A1.ReceivementType='0' AND A2.Status='3' + AND (A2.QCQCConclusion=-1 OR A2.QCQCConclusion=0 OR A2.QCQCConclusion=1 OR A2.QCQCConclusion=5 + OR A2.QCQCConclusion=6 OR A2.QCQCConclusion=7 OR A2.QCQCConclusion=12) + and ISNULL(A2.ModifiedOn ,A2.CreatedOn)>=@LastTime update #TempPOArrive set Colspan=isNULL(ProjectCode,'')+'~'+isNULL(cBatch,'')+'~'+isNULL(Version,'')+'~'+isNULL(Brand,'')+'~'+isNULL(cFree1,'')+'~'+isnull(cFree2,'')+'~'+isnull(cFree3,'')+'~'+isnull(cFree4,'')+'~'+isnull(cFree5,'')+'~'+isnull(cFree6,'')+'~'+isnull(cFree7,'')+'~'+isnull(cFree8,'')+'~'+isnull(cFree9,'')+'~'+isnull(cFree10,'') select distinct @@ -127,13 +132,13 @@ namespace ICSSoft.FromERP sql += @"--删除数据 -- DELETE ICSPurchaseReceive WHERE RCVDetailID NOT IN (SELECT Autoid FROM {1}.dbo.RdRecords01) AND LEN(RCVDetailID)>0 -SELECT a.RCVDetailID INTO #tableICSPurchaseReceive -FROM ICSPurchaseReceive a With(NoLock) -LEFT JOIN {1}.dbo.[RdRecords01] b With(NoLock) ON a.RCVDetailID=b.Autoid - WHERE a.WorkPoint='{0}' and b.Autoid IS NULL AND LEN(a.RCVDetailID)>0 + SELECT a.RCVDetailID INTO #tableICSPurchaseReceive + FROM ICSPurchaseReceive a With(NoLock) + LEFT JOIN {1}.dbo.[PM_RcvLine] b With(NoLock) ON a.RCVDetailID=b.ID + WHERE a.WorkPoint='{0}' and b.Autoid IS NULL AND LEN(a.RCVDetailID)>0 - DELETE ICSPurchaseReceive - WHERE WorkPoint='{0}' and RCVDetailID IN ( SELECT RCVDetailID from #tableICSPurchaseReceive) + DELETE ICSPurchaseReceive + WHERE WorkPoint='{0}' and RCVDetailID IN ( SELECT RCVDetailID from #tableICSPurchaseReceive) "; Dictionary values = new Dictionary();