Browse Source

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

xucaiqin 2 years ago
parent
commit
14d284de78
20 changed files with 200 additions and 73 deletions
  1. 11 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java
  2. 4 4
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/TestController.java
  3. 8 6
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  4. 0 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderDraftParam.java
  5. 0 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java
  6. 4 16
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  7. 4 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  8. 5 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  9. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  10. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  11. 6 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java
  12. 23 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java
  13. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillTicketVO.java
  14. 52 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  15. 5 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  16. 6 7
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  17. 5 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  18. 22 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  19. 30 15
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  20. 1 1
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 11 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -1,5 +1,8 @@
 package com.sckw.core.model.enums;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 车辆运单状态枚举
@@ -111,6 +114,14 @@ public enum CarWaybillEnum {
         return null;
     }
 
+    public static List<Integer> getCodes() {
+        List<Integer> codes = new ArrayList<>();
+        for (CarWaybillEnum waybillEnum : CarWaybillEnum.values()) {
+            codes.add(waybillEnum.getCode());
+        }
+        return codes;
+    }
+
     /**
      * @param code 状态码
      * @desc 是否可以变更司机/车辆

+ 4 - 4
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/TestController.java

@@ -33,9 +33,9 @@ public class TestController {
     public R<List<WalletDto>> wall(@RequestParam("uid") Long uid, String channel, Long filter) {
         return payCenterDubboService.wallet(uid, null, filter);
     }
-    @GetMapping("/test")
-    public R<Object> test(@RequestParam("entId") Long entId) {
-        return R.ok(paymentDubboService.checkSettlement(entId));
-    }
+//    @GetMapping("/test")
+//    public R<Object> test(@RequestParam("entId") Long entId) {
+//        return R.ok(paymentDubboService.checkSettlement(entId));
+//    }
 
 }

+ 8 - 6
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -17,6 +17,7 @@ import com.sckw.core.utils.CollectionUtils;
 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.EasyExcelUtil;
 import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.dao.KwmCooperateTypeMapper;
@@ -40,7 +41,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
+import org.springframework.util.Assert;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -190,19 +191,20 @@ public class KwmCooperateManageService {
         Long userId = LoginUserHolder.getUserId();
         Date date = new Date();
         //判断是否可以解除-销售订单
-        Boolean order = tradeOrderInfoService.associateEnt(kwmCooperates.get(0).getEntId());
+        Boolean order = tradeOrderInfoService.associateEnt(kwmCooperates.get(0).getInviteeEntId(),kwmCooperates.get(0).getInviteeEntId());
         if (order)
         {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_031);
         }
 
         //判断是否可以解除-托运和承运
-        Boolean sport = transportDubboService.checkLogisticsOrderFinishByEntId(kwmCooperates.get(0).getEntId());
-        if (sport)
+        HttpResult response = transportDubboService.checkLogisticsOrderIsFinishByEntId(kwmCooperates.get(0).getInviteeEntId(),kwmCooperates.get(0).getInviteeEntId());
+        Object receivedResult = response.getData();
+        if (receivedResult !=  null)
         {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_031);
         }
-        Map<OrderEnum, List<String>> ledgerMap = paymentDubboService.checkLedger(kwmCooperates.get(0).getEntId());
+        Map<OrderEnum, List<String>> ledgerMap = paymentDubboService.checkLedger(kwmCooperates.get(0).getInviteeEntId(),kwmCooperates.get(0).getInviteeEntId());
         if (!CollectionUtils.isEmpty(ledgerMap.get(OrderEnum.LOGISTICS)))
         {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_031);
@@ -211,7 +213,7 @@ public class KwmCooperateManageService {
         {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_031);
         }
-        Map<OrderEnum,List<String>> settlementMap= paymentDubboService.checkSettlement(kwmCooperates.get(0).getEntId());
+        Map<OrderEnum,List<String>> settlementMap= paymentDubboService.checkSettlement(kwmCooperates.get(0).getInviteeEntId(),kwmCooperates.get(0).getInviteeEntId());
         if (!CollectionUtils.isEmpty(settlementMap.get(OrderEnum.LOGISTICS)))
         {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_031);

+ 0 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderDraftParam.java

@@ -32,12 +32,10 @@ public class PurchaseOrderDraftParam {
     /**
      * 订单总量
      */
