瀏覽代碼

成本分配

zengtx 2 年之前
父節點
當前提交
7a636282c6

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

@@ -19,14 +19,14 @@
 	<select id="queryByCostAccident" resultType="org.jeecg.modules.cost.entity.SyCostAllocationAccident">
 	<select id="queryByCostAccident" resultType="org.jeecg.modules.cost.entity.SyCostAllocationAccident">
 		select
 		select
 			it.id as id,its.u8_invoice as accidentNum,its.money_type,it.accident_number,its.accident_type,it.accident_theme,
 			it.id as id,its.u8_invoice as accidentNum,its.money_type,it.accident_number,its.accident_type,it.accident_theme,
-			case when its.money_type='美元' then ifnull(it.total_money,0) end as amount,
-			case when its.money_type='人民币' then ifnull(it.total_money,0) end as amountrmb,
+			case when its.money_type='美元' then ifnull(sum(its.accident_sum),0) end as amount,
+			case when its.money_type='人民币' then ifnull(sum(its.accident_sum),0) end as amountrmb,
 			CONCAT_WS(',',it.responsibility_person1,it.responsibility_person2,it.responsibility_person3,it.responsibility_person4) as responsibilityPerson1,
 			CONCAT_WS(',',it.responsibility_person1,it.responsibility_person2,it.responsibility_person3,it.responsibility_person4) as responsibilityPerson1,
 			it.accident_data,it.responsibility_company as accidentUndertaker,it.customer,it.style_number,its.plan_number,it.plan_personnel,
 			it.accident_data,it.responsibility_company as accidentUndertaker,it.customer,it.style_number,its.plan_number,it.plan_personnel,
 			it.business_people,it.garment_sales_order,material,it.quality_control,finance_remark
 			it.business_people,it.garment_sales_order,material,it.quality_control,finance_remark
 		from incident_ticket it
 		from incident_ticket it
 		join incident_ticket_children its on it.id=its.incident_ticket_id
 		join incident_ticket_children its on it.id=its.incident_ticket_id
-		where its.plan_number = #{code}
+		where its.plan_number = #{code} and it.state = '5'
 	</select>
 	</select>
 	<!--
 	<!--
 	SELECT ah.cPBVCode as accidentNum,ven.cVenAbbName as accidentUndertaker,sum(A.iOriSum) as amount,sum(a.iSum) as rmbamount
 	SELECT ah.cPBVCode as accidentNum,ven.cVenAbbName as accidentUndertaker,sum(A.iOriSum) as amount,sum(a.iSum) as rmbamount

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

@@ -39,7 +39,7 @@
 		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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},'%')
 		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 '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499' and oti.cInvCCode != '0299'
+		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%' or oti.cInvCcode like '02%') and (oti.cInvCCode != '0399' or oti.cInvName like '%带%') and (oti.cInvCCode != '0499' or oti.cInvName like '%带%') and (oti.cInvCCode != '0299' or oti.cInvName like '%带%')
 		GROUP BY oti.cInvName
 		GROUP BY oti.cInvName
 		) tab
 		) tab
 		left join
 		left join
@@ -54,7 +54,7 @@
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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')
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		 and om.cPOID like CONCAT(#{code},'%')
 		 and om.cPOID like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499' and i.cInvCCode != '0299'
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%' or i.cInvCcode like '02%') and (i.cInvCCode != '0399' or i.cInvName like '%带%') and (i.cInvCCode != '0499' or i.cInvName like '%带%') and (i.cInvCCode != '0299' or i.cInvName like '%带%')
 		 and rs.cBatch like CONCAT(#{code},'%')
 		 and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab1
 		)tab1
@@ -69,8 +69,8 @@
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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')
 		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 omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299'
-		 and rs.cBatch like CONCAT(#{code},'%')
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%' or i.cInvCcode like '02%') and (i.cInvCCode != '0399' or i.cInvName like '%带%') and (i.cInvCCode != '0499' or i.cInvName like '%带%') and (i.cInvCCode != '0299' or i.cInvName like '%带%')
+
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch
 		GROUP BY tab2.cInvName
 		GROUP BY tab2.cInvName
@@ -100,7 +100,7 @@
 		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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},'%')
 		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 '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and (oti.cInvCCode != '0499' or oti.cInvName like '%棉%') and oti.cInvCCode != '0299'
+		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%' or oti.cInvCcode like '02%') and (oti.cInvCCode != '0399' or oti.cInvName like '%带%') and (oti.cInvCCode != '0499' or oti.cInvName like '%带%') and (oti.cInvCCode != '0299' or oti.cInvName like '%带%')
 		GROUP BY oti.cInvName
 		GROUP BY oti.cInvName
 		) tab
 		) tab
 		left join
 		left join
