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

Merge branch 'dev' into sky_v1

15928045575 2 лет назад
Родитель
Сommit
c96f4e6ddf
33 измененных файлов с 415 добавлено и 77 удалено
  1. 9 0
      sckw-modules-api/sckw-manage-api/src/main/java/com/sckw/manage/api/RemoteManageService.java
  2. 5 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UnitInfoDetailRes.java
  3. 5 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java
  4. 6 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dubbo/RemoteContractServiceImpl.java
  5. 63 4
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dubbo/RemoteManageServiceImpl.java
  6. 17 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  7. 5 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java
  8. 3 3
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java
  9. 6 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java
  10. 16 8
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  11. 2 0
      sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderUnitMapper.xml
  12. 7 8
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  13. 2 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsTrackService.java
  14. 7 9
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  15. 2 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeTrackService.java
  16. 1 1
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml
  17. 4 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  18. 15 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  19. 10 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java
  20. 4 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  21. 13 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java
  22. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java
  23. 20 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java
  24. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java
  25. 3 9
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSimpleDataVO.java
  26. 29 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  27. 21 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  28. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  29. 5 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  30. 83 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  31. 5 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  32. 20 7
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  33. 11 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

+ 9 - 0
sckw-modules-api/sckw-manage-api/src/main/java/com/sckw/manage/api/RemoteManageService.java

@@ -31,4 +31,13 @@ public interface RemoteManageService {
      */
     List<FindEntCooperateResVo> findEntCooperate(Long entId, Long targetEntId, Integer cooperateType);
 
+    /**
+     * @param entId 集团企业id
+     * @return FindEntCooperateResVo
+     * @desc: 查询集团企业包括其主体单位下的合作单位所属的集团企业
+     * @author: czh
+     * @date: 2023/9/1
+     */
+    List<FindEntCooperateResVo> findAllCooperateEnt(Long entId);
+
 }

+ 5 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UnitInfoDetailRes.java

