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

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

zk 2 лет назад
Родитель
Сommit
7497e948c6
32 измененных файлов с 737 добавлено и 323 удалено
  1. 1 1
      pom.xml
  2. 7 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java
  3. 3 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java
  4. 10 8
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dubbo/RemoteContractServiceImpl.java
  5. 1 4
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dubbo/RemoteManageServiceImpl.java
  6. 28 23
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsController.java
  7. 0 4
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementTradeController.java
  8. 32 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/AbsLedger.java
  9. 17 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsOrderService.java
  10. 95 50
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  11. 12 7
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsTrackService.java
  12. 13 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsUnitService.java
  13. 25 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeOrderService.java
  14. 96 38
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  15. 13 6
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeTrackService.java
  16. 13 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeUnitService.java
  17. 0 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java
  18. 11 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java
  19. 49 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java
  20. 7 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeTrackService.java
  21. 19 18
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java
  22. 6 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpWalletRelationService.java
  23. 4 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  24. 2 6
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  25. 0 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java
  26. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  27. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  28. 38 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddressDropListDTO.java
  29. 94 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  30. 132 56
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  31. 4 29
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  32. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

+ 1 - 1
pom.xml

@@ -36,7 +36,7 @@
         <snakeyaml.version>2.0</snakeyaml.version>
         <springdoc.version>2.1.0</springdoc.version>
         <redisson.version>3.21.3</redisson.version>
-        <fastjson.version>2.0.32</fastjson.version>
+        <fastjson.version>2.0.38</fastjson.version>
         <easyexcel.version>3.3.2</easyexcel.version>
         <cglib.version>3.3.0</cglib.version>
         <commons-io.version>2.11.0</commons-io.version>

+ 7 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java

