|
|
@@ -1,20 +1,26 @@
|
|
|
package com.sckw.contract.service;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.sckw.contract.dao.KwcContractLogisticsTrackMapper;
|
|
|
import com.sckw.contract.dao.KwcContractTradeMapper;
|
|
|
import com.sckw.contract.dao.KwcContractTradeTrackMapper;
|
|
|
-import com.sckw.contract.model.entity.KwcContractLogisticsTrack;
|
|
|
-import com.sckw.contract.model.entity.KwcContractTradeTrack;
|
|
|
+import com.sckw.contract.dao.KwcContractTradeUnitMapper;
|
|
|
+import com.sckw.contract.model.entity.*;
|
|
|
+import com.sckw.contract.model.vo.res.ContractTrackResVo;
|
|
|
import com.sckw.core.exception.SystemException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.enums.ContractTrackEnum;
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.IdWorker;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
+import com.sckw.system.api.RemoteSystemService;
|
|
|
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author PC
|
|
|
@@ -27,6 +33,14 @@ public class KwcContractTradeTrackService {
|
|
|
@Autowired
|
|
|
private KwcContractTradeTrackMapper kwcContractTradeTrackMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private KwcContractTradeMapper kwcContractTradeMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwcContractTradeUnitMapper kwcContractTradeUnitMapper;
|
|
|
+
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
+ private RemoteSystemService remoteSystemService;
|
|
|
|
|
|
public void saveContractTradeTrack(Long contractId) {
|
|
|
Date date = new Date();
|
|
|
@@ -45,6 +59,65 @@ public class KwcContractTradeTrackService {
|
|
|
throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param id 合同id
|
|
|
+ * @return List<ContractTrackResVo>
|
|
|
+ * @desc: 根据合同id查流程
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/31
|
|
|
+ */
|
|
|
+ public List<ContractTrackResVo> queryContractTrackByContractId(Long id) {
|
|
|
+ LambdaQueryWrapper<KwcContractTradeTrack> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(KwcContractTradeTrack::getContractId, id).
|
|
|
+ eq(KwcContractTradeTrack::getDelFlag, Global.NO).
|
|
|
+ orderByDesc(KwcContractTradeTrack::getCreateTime);
|
|
|
+ List<KwcContractTradeTrack> kwcContractTradeTracks = kwcContractTradeTrackMapper.selectList(wrapper);
|
|
|
+ if (CollectionUtils.isEmpty(kwcContractTradeTracks)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ KwcContractTrade kwcContractTrade = kwcContractTradeMapper.selectById(id);
|
|
|
+ if (Objects.isNull(kwcContractTrade)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ Long entId = kwcContractTrade.getEntId();
|
|
|
+ LambdaQueryWrapper<KwcContractTradeUnit> wrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper2.eq(KwcContractTradeUnit::getContractId, id).
|
|
|
+ eq(KwcContractTradeUnit::getDelFlag, Global.NO);
|
|
|
+ List<KwcContractTradeUnit> kwcContractTradeUnits = kwcContractTradeUnitMapper.selectList(wrapper2);
|
|
|
+ if (CollectionUtils.isEmpty(kwcContractTradeUnits)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ String initiateEntName = "";
|
|
|
+ String targetEntName = "";
|
|
|
+ for (KwcContractTradeUnit kwcContractTradeUnit : kwcContractTradeUnits) {
|
|
|
+ if (kwcContractTradeUnit.getEntId().equals(entId)) {
|
|
|
+ initiateEntName = kwcContractTradeUnit.getFirmName();
|
|
|
+ } else {
|
|
|
+ targetEntName = kwcContractTradeUnit.getFirmName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ContractTrackResVo> list = new ArrayList<>();
|
|
|
+ for (KwcContractTradeTrack item : kwcContractTradeTracks) {
|
|
|
+ ContractTrackResVo contractTrackResVo = new ContractTrackResVo();
|
|
|
+ contractTrackResVo.setCreateTime(item.getCreateTime());
|
|
|
+ contractTrackResVo.setTrackName(ContractTrackEnum.getName(item.getType()).getName());
|
|
|
+ if (ContractTrackEnum.SIGNING.getCode() == item.getType()) {
|
|
|
+ contractTrackResVo.setEntName(initiateEntName);
|
|
|
+ } else if (ContractTrackEnum.SIGNED.getCode() == item.getType()) {
|
|
|
+ contractTrackResVo.setEntName(targetEntName);
|
|
|
+ } else {
|
|
|
+ UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(item.getCreateBy());
|
|
|
+ contractTrackResVo.setEntName(userCacheResDto.getEntInfo().getFirmName());
|
|
|
+ }
|
|
|
+ list.add(contractTrackResVo);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|