@@ -39,6 +39,11 @@ public class UnitInfoDetailRes implements Serializable {
      */
     private String firmName;
 
+    /**
+     * 联系人id
+     */
+    private Long contactsId;
+
     /**
      * 联系人姓名
      */

+ 5 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java

@@ -95,4 +95,9 @@ public class EntCacheResDto implements Serializable {
      */
     private String cityName;
 
+    /**
+     * 联系人id
+     */
+    private Long contactsId;
+
 }

+ 6 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dubbo/RemoteContractServiceImpl.java

@@ -75,6 +75,9 @@ public class RemoteContractServiceImpl implements RemoteContractService {
     public void updatePerformed(Long contractId, BigDecimal performedAmount) {
         KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(contractId);
         if (Objects.nonNull(kwcContractLogistics)) {
+            if (kwcContractLogistics.getStatus().equals(ContractStatusEnum.COMPLETE.getCode())) {
+                return;
+            }
             kwcContractLogistics.setPerformedAmount(kwcContractLogistics.getPerformedAmount().add(performedAmount));
             kwcContractLogisticsMapper.updateById(kwcContractLogistics);
             return;
@@ -82,6 +85,9 @@ public class RemoteContractServiceImpl implements RemoteContractService {
 
         KwcContractTrade kwcContractTrade = kwcContractTradeMapper.selectById(contractId);
         if (Objects.nonNull(kwcContractTrade)) {
+            if (kwcContractTrade.getStatus().equals(ContractStatusEnum.COMPLETE.getCode())) {
+                return;
+            }
             kwcContractTrade.setPerformedAmount(kwcContractTrade.getPerformedAmount().add(performedAmount));
             kwcContractTradeMapper.updateById(kwcContractTrade);
         }

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

@@ -9,16 +9,19 @@ import com.sckw.manage.api.model.dto.res.EntAddressResDto;
 import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.manage.dao.KwmAddressMapper;
 import com.sckw.manage.model.entity.KwmAddress;
+import com.sckw.manage.model.entity.KwmCooperate;
+import com.sckw.manage.model.vo.req.FindCooperateByEntReqVo;
 import com.sckw.manage.model.vo.req.FindEntCooperateReqVo;
+import com.sckw.manage.model.vo.res.FindCooperateByEntResVo;
 import com.sckw.manage.service.KwmCooperateManageService;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -35,6 +38,9 @@ public class RemoteManageServiceImpl implements RemoteManageService {
     @Autowired
     private KwmCooperateManageService kwmCooperateManageService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
     /**
      * @param idList 企业id集合
      * @return Map<Long, List<EntAddressResDto>>
@@ -69,4 +75,57 @@ public class RemoteManageServiceImpl implements RemoteManageService {
         }
         return BeanUtils.copyToList(entCooperate, FindEntCooperateResVo.class);
     }
+
+
+    /**
+     * @param entId 集团企业id
+     * @return FindEntCooperateResVo
+     * @desc: 查询集团企业包括其主体单位下的合作单位所属的集团企业
+     * @author: czh
+     * @date: 2023/9/1
+     */
+    @Override
+    public List<FindEntCooperateResVo> findAllCooperateEnt(Long entId) {
+        if (Objects.isNull(entId)) {
+            return Collections.emptyList();
+        }
+        List<Long> ourEntIds = new ArrayList<>();
+        ourEntIds.add(entId);
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(entId);
+        if (Objects.nonNull(entCacheResDto)) {
+            List<EntCacheResDto> child = entCacheResDto.getChild();
+            if (CollectionUtils.isNotEmpty(child)) {
+                ourEntIds.addAll(child.stream().map(EntCacheResDto::getId).toList());
+            }
+        }
+
+        //获取当前集团下所有的企业id,遍历,找到合作单位
+        List<Long> list = new ArrayList<>();
+        List<FindEntCooperateResVo> findEntCooperateResVoList = new ArrayList<>();
+        for (Long ourEntId : ourEntIds) {
+            FindCooperateByEntReqVo findCooperateByEntReqVo = new FindCooperateByEntReqVo();
+            findCooperateByEntReqVo.setEntId(ourEntId);
+            List<FindCooperateByEntResVo> cooperateByEnt = kwmCooperateManageService.findCooperateByEnt(findCooperateByEntReqVo);
+            if (CollectionUtils.isNotEmpty(cooperateByEnt)) {
+                List<Long> targetEntIds = cooperateByEnt.stream().map(FindCooperateByEntResVo::getTargetEntId).toList();
+                Map<Long, EntCacheResDto> longEntCacheResDtoMap = remoteSystemService.queryEntTreeByIds(targetEntIds);
+                for (Long targetEntId : targetEntIds) {
+                    EntCacheResDto entCacheResDto1 = longEntCacheResDtoMap.get(targetEntId);
+                    if (Objects.nonNull(entCacheResDto1)) {
+                        Long id = entCacheResDto1.getId();
+                        if (list.contains(id)) {
+                            continue;
+                        }
+                        list.add(id);
+                        FindEntCooperateResVo findEntCooperateResVo = new FindEntCooperateResVo();
+                        findEntCooperateResVo.setEntId(id);
+                        findEntCooperateResVo.setEntName(entCacheResDto1.getFirmName());
+                        findEntCooperateResVoList.add(findEntCooperateResVo);
+                    }
+                }
+            }
+        }
+
+        return findEntCooperateResVoList;
+    }
 }

+ 17 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -594,4 +594,21 @@ public class KwmCooperateManageService {
         }
         return findCooperateByEntResVos;
     }
+
+
+    /**
+     * @param entId 发起合作的企业id
+     * @return KwmCooperate
+     * @desc: 根据发起合作的企业查询
+     * @author: czh
+     * @date: 2023/9/1
+     */
+    public List<KwmCooperate> findCooperateByInitEnt(Long entId) {
+        LambdaQueryWrapper<KwmCooperate> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwmCooperate::getEntId, entId).
+                eq(KwmCooperate::getDelFlag, Global.NO).
+                eq(KwmCooperate::getStatus, CooperateStatusEnum.OK.getCode());
+        return kwmCooperateMapper.selectList(wrapper);
+    }
+
 }

+ 5 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java

@@ -57,6 +57,11 @@ public class KwoTradeOrderUnit extends BaseModel implements Serializable {
      */
     private String firmName;
 
+    /**
+     * 联系人id
+     */
+    private Long contactsId;
+
     /**
      * 联系人姓名
      */

+ 3 - 3
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java

@@ -26,15 +26,15 @@ public class AcceptanceOrderParam {
     private Long id;
 
     @NotNull(message = "订单总量不能为空")
-    @DecimalMin(value = "0.00",message = "订单总量最小为零")
+    @DecimalMin(value = "0.01",message = "订单总量必须大于零")
     private BigDecimal amount;
 
     @NotNull(message = "订单成交单价不能为空")
-    @DecimalMin(value = "0.00",message = "订单成交单价最小为零")
+    @DecimalMin(value = "0.01",message = "订单成交单价必须大于零")
     private BigDecimal unitPrice;
 
     @NotNull(message = "订单金额不能为空")
-    @DecimalMin(value = "0.00",message = "订单金额最小为零")
+    @DecimalMin(value = "0.01",message = "订单金额必须大于零")
     private BigDecimal price;
 
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")

+ 6 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java

@@ -37,6 +37,12 @@ public class UnitInfo {
     @NotBlank(message = "企业名称不能为空")
     private String firmName;
 
+    /**
+     * 联系人id
+     */
+    @NotNull(message = "联系人id不能为空")
+    private Long contactsId;
+
     /**
      * 联系人姓名
      */

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

@@ -520,19 +520,23 @@ public class KwoTradeOrderService {
         //单位信息
         List<KwoTradeOrderUnit> units = kwoTradeOrderUnitService.getByOrderId(id);
         if (CollectionUtils.isNotEmpty(units)) {
-            List<UnitInfoDetailRes> unitInfos = BeanUtils.copyToList(units, UnitInfoDetailRes.class);
-            unitInfos.forEach(e -> {
-                e.setUnitTypeLabel(DictEnum.getLabel(DictTypeEnum.TORDER_UNIT_TYPE.getType(), e.getUnitType()));
+            List<UnitInfoDetailRes> unitInfos = new ArrayList<>(units.size());
+            units.forEach(e -> {
+                UnitInfoDetailRes unit = BeanUtils.copyProperties(e, UnitInfoDetailRes.class);
+                unit.setUnitTypeLabel(DictEnum.getLabel(DictTypeEnum.TORDER_UNIT_TYPE.getType(), unit.getUnitType()));
+                unitInfos.add(unit);
             });
             detail.setUnitInfo(unitInfos);
         }
         //地址信息
         List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderId(id);
         if (CollectionUtils.isNotEmpty(addressList)) {
-            List<AddressInfoDetailRes> addressInfoDetails = BeanUtils.copyToList(addressList, AddressInfoDetailRes.class);
-            addressInfoDetails.forEach(e -> {
-                e.setAddressTypeLabel(DictEnum.getLabel(DictTypeEnum.TORDER_ADDRESS_TYPE.getType(), e.getAddressType()));
-                e.setTypeLabel(DictEnum.getLabel(DictTypeEnum.ADDRESS_TYPE.getType(), e.getType()));
+            List<AddressInfoDetailRes> addressInfoDetails = new ArrayList<>(addressList.size());
+            addressList.forEach(e -> {
+                AddressInfoDetailRes address = BeanUtils.copyProperties(e, AddressInfoDetailRes.class);
+                address.setAddressTypeLabel(DictEnum.getLabel(DictTypeEnum.TORDER_ADDRESS_TYPE.getType(), address.getAddressType()));
+                address.setTypeLabel(DictEnum.getLabel(DictTypeEnum.ADDRESS_TYPE.getType(), address.getType()));
+                addressInfoDetails.add(address);
             });
             detail.setAddressInfo(addressInfoDetails);
         }
@@ -681,6 +685,9 @@ public class KwoTradeOrderService {
             if (StringUtils.isBlank(e.getFirmName())) {
                 throw new BusinessException("企业名称不能为空!");
             }
+            if (Objects.isNull(e.getContactsId())) {
+                throw new BusinessException("联系人id不能为空!");
+            }
             if (StringUtils.isBlank(e.getContacts())) {
                 throw new BusinessException("联系人姓名不能为空!");
             }
@@ -940,7 +947,8 @@ public class KwoTradeOrderService {
         }
         //排除草稿状态权限匹配
         List<Long> filterIds = list.stream().filter(e -> !(Objects.equals(e.getStatus(), 0))).map(KwoTradeOrder::getId).toList();
-        if (kwoTradeOrderUnitService.entBatchMatch(filterIds, LoginUserHolder.getEntId(), String.valueOf(param.getOrderType()))) {
+        if (CollectionUtils.isNotEmpty(filterIds) &&
+                kwoTradeOrderUnitService.entBatchMatch(filterIds, LoginUserHolder.getEntId(), String.valueOf(param.getOrderType()))) {
             throw new BusinessException("无订单操作权限!");
         }
         LambdaUpdateWrapper<KwoTradeOrder> updateWrapper = new LambdaUpdateWrapper<>();

+ 2 - 0
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderUnitMapper.xml

@@ -12,6 +12,7 @@
             ent_id,
             top_ent_id,
             firm_name,
+            contacts_id,
             contacts,
             phone,
             remark,
@@ -32,6 +33,7 @@
                 #{item.entId,jdbcType=VARCHAR},
                 #{item.topEntId,jdbcType=VARCHAR},
                 #{item.firmName,jdbcType=VARCHAR},
+                #{item.contactsId,jdbcType=BIGINT},
                 #{item.contacts,jdbcType=VARCHAR},
                 #{item.phone,jdbcType=VARCHAR},
                 #{item.remark,jdbcType=VARCHAR},

+ 7 - 8
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -178,13 +178,13 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             logisticsReq.setGenerateTime(LocalDateTime.now());
             logisticsReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(logisticsReq);
-            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
+            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.TO_LEDGER);
         } else {
             removeDraft(Long.parseLong(id));
             logisticsReq.setGenerateTime(LocalDateTime.now());
             logisticsReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(logisticsReq);
-            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
+            logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.TO_LEDGER);
 
         }
         return "保存对账单成功";
@@ -363,7 +363,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsReq.setGenerateTime(null);
         logisticsReq.setStatus(LedgerEnum.SAVE.getStatus());
         Long aLong = saveDraft(logisticsReq);
-        logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.SAVE);
+        logisticsTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.SAVE);
         return "草稿保存成功";
     }
 
@@ -394,7 +394,6 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             throw new BusinessException(httpResult.getMsg());
         }
         logisticsOrderService.remove(id);
-        logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.DELETE);
         return "删除成功";
     }
 
@@ -416,7 +415,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.REVOKE);
+        logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerEnum.REVOCATION);
         return "撤回成功";
     }
 
