Quellcode durchsuchen

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

donglang vor 1 Monat
Ursprung
Commit
e2a1b1ff43
16 geänderte Dateien mit 228 neuen und 100 gelöschten Zeilen
  1. 2 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  3. 3 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  4. 4 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogistics.java
  5. 7 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticListReq.java
  6. 4 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java
  7. 11 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryLogisticDetailResp.java
  8. 10 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryLogisticListResp.java
  9. 2 5
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractLogisticsRepository.java
  10. 1 2
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractTradeRepository.java
  11. 31 7
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractLogisticsService.java
  12. 114 41
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java
  13. 0 23
      sckw-modules/sckw-fleet/src/main/resources/bootstrap.yml
  14. 32 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  15. 6 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/repository/KwsEntTypeRepository.java
  16. 0 21
      sckw-modules/sckw-transport/src/main/resources/bootstrap.yml

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

@@ -97,6 +97,8 @@ public enum DictEnum {
     SETTLEMENT_WAY_2("settlement_way", "2", "线下结算"),
     LOAD_UNLOAD_WAY_1("load_unload_way", "1", "按装货量"),
     LOAD_UNLOAD_WAY_2("load_unload_way", "2", "按卸货量"),
+    DISPATCHING_TYPE_1("dispatching_type", "1", "手动派车"),
+    DISPATCHING_TYPE_2("dispatching_type", "2", "自动派车"),
     ;
 
     private final String type;

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

@@ -53,6 +53,7 @@ public enum DictTypeEnum {
     CONSIGNMENT_WAY("consignment_way", "托运方式"),
     SETTLEMENT_WAY(" settlement_way", "结算方式"),
     LOAD_UNLOAD_WAY("load_unload_way", "装卸方式"),
+    DISPATCHING_TYPE("dispatching_type", "派车方式"),
     ;
 
     private final String type;

+ 3 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -5,6 +5,7 @@ import com.sckw.system.api.model.dto.res.*;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * @desc: 基础信息远程接口
@@ -289,4 +290,6 @@ public interface RemoteSystemService {
 
 
     KwsRoleDto queryByRoleIdAndEntId(Long currentRoleId);
+
+    List<EntTypeResDto> queryEntTypeByIds(Set<Long> entIds);
 }

+ 4 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogistics.java

@@ -52,6 +52,10 @@ public class KwcContractLogistics implements Serializable {
      */
     private Integer trading;
 
+    /**
+     * 派车方式(1手动派车、2自动派车)
+     */
+    private Integer dispatching;
     /**
      * 开始日期
      */

+ 7 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticListReq.java

@@ -128,6 +128,13 @@ public class LogisticListReq implements Serializable {
         @Schema(description = "签约方式")
         private Integer signingWay;
 
+        /**
+         * 派车方式(1手动派车、2自动派车)
+         */
+        @NotNull(message = "派车方式不能为空")
+        @Schema(description = "签约方式,1-手动派车,2-自动派车",example = "1",defaultValue = "1")
+        private Integer dispatching;
+
         /**
          * 生效时间
          */

+ 4 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java

@@ -2,8 +2,10 @@ package com.sckw.contract.model.vo.req;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.page.PageRequest;
+import com.sckw.core.web.request.PageReq;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serial;
@@ -16,8 +18,9 @@ import java.util.List;
  * @desc 查询入参
  * @date 2023/7/13
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
-public class QueryListReqVo extends PageRequest implements Serializable {
+public class QueryListReqVo extends PageReq implements Serializable {
 
     @Serial
     private static final long serialVersionUID = -5785283278707737826L;

+ 11 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryLogisticDetailResp.java

@@ -134,6 +134,17 @@ public class QueryLogisticDetailResp implements Serializable {
         @Schema(description = "签约方式描述")
         private String signingWayDesc;
 
+        /**
+         * 派车方式(1手动派车、2自动派车)
+         */
+        @Schema(description = "派车方式")
+        private Integer dispatching;
+        /**
+         * 派车方式描述
+         */
+        @Schema(description = "派车方式描述")
+        private String dispatchingDesc;
+
         /**
          * 生效时间
          */

+ 10 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryLogisticListResp.java

@@ -76,6 +76,16 @@ public class QueryLogisticListResp implements Serializable {
      */
     @Schema(description = "签约方式描述")
     private String signWayDesc;
+    /**
+     * 派车方式
+     */
+    @Schema(description = "派车方式")
+    private Integer dispatching;
+    /**
+     * 派车方式描述
+     */
+    @Schema(description = "派车方式描述")
+    private String dispatchingDesc;
     /**
      * 合同运输总量
      */

+ 2 - 5
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractLogisticsRepository.java

@@ -24,11 +24,9 @@ import java.util.Set;
 @Repository
 public class KwcContractLogisticsRepository extends ServiceImpl<KwcContractLogisticsMapper, KwcContractLogistics> {
     public IPage<KwcContractLogistics> queryByPage(int pageNum, int pageSize, String contractNo, String contractName,
-                                                   String status,
-                                                   Long entId,Set<Long> contractIds ) {
+                                                   String status,Set<Long> contractIds ) {
         return page(new Page<>(pageNum, pageSize), Wrappers.<KwcContractLogistics>lambdaQuery()
                 .eq(KwcContractLogistics::getDelFlag, 0)
-                .eq(Objects.nonNull(entId), KwcContractLogistics::getEntId, entId)
                 .like(StringUtils.isNotBlank(contractNo), KwcContractLogistics::getContractNo, contractNo)
                 .like(StringUtils.isNotBlank(contractName), KwcContractLogistics::getName, contractName)
                 .eq(StringUtils.isNotBlank(status), KwcContractLogistics::getStatus, status)
@@ -72,12 +70,11 @@ public class KwcContractLogisticsRepository extends ServiceImpl<KwcContractLogis
                 .eq(KwcContractLogistics::getDelFlag, 0));
     }
 
-    public List<KwcContractLogistics> queryList(Long entId, Set<Long> contractIdList, String contractNo, String contractName, String status) {
+    public List<KwcContractLogistics> queryList(Set<Long> contractIdList, String contractNo, String contractName, String status) {
         return list(Wrappers.<KwcContractLogistics>lambdaQuery()
                 .eq(KwcContractLogistics::getDelFlag, 0)
                 .eq(Objects.nonNull(status),KwcContractLogistics::getStatus, status)
                 .in(CollectionUtils.isNotEmpty(contractIdList),KwcContractLogistics::getId, contractIdList)
-                .eq(Objects.nonNull(entId),KwcContractLogistics::getEntId, entId)
                 .like(org.apache.commons.lang3.StringUtils.isNotBlank(contractNo),KwcContractLogistics::getContractNo, contractNo)
                 .like(org.apache.commons.lang3.StringUtils.isNotBlank(contractName),KwcContractLogistics::getName, contractName));
     }

+ 1 - 2
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractTradeRepository.java

@@ -61,7 +61,7 @@ public class KwcContractTradeRepository extends ServiceImpl<KwcContractTradeMapp
 
     }
 
-    public List<KwcContractTrade> queryTradeListByPageList( List<Long> authEntIdList,String contractCode,
+    public List<KwcContractTrade> queryTradeListByPageList(String contractCode,
                                                          String contractName, String supplementCode,
                                                             Set<Long> contractIds, Integer status, int pageNum, int pageSize) {
         return list( Wrappers.<KwcContractTrade>lambdaQuery()
@@ -71,7 +71,6 @@ public class KwcContractTradeRepository extends ServiceImpl<KwcContractTradeMapp
                 .eq(Objects.nonNull(status),KwcContractTrade::getStatus, status)
                 .like(StringUtils.isNotBlank(supplementCode),KwcContractTrade::getContractPid, supplementCode)
                 .in(CollectionUtils.isNotEmpty(contractIds),KwcContractTrade::getId, contractIds)
-                .in(CollectionUtils.isNotEmpty(authEntIdList),KwcContractTrade::getEntId, authEntIdList)
                 .orderByDesc(KwcContractTrade::getUpdateTime)
                 .orderByDesc(KwcContractTrade::getId));
 

+ 31 - 7
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractLogisticsService.java

@@ -722,7 +722,7 @@ public class KwcContractLogisticsService {
      * @date 2023/7/17
      */
     public PageResult queryListByPage(QueryListReqVo reqVo) {
-        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        PageHelper.startPage(reqVo.getPageNum(), reqVo.getPageSize());
         QueryListReqDto queryListReqDto = new QueryListReqDto();
         BeanUtils.copyProperties(reqVo, queryListReqDto);
         List<Long> allEnt = new ArrayList<>();
@@ -935,7 +935,7 @@ public class KwcContractLogisticsService {
      * @date: 2023/9/13
      */
     public PageResult queryLogisticsByPage(QueryListReqVo reqVo) {
-        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        PageHelper.startPage(reqVo.getPageNum(), reqVo.getPageSize());
 
         //新增客户经理权限过滤
         List<Long> authEntIdList = LoginUserHolder.getAuthEntIdList();
@@ -1064,6 +1064,7 @@ public class KwcContractLogisticsService {
         }
 
         List<Long> entIdList = Lists.newArrayList();
+        entIdList.add(entId);
         if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getConsignCompanyId())){
             entIdList.add(Long.valueOf(req.getConsignCompanyId()));
         }
@@ -1081,7 +1082,7 @@ public class KwcContractLogisticsService {
 
         IPage<KwcContractLogistics> page =kwcContractLogisticsRepository.queryByPage(req.getPageNum(),req.getPageSize(),
                 req.getContractNo(),
-                req.getContractName(),req.getStatus(),entId,contractIdList);
+                req.getContractName(),req.getStatus(),contractIdList);
         List<KwcContractLogistics> records = page.getRecords();
         if (CollectionUtils.isEmpty(records)) {
             return PageDataResult.empty(req.getPageNum(),req.getPageSize());
@@ -1168,7 +1169,9 @@ public class KwcContractLogisticsService {
         queryLogisticListResp.setSignWay(r.getSigningWay());
         queryLogisticListResp.setSignWayDesc(DictEnum.getLabel(DictTypeEnum.SIGNING_TYPE.getType(),
                 String.valueOf( r.getSigningWay())));
-
+        //设置派车方式和派车方式描述字段
+        queryLogisticListResp.setDispatching(r.getDispatching());
+        queryLogisticListResp.setDispatchingDesc(DictEnum.getLabel(DictTypeEnum.DISPATCHING_TYPE.getType(),String.valueOf(r.getDispatching())));
         queryLogisticListResp.setPerformedAmount(Objects.nonNull(r.getPerformedAmount())
                 ? r.getPerformedAmount().toPlainString() : null);
         List<KwcContractLogisticsGoods> goods = finalContractIdAndGoodsMap.get(r.getId());
@@ -1245,6 +1248,7 @@ public class KwcContractLogisticsService {
         saveContractLogistics.setContractNo(baseInfo.getContractCode());
         saveContractLogistics.setName(baseInfo.getContractName());
         saveContractLogistics.setSigningWay(baseInfo.getSigningWay());
+        saveContractLogistics.setDispatching(baseInfo.getDispatching());
         saveContractLogistics.setStartTime(baseInfo.getStartTime());
         if (Objects.isNull(baseInfo.getEndTime())){
             LocalDate localDate = LocalDate.of(9999, 12, 30);
@@ -1302,6 +1306,16 @@ public class KwcContractLogisticsService {
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(goodsInfos)){
             return;
         }
+        // 检查goodsId是否有重复
+        Set<Long> goodsIdSet = new HashSet<>();
+        boolean hasDuplicate = goodsInfos.stream()
+                .map(LogisticListReq.TradeGoodsInfo::getGoodsId)
+                .anyMatch(goodsId -> !goodsIdSet.add(goodsId));
+
+        if (hasDuplicate) {
+            // 存在重复的goodsId
+            throw new BusinessException("商品不能重复");
+        }
         List<KwcContractLogisticsGoods> goods = goodsInfos.stream()
                 .map(x -> getKwcContractLogisticsGoods(x, contactId,baseInfo))
                 .collect(Collectors.toList());
@@ -1455,6 +1469,11 @@ public class KwcContractLogisticsService {
         tradeBaseInfo.setSigningWay(logistics.getSigningWay());
         tradeBaseInfo.setSigningWayDesc(DictEnum.getLabel(DictTypeEnum.SIGNING_TYPE.getType(),
                 String.valueOf(logistics.getSigningWay())));
+
+        //派车方式
+        tradeBaseInfo.setDispatching(logistics.getDispatching());
+        tradeBaseInfo.setDispatchingDesc(DictEnum.getLabel(DictTypeEnum.DISPATCHING_TYPE.getType(),String.valueOf(logistics.getDispatching())));
+
         tradeBaseInfo.setStartTime(logistics.getStartTime());
         tradeBaseInfo.setCommonPrice(logistics.getCommonPrice());
         tradeBaseInfo.setContractStatus(String.valueOf(logistics.getStatus()));
@@ -1522,9 +1541,14 @@ public class KwcContractLogisticsService {
                 .sorted(Comparator.comparing(ContractStatusEnum::getCode))
                 .collect(Collectors.toList());
 
-        Long entId = org.apache.commons.lang3.StringUtils.isNotBlank(req.getEntId()) ?  Long.valueOf(req.getEntId()) :
-                null;
+        Long entId;
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getEntId())){
+            entId = Long.valueOf(req.getEntId());
+        }else {
+            entId = LoginUserHolder.getEntId();
+        }
         List<Long> entIdList = Lists.newArrayList();
+        entIdList.add(entId);
         if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getConsignCompanyId())){
             entIdList.add(Long.valueOf(req.getConsignCompanyId()));
         }
@@ -1551,7 +1575,7 @@ public class KwcContractLogisticsService {
         }
 
 
-        List<KwcContractLogistics> contractLogistics = kwcContractLogisticsRepository.queryList(entId,contractIdList,req.getContractNo(),req.getContractName(),req.getStatus());
+        List<KwcContractLogistics> contractLogistics = kwcContractLogisticsRepository.queryList(contractIdList,req.getContractNo(),req.getContractName(),req.getStatus());
 
         if (CollectionUtils.isEmpty(contractLogistics)){
             Map<Integer, List<KwcContractLogistics>> statusAndLogOrdersMap = new HashMap<>();

+ 114 - 41
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -167,8 +167,7 @@ public class KwcContractTradeService {
         queryTradeReq.setPurchaseEntId(reqVo.getPurchaseEntId());
         queryTradeReq.setSupplyEntId(reqVo.getSupplyEntId());
         queryTradeReq.setStatus(reqVo.getStatus());
-        queryTradeReq.setEntId(String.valueOf(reqVo.getEntId()));
-        queryTradeReq.setPageNum(reqVo.getPage());
+        queryTradeReq.setPageNum(reqVo.getPageNum());
         queryTradeReq.setPageSize(reqVo.getPageSize());
 
         List<QueryListResVo> queryListResVoPageDataResult = queryTradeListByPage(queryTradeReq);
@@ -1012,7 +1011,7 @@ public class KwcContractTradeService {
      * @date: 2023/9/13
      */
     public PageResult queryTradeByPage(QueryListReqVo reqVo) {
-        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        PageHelper.startPage(reqVo.getPageNum(), reqVo.getPageSize());
 
         //新增客户经理权限过滤
         List<Long> authEntIdList = LoginUserHolder.getAuthEntIdList();
@@ -1495,8 +1494,14 @@ public class KwcContractTradeService {
 
     public  List<QueryListResVo> queryTradeListByPage(QueryTradeReq req) {
 
-        Long entId = StringUtils.isNotBlank(req.getEntId()) ? Long.valueOf(req.getEntId()) : null;
+        Long entId;
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getEntId())){
+            entId =Long.valueOf(req.getEntId());
+        }else {
+            entId = LoginUserHolder.getEntId();
+        }
         Set<Long> entIds = Sets.newHashSet();
+        entIds.add(entId);
         if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())) {
             //查询企业 信息
             entIds.add(Long.valueOf(req.getPurchaseEntId()));
@@ -1508,29 +1513,17 @@ public class KwcContractTradeService {
         if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(entIds)){
            List<KwcContractTradeUnit> units = kwcContractTradeUnitRepository.queryByEntIds(entIds);
            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(units)){
-              contractIds = units.stream().map(KwcContractTradeUnit::getContractId).collect(Collectors.toSet());
+              contractIds = units.stream()
+                      .map(KwcContractTradeUnit::getContractId)
+                      .collect(Collectors.toSet());
            }
         }
-        List<Long> allEnt = Lists.newArrayList();
-        if (StringUtils.isBlank(req.getEntId())) {
-            req.setEntId(String.valueOf(LoginUserHolder.getEntId()));
-            allEnt.add(LoginUserHolder.getEntId());
-        }
-
-        if (Objects.nonNull(entId)) {
-         allEnt.add(entId);
-         EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(entId);
-            if (Objects.nonNull(entCacheResDto)) {
-                EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
-                List<EntCacheResDto> child = entCacheResDto1.getChild();
-                if (CollectionUtils.isNotEmpty(child)) {
-                    allEnt.addAll(child.stream().map(EntCacheResDto::getId).toList());
-                }
-            }
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(contractIds)){
+            return Collections.emptyList();
         }
         PageHelper.startPage(req.getPageNum(), req.getPageSize());
         //分页查询合同信息
-        List<KwcContractTrade> records = kwcContractTradeRepository.queryTradeListByPageList(allEnt,
+        List<KwcContractTrade> records = kwcContractTradeRepository.queryTradeListByPageList(
                 req.getContractCode(),
                 req.getContractName(),
                 req.getSupplementCode(),
@@ -1539,6 +1532,49 @@ public class KwcContractTradeService {
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(records)){
             return Collections.emptyList();
         }
+        entIds.addAll(records.stream().map(KwcContractTrade::getEntId).collect(Collectors.toSet()));
+        List<EntTypeResDto> ents = remoteSystemService.queryEntTypeByIds(entIds);
+        Map<Long, EntTypeResDto> entIdAndEntMap = Maps.newHashMap() ;
+        if (CollectionUtils.isNotEmpty(ents)){
+            entIdAndEntMap =
+                    ents.stream().collect(Collectors.toMap(EntTypeResDto::getEntId, Function.identity(), (v1, v2) -> v1));
+        }
+        //如果登录方是采购方,创建方是提供方,那么采购方只能看到已经签约的合同
+        EntTypeResDto entTypeResDto = entIdAndEntMap.getOrDefault(entId, new EntTypeResDto());
+        //如果登录方是采购商,创建方是供应方,那么采购商只能看到已经签约的合同
+        List<KwcContractTrade> contractTrades  = Lists.newArrayList();
+        List<KwcContractTrade> contractTrades1  = Lists.newArrayList();
+        if (entTypeResDto.getType().equals(EntTypeEnum.PURCHASER.getCode())){
+            List<Integer> statusList = Arrays.asList(ContractStatusEnum.SIGNED.getCode(), ContractStatusEnum.COMPLETE.getCode());
+            Map<Long, EntTypeResDto> finalEntIdAndEntMap1 = entIdAndEntMap;
+
+            records.forEach(record -> {
+                EntTypeResDto orDefault = finalEntIdAndEntMap1.getOrDefault(record.getEntId(), new EntTypeResDto());
+                if (Objects.equals(orDefault.getType(),EntTypeEnum.SUPPLIER.getCode()) && statusList.contains(record.getStatus())){
+                    contractTrades.add(record);
+                }else if (Objects.equals(orDefault.getType(),EntTypeEnum.PURCHASER.getCode())) {
+                    contractTrades1.add(record);
+                }
+            });
+        }
+        //如果登录方是供应方,创建方是采购方,那么供应方不能看到已作废的 合同
+        if (entTypeResDto.getType().equals(EntTypeEnum.SUPPLIER.getCode())){
+            Map<Long, EntTypeResDto> finalEntIdAndEntMap = entIdAndEntMap;
+            records.forEach(record -> {
+                        EntTypeResDto orDefault = finalEntIdAndEntMap.getOrDefault(record.getEntId(), new EntTypeResDto());
+                        if (Objects.equals(orDefault.getType(),EntTypeEnum.PURCHASER.getCode()) && !Objects.equals(record.getStatus(),ContractStatusEnum.CANNEL.getCode())){
+                            contractTrades.add(record);
+                        }else if (Objects.equals(orDefault.getType(),EntTypeEnum.SUPPLIER.getCode())){
+                            contractTrades1.add(record);
+                        }
+            });
+        }
+        contractTrades.addAll(contractTrades1);
+        records = contractTrades;
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(records)){
+            return Collections.emptyList();
+        }
+
         Set<Long> tradeContractIds = records.stream().map(KwcContractTrade::getId).collect(Collectors.toSet());
         //获取父id
         Set<Long> contractPids = records.stream().map(KwcContractTrade::getContractPid).collect(Collectors.toSet());
@@ -1887,8 +1923,14 @@ public class KwcContractTradeService {
                 .collect(Collectors.toList());
         ContractStatusCountResp contractStatusCountResp = new ContractStatusCountResp();
         contractStatusCountResp.setTotalNum("0");
-        Long entId = StringUtils.isNotBlank(req.getEntId()) ? Long.valueOf(req.getEntId()) : null;
+        Long entId;
+        if (Objects.nonNull(req.getEntId())){
+            entId =req.getEntId();
+        }else {
+            entId = LoginUserHolder.getEntId();
+        }
         Set<Long> entIds = Sets.newHashSet();
+        entIds.add(entId);
         if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())) {
             //查询企业 信息
             entIds.add(Long.valueOf(req.getPurchaseEntId()));
@@ -1913,24 +1955,7 @@ public class KwcContractTradeService {
             return contractStatusCountResp;
         }
 
-        List<Long> allEnt = Lists.newArrayList();
-        if (StringUtils.isBlank(req.getEntId())) {
-            req.setEntId(LoginUserHolder.getEntId());
-            allEnt.add(LoginUserHolder.getEntId());
-        }
-
-        if (Objects.nonNull(entId)) {
-            allEnt.add(entId);
-            EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(entId);
-            if (Objects.nonNull(entCacheResDto)) {
-                EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
-                List<EntCacheResDto> child = entCacheResDto1.getChild();
-                if (CollectionUtils.isNotEmpty(child)) {
-                    allEnt.addAll(child.stream().map(EntCacheResDto::getId).toList());
-                }
-            }
-        }
-        List<KwcContractTrade> kwcContractTrades = kwcContractTradeRepository.queryTradeListByPageList(allEnt,
+        List<KwcContractTrade> kwcContractTrades = kwcContractTradeRepository.queryTradeListByPageList(
                 req.getContractCode(),
                 req.getContractName(),
                 req.getSupplementCode(),
@@ -1946,6 +1971,54 @@ public class KwcContractTradeService {
             contractStatusCountResp.setContractStatusInfo(statusCounts);
             return contractStatusCountResp;
         }
+        entIds.addAll(kwcContractTrades.stream().map(KwcContractTrade::getEntId).collect(Collectors.toSet()));
+        List<EntTypeResDto> ents = remoteSystemService.queryEntTypeByIds(entIds);
+        Map<Long, EntTypeResDto> entIdAndEntMap = Maps.newHashMap() ;
+        if (CollectionUtils.isNotEmpty(ents)){
+            entIdAndEntMap =
+                    ents.stream().collect(Collectors.toMap(EntTypeResDto::getEntId, Function.identity(), (v1, v2) -> v1));
+        }
+        //如果登录方是采购方,创建方是提供方,那么采购方只能看到已经签约的合同
+        EntTypeResDto entTypeResDto = entIdAndEntMap.getOrDefault(entId, new EntTypeResDto());
+        //如果登录方是采购商,创建方是供应方,那么采购商只能看到已经签约的合同
+        List<KwcContractTrade> contractTrades  = Lists.newArrayList();
+        List<KwcContractTrade> contractTrades1  = Lists.newArrayList();
+        if (entTypeResDto.getType().equals(EntTypeEnum.PURCHASER.getCode())){
+
+            List<Integer> statusList = Arrays.asList(ContractStatusEnum.SIGNED.getCode(), ContractStatusEnum.COMPLETE.getCode());
+            Map<Long, EntTypeResDto> finalEntIdAndEntMap1 = entIdAndEntMap;
+
+            kwcContractTrades.forEach(record -> {
+                EntTypeResDto orDefault = finalEntIdAndEntMap1.getOrDefault(record.getEntId(), new EntTypeResDto());
+                if (Objects.equals(orDefault.getType(),EntTypeEnum.SUPPLIER.getCode()) && statusList.contains(record.getStatus())){
+                    contractTrades.add(record);
+                }else if (Objects.equals(orDefault.getType(),EntTypeEnum.PURCHASER.getCode())){
+                    contractTrades1.add(record);
+                }
+            });
+            kwcContractTrades = contractTrades;
+        }
+        //如果登录方是供应方,创建方是采购方,那么供应方不能看到已作废的 合同
+        if (entTypeResDto.getType().equals(EntTypeEnum.SUPPLIER.getCode())){
+            Map<Long, EntTypeResDto> finalEntIdAndEntMap = entIdAndEntMap;
+            kwcContractTrades.forEach(record -> {
+                EntTypeResDto orDefault = finalEntIdAndEntMap.getOrDefault(record.getEntId(), new EntTypeResDto());
+                if (Objects.equals(orDefault.getType(),EntTypeEnum.PURCHASER.getCode()) && !Objects.equals(record.getStatus(),ContractStatusEnum.CANNEL.getCode())){
+                    contractTrades.add(record);
+                }else if (Objects.equals(orDefault.getType(),EntTypeEnum.SUPPLIER.getCode())){
+                    contractTrades1.add(record);
+                }
+            });
+            kwcContractTrades = contractTrades;
+        }
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwcContractTrades)){
+            Map<Integer, List<KwcContractTrade>> statusAndLogOrdersMap = new HashMap<>();
+            List<ContractStatusCountResp.ContractStatusCount> statusCounts = statusEnums.stream()
+                    .map(x -> getContractStatusCount(x, statusAndLogOrdersMap))
+                    .collect(Collectors.toList());
+            contractStatusCountResp.setContractStatusInfo(statusCounts);
+            return contractStatusCountResp;
+        }
         Map<Integer, List<KwcContractTrade>> statusAndLogOrdersMap = kwcContractTrades.stream().collect(Collectors.groupingBy(KwcContractTrade::getStatus));
         return getContractStatusCountResp(statusEnums, statusAndLogOrdersMap, contractStatusCountResp, kwcContractTrades);
     }

+ 0 - 23
sckw-modules/sckw-fleet/src/main/resources/bootstrap.yml

@@ -10,29 +10,6 @@ spring:
   main:
     allow-bean-definition-overriding: true
     allow-circular-references: true
-
-# 车辆轨迹服务配置
-vehicle:
-  trace:
-    api:
-      base-url: ${VEHICLE_TRACE_API_URL:http://localhost:8080}
-
-# Feign 配置
-feign:
-  client:
-    config:
-      default:
-        connect-timeout: 5000
-        read-timeout: 10000
-      vehicle-trace-service:
-        connect-timeout: 5000
-        read-timeout: 10000
-        logger-level: full
-  httpclient:
-    enabled: true
-    max-connections: 200
-    max-connections-per-route: 50
-
   cloud:
     nacos:
       discovery:

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

@@ -20,11 +20,14 @@ import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.vo.res.FindAreaTreeResVo;
 import com.sckw.system.model.vo.res.KwsUserResVo;
+import com.sckw.system.repository.KwsEntTypeRepository;
+import com.sckw.system.repository.KwsEnterpriseRepository;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.SysAreaService;
 import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -53,6 +56,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     private SysAreaService sysAreaService;
 
     private final KwsRoleDao kwsRoleDao;
+    private final KwsEntTypeRepository kwsEntTypeRepository;
 
     /**
      * @param keys type#value,type#value
@@ -936,4 +940,32 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return kwsRoleDto;
     }
 
+    @Override
+    public List<EntTypeResDto> queryEntTypeByIds(Set<Long> entIds) {
+        List<KwsEntType> kwsEnterprises = kwsEntTypeRepository.queryByEntIds(entIds);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwsEnterprises)){
+            return List.of();
+        }
+        return kwsEnterprises.stream()
+                .map(RemoteSystemServiceImpl::getEntTypeResDto)
+                .collect(Collectors.toList());
+
+    }
+
+    @NotNull
+    private static EntTypeResDto getEntTypeResDto(KwsEntType item) {
+        EntTypeResDto entTypeResDto = new EntTypeResDto();
+        entTypeResDto.setEntId(item.getEntId());
+        entTypeResDto.setType(item.getType());
+        entTypeResDto.setId(item.getId());
+        entTypeResDto.setRemark(item.getRemark());
+        entTypeResDto.setStatus(item.getStatus());
+        entTypeResDto.setCreateBy(item.getCreateBy());
+        entTypeResDto.setCreateTime(item.getCreateTime());
+        entTypeResDto.setUpdateBy(item.getUpdateBy());
+        entTypeResDto.setUpdateTime(item.getUpdateTime());
+        entTypeResDto.setDelFlag(item.getDelFlag());
+        return entTypeResDto;
+    }
+
 }

+ 6 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/repository/KwsEntTypeRepository.java

@@ -36,4 +36,10 @@ public class KwsEntTypeRepository extends ServiceImpl<KwsEntTypeDao, KwsEntType>
                 .eq(KwsEntType::getEntId, entId)
                 .last("limit 1"));
     }
+
+    public List<KwsEntType> queryByEntIds(Set<Long> entIds) {
+        return list(Wrappers.<KwsEntType>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .in(KwsEntType::getEntId, entIds));
+    }
 }

+ 0 - 21
sckw-modules/sckw-transport/src/main/resources/bootstrap.yml

@@ -11,27 +11,6 @@ spring:
     allow-bean-definition-overriding: true
     allow-circular-references: true
 
-# 车辆轨迹服务配置
-vehicle:
-  trace:
-    api:
-      base-url: ${VEHICLE_TRACE_API_URL:http://localhost:8080}
-
-# Feign 配置
-feign:
-  client:
-    config:
-      default:
-        connect-timeout: 5000
-        read-timeout: 10000
-      vehicle-trace-service:
-        connect-timeout: 5000
-        read-timeout: 10000
-        logger-level: full
-  httpclient:
-    enabled: true
-    max-connections: 200
-    max-connections-per-route: 50
 
 mybatis-plus:
   configuration: