Browse Source

齐套率报表

zengtx 2 years ago
parent
commit
60c1ba8b80

+ 35 - 17
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/controller/FullSetRateController.java

@@ -74,6 +74,8 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
         BigDecimal cumulativeOnTimeDeliveryQuantity = BigDecimal.ZERO;
         //累计延迟出库数量
         BigDecimal cumulativeDelayedDeliveryQty = BigDecimal.ZERO;
+        //委外订单数量
+        BigDecimal subcontractOrderQuantity = BigDecimal.ZERO;
 
         for(FullSetRate li:pageList.getRecords()){
 
@@ -102,10 +104,16 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
                         cumulativeOnTimeDeliveryQuantity = cumulativeOnTimeDeliveryQuantity.add(sa.getCumulativeOnTimeDeliveryQuantity());
                     }
                 }
+                //查询委外订单获取数量
+                String subcontractOrderQuantity1 = fullSetRateService.queryOMMOdetilQuantity(momian.getISOsID(),momian.getCInvCode());
+                if(oConvertUtils.isEmpty(subcontractOrderQuantity1)){
+                    subcontractOrderQuantity = subcontractOrderQuantity.add(BigDecimal.ZERO);
+                }else {
+                    subcontractOrderQuantity = subcontractOrderQuantity.add(new BigDecimal(subcontractOrderQuantity1));
+                }
             }
-            //获取委外订单数量且赋值
-            String subcontractOrderQuantity = fullSetRateService.queryOMMOdetilQuantity(moDeilsIDList);
-            li.setSubcontractOrderQuantity(subcontractOrderQuantity);
+            //委外订单数量赋值
+            li.setSubcontractOrderQuantity(subcontractOrderQuantity.toString());
 
             //累计准时出库数量赋值
             li.setCumulativeOnTimeDeliveryQuantity(cumulativeOnTimeDeliveryQuantity);
@@ -123,18 +131,22 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
             li.setSoIDsID(moDeilsIDList);
 
             //齐套率赋值
-//            int i = 0;
-//            BigDecimal avg = BigDecimal.ZERO;
-//            List<FullSetRateList> list = fullSetRateService.queryOMMOdetilList(moDeilsIDList);
-//            for(FullSetRateList rate :list){
-//                //获取最小齐套率且赋值
-//                List<FullSetRateSubInfo> setRate = fullSetRateService.queryOMMOmainSubInfo(rate.getMODetailsID());
-//                rate.setSetRate(setRate.get(0).getSetRate());
-//                avg = avg.add(new BigDecimal(setRate.get(0).getSetRate()));
-//                i++;
-//            }
-//            BigDecimal rate = avg.divide(new BigDecimal(i),2,BigDecimal.ROUND_HALF_UP);
-//            li.setFullSetRate(rate.toString());
+            int i = 0;
+            BigDecimal avg = BigDecimal.ZERO;
+            List<FullSetRateList> list = fullSetRateService.queryOMMOdetilList(moDeilsIDList);
+            for(FullSetRateList rate :list){
+                //获取最小齐套率且赋值
+                List<FullSetRateSubInfo> setRate = fullSetRateService.queryOMMOmainSubInfo(rate.getMODetailsID());
+                rate.setSetRate(setRate.get(0).getSetRate());
+                if(oConvertUtils.isEmpty(setRate.get(0).getSetRate())){
+                    avg = avg.add(BigDecimal.ZERO);
+                }else {
+                    avg = avg.add(new BigDecimal(setRate.get(0).getSetRate()));
+                }
+                i++;
+            }
+            BigDecimal rate = avg.divide(new BigDecimal(i),2,BigDecimal.ROUND_HALF_UP);
+            li.setFullSetRate(rate.toString());
         }
 
         result.setMessage("查询成功!");
@@ -151,11 +163,17 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
      * @return
      */
     @GetMapping(value = "/queryOMMOdetilList")