@@ -450,7 +449,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
+        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerEnum.BACK);
         return "驳回成功";
     }
 
@@ -473,7 +472,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setUpdateTime(LocalDateTime.now());
         kwpLedgerLogistics.setUpdateBy(LoginUserHolder.getUserId());
         logisticsMapper.updateById(kwpLedgerLogistics);
-        logisticsTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.CONFIRM);
+        logisticsTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerEnum.LEDGERED);
         return "对账确认成功";
     }
 
@@ -529,7 +528,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
 
         settlementLogisticsService.save(kwpSettlementLogistics);
 
-        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.SUCCESS);
+        logisticsTrackService.saveTrack(ledgerReq.getIdLong(), Global.EMPTY_STRING, LedgerEnum.SUCCESS);
         return "对账完成";
     }
 

+ 2 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsTrackService.java

@@ -6,6 +6,7 @@ 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;
+import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.LedgerTrackEnum;
 import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
@@ -30,7 +31,7 @@ public class KwpLedgerLogisticsTrackService {
      * @param remark      备注
      * @param status      状态值
      */
-    public void saveTrack(Long l_ledger_id, String remark, LedgerTrackEnum status) {
+    public void saveTrack(Long l_ledger_id, String remark, LedgerEnum status) {
         KwpLedgerLogisticsTrack kwpLedgerLogisticsTrack = new KwpLedgerLogisticsTrack();
         kwpLedgerLogisticsTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwpLedgerLogisticsTrack.setLLedgerId(l_ledger_id);

+ 7 - 9
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -339,7 +339,7 @@ public class KwpLedgerTradeService extends AbsLedger {
             tradeSendReq.setGenerateTime(LocalDateTime.now());
             tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(tradeSendReq);
-            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
+            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.TO_LEDGER);
         } else {
             //先删除
             removeDraft(tradeSendReq.getIdLong());
@@ -347,7 +347,7 @@ public class KwpLedgerTradeService extends AbsLedger {
             tradeSendReq.setGenerateTime(LocalDateTime.now());
             tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
             Long aLong = saveDraft(tradeSendReq);
-            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.TO_LEDGER);
+            tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.TO_LEDGER);
 
         }
         return "保存对账单成功";
@@ -365,7 +365,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         tradeSendReq.setGenerateTime(null);
         tradeSendReq.setStatus(LedgerEnum.SAVE.getStatus());
         Long aLong = saveDraft(tradeSendReq);
-        tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerTrackEnum.SAVE);
+        tradeTrackService.saveTrack(aLong, Global.EMPTY_STRING, LedgerEnum.SAVE);
         return "草稿保存成功";
     }
 