-    @DecimalMin(value = "0.01",message = "订单总量必须大于零")
     private BigDecimal amount;
     /**
      * 订单金额
      */
-    @DecimalMin(value = "0.01",message = "订单金额必须大于零")
     private BigDecimal price;
 
     /**

+ 0 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java

@@ -44,13 +44,11 @@ public class UpdateOrderParam {
     /**
      * 订单总量
      */
-    @DecimalMin(value = "0.01",message = "订单总量必须大于零")
     private BigDecimal amount;
 
     /**
      * 订单金额
      */
-    @DecimalMin(value = "0.01",message = "订单金额必须大于零")
     private BigDecimal price;
 
     /**

+ 4 - 16
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -614,11 +614,11 @@ public class KwoTradeOrderService {
 
 
     private void checkParams(UpdateOrderParam param, String source) {
-        if (Objects.isNull(param.getAmount())) {
-            throw new BusinessException("订单总量不能为空!");
+        if (Objects.isNull(param.getAmount()) || param.getAmount().compareTo(BigDecimal.ZERO) <= 0) {
+            throw new BusinessException("订单总量不能为空且必须大于零!");
         }
-        if (Objects.isNull(param.getPrice())) {
-            throw new BusinessException("订单金额不能为空!");
+        if (Objects.isNull(param.getPrice()) || param.getPrice().compareTo(BigDecimal.ZERO) <= 0) {
+            throw new BusinessException("订单金额不能为空且必须大于零!");
         }
         if (StringUtils.isBlank(param.getTrading())) {
             throw new BusinessException("交易方式不能为空!");
@@ -643,18 +643,6 @@ public class KwoTradeOrderService {
             if (Objects.isNull(contractInfo.getContractId())) {
                 throw new BusinessException("合同id不能为空!");
             }
-            if (StringUtils.isBlank(contractInfo.getContractNo())) {
-                throw new BusinessException("合同编号不能为空!");
-            }
-            if (StringUtils.isBlank(contractInfo.getContractName())) {
-                throw new BusinessException("合同名称不能为空!");
-            }
-            if (StringUtils.isBlank(contractInfo.getContractSigningWay())) {
-                throw new BusinessException("合同签约方式不能为空!");
-            }
-            if (StringUtils.isBlank(contractInfo.getContractStatus())) {
-                throw new BusinessException("合同状态不能为空!");
-            }
         }
         GoodsInfo goodsInfo = param.getGoodsInfo();
         if (Objects.isNull(goodsInfo)) {

+ 4 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -348,6 +348,10 @@ public class KwOrderService {
         if (Objects.nonNull(params.getProcureEntId())) {
             criteria.and("procureEntId").is(params.getProcureEntId());
         }
+        //交易方式
+        if(StringUtils.isNotBlank(params.getTrading())){
+            criteria.and("trading").is(params.getTrading());
+        }
         //计划开始时间
         if (Objects.nonNull(params.getStartTime())) {
             criteria.and("startTime").gte(params.getStartTime());

+ 5 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -202,6 +202,11 @@ public class KwTransportService {
                 statuses.add(CarWaybillEnum.REVOKED.getCode().longValue());
                 statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
                 criteria.and("status").in(statuses);
+            } else if (query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode()))) {
+                List<Long> statuses = new ArrayList<>();
+                statuses.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
+                statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
+                criteria.and("status").in(statuses);
             } else if (!query.getStatus().equals("all")) {
                 criteria.and("status").is(Integer.valueOf(query.getStatus()));
             }

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

@@ -306,7 +306,7 @@ public class AcceptCarriageOrderController {
      * @return
      */
     @RequestMapping(value = "/commitAcceptCarriageOrderFinish", method = RequestMethod.POST)
