Ver Fonte

增加查询交易对方企业列表的接口

tangyishan há 4 meses atrás
pai
commit
ac44cbaafa

+ 18 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/feign/ContractFeignService.java

@@ -0,0 +1,18 @@
+package com.sckw.contract.api.feign;
+
+import com.sckw.contract.api.model.dto.req.TradeEntListQueryFeignDto;
+import com.sckw.contract.api.model.dto.res.TradeEntInfoResVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(name = "sckw-ng-contract",contextId = "contractFeignService")
+public interface ContractFeignService {
+    /**
+     * 根据当前企业id查询采购合同对方企业id列表
+     */
+    @GetMapping("/kwcPurchase/queryTradeEntList")
+    List<TradeEntInfoResVo> queryTradeEntIds(@RequestBody TradeEntListQueryFeignDto queryFeignDto);
+}

+ 1 - 1
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/feign/LogisticsScoreFeignService.java

@@ -6,7 +6,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
-@FeignClient(name = "sckw-ng-contract",path = "/api/logisticsScore")
+@FeignClient(name = "sckw-ng-contract",contextId = "logisticsScoreFeignService", path = "/api/logisticsScore")
 public interface LogisticsScoreFeignService {
     /**
      * 系统修改物流企业评分

+ 17 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/model/dto/req/TradeEntListQueryFeignDto.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.api.model.dto.req;
+
+import lombok.Data;
+
+/**
+ * 交易企业列表查询参数
+ *
+ * @author tangyishan
+ * @since 2026-02-03  10:18
+ */
+@Data
+public class TradeEntListQueryFeignDto {
+    //当前企业的 id
+    private Long curEntId;
+    //需要查询的对方企业类型 1-供应 2-采购 3-物流
+    private Integer tradeEntType;
+}

+ 18 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/model/dto/res/TradeEntInfoResVo.java

@@ -0,0 +1,18 @@
+package com.sckw.contract.api.model.dto.res;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 交易对方企业信息
+ *
+ * @author tangyishan
+ * @since 2026-02-03  10:39
+ */
+@Data
+public class TradeEntInfoResVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private Long entId;
+    private String entName;
+}

+ 9 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java

@@ -1,7 +1,9 @@
 package com.sckw.contract.controller;
 
+import com.sckw.contract.api.model.dto.req.TradeEntListQueryFeignDto;
 import com.sckw.contract.model.vo.req.IdReqVo;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
+import com.sckw.contract.api.model.dto.res.TradeEntInfoResVo;
 import com.sckw.contract.service.operateService.KwcContractTradeService;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.web.response.HttpResult;
@@ -14,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * @author czh
  * @desc 采购合同
@@ -39,6 +43,11 @@ public class KwcPurchaseController {
         return HttpResult.ok(kwcContractTradeService.queryListByPage(reqVo));
     }
 
+    @PostMapping("queryTradeEntList")
+    public List<TradeEntInfoResVo> queryTradeEntList(@RequestBody TradeEntListQueryFeignDto queryFeignDto) {
+        return kwcContractTradeService.queryTradeEntList(queryFeignDto);
+    }
+
     /**
      * @desc: 合同详情
      * @param reqVo id

+ 10 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractTradeUnitRepository.java

@@ -1,6 +1,6 @@
 package com.sckw.contract.repository;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sckw.contract.dao.KwcContractTradeUnitMapper;
@@ -37,6 +37,15 @@ public class KwcContractTradeUnitRepository extends ServiceImpl<KwcContractTrade
                 .in(KwcContractTradeUnit::getContractId, tradeContractIds));
     }
 
+    public List<KwcContractTradeUnit> queryByContractIdsAndEntType(Set<Long> tradeContractIds,Integer entType) {
+        QueryWrapper<KwcContractTradeUnit> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("DISTINCT ent_id,firm_name")
+                .eq("del_flag", 0)
+                .in("contract_id", tradeContractIds)
+                .eq("unit_type", entType);
+        return list(queryWrapper);
+    }
+
     public List<KwcContractTradeUnit> queryByEntIdAndUnitType(Long entId, Integer unitType) {
        return list(Wrappers.<KwcContractTradeUnit>lambdaQuery()
                 .eq(KwcContractTradeUnit::getEntId, entId)

+ 30 - 4
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -9,10 +9,8 @@ import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.sckw.contract.api.model.dto.res.ContractLogisticsOrderResDto;
-import com.sckw.contract.api.model.dto.res.ContractTradeOrderDto;
-import com.sckw.contract.api.model.dto.res.ContractTradeOrderInfo;
-import com.sckw.contract.api.model.dto.res.LogisticsOrderDto;
+import com.sckw.contract.api.model.dto.req.TradeEntListQueryFeignDto;
+import com.sckw.contract.api.model.dto.res.*;
 import com.sckw.contract.api.model.vo.LogisticsEntDtoVO;
 import com.sckw.contract.api.model.vo.LogisticsGoodsDto;
 import com.sckw.contract.api.model.vo.TradeContractUnitDto;
@@ -1879,6 +1877,34 @@ public class KwcContractTradeService {
         return records.size();
     }
 
+
+    public List<TradeEntInfoResVo> queryTradeEntList(TradeEntListQueryFeignDto queryFeignDto) {
+        List<TradeEntInfoResVo> resVos =  new ArrayList<>();
+        Long entId = queryFeignDto.getCurEntId();
+        Set<Long> entIds = Sets.newHashSet();
+        entIds.add(entId);
+        Set<Long> contractIds = null;
+        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());
+            }
+        }
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(contractIds)) {
+            return Collections.emptyList();
+        }
+        List<KwcContractTradeUnit> tradeUnits = kwcContractTradeUnitRepository.queryByContractIdsAndEntType(contractIds, queryFeignDto.getTradeEntType());
+        for (KwcContractTradeUnit tradeUnit : tradeUnits) {
+            TradeEntInfoResVo resVo = new TradeEntInfoResVo();
+            resVo.setEntId(tradeUnit.getEntId());
+            resVo.setEntName(tradeUnit.getFirmName());
+            resVos.add(resVo);
+        }
+        return resVos;
+    }
+
     @NotNull
     private static QueryListResVo getQueryListResVo(KwcContractTrade t,
                                                     Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap,