Commit c57660c2b3ffad982e1bfd0bf3bfb62d7bd9b5c6

Authored by 房远帅
1 parent dd85ff37

合同变更:未锁规合同只有在锁规完成后才能变更,和锁规延期申请不会同时进行(未锁规的才能进行锁规延期申请),所以多余的判断逻辑去除

... ... @@ -24,7 +24,6 @@ import com.lframework.xingyun.sc.entity.ContractDistributorStandard;
24 24 import com.lframework.xingyun.sc.entity.SpecLockDelayApplication;
25 25 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
26 26 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
27   -import com.lframework.xingyun.sc.service.contract.ContractChangeApplicationService;
28 27 import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService;
29 28 import com.lframework.xingyun.sc.vo.contract.createVo.CreateSpecLockDelayApplicationVo;
30 29 import com.lframework.xingyun.sc.vo.contract.queryVo.QuerySpecLockDelayApplicationVo;
... ... @@ -66,8 +65,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController {
66 65 private CustomerService customerService;
67 66 @Autowired
68 67 private WorkshopService workshopService;
69   - @Autowired
70   - private ContractChangeApplicationService contractChangeApplicationService;
71 68
72 69 public static final String AUDIT_STATUS_DIC_CODE = "AUDIT_STATUS"; // 审核状态
73 70
... ... @@ -228,11 +225,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController {
228 225 if (contractDistributorStandard == null) {
229 226 throw new DefaultClientException("对应锁价无规格合同不存在!");
230 227 }
231   - String rootContractId = StringUtils.isBlank(contractDistributorStandard.getParentId())
232   - ? contractDistributorStandard.getId() : contractDistributorStandard.getParentId();
233   - if (contractChangeApplicationService.hasUnfinishedApplication(rootContractId)) {
234   - throw new DefaultClientException("该合同存在未结束的合同变更流程,不允许发起锁规延期申请!");
235   - }
236 228
237 229 QuerySpecLockDelayApplicationVo vo = new QuerySpecLockDelayApplicationVo();
238 230 vo.setContractId(id);
... ...
... ... @@ -9,7 +9,6 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
9 9 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
10 10 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
11 11 import com.lframework.starter.common.utils.Assert;
12   -import com.lframework.starter.common.utils.ObjectUtil;
13 12 import com.lframework.starter.web.core.annotations.oplog.OpLog;
14 13 import com.lframework.starter.web.core.components.resp.PageResult;
15 14 import com.lframework.starter.web.core.components.security.SecurityUtil;
... ... @@ -31,7 +30,6 @@ import com.lframework.xingyun.sc.entity.ContractChangeApplication;
31 30 import com.lframework.xingyun.sc.entity.ContractDistributorLine;
32 31 import com.lframework.xingyun.sc.entity.ContractDistributorStandard;
33 32 import com.lframework.xingyun.sc.entity.ContractStdProcessingLine;
34   -import com.lframework.xingyun.sc.entity.SpecLockDelayApplication;
35 33 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
36 34 import com.lframework.xingyun.sc.mappers.ContractChangeApplicationMapper;
37 35 import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper;
... ... @@ -53,10 +51,8 @@ import org.springframework.beans.factory.annotation.Autowired;
53 51 import org.springframework.cache.annotation.CacheEvict;
54 52 import org.springframework.stereotype.Service;
55 53 import org.springframework.transaction.annotation.Transactional;
56   -
57 54 import javax.annotation.Resource;
58 55 import java.io.Serializable;
59   -import java.time.LocalDateTime;
60 56 import java.util.ArrayList;
61 57 import java.util.Arrays;
62 58 import java.util.Collections;
... ... @@ -87,8 +83,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont
87 83 @Resource
88 84 private ContractStdProcessingLineService contractStdProcessingLineService;
89 85 @Resource
90   - private SpecLockDelayApplicationMapper specLockDelayApplicationMapper;
91   - @Resource
92 86 private WorkshopService workshopService;
93 87 @Resource
94 88 private SysDeptService sysDeptService;
... ... @@ -126,6 +120,7 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont
126 120 Wrappers.lambdaQuery(ContractChangeApplication.class)
127 121 .like(StringUtils.isNotBlank(vo.getContractCode()), ContractChangeApplication::getContractCode, vo.getContractCode())
128 122 .eq(StringUtils.isNotBlank(vo.getContractType()), ContractChangeApplication::getContractType, vo.getContractType())
  123 + .eq(StringUtils.isNotBlank(vo.getContractStage()), ContractChangeApplication::getContractStage, vo.getContractStage())
129 124 .eq(StringUtils.isNotBlank(vo.getApprovalStatus()), ContractChangeApplication::getApprovalStatus, vo.getApprovalStatus());
130 125 if (CollectionUtils.isNotEmpty(buyerIds)) {
131 126 List<String> finalBuyerIds = buyerIds;
... ... @@ -480,9 +475,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont
480 475 if (hasUnfinishedApplication(rootContractId)) {
481 476 throw new DefaultClientException("该合同存在未结束的合同变更流程,不允许重复发起变更!");
482 477 }
483   - if (hasUnfinishedSpecLockDelay(rootContractId)) {
484   - throw new DefaultClientException("该合同存在未结束的锁规延期申请,不允许发起合同变更!");
485   - }
486 478 }
487 479
488 480 /**
... ... @@ -611,35 +603,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont
611 603 }
612 604
613 605 /**
614   - * 是否存在未结束的锁规延期申请
615   - *
616   - * @param rootContractId 根合同ID
617   - * @return 是否存在未结束的锁规延期申请
618   - */
619   - private boolean hasUnfinishedSpecLockDelay(String rootContractId) {
620   - if (StringUtils.isBlank(rootContractId)) {
621   - return false;
622   - }
623   -
624   - Wrapper<ContractDistributorStandard> contractWrapper = Wrappers.lambdaQuery(ContractDistributorStandard.class)
625   - .select(ContractDistributorStandard::getId)
626   - .eq(ContractDistributorStandard::getId, rootContractId)
627   - .or()
628   - .eq(ContractDistributorStandard::getParentId, rootContractId);
629   - List<ContractDistributorStandard> contractList = contractDistributorStandardMapper.selectList(contractWrapper);
630   - List<String> contractIds = contractList.stream().map(ContractDistributorStandard::getId).collect(Collectors.toList());
631   - if (!contractIds.contains(rootContractId)) {
632   - contractIds.add(rootContractId);
633   - }
634   -
635   - Wrapper<SpecLockDelayApplication> wrapper = Wrappers.lambdaQuery(SpecLockDelayApplication.class)
636   - .in(SpecLockDelayApplication::getContractId, contractIds)
637   - .notIn(SpecLockDelayApplication::getApprovalStatus,
638   - Arrays.asList(CustomerDevelopStatus.PASS.name(), CustomerDevelopStatus.CANCEL.name()));
639   - return specLockDelayApplicationMapper.selectCount(wrapper) > 0;
640   - }
641   -
642   - /**
643 606 * 应用合同变更
644 607 *
645 608 * @param application 变更申请单
... ...
... ... @@ -32,7 +32,6 @@ import com.lframework.xingyun.sc.entity.SpecLockDelayApplication;
32 32 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
33 33 import com.lframework.xingyun.sc.handlers.TransactorHandler;
34 34 import com.lframework.xingyun.sc.mappers.SpecLockDelayApplicationMapper;
35   -import com.lframework.xingyun.sc.service.contract.ContractChangeApplicationService;
36 35 import com.lframework.xingyun.sc.service.HolidaysService;
37 36 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
38 37 import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService;
... ... @@ -80,8 +79,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
80 79 private SysDeptService sysDeptService;
81 80 @Resource
82 81 private TransactorHandler transactorHandler;
83   - @Resource
84   - private ContractChangeApplicationService contractChangeApplicationService;
85 82
86 83 @Override
87 84 public PageResult<SpecLockDelayApplication> query(Integer pageIndex, Integer pageSize, QuerySpecLockDelayApplicationVo vo) {
... ... @@ -134,7 +131,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
134 131 @Transactional(rollbackFor = Exception.class)
135 132 @Override
136 133 public String create(CreateSpecLockDelayApplicationVo vo) throws Exception {
137   - checkNoUnfinishedContractChange(vo.getContractId());
138 134 checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate());
139 135
140 136 SpecLockDelayApplication data = new SpecLockDelayApplication();
... ... @@ -185,7 +181,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
185 181 @Transactional(rollbackFor = Exception.class)
186 182 @Override
187 183 public void update(UpdateSpecLockDelayApplicationVo vo) throws Exception {
188   - checkNoUnfinishedContractChange(vo.getContractId());
189 184 checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate());
190 185
191 186 SpecLockDelayApplication data = getBaseMapper().selectById(vo.getId());
... ... @@ -291,25 +286,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
291 286
292 287 }
293 288
294   - /**
295   - * 校验不存在未结束的合同变更
296   - *
297   - * @param contractId 合同ID
298   - */
299   - private void checkNoUnfinishedContractChange(String contractId) {
300   - if (StringUtils.isBlank(contractId)) {
301   - return;
302   - }
303   - ContractDistributorStandard contract = contractDistributorStandardService.findById(contractId);
304   - if (contract == null) {
305   - return;
306   - }
307   - String rootContractId = StringUtils.isBlank(contract.getParentId()) ? contract.getId() : contract.getParentId();
308   - if (contractChangeApplicationService.hasUnfinishedApplication(rootContractId)) {
309   - throw new DefaultClientException("该合同存在未结束的合同变更流程,不允许发起锁规延期申请!");
310   - }
311   - }
312   -
313 289 public void sendDelaySpecLockMessage() {
314 290 log.info("开始执行延迟锁规消息发送任务");
315 291
... ...
... ... @@ -56,17 +56,6 @@
56 56 WHERE cca.root_contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
57 57 AND cca.approval_status NOT IN ('PASS', 'CANCEL')
58 58 )
59   - AND NOT EXISTS (
60   - SELECT 1
61   - FROM tbl_spec_lock_delay_application sda
62   - LEFT JOIN tbl_contract_distributor_standard rel
63   - ON rel.id = sda.contract_id
64   - WHERE sda.approval_status NOT IN ('PASS', 'CANCEL')
65   - AND (
66   - sda.contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
67   - OR rel.parent_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
68   - )
69   - )
70 59 ORDER BY tb.create_time DESC
71 60 </select>
72 61 </mapper>
... ...