Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

18482106067 2 лет назад
Родитель
Сommit
60873f1bea

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -312,15 +312,16 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-查看撤销原因
+     * 承运订单-查看撤销原因+驳回原因
      *
      * @param id 物流订单
      * @return
      */
     @RequestMapping(value = "/getCancelReason", method = RequestMethod.GET)
-    public HttpResult getCancelReason(@NotBlank(message = "物流订单id不能为空") @RequestParam("id") String id) {
+    public HttpResult getCancelReason(@NotBlank(message = "物流订单id不能为空") @RequestParam("id") String id,
+                                      @NotNull(message = "单据状态不能为空") @RequestParam("status") Integer status) {
         try {
-            return acceptCarriageOrderService.getCancelReason(id);
+            return acceptCarriageOrderService.getCancelReason(id,status);
         } catch (Exception e) {
             log.error("承运订单-查看撤销原因 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 3 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -201,8 +201,9 @@ public class ConsignOrderController {
      * @return
      */
     @RequestMapping(value = "/getRejectReason", method = RequestMethod.GET)
-    public HttpResult getRejectReasonById(@Validated @NotBlank @RequestParam("id") String id) {
-        return consignOrderService.getRejectReasonById(id);
+    public HttpResult getRejectReasonById( @NotBlank @RequestParam("id") String id,
+                                           @NotNull @RequestParam("status") Integer status) {
+        return consignOrderService.getRejectReasonById(id,status);
     }
 
     /**

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

@@ -88,7 +88,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      */
     Long selectLogisticOrderCount(@Param("logisticsOrderParam") LogisticsOrderParam logisticsOrderParam, @Param("dictValue") String dictValue);
 
-    Map<String, String> getRejectReason(@Param("id") String id, @Param("status") String status);
+    Map<String, String> getRejectReason(@Param("id") String id, @Param("status") Integer status);
 
     /**
      * 根据承运订单id查看分包数据列表

+ 3 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -2,6 +2,7 @@ package com.sckw.transport.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.DecimalMin;
 import jakarta.validation.constraints.Digits;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
@@ -28,6 +29,8 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 分配承运量
      */
+    @Digits(integer = 10,fraction = 2,message = "分配承运量填写错误")
+    @DecimalMin(value = "0.00",message = "委托量不能小于{value}")
     private BigDecimal carryingCapacity;
     /**
      * 分配承运量使用的单位

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -67,6 +67,7 @@ public class LogisticsConsignmentParam {
      */
 //    @NotNull(message = "合理损耗不能为空")
 //    @DecimalMin(value = "0.00",message = "必须为大于0的正整数")
+    @Digits(integer = 5, fraction = 2, message = "合理损耗超长")
     private Long loss;
     /**
      * 合理损耗单位
@@ -109,7 +110,8 @@ public class LogisticsConsignmentParam {
     /**
      * 结算周期(周结、月结、季结)
      */
-    @NotNull(message = "结算周期不能为空")
+//    @NotNull(message = "结算周期不能为空")
+    @Digits(integer = 5, fraction = 0, message = "合理损耗超长")
     private Long settlementCycle;
 
     /**

+ 25 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -159,9 +159,12 @@ public class AcceptCarriageOrderService {
             log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
             throw new RuntimeException("企业信息查询异常");
         }
-//        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
-//            throw new RuntimeException("当前用户企业不具有分包功能权限!");
-//        }
+        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
+            throw new RuntimeException("当前用户企业不具有分包功能权限!");
+        }
+        if (bo.getCarryingCapacity().compareTo(new BigDecimal("0.00")) == 0) {
+            throw new RuntimeException("分配承运量必须填写大于0.00");
+        }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
             BigDecimal amount = bo.getAmount();
@@ -180,6 +183,10 @@ public class AcceptCarriageOrderService {
             order.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
             order.setUnit(bo.getCarryingCapacityUnit());
         }
+        BigDecimal ignoreAmount = logisticsOrder.getIgnoreAmount();
+        if (ignoreAmount.compareTo(new BigDecimal("0.00")) == 0) {
+            throw new RuntimeException("剩余可分配量为0,不可进行分包操作!");
+        }
         String lOrderNo = getLOrderNo();
         Long orderId = new IdWorker(NumberConstant.ONE).nextId();
         /**分包托运需要判断处于哪一级分包托运
@@ -234,6 +241,7 @@ public class AcceptCarriageOrderService {
         insertLogisticsOrderTrack(bo, orderId, orderStatus);
         //修改上级分配量以及可分配量委托量等
         logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(bo.getCarryingCapacity()));
+        logisticsOrder.setIgnoreAmount(logisticsOrder.getIgnoreAmount().subtract(bo.getCarryingCapacity()));
         logisticsOrderMapper.updateById(logisticsOrder);
         //修改父级mongodb数据
         //更新mongodb
@@ -246,6 +254,7 @@ public class AcceptCarriageOrderService {
         lOrder.setUpdateBy(order.getUpdateBy());
         lOrder.setUpdateByName(LoginUserHolder.getUserName());
         lOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(bo.getCarryingCapacity()));
+        lOrder.setIgnoreAmount(logisticsOrder.getIgnoreAmount().subtract(bo.getCarryingCapacity()));
         //rabbitMq业务汇总数据发送/消费对象
         SckwBusSum busSum = new SckwBusSum();
         //业务汇总类型
@@ -567,7 +576,7 @@ public class AcceptCarriageOrderService {
         order.setSubcontractAmount(decimal);
         order.setLoadAmount(decimal);
         order.setUnloadAmount(decimal);
-        order.setIgnoreAmount(decimal);
+        order.setIgnoreAmount(bo.getCarryingCapacity());
         order.setDeficitPrice(decimal);
         order.setDeficitAmount(decimal);
         order.setBindStatus(String.valueOf(NumberConstant.ZERO));
@@ -937,7 +946,7 @@ public class AcceptCarriageOrderService {
     public HttpResult stopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO) {
         List<String> stringList = StringUtils.splitStrToList(stopOrderTakingDTO.getIds(), ",", String.class);
         List<Long> circulateIds = logisticsOrderCirculateMapper.selectEntityBylOrderIdAndOrderIds(stopOrderTakingDTO.getLOrderId(), stringList);
-        if (CollectionUtils.isEmpty(circulateIds)){
+        if (CollectionUtils.isEmpty(circulateIds)) {
             return HttpResult.error("循环停止接单,单据不存在!");
         }
         List<JSONObject> list = new ArrayList<>(stringList.size());
@@ -1432,14 +1441,19 @@ public class AcceptCarriageOrderService {
     /**
      * 承运订单-获取撤销驳回原因
      *
-     * @param id 物流订单id
+     * @param id     物流订单id
+     * @param status 物流订单状态
      * @return
      */
-    public HttpResult getCancelReason(String id) {
-        KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
-                .eq(KwtLogisticsOrderTrack::getLOrderId, Long.parseLong(id))
-                .eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.SEND_BACK.getCode()));
-        return HttpResult.ok(track == null ? null : track.getRemark());
+    public HttpResult getCancelReason(String id, Integer status) {
+        Map<String, String> map = logisticsOrderMapper.getRejectReason(id, status);
+        return HttpResult.ok(map);
+//        KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+//                .eq(KwtLogisticsOrderTrack::getLOrderId, Long.parseLong(id))
+//                /**.eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.SEND_BACK.getCode())*/
+//                .eq(KwtLogisticsOrderTrack::getStatus,status)
+//        );
+//        return HttpResult.ok(track == null ? null : track.getRemark());
     }
 
     /**

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

@@ -713,8 +713,8 @@ public class ConsignOrderService {
      * @param id
      * @return
      */
-    public HttpResult getRejectReasonById(String id) {
-        Map<String, String> map = kwtLogisticsOrderMapper.getRejectReason(id, LogisticsOrderEnum.SEND_BACK.getStatus());
+    public HttpResult getRejectReasonById(String id,Integer status) {
+        Map<String, String> map = kwtLogisticsOrderMapper.getRejectReason(id, status);
         return HttpResult.ok(map);
     }
 

+ 7 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -161,6 +161,10 @@ public class LogisticsConsignmentService {
         if (!bo.getIsFullDose()) {
             BigDecimal amount = bo.getAmount();
             BigDecimal carryingCapacity = bo.getCarryingCapacity();
+            if (bo.getCarryingCapacity().compareTo(new BigDecimal("0.00")) == 0){
+                log.error("可分配量分配错误:{}", bo.getTOrderId());
+                throw new BusinessException("可分配量分配必须填写大于0");
+            }
             if (amount.compareTo(carryingCapacity) < 0) {
                 log.error("可分配量分配错误:{}", bo.getTOrderId());
                 throw new BusinessException("可分配量分配错误");
@@ -438,7 +442,7 @@ public class LogisticsConsignmentService {
 //        order.setAmount(tradeOrder.getAmount());
         order.setBillingMode(bo.getBillingMode());
         order.setUnit(bo.getCarryingCapacityUnit());
-        order.setLoss(new BigDecimal(bo.getLoss()));
+        order.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
 //        order.setLossUnit(bo.getLossUnit());
         order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
@@ -719,6 +723,8 @@ public class LogisticsConsignmentService {
         List<LogisticsOrderDTO> returnList = new ArrayList<>();
         for (String id : stringList) {
             OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
+            log.info("贸易订单数据:{}",JSONObject.toJSONString(orderDetailRes));
+            log.info("贸易订单数据类型:{}",orderDetailRes.getPickupType());
             /**
              * 0销售展示是供应配送  1采购展示是采购自提
              * 根据提货方式(0供应配送/1采购自提)