Browse Source

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

xucaiqin 2 years ago
parent
commit
664524453f
16 changed files with 161 additions and 36 deletions
  1. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  3. 13 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  4. 2 2
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/constant/RedisConstant.java
  5. 6 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwSms.java
  6. 1 1
      sckw-modules-api/sckw-message-api/src/main/java/com/sckw/message/api/dubbo/SmsInfoService.java
  7. 2 1
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/MessageApiController.java
  8. 2 2
      sckw-modules/sckw-message/src/main/java/com/sckw/message/dubbo/SmsInfoServiceImpl.java
  9. 2 0
      sckw-modules/sckw-message/src/main/java/com/sckw/message/model/vo/req/SendSmsVerifyCoderReqVO.java
  10. 8 6
      sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SckwSmsHandlerService.java
  11. 14 10
      sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java
  12. 21 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  13. 74 11
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  14. 4 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  15. 4 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  16. 4 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -15,6 +15,9 @@ import java.util.List;
 @Getter
 @AllArgsConstructor
 public enum DictEnum {
+    SMS_REGISTER("send_sms_type", "register", "短信注册"),
+    SMS_LOGIN("send_sms_type", "login", "短信登录"),
+    SMS_UPDATE_PASSWORD("send_sms_type", "updatePassword", "短信修改密码"),
     PRICE_TYPE_0("price_type", "0", "元/吨"),
     PRICE_TYPE_1("price_type", "1", "元/车"),
     WEIGHT_CAR_0("weight_car", "0", "吨/车"),

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java

@@ -11,6 +11,7 @@ import lombok.Getter;
 @Getter
 @AllArgsConstructor
 public enum DictTypeEnum {
+    SEND_SMS_TYPE("send_sms_type", "发送短信类型"),
     INTEGRAL_TYPE("integral_type", "积分类型"),
     UNIT_TYPE("unit_type", "商品单位类型"),
     TAX_RATE("tax_rate", "商品税率"),

+ 13 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -70,6 +70,11 @@ public class SckwLogisticsOrder {
      */
     private Long settlementCycle;
 
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    private String settlementCycleLabel;
+
     /**
      * 运价
      */
@@ -194,6 +199,10 @@ public class SckwLogisticsOrder {
      * 业务状态
      */
     private String status;
+    /**
+     * 业务状态 label
+     */
+    private String statusLabel;
 
     /**
      * 企业id
@@ -425,4 +434,8 @@ public class SckwLogisticsOrder {
      * 计费方式
      */
     private String billingMode;
+    /**
+     * 计费方式
+     */
+    private String billingModeLabel;
 }

+ 2 - 2
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/constant/RedisConstant.java

@@ -10,11 +10,11 @@ public class RedisConstant {
     /**
      * 短信验证码值key
      */
-    public static final String MESSAGE_SMS_VERIFY_CODE_VALUE_KEY = "sckw:sms:verifyCode:value:%s";
+    public static final String MESSAGE_SMS_VERIFY_CODE_VALUE_KEY = "sckw:sms:verifyCode:value:%s:%s";
     /**
      * 短信验证码请求key
      */
-    public static final String MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY = "sckw:sms:verifyCode:request:%s";
+    public static final String MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY = "sckw:sms:verifyCode:request:%s:%s";
     /**
      * 短信验证码有效时间(秒)
      */

+ 6 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwSms.java

@@ -3,8 +3,8 @@ package com.sckw.stream.model;
 import com.sckw.stream.enums.SmsCodeEnum;
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
+
 import java.util.Map;
 
 /**
@@ -31,6 +31,11 @@ public class SckwSms {
      */
     private String phone;
 
+    /**
+     * 短信类型
+     */
+    private String type;
+
     /**
      * 手机号集合(腾讯短信)
      */

+ 1 - 1
sckw-modules-api/sckw-message-api/src/main/java/com/sckw/message/api/dubbo/SmsInfoService.java

@@ -13,6 +13,6 @@ public interface SmsInfoService {
      * @Param phone:
      * @return: java.lang.String
      */
-    String getVerifyCode(String phone);
+    String getVerifyCode(String type, String phone);
 
 }

+ 2 - 1
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/MessageApiController.java

@@ -1,5 +1,6 @@
 package com.sckw.example.controller;
 
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.message.api.dubbo.SmsInfoService;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
@@ -27,7 +28,7 @@ public class MessageApiController {
 
     @GetMapping("/getVerifyCode")
     public HttpResult getVerifyCode() {
-        String verifyCode = smsInfoService.getVerifyCode("17780832879");
+        String verifyCode = smsInfoService.getVerifyCode(DictEnum.SMS_REGISTER.getValue(),"17780832879");
         return HttpResult.ok("获取验证码成功", verifyCode);
     }
 

+ 2 - 2
sckw-modules/sckw-message/src/main/java/com/sckw/message/dubbo/SmsInfoServiceImpl.java

@@ -13,8 +13,8 @@ import org.apache.dubbo.config.annotation.DubboService;
 @DubboService(group = "design", version = "2.0.0")
 public class SmsInfoServiceImpl implements SmsInfoService {
     @Override
-    public String getVerifyCode(String phone) {
-        String key = String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, phone);
+    public String getVerifyCode(String type, String phone) {
+        String key = String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, type, phone);
         return RedissonUtils.getString(key);
     }
 }

+ 2 - 0
sckw-modules/sckw-message/src/main/java/com/sckw/message/model/vo/req/SendSmsVerifyCoderReqVO.java

@@ -21,4 +21,6 @@ public class SendSmsVerifyCoderReqVO {
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法的手机号")
     private String phone;
 
+    @NotBlank(message = "短信类型不能为空")
+    private String type;
 }

+ 8 - 6
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SckwSmsHandlerService.java

@@ -32,16 +32,18 @@ public class SckwSmsHandlerService {
      */
     public void handler(SckwSms sckwSms) {
         log.info("接收到发送短信消息:{},开始处理", JSON.toJSONString(sckwSms));
-        String requestKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY, sckwSms.getPhone());
+        String type = sckwSms.getType();
+        String phone = sckwSms.getPhone();
+        String requestKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY,type,phone);
         if (Boolean.FALSE.equals(RedissonUtils.tryLock(requestKey, 10L, RedisConstant.SMS_VERIFY_CODE_VALID_TIME))) {
             log.info("重复发送短信消息,不处理");
             return;
         }
-        String valueKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, sckwSms.getPhone());
-        //发送短信
-        RedissonUtils.putString(valueKey, String.valueOf(sckwSms.getParams().get("code")), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
+        String valueKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, type,phone);
         //发送短信
         SmsUtil.sendSms(sckwSms.getPhone(), sckwSms.getSignName(), sckwSms.getTemplateCode().getName(), JSON.toJSONString(sckwSms.getParams()));
+        //放入缓存
+        RedissonUtils.putString(valueKey, String.valueOf(sckwSms.getParams().get("code")), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
         //数据入库
         SmsCodeEnum smsCodeEnum = sckwSms.getTemplateCode();
         KwmSms kwmSms = KwmSms.builder().type(smsCodeEnum.getType()).code(smsCodeEnum.getName())
@@ -52,7 +54,7 @@ public class SckwSmsHandlerService {
         kwmSmsService.add(kwmSms);
     }
 
-    private String getKey(String prefix, String args) {
-        return String.format(prefix, args);
+    private String getKey(String prefix, String args1, String args2) {
+        return String.format(prefix, args1, args2);
     }
 }

+ 14 - 10
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java

@@ -1,6 +1,8 @@
 package com.sckw.message.service;
 
 import com.alibaba.fastjson2.JSON;
+import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.utils.NumberUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author: yzc
@@ -37,23 +40,24 @@ public class SmsService {
      * @date: 2023-06-13 13:43
      */
     public void sendVerifyCode(SendSmsVerifyCoderReqVO param) {
+        String type = param.getType();
+        if (Objects.isNull(DictEnum.getLabel(DictTypeEnum.SEND_SMS_TYPE.getType(), type))) {
+            throw new BusinessException("非法短信类型!");
+        }
         String phone = param.getPhone();
-        // 防重攻击
-        String messageSmsVerifyCodeKey = getMessageSmsVerifyCodeKey(phone);
+        String messageSmsVerifyCodeKey = getMessageSmsVerifyCodeKey(type, phone);
         if (Boolean.TRUE.equals(RedissonUtils.exists(messageSmsVerifyCodeKey))) {
-            throw new BusinessException("请勿频繁获取短信验证码");
+            throw new BusinessException("请勿频繁获取短信验证码");
         }
-        SckwSms sckwSms = new SckwSms();
-        sckwSms.setPhone(param.getPhone());
-        sckwSms.setTemplateCode(SmsCodeEnum.VERIFICATION_CODE);
         Map<String, Object> params = new HashMap<>();
         params.put("code", NumberUtils.createRandomVcode());
-        sckwSms.setParams(params);
-        sckwSms.setCreateBy(LoginUserHolder.getUserId());
+        SckwSms sckwSms = new SckwSms();
+        sckwSms.setPhone(param.getPhone()).setType(type).setTemplateCode(SmsCodeEnum.VERIFICATION_CODE)
+                .setParams(params).setCreateBy(LoginUserHolder.getUserId());
         streamBridge.send("sckw-sms", JSON.toJSONString(sckwSms));
     }
 
-    private String getMessageSmsVerifyCodeKey(String phone) {
-        return String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, phone);
+    private String getMessageSmsVerifyCodeKey(String type, String phone) {
+        return String.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, type, phone);
     }
 }

+ 21 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -27,6 +27,7 @@ import java.util.List;
  * @date 2023/7/10 0010
  */
 @Slf4j
+@Validated
 @AllArgsConstructor
 @RestController
 @RequestMapping("/kwTransport")
@@ -231,4 +232,24 @@ public class KwTransportController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * 托运合同-根据合同id获取托运订单列表
+     *
+     * @param contractId 合同id
+     * @param page  当前页
+     * @param pageSize  每页条数
+     * @return
+     */
+    @RequestMapping(value = "/getLogisticsOrderContract", method = RequestMethod.GET)
+    public HttpResult getLogisticsOrderContract(@RequestParam("contractId") @NotBlank(message = "合同id不能为空") String contractId,
+                                                @RequestParam("page") @NotBlank(message = "分页不能为空") int page,
+                                                @RequestParam("pageSize") @NotBlank(message = "分页条数不能为空") int pageSize) {
+        try {
+            return transportService.getLogisticsOrderByContractId(contractId, page, pageSize);
+        } catch (Exception e) {
+            log.error("托运合同-根据合同id获取托运订单列表 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 }

+ 74 - 11
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,7 +1,9 @@
 package com.sckw.report.service;
 
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.CarWaybillEnum;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
@@ -16,6 +18,8 @@ import com.sckw.report.dao.SckwLogisticsOrderRepository;
 import com.sckw.report.service.param.WaybillOrderQuery;
 import com.sckw.report.service.vo.CarWaybillVo;
 import com.sckw.report.service.vo.WaybillsCountVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
 import lombok.extern.slf4j.Slf4j;
@@ -33,6 +37,8 @@ import org.springframework.stereotype.Service;
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -54,13 +60,16 @@ public class KwTransportService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     TransportDubboService transportDubboService;
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
     /**
      * @param sourceList 源数据  [1,2,3]
      * @param targetList 目标数据 [1]
      * @Description: 获取targetList中在sourceList中不存在的项
      * @return: List<String>    [2,3]
      */
-    public  List<String> getDiffrentList(List<String> sourceList, List<String> targetList) {
+    public List<String> getDiffrentList(List<String> sourceList, List<String> targetList) {
         return targetList.stream().filter(item -> sourceList.stream().allMatch(each -> !item.equals(each))).collect(Collectors.toList());
     }
 
@@ -83,6 +92,7 @@ public class KwTransportService {
 
     /**
      * 司机端 运单详情页面-【作废】
+     *
      * @param id
      * @param type
      * @return
@@ -164,7 +174,8 @@ public class KwTransportService {
     }
 
     /**
-     *  构造运单关联查询条件
+     * 构造运单关联查询条件
+     *
      * @param query
      * @return
      */
@@ -179,7 +190,7 @@ public class KwTransportService {
 
         if (StringUtils.isNotBlank(query.getStatus())) {
             // TODO 此处需要修改
-            if(query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO))) {
+            if (query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO))) {
                 List<Long> statuses = new ArrayList<>();
                 statuses.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
                 statuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
@@ -227,7 +238,7 @@ public class KwTransportService {
      * @author jc
      * @date 2023/07/21
      */
-    public HttpResult getWayBillStatistics(WaybillOrderQuery query){
+    public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
         Criteria criteria = buildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
@@ -262,7 +273,7 @@ public class KwTransportService {
                 for (TableTops result : results) {
                     if (StringUtils.isNotEmpty(result.getValue())
                             && String.valueOf(result.getValue()).equals(String.valueOf(status.getCode()))) {
-                        if(expiredFlag) {
+                        if (expiredFlag) {
                             topExpired.setTotal(topExpired.getTotal() + result.getTotal());
                         } else {
                             top.setTotal(result.getTotal());
@@ -271,7 +282,7 @@ public class KwTransportService {
                     }
                 }
             }
-            if(!expiredFlag) {
+            if (!expiredFlag) {
                 list.add(top);
             }
         }
@@ -290,7 +301,7 @@ public class KwTransportService {
      * @author jc
      * @date 2023/07/21
      */
-    public HttpResult wayBillTotalCount(WaybillOrderQuery query){
+    public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
         // 统计项字段
         Criteria criteria = buildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
@@ -308,6 +319,7 @@ public class KwTransportService {
 
     /**
      * 运单处理运单查询结果
+     *
      * @param list
      * @param returnList
      */
@@ -338,21 +350,22 @@ public class KwTransportService {
             vo.setLoadTime(waybillOrder.getLoadTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getLoadTime()));
             vo.setUnloadTime(waybillOrder.getUnloadTime() == null ?
-                    null :DateUtil.getDateTime(waybillOrder.getUnloadTime()));
+                    null : DateUtil.getDateTime(waybillOrder.getUnloadTime()));
             vo.setCreateTime(waybillOrder.getCreateTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getCreateTime()));
             vo.setUpdateTime(waybillOrder.getUpdateTime() == null ?
-                    null :DateUtil.getDateTime(waybillOrder.getUpdateTime()));
+                    null : DateUtil.getDateTime(waybillOrder.getUpdateTime()));
             vo.setDeficitAmount(waybillOrder.getDeficitAmount() == null ?
-                    null :String.valueOf(waybillOrder.getDeficitAmount()));
+                    null : String.valueOf(waybillOrder.getDeficitAmount()));
             vo.setGoodsPriceUnit(waybillOrder.getGoodsPriceUnit() == null ?
-                    null :String.valueOf(waybillOrder.getGoodsPriceUnit()));
+                    null : String.valueOf(waybillOrder.getGoodsPriceUnit()));
             returnList.add(vo);
         }
     }
 
     /**
      * 承运订单-分包托运列表数据展示
+     *
      * @param lOrderId
      * @param page
      * @param pageSize
@@ -391,4 +404,54 @@ public class KwTransportService {
 //        }
         return null;
     }
+
+    /**
+     * 托运合同-根据合同id获取托运订单列表
+     *
+     * @param contractId 合同id
+     * @param page  当前页
+     * @param pageSize  每页条数
+     * @return
+     */
+    public HttpResult getLogisticsOrderByContractId(String contractId, int page, int pageSize) {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+       if (StringUtils.isBlank(contractId)){
+           return HttpResult.error("合同id为空");
+       }else {
+           criteria.and("contractId").is(contractId);
+       }
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        Query query1 = new Query(criteria);
+        // 12. 总记录数
+        long total = mongoTemplate.count(query1, SckwLogisticsOrder.class);
+        // 10. 分页
+        query1.with(PageRequest.of(page - 1, pageSize, Sort.by(Sort.Order.desc("createTime"))));
+        // 执行查询
+        List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
+        //字典等数据转换
+        //计费方式
+        Map<String, SysDictResDto> chargingType = remoteSystemService.queryDictMapByType(DictTypeEnum.CHARGING_TYPE.getType());
+        //结算周期
+        Map<String, SysDictResDto> settlementCycle = remoteSystemService.queryDictMapByType(DictTypeEnum.SETTLEMENT_CYCLE.getType());
+        for (SckwLogisticsOrder logisticsOrder : list) {
+            Long settlementCycle1 = logisticsOrder.getSettlementCycle();
+            String billingMode = logisticsOrder.getBillingMode();
+            SysDictResDto sysDictResDto = chargingType.get(String.valueOf(settlementCycle1));
+            SysDictResDto sysDictResDto1 = settlementCycle.get(String.valueOf(billingMode));
+            if (Objects.nonNull(sysDictResDto)) {
+                logisticsOrder.setSettlementCycleLabel(sysDictResDto.getLabel());
+            }
+            if (Objects.nonNull(sysDictResDto1)) {
+                logisticsOrder.setBillingModeLabel(sysDictResDto1.getLabel());
+            }
+            logisticsOrder.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrder.getStatus()));
+        }
+        PageResult build = PageResult.build(page, pageSize, total, list);
+        return HttpResult.ok(build);
+    }
 }

+ 4 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -867,7 +867,10 @@ public class AcceptCarriageOrderService {
         KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, id));
         if (logisticsOrder == null) {
-            throw new RuntimeException("采购订单-完结订单-物流单据不存在!");
+            throw new RuntimeException("承运订单-完结订单-物流单据不存在!");
+        }
+        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,实装量不能大于分配量");
         }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))

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

@@ -510,7 +510,10 @@ public class ConsignOrderService {
         KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, id));
         if (logisticsOrder == null) {
-            throw new RuntimeException("采购订单-完结订单-物流单据不存在!");
+            throw new RuntimeException("托运订单-完结订单-物流单据不存在!");
+        }
+        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,实装量不能大于分配量");
         }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -10,6 +10,7 @@ import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
@@ -813,6 +814,9 @@ public class LogisticsConsignmentService {
         if (logisticsOrder == null) {
             throw new RuntimeException("采购订单-完结订单-物流单据不存在!");
         }
+        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,实装量不能大于分配量");
+        }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
                 && !LogisticsOrderEnum.IN_TRANSIT.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {