Browse Source

成本报表 面料余下明细

liuchaohui 2 years ago
parent
commit
36ca5df949

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

@@ -183,26 +183,85 @@
     </select>
 
 	<select id="queryRemainingByFabric" resultType="org.jeecg.modules.cost.entity.SyRemaining">
-		select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as number
+		select tab.*,tab2.jian-tab.usageQuantity as number
+		from
+		(
+				select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as usageQuantity
 				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
-				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}
+				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}
 						and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
 				GROUP BY oti.cInvName,ot.cFree1
+		) tab
+		left join
+		(
+				select i.cInvName,sum(rs.iQuantity) as jian,rs.cfree1 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 '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499'
+				GROUP BY i.cInvName,rs.cFree1
+		)tab2 on tab2.cInvName=tab.goodsName and tab.color=tab2.cfree1
 
 		union all
 
-		select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as number
+		select tab.*,tab2.jian-tab.usageQuantity as number
+		from
+		(
+				select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as usageQuantity
 				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
-				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}
+				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}
 						and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
 				GROUP BY oti.cInvName,ot.cFree1
+		) tab
+		left join
+		(
+				select i.cInvName,sum(rs.iQuantity) as jian,rs.cfree1 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 '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499'
+				GROUP BY i.cInvName,rs.cFree1
+		)tab2 on tab2.cInvName=tab.goodsName and tab.color=tab2.cfree1
 	</select>
+<!--	select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as number
+	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
+	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}
+	and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
+	GROUP BY oti.cInvName,ot.cFree1
+
+	union all
+
+	select oti.cInvName as goodsName,ot.cFree1 as color,max(om.ccode) as planCode,sum(ot.iQuantity) as number
+	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
+	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}
+	and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
+	GROUP BY oti.cInvName,ot.cFree1-->
 </mapper>

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

@@ -209,12 +209,12 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
             2.余下:从采购起手,找到所有的采购入库,然后关联材料出库,排除掉自己使用的 就是余下的
             * */
             //若余下数量不为0则给转入数据对象赋值
-            if(!Fabric.getFabricremainingQuantity().equals(0)){
+            if(0!=Fabric.getFabricremainingQuantity().compareTo(BigDecimal.ZERO)){
                 List<SyRemaining> syRemaining  = syCostAllocationFabricMapper.queryRemainingByFabric(plannum,Fabric.getGoodsName());
                 Fabric.setSyRemaining(syRemaining);
             }
             //若转入数量不为0则给转入数据对象赋值
-            if(!Fabric.getFabrictransferQuantity().equals(0)){
+            if(0!=Fabric.getFabrictransferQuantity().compareTo(BigDecimal.ZERO)){
                 List<SyTransfer> transferlist  = syCostAllocationFabricMapper.queryTransferByFabric(plannum,Fabric.getGoodsName());
                 Fabric.setSyTransfers(transferlist);
             }