-    public Result<List<FullSetRateList>> queryOMMOdetilList(List<String> iSOsID){
+    public Result<List<FullSetRateList>> queryOMMOdetilList(String iSOsID){
 
         Result<List<FullSetRateList>> result = new Result<List<FullSetRateList>>();
+        List<String> idList = new ArrayList<>();
+
+        String idSplit[] = iSOsID.split(",");
+        for(String id: idSplit){
+            idList.add(id);
+        }
 
-        List<FullSetRateList> list = fullSetRateService.queryOMMOdetilList(iSOsID);
+        List<FullSetRateList> list = fullSetRateService.queryOMMOdetilList(idList);
 
         for(FullSetRateList li:list){
             //获取最小齐套率且赋值

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/entity/FullSetRate.java

@@ -59,6 +59,7 @@ public class FullSetRate {
     private String iSOsID;
     private String ID;
     List<String> soIDsID;
+    private String cInvCode;
 
     //查询条件所需字段
     private String beginDate;

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/mapper/FullSetRateMapper.java

@@ -27,7 +27,7 @@ public interface FullSetRateMapper extends BaseMapper<FullSetRate> {
     public List<FullSetRate> querySalesIssueDate(@Param("moDeilsID") List<String> moDeilsID);
 
     //查询委外订单数量
-    public String queryOMMOdetilQuantity(@Param("isosid") List<String> isosid);
+    public String queryOMMOdetilQuantity(@Param("isosid") String isosid,@Param("cInvCode") String cInvCode);
 
     //查询委外订单明细
     public List<FullSetRateList> queryOMMOdetilList(@Param("isosid") List<String> isosid);

+ 4 - 7
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/mapper/xml/FullSetTateMapper.xml

@@ -9,8 +9,8 @@ min(p.cPersonName) as salesman,sum(b.iQuantity) as salesOrderQuantity1,sum(b.iFH
  (sum(b.iQuantity)-sum(b.iFHQuantity)) as quantityNotIssued,min(b.dPreDate) as estimatedDeliveryDate from SO_SOMain a
 left join SO_SODetails b
 on a.ID = b.ID
-left join (select a.cCode as cCode,b.isosid as isosid,a.cDepCode,a.cPersonCode from OM_MOMain a left join OM_MODetails b on a.MOID = b.MOID) as om
-on b.iSOsID = om.isosid
+left join (select a.cCode as cCode,b.isosid as isosid,a.cDepCode,a.cPersonCode,cInvCode from OM_MOMain a left join OM_MODetails b on a.MOID = b.MOID) as om
+on b.iSOsID = om.isosid and b.cInvCode = om.cInvCode
 left join Department d
 on om.cDepCode = d.cDepCode
 left join Person p
@@ -28,7 +28,7 @@ ${ew.customSqlSegment}
     </select>
 
     <select id="querySOMain" resultType="org.jeecg.modules.report.entity.FullSetRate">
-      select iSOsID as iSOsID,dPreDate as deliveryDate from SO_SODetails
+      select iSOsID as iSOsID,dPreDate as deliveryDate,cInvCode as cInvCode from SO_SODetails
       ${ew.customSqlSegment}
     </select>
 
@@ -45,10 +45,7 @@ ${ew.customSqlSegment}
 
     <select id="queryOMMOdetilQuantity" resultType="String">
         select sum(iQuantity) as 'iQuantity' from OM_MODetails
-        where isosid in
-        <foreach collection="isosid" item="item" separator="," open="(" close=")">
-            #{item}
-        </foreach>
+        where isosid =#{isosid} and cInvCode = #{cInvCode}
     </select>
 
     <select id="queryOMMOdetilList" resultType="org.jeecg.modules.report.entity.FullSetRateList">

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/service/IFullSetRateService.java

@@ -30,7 +30,7 @@ public interface IFullSetRateService extends IService<FullSetRate> {
     public List<FullSetRate> querySalesIssueDate(List<String> moDeilsID);
 
     //查询委外订单数量
-    public String queryOMMOdetilQuantity(List<String> isosid);
+    public String queryOMMOdetilQuantity(String isosid,String cInvCode);
 
     //查询委外订单明细
     public List<FullSetRateList> queryOMMOdetilList(List<String> isosid);

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

@@ -47,8 +47,8 @@ public class FullSetRateServiceImpl extends ServiceImpl<FullSetRateMapper, FullS
     }
 
     @Override
-    public String queryOMMOdetilQuantity(List<String> isosid) {
-        return fullSetRateMapper.queryOMMOdetilQuantity(isosid);
+    public String queryOMMOdetilQuantity(String isosid,String cInvCode) {
+        return fullSetRateMapper.queryOMMOdetilQuantity(isosid,cInvCode);
     }
 
     @Override