zengtx 1 vuosi sitten
vanhempi
commit
4f7ef0f365

+ 36 - 10
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationIngredientMapper.xml

@@ -30,7 +30,7 @@
 		from
 		(
 
-		select t4.cInvCode,t4.goodsName,max(t4.dosage) as dosage,max(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from(
+		select t4.cInvCode,t4.goodsName,max(t4.dosage) as dosage,max(t4.usageQuantity) as usageQuantity,STRING_AGG(t4.supper,',') as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from(
 		SELECT t3.cInvCode,t3.goodsName,t3.cVenAbbName AS supper,max( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
 
 		SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
@@ -84,7 +84,7 @@
 		SELECT t1.cInvCode,t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.totalCost,t2.totalSum
 		FROM
 		(
-		SELECT ot.cInvCode,od.isosid,om.ccode,oti.cInvName AS goodsName,max (ot.iUnitQuantity) AS dosage,SUM (ot.iSendQTY) AS usageQuantity
+		SELECT ot.cInvCode,om.ccode,oti.cInvName AS goodsName,max (ot.iUnitQuantity) AS dosage,SUM (ot.iSendQTY) AS usageQuantity
 		FROM
 		UFDATA_103_2021.dbo.om_momain om
 		JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.moid= od.moid
@@ -98,9 +98,10 @@
 		AND omi.cInvCcode LIKE '19%'
 		AND om.cCode LIKE CONCAT(#{code},'%')
 
-		GROUP BY ot.cInvCode,od.isosid,om.ccode,oti.cInvName ) AS t1
+		GROUP BY ot.cInvCode,om.ccode,oti.cInvName ) AS t1
 
-		left join (SELECT ven.cVenAbbName AS cVenAbbName,bi.cInvCode,pod.iorderdid,SUM ( bi.iSum ) AS rmbAmount,SUM ( bi.iOriSum ) AS usdAmount,
+		left join (
+		SELECT oti.cinvName,ven.cVenAbbName AS cVenAbbName,bi.cInvCode,SUM ( bi.iSum ) AS rmbAmount,SUM ( bi.iOriSum ) AS usdAmount,
 		SUM ( bi.iMoney ) AS priceExcludingtax,sum ( bi.iCost*bi.iPBVQuantity) AS totalCost ,sum ( bi.iPBVQuantity) AS totalSum
 		FROM
 		UFDATA_103_2021.dbo.PO_Pomain pom
@@ -109,11 +110,12 @@
 		JOIN UFDATA_103_2021.dbo.PurBillVouch bm ON bm.PBVID= bi.PBVID
 		JOIN UFDATA_103_2021.dbo.Vendor ven ON bm.cVenCode = ven.cVenCode
 		JOIN UFDATA_103_2021.dbo.Inventory oti ON oti.cInvCode= pod.cInvCode
-		GROUP BY bi.cInvCode,pod.iorderdid,ven.cVenAbbName
+
+		where pom.cPOID like CONCAT(#{code},'%')
+		GROUP BY oti.cinvName,bi.cInvCode,ven.cVenAbbName
+
 		) AS t2
-		on
-		t1.cInvCode= t2.cInvCode
-		AND t2.iorderdid= t1.isosid
+		on t1.cInvCode= t2.cInvCode
 		) t3
 		GROUP BY
 		t3.cInvCode,t3.goodsName,t3.cVenAbbName
@@ -138,6 +140,18 @@
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		)
 		GROUP BY i.cInvCode,i.cInvName
+		UNION ALL
+		select i.cInvCode,i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_103_2021.dbo.rdrecords01 rs
+		join UFDATA_103_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where cPOID in (
+		select om.cCode
+		from UFDATA_103_2021.dbo.om_momain om
+		join UFDATA_103_2021.dbo.OM_MODetails od on om.MOID=od.MOID
+		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
+		and om.cCode like CONCAT(#{code},'%')
+		)
+		GROUP BY i.cInvCode,i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName and tab1.cInvCode=tab.cInvCode
 		left join
 		(
@@ -170,7 +184,7 @@
 		from
 		(
 
-		select t4.cInvCode,max(t4.goodsName) as goodsName,max(t4.dosage) as dosage,max(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from (
+		select t4.cInvCode,max(t4.goodsName) as goodsName,max(t4.dosage) as dosage,max(t4.usageQuantity) as usageQuantity,STRING_AGG(t4.supper,',') as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from (
 		select t3.cInvCode,t3.goodsName,max(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
 
 		select t1.cInvCode,t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
@@ -273,7 +287,7 @@
 		select cInvCode from UFDATA_103_2021.dbo.cost_allocation_fabric_view vif
 		where trim(vif.cCode) like CONCAT(#{code},'%')
 		)
-		GROUP BY t4.cInvCode,t4.goodsName,t4.supper
+		GROUP BY t4.cInvCode,t4.goodsName
 
 		) tab
 		left join
@@ -289,6 +303,18 @@
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		)
 		GROUP BY i.cInvCode,i.cInvName
+		UNION ALL
+		select i.cInvCode,i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_101_2021.dbo.rdrecords01 rs
+		join UFDATA_101_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where cPOID in (
+		select om.cCode
+		from UFDATA_101_2021.dbo.om_momain om
+		join UFDATA_101_2021.dbo.OM_MODetails od on om.MOID=od.MOID
+		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
+		and om.cCode like CONCAT(#{code},'%')
+		)
+		GROUP BY i.cInvCode,i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName and tab1.cInvCode=tab.cInvCode
 		left join
 		(

+ 19 - 19
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationShipdetailMapper.xml

@@ -17,9 +17,9 @@
 	</select>
 
 	<select id="queryByCostShipdetail" resultType="org.jeecg.modules.cost.entity.SyCostAllocationShipdetail">
-	select t.* from (
-					select sbv.cDefine10 AS invoiceNum,CONVERT(varchar(50), min(sbv.dDate), 23) as outdata,sum(pbv.iQuantity) as shipQuantity,pbv.cExchRate AS exchangeRate,sbv.cSOCode AS orderNum,max(pbv.cdefine22) AS poStyleNum,max(pbv.cDefine28) AS smallPo,max(sbv.exportUnitPrice) AS exportUnitPrice,sum(sbv.exportPrice) as exportPrice,sum(sbv.rmbAmount) as rmbAmount,
-case when max(sbv.cexch_name)='人民币' then max(pbv.iOriTaxCost) else round(max(pbv.iOriTaxCost)*pbv.cExchRate,4) end as procesUnitPricermb,
+select t.* from (
+					select sbv.cDefine10 AS invoiceNum,CONVERT(varchar(50), min(sbv.dDate), 23) as outdata,sum(pbv.iQuantity) as shipQuantity,sbv.iExchRate AS exchangeRate,sbv.cSOCode AS orderNum,max(pbv.cdefine22) AS poStyleNum,max(pbv.cDefine28) AS smallPo,max(sbv.exportUnitPrice) AS exportUnitPrice,sum(sbv.exportPrice) as exportPrice,sum(sbv.rmbAmount) as rmbAmount,
+case when max(sbv.cexch_name)='人民币' then max(pbv.iOriTaxCost) else round(max(pbv.iOriTaxCost)*max(pbv.cExchRate),4) end as procesUnitPricermb,
 			case when max(sbv.cexch_name)='人民币' then 0 else max(pbv.iOriTaxCost) end as procesUnitPriceusd,
 		sum(pbv.processCost) as processCost,
 			case when max(sbv.cexch_name)='人民币' then 0 else max(pbv.iOriTaxCost) end * sum(pbv.iQuantity) as processCostUsd,
@@ -42,7 +42,7 @@ from UFDATA_101_2021.dbo.SaleBillVouchs sbvs  left join UFDATA_101_2021.dbo.Sale
 group by  sbv.cDefine10,sbvs.cInvCode,sbvs.cFree1,sbvs.cFree2,sbv.cSOCode
 ) as sbv on sbv.cInvCode=pbv.cInvCode and sbv.cFree1=pbv.cFree1 and sbv.cFree2=pbv.cFree2 and pbv.iQuantity=sbv.iQuantity -- 自由项+合计数量做匹配
 LEFT JOIN UFDATA_101_2021.dbo.Vendor v ON pbv.cVenCode= v.cVenCode
-GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
+GROUP BY sbv.cDefine10,sbv.iExchRate,sbv.cSOCode
 
 		 union all
 
@@ -50,16 +50,16 @@ GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
 			sh.cDefine10 AS invoiceNum,
 			CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
 		  sum(shs.iQuantity) as shipQuantity,
-			so.cExchRate AS exchangeRate,
+			sh.iExchRate AS exchangeRate,
 			sh.cSOCode AS orderNum,
 			max(so.cdefine22) AS poStyleNum,
 			max(so.cDefine28) AS smallPo,
 			max(shs.iTaxUnitPrice) AS exportUnitPrice ,
 			sum(shs.iSum) as exportPrice,
 			sum(iNatSum) as rmbAmount,
-			case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end as procesUnitPricermb,
+			case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end as procesUnitPricermb,
 			case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end as procesUnitPriceusd,
-				case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end * sum(shs.iQuantity) as processCost,
+				case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end * sum(shs.iQuantity) as processCost,
 			case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end * sum(shs.iQuantity) as processCostUsd,
 			v.cVenName AS processUnit
 		FROM
@@ -100,7 +100,7 @@ GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
 						GROUP BY s.iSOsID
 			) so ON so.iSOsID = rd.iorderdid
 		LEFT JOIN UFDATA_102_2021.dbo.Vendor v ON so.supplierCode= v.cVenCode
-		group by sh.cDefine10,so.cExchRate,sh.cSOCode,c.cInvName, v.cVenName
+		group by sh.cDefine10,sh.iExchRate,sh.cSOCode,c.cInvName, v.cVenName
 
 		union all
 
@@ -108,17 +108,17 @@ GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
 		sh.cDefine10 AS invoiceNum,
 		CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
 	  sum(shs.iQuantity) as shipQuantity,
-		so.cExchRate AS exchangeRate,
+		sh.iExchRate AS exchangeRate,
 		sh.cSOCode AS orderNum,
 		max(so.cdefine22) AS poStyleNum,
 		max(so.cDefine28) AS smallPo,
 		max(shs.iTaxUnitPrice) AS exportUnitPrice ,
 		sum(shs.iSum) as exportPrice,
 		sum(iNatSum) as rmbAmount,
-		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end as procesUnitPricermb,
+		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end as procesUnitPricermb,
 		case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end as procesUnitPriceusd,
 
-		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end * sum(shs.iQuantity) as processCost,
+		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end * sum(shs.iQuantity) as processCost,
 		case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end * sum(shs.iQuantity) as processCostUsd,
 		v.cVenName AS processUnit
 		 FROM
@@ -155,11 +155,11 @@ GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
 						inner join UFDATA_101_2021.dbo.po_podetails g on g.POID=f.POID and g.ivouchrowno=a.iRowNo
 						inner join UFDATA_101_2021.dbo.SO_SODetails s on s.iSOsID=g.iorderdid
 						inner join UFDATA_101_2021.dbo.so_somain ss on ss.id=s.id
-						WHERE b.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%'
+						WHERE b.cCusCode in ('T020001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%'
 						GROUP BY s.iSOsID
 			) so ON so.iSOsID = rd.iorderdid
 		LEFT JOIN UFDATA_101_2021.dbo.Vendor v ON so.supplierCode= v.cVenCode
-		group by sh.cDefine10,so.cExchRate,sh.cSOCode,c.cInvName, v.cVenName
+		group by sh.cDefine10,sh.iExchRate,sh.cSOCode,c.cInvName, v.cVenName
 
 		
 UNION ALL
@@ -168,17 +168,17 @@ UNION ALL
 		sh.cDefine10 AS invoiceNum,
 		CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
 	  sum(shs.iQuantity) as shipQuantity,
-		so.cExchRate AS exchangeRate,
+		sh.iExchRate AS exchangeRate,
 		sh.cSOCode AS orderNum,
 		max(so.cdefine22) AS poStyleNum,
 		max(so.cDefine28) AS smallPo,
 		max(shs.iTaxUnitPrice) AS exportUnitPrice ,
 		sum(shs.iSum) as exportPrice,
 		sum(iNatSum) as rmbAmount,
-		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end as procesUnitPricermb,
+		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end as procesUnitPricermb,
 		case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end as procesUnitPriceusd,
 
-		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*so.cExchRate,4) end * sum(shs.iQuantity) as processCost,
+		case when max(so.cexch)='人民币' then max(so.iOriTaxCost) else round(max(so.iOriTaxCost)*max(so.cExchRate),4) end * sum(shs.iQuantity) as processCost,
 		case when max(so.cexch)='人民币' then 0 else max(so.iOriTaxCost) end * sum(shs.iQuantity) as processCostUsd,
 		v.cVenName AS processUnit
 		 FROM
@@ -219,14 +219,14 @@ UNION ALL
 						inner join UFDATA_101_2021.dbo.po_podetails g1 on g1.POID=f1.POID and g.ivouchrowno=a.iRowNo
 						inner join UFDATA_101_2021.dbo.SO_SODetails s1 on s1.iSOsID=g1.iorderdid
 						inner join UFDATA_101_2021.dbo.so_somain ss1 on ss1.id=s1.id
-						WHERE b.cCusCode in ('T020001','0001') and ss.cCusCode in ('T020001','0001') and c.cInvCcode like '19%'
+						WHERE b.cCusCode in ('0001') and ss.cCusCode in ('T020001') and c.cInvCcode like '19%'
+				
 						GROUP BY s1.iSOsID
 			) so ON so.iSOsID = rd.iorderdid
 		LEFT JOIN UFDATA_101_2021.dbo.Vendor v ON so.supplierCode= v.cVenCode
-		group by sh.cDefine10,so.cExchRate,sh.cSOCode,c.cInvName, v.cVenName
+		group by sh.cDefine10,sh.iExchRate,sh.cSOCode,c.cInvName, v.cVenName
 
 
 		 ) t order by t.outdata
-
 	</select>
 </mapper>