-    public HttpResult commitAcceptCarriageOrderFinish(@Validated @RequestBody OrderFinishDTO orderFinishDTO) {
+    public HttpResult commitAcceptCarriageOrderFinish(@Valid @RequestBody OrderFinishDTO orderFinishDTO) {
         try {
             return acceptCarriageOrderService.commitAcceptCarriageOrderFinish(orderFinishDTO);
         } catch (Exception e) {

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

@@ -149,11 +149,11 @@ public class KwtWaybillOrderController {
     }
 
     /**
-     * 查询已排量、待运量数据
+     * 派车-查询已派车量、待运量数据
      * @param orderId
      * @return
      */
-    @RequestMapping(name = "查询已量、待运量数据",path = "/getLogisticsAmountByOrderId",method = RequestMethod.GET)
+    @RequestMapping(name = "查询已派车量、待运量数据",path = "/getLogisticsAmountByOrderId",method = RequestMethod.GET)
     public HttpResult getLogisticsAmountByOrderId(@NotBlank @RequestParam("orderId") String orderId){
         log.info("查询已排量、待运量数据 query :{}",orderId);
         try {

+ 6 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java

@@ -146,10 +146,15 @@ public class WayBillDetailDTO{
     private String unloadDetailAddress;
 
     /**
-     * 承运企业
+     * 托运企业名称
      */
     private String checkFirmName;
 
+    /**
+     * 承运企业
+     */
+    private String carrierFirmName;
+
     /**
      * 运单状态
      */

+ 23 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -64,6 +64,11 @@ public class OrderDetailVO {
      */
     private BigDecimal deduct;
 
+    /**
+     * 扣亏损值
+     */
+    private String deductLabel;
+
     /**
      * 商品名称
      */
@@ -76,10 +81,21 @@ public class OrderDetailVO {
      * 合理亏损
      */
     private BigDecimal loss;
+
+    /**
+     * 合理亏损
+     */
+    private String lossLabel;
     /**
      * 任务总量
      */
     private BigDecimal number;
+
+    /**
+     * 任务总量
+     */
+    private String numberLabel;
+
     /**
      * 订单金额
      */
@@ -92,6 +108,13 @@ public class OrderDetailVO {
      * 运价
      */
     private BigDecimal price;
+
+
+    /**
+     * 运价方式
+     */
+    private String priceLabel;
+
     /**
      * 计划结束时间
      */

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillTicketVO.java

@@ -38,4 +38,15 @@ public class WaybillTicketVO {
      * 卸货重量
      */
     private String unloadWeight;
+
+    /**
+     * 亏吨重量
+     */
+    private String deficitAmount;
+
+    /**
+     * 扣亏量(合理损耗-(实装-实卸))-单位
+     */
+    private String deficitRealAmount;
+
 }

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

@@ -1279,8 +1279,11 @@ public class AcceptCarriageOrderService {
 //            throw new BusinessException("完结订单,实装量不能大于分配量");
 //        }
         BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
-        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
-            throw new BusinessException("完结订单,实装量不能大于分配量");
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+            throw new BusinessException("完结订单,装货量不能大于运输总量");
+        }
+        if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
@@ -1646,6 +1649,53 @@ public class AcceptCarriageOrderService {
         orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : logisticsOrder.getStartTime());
         orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : logisticsOrder.getEndTime());
         orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : logisticsOrder.getLoadAmount());
+        if (logisticsOrder.getSettlementCycle() != null) {
+            Map<String, SysDictResDto> dtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.SETTLEMENT_CYCLE.getType());
+            orderDetailVO.setSettlementCycleLabel(dtoMap.isEmpty() ? null :
+                    (dtoMap.get(String.valueOf(logisticsOrder.getSettlementCycle())) == null ? null : dtoMap.get(String.valueOf(logisticsOrder.getSettlementCycle())).getLabel()));
+        }
+        orderDetailVO.setBillingMode(logisticsOrder.getBillingMode());
+        if (logisticsOrder.getBillingMode() != null) {
+            Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.CHARGING_TYPE.getType());
+            orderDetailVO.setBillingModeLabel(dictResDtoMap.isEmpty() ? null :
+                    (dictResDtoMap.get(logisticsOrder.getBillingMode()) == null ? null : dictResDtoMap.get(logisticsOrder.getBillingMode()).getLabel()));
+        }
+        if (logisticsOrder.getPayment() != null) {
+            Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
+            if (dictResDtoMap.isEmpty()) {
+                orderDetailVO.setPaymentLabel(null);
+            } else {
+                if (dictResDtoMap.get(logisticsOrder.getPayment().toString()) != null) {
+                    orderDetailVO.setPaymentLabel(dictResDtoMap.get(logisticsOrder.getPayment().toString()).getLabel());
+                }
+            }
+        }
+        if (orderDetailVO.getSigningWay() != null) {
+            Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.SIGNING_TYPE.getType());
+            if (dictResDtoMap.isEmpty()) {
+                orderDetailVO.setPaymentLabel(null);
+            } else {
+                if (dictResDtoMap.get(orderDetailVO.getSigningWay().toString()) != null) {
+                    orderDetailVO.setSigningWayLabel(dictResDtoMap.get(orderDetailVO.getSigningWay().toString()).getLabel());
+                }
+            }
+        }
+        if (logisticsOrder.getGoodsPriceUnit() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), logisticsOrder.getGoodsPriceUnit());
+            orderDetailVO.setDeductLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getLossUnit() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE_TYPE.getType(), logisticsOrder.getLossUnit());
+            orderDetailVO.setLossLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getUnit()!=null){
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), logisticsOrder.getUnit());
+            orderDetailVO.setNumberLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getPriceType() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), String.valueOf(logisticsOrder.getPriceType()));
+            orderDetailVO.setPriceLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
         return HttpResult.ok(orderDetailVO);
     }
 

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

