Parcourir la source

成本报表 面料

liuchaohui il y a 2 ans
Parent
commit
07e6e412d1

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

@@ -17,80 +17,116 @@
 	</select>
 
 	<select id="queryByCostIngredient" resultType="org.jeecg.modules.cost.entity.SyCostAllocationIngredient">
-		SELECT   
-			cInvName as goodsName,sum(yi) as usageQuantity,sum(gou) as purchaseQuantity,processUnit,  
-			isnull(sum(gou),0)-isnull(sum(yuu),0) as ingredientsRemainingQuantity,sum(yu) as ingredientsTransferQuantity,      
-			sum(transferCost) as transferCost,sum(rmbAmount) as rmbAmount,sum(usdAmount) as usdAmount,
-			sum(priceExcludingtax) as priceExcludingtax
-	FROM (       
-		   select 
-							sum(r.iQuantity) as yu,r.cBatch ,b.cSource,b.cPOID,sum(b.gou) as gou,sum(b.yi) as yi,
-							sum(b.ying) as ying,c.cInvName,v.cVenName as processUnit,sum(b.iCost) as transferCost,
-							sum(b.iMoney) as rmbAmount,sum(b.iOriMoney) as usdAmount,sum(b.iMoney-b.iTaxPrice) as priceExcludingtax ,
-							(      
-								 SELECT sum(r.iQuantity)  FROM UFDATA_903_2021.dbo.rdrecords01 rs1       
-								 left join UFDATA_903_2021.dbo.rdrecord01 r1 on r1.id=rs1.id      
-								 where rs1.cBatch = #{code} and rs1.cPOID  LIKE CONCAT(#{code},'%') and      
-												r.cBatch = rs1.cBatch and rs1.cInvCode=r.cInvCode       
-								 group by rs1.cInvCode, rs1.cBatch  ) as yuu      
-			FROM UFDATA_903_2021.dbo.rdrecords11  r       
-			JOIN (       
-					  SELECT od.MODetailsID,od.cInvCode,om.cVenCode         
-					  FROM UFDATA_903_2021.dbo.OM_MOMain om LEFT JOIN UFDATA_903_2021.dbo.OM_MODetails od ON om.MOID = od.MOID        
-					  WHERE om.iVerifyStateNew = 2 and om.cCode LIKE CONCAT(#{code},'%')       
-			) o ON r.iOMoDID  = o.MODetailsID        
-			JOIN (       
-				   SELECT r1.id,r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity as gou,  
-						isnull(od.iQuantity,0)+isnull(p.iQuantity,0) as ying,isnull(od.iSendQTY,0)+ isnull(p.iQuantity,0) as yi,     
-						 bi.iCost,bi.iMoney,bi.iOriMoney,bi.iTaxPrice       
-									FROM UFDATA_903_2021.dbo.rdrecords01 rs1       
-								 left join UFDATA_903_2021.dbo.rdrecord01 r1 on r1.id=rs1.id      
-								 left join UFDATA_903_2021.dbo.PO_Podetails p on p.ID=rs1.iPOsID      
-								 left join UFDATA_903_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID      
-								 left join UFDATA_903_2021.dbo.OM_MODetails o on o.MODetailsID =rs1.iOMoDID      
-								 left join UFDATA_903_2021.dbo.OM_MOMaterials od on od.MoDetailsID=o.MODetailsID       
-								 where rs1.cBatch = #{code}      
-			  ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode        
-			JOIN (SELECT * FROM  UFDATA_903_2021.dbo.Inventory   
-					   where (cInvCCode like '05%' or cInvCCode like '06%' or cInvCCode like '07%' ) 
-						) c on c.cInvCode=r.cInvCode     
-			LEFT JOIN UFDATA_903_2021.dbo.Vendor v ON o.cVenCode= v.cVenCode       
-			GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ,r.cInvCode      
-					  
-			union all  
-					  
-			select sum(r.iQuantity) as yu,r.cBatch ,b.cSource,b.cPOID,sum(b.gou) as gou,sum(b.yi) as yi,sum(b.ying) as ying,c.cInvName,  
-					v.cVenName as processUnit,sum(b.iCost) as transferCost,sum(b.iMoney) as rmbAmount,sum(b.iOriMoney) as usdAmount,  
-					sum(b.iTaxPrice) as priceExcludingtax ,
-									(      
-										 SELECT sum(r.iQuantity)  FROM UFDATA_901_2021.dbo.rdrecords01 rs1       
-										 left join UFDATA_901_2021.dbo.rdrecord01 r1 on r1.id=rs1.id      
-										 where rs1.cBatch = #{code} and rs1.cPOID  LIKE CONCAT(#{code},'%') and      
-														r.cBatch = rs1.cBatch and rs1.cInvCode=r.cInvCode       
-										 group by rs1.cInvCode, rs1.cBatch  ) as yuu      
-			FROM UFDATA_901_2021.dbo.rdrecords11  r       
-			JOIN (       
-					  SELECT od.MODetailsID,od.cInvCode,om.cVenCode         
-					  FROM UFDATA_901_2021.dbo.OM_MOMain om LEFT JOIN UFDATA_901_2021.dbo.OM_MODetails od ON om.MOID = od.MOID        
-					  WHERE om.iVerifyStateNew = 2 and om.cCode LIKE CONCAT(#{code},'%')       
-			) o ON r.iOMoDID  = o.MODetailsID        
-		   JOIN (       
-							 SELECT r1.id,r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity as gou,  
-						isnull(od.iQuantity,0)+isnull(p.iQuantity,0) as ying,isnull(od.iSendQTY,0)+ isnull(p.iQuantity,0) as yi,     
-									bi.iCost,bi.iMoney,bi.iOriMoney,bi.iTaxPrice       
-						FROM UFDATA_901_2021.dbo.rdrecords01 rs1       
-					   left join UFDATA_901_2021.dbo.rdrecord01 r1 on r1.id=rs1.id      
-					   left join UFDATA_901_2021.dbo.PO_Podetails p on p.ID=rs1.iPOsID      
-					   left join UFDATA_901_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID      
-					   left join UFDATA_901_2021.dbo.OM_MODetails o on o.MODetailsID =rs1.iOMoDID      
-					   left join UFDATA_901_2021.dbo.OM_MOMaterials od on od.MoDetailsID=o.MODetailsID       
-					   where rs1.cBatch = #{code}      
-			) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode        
-			JOIN (SELECT * FROM  UFDATA_901_2021.dbo.Inventory   
-					   where (cInvCCode like '05%' or cInvCCode like '06%' or cInvCCode like '07%' ) 
-					) c on c.cInvCode=r.cInvCode     
-			LEFT JOIN UFDATA_901_2021.dbo.Vendor v ON o.cVenCode= v.cVenCode       
-			GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ,r.cInvCode    
-	) as ta GROUP BY cInvName,processUnit
+		select tab.*,tab1.purchaseQuantity,tab2.jian-tab1.purchaseQuantity as ingredientsTransferQuantity,
+				tab1.purchaseQuantity-tab.usageQuantity as ingredientsRemainingQuantity,
+				(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss
+		from 
+		(
+				select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iQuantity) as usageQuantity
+				 ,sum(pb.rmbAmount) as rmbAmount,sum(pb.usdAmount) as usdAmount,sum(pb.priceExcludingtax) as priceExcludingtax
+				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.iMoney) as rmbAmount,sum(bi.iOriMoney) as usdAmount
+									,sum(bi.iMoney-bi.iTaxPrice) as priceExcludingtax,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')  
+				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
+		left join 
+		(
+				select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_903_2021.dbo.rdrecords11 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
+		)tab2 on tab2.cInvName=tab.goodsName
+
+		union all
+
+		select tab.*,tab1.purchaseQuantity,tab2.jian-tab1.purchaseQuantity as ingredientsTransferQuantity,
+				tab1.purchaseQuantity-tab.usageQuantity as ingredientsRemainingQuantity,
+				(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss
+		from
+		(
+				select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iQuantity) as usageQuantity
+				 ,sum(pb.rmbAmount) as rmbAmount,sum(pb.usdAmount) as usdAmount,sum(pb.priceExcludingtax) as priceExcludingtax
+				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.iMoney) as rmbAmount,sum(bi.iOriMoney) as usdAmount
+									,sum(bi.iMoney-bi.iTaxPrice) as priceExcludingtax,sum(bi.iCost) as iCost
+						from UFDATA_901_2021.dbo.PO_Podetails p
+						join UFDATA_901_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')
+				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
+		left join
+		(
+				select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_901_2021.dbo.rdrecords11 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
+		)tab2 on tab2.cInvName=tab.goodsName
 	</select>
 </mapper>