@@ -115,7 +115,8 @@
 		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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')
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		 and om.cPOID like CONCAT(#{code},'%')
 		 and om.cPOID like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299' and rs.cBatch like CONCAT(#{code},'%')
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%' or i.cInvCcode like '02%') and (i.cInvCCode != '0399' or i.cInvName like '%带%') and (i.cInvCCode != '0499' or i.cInvName like '%带%') and (i.cInvCCode != '0299' or i.cInvName like '%带%')
+		 and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab1
 		)tab1
 		right join
 		right join
@@ -129,7 +130,7 @@
 		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		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')
 		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 omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299'
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%' or i.cInvCcode like '02%') and (i.cInvCCode != '0399' or i.cInvName like '%带%') and (i.cInvCCode != '0499' or i.cInvName like '%带%') and (i.cInvCCode != '0299' or i.cInvName like '%带%')
 		and rs.cBatch like CONCAT(#{code},'%')
 		and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch

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

@@ -30,34 +30,94 @@
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
 		from
 		from
 		(
 		(
-		select t3.goodsName,sum(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.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
-
-		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.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
-		JOIN UFDATA_103_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
-		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
-		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.cInvCcode like '05%' or oti.cInvCcode like '06%'
-		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' and oti.cInvName not like '%棉%')
-		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
-		) as t1,(select max(ven.cVenAbbName) as cVenAbbName,
-		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
-		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
-		from UFDATA_103_2021.dbo.PO_Pomain pom
-		join UFDATA_103_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
-		join UFDATA_103_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pod.ID
-		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) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
-		) t3  GROUP BY t3.goodsName
-
+			select t4.goodsName,sum(t4.dosage) as dosage,sum(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 t3.goodsName,t3.cVenAbbName AS supper,SUM ( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
+	
+	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
+	SUM ( t3.totalCost )/sum(totalSum) AS cost 
+FROM(
+SELECT 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,SUM (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
+	JOIN UFDATA_103_2021.dbo.OM_MOMaterials ot ON ot.MoDetailsID= od.MODetailsID
+	JOIN UFDATA_103_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+	JOIN UFDATA_103_2021.dbo.Inventory oti ON oti.cInvCode= ot.cInvCode
+	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.cInvCcode LIKE '05%' OR oti.cInvCcode LIKE '06%' OR oti.cInvCcode LIKE '07%' OR oti.cInvCCode = '0399' OR oti.cInvCCode = '0299' OR oti.cInvCCode = '0499' ) AND oti.cInvName NOT LIKE '%带%'
+GROUP BY ot.cInvCode,od.isosid,om.ccode,oti.cInvName ) AS t1 
+
+	left join (SELECT ven.cVenAbbName AS cVenAbbName,bi.cInvCode,pod.isosid,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.om_momain pom
+			JOIN UFDATA_103_2021.dbo.OM_MODetails pod ON pod.MOID  = pom.MOID
+			JOIN UFDATA_103_2021.dbo.PurBillVouchs bi ON bi.iPOsID= pod.MODetailsID
+			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.isosid,ven.cVenAbbName
+	) AS t2 
+on
+	t1.cInvCode= t2.cInvCode 
+	AND t2.isosid= t1.isosid 
+	) t3 
+GROUP BY
+	t3.goodsName,t3.cVenAbbName
+	
+	union all
+		
+		
+SELECT t3.goodsName,t3.cVenAbbName AS supper,SUM ( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
+	
+	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
+	SUM ( t3.totalCost )/sum(totalSum) AS cost 
+FROM(
+SELECT 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,SUM (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
+	JOIN UFDATA_103_2021.dbo.OM_MOMaterials ot ON ot.MoDetailsID= od.MODetailsID
+	JOIN UFDATA_103_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+	JOIN UFDATA_103_2021.dbo.Inventory oti ON oti.cInvCode= ot.cInvCode
+	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.cInvCcode LIKE '05%' OR oti.cInvCcode LIKE '06%' OR oti.cInvCcode LIKE '07%' OR oti.cInvCCode = '0399' OR oti.cInvCCode = '0299' OR oti.cInvCCode = '0499'  ) AND oti.cInvName NOT LIKE '%带%'
+GROUP BY ot.cInvCode,od.isosid,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,
+			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
+			JOIN UFDATA_103_2021.dbo.PO_Podetails pod ON pod.POID  = pom.POID
+			JOIN UFDATA_103_2021.dbo.PurBillVouchs bi ON bi.iPOsID= pod.ID
+			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
+	) AS t2 
+on
+	t1.cInvCode= t2.cInvCode 
+	AND t2.iorderdid= t1.isosid 
+	) t3 
+GROUP BY
+	t3.goodsName,t3.cVenAbbName
+	) t4 GROUP BY t4.goodsName
 		) tab
 		) tab
 		left join
 		left join
 		(
 		(
@@ -71,7 +131,7 @@
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%'  or i.cInvCCode = '0299')
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499'  or i.cInvCCode = '0299') and i.cInvName not like '%带%'
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName
 		)tab1 on tab1.cInvName=tab.goodsName
 		left join
 		left join
@@ -86,7 +146,7 @@
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
 		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 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%'
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%' or i.cInvCCode = '0299') and rs.cBatch LIKE CONCAT(#{code},'%')
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499'  or i.cInvCCode = '0299') and rs.cBatch LIKE CONCAT(#{code},'%') and i.cInvName not like '%带%'
 		GROUP BY i.cInvName--,rs.cBatch
 		GROUP BY i.cInvName--,rs.cBatch
 		)tab2 on tab2.cInvName=tab.goodsName
 		)tab2 on tab2.cInvName=tab.goodsName
 
 