@@ -741,8 +741,11 @@ public class ConsignOrderService {
 //            throw new BusinessException("完结订单,实装量不能大于分配量");
 //        }
         BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
-        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
-            throw new BusinessException("完结订单,实装量不能大于分配量");
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+            throw new BusinessException("完结订单,装货量不能大于运输总量");
+        }
+        if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))

+ 6 - 7
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -2319,15 +2319,14 @@ public class KwtWaybillOrderService {
         BigDecimal subcontractAmount = kwtLogisticsOrder.getSubcontractAmount() == null ? new BigDecimal("0.00") : kwtLogisticsOrder.getSubcontractAmount();
         BigDecimal waitDistributionAmount = amount.subtract(entrustAmount).subtract(subcontractAmount);
         Map<String, Map> map = new HashMap(NumberConstant.SIXTEEN);
-        //效的车辆运单状态(其他状态不参与统计中)
+        //效的车辆运单状态(其他状态不参与统计中)
         List<Long> statusList = new ArrayList<>();
+        statusList.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
         statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
-        statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
-        statusList.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
-        statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
-        statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
-        statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
-        statusList.add(CarWaybillEnum.APPROVAL_PASS.getCode().longValue());
+        statusList.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
+        statusList.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
+        statusList.add(CarWaybillEnum.REVOKED.getCode().longValue());
+        statusList.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
         //趟次
         Map<String, Object> tripMap = waybillOrderDao.selectOrderByOrderId(Long.parseLong(orderId), 1, statusList);
         tripMap.put("waitDistributionAmount",waitDistributionAmount);

+ 5 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -1170,13 +1170,12 @@ public class LogisticsConsignmentService {
         if (logisticsOrder == null) {
             throw new BusinessException("采购订单-完结订单-物流单据不存在!");
         }
-//        BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount();
-//        if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
-//            throw new BusinessException("完结订单,实装量不能大于分配量");
-//        }
         BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
-        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
-            throw new BusinessException("完结订单,实装量不能大于分配量");
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+            throw new BusinessException("完结订单,装货量不能大于运输总量");
+        }
+        if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+            throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))

+ 22 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -210,8 +210,8 @@ public class TransportCommonService {
         orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : logisticsOrder.getStartTime());
         orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : logisticsOrder.getEndTime());
         orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : logisticsOrder.getLoadAmount());
