浏览代码

成本报表 辅料余下更新

liuchaohui 2 年之前
父节点
当前提交
26653f6f3c

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

@@ -296,18 +296,15 @@
     </select>
 
 	<select id="queryRemainingByIngredient" resultType="org.jeecg.modules.cost.entity.SyRemaining">
-		select tab.goodsName,ccode as planCode,tab.usageQuantity-isnull(tab1.purchaseQuantity,0) as number,
-				tab.cost as unitCost,(tab.usageQuantity-isnull(tab1.purchaseQuantity,0))*tab.cost as cost
-		from
-		(
-				select oti.cInvName as goodsName,max(om.cCode) as ccode,sum(ot.iSendQTY) as usageQuantity ,sum(pb.iCost) as cost
+		select oti.cInvName as goodsName,max(om.cCode) as planCode,sum(ot.iSendQTY) as number ,
+								max(pb.iCost) as unitCost,sum(ot.iSendQTY)*max(pb.iCost) as cost
 				from UFDATA_901_2021.dbo.om_momain om
 				join UFDATA_901_2021.dbo.OM_MODetails od on om.moid=od.moid
 				join UFDATA_901_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
 				join UFDATA_901_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 				join UFDATA_901_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 				left join (
-						SELECT p.cInvCode,p.iorderdid,sum(bi.iCost) as iCost
+						SELECT p.cInvCode,p.iorderdid,max(bi.iCost) as iCost
 						from UFDATA_901_2021.dbo.PO_Podetails p
 						join UFDATA_901_2021.dbo.PO_Pomain pm on p.POID  = pm.POID
 						join UFDATA_901_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID
@@ -316,7 +313,7 @@
 
 						union all
 
-					 select pod.cInvCode,pod.iorderdid,sum(bi.iCost) as iCost
+					 select pod.cInvCode,pod.iorderdid,max(bi.iCost) as iCost
 					 from UFDATA_902_2021.dbo.SO_SOMain so
 					 join UFDATA_902_2021.dbo.SO_SODetails sd on so.id=sd.id
 					 join UFDATA_902_2021.dbo.PO_Podetails pd on pd.iorderdid=sd.isosid
@@ -328,68 +325,31 @@
 					 where pm.cVenCode != 'T010001' and pom.cVenCode = 'T010001'
 					 GROUP BY pod.cInvCode,pod.iorderdid
 				 ) pb on pb.cInvCode=ot.cInvCode and pb.iorderdid=od.isosid
-				WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
-							and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
-							or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')
-							and oti.cInvName = #{goodName}
-				GROUP BY oti.cInvName
-		) tab
-		left join
-		(
-				select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_901_2021.dbo.rdrecords01 rs
-				join UFDATA_901_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select distinct od.csocode
-						from UFDATA_901_2021.dbo.om_momain om
-						join UFDATA_901_2021.dbo.OM_MODetails od on om.moid=od.moid
-						join UFDATA_901_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
-									and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499')
-				GROUP BY i.cInvName,rs.cBatch
-		)tab1 on tab1.cInvName=tab.goodsName
-		where usageQuantity-isnull(tab1.purchaseQuantity,0)>0
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
+					and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
+					or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')
+					and oti.cInvName = #{goodName}
+		GROUP BY oti.cInvName
 
 		union all
 
-		select tab.goodsName,ccode as planCode,tab.usageQuantity-isnull(tab1.purchaseQuantity,0) as number,
-				tab.cost as unitCost,(tab.usageQuantity-isnull(tab1.purchaseQuantity,0))*tab.cost as cost
-		from
-		(
-				select oti.cInvName as goodsName,max(om.cCode) as ccode,sum(ot.iSendQTY) as usageQuantity ,sum(pb.iCost) as cost
-				from UFDATA_903_2021.dbo.om_momain om
-				join UFDATA_903_2021.dbo.OM_MODetails od on om.moid=od.moid
-				join UFDATA_903_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
-				join UFDATA_903_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
-				join UFDATA_903_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-				left join (
-						SELECT p.cInvCode,p.iorderdid,sum(bi.iCost) as iCost
-						from UFDATA_903_2021.dbo.PO_Podetails p
-						join UFDATA_903_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID
-						GROUP BY p.cInvCode,p.iorderdid
-				 ) pb on pb.cInvCode=ot.cInvCode and pb.iorderdid=od.isosid
-				WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
-							and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
-							or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')
-							and oti.cInvName = #{goodName}
-				GROUP BY oti.cInvName
-		) tab
-		left join
-		(
-				select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_903_2021.dbo.rdrecords01 rs
-				join UFDATA_903_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select distinct od.csocode
-						from UFDATA_903_2021.dbo.om_momain om
-						join UFDATA_903_2021.dbo.OM_MODetails od on om.moid=od.moid
-						join UFDATA_903_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
-									and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499')
-				GROUP BY i.cInvName,rs.cBatch
-		)tab1 on tab1.cInvName=tab.goodsName
-		where usageQuantity-isnull(tab1.purchaseQuantity,0)>0
+		select oti.cInvName as goodsName,max(om.cCode) as planCode,sum(ot.iSendQTY) as number ,
+								max(pb.iCost) as unitCost,sum(ot.iSendQTY)*max(pb.iCost) as cost
+		from UFDATA_903_2021.dbo.om_momain om
+		join UFDATA_903_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_903_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
+		join UFDATA_903_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
+		join UFDATA_903_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		left join (
+				SELECT p.cInvCode,p.iorderdid,max(bi.iCost) as iCost
+				from UFDATA_903_2021.dbo.PO_Podetails p
+				join UFDATA_903_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID
+				GROUP BY p.cInvCode,p.iorderdid
+		 ) pb on pb.cInvCode=ot.cInvCode and pb.iorderdid=od.isosid
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
+					and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
+					or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')
+					and oti.cInvName = #{goodName}
+		GROUP BY oti.cInvName
     </select>
 </mapper>