Browse Source

成本报表 面辅料第二版

liuchaohui 2 years ago
parent
commit
305103ac84

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

@@ -196,22 +196,58 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
             }
         }
 
-        //查询U8数据 面料
-        String sqlFabric = "SELECT cInvName as goodsName,sum(riQuantity) as usageQuantity,sum(biQuantity) as planQuantity,processUnit FROM (" +
-                "select c.cInvName ,sum(r.iQuantity) as riQuantity,r.cBatch ,b.cSource,b.cPOID,sum(b.iQuantity) as biQuantity,v.cVenName as processUnit" +
-                " 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.cState = 1 and om.cCode like '"+plannum+"%'" +
-                "   ) o ON r.iOMoDID  = o.MODetailsID " +
-                "  LEFT JOIN (SELECT * FROM  Inventory where (cInvCCode like '03%' or cInvCCode like '04%'  ) and cInvCCode != '0399' and cInvCCode != '0499') c on c.cInvCode=r.cInvCode" +
-                " LEFT JOIN Vendor v ON o.cVenCode= v.cVenCode "+
-                "  LEFT JOIN (" +
-                "    SELECT r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity" +
-                "    FROM rdrecords01 rs1 join rdrecord01 r1 on r1.id=rs1.id" +
-                "    ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode " +
-                "  GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ) as ta GROUP BY cInvName,processUnit";
+        /*查询U8数据 面料*/
+//        String sqlFabric = "SELECT cInvName as goodsName,sum(riQuantity) as usageQuantity,sum(biQuantity) as planQuantity,processUnit FROM (" +
+//                "select c.cInvName ,sum(r.iQuantity) as riQuantity,r.cBatch ,b.cSource,b.cPOID,sum(b.iQuantity) as biQuantity,v.cVenName as processUnit" +
+//                " 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.cState = 1 and om.cCode like '"+plannum+"%'" +
+//                "   ) o ON r.iOMoDID  = o.MODetailsID " +
+//                "  LEFT JOIN (SELECT * FROM  Inventory where (cInvCCode like '03%' or cInvCCode like '04%'  ) and cInvCCode != '0399' and cInvCCode != '0499') c on c.cInvCode=r.cInvCode" +
+//                " LEFT JOIN Vendor v ON o.cVenCode= v.cVenCode "+
+//                "  LEFT JOIN (" +
+//                "    SELECT r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity" +
+//                "    FROM rdrecords01 rs1 join rdrecord01 r1 on r1.id=rs1.id" +
+//                "    ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode " +
+//                "  GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ) as ta GROUP BY cInvName,processUnit";
+
+        String sqlFabric ="SELECT cInvName as goodsName,sum(yi) as usageQuantity,sum(ying) as planQuantity,sum(gou) as purchaseQuantity," +
+                "processUnit,sum(gou)-sum(yuu) as fabricremainingQuantity,sum(yu) as fabrictransferQuantity 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 ,( " +
+                "                    SELECT sum(r.iQuantity) " +
+                "                    FROM rdrecords01 rs1  " +
+                "          left join rdrecord01 r1 on r1.id=rs1.id " +
+                "          where rs1.cBatch = '"+plannum+"' and rs1.cPOID not like '"+plannum+"%' and " +
+                "                     r.cBatch = rs1.cBatch and rs1.cInvCode=r.cInvCode  " +
+                "      ) 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.cState = 1 and om.cCode like '"+plannum+"%'  " +
+                "                   ) o ON r.iOMoDID  = o.MODetailsID   " +
+                "                  LEFT 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 " +
+                "                    FROM rdrecords01 rs1  " +
+                "          left join rdrecord01 r1 on r1.id=rs1.id " +
+                "          left join PO_Podetails p on p.ID=rs1.iPOsID " +
+                "          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   " +
+                " " +
+                "      LEFT JOIN (SELECT * FROM  Inventory where (cInvCCode like '03%' or cInvCCode like '04%'  )  " +
+                "           and cInvCCode != '0399' and cInvCCode != '0499') 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>> list1  = senYuDataSourceOne.queryForList(sqlFabric);
         List<JSONObject> jianSon1 = JsonChangeUtils.toJSONObject(list1);
         List<SyCostAllocationFabric> list3 = new ArrayList<>();
@@ -222,21 +258,55 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
 
 
         //查询U8数据 辅料
-        String sqlIngredient = "SELECT cInvName as goodsName,sum(riQuantity) as usageQuantity,sum(biQuantity) as planQuantity,processUnit FROM (" +
-                "select c.cInvName ,sum(r.iQuantity) as riQuantity,r.cBatch ,b.cSource,b.cPOID,sum(b.iQuantity) as biQuantity,v.cVenName as processUnit" +
-                " 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.cState = 1 and om.cCode like '"+plannum+"%'" +
-                "   ) o ON r.iOMoDID  = o.MODetailsID " +
-                "  LEFT 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 "+
-                "  LEFT JOIN (" +
-                "    SELECT r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity" +
-                "    FROM rdrecords01 rs1 join rdrecord01 r1 on r1.id=rs1.id" +
-                "    ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode " +
-                "  GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ) as ta GROUP BY cInvName,processUnit";
+//        String sqlIngredient = "SELECT cInvName as goodsName,sum(riQuantity) as usageQuantity,sum(biQuantity) as planQuantity,processUnit FROM (" +
+//                "select c.cInvName ,sum(r.iQuantity) as riQuantity,r.cBatch ,b.cSource,b.cPOID,sum(b.iQuantity) as biQuantity,v.cVenName as processUnit" +
+//                " 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.cState = 1 and om.cCode like '"+plannum+"%'" +
+//                "   ) o ON r.iOMoDID  = o.MODetailsID " +
+//                "  LEFT 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 "+
+//                "  LEFT JOIN (" +
+//                "    SELECT r1.cSource,rs1.cBatch,rs1.cInvCode ,rs1.cPOID,rs1.iQuantity" +
+//                "    FROM rdrecords01 rs1 join rdrecord01 r1 on r1.id=rs1.id" +
+//                "    ) b on r.cBatch = b.cBatch and b.cInvCode=r.cInvCode " +
+//                "  GROUP BY c.cInvName,r.cBatch,b.cSource,b.cPOID,v.cVenName ) as ta GROUP BY cInvName,processUnit";
+
+        String sqlIngredient ="SELECT cInvName as goodsName,sum(yi) as usageQuantity,sum(ying) as planQuantity,sum(gou) as purchaseQuantity," +
+                "processUnit,sum(gou)-sum(yuu) as fabricremainingQuantity,sum(yu) as fabrictransferQuantity 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 ,( " +
+                "                    SELECT sum(r.iQuantity) " +
+                "                    FROM rdrecords01 rs1  " +
+                "          left join rdrecord01 r1 on r1.id=rs1.id " +
+                "          where rs1.cBatch = '"+plannum+"' and rs1.cPOID not like '"+plannum+"%' and " +
+                "                     r.cBatch = rs1.cBatch and rs1.cInvCode=r.cInvCode  " +
+                "      ) 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.cState = 1 and om.cCode like '"+plannum+"%'  " +
+                "                   ) o ON r.iOMoDID  = o.MODetailsID   " +
+                "                  LEFT 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 " +
+                "                    FROM rdrecords01 rs1  " +
+                "          left join rdrecord01 r1 on r1.id=rs1.id " +
+                "          left join PO_Podetails p on p.ID=rs1.iPOsID " +
+                "          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   " +
+                " " +
+                "     LEFT 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<>();