-        orderDetailVO.setTotalLoadAmount(logisticsOrder.getTotalLoadAmount());
-        orderDetailVO.setTotalUnloadAmount(logisticsOrder.getTotalUnloadAmount());
+        orderDetailVO.setTotalLoadAmount(logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount());
+        orderDetailVO.setTotalUnloadAmount(logisticsOrder.getTotalUnloadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalUnloadAmount());
         orderDetailVO.setCreateTime(logisticsOrder.getCreateTime());
         orderDetailVO.setPayment(logisticsOrder.getPayment());
         if (logisticsOrder.getPayment() != null) {
@@ -219,8 +219,8 @@ public class TransportCommonService {
             if (dictResDtoMap.isEmpty()) {
                 orderDetailVO.setPaymentLabel(null);
             } else {
-                if (dictResDtoMap.get(logisticsOrder.getPayment()) != null) {
-                    orderDetailVO.setPaymentLabel(dictResDtoMap.get(logisticsOrder.getPayment()).getLabel());
+                if (dictResDtoMap.get(logisticsOrder.getPayment().toString()) != null) {
+                    orderDetailVO.setPaymentLabel(dictResDtoMap.get(logisticsOrder.getPayment().toString()).getLabel());
                 }
             }
         }
@@ -229,11 +229,27 @@ public class TransportCommonService {
             if (dictResDtoMap.isEmpty()) {
                 orderDetailVO.setPaymentLabel(null);
             } else {
-                if (dictResDtoMap.get(orderDetailVO.getSigningWay()) != null) {
-                    orderDetailVO.setSigningWayLabel(dictResDtoMap.get(orderDetailVO.getSigningWay()).getLabel());
+                if (dictResDtoMap.get(String.valueOf(orderDetailVO.getSigningWay())) != null) {
+                    orderDetailVO.setSigningWayLabel(dictResDtoMap.get(orderDetailVO.getSigningWay().toString()).getLabel());
                 }
             }
         }
+        if (logisticsOrder.getGoodsPriceUnit() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), logisticsOrder.getGoodsPriceUnit());
+            orderDetailVO.setDeductLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getLossUnit() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE_TYPE.getType(), logisticsOrder.getLossUnit());
+            orderDetailVO.setLossLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getUnit() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), logisticsOrder.getUnit());
+            orderDetailVO.setNumberLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
+        if (logisticsOrder.getPriceType() != null) {
+            SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), String.valueOf(logisticsOrder.getPriceType()));
+            orderDetailVO.setPriceLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
+        }
         orderDetailVO.setRemark(logisticsOrder.getRemark());
         /**亏吨量/吨->装货量-卸货量
          * 合理损耗值=装货量*合理损耗

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

@@ -38,7 +38,6 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.regex.Pattern;
 
@@ -117,6 +116,8 @@ public class WaybillManagementService {
             wayBillDetailDTO.setUnloadDetailAddress(info.getUnloadCityName().concat(info.getUnloadDetailAddress()));
             wayBillDetailDTO.setLoadName(info.getLoadName());
             wayBillDetailDTO.setUnloadName(info.getUnloadName());
+            wayBillDetailDTO.setCarrierFirmName(info.getCarrierFirmName());
+            wayBillDetailDTO.setCheckFirmName(info.getCheckFirmName());
             // 计费方式
             KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectById(info.getLOrderId());
             if(!ObjectUtils.isEmpty(kwtLogisticsOrder)) {
@@ -151,9 +152,15 @@ public class WaybillManagementService {
             waybillTicketVO.setUnloadTime(DateUtil.getDateTime(info.getUnloadTime()));
             waybillTicketVO.setUnloadWeight(String.valueOf(info.getUnloadAmount()));
             waybillTicketVO.setUnloadUrl(String.valueOf(info.getUnloadUrls()));
+            waybillTicketVO.setDeficitAmount(String.valueOf(info.getDeficitAmount()));BigDecimal deficitLoss = info.getLoss() == null ? BigDecimal.valueOf(0) : info.getLoss();
+            BigDecimal deficitAmount = info.getDeficitAmount() == null ? BigDecimal.valueOf(0) : info.getDeficitAmount();
+            BigDecimal deficitRealAmount = BigDecimal.valueOf(0);
+            if(deficitAmount.compareTo(BigDecimal.valueOf(0)) > 0) {
+                deficitRealAmount = deficitLoss.subtract(deficitAmount);
+            }
+            waybillTicketVO.setDeficitRealAmount(deficitRealAmount.toString());
 //            waybillBoardListVO.setLoadUrls(sckwWaybillOrder.getLoadUrls() != null ? FileUtils.getOSSAddressPrefix() + sckwWaybillOrder.getLoadUrls() : null);
 //            waybillBoardListVO.setUnloadUrls(sckwWaybillOrder.getUnloadUrls() != null ? FileUtils.getOSSAddressPrefix() + sckwWaybillOrder.getUnloadUrls() : null);
-
         }
         List<Integer> statuses = initWaybillIndexStatus();
         // 初始化各状态
@@ -294,7 +301,7 @@ public class WaybillManagementService {
             statusVOS.add(waybillStatusVO);
         });
 
-        Criteria criteria = buildWaybillIndexQuery(query, statuses);
+        Criteria criteria = buildWaybillIndexQuery(query);
         Query queryFormat = new Query(criteria);
         long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
         queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
@@ -392,10 +399,9 @@ public class WaybillManagementService {
     /**
      * 运单看板 查询条件构造
      * @param query
-     * @param statuses
      * @return
      */