@@ -105,6 +165,7 @@
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
 		from
 		from
 		(
 		(
+		select t4.goodsName,sum(t4.dosage) as dosage,sum(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 t3.goodsName,sum(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 t3.goodsName,sum(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.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
 		select 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
@@ -118,7 +179,7 @@
 
 
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
 		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%'
 		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 = '0299' or oti.cInvCCode = '0499' )
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' ) AND oti.cInvName NOT LIKE '%带%'
 		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
 		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
 		) as t1,
 		) as t1,
 		(
 		(
@@ -131,7 +192,7 @@
 		join UFDATA_101_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
 		join UFDATA_101_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
 		join UFDATA_101_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
 		join UFDATA_101_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
 		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=pod.cInvCode
 		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=pod.cInvCode
-		where pom.cVenCode != 'T010001' and pom.cVenCode = 'T020001'
+		where pom.cVenCode != 'T010001' and pom.cVenCode != 'T020001'
 		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
 		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
 		) t3  GROUP BY t3.goodsName
 		) t3  GROUP BY t3.goodsName
 
 
@@ -150,10 +211,10 @@
 
 
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
 		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%'
 		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 = '0299' or oti.cInvCCode = '0499')
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' ) AND oti.cInvName NOT LIKE '%带%'
 		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
 		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
-		) as t1,
-		(
+		) as t1
+		left join (
 		select max(ven.cVenAbbName) as cVenAbbName,
 		select max(ven.cVenAbbName) as cVenAbbName,
 		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
 		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
 		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
 		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
@@ -167,10 +228,45 @@
 		join UFDATA_102_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
 		join UFDATA_102_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
 		join UFDATA_102_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
 		join UFDATA_102_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
 		join UFDATA_102_2021.dbo.Inventory oti on oti.cInvCode=pd.cInvCode
 		join UFDATA_102_2021.dbo.Inventory oti on oti.cInvCode=pd.cInvCode
-		where pm.cVenCode != 'T010001' and pom.cVenCode = 'T010001' and pom.cpoid LIKE CONCAT(#{code},'%')
-		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
+		where pm.cVenCode != 'T020001' and pom.cpoid LIKE CONCAT(#{code},'%')
+		GROUP BY bi.cInvCode,pod.iorderdid) as t2 on t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
 		) t3  GROUP BY t3.goodsName
 		) t3  GROUP BY t3.goodsName
 
 
