Quellcode durchsuchen

工作台统计因子-单位计算

lengfaqiang vor 2 Jahren
Ursprung
Commit
422f4461b7

+ 4 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -375,16 +375,16 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
     List<LogisticsOrderStatisticsVO> workbenchLogisticsOrderStatisticsByMonth(@Param("id") Long id, @Param("statusList") List<Integer> statusList,
                                                                               @Param("type") Integer type, @Param("dateStart") String dateStart,
                                                                               @Param("dateEnd") String dateEnd,
-                                                                              @Param("totalAmount") String totalAmount,
-                                                                              @Param("totalPrice") String totalPrice
+                                                                              @Param("typeOne") String typeOne,
+                                                                              @Param("typeTwo") String typeTwo
     );
 
 
     List<LogisticsOrderStatisticsVO> workbenchLogisticsOrderStatisticsByDays(@Param("id") Long id, @Param("statusList") List<Integer> statusList,
                                                                              @Param("type") Integer type, @Param("dateStart") String dateStart,
                                                                              @Param("dateEnd") String dateEnd,
-                                                                             @Param("totalAmount") String totalAmount,
-                                                                             @Param("totalPrice") String totalPrice
+                                                                             @Param("typeOne") String typeOne,
+                                                                             @Param("typeTwo") String typeTwo
     );
 
     List<com.sckw.transport.model.dto.LogisticsOrderDTO> selectOrderListByTradeOrderIds(@Param("tradeOrderIds") List<Long> tradeOrderIds, @Param("unitType") String unitType);

+ 6 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderStatisticsParam.java

@@ -24,15 +24,15 @@ public class LogisticsOrderStatisticsParam {
      * 统计因子 1,2,3,4,5,6
      */
     @NotBlank(message = "统计因子")
-    @JsonProperty("totalAmount")
-    @SerializedName("totalAmount")
-    private String totalAmount;
+    @JsonProperty("typeOne")
+    @SerializedName("typeOne")
+    private String typeOne;
 
     /**
      * 统计因子 1,2,3,4,5,6
      */
     @NotBlank(message = "统计因子")
-    @JsonProperty("totalPrice")
-    @SerializedName("totalPrice")
-    private String totalPrice;
+    @JsonProperty("typeTwo")
+    @SerializedName("typeTwo")
+    private String typeTwo;
 }

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderStatisticsVO.java

@@ -22,9 +22,9 @@ public class LogisticsOrderStatisticsVO {
     /**
      * 统计量
      */
-    private BigDecimal totalAmount;
+    private BigDecimal typeOne;
     /**
      * 统计金额
      */
-    private BigDecimal totalPrice;
+    private BigDecimal typeTwo;
 }

+ 43 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -70,6 +70,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.time.LocalDate;
@@ -108,6 +109,9 @@ public class AcceptCarriageOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
     PaymentDubboService paymentDubboService;
 
+    @Autowired
+    TransportCommonService transportCommonService;
+
     @Autowired
     private MessageUrlConfig messageUrlConfig;
 
@@ -1470,6 +1474,17 @@ public class AcceptCarriageOrderService {
                 log.info("承运订单-分包托运-手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
                 throw new BusinessException("单据完结出现错误!" + httpResult.getMsg());
             }
+            /**将生成的分配量->贸易订单*/
+            CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
+            param.setTOrderId(Long.valueOf(logisticsOrder.getTOrderId()));
+            param.setEntrustAmount(orderFinishDTO.getLoadAmount().subtract(logisticsOrder.getAmount()));
+            param.setUpdateBy(LoginUserHolder.getUserId());
+            param.setUpdateByName(LoginUserHolder.getUserName());
+            HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
+            if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
+                log.info("{}拒绝接单->贸易订单失败!,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
+                throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 拒绝接单->贸易订单失败!");
+            }
         }
 
         //修改合同履约量
@@ -1508,6 +1523,8 @@ public class AcceptCarriageOrderService {
 //                }
 //            }
 //        }
+        transportCommonService.closeHandle(logisticsOrder.getId());
+        waybillOrderService.cancelSendCar(logisticsOrder.getId());
         return HttpResult.ok("承运订单-分包托运完结订单成功");
     }
 