@@ -400,8 +400,6 @@ public class KwpLedgerTradeService extends AbsLedger {
             updateAssociateStatementParam.setUpdateByName(LoginUserHolder.getUserName());
             tradeOrderInfoService.updateAssociateStatement(updateAssociateStatementParam);
         }
-        //记录操作记录
-        tradeTrackService.saveTrack(kwpLedgerTrade.getId(), Global.EMPTY_STRING, LedgerTrackEnum.DELETE);
         return "删除成功";
     }
 
@@ -422,7 +420,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
 
-        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.REVOKE);
+        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerEnum.REVOCATION);
         return "撤回成功";
     }
 
@@ -455,7 +453,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
-        tradeTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
+        tradeTrackService.saveTrack(ledgerReq.getIdLong(), ledgerReq.getRemark(), LedgerEnum.BACK);
         return "驳回成功";
     }
 
@@ -478,7 +476,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setUpdateBy(LoginUserHolder.getUserId());
         kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
         tradeMapper.updateById(kwpLedgerTrade);
-        tradeTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerTrackEnum.CONFIRM);
+        tradeTrackService.saveTrack(confirmReq.getIdLong(), Global.EMPTY_STRING, LedgerEnum.LEDGERED);
         return "对账确认成功";
     }
 
@@ -547,7 +545,7 @@ public class KwpLedgerTradeService extends AbsLedger {
             tradeOrderInfoService.updateOrderStatus(updateOrderStatusParam);
         }
         //保存操作记录
-        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.SUCCESS);
+        tradeTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerEnum.SUCCESS);
         return "对账完成";
     }
 

+ 2 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeTrackService.java

@@ -6,6 +6,7 @@ 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;
+import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.LedgerTrackEnum;
 import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
