Explorar o código

齐套率加明细推送接口

zengtx %!s(int64=2) %!d(string=hai) anos
pai
achega
129075a817

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java

@@ -870,6 +870,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 			  pushShippingVO.setPoNo(li.getPoNo());
 			  pushShippingVO.setAttributeBigint1(li.getOmpoId());
 			  pushShippingVO.setSupplierNumber(li.getSupplierCode());
+			  pushShippingVO.setAttrbutestring3(li.getRSup());
 			  listItem.add(li);
 			  pushShippingVO.setLines(listItem);
 			  list.add(pushShippingVO);

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/PushShippingDeialVo.java

@@ -60,6 +60,6 @@ public class PushShippingDeialVo {
     //单位
     private String attributeString5;
     //供应商染厂编码(当发货供应商为印花厂时有值)
-    private String attributeString6;
+    private String rSup;
 
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/PushShippingVO.java

@@ -32,4 +32,6 @@ public class PushShippingVO {
     private  List<PushShippingDeialVo> lines;
     //发运明细主表ID
     private String attributeString2;
+    //染厂供应商
+    private String attrbutestring3;
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/xml/SyShippingDetailsMapper.xml

@@ -132,7 +132,7 @@ ${ew.customSqlSegment} and  t.inventoryCcode not LIKE '19%'
 
       select b.sort as packingLineNum,b.ompo_id as ompoId,b.supplier_code as supplierCode,b.shipping_details_id as attributeString1,
       b.id as attributeString2,b.order_number as attributeString3,b.size as attributeString4,sy.master_metering as attributeString5,
-      b.r_supplier_code as attributeString6,
+      b.r_supplier_code as rSup,
            b.ompo_id_item as moDetailId,b.item_number as styleNo,b.colour as color,b.pur_or_sub_order as poNo,
            b.inventory_code as itemCode,b.inventory_name as itemDesc,c.declaration_name as declarationName,
            b.material_composition as composition,'0' as width,'0' as rolls,b.shipment_quantity as planPackingQty,

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

@@ -24,6 +24,7 @@ import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -52,9 +53,9 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
         if(oConvertUtils.isNotEmpty(fullSetRate.getSubcontractOrderNo())){
             queryWrapper.like("a.cCode",fullSetRate.getSubcontractOrderNo());
         }
-       // if(oConvertUtils.isNotEmpty(fullSetRate.getBeginDate())){
-            queryWrapper.between("b.dPreDate","2022-09-21","2022-09-21");//fullSetRate.getBeginDate(),fullSetRate.getEndDate()
-       // }
+        if(oConvertUtils.isNotEmpty(fullSetRate.getBeginDate())){
+            queryWrapper.between("b.dPreDate",fullSetRate.getBeginDate(),fullSetRate.getEndDate());//"2022-07-01","2022-07-30"
+        }
 //        if(oConvertUtils.isNotEmpty(fullSetRate.getSection())){
 //            queryWrapper.like("a.cCode",fullSetRate.getSection());
 //        }
@@ -82,7 +83,7 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
             //查询销售订单子表预发货日期信息
             QueryWrapper<FullSetRate> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq("ID",li.getID());
-            queryWrapper1.between("dPreDate","2022-09-21","2022-09-21");
+            queryWrapper1.between("dPreDate",fullSetRate.getBeginDate(),fullSetRate.getEndDate());
             List<FullSetRate> querySomain = fullSetRateService.querySOMain(queryWrapper1);
 
             //循环子表
@@ -121,12 +122,38 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
             li.setCumulativeDelayedDeliveryQty(cumulativeDelayedDeliveryQty);
             //最早出库日期赋值,最晚出库日期赋值
             List<FullSetRate> dateTimeList = fullSetRateService.querySalesIssueDate(moDeilsIDList);
-            li.setEarliestIssueDate(dateTimeList.get(dateTimeList.size()-1).getDeliveryDate());
-            li.setLatestIssueDate(dateTimeList.get(0).getDeliveryDate());
+            if(dateTimeList.size() !=0){
+                li.setEarliestIssueDate(dateTimeList.get(dateTimeList.size()-1).getDeliveryDate());
+                li.setLatestIssueDate(dateTimeList.get(0).getDeliveryDate());
+            }else{
+                li.setEarliestIssueDate("");
+                li.setLatestIssueDate("");
+            }
+
             //出库率赋值(销售订单累计出库数量/销售订单数量)
+            if(oConvertUtils.isEmpty(li.getCumulativeIssueQuantity())){
+                li.setCumulativeIssueQuantity(BigDecimal.ZERO);
+            }
             BigDecimal deliveryRate = li.getCumulativeIssueQuantity().divide(li.getSalesOrderQuantity(),2,BigDecimal.ROUND_FLOOR);
             li.setDeliveryRate(deliveryRate);
 
+            //设置区间率 =销售出库数量/订单数量
+            if(oConvertUtils.isNotEmpty(fullSetRate.getSection())) {
+
+                Calendar ca = Calendar.getInstance();
+                ca.setTime(sf.parse(li.getDeliveryDate()));
+                ca.add(Calendar.DATE,Integer.parseInt(fullSetRate.getSection()));
+                String time = sf.format(ca.getTime());
+                String num = fullSetRateService.queryIntervalNumber(moDeilsIDList,li.getDeliveryDate(),time);
+                if(oConvertUtils.isEmpty(num)){
+                    num = "0";
+                }
+                BigDecimal intervalDeliveryRate = new BigDecimal(num).divide(li.getSalesOrderQuantity(), 2, BigDecimal.ROUND_HALF_UP);
+                li.setIntervalDeliveryRate(intervalDeliveryRate);
+
+            }else{
+                li.setIntervalDeliveryRate(BigDecimal.ZERO);
+            }
 
             li.setSoIDsID(moDeilsIDList);
 
@@ -137,15 +164,16 @@ public class FullSetRateController extends JeecgController<FullSetRate, IFullSet
             for(FullSetRateList rate :list){
                 //获取最小齐套率且赋值
                 List<FullSetRateSubInfo> setRate = fullSetRateService.queryOMMOmainSubInfo(rate.getMODetailsID());
-                rate.setSetRate(setRate.get(0).getSetRate());
                 if(oConvertUtils.isEmpty(setRate.get(0).getSetRate())){
+                    rate.setSetRate(BigDecimal.ZERO);
                     avg = avg.add(BigDecimal.ZERO);
                 }else {
-                    avg = avg.add(new BigDecimal(setRate.get(0).getSetRate()));
+                    rate.setSetRate(setRate.get(0).getSetRate());
+                    avg = avg.add(setRate.get(0).getSetRate());
                 }
                 i++;
             }
-            BigDecimal rate = avg.divide(new BigDecimal(i),2,BigDecimal.ROUND_HALF_UP);
+            BigDecimal rate = avg.divide(new BigDecimal(i),2,BigDecimal.ROUND_UP);
             li.setFullSetRate(rate.toString());
         }
 

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

@@ -3,6 +3,8 @@ package org.jeecg.modules.report.entity;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  * 齐套率明细字段
  */
@@ -28,7 +30,7 @@ public class FullSetRateList {
     //委外订单数量
     private String subcontractOrderQuantity;
     //齐套率
-    private String setRate;
+    private BigDecimal setRate;
 
     //累计入库数量
     private String cumulativeReceiptQty;

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

@@ -3,6 +3,8 @@ package org.jeecg.modules.report.entity;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  * 齐套率子件信息
  */
@@ -31,5 +33,5 @@ public class FullSetRateSubInfo {
     private String doorframe;
 
     //齐套率
-    private String setRate;
+    private BigDecimal setRate;
 }

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

@@ -35,4 +35,7 @@ public interface FullSetRateMapper extends BaseMapper<FullSetRate> {
     //查询委外子件信息
     public List<FullSetRateSubInfo> queryOMMOmainSubInfo(@Param("mODetailsID") String mODetailsID);
 
+    //查询销售出库单区间数据的数量
+    public String queryIntervalNumber(@Param("isosid") List<String> isodis,@Param("starTime") String starTime,@Param("endTime") String endTime);
+
 }

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

@@ -76,5 +76,16 @@ where MoDetailsID = #{mODetailsID} group by cInvCode order by (sum(iSendQTY)/sum
     </select>
 
 
+    <select id="queryIntervalNumber" resultType="String">
+
+        select sum(b.iQuantity) as iQuantity from rdrecord32 a
+        left join rdrecords32 b
+        on a.ID = b.ID
+        where b.iorderdid  in
+        <foreach collection="isosid" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        and a.dDate between #{starTime} and #{endTime}
+    </select>
 
 </mapper>

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

@@ -37,4 +37,7 @@ public interface IFullSetRateService extends IService<FullSetRate> {
 
     //查询委外子件信息
     public List<FullSetRateSubInfo> queryOMMOmainSubInfo(String mODetailsID);
+
+    //查询销售出库单区间数据的数量
+    public String queryIntervalNumber(List<String> isodis,String starTime,String endTime);
 }

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

@@ -60,4 +60,9 @@ public class FullSetRateServiceImpl extends ServiceImpl<FullSetRateMapper, FullS
     public List<FullSetRateSubInfo> queryOMMOmainSubInfo(String mODetailsID) {
         return fullSetRateMapper.queryOMMOmainSubInfo(mODetailsID);
     }
+
+    @Override
+    public String queryIntervalNumber(List<String> isodis, String starTime, String endTime) {
+        return fullSetRateMapper.queryIntervalNumber(isodis, starTime, endTime);
+    }
 }