@@ -2898,10 +2915,19 @@ public class AcceptCarriageOrderService {
             String dateEnd = cn.hutool.core.date.DateUtil.format(dateTime, DEF_DATE_FORMAT);
 
             List<LogisticsOrderStatisticsVO> list = logisticsOrderMapper.workbenchLogisticsOrderStatisticsByMonth(id, statusList,
-                    OrderTypeEnum.ACCEPT_CARRIAGE_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTotalAmount(), logisticsOrderStatistics.getTotalPrice());
-            list.forEach(vo -> {
-                vo.setTotalPrice(vo.getTotalPrice().divide(new BigDecimal("10000.00")));
-            });
+                    OrderTypeEnum.ACCEPT_CARRIAGE_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTypeOne(), logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
             return HttpResult.ok(list);
         } else if (String.valueOf(NumberConstant.ONE).equals(logisticsOrderStatistics.getDateType())) {
             //开始时间
@@ -2915,10 +2941,19 @@ public class AcceptCarriageOrderService {
             //结束时间
             String dateEnd = DateUtil.getLastWeekDateEndToString(0);
             List<LogisticsOrderStatisticsVO> list = logisticsOrderMapper.workbenchLogisticsOrderStatisticsByDays(id, statusList,
-                    OrderTypeEnum.ACCEPT_CARRIAGE_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTotalAmount(), logisticsOrderStatistics.getTotalPrice());
-            list.forEach(vo -> {
-                vo.setTotalPrice(vo.getTotalPrice().divide(new BigDecimal("10000.00")));
-            });
+                    OrderTypeEnum.ACCEPT_CARRIAGE_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTypeOne(), logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
             return HttpResult.ok(list);
         }
         return null;

+ 27 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -66,6 +66,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.time.LocalDate;
@@ -2205,10 +2206,19 @@ public class ConsignOrderService {
             String dateEnd = cn.hutool.core.date.DateUtil.format(dateTime, DEF_DATE_FORMAT);
 
             List<LogisticsOrderStatisticsVO> list = kwtLogisticsOrderMapper.workbenchLogisticsOrderStatisticsByMonth(id, statusList,
-                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTotalAmount(),logisticsOrderStatistics.getTotalPrice());
-            list.forEach(vo -> {
-                vo.setTotalPrice(vo.getTotalPrice().divide(new BigDecimal("10000.00")));
-            });
+                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTypeOne(),logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
             return HttpResult.ok(list);
         } else if (String.valueOf(NumberConstant.ONE).equals(logisticsOrderStatistics.getDateType())) {
             //开始时间
@@ -2222,10 +2232,19 @@ public class ConsignOrderService {
             //结束时间
             String dateEnd = DateUtil.getLastWeekDateEndToString(0);
             List<LogisticsOrderStatisticsVO> list = kwtLogisticsOrderMapper.workbenchLogisticsOrderStatisticsByDays(id, statusList,
-                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTotalAmount(),logisticsOrderStatistics.getTotalPrice());
-            list.forEach(vo -> {
-                vo.setTotalPrice(vo.getTotalPrice().divide(new BigDecimal("10000.00")));
-            });
+                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTypeOne(),logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+                list.forEach(vo -> {
+                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
+                });
+            }
             return HttpResult.ok(list);
         }
         return null;

+ 20 - 10
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -1986,7 +1986,7 @@
     </select>
 
     <select id="workbenchLogisticsOrderStatisticsByMonth" resultType="com.sckw.transport.model.vo.LogisticsOrderStatisticsVO">
-        SELECT  A.date_time as dateTime, COALESCE(B.num, 0) as num,IFNULL(B.totalAmount,0) AS totalAmount , IFNULL(B.totalPrice,0) AS totalPrice FROM
+        SELECT  A.date_time as dateTime, COALESCE(B.num, 0) as num,IFNULL(B.typeOne,0) AS typeOne , IFNULL(B.typeTwo,0) AS typeTwo FROM
         (
         SELECT
         DATE_FORMAT( DATE_ADD( #{dateStart}, INTERVAL ROW1 MONTH ), '%Y-%m' ) date_time
@@ -2009,12 +2009,16 @@
         LEFT JOIN
         (
         SELECT DATE_FORMAT(a.create_time, '%Y-%m') date_time, COUNT(*) num,
-        CASE WHEN #{totalAmount} = 1 THEN
+        CASE WHEN #{typeOne} = 1 THEN
         sum( a.amount )
-        ELSE 0 end AS totalAmount,
-        CASE WHEN #{totalPrice} = 2 THEN
+        WHEN #{typeOne} = 2 THEN
         sum(a.amount * IFNULL( a.price, 0 ))
-        ELSE 0	end AS totalPrice
+        ELSE 0 end AS typeOne,
+        CASE WHEN #{typeTwo} = 2 THEN
+        sum(a.amount * IFNULL( a.price, 0 ))
+        CASE WHEN #{typeTwo} = 1 THEN
+        sum( a.amount )
+        ELSE 0	end AS typeTwo
         FROM kwt_logistics_order a LEFT JOIN  kwt_logistics_order_unit b ON a.id = b.l_order_id
         WHERE a.del_flag = 0 AND b.unit_type = #{type}
             <if test="statusList != null and statusList.size() > 0">
@@ -2030,7 +2034,7 @@
 
     <select id="workbenchLogisticsOrderStatisticsByDays"
             resultType="com.sckw.transport.model.vo.LogisticsOrderStatisticsVO">
-        SELECT  A.date as dateTime, COALESCE(B.num, 0) as num,IFNULL(B.totalAmount,0) AS totalAmount , IFNULL(B.totalPrice,0) AS totalPrice FROM
+        SELECT  A.date as dateTime, COALESCE(B.num, 0) as num,IFNULL(B.typeOne,0) AS typeOne , IFNULL(B.typeTwo,0) AS typeTwo FROM
         (
         select date_add(#{dateStart}, interval row1 DAY) date from
         (
@@ -2048,11 +2052,17 @@
         SELECT
         COUNT(*) num,
         CASE
-        WHEN #{totalAmount} = 1 THEN
-        sum( a.amount ) ELSE  0 end AS totalAmount,
+        WHEN #{typeOne} = 1 THEN
+        sum( a.amount )
+        WHEN #{typeOne} = 2 THEN
+        sum(a.amount * IFNULL( a.price, 0 ))
+        ELSE  0 end AS typeOne,
         CASE
-        WHEN #{totalPrice} = 2 THEN
-        sum(a.amount * IFNULL( a.price, 0 )) ELSE 0 end AS totalPrice,
+        WHEN #{typeTwo} = 2 THEN
+        sum(a.amount * IFNULL( a.price, 0 ) )
+        WHEN #{typeTwo} = 1 THEN
+        sum( a.amount )
+        ELSE 0 end AS typeTwo,
         DATE_FORMAT(a.create_time, '%Y-%m-%d') date_time
         FROM kwt_logistics_order a LEFT JOIN  kwt_logistics_order_unit b ON a.id =b.l_order_id
         WHERE a.del_flag = 0 AND b.unit_type = b.unit_type = #{type}