Browse Source

成本分配 辅料

liuchaohui 2 years ago
parent
commit
3a88579ac0

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/SyCostAllocationIngredientMapper.java

@@ -1,6 +1,8 @@
 package org.jeecg.modules.cost.mapper;
 
 import java.util.List;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
 import org.jeecg.modules.cost.entity.SyCostAllocationIngredient;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -15,4 +17,7 @@ public interface SyCostAllocationIngredientMapper extends BaseMapper<SyCostAlloc
 	public boolean deleteByMainId(String mainId);
     
 	public List<SyCostAllocationIngredient> selectByMainId(String mainId);
+
+	@DS("multi-three")
+	List<SyCostAllocationIngredient> queryByCostIngredient(String code);
 }

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

@@ -15,4 +15,82 @@
 		WHERE
 			 sy_cost_allocation_id = #{id} 		
 	</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>
 </mapper>

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

@@ -365,80 +365,9 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
 
 
         //查询U8数据 辅料
-        String sqlIngredient ="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.iTaxPrice) as priceExcludingtax ,(     " +
-                "                     SELECT sum(r.iQuantity)  FROM rdrecords01 rs1      " +
-                "                           left join rdrecord01 r1 on r1.id=rs1.id     " +
-                "                     where rs1.cBatch = '"+plannum+"' and rs1.cPOID  like '"+plannum+"%' 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 '"+plannum+"%'      " +
-                "  ) 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 = '"+plannum+"'     " +
-                "        ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode       " +
-                "        JOIN (SELECT * FROM  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 rdrecords01 rs1      " +
-                "                           left join rdrecord01 r1 on r1.id=rs1.id     " +
-                "                     where rs1.cBatch = '"+plannum+"' and rs1.cPOID  like '"+plannum+"%' and     " +
-                "                            r.cBatch = rs1.cBatch and rs1.cInvCode=r.cInvCode      " +
-                "                     group by rs1.cInvCode, rs1.cBatch  ) as yuu     " +
-                "     FROM rdrecords11  r      " +
-                "     JOIN (      " +
-                "  SELECT od.MODetailsID,od.cInvCode,om.cVenCode        " +
-                "  FROM OM_MOMain om LEFT JOIN OM_MODetails od ON om.MOID = od.MOID       " +
-                "  WHERE om.iVerifyStateNew = 2 and om.cCode like '"+plannum+"%'      " +
-                "  ) 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 rdrecords01 rs1      " +
-                "   left join rdrecord01 r1 on r1.id=rs1.id     " +
-                "   left join PO_Podetails p on p.ID=rs1.iPOsID     " +
-                "   left join PurBillVouchs bi  on bi.iPOsID=p.ID     " +
-                "   left join OM_MODetails o on o.MODetailsID =rs1.iOMoDID     " +
-                "   left join OM_MOMaterials od on od.MoDetailsID=o.MODetailsID      " +
-                "   where rs1.cBatch = '"+plannum+"'     " +
-                "        ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode       " +
-                "        JOIN (SELECT * FROM  Inventory  " +
-                "   where (cInvCCode like '05%' or cInvCCode like '06%' or cInvCCode like '07%' ) ) c on c.cInvCode=r.cInvCode    " +
-                "                LEFT JOIN 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";
-        List<Map<String, Object>> list2  = senYuDataSourceOne.queryForList(sqlIngredient);
-        List<JSONObject> jianSon2 = JsonChangeUtils.toJSONObject(list2);
-        List<SyCostAllocationIngredient> list4 = new ArrayList<>();
-        for (int i=0;i<jianSon2.size();i++) {
-            SyCostAllocationIngredient Ingredient = JSONObject.toJavaObject(jianSon2.get(i), SyCostAllocationIngredient.class);
+        List<SyCostAllocationIngredient> list4 = syCostAllocationIngredientMapper.queryByCostIngredient(plannum);
+        for (int i=0;i<list4.size();i++) {
+            SyCostAllocationIngredient Ingredient = list4.get(i);
             /*余下*/
             String sqlRemaining  ="       select b.cInvName as goodsName,b.cPOID as planCode,b.cfree1 as color,max(b.yi ) as number " +
                                     "       FROM ( " +
@@ -518,7 +447,6 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
                 Ingredient.setIngredientsTransferQuantity(BigDecimal.ZERO);
                 Ingredient.setTransferCost(BigDecimal.ZERO);
             }
-            list4.add(Ingredient);
             //辅料含税成本 美元
             if(Ingredient.getUsdAmount()!=null){
                 if(syCostAllocation.getExcipiencostIncludestax()==null){