Commit c57660c2b3ffad982e1bfd0bf3bfb62d7bd9b5c6
1 parent
dd85ff37
合同变更:未锁规合同只有在锁规完成后才能变更,和锁规延期申请不会同时进行(未锁规的才能进行锁规延期申请),所以多余的判断逻辑去除
Showing
4 changed files
with
1 additions
and
81 deletions
| @@ -24,7 +24,6 @@ import com.lframework.xingyun.sc.entity.ContractDistributorStandard; | @@ -24,7 +24,6 @@ import com.lframework.xingyun.sc.entity.ContractDistributorStandard; | ||
| 24 | import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; | 24 | import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; |
| 25 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | 25 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; |
| 26 | import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; | 26 | import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; |
| 27 | -import com.lframework.xingyun.sc.service.contract.ContractChangeApplicationService; | ||
| 28 | import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService; | 27 | import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService; |
| 29 | import com.lframework.xingyun.sc.vo.contract.createVo.CreateSpecLockDelayApplicationVo; | 28 | import com.lframework.xingyun.sc.vo.contract.createVo.CreateSpecLockDelayApplicationVo; |
| 30 | import com.lframework.xingyun.sc.vo.contract.queryVo.QuerySpecLockDelayApplicationVo; | 29 | import com.lframework.xingyun.sc.vo.contract.queryVo.QuerySpecLockDelayApplicationVo; |
| @@ -66,8 +65,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController { | @@ -66,8 +65,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController { | ||
| 66 | private CustomerService customerService; | 65 | private CustomerService customerService; |
| 67 | @Autowired | 66 | @Autowired |
| 68 | private WorkshopService workshopService; | 67 | private WorkshopService workshopService; |
| 69 | - @Autowired | ||
| 70 | - private ContractChangeApplicationService contractChangeApplicationService; | ||
| 71 | 68 | ||
| 72 | public static final String AUDIT_STATUS_DIC_CODE = "AUDIT_STATUS"; // 审核状态 | 69 | public static final String AUDIT_STATUS_DIC_CODE = "AUDIT_STATUS"; // 审核状态 |
| 73 | 70 | ||
| @@ -228,11 +225,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController { | @@ -228,11 +225,6 @@ public class SpecLockDelayApplicationController extends DefaultBaseController { | ||
| 228 | if (contractDistributorStandard == null) { | 225 | if (contractDistributorStandard == null) { |
| 229 | throw new DefaultClientException("对应锁价无规格合同不存在!"); | 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 | QuerySpecLockDelayApplicationVo vo = new QuerySpecLockDelayApplicationVo(); | 229 | QuerySpecLockDelayApplicationVo vo = new QuerySpecLockDelayApplicationVo(); |
| 238 | vo.setContractId(id); | 230 | vo.setContractId(id); |
| @@ -9,7 +9,6 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService; | @@ -9,7 +9,6 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService; | ||
| 9 | import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; | 9 | import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; |
| 10 | import com.lframework.starter.common.exceptions.impl.DefaultClientException; | 10 | import com.lframework.starter.common.exceptions.impl.DefaultClientException; |
| 11 | import com.lframework.starter.common.utils.Assert; | 11 | import com.lframework.starter.common.utils.Assert; |
| 12 | -import com.lframework.starter.common.utils.ObjectUtil; | ||
| 13 | import com.lframework.starter.web.core.annotations.oplog.OpLog; | 12 | import com.lframework.starter.web.core.annotations.oplog.OpLog; |
| 14 | import com.lframework.starter.web.core.components.resp.PageResult; | 13 | import com.lframework.starter.web.core.components.resp.PageResult; |
| 15 | import com.lframework.starter.web.core.components.security.SecurityUtil; | 14 | import com.lframework.starter.web.core.components.security.SecurityUtil; |
| @@ -31,7 +30,6 @@ import com.lframework.xingyun.sc.entity.ContractChangeApplication; | @@ -31,7 +30,6 @@ import com.lframework.xingyun.sc.entity.ContractChangeApplication; | ||
| 31 | import com.lframework.xingyun.sc.entity.ContractDistributorLine; | 30 | import com.lframework.xingyun.sc.entity.ContractDistributorLine; |
| 32 | import com.lframework.xingyun.sc.entity.ContractDistributorStandard; | 31 | import com.lframework.xingyun.sc.entity.ContractDistributorStandard; |
| 33 | import com.lframework.xingyun.sc.entity.ContractStdProcessingLine; | 32 | import com.lframework.xingyun.sc.entity.ContractStdProcessingLine; |
| 34 | -import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; | ||
| 35 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | 33 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; |
| 36 | import com.lframework.xingyun.sc.mappers.ContractChangeApplicationMapper; | 34 | import com.lframework.xingyun.sc.mappers.ContractChangeApplicationMapper; |
| 37 | import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper; | 35 | import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper; |
| @@ -53,10 +51,8 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -53,10 +51,8 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
| 53 | import org.springframework.cache.annotation.CacheEvict; | 51 | import org.springframework.cache.annotation.CacheEvict; |
| 54 | import org.springframework.stereotype.Service; | 52 | import org.springframework.stereotype.Service; |
| 55 | import org.springframework.transaction.annotation.Transactional; | 53 | import org.springframework.transaction.annotation.Transactional; |
| 56 | - | ||
| 57 | import javax.annotation.Resource; | 54 | import javax.annotation.Resource; |
| 58 | import java.io.Serializable; | 55 | import java.io.Serializable; |
| 59 | -import java.time.LocalDateTime; | ||
| 60 | import java.util.ArrayList; | 56 | import java.util.ArrayList; |
| 61 | import java.util.Arrays; | 57 | import java.util.Arrays; |
| 62 | import java.util.Collections; | 58 | import java.util.Collections; |
| @@ -87,8 +83,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | @@ -87,8 +83,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | ||
| 87 | @Resource | 83 | @Resource |
| 88 | private ContractStdProcessingLineService contractStdProcessingLineService; | 84 | private ContractStdProcessingLineService contractStdProcessingLineService; |
| 89 | @Resource | 85 | @Resource |
| 90 | - private SpecLockDelayApplicationMapper specLockDelayApplicationMapper; | ||
| 91 | - @Resource | ||
| 92 | private WorkshopService workshopService; | 86 | private WorkshopService workshopService; |
| 93 | @Resource | 87 | @Resource |
| 94 | private SysDeptService sysDeptService; | 88 | private SysDeptService sysDeptService; |
| @@ -126,6 +120,7 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | @@ -126,6 +120,7 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | ||
| 126 | Wrappers.lambdaQuery(ContractChangeApplication.class) | 120 | Wrappers.lambdaQuery(ContractChangeApplication.class) |
| 127 | .like(StringUtils.isNotBlank(vo.getContractCode()), ContractChangeApplication::getContractCode, vo.getContractCode()) | 121 | .like(StringUtils.isNotBlank(vo.getContractCode()), ContractChangeApplication::getContractCode, vo.getContractCode()) |
| 128 | .eq(StringUtils.isNotBlank(vo.getContractType()), ContractChangeApplication::getContractType, vo.getContractType()) | 122 | .eq(StringUtils.isNotBlank(vo.getContractType()), ContractChangeApplication::getContractType, vo.getContractType()) |
| 123 | + .eq(StringUtils.isNotBlank(vo.getContractStage()), ContractChangeApplication::getContractStage, vo.getContractStage()) | ||
| 129 | .eq(StringUtils.isNotBlank(vo.getApprovalStatus()), ContractChangeApplication::getApprovalStatus, vo.getApprovalStatus()); | 124 | .eq(StringUtils.isNotBlank(vo.getApprovalStatus()), ContractChangeApplication::getApprovalStatus, vo.getApprovalStatus()); |
| 130 | if (CollectionUtils.isNotEmpty(buyerIds)) { | 125 | if (CollectionUtils.isNotEmpty(buyerIds)) { |
| 131 | List<String> finalBuyerIds = buyerIds; | 126 | List<String> finalBuyerIds = buyerIds; |
| @@ -480,9 +475,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | @@ -480,9 +475,6 @@ public class ContractChangeApplicationServiceImpl extends BaseMpServiceImpl<Cont | ||
| 480 | if (hasUnfinishedApplication(rootContractId)) { | 475 | if (hasUnfinishedApplication(rootContractId)) { |
| 481 | throw new DefaultClientException("该合同存在未结束的合同变更流程,不允许重复发起变更!"); | 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,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 | * @param application 变更申请单 | 608 | * @param application 变更申请单 |
| @@ -32,7 +32,6 @@ import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; | @@ -32,7 +32,6 @@ import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; | ||
| 32 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | 32 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; |
| 33 | import com.lframework.xingyun.sc.handlers.TransactorHandler; | 33 | import com.lframework.xingyun.sc.handlers.TransactorHandler; |
| 34 | import com.lframework.xingyun.sc.mappers.SpecLockDelayApplicationMapper; | 34 | import com.lframework.xingyun.sc.mappers.SpecLockDelayApplicationMapper; |
| 35 | -import com.lframework.xingyun.sc.service.contract.ContractChangeApplicationService; | ||
| 36 | import com.lframework.xingyun.sc.service.HolidaysService; | 35 | import com.lframework.xingyun.sc.service.HolidaysService; |
| 37 | import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; | 36 | import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; |
| 38 | import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService; | 37 | import com.lframework.xingyun.sc.service.contract.SpecLockDelayApplicationService; |
| @@ -80,8 +79,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | @@ -80,8 +79,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | ||
| 80 | private SysDeptService sysDeptService; | 79 | private SysDeptService sysDeptService; |
| 81 | @Resource | 80 | @Resource |
| 82 | private TransactorHandler transactorHandler; | 81 | private TransactorHandler transactorHandler; |
| 83 | - @Resource | ||
| 84 | - private ContractChangeApplicationService contractChangeApplicationService; | ||
| 85 | 82 | ||
| 86 | @Override | 83 | @Override |
| 87 | public PageResult<SpecLockDelayApplication> query(Integer pageIndex, Integer pageSize, QuerySpecLockDelayApplicationVo vo) { | 84 | public PageResult<SpecLockDelayApplication> query(Integer pageIndex, Integer pageSize, QuerySpecLockDelayApplicationVo vo) { |
| @@ -134,7 +131,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | @@ -134,7 +131,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | ||
| 134 | @Transactional(rollbackFor = Exception.class) | 131 | @Transactional(rollbackFor = Exception.class) |
| 135 | @Override | 132 | @Override |
| 136 | public String create(CreateSpecLockDelayApplicationVo vo) throws Exception { | 133 | public String create(CreateSpecLockDelayApplicationVo vo) throws Exception { |
| 137 | - checkNoUnfinishedContractChange(vo.getContractId()); | ||
| 138 | checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate()); | 134 | checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate()); |
| 139 | 135 | ||
| 140 | SpecLockDelayApplication data = new SpecLockDelayApplication(); | 136 | SpecLockDelayApplication data = new SpecLockDelayApplication(); |
| @@ -185,7 +181,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | @@ -185,7 +181,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | ||
| 185 | @Transactional(rollbackFor = Exception.class) | 181 | @Transactional(rollbackFor = Exception.class) |
| 186 | @Override | 182 | @Override |
| 187 | public void update(UpdateSpecLockDelayApplicationVo vo) throws Exception { | 183 | public void update(UpdateSpecLockDelayApplicationVo vo) throws Exception { |
| 188 | - checkNoUnfinishedContractChange(vo.getContractId()); | ||
| 189 | checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate()); | 184 | checkSpecLockDateLimit(vo.getApplicationCount(), vo.getContractId(), vo.getSpecLockDate()); |
| 190 | 185 | ||
| 191 | SpecLockDelayApplication data = getBaseMapper().selectById(vo.getId()); | 186 | SpecLockDelayApplication data = getBaseMapper().selectById(vo.getId()); |
| @@ -291,25 +286,6 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL | @@ -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 | public void sendDelaySpecLockMessage() { | 289 | public void sendDelaySpecLockMessage() { |
| 314 | log.info("开始执行延迟锁规消息发送任务"); | 290 | log.info("开始执行延迟锁规消息发送任务"); |
| 315 | 291 |
| @@ -56,17 +56,6 @@ | @@ -56,17 +56,6 @@ | ||
| 56 | WHERE cca.root_contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id) | 56 | WHERE cca.root_contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id) |
| 57 | AND cca.approval_status NOT IN ('PASS', 'CANCEL') | 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 | ORDER BY tb.create_time DESC | 59 | ORDER BY tb.create_time DESC |
| 71 | </select> | 60 | </select> |
| 72 | </mapper> | 61 | </mapper> |