@@ -31,7 +32,7 @@ public class KwpLedgerTradeTrackService {
      * @param remark      备注
      * @param status      状态值
      */
-    public void saveTrack(Long t_ledger_id, String remark, LedgerTrackEnum status) {
+    public void saveTrack(Long t_ledger_id, String remark, LedgerEnum status) {
         KwpLedgerTradeTrack tradeTrack = new KwpLedgerTradeTrack();
         tradeTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
         tradeTrack.setTLedgerId(t_ledger_id);

+ 1 - 1
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml

@@ -381,7 +381,7 @@
         </where>
     </select>
     <update id="updatePrice">
-        update kwp_settlement_trade
+        update kwp_ledger_trade
         set actual_price = IFNULL(actual_price,0) + #{totalPrice,jdbcType=DECIMAL}
         where id = #{id,jdbcType=BIGINT}
     </update>

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

@@ -267,7 +267,6 @@ public class KwOrderService {
         Long entId = LoginUserHolder.getEntId();
         String topEnt = Objects.equals(params.getOrderType(), 1) ? "procureTopEntId" : "supplyTopEntId";
         List<Integer> status = Arrays.asList(1, 4, 5, 7);
-        Query query = new Query();
         Criteria criteria = new Criteria();
         criteria.and(topEnt).is(entId).and("status").in(status).and("delFlag").is(0);
         Aggregation aggregation = Aggregation.newAggregation(
@@ -424,12 +423,15 @@ public class KwOrderService {
             OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
             order.setStatusLabel(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                    .setDeliveryTypeLabel(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
                     .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
                     .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
                     .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getActualAmount()))
-                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
+                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
+                    .setSourceLabel(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });
         return PageResult.build(params.getPage(), params.getPageSize(), count, result);

+ 15 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -62,10 +62,20 @@ public class OrderListRes {
      * 交易方式(预付款、货到付款)
      */
     private String trading;
+
+    /**
+     * 交易方式label
+     */
+    private String tradingLabel;
     /**
      * 交付类型(签发交付、签收交付)
      */
     private String deliveryType;
+
+    /**
+     * 交付类型label
+     */
+    private String deliveryTypeLabel;
     /**
      * 提货方式(采方自提、供应配送)
      */
@@ -79,6 +89,11 @@ public class OrderListRes {
      */
     private String source;
 
+    /**
+     * 下单方式label
+     */
+    private String sourceLabel;
+
     /**
      * 合同主键
      */

+ 10 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java

@@ -11,6 +11,7 @@ import com.sckw.system.dao.KwsEntTypeDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.vo.res.CertificateResVo;
 import com.sckw.system.model.vo.res.KwsDeptResVo;
+import com.sckw.system.model.vo.res.KwsUserResVo;
 import com.sckw.system.service.KwsDeptService;
 import com.sckw.system.service.KwsEnterpriseService;
 import com.sckw.system.service.KwsRoleService;
@@ -61,7 +62,15 @@ public class RemoteBaseService {
     }
 
     public KwsUserResDto getUserByAccount(String username) {
-        return null;
+        KwsUser kwsUser = new KwsUser();
+        kwsUser.setAccount(username);
+        List<KwsUserResVo> list = kwsUserService.findList(kwsUser);
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        KwsUserResDto kwsUserResDto = new KwsUserResDto();
+        BeanUtils.copyProperties(list.get(0), kwsUserResDto);
+        return kwsUserResDto;
     }
 
     public List<KwsUserDeptResDto> queryUserDeptByUserId(Long userId) {

+ 4 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -282,6 +282,10 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             BeanUtils.copyProperties(kwsEnterpriseResDto, entCacheResDto);
             entCacheResDto.setDeptInfo(remoteBaseService.queryDeftInfoByEntId(entId));
             entCacheResDto.setCertificateInfo(remoteBaseService.queryCertificateByEntId(entId));
+            KwsUserResDto userByAccount = remoteBaseService.getUserByAccount(kwsEnterpriseResDto.getPhone());
+            if (Objects.nonNull(userByAccount)) {
+                entCacheResDto.setContactsId(userByAccount.getId());
+            }
             List<EntTypeResDto> entTypeResDtos = remoteBaseService.queryEntTypeById(entId);
             if (CollectionUtils.isNotEmpty(entTypeResDtos)) {
                 entCacheResDto.setEntTypes(String.join(Global.COMMA, entTypeResDtos.stream().map(EntTypeResDto::getType).map(String::valueOf).distinct().toList()));

+ 13 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java

@@ -2,7 +2,9 @@ package com.sckw.transport.controller;
 
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.model.dto.AddressDropListDTO;
 import com.sckw.transport.model.dto.WaybillOrderDTO;
+import com.sckw.transport.model.dto.WaybillOrderTicketApprovalDto;
 import com.sckw.transport.service.WaybillManagementService;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
@@ -68,4 +70,15 @@ public class WaybillManagementController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * @desc 获取企业地址信息
+     * @author zk
+     * @date 2023/9/1
+     **/
+    @GetMapping("/findAddressList")
+    public HttpResult findAddressList(){
+        AddressDropListDTO addresss = waybillManagementService.findAddressList();
+        return HttpResult.ok(addresss);
+    }
 }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtWaybillOrderAddress;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import java.util.List;
 
 @Mapper
 public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrderAddress> {
@@ -18,4 +19,13 @@ public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrder
      * @date 2023/7/20
      **/
     KwtWaybillOrderAddress findByAddress(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);
+
+    /**
+     * @param entId 企业信息
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 查询车辆运单装卸货地址CODE
+     * @author zk
+     * @date 2023/7/20
+     **/
+    List<Integer> findAddressCodeList(@Param("entId") Long entId, @Param("addressType") Integer addressType);
 }

+ 20 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -217,6 +217,16 @@ public class AddOrderDTO {
     @Length(max = 200, message = "单据编号长度错误最大长度:{max}")
     private String remark;
 
+    /**
+     *装货地址id
+     */
+    private String loadId;
+
+    /**
+     *装货地址名称
+     */
+    private String loadName;
+
     /**
      * 装货城市编码
      */
@@ -259,6 +269,16 @@ public class AddOrderDTO {
      */
     private String loadLng;
 
+    /**
+     *卸货地址id
+     */
+    private String unloadId;
+
+    /**
+     *卸货地址名称
+     */
+    private String unloadName;
+
     /**
      * 卸货城市编码
      */

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java

@@ -38,6 +38,11 @@ public class DriverListVo {
      */
     private Integer transportStatus;
 
+    /**
+     * 运力状态(0空闲/1任务中)
+     */
+    private String transportStatusLabel;
+
     /**
      * 运输次数
      */

+ 3 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSimpleDataVO.java

@@ -16,7 +16,7 @@ public class WaybillSimpleDataVO {
      * 运单ID
      */
     @JsonProperty("wOrderId")
-    private String wOrderId;
+    private Long wOrderId;
 
     /**
      * 运单号
@@ -24,12 +24,6 @@ public class WaybillSimpleDataVO {
     @JsonProperty("wOrderNo")
     private String wOrderNo;
 
-    /**
-     * 承运单号
-     */
-    @JsonProperty("lOrderNo")
-    private String lOrderNo;
-
     /**
      * 车辆ID
      */
@@ -38,7 +32,7 @@ public class WaybillSimpleDataVO {
     /**
      * 运单状态
      */
-    private String status;
+    private Integer status;
 
     /**
      * 车牌号
@@ -74,7 +68,7 @@ public class WaybillSimpleDataVO {
      * 承运单ID
      */
     @JsonProperty("lOrderId")
-    private String lOrderId;
+    private Long lOrderId;
 
     /**
      * 进度数据

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

@@ -893,6 +893,13 @@ public class AcceptCarriageOrderService {
             //联查数据
             if (CollectionUtils.isNotEmpty(list)) {
                 for (SubcontractConsignmentVO subcontractConsignmentVO : list) {
+                    //关联父级承运单据号
+                    if (subcontractConsignmentVO.getPid() != null) {
+                        KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getId, subcontractConsignmentVO.getPid()));
+                        if (kwtLogisticsOrder != null) {
+                            subcontractConsignmentVO.setCarrierOrderNo(kwtLogisticsOrder.getLOrderNo());
+                        }
+                    }
                     subcontractConsignmentVO.setStatusLabel(LogisticsOrderEnum.getDestination(subcontractConsignmentVO.getStatus()));
                     if (subcontractConsignmentVO.getPriceType() != null) {
                         subcontractConsignmentVO.setPriceTypeLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
@@ -991,8 +998,14 @@ public class AcceptCarriageOrderService {
             }
             for (DriverListVo driverListVo : list) {
                 if (!ObjectUtils.isEmpty(truck)) {
-                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    if (truck.get(driverListVo.getTruckNo()) != null) {
+                        driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    }
+                    if (driverListVo.getTransportStatus() != null) {
+                        driverListVo.setTransportStatusLabel((driverListVo.getTransportStatus() == 0) ? "空闲" : "任务中");
+                    }
                     driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
+//                    driverListVo.setCount(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTotalComplete());
                 }
             }
             result.setData(list);
@@ -1006,7 +1019,13 @@ public class AcceptCarriageOrderService {
             }
             for (DriverListVo driverListVo : list) {
                 if (!ObjectUtils.isEmpty(truck)) {
-                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+//                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    if (truck.get(driverListVo.getTruckNo()) != null) {
+                        driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    }
+                    if (driverListVo.getTransportStatus() != null) {
+                        driverListVo.setTransportStatusLabel((driverListVo.getTransportStatus() == 0) ? "空闲" : "任务中");
+                    }
                     driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
                 }
             }
@@ -1287,10 +1306,12 @@ public class AcceptCarriageOrderService {
 //        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("完结订单,装货量不能大于运输总量");
-        }
+
+        //todo 2023-09-01 根据要求去除校验 物流订单手动完结,实装量可大于分配量,实卸量目前暂定不可大于实装量;根据计费方式,当对应实装或实卸大于分配量时自然完结
+//        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+//        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,装货量不能大于运输总量");
+//        }
         if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
             throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }
@@ -2037,7 +2058,7 @@ public class AcceptCarriageOrderService {
         loadAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
         loadAddress.setLOrderId(lOrderId);
         loadAddress.setAddressType(NumberConstant.ONE);
-//        loadAddress.setName();
+        loadAddress.setName(orderDTO.getLoadName() == null ? null : orderDTO.getLoadName());
 //        loadAddress.setType();
         loadAddress.setContacts(orderDTO.getLoadContacts());
         loadAddress.setPhone(orderDTO.getLoadPhone());
@@ -2058,7 +2079,7 @@ public class AcceptCarriageOrderService {
         unloadAddress.setId(new IdWorker(NumberConstant.TWO).nextId());
         unloadAddress.setLOrderId(lOrderId);
         unloadAddress.setAddressType(NumberConstant.TWO);
-//        unloadAddress.setName();
+        unloadAddress.setName(orderDTO.getUnloadName() == null ? null : orderDTO.getUnloadName());
 //        unloadAddress.setType();
         unloadAddress.setContacts(orderDTO.getUnloadContacts());
         unloadAddress.setPhone(orderDTO.getUnloadPhone());

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

@@ -488,7 +488,13 @@ public class ConsignOrderService {
                 List<String> objects = new ArrayList<>();
                 objects.add(driverListVo.getTruckNo());
                 if (!ObjectUtils.isEmpty(truck)) {
-                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+//                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    if (truck.get(driverListVo.getTruckNo()) != null) {
+                        driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    }
+                    if (driverListVo.getTransportStatus() != null) {
+                        driverListVo.setTransportStatusLabel((driverListVo.getTransportStatus() == 0) ? "空闲" : "任务中");
+                    }
                     driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
                 }
             }
@@ -526,7 +532,13 @@ public class ConsignOrderService {
             List<String> objects = new ArrayList<>();
             objects.add(driverListVo.getTruckNo());
             if (!ObjectUtils.isEmpty(truck)) {
-                driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+//                driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                if (truck.get(driverListVo.getTruckNo()) != null) {
+                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                }
+                if (driverListVo.getTransportStatus() != null) {
+                    driverListVo.setTransportStatusLabel((driverListVo.getTransportStatus() == 0) ? "空闲" : "任务中");
+                }
                 driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
             }
         }
@@ -743,10 +755,11 @@ public class ConsignOrderService {
 //        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("完结订单,装货量不能大于运输总量");
-        }
+        //todo 2023-09-01 根据要求去除校验 物流订单手动完结,实装量可大于分配量,实卸量目前暂定不可大于实装量;根据计费方式,当对应实装或实卸大于分配量时自然完结
+//        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+//        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,装货量不能大于运输总量");
+//        }
         if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
             throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }
@@ -1270,7 +1283,7 @@ public class ConsignOrderService {
         loadAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
         loadAddress.setLOrderId(lOrderId);
         loadAddress.setAddressType(NumberConstant.ONE);
-//        loadAddress.setName();
+        loadAddress.setName(addOrderDTO.getLoadName() == null ? null : addOrderDTO.getLoadName());
 //        loadAddress.setType();
         loadAddress.setContacts(addOrderDTO.getLoadContacts());
         loadAddress.setPhone(addOrderDTO.getLoadPhone());
@@ -1291,7 +1304,7 @@ public class ConsignOrderService {
         unloadAddress.setId(new IdWorker(NumberConstant.TWO).nextId());
         unloadAddress.setLOrderId(lOrderId);
         unloadAddress.setAddressType(NumberConstant.TWO);
-//        unloadAddress.setName();
+        unloadAddress.setName(addOrderDTO.getUnloadName() == null ? null : addOrderDTO.getUnloadName());
 //        unloadAddress.setType();
         unloadAddress.setContacts(addOrderDTO.getUnloadContacts());
         unloadAddress.setPhone(addOrderDTO.getUnloadPhone());

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

@@ -1178,7 +1178,7 @@ public class KwtWaybillOrderService {
 
             /**4更新循环派车数据**/
             circulate.setWOrderId(waybillOrder.getId());
-            circulate.setTotalTake(circulate.getTotalTake() != null ? circulate.getTotalTake() + Global.NUMERICAL_ONE : Global.NUMERICAL_ZERO);
+            circulate.setTotalTake(circulate.getTotalTake() != null ? circulate.getTotalTake() + Global.NUMERICAL_ONE : Global.NUMERICAL_ONE);
             logisticsOrderCirculateDao.updateById(circulate);
 
             /**5Mongodb数据更新**/

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

@@ -1166,10 +1166,11 @@ public class LogisticsConsignmentService {
         if (logisticsOrder == null) {
             throw new BusinessException("采购订单-完结订单-物流单据不存在!");
         }
-        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
-        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
-            throw new BusinessException("完结订单,装货量不能大于运输总量");
-        }
+        //todo 2023-09-01 根据要求去除校验 物流订单手动完结,实装量可大于分配量,实卸量目前暂定不可大于实装量;根据计费方式,当对应实装或实卸大于分配量时自然完结
+//        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+//        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,装货量不能大于运输总量");
+//        }
         if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
             throw new BusinessException("完结订单,填写卸货量不能大于装货量");
         }

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

@@ -16,11 +16,15 @@ import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
 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.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.transport.model.KwtLogisticsOrderCirculate;
+import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderTrack;
+import com.sckw.transport.model.dto.AddressDropListDTO;
 import com.sckw.transport.model.dto.WayBillDetailDTO;
 import com.sckw.transport.model.dto.WaybillListAppDTO;
 import com.sckw.transport.model.dto.WaybillOrderDTO;
@@ -69,6 +73,9 @@ public class WaybillManagementService {
     @Autowired
     public KwtWaybillOrderTicketMapper kwtWaybillOrderTicketMapper;
 
+    @Autowired
+    private KwtLogisticsOrderCirculateMapper orderCirculateDao;
+
     @Autowired
     public KwtWaybillOrderTrackMapper kwtWaybillOrderTrackMapper;
 
@@ -228,7 +235,60 @@ public class WaybillManagementService {
      * @return
      */
     public HttpResult waybillSimpleData(Long id){
+        // 数据校验
+        if (id == null) {
+            return HttpResult.error("车辆运单ID不能为空!");
+        }
         WaybillSimpleDataVO waybillSimpleDataVO = new WaybillSimpleDataVO();
+        KwtWaybillOrder waybillOrder = kwtWaybillOrderMapper.selectById(id);
+        if (waybillOrder != null) {
+            BeanUtils.copyPropertiesValue(waybillOrder, waybillSimpleDataVO);
+            waybillSimpleDataVO.setWOrderId(waybillOrder.getId());
+        } else {
+            KwtLogisticsOrderCirculate orderCirculate = orderCirculateDao.selectById(id);
+            if (orderCirculate == null) {
+                return HttpResult.error("车辆运单已不存在!");
+            }
+            BeanUtils.copyPropertiesValue(orderCirculate, waybillSimpleDataVO);
+            waybillSimpleDataVO.setWOrderId(orderCirculate.getId());
+        }
+
+        // 初始化各状态
+        List<WaybillStatusVO> statusVOS = new ArrayList<>();
+        List<Integer> statuses = initWaybillIndexStatus();
+        statuses.forEach(e -> {
+            WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
+            waybillStatusVO.setStatus(false);
+            waybillStatusVO.setCode(e);
+            waybillStatusVO.setDestination(CarWaybillEnum.getName(e));
+            statusVOS.add(waybillStatusVO);
+        });
+
+        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>().eq(KwtWaybillOrderTrack::getWOrderId, id));
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
+            List<Long> userIds = new ArrayList<>();
+            kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
+            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
+            Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+            users.forEach(e -> usersMap.put(e.getId(), e));
+            for (KwtWaybillOrderTrack kwtWaybillOrderTrack : kwtWaybillOrderTracks) {
+                for (WaybillStatusVO statusVO : statusVOS) {
+                    if (statusVO.getCode().equals(kwtWaybillOrderTrack.getStatus())) {
+                        statusVO.setStatus(true);
+                        statusVO.setId(kwtWaybillOrderTrack.getId());
+                        statusVO.setCreateTime(DateUtil.getDateTime(kwtWaybillOrderTrack.getCreateTime()));
+                        statusVO.setOperateTime(kwtWaybillOrderTrack.getOperateTime() == null
+                                ? null : DateUtil.getDateTime(kwtWaybillOrderTrack.getOperateTime()));
+                        statusVO.setCreateByName(usersMap.get(kwtWaybillOrderTrack.getCreateBy()) == null
+                                ? null : usersMap.get(kwtWaybillOrderTrack.getCreateBy()).getName());
+                        break;
+                    }
+                }
+            }
+        }
+        waybillSimpleDataVO.setProcess(statusVOS);
+        return HttpResult.ok(waybillSimpleDataVO);
+        /*WaybillSimpleDataVO waybillSimpleDataVO = new WaybillSimpleDataVO();
         Criteria criteria = new Criteria();
         criteria.and("wOrderId").is(id);
         criteria.and("entId").is(LoginUserHolder.getEntId());
@@ -285,7 +345,7 @@ public class WaybillManagementService {
             }
         }
         waybillSimpleDataVO.setProcess(statusVOS);
-        return HttpResult.ok(waybillSimpleDataVO);
+        return HttpResult.ok(waybillSimpleDataVO);*/
     }
     /**
      * 运单看板列表
@@ -375,6 +435,7 @@ public class WaybillManagementService {
                         if(e.getCode().equals(e2.getStatus())) {
                             e.setStatus(true);
                             e.setId(e2.getId());
+                            e.setOperateTime(DateUtil.getDateTime(e2.getOperateTime()));
                             e.setCreateTime(DateUtil.getDateTime(e2.getCreateTime()));
                             e.setCreateByName(usersMap.get(e2.getCreateBy()) == null ? null : usersMap.get(e2.getCreateBy()));
                         }
@@ -644,4 +705,25 @@ public class WaybillManagementService {
         }
         return _list;
     }
+
+    /**
+     * @desc 获取企业地址信息
+     * @author zk
+     * @date 2023/9/1
+     **/
+    public AddressDropListDTO findAddressList() {
+        AddressDropListDTO res = new AddressDropListDTO();
+       //装货地址树
+        List<Integer> loadAddressList = kwtWaybillOrderAddressMapper.findAddressCodeList(LoginUserHolder.getEntId(), Global.NUMERICAL_ONE);
+        //卸货地址树
+        List<Integer> unloadAddressList = kwtWaybillOrderAddressMapper.findAddressCodeList(LoginUserHolder.getEntId(), Global.NUMERICAL_TWO);
+
+        //装货地址下拉列表树
+        List<AreaTreeFrontResDto> loadTree = remoteSystemService.queryAreaTreeFrontByCodeList(loadAddressList);
+        res.setLoadAddressList(loadTree);
+        //卸货地址下拉列表树
+        List<AreaTreeFrontResDto> unloadTree = remoteSystemService.queryAreaTreeFrontByCodeList(unloadAddressList);
+        res.setUnloadAddressList(unloadTree);
+        return res;
+    }
 }

+ 5 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -391,7 +391,11 @@ public class TransportDubboServiceImpl implements TransportDubboService {
         orderStatus.add(LogisticsOrderEnum.HAVE_RECONCILED.getCode());
 //        orderStatus.add(LogisticsOrderEnum.HAVE_ALREADY_SETTLED.getCode());
         List<String> logisticsNo = logisticsOrderMapper.checkLogisticsOrderIsFinishByEntId(consignEntId, acceptCarriageEntId, orderStatus);
-        return HttpResult.ok(logisticsNo);
+        if (CollectionUtils.isNotEmpty(logisticsNo)){
+            return HttpResult.error("",logisticsNo);
+        }else {
+            return HttpResult.ok();
+        }
     }
 
 

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

@@ -348,7 +348,7 @@
                a.pid,
                a.`status`         as status,
                a.l_order_no       as consignOrderNo,
-               a.l_order_no       as carrierOrderNo,
+<!--               a.l_order_no       as carrierOrderNo,-->
                c.firm_name        as carrierCompany,
                d.goods_name       as goodsName,
                a.amount           as carryingCapacity,
@@ -457,7 +457,8 @@
     </select>
 
     <select id="selectDriverListById" resultType="com.sckw.transport.model.vo.DriverListVo">
-        SELECT a.id AS lOrderId,
+        SELECT COUNT( b.truck_no ) AS count,
+        a.id AS lOrderId,
         a.l_order_no AS lOrderNo,
         b.driver_id AS driverId,
         b.id AS wOrderId,
@@ -466,11 +467,23 @@
         b.driver_phone AS driverPhone,
         b.driver_idcard AS driverIdCard,
         b.truck_no AS truckNo
+        FROM
+        kwt_waybill_order b
+        LEFT JOIN kwt_logistics_order a ON b.l_order_id = a.id
+        <!--        SELECT a.id AS lOrderId,-->
+        <!--        a.l_order_no AS lOrderNo,-->
+        <!--        b.driver_id AS driverId,-->
+        <!--        b.id AS wOrderId,-->
+        <!--        b.w_order_no AS wOrderNo,-->
+        <!--        b.driver_name AS driverName,-->
+        <!--        b.driver_phone AS driverPhone,-->
+        <!--        b.driver_idcard AS driverIdCard,-->
+        <!--        b.truck_no AS truckNo-->
         <!--        ,-->
         <!--        COUNT( b.id ) AS count-->
-        FROM
-        kwt_waybill_order b,
-        kwt_logistics_order a
+<!--        FROM-->
+<!--        kwt_waybill_order b,-->
+<!--        kwt_logistics_order a-->
         <where>
             a.id = b.l_order_id
             AND a.del_flag = 0
@@ -493,8 +506,8 @@
                 </if>
                 )
             </if>
-            <!--        GROUP BY-->
-            <!--        b.truck_no-->
+            GROUP BY
+            b.truck_no
             <!--        a.l_order_no,-->
         </where>
     </select>

+ 11 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

@@ -176,4 +176,15 @@
         and w_order_id = #{wOrderId, jdbcType=BIGINT}
         and address_type = #{addressType, jdbcType=INTEGER}
     </select>
+
+    <select id="findAddressCodeList" resultType="java.lang.Integer" >
+        SELECT
+        DISTINCT kwoa.city_code
+        from kwt_waybill_order kwo
+        left join kwt_waybill_order_address kwoa on kwoa.w_order_id = kwo.id
+        where kwo.del_flag = 0 and kwoa.del_flag = 0
+        and kwo.ent_id = #{entId, jdbcType=BIGINT}
+        and kwoa.address_type = #{addressType, jdbcType=INTEGER}
+    </select>
+
 </mapper>