|  | @@ -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>
 |