@@ -24,10 +24,16 @@ public class GlobalSystemExceptionHandler {
 
     @ExceptionHandler(value = SystemException.class)
     @ResponseBody
-    public HttpResult handlerRuntimeException(SystemException e) {
+    public HttpResult handlerSystemException(SystemException e) {
         return HttpResult.error(e.getCode(), e.getMessage());
     }
 
+    @ExceptionHandler(value = RuntimeException.class)
+    @ResponseBody
+    public HttpResult handlerRuntimeException(RuntimeException e) {
+        return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+    }
+
     /**
      * BusinessException处理
      *

+ 3 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -36,7 +36,9 @@ public class Global {
     public static final int SHOW = 1;
     public static final int HIDE = 0;
     public static final int MINUS_ONE = -1;
-
+    /*正常/删除*/
+    public static final int DELETED = 1;
+    public static final int UN_DELETED = 0;
     /**是/否*/
     public static final int YES = 1;
     public static final int NO = 0;

+ 10 - 8
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dubbo/RemoteContractServiceImpl.java

@@ -15,12 +15,14 @@ import com.sckw.core.model.enums.SigningWayEnum;
 import com.sckw.core.utils.CollectionUtils;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.util.*;
 
+/**
+ * @author czh
+ * @desc 合同远程接口实现
+ * @date 2023/7/31
+ */
 @DubboService(group = "design", version = "2.0.0")
-@Service
 public class RemoteContractServiceImpl implements RemoteContractService {
 
     @Autowired
@@ -34,7 +36,7 @@ public class RemoteContractServiceImpl implements RemoteContractService {
 
     @Override
     public Map<Long, ContractCommonInfoResDto> queryContractBaseInfo(List<Long> contractIds) {
-        HashMap<Long, ContractCommonInfoResDto> map = new HashMap<>();
+        HashMap<Long, ContractCommonInfoResDto> map = new HashMap<>(4);
         for (Long contractId : contractIds) {
             KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(contractId);
             if (Objects.nonNull(kwcContractLogistics)) {
@@ -67,10 +69,10 @@ public class RemoteContractServiceImpl implements RemoteContractService {
         contractCommonInfoResDto.setContactName(kwcContractLogistics.getName());
         contractCommonInfoResDto.setContractCode(kwcContractLogistics.getContractNo());
         contractCommonInfoResDto.setSigningWay(kwcContractLogistics.getSigningWay());
-        contractCommonInfoResDto.setSigningWayName(SigningWayEnum.getName(kwcContractLogistics.getSigningWay()).getName());
+        contractCommonInfoResDto.setSigningWayName(Objects.requireNonNull(SigningWayEnum.getName(kwcContractLogistics.getSigningWay())).getName());
         contractCommonInfoResDto.setEntInfoList(entList);
         contractCommonInfoResDto.setStatus(kwcContractLogistics.getStatus());
-        contractCommonInfoResDto.setStatusName(ContractStatusEnum.getName(kwcContractLogistics.getStatus()).getName());
+        contractCommonInfoResDto.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(kwcContractLogistics.getStatus())).getName());
         List<KwcContractLogisticsUnit> kwcContractLogisticsUnits = kwcContractLogisticsUnitService.queryByContractId(kwcContractLogistics.getId());
         if (CollectionUtils.isNotEmpty(kwcContractLogisticsUnits)) {
             for (KwcContractLogisticsUnit kwcContractLogisticsUnit : kwcContractLogisticsUnits) {
@@ -91,10 +93,10 @@ public class RemoteContractServiceImpl implements RemoteContractService {
         contractCommonInfoResDto.setContactName(kwcContractTrade.getName());
         contractCommonInfoResDto.setContractCode(kwcContractTrade.getContractNo());
         contractCommonInfoResDto.setSigningWay(kwcContractTrade.getSigningWay());
-        contractCommonInfoResDto.setSigningWayName(SigningWayEnum.getName(kwcContractTrade.getSigningWay()).getName());
+        contractCommonInfoResDto.setSigningWayName(Objects.requireNonNull(SigningWayEnum.getName(kwcContractTrade.getSigningWay())).getName());
         contractCommonInfoResDto.setEntInfoList(entList);
         contractCommonInfoResDto.setStatus(kwcContractTrade.getStatus());
-        contractCommonInfoResDto.setStatusName(ContractStatusEnum.getName(kwcContractTrade.getStatus()).getName());
+        contractCommonInfoResDto.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(kwcContractTrade.getStatus())).getName());
         List<KwcContractLogisticsUnit> kwcContractLogisticsUnits = kwcContractLogisticsUnitService.queryByContractId(kwcContractTrade.getId());
         if (CollectionUtils.isNotEmpty(kwcContractLogisticsUnits)) {
             for (KwcContractLogisticsUnit kwcContractLogisticsUnit : kwcContractLogisticsUnits) {

+ 1 - 4
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dubbo/RemoteManageServiceImpl.java

@@ -10,8 +10,6 @@ import com.sckw.manage.dao.KwmAddressMapper;
 import com.sckw.manage.model.entity.KwmAddress;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -23,7 +21,6 @@ import java.util.stream.Collectors;
  * @date 2023/7/31
  */
 @DubboService(group = "design", version = "2.0.0")
-@Service
 public class RemoteManageServiceImpl implements RemoteManageService {
 
     @Autowired
@@ -38,7 +35,7 @@ public class RemoteManageServiceImpl implements RemoteManageService {
      */
     @Override
     public Map<Long, List<EntAddressResDto>> queryEntAddressByEntIdList(List<Long> idList) {
-        Map<Long, List<EntAddressResDto>> map = new HashMap<>();
+        Map<Long, List<EntAddressResDto>> map = new HashMap<>(4);
         LambdaQueryWrapper<KwmAddress> kwmAddressLambdaQueryWrapper = new LambdaQueryWrapper<>();
         kwmAddressLambdaQueryWrapper.in(KwmAddress::getEntId, idList).
                                      eq(KwmAddress::getDelFlag, Global.NO);

+ 28 - 23
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsController.java

@@ -11,8 +11,10 @@ import com.sckw.payment.service.KwpLedgerLogisticsService;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -23,6 +25,7 @@ import java.util.stream.Collectors;
  *
  * @author xucaiqin
  */
+@Validated
 @RestController
 @RequestMapping("/kwpLedgerLogistics")
 public class KwpLedgerLogisticsController {
@@ -32,7 +35,7 @@ public class KwpLedgerLogisticsController {
     /**
      * 物流对账单-发起对账(保存草稿)(承运方)
      *
-     * @param logisticsReq
+     * @param logisticsReq 保存物流对账单参数
      * @return
      */
     @PostMapping("sendDraft")
@@ -43,7 +46,7 @@ public class KwpLedgerLogisticsController {
     /**
      * 物流对账单-发起对账(承运方)
      *
-     * @param logisticsReq
+     * @param logisticsReq 保存物流对账单参数
      * @return
      */
     @PostMapping("send")
@@ -54,7 +57,7 @@ public class KwpLedgerLogisticsController {
     /**
      * 托运方物流对账单列表查询
      *
-     * @param logisticsReq
+     * @param logisticsReq 物流订单查询参数
      * @return
      */
     @PostMapping("shipperList")
@@ -65,7 +68,7 @@ public class KwpLedgerLogisticsController {
     /**
      * 承运方物流对账单列表查询(物流公司、收钱方)
      *
-     * @param logisticsReq
+     * @param logisticsReq 物流订单查询参数
      * @return
      */
     @PostMapping("carrierList")
@@ -76,40 +79,41 @@ public class KwpLedgerLogisticsController {
     /**
      * 承运方-查询物流对账单详情
      *
-     * @param id
-     * @return
+     * @param id 物流对账单id
+     * @return 物流对账单详情
      */
     @GetMapping("queryCarrierDetail")
-    public HttpResult queryCarrierDetail(@RequestParam("id") String id) {
+    public HttpResult queryCarrierDetail(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.queryDetail(Long.valueOf(id), LogisticsUnitType.SHIPPER));
     }
 
     /**
      * 托运方-查询物流对账单详情
      *
-     * @param id
-     * @return
+     * @param id 物流对账单id
+     * @return 物流对账单详情
      */
     @GetMapping("queryShipperDetail")
-    public HttpResult queryDetail(@RequestParam("id") String id) {
+    public HttpResult queryDetail(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.queryDetail(Long.valueOf(id), LogisticsUnitType.CARRIER));
     }
 
     /**
      * 修改物流对账单详情(修改物流对账单接口使用) 仅发起对账方支持修改
      *
-     * @param id
-     * @return
+     * @param id 物流对账单id
+     * @return 物流对账单详情
      */
     @GetMapping("queryUpdate")
-    public HttpResult queryUpdate(@RequestParam("id") String id) {
+    public HttpResult queryUpdate(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.queryUpdate(Long.valueOf(id)));
     }
 
     /**
      * 托运方
      *
-     * @return
+     * @param logisticsReq 物流订单查询参数
+     * @return 物流对账单统计数据
      */
     @PostMapping("shipperCount")
     public HttpResult shipperCount(@RequestBody @Valid LogisticsReq logisticsReq) {
@@ -119,7 +123,8 @@ public class KwpLedgerLogisticsController {
     /**
      * 承运方
      *
-     * @return
+     * @param logisticsReq 物流订单查询参数
+     * @return 物流对账单统计数据
      */
     @PostMapping("carrierCount")
     public HttpResult carrierCount(@RequestBody @Valid LogisticsReq logisticsReq) {
@@ -130,22 +135,22 @@ public class KwpLedgerLogisticsController {
      * 删除对账单
      * 释放关联的订单(只有删除操作才释放订单)
      *
-     * @param id
+     * @param id 物流对账单id
      * @return
      */
     @DeleteMapping("delete")
-    public HttpResult delete(@RequestParam("id") String id) {
+    public HttpResult delete(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.remove(Long.valueOf(id)));
     }
 
     /**
      * 物流对账单-撤回对账
      *
-     * @param id
+     * @param id 物流对账单id
      * @return
      */
     @PostMapping("back")
-    public HttpResult back(@RequestParam("id") String id) {
+    public HttpResult back(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.backOrder(Long.valueOf(id)));
     }
 
@@ -163,18 +168,18 @@ public class KwpLedgerLogisticsController {
     /**
      * 物流对账单-驳回查询
      *
-     * @param id
+     * @param id 物流对账单id
      * @return
      */
     @GetMapping("queryBack")
-    public HttpResult queryBack(@RequestParam("id") String id) {
+    public HttpResult queryBack(@RequestParam("id") @NotBlank(message = "物流对账单id不能为空") String id) {
         return HttpResult.ok(kwpLedgerLogisticsService.queryBack(Long.valueOf(id)));
     }
 
     /**
      * 物流对账单-驳回
      *
-     * @param ledgerReq
+     * @param ledgerReq 驳回参数
      * @return
      */
     @PostMapping("doBack")
@@ -188,7 +193,7 @@ public class KwpLedgerLogisticsController {
      * 生成结算单
      * </p>
      *
-     * @param ledgerReq
+     * @param ledgerReq 对账完成参数
      * @return
      */
     @PostMapping("success")

+ 0 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementTradeController.java

@@ -85,10 +85,6 @@ public class KwpSettlementTradeController {
         return this.export(response, list);
     }
 
-    @GetMapping(name = "收款-销售结算订单详情", path = "detailCollection")
-    public HttpResult detailCollection(@RequestParam("id") Long id) {
-        return HttpResult.ok(kwpSettlementTradeService.detailCollection(id));
-    }
 
 
     //   ========= 付款 采购 =========

+ 32 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/AbsLedger.java

@@ -12,18 +12,33 @@ import java.util.Objects;
  * @date 2023-07-13 15:40:37
  */
 public abstract class AbsLedger {
+    /**
+     * 订单校验
+     *
+     * @param order 订单数据
+     */
     public void orderCheck(Object order) {
         if (Objects.isNull(order)) {
             throw new BusinessException("对账单不存在!");
         }
     }
 
+    /**
+     * 驳回查询校验
+     *
+     * @param status 订单状态
+     */
     public void backQueryCheck(Integer status) {
         if (Objects.nonNull(status) && LedgerEnum.BACK.getStatus() != status) {
             throw new BusinessException("只有【已退回】的单据才支持驳回查询!");
         }
     }
 
+    /**
+     * 更新对账单校验
+     *
+     * @param status 订单状态
+     */
     public void updateCheck(Integer status) {
         List<Integer> objects = Lists.newArrayList(LedgerEnum.SAVE.getStatus(), LedgerEnum.BACK.getStatus(), LedgerEnum.REVOCATION.getStatus());
         if (Objects.nonNull(status) && !objects.contains(status)) {
@@ -31,18 +46,33 @@ public abstract class AbsLedger {
         }
     }
 
+    /**
+     * 驳回对账单校验
+     *
+     * @param status 订单状态
+     */
     public void backCheck(Integer status) {
         if (Objects.nonNull(status) && LedgerEnum.TO_LEDGER.getStatus() != status) {
             throw new BusinessException("只有【待对账】的单据才支持对账驳回!");
         }
     }
 
+    /**
+     * 对账确认校验
+     *
+     * @param status 订单状态
+     */
     public void confirmCheck(Integer status) {
         if (Objects.nonNull(status) && LedgerEnum.TO_LEDGER.getStatus() != status) {
             throw new BusinessException("只有【待对账】的单据才支持对账确认!");
         }
     }
 
+    /**
+     * 对账删除校验
+     *
+     * @param status 订单状态
+     */
     public void deleteCheck(Integer status) {
         List<Integer> objects = Lists.newArrayList(LedgerEnum.BACK.getStatus(), LedgerEnum.REVOCATION.getStatus());
         if (Objects.nonNull(status) && !objects.contains(status)) {
@@ -53,7 +83,7 @@ public abstract class AbsLedger {
     /**
      * 撤回订单校验
      *
-     * @param status
+     * @param status 订单状态
      */
     public void revokeCheck(Integer status) {
         if (Objects.nonNull(status) && LedgerEnum.TO_LEDGER.getStatus() != status) {
@@ -64,7 +94,7 @@ public abstract class AbsLedger {
     /**
      * 完结订单校验
      *
-     * @param status
+     * @param status 订单状态
      */
     public void successCheck(Integer status) {
         if (Objects.nonNull(status) && LedgerEnum.LEDGERED.getStatus() != status) {

+ 17 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsOrderService.java

@@ -22,6 +22,11 @@ import java.util.List;
 public class KwpLedgerLogisticsOrderService {
     private final KwpLedgerLogisticsOrderMapper logisticsOrderMapper;
 
+    /**
+     * 根据物流订单id删除物流订单
+     *
+     * @param lLedgerId 物流订单id
+     */
     public void remove(Long lLedgerId) {
         KwpLedgerLogisticsOrder logisticsOrder = new KwpLedgerLogisticsOrder();
         logisticsOrder.setDelFlag(1);
@@ -32,12 +37,23 @@ public class KwpLedgerLogisticsOrderService {
         logisticsOrderMapper.update(logisticsOrder, wrapper);
     }
 
+    /**
+     * 保存物流订单
+     *
+     * @param list 物流对账单关联物流订单
+     */
     public void saveList(List<KwpLedgerLogisticsOrder> list) {
         for (KwpLedgerLogisticsOrder logisticsOrder : list) {
             logisticsOrderMapper.insert(logisticsOrder);
         }
     }
 
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
     public List<KwpLedgerLogisticsOrder> queryList(Long id) {
         List<KwpLedgerLogisticsOrder> kwpLedgerLogisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwpLedgerLogisticsOrder>().eq(KwpLedgerLogisticsOrder::getLLedgerId, id).eq(KwpLedgerLogisticsOrder::getDelFlag, 0));
         if (CollectionUtils.isEmpty(kwpLedgerLogisticsOrders)) {
@@ -49,7 +65,7 @@ public class KwpLedgerLogisticsOrderService {
     /**
      * 校验当前物流订单是否已关联其它草稿单
      *
-     * @param ids
+     * @param ids 物流订单id列表
      */
     public void check(List<Long> ids) {
         List<KwpLedgerLogisticsOrder> kwpLedgerLogisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwpLedgerLogisticsOrder>()

+ 95 - 50
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -2,8 +2,10 @@ package com.sckw.payment.service;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.CollectionUtils;
@@ -16,7 +18,11 @@ import com.sckw.payment.model.*;
 import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.LedgerTrackEnum;
 import com.sckw.payment.model.constant.LogisticsUnitType;
-import com.sckw.payment.model.dto.*;
+import com.sckw.payment.model.constant.SettlementEnum;
+import com.sckw.payment.model.dto.ILedger;
+import com.sckw.payment.model.dto.LedgerCarrierDto;
+import com.sckw.payment.model.dto.LedgerLogisticsDto;
+import com.sckw.payment.model.dto.LedgerShipperDto;
 import com.sckw.payment.model.vo.req.*;
 import com.sckw.payment.model.vo.res.LedgerLogisticsDetailVo;
 import com.sckw.system.api.RemoteSystemService;
@@ -29,7 +35,6 @@ import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -135,18 +140,23 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             logisticsReq.setGenerateTime(LocalDateTime.now());
             logisticsReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(logisticsReq);
-            logisticsTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
+            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
         } else {
             removeDraft(Long.parseLong(id));
             logisticsReq.setGenerateTime(LocalDateTime.now());
             logisticsReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(logisticsReq);
-            logisticsTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
+            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
 
         }
         return "保存对账单成功";
     }
 
+    /**
+     * 删除物流对账单相关联的其它数据
+     *
+     * @param id 物流对账单id
+     */
     private void removeDraft(Long id) {
         //删除 kwp_ledger_logistics_order
         logisticsOrderService.remove(id);
@@ -156,6 +166,12 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsUnitService.remove(id);
     }
 
+    /**
+     * 物流对账单保存草稿
+     *
+     * @param logisticsSendReq 物流对账单新增参数
+     * @return
+     */
     private Long saveDraft(LogisticsSendReq logisticsSendReq) {
         KwpLedgerLogistics kwpLedgerLogistics = new KwpLedgerLogistics();
         kwpLedgerLogistics.setId(Objects.isNull(logisticsSendReq.getIdLong()) ? new IdWorker(1).nextId() : logisticsSendReq.getIdLong());
@@ -173,15 +189,16 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setExTaxPrice(logisticsSendReq.getTotalPrice());//todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
         kwpLedgerLogistics.setSettlePrice(logisticsSendReq.getSettlePrice());
         kwpLedgerLogistics.setActualPrice(new BigDecimal("0.0"));
-        kwpLedgerLogistics.setAuditUser("");
-        kwpLedgerLogistics.setAuditPhone("");
+        kwpLedgerLogistics.setAuditUser(Global.EMPTY_STRING);
+        kwpLedgerLogistics.setAuditPhone(Global.EMPTY_STRING);
         kwpLedgerLogistics.setReceiptTime(null);
         kwpLedgerLogistics.setOrderCount(logisticsSendReq.getIdList().size());
-        kwpLedgerLogistics.setUrl("");
+        kwpLedgerLogistics.setUrl(Global.EMPTY_STRING);
         kwpLedgerLogistics.setGenerateTime(logisticsSendReq.getGenerateTime());
-        kwpLedgerLogistics.setRemark("");
+        kwpLedgerLogistics.setRemark(Global.EMPTY_STRING);
         kwpLedgerLogistics.setStatus(logisticsSendReq.getStatus());
-        kwpLedgerLogistics.setDelFlag(0);
+        kwpLedgerLogistics.setDelFlag(Global.UN_DELETED);
+        //id为空,新增对账单
         if (Objects.isNull(logisticsSendReq.getId())) {
             kwpLedgerLogistics.setCreateBy(LoginUserHolder.getUserId());
             kwpLedgerLogistics.setCreateTime(LocalDateTime.now());
@@ -190,16 +207,18 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             kwpLedgerLogistics.setLLedgerNo(OrderGenerateUtils.generateOrderNo("LL"));
             logisticsMapper.insert(kwpLedgerLogistics);
         } else {
+            //校验是否可以修改对账单
             KwpLedgerLogistics ledgerLogistics = logisticsMapper.selectById(logisticsSendReq.getIdLong());
             orderCheck(ledgerLogistics);
             updateCheck(ledgerLogistics.getStatus());
+            //修改对账单
             kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
             kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
             logisticsMapper.updateById(kwpLedgerLogistics);
         }
         /*保存物流订单关联数据*/
         List<Long> ids = logisticsSendReq.getIdList();
-        //todo-xcq 校验当前订单是否已存在绑定的对账单
+        //验当前订单是否已存在绑定的对账单
         logisticsOrderService.check(ids);
         List<KwtLogisticsOrderVO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderDetail(logisticsSendReq.getIdsList());
         if (CollectionUtils.isEmpty(acceptCarriageOrderDetail) || acceptCarriageOrderDetail.size() < ids.size()) {
@@ -207,17 +226,17 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         }
         List<KwpLedgerLogisticsOrder> collect = acceptCarriageOrderDetail.stream().map(a -> {
             KwpLedgerLogisticsOrder logisticsOrder = new KwpLedgerLogisticsOrder();
-            logisticsOrder.setId(new IdWorker(1).nextId());
+            logisticsOrder.setId(new IdWorker(NumberConstant.ONE).nextId());
             logisticsOrder.setLLedgerId(kwpLedgerLogistics.getId());
             logisticsOrder.setLOrderId(a.getId());
             logisticsOrder.setLOrderNo(a.getLOrderNo());
-            logisticsOrder.setRemark("");
-            logisticsOrder.setStatus(0);
+            logisticsOrder.setRemark(Global.EMPTY_STRING);
+            logisticsOrder.setStatus(NumberConstant.ZERO);
             logisticsOrder.setCreateBy(LoginUserHolder.getUserId());
             logisticsOrder.setCreateTime(LocalDateTime.now());
             logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
             logisticsOrder.setUpdateTime(LocalDateTime.now());
-            logisticsOrder.setDelFlag(0);
+            logisticsOrder.setDelFlag(Global.UN_DELETED);
             return logisticsOrder;
         }).collect(Collectors.toList());
 
@@ -233,7 +252,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
 
         List<KwpLedgerLogisticsUnit> logisticsUnits = new ArrayList<>();
         KwpLedgerLogisticsUnit kwpLedgerLogisticsUnit = new KwpLedgerLogisticsUnit();
-        kwpLedgerLogisticsUnit.setId(new IdWorker(1).nextId());
+        kwpLedgerLogisticsUnit.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpLedgerLogisticsUnit.setLLedgerId(kwpLedgerLogistics.getId());
         kwpLedgerLogisticsUnit.setLLedgerNo(kwpLedgerLogistics.getLLedgerNo());
         kwpLedgerLogisticsUnit.setUnitType(LogisticsUnitType.SHIPPER);
@@ -242,13 +261,13 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogisticsUnit.setFirmName(entCacheResDto.getFirmName());
         kwpLedgerLogisticsUnit.setContacts(entCacheResDto.getContacts());
         kwpLedgerLogisticsUnit.setPhone(entCacheResDto.getPhone());
-        kwpLedgerLogisticsUnit.setRemark("");
-        kwpLedgerLogisticsUnit.setStatus(0);
+        kwpLedgerLogisticsUnit.setRemark(Global.EMPTY_STRING);
+        kwpLedgerLogisticsUnit.setStatus(NumberConstant.ZERO);
         kwpLedgerLogisticsUnit.setCreateBy(LoginUserHolder.getUserId());
         kwpLedgerLogisticsUnit.setCreateTime(LocalDateTime.now());
         kwpLedgerLogisticsUnit.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerLogisticsUnit.setUpdateTime(LocalDateTime.now());
-        kwpLedgerLogisticsUnit.setDelFlag(0);
+        kwpLedgerLogisticsUnit.setDelFlag(Global.UN_DELETED);
 
         logisticsUnits.add(kwpLedgerLogisticsUnit);
         Long entId = LoginUserHolder.getEntId();
@@ -258,7 +277,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             entCacheResDto1 = new EntCacheResDto();
         }
         KwpLedgerLogisticsUnit carrierUnit = new KwpLedgerLogisticsUnit();
-        carrierUnit.setId(new IdWorker(1).nextId());
+        carrierUnit.setId(new IdWorker(NumberConstant.ONE).nextId());
         carrierUnit.setLLedgerId(kwpLedgerLogistics.getId());
         carrierUnit.setLLedgerNo(kwpLedgerLogistics.getLLedgerNo());
         carrierUnit.setUnitType(LogisticsUnitType.CARRIER);
@@ -267,13 +286,13 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         carrierUnit.setFirmName(entCacheResDto1.getFirmName());
         carrierUnit.setContacts(entCacheResDto1.getContacts());
         carrierUnit.setPhone(entCacheResDto1.getPhone());
-        carrierUnit.setRemark("");
-        carrierUnit.setStatus(0);
+        carrierUnit.setRemark(Global.EMPTY_STRING);
+        carrierUnit.setStatus(NumberConstant.ZERO);
         carrierUnit.setCreateBy(LoginUserHolder.getUserId());
         carrierUnit.setCreateTime(LocalDateTime.now());
         carrierUnit.setUpdateBy(LoginUserHolder.getUserId());
         carrierUnit.setUpdateTime(LocalDateTime.now());
-        carrierUnit.setDelFlag(0);
+        carrierUnit.setDelFlag(Global.UN_DELETED);
 
         logisticsUnits.add(carrierUnit);
         logisticsUnitService.saveList(logisticsUnits);
@@ -283,7 +302,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
     /**
      * 保存物流对账单草稿
      *
-     * @param logisticsReq
+     * @param logisticsReq 物流对账单保存的参数
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
@@ -291,7 +310,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsReq.setGenerateTime(null);
         logisticsReq.setStatus(LedgerEnum.SAVE.getStatus());
         Long aLong = saveDraft(logisticsReq);
-        logisticsTrackService.saveTrack(aLong, "", LedgerTrackEnum.SAVE);
+        logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.SAVE);
         return "草稿保存成功";
     }
 
@@ -301,15 +320,16 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param id 物流对账单id
      * @return
      */
-    public Integer remove(Long id) {
+    public String remove(Long id) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(id);
         if (Objects.isNull(kwpLedgerLogistics)) {
             throw new BusinessException("对账单不存在!");
         }
         deleteCheck(kwpLedgerLogistics.getStatus());
-        kwpLedgerLogistics.setDelFlag(1);
+        kwpLedgerLogistics.setDelFlag(Global.DELETED);
         logisticsMapper.updateById(kwpLedgerLogistics);
-        return logisticsTrackService.saveTrack(id, "", LedgerTrackEnum.DELETE);
+        logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.DELETE);
+        return "删除成功";
     }
 
     /**
@@ -318,7 +338,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param id 物流对账单id
      * @return
      */
-    public Integer backOrder(Long id) {
+    public String backOrder(Long id) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(id);
         if (Objects.isNull(kwpLedgerLogistics)) {
             throw new BusinessException("对账单不存在!");
@@ -329,7 +349,8 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        return logisticsTrackService.saveTrack(id, "", LedgerTrackEnum.REVOKE);
+        logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.REVOKE);
+        return "撤回成功";
     }
 
     /**
@@ -351,7 +372,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param ledgerReq 驳回参数
      * @return
      */
-    public Integer doBack(LedgerReq ledgerReq) {
+    public String doBack(LedgerReq ledgerReq) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(ledgerReq.getIdLong());
         if (Objects.isNull(kwpLedgerLogistics)) {
             throw new BusinessException("对账单不存在!");
@@ -361,18 +382,19 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        return logisticsTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
+        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
+        return "驳回成功";
     }
 
     /**
      * 对账确认
      * 订单变更为已对账
      *
-     * @param confirmReq
+     * @param confirmReq 对账确认请求参数
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public Integer confirmOrder(LedgerConfirmReq confirmReq) {
+    public String confirmOrder(LedgerConfirmReq confirmReq) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(confirmReq.getIdLong());
         orderCheck(kwpLedgerLogistics);
         confirmCheck(kwpLedgerLogistics.getStatus());
@@ -383,13 +405,14 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        return logisticsTrackService.saveTrack(confirmReq.getIdLong(), "", LedgerTrackEnum.CONFIRM);
+        logisticsTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.CONFIRM);
+        return "对账确认成功";
     }
 
     /**
      * 对账完成
      *
-     * @param ledgerReq
+     * @param ledgerReq 对账完成参数
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
@@ -398,7 +421,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         orderCheck(kwpLedgerLogistics);
 
         successCheck(kwpLedgerLogistics.getStatus());
-
+        //更新对账单状态
         kwpLedgerLogistics.setReceiptTime(LocalDateTime.of(ledgerReq.getReceiptTime(), LocalTime.MIN));
         kwpLedgerLogistics.setStatus(LedgerEnum.SUCCESS.getStatus());
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
@@ -406,40 +429,43 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsMapper.updateById(kwpLedgerLogistics);
         //生成结算单
         KwpSettlementLogistics kwpSettlementLogistics = new KwpSettlementLogistics();
-        kwpSettlementLogistics.setId(new IdWorker(1).nextId());
+        kwpSettlementLogistics.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpSettlementLogistics.setEntId(LoginUserHolder.getEntId());
         kwpSettlementLogistics.setLLedgerId(kwpLedgerLogistics.getId());
         kwpSettlementLogistics.setSlOrderNo(OrderGenerateUtils.generateOrderNo("SL"));
         kwpSettlementLogistics.setName(kwpLedgerLogistics.getName());//取物流对账单名称
         kwpSettlementLogistics.setTotalPrice(kwpLedgerLogistics.getTotalPrice());
         kwpSettlementLogistics.setActualPrice(kwpLedgerLogistics.getActualPrice());
-        kwpSettlementLogistics.setRemark("");
+        kwpSettlementLogistics.setRemark(Global.EMPTY_STRING);
         kwpSettlementLogistics.setAuditUser(kwpLedgerLogistics.getAuditUser());
         kwpSettlementLogistics.setAuditPhone(kwpLedgerLogistics.getAuditPhone());
         kwpSettlementLogistics.setSuccessUser(ledgerReq.getSuccessUser());
         kwpSettlementLogistics.setSuccessPhone(ledgerReq.getSuccessPhone());
         kwpSettlementLogistics.setReceiptTime(LocalDateTime.of(ledgerReq.getReceiptTime(), LocalTime.MIN));
-        kwpSettlementLogistics.setStatus(1);//1-待结算
+        kwpSettlementLogistics.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());//1-待结算
         kwpSettlementLogistics.setCreateBy(LoginUserHolder.getUserId());
         kwpSettlementLogistics.setCreateTime(LocalDateTime.now());
         kwpSettlementLogistics.setUpdateBy(LoginUserHolder.getUserId());
         kwpSettlementLogistics.setUpdateTime(LocalDateTime.now());
-        kwpSettlementLogistics.setDelFlag(0);
+        kwpSettlementLogistics.setDelFlag(Global.UN_DELETED);
 
         settlementLogisticsService.save(kwpSettlementLogistics);
 
-        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), "", LedgerTrackEnum.SUCCESS);
+        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.SUCCESS);
         return "对账完成";
     }
 
     /**
+     * 按类型统计表头的数据
+     *
      * @param unitType 1-托运方 2-承运方
-     * @return
+     * @return 统计数据
      */
     public List<TableTop> orderCount(LogisticsReq logisticsReq, Integer unitType) {
         logisticsReq.setEntId(LoginUserHolder.getEntId());
         Map<String, Long> map = logisticsMapper.countOrder(logisticsReq, unitType);
         TableTop ledgerCountVo;
+        /*统计数据转换*/
         List<TableTop> res = new ArrayList<>();
         for (LedgerEnum value : LedgerEnum.values()) {
             ledgerCountVo = new TableTop();
@@ -452,10 +478,10 @@ public class KwpLedgerLogisticsService extends AbsLedger {
     }
 
     /**
-     * 托运方
+     * 托运方 查询物流对账单
      *
-     * @param ids
-     * @return
+     * @param ids 对账单id列表
+     * @return 物流对账单列表
      */
     public List<ILedger> selectShipperList(List<Long> ids) {
         List<LedgerShipperDto> ledgerLogisticsDto = logisticsMapper.selectShipperIds(ids);
@@ -465,10 +491,10 @@ public class KwpLedgerLogisticsService extends AbsLedger {
     }
 
     /**
-     * 承运方
+     * 承运方 查询物流对账单
      *
-     * @param ids
-     * @return
+     * @param ids 对账单id列表
+     * @return 物流对账单列表
      */
     public List<ILedger> selectCarrierList(List<Long> ids) {
         List<LedgerCarrierDto> ledgerLogisticsDto = logisticsMapper.selectCarrierIds(ids);
@@ -477,6 +503,12 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         return ledgerLogistics;
     }
 
+    /**
+     * 根据物流订单id查询对账单详情
+     *
+     * @param id 物流对账单id
+     * @return
+     */
     public LedgerLogisticsDetailVo queryUpdate(Long id) {
         LedgerLogisticsDto ledgerLogisticsDto = logisticsMapper.selectId(id, LogisticsUnitType.SHIPPER);
         orderCheck(ledgerLogisticsDto);
@@ -484,14 +516,27 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         return getLedgerLogisticsDetailVo(ledgerLogisticsDto);
     }
 
+    /**
+     * 查询物流对账单详情
+     *
+     * @param id       物流对账单id
+     * @param unitType 企业单位类型
+     * @return
+     */
     public LedgerLogisticsDetailVo queryDetail(Long id, Integer unitType) {
         LedgerLogisticsDto ledgerLogisticsDto = logisticsMapper.selectId(id, unitType);
         orderCheck(ledgerLogisticsDto);
         return getLedgerLogisticsDetailVo(ledgerLogisticsDto);
     }
 
-    @NotNull
+    /**
+     * 转换物流对账单详情数据
+     *
+     * @param ledgerLogisticsDto
+     * @return
+     */
     private LedgerLogisticsDetailVo getLedgerLogisticsDetailVo(LedgerLogisticsDto ledgerLogisticsDto) {
+        /*获取物流对账单关联的物流订单*/
         List<KwpLedgerLogisticsOrder> kwpLedgerLogisticsOrders = logisticsOrderService.queryList(ledgerLogisticsDto.getId());
         LedgerLogisticsDetailVo ledgerLogisticsDetailVo = new LedgerLogisticsDetailVo();
         ledgerLogisticsDetailVo.setId(ledgerLogisticsDto.getId());
@@ -505,7 +550,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         ledgerLogisticsDetailVo.setStartTime(ledgerLogisticsDto.getStartTime());
         ledgerLogisticsDetailVo.setEndTime(ledgerLogisticsDto.getEndTime());
         ledgerLogisticsDetailVo.setRemark(ledgerLogisticsDto.getRemark());
-
+        /*查询物流订单详情*/
         List<LogisticsOrderVO> acceptCarriageOrderList = transportDubboService.getAcceptCarriageOrderList(kwpLedgerLogisticsOrders.stream().map(a -> Long.toString(a.getLOrderId())).collect(Collectors.toList()));
         ledgerLogisticsDetailVo.setOrderList(acceptCarriageOrderList);
         return ledgerLogisticsDetailVo;

+ 12 - 7
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsTrackService.java

@@ -1,6 +1,8 @@
 package com.sckw.payment.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.payment.dao.KwpLedgerLogisticsTrackMapper;
 import com.sckw.payment.model.KwpLedgerLogisticsTrack;
@@ -28,13 +30,13 @@ public class KwpLedgerLogisticsTrackService {
      * @param remark      备注
      * @param status      状态值
      */
-    public Integer saveTrack(Long l_ledger_id, String remark, LedgerTrackEnum status) {
+    public void saveTrack(Long l_ledger_id, String remark, LedgerTrackEnum status) {
         KwpLedgerLogisticsTrack kwpLedgerLogisticsTrack = new KwpLedgerLogisticsTrack();
-        kwpLedgerLogisticsTrack.setId(new IdWorker(1).nextId());
+        kwpLedgerLogisticsTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpLedgerLogisticsTrack.setLLedgerId(l_ledger_id);
         kwpLedgerLogisticsTrack.setRemark(remark);
         kwpLedgerLogisticsTrack.setStatus(status.getStatus());
-        return logisticsTrackMapper.insert(kwpLedgerLogisticsTrack);
+        logisticsTrackMapper.insert(kwpLedgerLogisticsTrack);
     }
 
     /**
@@ -48,20 +50,23 @@ public class KwpLedgerLogisticsTrackService {
         LambdaQueryWrapper<KwpLedgerLogisticsTrack> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(KwpLedgerLogisticsTrack::getLLedgerId, id);
         wrapper.eq(Objects.nonNull(status), KwpLedgerLogisticsTrack::getStatus, status.getStatus());
-        wrapper.eq(KwpLedgerLogisticsTrack::getDelFlag, 0);
+        wrapper.eq(KwpLedgerLogisticsTrack::getDelFlag, Global.UN_DELETED);
         wrapper.orderByDesc(KwpLedgerLogisticsTrack::getCreateTime);
         wrapper.last("limit 1");
         return logisticsTrackMapper.selectOne(wrapper);
     }
 
-
+    /**
+     * 删除物流对账记录表
+     * @param lLedgerId 物流对账单id
+     */
     public void remove(Long lLedgerId) {
         LambdaQueryWrapper<KwpLedgerLogisticsTrack> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(KwpLedgerLogisticsTrack::getLLedgerId, lLedgerId);
-        wrapper.eq(KwpLedgerLogisticsTrack::getDelFlag, 0);
+        wrapper.eq(KwpLedgerLogisticsTrack::getDelFlag, Global.UN_DELETED);
         KwpLedgerLogisticsTrack logisticsTrack = new KwpLedgerLogisticsTrack();
         logisticsTrack.setUpdateTime(LocalDateTime.now());
-        logisticsTrack.setDelFlag(1);
+        logisticsTrack.setDelFlag(Global.DELETED);
         logisticsTrackMapper.update(logisticsTrack, wrapper);
     }
 }

+ 13 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsUnitService.java

@@ -1,9 +1,9 @@
 package com.sckw.payment.service;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.sckw.core.model.constant.Global;
 import com.sckw.payment.dao.KwpLedgerLogisticsUnitMapper;
 import com.sckw.payment.model.KwpLedgerLogisticsUnit;
-import com.sckw.payment.model.KwpLedgerTradeUnit;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -20,6 +20,11 @@ import java.util.List;
 public class KwpLedgerLogisticsUnitService {
     private final KwpLedgerLogisticsUnitMapper logisticsUnitMapper;
 
+    /**
+     * 批量保存对账单关联企业信息
+     *
+     * @param logisticsUnits 企业信息
+     */
     public void saveList(List<KwpLedgerLogisticsUnit> logisticsUnits) {
         if (!CollectionUtils.isEmpty(logisticsUnits)) {
             for (KwpLedgerLogisticsUnit logisticsUnit : logisticsUnits) {
@@ -28,13 +33,18 @@ public class KwpLedgerLogisticsUnitService {
         }
     }
 
+    /**
+     * 删除对账单关联的企业信息
+     *
+     * @param lLedgerId
+     */
     public void remove(Long lLedgerId) {
         KwpLedgerLogisticsUnit logisticsUnit = new KwpLedgerLogisticsUnit();
-        logisticsUnit.setDelFlag(1);
+        logisticsUnit.setDelFlag(Global.DELETED);
         logisticsUnit.setUpdateTime(LocalDateTime.now());
         LambdaUpdateWrapper<KwpLedgerLogisticsUnit> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(KwpLedgerLogisticsUnit::getLLedgerId, lLedgerId);
-        wrapper.eq(KwpLedgerLogisticsUnit::getDelFlag, 0);
+        wrapper.eq(KwpLedgerLogisticsUnit::getDelFlag, Global.UN_DELETED);
         logisticsUnitMapper.update(logisticsUnit, wrapper);
     }
 }

+ 25 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeOrderService.java

@@ -3,6 +3,7 @@ package com.sckw.payment.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.payment.dao.KwpLedgerTradeOrderMapper;
 import com.sckw.payment.model.KwpLedgerTradeOrder;
@@ -22,16 +23,26 @@ import java.util.List;
 public class KwpLedgerTradeOrderService {
     private final KwpLedgerTradeOrderMapper tradeOrderMapper;
 
+    /**
+     * 删除贸易结算单关联的贸易订单
+     *
+     * @param tLedgerId 结算单id
+     */
     public void remove(Long tLedgerId) {
         KwpLedgerTradeOrder kwpLedgerTradeOrder = new KwpLedgerTradeOrder();
-        kwpLedgerTradeOrder.setDelFlag(1);
+        kwpLedgerTradeOrder.setDelFlag(Global.DELETED);
         kwpLedgerTradeOrder.setUpdateTime(LocalDateTime.now());
         LambdaUpdateWrapper<KwpLedgerTradeOrder> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(KwpLedgerTradeOrder::getTLedgerId, tLedgerId);
-        wrapper.eq(KwpLedgerTradeOrder::getDelFlag, 0);
+        wrapper.eq(KwpLedgerTradeOrder::getDelFlag, Global.UN_DELETED);
         tradeOrderMapper.update(kwpLedgerTradeOrder, wrapper);
     }
 
+    /**
+     * 批量保存贸易结算单关联的贸易订单
+     *
+     * @param list 订单关联数据
+     */
     public void saveList(List<KwpLedgerTradeOrder> list) {
         if (!CollectionUtils.isEmpty(list)) {
             for (KwpLedgerTradeOrder kwpLedgerTradeOrder : list) {
@@ -40,6 +51,12 @@ public class KwpLedgerTradeOrderService {
         }
     }
 
+    /**
+     * 查询关联的订单数据
+     *
+     * @param id 对账单id
+     * @return
+     */
     public List<KwpLedgerTradeOrder> queryList(Long id) {
         List<KwpLedgerTradeOrder> kwpLedgerLogisticsOrders = tradeOrderMapper.selectList(new LambdaQueryWrapper<KwpLedgerTradeOrder>().eq(KwpLedgerTradeOrder::getTLedgerId, id).eq(KwpLedgerTradeOrder::getDelFlag, 0));
 
@@ -49,10 +66,15 @@ public class KwpLedgerTradeOrderService {
         return kwpLedgerLogisticsOrders;
     }
 
+    /**
+     * 校验订单是否绑定其它订单
+     *
+     * @param ids
+     */
     public void check(List<Long> ids) {
         List<KwpLedgerTradeOrder> kwpLedgerLogisticsOrders = tradeOrderMapper.selectList(new LambdaQueryWrapper<KwpLedgerTradeOrder>()
                 .in(KwpLedgerTradeOrder::getTOrderId, ids)
-                .eq(KwpLedgerTradeOrder::getDelFlag, 0)
+                .eq(KwpLedgerTradeOrder::getDelFlag, Global.UN_DELETED)
                 .select(KwpLedgerTradeOrder::getTLedgerId, KwpLedgerTradeOrder::getTOrderId, KwpLedgerTradeOrder::getTOrderNo));
         if (CollectionUtils.isNotEmpty(kwpLedgerLogisticsOrders)) {
             for (KwpLedgerTradeOrder kwpLedgerTradeOrder : kwpLedgerLogisticsOrders) {

+ 96 - 38
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -3,8 +3,10 @@ package com.sckw.payment.service;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.CollectionUtils;
@@ -18,8 +20,12 @@ import com.sckw.payment.dao.KwpLedgerTradeMapper;
 import com.sckw.payment.model.*;
 import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.LedgerTrackEnum;
+import com.sckw.payment.model.constant.SettlementEnum;
 import com.sckw.payment.model.constant.TradeUnitType;
-import com.sckw.payment.model.dto.*;
+import com.sckw.payment.model.dto.ILedger;
+import com.sckw.payment.model.dto.LedgerPurchaseDto;
+import com.sckw.payment.model.dto.LedgerSellDto;
+import com.sckw.payment.model.dto.LedgerTradeDto;
 import com.sckw.payment.model.vo.req.*;
 import com.sckw.payment.model.vo.res.LedgerTradeDetailVo;
 import com.sckw.system.api.RemoteSystemService;
@@ -61,6 +67,11 @@ public class KwpLedgerTradeService extends AbsLedger {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
 
+    /**
+     * 转换字典数据
+     *
+     * @param list
+     */
     private void changeDict(List<ILedger> list) {
         List<SysDictResDto> taxRateDict = remoteSystemService.queryDictByType(DictTypeEnum.TAX_RATE.getType());
         Map<String, String> taxRateMap = new HashMap<>();
@@ -83,6 +94,11 @@ public class KwpLedgerTradeService extends AbsLedger {
         }
     }
 
+    /**
+     * 填充时间等参数
+     *
+     * @param tradeReq 请求参数
+     */
     private void fillPara(TradeReq tradeReq) {
         tradeReq.setEntId(LoginUserHolder.getEntId());
         if (StringUtils.isNotBlank(tradeReq.getStartCreateTime())) {
@@ -159,16 +175,16 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setExTaxPrice(tradeSendReq.getTotalPrice());//todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
         kwpLedgerTrade.setSettlePrice(tradeSendReq.getSettlePrice());
         kwpLedgerTrade.setActualPrice(new BigDecimal("0.0"));
-        kwpLedgerTrade.setAuditUser("");
-        kwpLedgerTrade.setAuditPhone("");
+        kwpLedgerTrade.setAuditUser(Global.EMPTY_STRING);
+        kwpLedgerTrade.setAuditPhone(Global.EMPTY_STRING);
         kwpLedgerTrade.setGenerateTime(tradeSendReq.getGenerateTime());
         kwpLedgerTrade.setReceiptTime(null);
         kwpLedgerTrade.setOrderCount(tradeSendReq.getIdList().size());
-        kwpLedgerTrade.setUrl("");
-        kwpLedgerTrade.setRemark("");
+        kwpLedgerTrade.setUrl(Global.EMPTY_STRING);
+        kwpLedgerTrade.setRemark(Global.EMPTY_STRING);
         kwpLedgerTrade.setStatus(tradeSendReq.getStatus());
 
-        kwpLedgerTrade.setDelFlag(0);
+        kwpLedgerTrade.setDelFlag(Global.UN_DELETED);
         if (Objects.isNull(tradeSendReq.getId())) {
             kwpLedgerTrade.setTLedgerNo(OrderGenerateUtils.generateOrderNo("TL"));
             kwpLedgerTrade.setCreateBy(LoginUserHolder.getUserId());
@@ -203,13 +219,13 @@ public class KwpLedgerTradeService extends AbsLedger {
             kwpLedgerTradeOrder.setTLedgerId(kwpLedgerTrade.getId());
             kwpLedgerTradeOrder.setTOrderId(a.getId());
             kwpLedgerTradeOrder.setTOrderNo(a.getTOrderNo());
-            kwpLedgerTradeOrder.setRemark("");
-            kwpLedgerTradeOrder.setStatus(0);
+            kwpLedgerTradeOrder.setRemark(Global.EMPTY_STRING);
+            kwpLedgerTradeOrder.setStatus(NumberConstant.ZERO);
             kwpLedgerTradeOrder.setCreateBy(LoginUserHolder.getUserId());
             kwpLedgerTradeOrder.setCreateTime(LocalDateTime.now());
             kwpLedgerTradeOrder.setUpdateBy(LoginUserHolder.getUserId());
             kwpLedgerTradeOrder.setUpdateTime(LocalDateTime.now());
-            kwpLedgerTradeOrder.setDelFlag(0);
+            kwpLedgerTradeOrder.setDelFlag(Global.UN_DELETED);
             return kwpLedgerTradeOrder;
         }).collect(Collectors.toList());
         tradeOrderService.saveList(collect);
@@ -221,9 +237,10 @@ public class KwpLedgerTradeService extends AbsLedger {
         if (Objects.isNull(entCacheResDto)) {
             entCacheResDto = new EntCacheResDto();
         }
+        //保存双方企业信息
         List<KwpLedgerTradeUnit> list = new ArrayList<>();
         KwpLedgerTradeUnit kwpLedgerTradeUnit = new KwpLedgerTradeUnit();
-        kwpLedgerTradeUnit.setId(new IdWorker(1).nextId());
+        kwpLedgerTradeUnit.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpLedgerTradeUnit.setTLedgerId(kwpLedgerTrade.getId());
         kwpLedgerTradeUnit.setTLedgerNo(kwpLedgerTrade.getTLedgerNo());
         kwpLedgerTradeUnit.setUnitType(TradeUnitType.PURCHASE);
@@ -232,13 +249,13 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTradeUnit.setFirmName(entCacheResDto.getFirmName());
         kwpLedgerTradeUnit.setContacts(entCacheResDto.getContacts());
         kwpLedgerTradeUnit.setPhone(entCacheResDto.getPhone());
-        kwpLedgerTradeUnit.setRemark("");
-        kwpLedgerTradeUnit.setStatus(0);
+        kwpLedgerTradeUnit.setRemark(Global.EMPTY_STRING);
+        kwpLedgerTradeUnit.setStatus(NumberConstant.ZERO);
         kwpLedgerTradeUnit.setCreateBy(LoginUserHolder.getUserId());
         kwpLedgerTradeUnit.setCreateTime(LocalDateTime.now());
         kwpLedgerTradeUnit.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerTradeUnit.setUpdateTime(LocalDateTime.now());
-        kwpLedgerTradeUnit.setDelFlag(0);
+        kwpLedgerTradeUnit.setDelFlag(Global.UN_DELETED);
 
         list.add(kwpLedgerTradeUnit);
         Long entId = LoginUserHolder.getEntId();
@@ -249,7 +266,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         }
         //非客户企业方,通过登录用户获取顶级企业
         KwpLedgerTradeUnit sellLedgerTradeUnit = new KwpLedgerTradeUnit();
-        sellLedgerTradeUnit.setId(new IdWorker(1).nextId());
+        sellLedgerTradeUnit.setId(new IdWorker(NumberConstant.ONE).nextId());
         sellLedgerTradeUnit.setTLedgerId(kwpLedgerTrade.getId());
         sellLedgerTradeUnit.setTLedgerNo(kwpLedgerTrade.getTLedgerNo());
         sellLedgerTradeUnit.setUnitType(TradeUnitType.SELL);
@@ -258,13 +275,13 @@ public class KwpLedgerTradeService extends AbsLedger {
         sellLedgerTradeUnit.setFirmName(entCacheResDto1.getFirmName());
         sellLedgerTradeUnit.setContacts(entCacheResDto1.getContacts());
         sellLedgerTradeUnit.setPhone(entCacheResDto1.getPhone());
-        sellLedgerTradeUnit.setRemark("");
-        sellLedgerTradeUnit.setStatus(0);
+        sellLedgerTradeUnit.setRemark(Global.EMPTY_STRING);
+        sellLedgerTradeUnit.setStatus(NumberConstant.ZERO);
         sellLedgerTradeUnit.setCreateBy(LoginUserHolder.getUserId());
         sellLedgerTradeUnit.setCreateTime(LocalDateTime.now());
         sellLedgerTradeUnit.setUpdateBy(LoginUserHolder.getUserId());
         sellLedgerTradeUnit.setUpdateTime(LocalDateTime.now());
-        sellLedgerTradeUnit.setDelFlag(0);
+        sellLedgerTradeUnit.setDelFlag(Global.UN_DELETED);
         list.add(sellLedgerTradeUnit);
 
         tradeUnitService.saveList(list);
@@ -285,7 +302,7 @@ public class KwpLedgerTradeService extends AbsLedger {
             tradeSendReq.setGenerateTime(LocalDateTime.now());
             tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(tradeSendReq);
-            tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
+            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
         } else {
             //先删除
             removeDraft(tradeSendReq.getIdLong());
@@ -293,7 +310,7 @@ public class KwpLedgerTradeService extends AbsLedger {
             tradeSendReq.setGenerateTime(LocalDateTime.now());
             tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(tradeSendReq);
-            tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
+            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
 
         }
         return "保存对账单成功";
@@ -311,29 +328,36 @@ public class KwpLedgerTradeService extends AbsLedger {
         tradeSendReq.setGenerateTime(null);
         tradeSendReq.setStatus(LedgerEnum.SAVE.getStatus());
         Long aLong = saveDraft(tradeSendReq);
-        tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.SAVE);
+        tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.SAVE);
         return "草稿保存成功";
     }
 
-
+    /**
+     * 删除对账单
+     *
+     * @param id 对账单id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
     public String remove(Long id) {
         KwpLedgerTrade kwpLedgerTrade = tradeMapper.selectById(id);
         orderCheck(kwpLedgerTrade);
         deleteCheck(kwpLedgerTrade.getStatus());
-        kwpLedgerTrade.setDelFlag(1);
+        kwpLedgerTrade.setDelFlag(Global.DELETED);
         kwpLedgerTrade.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
-        tradeTrackService.saveTrack(kwpLedgerTrade.getId(), "", LedgerTrackEnum.DELETE);
+        tradeTrackService.saveTrack(kwpLedgerTrade.getId(), Global.EMPTY_STRING, LedgerTrackEnum.DELETE);
         return "删除成功";
     }
 
     /**
      * 撤回对账单
      *
-     * @param id
+     * @param id 对账单id
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public String backOrder(Long id) {
         KwpLedgerTrade kwpLedgerTrade = tradeMapper.selectById(id);
         orderCheck(kwpLedgerTrade);
@@ -343,14 +367,14 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
 
-        tradeTrackService.saveTrack(id, "", LedgerTrackEnum.REVOKE);
+        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.REVOKE);
         return "撤回成功";
     }
 
     /**
      * 查询贸易对账单驳回记录
      *
-     * @param id
+     * @param id 对账单id
      * @return
      */
     public KwpLedgerTradeTrack queryBack(Long id) {
@@ -366,6 +390,7 @@ public class KwpLedgerTradeService extends AbsLedger {
      * @param ledgerReq
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public String doBack(LedgerReq ledgerReq) {
         KwpLedgerTrade kwpLedgerTrade = tradeMapper.selectById(ledgerReq.getIdLong());
         orderCheck(kwpLedgerTrade);
@@ -381,7 +406,7 @@ public class KwpLedgerTradeService extends AbsLedger {
     /**
      * 对账确认
      *
-     * @param confirmReq
+     * @param confirmReq 对账确认参数
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
@@ -396,55 +421,61 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
-        tradeTrackService.saveTrack(confirmReq.getIdLong(), "", LedgerTrackEnum.CONFIRM);
+        tradeTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.CONFIRM);
         return "对账确认成功";
     }
 
     /**
      * 对账完成
      *
-     * @param ledgerReq
+     * @param ledgerReq 对账完成参数
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
     public String orderSuccess(LedgerSuccessReq ledgerReq) {
         Long id = ledgerReq.getIdLong();
-
+        //校验对账单状态
         KwpLedgerTrade kwpLedgerTrade = tradeMapper.selectById(id);
         orderCheck(kwpLedgerTrade);
         successCheck(kwpLedgerTrade.getStatus());
-
+        //更新对账单
         kwpLedgerTrade.setReceiptTime(LocalDateTime.of(ledgerReq.getReceiptTime(), LocalTime.MIN));
         kwpLedgerTrade.setStatus(LedgerEnum.SUCCESS.getStatus());
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
         //生成结算单
         KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
-        kwpSettlementTrade.setId(new IdWorker(1).nextId());
+        kwpSettlementTrade.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpSettlementTrade.setEntId(LoginUserHolder.getEntId());
         kwpSettlementTrade.setTLedgerId(kwpLedgerTrade.getId());
         kwpSettlementTrade.setStOrderNo(OrderGenerateUtils.generateOrderNo("ST"));
         kwpSettlementTrade.setName(kwpLedgerTrade.getName());
         kwpSettlementTrade.setTotalPrice(kwpLedgerTrade.getTotalPrice());
         kwpSettlementTrade.setActualPrice(kwpLedgerTrade.getActualPrice());
-        kwpSettlementTrade.setRemark("");
+        kwpSettlementTrade.setRemark(Global.EMPTY_STRING);
         kwpSettlementTrade.setAuditUser(kwpLedgerTrade.getAuditUser());
         kwpSettlementTrade.setAuditPhone(kwpLedgerTrade.getAuditPhone());
         kwpSettlementTrade.setSuccessUser(ledgerReq.getSuccessUser());
         kwpSettlementTrade.setSuccessPhone(ledgerReq.getSuccessPhone());
         kwpSettlementTrade.setReceiptTime(LocalDateTime.of(ledgerReq.getReceiptTime(), LocalTime.MIN));
-        kwpSettlementTrade.setStatus(1);//1-待结算
+        kwpSettlementTrade.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());//1-待结算
         kwpSettlementTrade.setCreateBy(LoginUserHolder.getUserId());
         kwpSettlementTrade.setCreateTime(LocalDateTime.now());
         kwpSettlementTrade.setUpdateBy(LoginUserHolder.getUserId());
         kwpSettlementTrade.setUpdateTime(LocalDateTime.now());
-        kwpSettlementTrade.setDelFlag(0);
+        kwpSettlementTrade.setDelFlag(Global.UN_DELETED);
         settlementTradeService.save(kwpSettlementTrade);
 
-        tradeTrackService.saveTrack(id, "", LedgerTrackEnum.SUCCESS);
+        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.SUCCESS);
         return "对账完成";
     }
 
+    /**
+     * 按分类统计对账单表头数量
+     *
+     * @param tradeReq 查询参数
+     * @return
+     */
     public List<TableTop> orderCount(TradeReq tradeReq) {
         tradeReq.setEntId(LoginUserHolder.getEntId());
         Map<String, Long> map = tradeMapper.countOrder(tradeReq);
@@ -452,7 +483,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         List<TableTop> res = new ArrayList<>();
         for (LedgerEnum value : LedgerEnum.values()) {
             ledgerCountVo = new TableTop();
-            ledgerCountVo.setTotal(Math.toIntExact(map.get(String.valueOf(value.getLabel()))));
+            ledgerCountVo.setTotal(Math.toIntExact(map.get(value.getLabel())));
             ledgerCountVo.setName(value.getDesc());
             ledgerCountVo.setValue(value.getStatus());
             res.add(ledgerCountVo);
@@ -460,6 +491,12 @@ public class KwpLedgerTradeService extends AbsLedger {
         return res;
     }
 
+    /**
+     * 根据id查询对账单列表
+     *
+     * @param ids 对账单id列表
+     * @return 对账单数据
+     */
     public List<ILedger> selectSellList(List<Long> ids) {
         List<LedgerSellDto> ledgerTradeDto = tradeMapper.selectSellIds(ids);
         List<ILedger> ledgerSellDto = new ArrayList<>(ledgerTradeDto);
@@ -467,6 +504,12 @@ public class KwpLedgerTradeService extends AbsLedger {
         return ledgerSellDto;
     }
 
+    /**
+     * 根据id查询对账单列表
+     *
+     * @param ids 对账单id列表
+     * @return 对账单数据
+     */
     public List<ILedger> selectPurchaseList(List<Long> ids) {
         List<LedgerPurchaseDto> ledgerTradeDto = tradeMapper.selectPurchaseIds(ids);
         List<ILedger> ledgerSellDto = new ArrayList<>(ledgerTradeDto);
@@ -474,10 +517,17 @@ public class KwpLedgerTradeService extends AbsLedger {
         return ledgerSellDto;
     }
 
+    /**
+     * 更新对账单查询
+     *
+     * @param id 对账单id
+     * @return 对账单详情数据
+     */
     public LedgerTradeDetailVo queryUpdate(Long id) {
         LedgerTradeDto ledgerTradeDto = tradeMapper.selectId(id, TradeUnitType.PURCHASE);
         orderCheck(ledgerTradeDto);
         updateCheck(ledgerTradeDto.getStatus());
+        //查询对账单关联的订单
         List<KwpLedgerTradeOrder> kwpLedgerTradeOrders = tradeOrderService.queryList(ledgerTradeDto.getId());
         LedgerTradeDetailVo ledgerTradeDetailVo = new LedgerTradeDetailVo();
         ledgerTradeDetailVo.setId(ledgerTradeDto.getId());
@@ -494,6 +544,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         List<Long> collect = kwpLedgerTradeOrders.stream().map(KwpLedgerTradeOrder::getTOrderId).toList();
         List<OrderDetailRes> detailRes = new ArrayList<>();
         OrderDetailRes orderDetailById;
+        //查询贸易订单详情
         for (Long aLong : collect) {
             orderDetailById = tradeOrderInfoService.getOrderDetailById(aLong);
             detailRes.add(orderDetailById);
@@ -502,10 +553,17 @@ public class KwpLedgerTradeService extends AbsLedger {
         return ledgerTradeDetailVo;
     }
 
+    /**
+     * 查询对账单详情
+     *
+     * @param id       对账单id
+     * @param unitType 企业单位类型
+     * @return 对账单详情
+     */
     public LedgerTradeDetailVo queryDetail(Long id, Integer unitType) {
         LedgerTradeDto ledgerTradeDto = tradeMapper.selectId(id, unitType);
         orderCheck(ledgerTradeDto);
-
+        //查询对账单关联的贸易订单
         List<KwpLedgerTradeOrder> kwpLedgerTradeOrders = tradeOrderService.queryList(ledgerTradeDto.getId());
         LedgerTradeDetailVo ledgerTradeDetailVo = new LedgerTradeDetailVo();
         ledgerTradeDetailVo.setId(ledgerTradeDto.getId());

+ 13 - 6
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeTrackService.java

@@ -1,6 +1,8 @@
 package com.sckw.payment.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.payment.dao.KwpLedgerTradeTrackMapper;
 import com.sckw.payment.model.KwpLedgerTradeTrack;
@@ -29,13 +31,13 @@ public class KwpLedgerTradeTrackService {
      * @param remark      备注
      * @param status      状态值
      */
-    public Integer saveTrack(Long t_ledger_id, String remark, LedgerTrackEnum status) {
+    public void saveTrack(Long t_ledger_id, String remark, LedgerTrackEnum status) {
         KwpLedgerTradeTrack tradeTrack = new KwpLedgerTradeTrack();
-        tradeTrack.setId(new IdWorker(1).nextId());
+        tradeTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
         tradeTrack.setTLedgerId(t_ledger_id);
         tradeTrack.setRemark(remark);
         tradeTrack.setStatus(status.getStatus());
-        return tradeTrackMapper.insert(tradeTrack);
+        tradeTrackMapper.insert(tradeTrack);
     }
 
     /**
@@ -49,19 +51,24 @@ public class KwpLedgerTradeTrackService {
         LambdaQueryWrapper<KwpLedgerTradeTrack> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(KwpLedgerTradeTrack::getTLedgerId, id);
         wrapper.eq(Objects.nonNull(status), KwpLedgerTradeTrack::getStatus, status.getStatus());
-        wrapper.eq(KwpLedgerTradeTrack::getDelFlag, 0);
+        wrapper.eq(KwpLedgerTradeTrack::getDelFlag, NumberConstant.ZERO);
         wrapper.orderByDesc(KwpLedgerTradeTrack::getCreateTime);
         wrapper.last("limit 1");
         return tradeTrackMapper.selectOne(wrapper);
     }
 
+    /**
+     * 根据对账单id删除队长记录
+     *
+     * @param tLedgerId
+     */
     public void remove(Long tLedgerId) {
         LambdaQueryWrapper<KwpLedgerTradeTrack> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(KwpLedgerTradeTrack::getTLedgerId, tLedgerId);
-        wrapper.eq(KwpLedgerTradeTrack::getDelFlag, 0);
+        wrapper.eq(KwpLedgerTradeTrack::getDelFlag, NumberConstant.ZERO);
         KwpLedgerTradeTrack tradeTrack = new KwpLedgerTradeTrack();
         tradeTrack.setUpdateTime(LocalDateTime.now());
-        tradeTrack.setDelFlag(1);
+        tradeTrack.setDelFlag(Global.DELETED);
         tradeTrackMapper.update(tradeTrack, wrapper);
     }
 }

+ 13 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeUnitService.java

@@ -1,6 +1,7 @@
 package com.sckw.payment.service;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.sckw.core.model.constant.Global;
 import com.sckw.payment.dao.KwpLedgerTradeUnitMapper;
 import com.sckw.payment.model.KwpLedgerTradeUnit;
 import lombok.AllArgsConstructor;
@@ -19,6 +20,11 @@ import java.util.List;
 public class KwpLedgerTradeUnitService {
     private final KwpLedgerTradeUnitMapper tradeUnitMapper;
 
+    /**
+     * 保存企业单位信息
+     *
+     * @param list
+     */
     public void saveList(List<KwpLedgerTradeUnit> list) {
         if (!CollectionUtils.isEmpty(list)) {
             for (KwpLedgerTradeUnit kwpLedgerTradeUnit : list) {
@@ -27,13 +33,18 @@ public class KwpLedgerTradeUnitService {
         }
     }
 
+    /**
+     * 删除企业关联信息
+     *
+     * @param tLedgerId
+     */
     public void remove(Long tLedgerId) {
         KwpLedgerTradeUnit kwpLedgerTradeUnit = new KwpLedgerTradeUnit();
-        kwpLedgerTradeUnit.setDelFlag(1);
+        kwpLedgerTradeUnit.setDelFlag(Global.DELETED);
         kwpLedgerTradeUnit.setUpdateTime(LocalDateTime.now());
         LambdaUpdateWrapper<KwpLedgerTradeUnit> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(KwpLedgerTradeUnit::getTLedgerId, tLedgerId);
-        wrapper.eq(KwpLedgerTradeUnit::getDelFlag, 0);
+        wrapper.eq(KwpLedgerTradeUnit::getDelFlag, Global.UN_DELETED);
         tradeUnitMapper.update(kwpLedgerTradeUnit, wrapper);
     }
 }

+ 0 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java

@@ -14,7 +14,6 @@ import com.sckw.payment.model.dto.SettlementLogisticsDto;
 import com.sckw.payment.model.vo.req.SettlementReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
 import com.sckw.payment.model.vo.res.SettlementLogisticsSumVo;
-import com.sckw.payment.model.vo.res.SettlementWalletVo;
 import com.sckw.payment.utils.CommonValidator;
 import com.sckw.payment.utils.PageMoreRes;
 import com.sckw.system.api.RemoteSystemService;
@@ -23,12 +22,10 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author Aick Spt

+ 11 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java

@@ -9,17 +9,8 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.payment.dao.KwpSettlementLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsTrackMapper;
 import com.sckw.payment.dao.KwpSettlementOfflineMapper;
-import com.sckw.payment.model.KwpSettlementLogistics;
-import com.sckw.payment.model.KwpSettlementLogisticsTrack;
-import com.sckw.payment.model.KwpSettlementOffline;
-import com.sckw.payment.model.KwpSettlementTrade;
-import com.sckw.payment.model.constant.SettlementEnum;
-import com.sckw.payment.model.constant.SettlementOrderTypeEnum;
-import com.sckw.payment.model.KwpSettlementTradeTrack;
-import com.sckw.payment.model.constant.SettlementEnum;
-import com.sckw.payment.model.constant.SettlementTrackEnum;
-import com.sckw.payment.model.constant.TradeUnitType;
-import com.sckw.payment.model.constant.TradingEnum;
+import com.sckw.payment.model.*;
+import com.sckw.payment.model.constant.*;
 import com.sckw.payment.model.dto.SettlementLogisticsDto;
 import com.sckw.payment.model.dto.SettlementOfflineDto;
 import com.sckw.payment.model.dto.SettlementTradeDto;
@@ -27,7 +18,6 @@ import com.sckw.payment.model.vo.req.OfflinePaymentReq;
 import com.sckw.payment.model.vo.req.SettlementOfflinePayReq;
 import com.sckw.payment.model.vo.req.SettlementOfflineReq;
 import com.sckw.payment.model.vo.res.SettlementOfflineVo;
-import com.sckw.payment.model.vo.res.SettlementWalletVo;
 import com.sckw.redis.config.RedisLockUtil;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.system.api.RemoteSystemService;
@@ -230,6 +220,12 @@ public class KwpSettlementOfflineService {
         return null;
     }
 
+    /**
+     * 分页查询线下结算记录
+     *
+     * @param settlementOfflineReq
+     * @return
+     */
     public PageRes<SettlementOfflineVo> pageListTradeCollection(SettlementOfflineReq settlementOfflineReq) {
         PageHelper.startPage(settlementOfflineReq.getPage(), settlementOfflineReq.getPageSize());
         List<SettlementOfflineDto> settlementOfflineDto = settlementOfflineMapper.pageList(settlementOfflineReq);
@@ -244,6 +240,7 @@ public class KwpSettlementOfflineService {
 
             Long createBy = a.getCreateBy();
             Long updateBy = a.getUpdateBy();
+            //创建人赋值
             UserCacheResDto userCacheResDto = map.get(createBy);
             if (Objects.isNull(userCacheResDto)) {
                 userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
@@ -300,6 +297,7 @@ public class KwpSettlementOfflineService {
                 if (subtract1.compareTo(new BigDecimal("0.0")) < 0) {
                     throw new BusinessException("实际付款金额大于剩余待付款金额");
                 }
+                //更新结算单记录
                 KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
                 kwpSettlementTrade.setId(byId.getId());
                 kwpSettlementTrade.setActualPrice(actualPrice.add(payPrice));//已收款加本次收款
@@ -313,7 +311,7 @@ public class KwpSettlementOfflineService {
                 kwpSettlementTrade.setUpdateBy(LoginUserHolder.getUserId());
                 kwpSettlementTrade.setUpdateTime(LocalDateTime.now());
                 settlementTradeService.updateById(kwpSettlementTrade);
-
+                //新增线下结算记录
                 KwpSettlementOffline kwpSettlementOffline = new KwpSettlementOffline();
                 kwpSettlementOffline.setId(new IdWorker(1).nextId());
                 kwpSettlementOffline.setEntId(LoginUserHolder.getEntId());

+ 49 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java

@@ -39,18 +39,41 @@ public class KwpSettlementTradeService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
+    /**
+     * 查询结算单详情
+     *
+     * @param id 结算单id
+     * @param unitType 企业单位类型
+     * @return
+     */
     public SettlementTradeDto getById(Long id, Integer unitType) {
         return settlementTradeMapper.getById(id, unitType);
     }
 
+    /**
+     * 根据id查询结算单关联的企业信息
+     *
+     * @param id 结算单id
+     * @return
+     */
     public List<LedgerUnitDto> getListById(Long id) {
         return settlementTradeMapper.getListById(id);
     }
 
+    /**
+     * 保存结算单
+     *
+     * @param kwpSettlementTrade 结算单
+     */
     public void save(KwpSettlementTrade kwpSettlementTrade) {
         settlementTradeMapper.insert(kwpSettlementTrade);
     }
 
+    /**
+     * 字典转换
+     *
+     * @param list 结算单列表数据
+     */
     private void changeDict(List<ISettlement> list) {
         //字典等数据转换
         Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
@@ -64,12 +87,17 @@ public class KwpSettlementTradeService {
         }
     }
 
+    /**
+     * 分页查询结算单数据
+     * @param settlementReq 结算单查询参数
+     * @return
+     */
     public PageRes<ISettlement> pageListCollection(SettlementTradeReq settlementReq) {
         settlementReq.setEntId(LoginUserHolder.getEntId());
         PageHelper.startPage(settlementReq.getPage(), settlementReq.getPageSize());
         List<SettlementTradeDto> kwpLedgerLogisticsList = settlementTradeMapper.pageSelect(settlementReq);
         if (!CollectionUtils.isEmpty(kwpLedgerLogisticsList)) {
-            //根据企业类型进行对应的数据
+            //根据企业类型转换对应的数据
             if (Objects.equals(settlementReq.getUnitType(), TradeUnitType.PURCHASE)) {
                 List<SettlementPurchaseDto> list = kwpLedgerLogisticsList.stream().map(a -> {
                     SettlementPurchaseDto settlementSellDto = new SettlementPurchaseDto();
@@ -83,6 +111,7 @@ public class KwpSettlementTradeService {
                 changeDict(ledgerShipperDto);
                 return new PageRes<>(new PageInfo<>(ledgerShipperDto));
             }
+            //根据企业类型转换对应的数据
             if (Objects.equals(settlementReq.getUnitType(), TradeUnitType.SELL)) {
                 List<SettlementSellDto> list = kwpLedgerLogisticsList.stream().map(a -> {
                     SettlementSellDto settlementSellDto = new SettlementSellDto();
@@ -100,6 +129,11 @@ public class KwpSettlementTradeService {
         return new PageRes<>(new PageInfo<>());
     }
 
+    /**
+     * 统计列表的表头数据
+     * @param settlementReq 结算单查询参数
+     * @return
+     */
     public List<TableTop> getCount(SettlementTradeReq settlementReq) {
         Map<String, Long> stringIntegerMap = settlementTradeMapper.countOrder(settlementReq);
         List<TableTop> res = new ArrayList<>(4);
@@ -116,14 +150,20 @@ public class KwpSettlementTradeService {
     /**
      * 表尾统计数据
      *
-     * @param settlementReq
+     * @param settlementReq 结算单查询参数
      * @return
      */
     public SettlementSumVo getCountListCollection(SettlementTradeReq settlementReq) {
         return settlementTradeMapper.sumMoney(settlementReq);
     }
 
-
+    /**
+     * 列表查询
+     *
+     * @param ids      结算单id列表
+     * @param unitType 企业单位类型
+     * @return
+     */
     public List<ISettlement> selectList(List<Long> ids, int unitType) {
         List<SettlementTradeDto> kwpSettlementTrades = settlementTradeMapper.selectByIds(ids, unitType);
         if (!CollectionUtils.isEmpty(kwpSettlementTrades)) {
@@ -142,6 +182,7 @@ public class KwpSettlementTradeService {
                 return ledgerShipperDto;
             }
             if (unitType == TradeUnitType.SELL) {
+                //数据转换
                 List<SettlementSellDto> list = kwpSettlementTrades.stream().map(a -> {
                     SettlementSellDto settlementSellDto = new SettlementSellDto();
                     BeanUtils.copyProperties(a, settlementSellDto);
@@ -158,16 +199,7 @@ public class KwpSettlementTradeService {
         return new ArrayList<>();
     }
 
-    /**
-     * 结算-物流订单详情
-     *
-     * @param id 结算物流订单id
-     * @author Aick Spt
-     * @date 2023-07-19 09:11
-     */
-    public SettlementTradeDto detailCollection(Long id) {
-        return null;
-    }
+
 
     public PageRes<SettlementTradeDto> pageListPayment(SettlementReq settlementReq) {
 //        //todo 查询缓存,获取客户企业id
@@ -191,6 +223,10 @@ public class KwpSettlementTradeService {
         return null;
     }
 
+    /**
+     * 更新对账单
+     * @param kwpSettlementTrade 对账单数据
+     */
     public void updateById(KwpSettlementTrade kwpSettlementTrade) {
         settlementTradeMapper.updateById(kwpSettlementTrade);
     }

+ 7 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeTrackService.java

@@ -3,13 +3,13 @@ package com.sckw.payment.service;
 import com.sckw.payment.dao.KwpSettlementTradeTrackMapper;
 import com.sckw.payment.model.KwpSettlementTradeTrack;
 import org.springframework.stereotype.Service;
+
 /**
  * @author xucaiqin
  * @date 2023-07-10 16:38:36
  */
-
 @Service
-public class KwpSettlementTradeTrackService  {
+public class KwpSettlementTradeTrackService {
 
     private final KwpSettlementTradeTrackMapper settlementTradeTrackMapper;
 
@@ -17,6 +17,11 @@ public class KwpSettlementTradeTrackService  {
         this.settlementTradeTrackMapper = settlementTradeTrackMapper;
     }
 
+    /**
+     * 保存结算记录数据
+     *
+     * @param kwpSettlementTradeTrack 结算记录
+     */
     public void save(KwpSettlementTradeTrack kwpSettlementTradeTrack) {
         settlementTradeTrackMapper.insert(kwpSettlementTradeTrack);
     }

+ 19 - 18
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java

@@ -2,7 +2,9 @@ package com.sckw.payment.service;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
@@ -12,7 +14,6 @@ import com.sckw.payment.api.model.dto.WalletDto;
 import com.sckw.payment.api.model.dto.common.R;
 import com.sckw.payment.dao.KwpSettlementLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsTrackMapper;
-import com.sckw.payment.dao.KwpSettlementTradeMapper;
 import com.sckw.payment.dao.KwpSettlementWalletMapper;
 import com.sckw.payment.model.*;
 import com.sckw.payment.model.constant.*;
@@ -214,7 +215,7 @@ public class KwpSettlementWalletService {
             kwpSettlementWallet.setPayPrice(price);
             kwpSettlementWallet.setTopayPrice(remainingReceivables);
             kwpSettlementWallet.setType(SettlementPayTypeEnum.CASH_ON_DELIVERY.getStatus());
-            kwpSettlementWallet.setRemark("");
+            kwpSettlementWallet.setRemark(Global.EMPTY_STRING);
             kwpSettlementWallet.setStatus(1);
             kwpSettlementWallet.setCreateBy(LoginUserHolder.getUserId());
             kwpSettlementWallet.setCreateTime(LocalDateTime.now());
@@ -279,7 +280,7 @@ public class KwpSettlementWalletService {
                     throw new BusinessException("只支持货货到付款方式订单进行当前操作");
                 }
                 List<LedgerUnitDto> listById = kwpSettlementTradeService.getListById(walletPayReq.getIdLong());
-                if (CollectionUtils.isEmpty(listById) || listById.size() != 2) {
+                if (CollectionUtils.isEmpty(listById) || listById.size() != NumberConstant.TWO) {
                     throw new BusinessException("对账单交易企业双方不存在或缺少");
                 }
                 Long uid = null;
@@ -315,12 +316,12 @@ public class KwpSettlementWalletService {
 //        }
                 //待付款金额-本次付款金额= 剩余待付款金额
                 BigDecimal subtract = byId.getWaitPrice().subtract(walletPayReq.getPrice());
-                if (subtract.compareTo(new BigDecimal("0.0")) < 0) {
+                if (subtract.compareTo(new BigDecimal("0.0")) < NumberConstant.ZERO) {
                     throw new BusinessException("付款金额不能大于待付款金额");
                 }
                 //新增电子钱包结算记录
                 KwpSettlementWallet kwpSettlementWallet = new KwpSettlementWallet();
-                kwpSettlementWallet.setId(new IdWorker(1).nextId());
+                kwpSettlementWallet.setId(new IdWorker(NumberConstant.ONE).nextId());
                 kwpSettlementWallet.setEntId(LoginUserHolder.getEntId());
                 kwpSettlementWallet.setSettlementId(walletPayReq.getIdLong());
                 kwpSettlementWallet.setOrderType(SettlementOrderTypeEnum.TRADE.getStatus());
@@ -329,20 +330,20 @@ public class KwpSettlementWalletService {
                 kwpSettlementWallet.setPayPrice(walletPayReq.getPrice());
                 kwpSettlementWallet.setTopayPrice(subtract);
                 kwpSettlementWallet.setType(SettlementWalletPayTypeEnum.CASH_ON_DELIVERY.getStatus());
-                kwpSettlementWallet.setRemark("");
-                kwpSettlementWallet.setStatus(0);
+                kwpSettlementWallet.setRemark(Global.EMPTY_STRING);
+                kwpSettlementWallet.setStatus(NumberConstant.ZERO);
                 kwpSettlementWallet.setCreateBy(LoginUserHolder.getUserId());
                 kwpSettlementWallet.setCreateTime(LocalDateTime.now());
                 kwpSettlementWallet.setUpdateBy(LoginUserHolder.getUserId());
                 kwpSettlementWallet.setUpdateTime(LocalDateTime.now());
-                kwpSettlementWallet.setDelFlag(0);
+                kwpSettlementWallet.setDelFlag(Global.UN_DELETED);
                 settlementWalletMapper.insert(kwpSettlementWallet);
 
                 //更新交易结算单状态和金额
                 KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
                 kwpSettlementTrade.setId(byId.getId());
                 kwpSettlementTrade.setActualPrice(byId.getActualPrice().add(price));
-                kwpSettlementTrade.setStatus(subtract.compareTo(new BigDecimal("0.0")) == 0 ? SettlementEnum.ALL_PAYMENT.getStatus()
+                kwpSettlementTrade.setStatus(subtract.compareTo(new BigDecimal("0.0")) == NumberConstant.ZERO ? SettlementEnum.ALL_PAYMENT.getStatus()
                         : SettlementEnum.PARTIAL_PAYMENT.getStatus());
                 kwpSettlementTrade.setUpdateBy(LoginUserHolder.getUserId());
                 kwpSettlementTrade.setUpdateTime(LocalDateTime.now());
@@ -363,7 +364,7 @@ public class KwpSettlementWalletService {
      * 预付款、货到付款记录
      * 前端接口分开
      *
-     * @param settlementWalletReq
+     * @param settlementWalletReq 请求参数
      * @return
      */
     public PageRes<SettlementWalletVo> pageList(SettlementWalletReq settlementWalletReq) {
@@ -447,7 +448,7 @@ public class KwpSettlementWalletService {
     /**
      * 销售-预付款
      *
-     * @param id
+     * @param id 结算单id
      * @return
      */
     public String confirmTradeCollection(Long id) {
@@ -481,13 +482,13 @@ public class KwpSettlementWalletService {
                 kwpSettlementWallet.setPayPrice(byId.getTotalPrice());
                 kwpSettlementWallet.setTopayPrice(new BigDecimal("0.0"));
                 kwpSettlementWallet.setType(SettlementWalletPayTypeEnum.ADVANCE_PAYMENT.getStatus());
-                kwpSettlementWallet.setRemark("");
-                kwpSettlementWallet.setStatus(0);
+                kwpSettlementWallet.setRemark(Global.EMPTY_STRING);
+                kwpSettlementWallet.setStatus(NumberConstant.ZERO);
                 kwpSettlementWallet.setCreateBy(LoginUserHolder.getUserId());
                 kwpSettlementWallet.setCreateTime(LocalDateTime.now());
                 kwpSettlementWallet.setUpdateBy(LoginUserHolder.getUserId());
                 kwpSettlementWallet.setUpdateTime(LocalDateTime.now());
-                kwpSettlementWallet.setDelFlag(0);
+                kwpSettlementWallet.setDelFlag(Global.UN_DELETED);
                 settlementWalletMapper.insert(kwpSettlementWallet);
                 settlementTradeTrackService.save(KwpSettlementTradeTrack.build(byId.getId(), SettlementTrackEnum.PRE_PAY.getStatus()));
                 //todo-xcq 调用中台接口
@@ -502,9 +503,9 @@ public class KwpSettlementWalletService {
     }
 
     /**
-     * 电子钱包余额
+     * 货到付款-查询钱包余额
      *
-     * @param id
+     * @param id 结算单id
      * @return
      */
     public BigDecimal getConfirmTradePayment(Long id) {
@@ -516,7 +517,7 @@ public class KwpSettlementWalletService {
             throw new BusinessException("只支持货货到付款方式订单进行当前操作");
         }
         List<LedgerUnitDto> listById = kwpSettlementTradeService.getListById(id);
-        if (CollectionUtils.isEmpty(listById) || listById.size() != 2) {
+        if (CollectionUtils.isEmpty(listById) || listById.size() != NumberConstant.TWO) {
             throw new BusinessException("对账单交易企业双方不存在或缺少");
         }
         Long uid = null;
@@ -541,7 +542,7 @@ public class KwpSettlementWalletService {
             throw new BusinessException("暂未开通电子钱包");
         }
         List<WalletDto> data = wallet.getData();
-        return BigDecimal.valueOf(data.get(0).getMoney() / 100.0);
+        return BigDecimal.valueOf(data.get(NumberConstant.ZERO).getMoney() / 100.0);
     }
 }
 

+ 6 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpWalletRelationService.java

@@ -23,6 +23,12 @@ public class KwpWalletRelationService {
     private KwpWalletRelationMapper relationMapper;
     private final ConcurrentHashMap<Long, String> map = new ConcurrentHashMap<>(12);
 
+    /**
+     * 根据企业id查询中台用户
+     *
+     * @param entId 企业id
+     * @return
+     */
     public String getRelation(Long entId) {
         if (Objects.isNull(entId)) {
             return null;

+ 4 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -20,6 +20,7 @@ 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.AreaTreeFrontResDto;
 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;
@@ -512,9 +513,10 @@ public class KwTransportService {
             field = "unloadCityCode";
         }
         List<Integer> list  = mongoTemplate.findDistinct(query, field ,SckwWaybillOrder.class, Integer.class);
+        List<AreaTreeFrontResDto> areaTreeFrontResDtos = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(list)) {
-            // RPC 请求数据 获取多级结构信息
+            areaTreeFrontResDtos = remoteSystemService.queryAreaTreeFrontByCodeList(list);
         }
-        return HttpResult.ok(list);
+        return HttpResult.ok(areaTreeFrontResDtos);
     }
 }

+ 2 - 6
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -1,6 +1,5 @@
 package com.sckw.system.dubbo;
 
-import com.google.common.collect.Lists;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -19,9 +18,7 @@ import com.sckw.system.model.vo.res.FindAreaTreeResVo;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.SysAreaService;
 import org.apache.dubbo.config.annotation.DubboService;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -32,7 +29,6 @@ import java.util.stream.Collectors;
  * @date 2023/6/12
  */
 @DubboService(group = "design", version = "2.0.0")
-@Service
 public class RemoteSystemServiceImpl implements RemoteSystemService {
 
     @Autowired
@@ -303,7 +299,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
     @Override
     public Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> entIdList) {
-        Map<Long, EntCacheResDto> result = new HashMap<>();
+        Map<Long, EntCacheResDto> result = new HashMap<>(4);
         for (Long entId : entIdList) {
             EntCacheResDto entCacheResDto = queryEntCacheById(entId);
             if (Objects.isNull(entCacheResDto)) {
@@ -359,7 +355,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         }
 
         Map<Long, List<KwsEntDept>> collect = kwsEntDepts.stream().collect(Collectors.groupingBy(KwsEntDept::getEntPid));
-        Map<Long, List<EntCacheResDto>> map = new HashMap<>();
+        Map<Long, List<EntCacheResDto>> map = new HashMap<>(4);
         for (Long key : collect.keySet()) {
             List<KwsEntDept> kwsEntDepts1 = collect.get(key);
             List<Long> entIdList = kwsEntDepts1.stream().map(KwsEntDept::getEntId).toList();

+ 0 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java

@@ -32,7 +32,6 @@ import java.util.stream.Collectors;
  */
 
 @DubboService(group = "design", version = "2.0.0")
-@Service
 public class RemoteUserServiceImpl implements RemoteUserService {
 
     @Resource

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

@@ -217,7 +217,7 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-取消派车(撤回派车)
+     * 承运订单-取消派车(撤回派车)/单趟撤回
      *
      * @param ids 车辆运单id
      * @return
@@ -228,7 +228,7 @@ public class AcceptCarriageOrderController {
         try {
             return acceptCarriageOrderService.cancelDelivery(lists);
         } catch (Exception e) {
-            log.error("承运订单-取消派车 error:{}", e.getMessage(), e);
+            log.error("承运订单-单趟撤回 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

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

@@ -34,7 +34,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
 
     int updateByPrimaryKey(KwtLogisticsOrder record);
 
-    void removeById(KwtLogisticsOrder logisticsOrder);
+//    void removeById(KwtLogisticsOrder logisticsOrder);
 
     /**
      * 查询物流订单数据

+ 38 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddressDropListDTO.java

@@ -0,0 +1,38 @@
+package com.sckw.transport.model.dto;
+
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @desc: 物流订单地址下拉列表响应
+ * @author: yzc
+ * @date: 2023-08-02 14:49
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class AddressDropListDTO implements Serializable {
+
+
+    @Serial
+    private static final long serialVersionUID = -1892537474089018495L;
+
+    /**
+     * 装货地址树
+     */
+    private List<AreaTreeFrontResDto> loadAddressList;
+
+    /**
+     * 卸货地址树
+     */
+    private List<AreaTreeFrontResDto> unloadAddressList;
+
+}

+ 94 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -572,32 +572,99 @@ public class AcceptCarriageOrderService {
         log.info("接单操作接收数据:{}", JSONObject.toJSONString(orderDTO));
         HttpResult result = new HttpResult();
         result.setCode(HttpStatus.SUCCESS_CODE);
+        HttpResult httpResult = ValidUtil.serviceValid(orderDTO);
+        if (!String.valueOf(httpResult.getCode()).equals(String.valueOf(HttpStatus.SUCCESS_CODE))) {
+            result.setMsg(httpResult.getMsg());
+            return result;
+        }
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
                 .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
                 .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
         if (logisticsOrder == null) {
             result.setMsg("单据不存在!");
+            return result;
+        }
+        if (!LogisticsOrderEnum.PENDING_ORDER.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
+            result.setMsg("该【" + orderDTO.getLOrderNo() + "】单号并不是待接单状态!");
+            return result;
+        }
+        KwtLogisticsOrderContract contract = kwtLogisticsOrderContractMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderContract>()
+                .eq(KwtLogisticsOrderContract::getLOrderId, orderDTO.getLOrderId()));
+        if (contract == null) {
+            result.setMsg("该订单并未存在合同信息!");
+            return result;
+        }
+        /**
+         * 根据合同是否已签约 变更物流订单状态 已签约->待派车  未签约->签约中
+         * */
+        /**判断生成物流订单应生成哪一种单据状态*/
+        List<Long> contractList = new ArrayList<>();
+        contractList.add(contract.getContractId());
+        Map<Long, ContractCommonInfoResDto> longContractCommonInfoResDtoMap = remoteContractService.queryContractBaseInfo(contractList);
+        if (CollectionUtils.isEmpty(longContractCommonInfoResDtoMap)) {
+            throw new BusinessException("并未有对应合同,应先签约合同");
+        }
+        if (longContractCommonInfoResDtoMap.get(contract.getContractId()) == null) {
+            throw new BusinessException("并未有对应合同,应先签约合同");
+        }
+        ContractCommonInfoResDto infoResDto = longContractCommonInfoResDtoMap.get(contract.getContractId());
+        /**状态判断
+         * 是否是已签约合同
+         * */
+        // 0 已签约 1待签约
+        Integer status = infoResDto.getStatus();
+        Integer orderStatus = LogisticsOrderEnum.PENDING_ORDER.getCode();
+        if (NumberConstant.ONE == status) {
+            orderStatus = LogisticsOrderEnum.PENDING_ORDER.getCode();
+        } else if (NumberConstant.ZERO == status) {
+            orderStatus = LogisticsOrderEnum.WAIT_DELIVERY.getCode();
+        } else {
+            log.info("接单 物流订单id:{}," +
+                            "物流订单编号:{},合同id:{},合同信息:{}",
+                    orderDTO.getLOrderId(), orderDTO.getLOrderNo(),
+                    contract.getContractId(), JSONObject.toJSONString(infoResDto));
+            throw new RuntimeException("物流订单-接单异常");
         }
         if (orderDTO.getType()) {
-            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
-                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
-                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.WAIT_DELIVERY.getCode())
-                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
-                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+            //修改单据状态
+            logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                    .set(KwtLogisticsOrder::getStatus, orderStatus)
+                    .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
         } else {
-            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
-                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
-                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.SEND_BACK.getCode())
-                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
-                    .set(StringUtils.isNotBlank(orderDTO.getRemark()), KwtLogisticsOrderTrack::getRemark, orderDTO.getRemark())
-                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+            //删除订单
+            logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                    .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
+                    .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
         }
-        logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
-                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
-                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
-                .set(KwtLogisticsOrder::getUpdateTime, new Date())
-                .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
+        //状态表新增状态数据
+        KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                .eq(KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId()).eq(KwtLogisticsOrderTrack::getStatus, orderStatus));
+        if (track == null) {
+            KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
+            orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+            orderTrack.setLOrderId(Long.parseLong(orderDTO.getLOrderId()));
+            orderTrack.setRemark(orderDTO.getRemark());
+            orderTrack.setStatus(orderStatus);
+            orderTrack.setCreateBy(LoginUserHolder.getUserId());
+            orderTrack.setCreateTime(new Date());
+            orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+            orderTrack.setUpdateTime(new Date());
+            logisticsOrderTrackMapper.insert(orderTrack);
+        }else {
+            track.setRemark(orderDTO.getRemark());
+            track.setUpdateTime(new Date());
+            track.setUpdateBy(LoginUserHolder.getUserId());
+            track.setStatus(orderStatus);
+            logisticsOrderTrackMapper.updateById(track);
+        }
+
         return result;
     }
 
@@ -806,6 +873,7 @@ public class AcceptCarriageOrderService {
      */
     @Transactional(rollbackFor = Exception.class)
     public HttpResult cancelDelivery(List<String> ids) {
+        List<JSONObject> list = new ArrayList<>();
         JSONObject result = new JSONObject(NumberConstant.THREE);
         for (String id : ids) {
             result.put("id", id);
@@ -814,10 +882,14 @@ public class AcceptCarriageOrderService {
             if (waybillOrder == null) {
                 result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
                 result.put("message", "单据不存在");
+                list.add(result);
+                continue;
             }
             if (!CarWaybillEnum.PENDING_ORDER.getCode().equals(waybillOrder.getStatus())) {
                 result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
                 result.put("message", "单据不是待接单状态,不可取消!");
+                list.add(result);
+                continue;
             }
             /**针对于趟次车,需要将可派单数量溯源回归于物流订单中*/
             KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
@@ -861,8 +933,9 @@ public class AcceptCarriageOrderService {
             streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
             result.put("status", HttpStatus.SUCCESS_CODE);
             result.put("message", "取消成功");
+            list.add(result);
         }
-        return HttpResult.ok(result);
+        return HttpResult.ok(list);
     }
 
     /**
@@ -1208,13 +1281,13 @@ public class AcceptCarriageOrderService {
             }
         }
         if (!ObjectUtils.isEmpty(orderDTO.getLoss())) {
-            if (orderDTO.getTaxRate().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
-                throw new BusinessException("税率填写格式错误!");
+            if (orderDTO.getLoss().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
+                throw new BusinessException("合理损耗填写格式错误!");
             }
         }
         if (!ObjectUtils.isEmpty(orderDTO.getGoodsPrice())) {
-            if (orderDTO.getTaxRate().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
-                throw new BusinessException("税率填写格式错误!");
+            if (orderDTO.getGoodsPrice().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
+                throw new BusinessException("扣亏货值填写格式错误!");
             }
         }
     }

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

@@ -14,9 +14,11 @@ import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringTimeUtil;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
+import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
@@ -24,12 +26,10 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
-import com.sckw.transport.model.dto.AddOrderDTO;
-import com.sckw.transport.model.dto.OrderCarDTO;
-import com.sckw.transport.model.dto.OrderDTO;
-import com.sckw.transport.model.dto.OrderFinishDTO;
+import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.vo.CarWaybillVO;
 import com.sckw.transport.model.vo.OrderFinishVO;
 import jakarta.annotation.Resource;
@@ -43,10 +43,8 @@ import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author lfdc
@@ -176,27 +174,34 @@ public class ConsignOrderService {
         BigDecimal deductWeighNumber = new BigDecimal("0.00");
         if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
             for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
-                CarWaybillVO carWaybillVo = new CarWaybillVO();
-                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                //派车量
+                BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
                 /**亏吨量/吨->装货量-卸货量
-                 * 合理损耗值=已委托量*合理损耗
-                 扣亏量/吨->亏吨量-合理损耗值*/
-                //合理损耗值=已委托量*合理损耗
-                BigDecimal multiply = kwtWaybillOrder.getEntrustAmount().multiply(loss.divide(BigDecimal.valueOf(1000L)));
-                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == 0 ?
-                        new BigDecimal(NumberConstant.ZERO) : kwtWaybillOrder.getDeficitAmount().subtract(multiply));
-                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
-                if (carWaybillVo.getLoadAmount() != null) {
-                    loadAmountNumber = loadAmountNumber.add(new BigDecimal(carWaybillVo.getLoadAmount()));
-                }
-                if (carWaybillVo.getUnloadAmount() != null) {
-                    unloadAmountNumber = unloadAmountNumber.add(new BigDecimal(carWaybillVo.getUnloadAmount()));
+                 * 合理损耗值=装货量*合理损耗
+                 扣亏量/吨->亏吨量-合理损耗值
+                 罚款值 扣亏量/吨*扣亏货值
+                 运价:
+                 按照装货量 运价*装货量
+                 按照卸货量 卸货量*运输单价-罚款值
+                 按照趟次=运价
+                 */
+                //已委托量
+                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                //合理损耗值
+                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                //亏吨量
+                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                //扣亏量/吨
+                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
+                if (kwtWaybillOrder.getLoadAmount() != null) {
+                    loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
                 }
-                if (carWaybillVo.getDefectiveWeigh() != null) {
-                    defectiveWeighNumber = defectiveWeighNumber.add(new BigDecimal(carWaybillVo.getDefectiveWeigh()));
+                if (kwtWaybillOrder.getUnloadAmount() != null) {
+                    unloadAmountNumber = unloadAmountNumber.add(kwtWaybillOrder.getUnloadAmount());
                 }
-                deductWeighNumber = deductWeighNumber.add(carWaybillVo.getDeduct());
+                defectiveWeighNumber = defectiveWeighNumber.add(defectiveWeigh);
+                deductWeighNumber = deductWeighNumber.add(deduct);
             }
         }
         statistics.put("count", kwtWaybillOrders.size());
@@ -242,26 +247,29 @@ public class ConsignOrderService {
         BigDecimal deductWeighNumber = new BigDecimal(NumberConstant.ZERO);
         if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
             for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
-                CarWaybillVO carWaybillVo = new CarWaybillVO();
-                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                //派车量
+                BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
                 /**亏吨量/吨->装货量-卸货量
-                 扣亏量/吨->亏吨量*合理损耗*/
-                BigDecimal multiply = kwtWaybillOrder.getEntrustAmount().multiply(loss.divide(BigDecimal.valueOf(1000L)));
-                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == 0 ?
-                        new BigDecimal(NumberConstant.ZERO) : kwtWaybillOrder.getDeficitAmount().subtract(multiply));
-                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
-                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
-                if (carWaybillVo.getLoadAmount() != null) {
-                    loadAmountNumber = loadAmountNumber.add(new BigDecimal(carWaybillVo.getLoadAmount()));
+                 * 合理损耗值=装货量*合理损耗
+                 扣亏量/吨->亏吨量-合理损耗值
+                 */
+                //已委托量
+                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                //合理损耗值
+                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                //亏吨量
+                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                //扣亏量/吨
+                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
+                if (kwtWaybillOrder.getLoadAmount() != null) {
+                    loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
                 }
-                if (carWaybillVo.getUnloadAmount() != null) {
-                    unloadAmountNumber = unloadAmountNumber.add(new BigDecimal(carWaybillVo.getUnloadAmount()));
+                if (kwtWaybillOrder.getUnloadAmount() != null) {
+                    unloadAmountNumber = unloadAmountNumber.add(kwtWaybillOrder.getUnloadAmount());
                 }
-                if (carWaybillVo.getDefectiveWeigh() != null) {
-                    defectiveWeighNumber = defectiveWeighNumber.add(new BigDecimal(carWaybillVo.getDefectiveWeigh()));
-                }
-                deductWeighNumber = deductWeighNumber.add(carWaybillVo.getDeduct());
+                defectiveWeighNumber = defectiveWeighNumber.add(defectiveWeigh);
+                deductWeighNumber = deductWeighNumber.add(deduct);
             }
         }
         statistics.put("count", kwtWaybillOrders.size());
@@ -301,11 +309,20 @@ public class ConsignOrderService {
                 KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
                         .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
-                //扣亏量/吨->亏吨量-合理损耗
-                BigDecimal deduct = null;
-                if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
-                    deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
-                }
+                //合理损耗
+                BigDecimal loss = order.getLoss();
+                /**亏吨量/吨->装货量-卸货量
+                 * 合理损耗值=装货量*合理损耗
+                 扣亏量/吨->亏吨量-合理损耗值
+                 */
+                //已委托量
+                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                //合理损耗值
+                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                //亏吨量
+                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                //扣亏量/吨
+                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
                 carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
                 carWaybillVo.setWOrderNo(order.getLOrderNo());
                 carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
@@ -316,6 +333,7 @@ public class ConsignOrderService {
 //                SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(kwtWaybillOrder.getId(), SckwWaybillOrder.class);
                 /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
 //                carWaybillVo.setConsignMotorcade(sckwWaybillOrder == null ? null : sckwWaybillOrder.getCarrierFirmName());
+                //派车量
                 carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
                 carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
                 if (loadTicket != null) {
@@ -374,11 +392,20 @@ public class ConsignOrderService {
                 KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
                         .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
-                //扣亏量/吨->亏吨量-合理损耗
-                BigDecimal deduct = null;
-                if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
-                    deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
-                }
+                //合理损耗
+                BigDecimal loss = order.getLoss();
+                /**亏吨量/吨->装货量-卸货量
+                 * 合理损耗值=装货量*合理损耗
+                 扣亏量/吨->亏吨量-合理损耗值
+                 */
+                //已委托量
+                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                //合理损耗值
+                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                //亏吨量
+                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                //扣亏量/吨
+                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
                 carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
                 carWaybillVo.setWOrderNo(order.getLOrderNo());
                 carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
@@ -389,6 +416,7 @@ public class ConsignOrderService {
 //                SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(kwtWaybillOrder.getId(), SckwWaybillOrder.class);
                 /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
 //                carWaybillVo.setConsignMotorcade(sckwWaybillOrder == null ? null : sckwWaybillOrder.getCarrierFirmName());
+                //派车量
                 carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
                 carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
                 if (loadTicket != null) {
@@ -632,12 +660,17 @@ public class ConsignOrderService {
     }
 
     /**
-     * 托运订单-完结订单
+     * 托运订单-新建订单
      *
      * @param addOrderDTO
      * @return
      */
     public HttpResult addOrder(AddOrderDTO addOrderDTO) throws ParseException {
+        HttpResult httpResult = ValidUtil.serviceValid(addOrderDTO);
+        if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(String.valueOf(httpResult.getCode()))) {
+            return HttpResult.error(httpResult.getMsg());
+        }
+        checkAddOrderParam(addOrderDTO);
         /**保存新建数据*/
         Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
         /**生成订单编号*/
@@ -684,6 +717,29 @@ public class ConsignOrderService {
         return HttpResult.ok();
     }
 
+    /**
+     * 校验请求参数
+     *
+     * @param orderDTO
+     */
+    private void checkAddOrderParam(AddOrderDTO orderDTO) {
+        if (!ObjectUtils.isEmpty(orderDTO.getTaxRate())) {
+            if (orderDTO.getTaxRate().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
+                throw new BusinessException("税率填写格式错误!");
+            }
+        }
+        if (!ObjectUtils.isEmpty(orderDTO.getLoss())) {
+            if (orderDTO.getLoss().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
+                throw new BusinessException("合理损耗填写格式错误!");
+            }
+        }
+        if (!ObjectUtils.isEmpty(orderDTO.getGoodsPrice())) {
+            if (orderDTO.getGoodsPrice().compareTo(new BigDecimal(NumberConstant.ZERO)) < 0) {
+                throw new BusinessException("扣亏货值填写格式错误!");
+            }
+        }
+    }
+
     /**
      * 托运订单-页面新增订单-商品信息
      *
@@ -982,7 +1038,27 @@ public class ConsignOrderService {
      */
     public HttpResult getLogisticsOrderAddressList() {
         Long entId = LoginUserHolder.getEntId();
-        List<Integer> codeList = kwtLogisticsOrderMapper.getAddressList(entId);
-        return HttpResult.ok(codeList);
+        AddressDropListDTO res = new AddressDropListDTO();
+        List<KwtLogisticsOrderUnit> unitInfo = kwtLogisticsOrderUnitMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
+                .eq(KwtLogisticsOrderUnit::getEntId, entId));
+        if (CollectionUtils.isEmpty(unitInfo)) {
+            return HttpResult.ok(res);
+        }
+        Set<Long> lOrderIds = unitInfo.stream().map(KwtLogisticsOrderUnit::getLOrderId).collect(Collectors.toSet());
+        //订单ids获取地址信息
+        List<KwtLogisticsOrderAddress> addressList = kwtLogisticsOrderAddressMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .in(KwtLogisticsOrderAddress::getLOrderId, lOrderIds));
+        if (CollectionUtils.isEmpty(addressList)) {
+            return HttpResult.ok(res);
+        }
+        //装卸货地址类型分组获取装卸货cityCodes
+        Map<Integer, List<Integer>> map = addressList.stream().collect(Collectors.
+                groupingBy(KwtLogisticsOrderAddress::getAddressType, Collectors.mapping(KwtLogisticsOrderAddress::getCityCode, Collectors.toList())));
+        //装货地址下拉列表树
+        List<AreaTreeFrontResDto> loadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(NumberConstant.ONE));
+        //卸货地址下拉列表树
+        List<AreaTreeFrontResDto> unloadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(NumberConstant.TWO));
+        res.setLoadAddressList(loadTree).setUnloadAddressList(unloadTree);
+        return HttpResult.ok(res);
     }
 }

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

@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.contract.api.RemoteContractService;
-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;
@@ -50,7 +49,10 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -172,34 +174,7 @@ public class LogisticsConsignmentService {
         }
         String lOrderNo = com.sckw.transport.utils.StringUtils.getLOrderNo();
         Long orderId = new IdWorker(NumberConstant.ONE).nextId();
-        /**判断生成物流订单应生成哪一种单据状态*/
-        List<Long> contractList = new ArrayList<>();
-        contractList.add(Long.parseLong(bo.getContractId()));
-        Map<Long, ContractCommonInfoResDto> longContractCommonInfoResDtoMap = remoteContractService.queryContractBaseInfo(contractList);
-        if (CollectionUtils.isEmpty(longContractCommonInfoResDtoMap)) {
-            throw new RuntimeException("并未有对应合同,应先签约合同");
-        }
-        if (longContractCommonInfoResDtoMap.get(Long.parseLong(bo.getContractId())) == null) {
-            throw new RuntimeException("并未有对应合同,应先签约合同");
-        }
-        ContractCommonInfoResDto infoResDto = longContractCommonInfoResDtoMap.get(Long.parseLong(bo.getContractId()));
-        /**状态判断
-         * 是否是已签约合同
-         * */
-        // 0 已签约 1待签约
-        Integer status = infoResDto.getStatus();
         Integer orderStatus = LogisticsOrderEnum.PENDING_ORDER.getCode();
-        if (NumberConstant.ONE == status) {
-            orderStatus = LogisticsOrderEnum.TO_BE_PLANNED.getCode();
-        } else if (NumberConstant.ZERO == status) {
-            orderStatus = LogisticsOrderEnum.PENDING_ORDER.getCode();
-        } else {
-            log.info("采购/销售生成物流托运 贸易订单id:{}," +
-                            "贸易订单编号:{},合同id:{},合同信息:{}",
-                    bo.getTOrderId(), bo.getTOrderNo(),
-                    bo.getContractId(), JSONObject.toJSONString(infoResDto));
-            throw new RuntimeException("生成物流托运合同异常");
-        }
         insertLogisticsGoods(bo, lOrderNo, orderId);
         insertLogisticsOrder(bo, lOrderNo, order, tradeOrder, orderId, orderStatus);
         insertLogisticsOrderContract(bo, orderId);

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

@@ -105,8 +105,8 @@ public class WaybillManagementService {
             wayBillDetailDTO.setEndTime(DateUtil.getDateTime(info.getEndTime()));
             wayBillDetailDTO.setCreateBy(info.getCreateByName());
             wayBillDetailDTO.setGoodsName(info.getGoodsName());
-            wayBillDetailDTO.setLoadDetailAddress(info.getLoadDetailAddress());
-            wayBillDetailDTO.setUnloadDetailAddress(info.getUnloadDetailAddress());
+            wayBillDetailDTO.setLoadDetailAddress(info.getLoadCityName().concat(info.getLoadDetailAddress()));
+            wayBillDetailDTO.setUnloadDetailAddress(info.getUnloadCityName().concat(info.getUnloadDetailAddress()));
             // 计价方式
             KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectById(info.getLOrderId());
             if(!ObjectUtils.isEmpty(kwtLogisticsOrder)) {