-    public Criteria buildWaybillIndexQuery(WaybillOrderDTO query,List<Integer> statuses) {
+    public Criteria buildWaybillIndexQuery(WaybillOrderDTO query) {
         Criteria criteria = new Criteria();
         criteria.and("entId").is(LoginUserHolder.getEntId());
         criteria.and("delFlag").is(NumberConstant.ZERO);
@@ -404,12 +410,18 @@ public class WaybillManagementService {
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             Criteria.where("wOrderId").in(wOrderIds);
         }
-
-        if (StringUtils.isNotBlank(query.getStatus()) && !query.getStatus().equals("all")) {
-            criteria.and("status").is(Integer.valueOf(query.getStatus()));
-        } else {
-            criteria.and("status").in(statuses);
+        if (StringUtils.isNotBlank(query.getStatus())){
+            if (query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode()))) {
+                List<Integer> _statuses = new ArrayList<>();
+                _statuses.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+                _statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
+                criteria.and("status").in(_statuses);
+            }
+            if (!query.getStatus().equals("all")) {
+                criteria.and("status").is(Integer.valueOf(query.getStatus()));
+            }
         }
+
         // 装载时间
         if (Objects.nonNull(query.getStartLoadTime()) && Objects.nonNull(query.getEndLoadTime())) {
             criteria.and("loadTime").gte(query.getStartLoadTime()).lte(DateUtil.offsetDay(query.getEndLoadTime(), 1));
@@ -476,7 +488,7 @@ public class WaybillManagementService {
      */
     public HttpResult waybillIndexStatistics(WaybillOrderDTO query){
         List<Integer> statuses = initWaybillIndexStatus();
-        Criteria criteria = buildWaybillIndexQuery(query, statuses);
+        Criteria criteria = buildWaybillIndexQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
                 Aggregation.group("status").count().as("total"),
@@ -484,12 +496,12 @@ public class WaybillManagementService {
         );
         AggregationResults<TableTops> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwWaybillOrder.class, TableTops.class);
         List<TableTops> results = outputTypeCount.getMappedResults();
-
+        Integer allTotal = 0;
         Map<String, TableTops> listMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         TableTops topTotal = new TableTops();
         topTotal.setName("全部");
         topTotal.setValue("all");
-        topTotal.setTotal(0);
+        topTotal.setTotal(allTotal);
         listMap.put("all", topTotal);
         statuses.forEach(e -> {
             TableTops top = new TableTops();
@@ -500,10 +512,13 @@ public class WaybillManagementService {
         });
         if(CollectionUtils.isNotEmpty(results)) {
             for(TableTops result: results) {
-                listMap.get(result.getValue()).setTotal(result.getTotal());
+                if(listMap.containsKey(result.getValue())) {
+                    listMap.get(result.getValue()).setTotal(result.getTotal());
+                }
+                allTotal += result.getTotal();
             }
         }
-        listMap.get("all").setTotal(listMap.values().parallelStream().mapToInt(e -> e.getTotal()).sum());
+        listMap.get("all").setTotal(allTotal);
         return HttpResult.ok(listMap.values());
     }
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -453,7 +453,7 @@
         l_order_id = #{orderId}
         AND type = #{type} and del_flag = 0
         <if test="statusList != null and statusList.size() > 0">
-            and status in
+            and status not in
             <foreach collection="statusList" open="(" close=")" separator="," item="item">
                 #{item}
             </foreach>