瀏覽代碼

成本分配

zengtx 2 年之前
父節點
當前提交
61b180f288

+ 7 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationFabricMapper.xml

@@ -41,7 +41,7 @@ select
 		select vim.goodsName as goodsName,sum(vim.unitConsumption) as unitConsumption,sum(vim.planQuantity) as planQuantity,
 		sum(vim.usageQuantity) as usageQuantity from UFDATA_103_2021.dbo.VIEW_FabricLoss_Cost_Cloth vif
 		join(
-		select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,case when oti.cInvName like '%圆带%' and max(om.cCode) like '%SYM764%' then replace(oti.cInvName,' ','') +' ' + isnull(ot.cFree1,'') else oti.cInvName +' ' + isnull(ot.cFree1,'') end as cInvName,
+		select oti.cInvName as goodsName,sum(ot.iQuantity)/sum(od.iQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,case when oti.cInvName like '%圆带%' and max(om.cCode) like '%SYM764%' then replace(oti.cInvName,' ','') +' ' + isnull(ot.cFree1,'') else oti.cInvName +' ' + isnull(ot.cFree1,'') end as cInvName,
 		sum(ot.iSendQTY) as usageQuantity
 		from UFDATA_101_2021.dbo.om_momain om
 		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
@@ -106,7 +106,7 @@ select
 		select vim.goodsName as goodsName,sum(vim.unitConsumption) as unitConsumption,sum(vim.planQuantity) as planQuantity,
 		sum(vim.usageQuantity) as usageQuantity from UFDATA_103_2021.dbo.VIEW_FabricLoss_Cost_Cloth vif
 		join(
-		select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,case when oti.cInvName like '%圆带%' then replace(oti.cInvName,' ','') +' ' + isnull(ot.cFree1,'') else oti.cInvName +' ' + isnull(ot.cFree1,'') end as cInvName,
+		select oti.cInvName as goodsName,sum(ot.iQuantity)/sum(od.iQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,case when oti.cInvName like '%圆带%' then replace(oti.cInvName,' ','') +' ' + isnull(ot.cFree1,'') else oti.cInvName +' ' + isnull(ot.cFree1,'') end as cInvName,
 		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
@@ -170,7 +170,7 @@ select
 		)/tab3.purchaseQuantity,0) as loss
 		from
 		(
-		select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,
+		select oti.cInvName as goodsName,sum(ot.iQuantity)/sum(od.iQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,
 		sum(ot.iSendQTY) as usageQuantity
 		from UFDATA_101_2021.dbo.om_momain om
 		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
@@ -231,7 +231,7 @@ select
 		)/tab3.purchaseQuantity,0) as loss
 		from
 		(
-		select oti.cInvName as goodsName,sum(ot.iUnitQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,
+		select oti.cInvName as goodsName,sum(ot.iQuantity)/sum(od.iQuantity) as unitConsumption,sum(ot.iQuantity) as planQuantity,
 		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
@@ -383,12 +383,10 @@ select
 <!--	多发少发链接-->
 	<select id="querypilosityFewer" parameterType="java.lang.String" resultType="org.jeecg.modules.cost.entity.SyCostAllocationFabric">
 select
-		tab.planQuantity as planQuantity,tab.color, tab.goodsName,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,(isnull(tab1.purchaseQuantity,0) - tab.planQuantity) as pilosityFewer
+		tab.planQuantity as planQuantity,tab.color, tab.goodsName,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,(isnull(tab.usageQuantity,0) - tab.planQuantity) as pilosityFewer
 
 		from
 		(
-		select vim.color as color,max(vim.goodsName) as goodsName,sum(vim.planQuantity) as planQuantity,sum(vim.usageQuantity) as usageQuantity,max(vim.cInvName) as cInvName from UFDATA_103_2021.dbo.VIEW_FabricLoss_Cost_Cloth vif
-		join(
 		select ot.cFree1 as color,max(oti.cInvName) as cInvName,max(oti.cInvName)+ ' '+ ot.cFree1 as goodsName,sum(ot.iQuantity) as planQuantity,sum(ot.iSendQTY) as usageQuantity
 		from UFDATA_101_2021.dbo.om_momain om
 		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
@@ -397,9 +395,6 @@ select
 		join UFDATA_101_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 oti.cInvName = #{goodName}
 		GROUP BY ot.cFree1
-		) vim on vim.goodsName = vif.cInvName
-		where trim(vif.cSOCode) like CONCAT(#{code},'%') and vif.cSOCode not like '%样%'
-		GROUP BY vim.color
 		) tab
 		left join
 	 (
@@ -421,12 +416,11 @@ select
 		union all
 
 		select
-		tab.planQuantity as planQuantity,tab.color, tab.goodsName,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,(isnull(tab1.purchaseQuantity,0) - tab.planQuantity) as pilosityFewer
+		tab.planQuantity as planQuantity,tab.color, tab.goodsName,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,(isnull(tab.usageQuantity,0) - tab.planQuantity) as pilosityFewer
 
 		from
 		(
-		select vim.color as color,max(vim.goodsName) as goodsName,sum(vim.planQuantity) as planQuantity,sum(vim.usageQuantity) as usageQuantity,max(vim.cInvName) as cInvName from UFDATA_103_2021.dbo.VIEW_FabricLoss_Cost_Cloth vif
-		join(
+
 		select ot.cFree1 as color,max(oti.cInvName) as cInvName,max(oti.cInvName)+ ' '+ ot.cFree1 as goodsName,sum(ot.iQuantity) as planQuantity,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
@@ -435,9 +429,6 @@ select
 		join UFDATA_103_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 oti.cInvName = #{goodName}
 		GROUP BY ot.cFree1
-		) vim on vim.goodsName = vif.cInvName
-		where trim(vif.cSOCode) like CONCAT(#{code},'%') and vif.cSOCode not like '%样%'
-		GROUP BY vim.color
 		) tab
 		left join
 	 (

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

@@ -161,6 +161,71 @@ GROUP BY sbv.cDefine10,pbv.cExchRate,sbv.cSOCode
 		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
 
+		
+UNION ALL
+
+ SELECT
+		sh.cDefine10 AS invoiceNum,
+		CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
+	  sum(shs.iQuantity) as shipQuantity,
+		so.cExchRate 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 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 0 else max(so.iOriTaxCost) end * sum(shs.iQuantity) as processCostUsd,
+		v.cVenName AS processUnit
+		 FROM
+			UFDATA_101_2021.dbo.SaleBillVouch sh
+			JOIN UFDATA_101_2021.dbo.SaleBillVouchs shs ON sh.SBVID = shs.SBVID
+			LEFT JOIN UFDATA_101_2021.dbo.Inventory c ON c.cInvCode= shs.cInvCode
+			LEFT JOIN UFDATA_101_2021.dbo.rdrecords32 rd ON rd.AutoID = shs.isaleoutid
+		  JOIN (
+			 SELECT max(o.cExchRate) as cExchRate,max(supplierCode) as supplierCode,s1.iSOsID,max(o.iOriTaxCost) as iOriTaxCost,max(o.cexch) as cexch,
+					max(o.iNatUnitPrice) as iNatUnitPrice,max(s1.cdefine22) as cdefine22,max(s1.cDefine28) as cDefine28
+						FROM  UFDATA_103_2021.dbo.SO_SODetails a
+						inner JOIN UFDATA_103_2021.dbo.SO_SOMain b on b.ID= a.ID
+						inner JOIN (
+									 SELECT max(om.cexch_name) as cexch,
+									
+									 max(pb.cExchRate) as cExchRate,
+									 od.csoordercode as csoordercode,
+									 max(om.cVenCode) AS supplierCode,max(od.cInvCode) as cInvCode,max(od.isosid) as isosid,sum(od.iQuantity) as iQuantity ,
+									 max(bi.iOriTaxCost) as iOriTaxCost,max(od.iNatUnitPrice) as iNatUnitPrice
+									 FROM
+									 UFDATA_103_2021.dbo.OM_MOMain om
+									 inner JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
+									 left join UFDATA_103_2021.dbo.PurBillVouchs bi  on bi.iPOsID=od.MODetailsID
+									  left join UFDATA_103_2021.dbo.PurBillVouch pb  on bi.PBVID =pb.PBVID 
+										left join UFDATA_103_2021.dbo.Inventory inv on bi.cInvCode = inv.cInvCode
+									 WHERE
+									 om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and om.cCode like CONCAT(#{code},'%') and inv.cInvCCode like '19%'
+									 GROUP BY od.csoordercode
+									 ) o ON a.csocode = o.csoordercode 
+						inner JOIN UFDATA_103_2021.dbo.Vendor v ON o.supplierCode= v.cVenCode
+						inner JOIN UFDATA_103_2021.dbo.Inventory c on c.cInvCode=a.cInvCode
+						inner JOIN UFDATA_103_2021.dbo.Person  pe ON b.cPersonCode = pe.cPersonCode
+						inner join UFDATA_102_2021.dbo.PO_Pomain f on f.cPOID=o.csoordercode
+						inner join UFDATA_102_2021.dbo.po_podetails g on g.POID=f.POID and g.ivouchrowno=a.iRowNo
+						inner join UFDATA_102_2021.dbo.SO_SODetails s on s.iSOsID=g.iorderdid
+						inner join UFDATA_102_2021.dbo.so_somain ss on ss.id=s.id
+						inner join UFDATA_101_2021.dbo.PO_Pomain f1 on f1.cPOID=ss.cSOCode
+						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%'
+						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
+
+
 		 ) t order by t.outdata
 
 	</select>

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/impl/SyCostAllocationServiceImpl.java

@@ -237,8 +237,8 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
         List<SyCostAllocationFabric> list3 = null;
         List<SyCostAllocationIngredient> list4 = null;
 
-        list3 = syCostAllocationFabricMapper.queryByCostFabric2(plannum);
-        if(list3.size()==0){
+        List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(plannum);
+        if(fabricOMOrderListAll.size()==0){
             list3 = syCostAllocationFabricMapper.queryByCostFabric(plannum);
             list4 = syCostAllocationIngredientMapper.queryByCostIngredient(plannum);
         }else{