|
|
@@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
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.dao.KwcContractTradeMapper;
|
|
|
import com.sckw.contract.model.dto.req.QueryListReqDto;
|
|
|
import com.sckw.contract.model.dto.res.QueryListResDto;
|
|
|
@@ -51,6 +53,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -1561,8 +1564,129 @@ public class KwcContractTradeService {
|
|
|
}
|
|
|
|
|
|
public PageDataResult<QueryListResVo> queryTradeListByPage(QueryTradeReq req) {
|
|
|
+ Set<Long> entIds = Sets.newHashSet();
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())) {
|
|
|
+ //查询企业 信息
|
|
|
+ entIds.add(Long.valueOf(req.getPurchaseEntId()));
|
|
|
+ }
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getSupplyEntId())) {
|
|
|
+ entIds.add(Long.valueOf(req.getSupplyEntId()));
|
|
|
+ }
|
|
|
+ Set<Long> contractIds = Sets.newHashSet();
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Long> allEnt = Lists.newArrayList();
|
|
|
+ if (StringUtils.isBlank(req.getEntId())) {
|
|
|
+ req.setEntId(String.valueOf(LoginUserHolder.getEntId()));
|
|
|
+ }
|
|
|
+ allEnt.add(Long.valueOf(req.getEntId()));
|
|
|
+ EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(Long.valueOf(req.getEntId()));
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//分页查询合同信息
|
|
|
- // PageDataResult<QueryListResVo> pageDataResult = kwcContractTradeRepository.queryTradeListByPage(req);
|
|
|
- return null;
|
|
|
+ IPage<KwcContractTrade> page = kwcContractTradeRepository.queryTradeListByPage(allEnt,
|
|
|
+ req.getContractCode(),
|
|
|
+ req.getContractName(),
|
|
|
+ contractIds, req.getStatus(), req.getPageNum(), req.getPageSize());
|
|
|
+ List<KwcContractTrade> records = page.getRecords();
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(records)){
|
|
|
+ return PageDataResult.empty(req.getPageNum(), req.getPageSize());
|
|
|
+ }
|
|
|
+ Set<Long> tradeContractIds = records.stream().map(KwcContractTrade::getId).collect(Collectors.toSet());
|
|
|
+ //获取父id
|
|
|
+ Set<Long> contractPids = records.stream().map(KwcContractTrade::getContractPid).collect(Collectors.toSet());
|
|
|
+ //根据父id查询父合同信息
|
|
|
+ Map<Long, KwcContractTrade> pidIdAndTradeMap = Maps.newHashMap();
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(contractPids)){
|
|
|
+ List<KwcContractTrade> contractPidList = kwcContractTradeRepository.queryByContractIds(contractPids);
|
|
|
+
|
|
|
+ pidIdAndTradeMap =
|
|
|
+ contractPidList.stream().collect(Collectors.toMap(KwcContractTrade::getId
|
|
|
+ , Function.identity(), (v1, v2) -> v1));
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询公司信息
|
|
|
+ List<KwcContractTradeUnit> tradeUnits = kwcContractTradeUnitRepository.queryByContractIds(tradeContractIds);
|
|
|
+ Map<String, KwcContractTradeUnit> contractUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeUnits)){
|
|
|
+ contractUnitTypeKeyAndUnitMap = tradeUnits.stream()
|
|
|
+ .peek(x -> x.setContractIdUniTypeKey(x.getContractId() + "-" + x.getUnitType()))
|
|
|
+ .collect(Collectors.toMap(KwcContractTradeUnit::getContractIdUniTypeKey, Function.identity(), (v1
|
|
|
+ , v2) -> v1));
|
|
|
+ }
|
|
|
+ //查询用户信息
|
|
|
+ //获取创建人
|
|
|
+ List<Long> createBys =
|
|
|
+ records.stream().map(KwcContractTrade::getCreateBy).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, UserCacheResDto> longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(createBys);
|
|
|
+ Map<Long, KwcContractTrade> finalPidIdAndTradeMap = pidIdAndTradeMap;
|
|
|
+ Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap = contractUnitTypeKeyAndUnitMap;
|
|
|
+ List<QueryListResVo> queryListResVos = records.stream()
|
|
|
+ .map(t -> getQueryListResVo(t, finalContractUnitTypeKeyAndUnitMap, finalPidIdAndTradeMap, longUserCacheResDtoMap))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return PageDataResult.of(page, queryListResVos);
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private static QueryListResVo getQueryListResVo(KwcContractTrade t, Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap, Map<Long, KwcContractTrade> finalPidIdAndTradeMap, Map<Long, UserCacheResDto> longUserCacheResDtoMap) {
|
|
|
+ QueryListResVo queryListResVo = new QueryListResVo();
|
|
|
+ queryListResVo.setId(t.getId());
|
|
|
+ queryListResVo.setStatus(t.getStatus());
|
|
|
+ queryListResVo.setStatusName(ContractStatusEnum.getNameByCode(t.getStatus()));
|
|
|
+
|
|
|
+ KwcContractTradeUnit purchaseEnt = finalContractUnitTypeKeyAndUnitMap.getOrDefault(t.getId() + "-" + CooperateTypeEnum.PURCHASER.getCode(),
|
|
|
+ new KwcContractTradeUnit());
|
|
|
+ queryListResVo.setPurchaseEntId(String.valueOf(purchaseEnt.getEntId()));
|
|
|
+ queryListResVo.setPurchaseEntName(purchaseEnt.getFirmName());
|
|
|
+ KwcContractTradeUnit provideEnt =
|
|
|
+ finalContractUnitTypeKeyAndUnitMap.getOrDefault(t.getId() + "-" + CooperateTypeEnum.SUPPLIER.getCode(),
|
|
|
+ new KwcContractTradeUnit());
|
|
|
+ queryListResVo.setProvideEntId(String.valueOf(provideEnt.getEntId()));
|
|
|
+ queryListResVo.setProvideEntName(provideEnt.getFirmName());
|
|
|
+ //queryListResVo.setCheckedEntName();
|
|
|
+ queryListResVo.setContractNo(t.getContractNo());
|
|
|
+ queryListResVo.setContractName(t.getName());
|
|
|
+ queryListResVo.setSigningWay(String.valueOf(t.getSigningWay()));
|
|
|
+ queryListResVo.setSigningWayName(DictEnum.getLabel(DictTypeEnum.SIGNING_TYPE.getType(),String.valueOf(t.getSigningWay())));
|
|
|
+ queryListResVo.setUnloadWay(String.valueOf(t.getUnloadWay()));
|
|
|
+ queryListResVo.setUnloadWayName(DictEnum.getLabel(DictTypeEnum.LOAD_UNLOAD_WAY.getType(),
|
|
|
+ String.valueOf(t.getUnloadWay())));
|
|
|
+ queryListResVo.setAmount(t.getAmount());
|
|
|
+ queryListResVo.setPerformedAmount(t.getPerformedAmount());
|
|
|
+
|
|
|
+ // queryListResVo.setPerformedAmountMoney();
|
|
|
+ queryListResVo.setContractPid(t.getContractPid());
|
|
|
+ KwcContractTrade parentTrade = finalPidIdAndTradeMap.getOrDefault(t.getContractPid(),
|
|
|
+ new KwcContractTrade());
|
|
|
+ queryListResVo.setContractPname(parentTrade.getName());
|
|
|
+
|
|
|
+// queryListResVo.setChargingName();
|
|
|
+// queryListResVo.setTradingName();
|
|
|
+// queryListResVo.setCarrierEntName();
|
|
|
+ UserCacheResDto userCacheResDto = longUserCacheResDtoMap.getOrDefault(t.getCreateBy(), new UserCacheResDto());
|
|
|
+ queryListResVo.setInitiateName(userCacheResDto.getName());
|
|
|
+ if (Objects.nonNull(userCacheResDto.getEntInfo())){
|
|
|
+ queryListResVo.setInitiateEntName(userCacheResDto.getEntInfo().getFirmName());
|
|
|
+ }
|
|
|
+ queryListResVo.setCreateTime(t.getCreateTime());
|
|
|
+ queryListResVo.setStartTime(t.getStartTime());
|
|
|
+ queryListResVo.setEndTime(t.getEndTime());
|
|
|
+ queryListResVo.setInitiateTime(t.getCreateTime());
|
|
|
+ queryListResVo.setRemark(t.getRemark());
|
|
|
+ queryListResVo.setSignTime(t.getCreateTime());
|
|
|
+ return queryListResVo;
|
|
|
}
|
|
|
}
|