+		union all
+		select t3.goodsName,sum(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.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
+
+		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.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
+		JOIN UFDATA_101_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
+		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.cInvCcode like '05%' or oti.cInvCcode like '06%'
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' )AND oti.cInvName NOT LIKE '%带%'
+		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
+		) as t1,
+		(
+		select max(ven.cVenAbbName) as cVenAbbName,
+		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
+		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
+		from UFDATA_101_2021.dbo.PO_Pomain pom
+		join UFDATA_101_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
+		join UFDATA_103_2021.dbo.HY_DZ_K7_SYNERGISMLOGDID hy on pod.id = hy.predid
+
+		join UFDATA_103_2021.dbo.OM_MODetails pd on pd.isosid=hy.did
+		join UFDATA_103_2021.dbo.OM_MOMain pm on pd.MOID  = pm.MOID
+		left join UFDATA_103_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pd.MODetailsID
+		left 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=pd.cInvCode
+		where pom.cpoid LIKE CONCAT(#{code},'%')
+		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
+		) t3  GROUP BY t3.goodsName
+		) t4 GROUP BY t4.goodsName
 		) tab
 		) tab
 		left join
 		left join
 		(
 		(
@@ -184,7 +280,7 @@
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		and om.cPOID LIKE CONCAT(#{code},'%')
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-		or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299')
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299')  and i.cInvName not like '%带%'
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName
 		)tab1 on tab1.cInvName=tab.goodsName
 		left join
 		left join
@@ -199,7 +295,7 @@
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
 		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 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%'
 		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-		or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299') and rs.cBatch LIKE CONCAT(#{code},'%')
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499'  or i.cInvCCode = '0299') and i.cInvName not like '%带%' and rs.cBatch LIKE CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab.goodsName
 		)tab2 on tab2.cInvName=tab.goodsName
 
 

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

@@ -18,16 +18,19 @@
     </select>
     </select>
 
 
     <select id="queryByCostHead" resultType="org.jeecg.modules.cost.entity.SyCostAllocation">
     <select id="queryByCostHead" resultType="org.jeecg.modules.cost.entity.SyCostAllocation">
-        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,
+        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,'101' as pkOrg,
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales,
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales,
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
-            max(cc.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sh.dDate) as outdata,
+            max(cc.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sa.dDate) as outdata,
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
         FROM  UFDATA_101_2021.dbo.SO_SODetails s     
         FROM  UFDATA_101_2021.dbo.SO_SODetails s     
         inner JOIN UFDATA_101_2021.dbo.SO_SOMain ss on ss.ID= s.ID
         inner JOIN UFDATA_101_2021.dbo.SO_SOMain ss on ss.ID= s.ID
-      	left JOIN UFDATA_101_2021.dbo.SaleBillVouchs shs ON s.iSOsID = shs.iSOsID
+      	left JOIN
+				(select min(shs.iSOsID) as iSOsID,min(sh.dDate) as dDate from UFDATA_101_2021.dbo.SaleBillVouchs shs
         left join UFDATA_101_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
         left join UFDATA_101_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
+				GROUP BY sh.SBVID
+				)sa ON s.iSOsID = sa.iSOsID
         inner JOIN (     
         inner JOIN (     
                      SELECT      
                      SELECT      
                      om.cCode AS omCode,     
                      om.cCode AS omCode,     
@@ -48,10 +51,10 @@
         
         
         union all  
         union all  
         
         
-        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,
+        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,'103' as pkOrg,
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales, 
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales, 
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
-            max(cu.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sh.dDate) as outdata,
+            max(cu.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sa.dDate) as outdata,
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
         FROM  UFDATA_103_2021.dbo.SO_SODetails a     
         FROM  UFDATA_103_2021.dbo.SO_SODetails a     
@@ -76,8 +79,11 @@
         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.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_SODetails s on s.iSOsID=g.iorderdid
         inner join UFDATA_102_2021.dbo.so_somain ss on ss.id=s.id
         inner join UFDATA_102_2021.dbo.so_somain ss on ss.id=s.id
-       	left JOIN UFDATA_102_2021.dbo.SaleBillVouchs shs ON s.iSOsID = shs.iSOsID
-        left join UFDATA_102_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
+       		left JOIN
+				(select min(shs.iSOsID) as iSOsID,min(sh.dDate) as dDate from UFDATA_101_2021.dbo.SaleBillVouchs shs
+        left join UFDATA_101_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
+				GROUP BY sh.SBVID
+				)sa ON s.iSOsID = sa.iSOsID
         inner join UFDATA_102_2021.dbo.Person j on j.cPersonCode=ss.cPersonCode 
         inner join UFDATA_102_2021.dbo.Person j on j.cPersonCode=ss.cPersonCode 
         inner JOIN UFDATA_102_2021.dbo.Customer cu ON ss.cCusCode = cu.cCusCode 
         inner JOIN UFDATA_102_2021.dbo.Customer cu ON ss.cCusCode = cu.cCusCode 
         WHERE cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName
         WHERE cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName
@@ -85,10 +91,10 @@
         
         
         union all  
         union all  
         
         
-        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,
+        SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,'103' as pkOrg,
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales, 
             max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales, 
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
             max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department, 
-            max(cu.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sh.dDate) as outdata,
+            max(cu.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,min(sa.dDate) as outdata,
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal, 
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
             sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity    
         FROM  UFDATA_103_2021.dbo.SO_SODetails a     
         FROM  UFDATA_103_2021.dbo.SO_SODetails a     
@@ -113,8 +119,11 @@
         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.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_SODetails s on s.iSOsID=g.iorderdid
         inner join UFDATA_101_2021.dbo.so_somain ss on ss.id=s.id
         inner join UFDATA_101_2021.dbo.so_somain ss on ss.id=s.id
-       	left JOIN UFDATA_101_2021.dbo.SaleBillVouchs shs ON s.iSOsID = shs.iSOsID
+       	left JOIN
+				(select min(shs.iSOsID) as iSOsID,min(sh.dDate) as dDate from UFDATA_101_2021.dbo.SaleBillVouchs shs
         left join UFDATA_101_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
         left join UFDATA_101_2021.dbo.SaleBillVouch sh ON sh.SBVID = shs.SBVID
+				GROUP BY sh.SBVID
+				)sa ON s.iSOsID = sa.iSOsID
         inner join UFDATA_101_2021.dbo.Person j on j.cPersonCode=ss.cPersonCode 
         inner join UFDATA_101_2021.dbo.Person j on j.cPersonCode=ss.cPersonCode 
         inner JOIN UFDATA_101_2021.dbo.Customer cu ON ss.cCusCode = cu.cCusCode 
         inner JOIN UFDATA_101_2021.dbo.Customer cu ON ss.cCusCode = cu.cCusCode 
         WHERE cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName
         WHERE cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName

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

@@ -17,8 +17,8 @@
 	</select>
 	</select>
 
 
 	<select id="queryByCostShipdetail" resultType="org.jeecg.modules.cost.entity.SyCostAllocationShipdetail">
 	<select id="queryByCostShipdetail" resultType="org.jeecg.modules.cost.entity.SyCostAllocationShipdetail">
-		select t.* from (
-		SELECT
+	select t.* from (
+			SELECT
 			sh.cDefine10 AS invoiceNum,
 			sh.cDefine10 AS invoiceNum,
 			CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
 			CONVERT(varchar(50), min(sh.dDate), 23) as outdata ,
 			sum(shs.iQuantity) as shipQuantity,
 			sum(shs.iQuantity) as shipQuantity,
@@ -36,27 +36,27 @@
 			v.cVenName AS processUnit
 			v.cVenName AS processUnit
 		 FROM
 		 FROM
 			UFDATA_101_2021.dbo.SaleBillVouch sh
 			UFDATA_101_2021.dbo.SaleBillVouch sh
-			JOIN UFDATA_101_2021.dbo.SaleBillVouchs shs ON sh.SBVID = shs.SBVID
+			left 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.Inventory c ON c.cInvCode= shs.cInvCode
-			LEFT JOIN UFDATA_101_2021.dbo.rdrecords32 rd ON rd.AutoID = shs.isaleoutid
 			JOIN (
 			JOIN (
 			 SELECT
 			 SELECT
 				o.supplierCode,s.iSOsID,s.id ,o.procesUnitPriceusd,o.procesUnitPricermb,o.iPBVQuantity,o.cexch as cexch,s.cdefine22,s.cDefine28
 				o.supplierCode,s.iSOsID,s.id ,o.procesUnitPriceusd,o.procesUnitPricermb,o.iPBVQuantity,o.cexch as cexch,s.cdefine22,s.cDefine28
 			 FROM UFDATA_101_2021.dbo.SO_SODetails s
 			 FROM UFDATA_101_2021.dbo.SO_SODetails s
 			 JOIN (
 			 JOIN (
-					SELECT max(om.cexch_name) as cexch,
-			 max(om.cVenCode) AS supplierCode,od.cInvCode,od.isosid,sum(od.iTax) as iTax,sum(od.iNatTax) as iNatTax
+					SELECT max(om.cexch_name) as cexch,od.csoordercode,
+			 max(om.cVenCode) AS supplierCode,max(od.cInvCode) as cInvCode,sum(od.iTax) as iTax,sum(od.iNatTax) as iNatTax
 			 ,min(od.iNatUnitPrice) as procesUnitPricermb,min(bi.iOriTaxCost ) as procesUnitPriceusd,count(1) as iPBVQuantity
 			 ,min(od.iNatUnitPrice) as procesUnitPricermb,min(bi.iOriTaxCost ) as procesUnitPriceusd,count(1) as iPBVQuantity
 					FROM UFDATA_101_2021.dbo.OM_MOMain om
 					FROM UFDATA_101_2021.dbo.OM_MOMain om
 					LEFT JOIN UFDATA_101_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
 					LEFT JOIN UFDATA_101_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
 					left join UFDATA_101_2021.dbo.PurBillVouchs bi  on bi.iPOsID=od.MODetailsID
 					left join UFDATA_101_2021.dbo.PurBillVouchs bi  on bi.iPOsID=od.MODetailsID
-					WHERE om.iVerifyStateNew = 2 AND om.cCode LIKE CONCAT(#{code},'%')
-					GROUP BY od.cInvCode,od.isosid
-				) o ON s.isosid = o.isosid AND s.cInvCode = o.cInvCode
-			) so ON so.iSOsID = rd.iorderdid
+					WHERE om.iVerifyStateNew = 2 AND om.cCode like CONCAT(#{code},'%') 
+					GROUP BY od.csoordercode
+				) o ON s.csocode = o.csoordercode 
+			) so ON so.iSOsID = shs.iSOsID 
 		 LEFT JOIN UFDATA_101_2021.dbo.Vendor v ON so.supplierCode= v.cVenCode
 		 LEFT JOIN UFDATA_101_2021.dbo.Vendor v ON so.supplierCode= v.cVenCode
 		 group by sh.cDefine10,sh.iExchRate,sh.cSOCode,c.cInvName, v.cVenName
 		 group by sh.cDefine10,sh.iExchRate,sh.cSOCode,c.cInvName, v.cVenName
 
 
+
 		 union all
 		 union all
 
 
 		 SELECT
 		 SELECT
@@ -87,17 +87,17 @@
 						inner JOIN UFDATA_103_2021.dbo.SO_SOMain b on b.ID= a.ID
 						inner JOIN UFDATA_103_2021.dbo.SO_SOMain b on b.ID= a.ID
 						inner JOIN (
 						inner JOIN (
 									 SELECT max(om.cexch_name) as cexch,
 									 SELECT max(om.cexch_name) as cexch,
-									 max(od.csoordercode) as csoordercode,
-									 max(om.cVenCode) AS supplierCode,od.cInvCode,od.isosid,sum(od.iQuantity) as iQuantity ,
+									 od.csoordercode as csoordercode,
+									 max(om.cVenCode) AS supplierCode,max(od.cInvCode) as cInvCode,max(od.isosid) as isosid,sum(od.iQuantity) as iQuantity ,
 									 avg(bi.iOriTaxCost) as iOriTaxCost,avg(od.iNatUnitPrice) as iNatUnitPrice
 									 avg(bi.iOriTaxCost) as iOriTaxCost,avg(od.iNatUnitPrice) as iNatUnitPrice
 									 FROM
 									 FROM
 									 UFDATA_103_2021.dbo.OM_MOMain om
 									 UFDATA_103_2021.dbo.OM_MOMain om
 									 inner JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
 									 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.PurBillVouchs bi  on bi.iPOsID=od.MODetailsID
 									 WHERE
 									 WHERE
-									 om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and om.cCode like CONCAT(#{code},'%')
-									 GROUP BY od.cInvCode,od.isosid
-									 ) o ON a.isosid  = o.isosid AND a.cInvCode = o.cInvCode
+									 om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and om.cCode like CONCAT(#{code},'%') 
+									 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.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.Inventory c on c.cInvCode=a.cInvCode
 						inner JOIN UFDATA_103_2021.dbo.Person  pe ON b.cPersonCode = pe.cPersonCode
 						inner JOIN UFDATA_103_2021.dbo.Person  pe ON b.cPersonCode = pe.cPersonCode
@@ -142,17 +142,17 @@
 						inner JOIN UFDATA_103_2021.dbo.SO_SOMain b on b.ID= a.ID
 						inner JOIN UFDATA_103_2021.dbo.SO_SOMain b on b.ID= a.ID
 						inner JOIN (
 						inner JOIN (
 									 SELECT max(om.cexch_name) as cexch,
 									 SELECT max(om.cexch_name) as cexch,
-									 max(od.csoordercode) as csoordercode,
-									 max(om.cVenCode) AS supplierCode,od.cInvCode,od.isosid,sum(od.iQuantity) as iQuantity ,
+									 od.csoordercode as csoordercode,
+									 max(om.cVenCode) AS supplierCode,max(od.cInvCode) as cInvCode,max(od.isosid) as isosid,sum(od.iQuantity) as iQuantity ,
 									 avg(bi.iOriTaxCost) as iOriTaxCost,avg(od.iNatUnitPrice) as iNatUnitPrice
 									 avg(bi.iOriTaxCost) as iOriTaxCost,avg(od.iNatUnitPrice) as iNatUnitPrice
 									 FROM
 									 FROM
 									 UFDATA_103_2021.dbo.OM_MOMain om
 									 UFDATA_103_2021.dbo.OM_MOMain om
 									 inner JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
 									 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.PurBillVouchs bi  on bi.iPOsID=od.MODetailsID
 									 WHERE
 									 WHERE
-									 om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and om.cCode like CONCAT(#{code},'%')
-									 GROUP BY od.cInvCode,od.isosid
-									 ) o ON a.isosid  = o.isosid AND a.cInvCode = o.cInvCode
+									 om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and om.cCode like CONCAT(#{code},'%') 
+									 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.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.Inventory c on c.cInvCode=a.cInvCode
 						inner JOIN UFDATA_103_2021.dbo.Person  pe ON b.cPersonCode = pe.cPersonCode
 						inner JOIN UFDATA_103_2021.dbo.Person  pe ON b.cPersonCode = pe.cPersonCode

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

@@ -217,9 +217,16 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
             //根据计划号查找该计划号下所有采购发票含税金额和不含税金额(不含税金额 = 含税金额/1.13)
             //根据计划号查找该计划号下所有采购发票含税金额和不含税金额(不含税金额 = 含税金额/1.13)
             SyCostAllocation fabriccostIncludestax = syCostAllocationMapper.queryPurBillVouchByFabric(plannum);
             SyCostAllocation fabriccostIncludestax = syCostAllocationMapper.queryPurBillVouchByFabric(plannum);
 
 
-            syCostAllocation.setFabriccostIncludestax(fabriccostIncludestax.getFabriccostIncludestax());
-            syCostAllocation.setFabriccostNotincludestax(fabriccostIncludestax.getFabriccostNotincludestax());
-            syCostAllocation.setFabriccostIncludestaxUsd(fabriccostIncludestax.getFabriccostIncludestaxUsd());
+            if(oConvertUtils.isNotEmpty(fabriccostIncludestax)){
+                syCostAllocation.setFabriccostIncludestax(fabriccostIncludestax.getFabriccostIncludestax());
+                syCostAllocation.setFabriccostNotincludestax(fabriccostIncludestax.getFabriccostNotincludestax());
+                syCostAllocation.setFabriccostIncludestaxUsd(fabriccostIncludestax.getFabriccostIncludestaxUsd());
+            }else{
+                syCostAllocation.setFabriccostIncludestax(BigDecimal.ZERO);
+                syCostAllocation.setFabriccostNotincludestax(BigDecimal.ZERO);
+                syCostAllocation.setFabriccostIncludestaxUsd(BigDecimal.ZERO);
+            }
+
         }
         }
 
 
         /*如果出现多供应商的情况拼接 供应商*/
         /*如果出现多供应商的情况拼接 供应商*/
@@ -323,6 +330,9 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
             Fabric.setPilosityFewerList(pilosityFeweList);
             Fabric.setPilosityFewerList(pilosityFeweList);
 
 
             //多发少发 = 使用数量-计划数量
             //多发少发 = 使用数量-计划数量
+            if(oConvertUtils.isEmpty(Fabric.getUsageQuantity())){
+                Fabric.setUsageQuantity(BigDecimal.ZERO);
+            }
             Fabric.setPilosityFewer(Fabric.getUsageQuantity().subtract(Fabric.getPlanQuantity()));
             Fabric.setPilosityFewer(Fabric.getUsageQuantity().subtract(Fabric.getPlanQuantity()));
         }
         }
 
 

+ 49 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/costLossReview/mapper/xml/SyCostLossReviewMapper.xml

@@ -3,8 +3,8 @@
 <mapper namespace="org.jeecg.modules.documents.costLossReview.mapper.SyCostLossReviewMapper">
 <mapper namespace="org.jeecg.modules.documents.costLossReview.mapper.SyCostLossReviewMapper">
     <select id="querylist" resultType="org.jeecg.modules.documents.costLossReview.entity.SyCostLossReview">
     <select id="querylist" resultType="org.jeecg.modules.documents.costLossReview.entity.SyCostLossReview">
 
 
-        select planNo,min(dverifyDate) as dverifyDate,min(department) as department,min(salesman) as salesman,min(maker) as maker from (
 
 
+        select planNo,min(dverifyDate) as dverifyDate,min(department) as department,min(salesman) as salesman,min(maker) as maker from (
 
 
         select  case when PATINDEX('%备%', t.planNo) !=0 then left(t.planNo,6) else t.planNo end as planNo,t.salesman,t.maker,t.department,t.dverifyDate from (
         select  case when PATINDEX('%备%', t.planNo) !=0 then left(t.planNo,6) else t.planNo end as planNo,t.salesman,t.maker,t.department,t.dverifyDate from (
 
 
@@ -44,10 +44,52 @@
         where cPOID like 'sy%' and CHARINDEX('-',cPOID)>0
         where cPOID like 'sy%' and CHARINDEX('-',cPOID)>0
 
 
         ) t
         ) t
+        where PATINDEX('%[吖-咗]%', planNo)=0 and PATINDEX('%.%', planNo)=0 and PATINDEX('%/%', planNo)=0
+
         ) as views
         ) as views
+        group by views.planNo HAVING planNo in(
+
+        select  case when PATINDEX('%备%', t.planNo) !=0 then left(t.planNo,6) else t.planNo end as planNo from (
+
+        select LEFT(cCode,CHARINDEX('-',cCode)-1) as planNo,dverifydate as dverifyDate,de.cDepName as department,
+        pe.cPersonName as salesman,cMaker as maker from UFDATA_103_2021.dbo.OM_MOMain s
+        JOIN UFDATA_103_2021.dbo.Department de ON s.cDepCode = de.cDepCode
+        JOIN UFDATA_103_2021.dbo.Person  pe ON s.cPersonCode = pe.cPersonCode
+        where cCode like 'sy%' and CHARINDEX('-',cCode)>0
+
+        union all
+        select LEFT(cPOID,CHARINDEX('-',cPOID)-1) as planNo,cAuditDate as dverifyDate,de.cDepName as department,
+        pe.cPersonName as salesman,cMaker as maker from UFDATA_103_2021.dbo.PO_Pomain s
+        JOIN UFDATA_103_2021.dbo.Department de ON s.cDepCode = de.cDepCode
+        JOIN UFDATA_103_2021.dbo.Person  pe ON s.cPersonCode = pe.cPersonCode
+        where cPOID like 'sy%' and CHARINDEX('-',cPOID)>0
+
+        union all
+
+        select LEFT(cCode,CHARINDEX('-',cCode)-1) as planNo,dverifydate as dverifyDate,de.cDepName as department,
+        pe.cPersonName as salesman,cMaker as maker from UFDATA_101_2021.dbo.OM_MOMain s
+        JOIN UFDATA_101_2021.dbo.Department de ON s.cDepCode = de.cDepCode
+        JOIN UFDATA_101_2021.dbo.Person  pe ON s.cPersonCode = pe.cPersonCode
+        where cCode like 'sy%' and CHARINDEX('-',cCode)>0
+
+        union all
+        select LEFT(cPOID,CHARINDEX('-',cPOID)-1) as planNo,cAuditDate as dverifyDate,de.cDepName as department,
+        pe.cPersonName as salesman,cMaker as maker from UFDATA_101_2021.dbo.PO_Pomain s
+        JOIN UFDATA_101_2021.dbo.Department de ON s.cDepCode = de.cDepCode
+        JOIN UFDATA_101_2021.dbo.Person  pe ON s.cPersonCode = pe.cPersonCode
+        where cPOID like 'sy%' and CHARINDEX('-',cPOID)>0
+
+        union all
+        select LEFT(cPOID,CHARINDEX('-',cPOID)-1) as planNo,cAuditDate as dverifyDate,de.cDepName as department,
+        pe.cPersonName as salesman,cMaker as maker from UFDATA_102_2021.dbo.PO_Pomain s
+        JOIN UFDATA_102_2021.dbo.Department de ON s.cDepCode = de.cDepCode
+        JOIN UFDATA_102_2021.dbo.Person  pe ON s.cPersonCode = pe.cPersonCode
+        where cPOID like 'sy%' and CHARINDEX('-',cPOID)>0
+
+        ) t
         where PATINDEX('%[吖-咗]%', planNo)=0 and PATINDEX('%.%', planNo)=0 and PATINDEX('%/%', planNo)=0
         where PATINDEX('%[吖-咗]%', planNo)=0 and PATINDEX('%.%', planNo)=0 and PATINDEX('%/%', planNo)=0
         <if test="e.planNo !=null and e.planNo !=''">
         <if test="e.planNo !=null and e.planNo !=''">
-           and planNo like CONCAT(#{e.planNo},'%')
+            and planNo like CONCAT(#{e.planNo},'%')
         </if>
         </if>
         <if test="e.dverifyDateB !=null and e.dverifyDateB !='' and e.dverifyDateE !=null and e.dverifyDateE !=''">
         <if test="e.dverifyDateB !=null and e.dverifyDateB !='' and e.dverifyDateE !=null and e.dverifyDateE !=''">
             and dverifyDate between #{e.dverifyDateB} and #{e.dverifyDateE}
             and dverifyDate between #{e.dverifyDateB} and #{e.dverifyDateE}
@@ -70,7 +112,9 @@
                 #{item}
                 #{item}
             </foreach>
             </foreach>
         </if>
         </if>
-        group by views.planNo ORDER BY min(dverifyDate)
+        GROUP BY t.planNo, t.dverifyDate
+        )
+
 
 
     </select>
     </select>
     <!--order by dverifyDate desc offset #{pageNO} rows fetch next #{pageSize} rows only-->
     <!--order by dverifyDate desc offset #{pageNO} rows fetch next #{pageSize} rows only-->
@@ -146,6 +190,8 @@ select count(*) from(
             </foreach>
             </foreach>
         </if>
         </if>
         group by views.planNo) t1
         group by views.planNo) t1
+
+
     </select>
     </select>
 
 
     <select id="queryMakerByplanNo" resultType="String">
     <select id="queryMakerByplanNo" resultType="String">