|
@@ -1,5 +1,6 @@
|
|
|
package com.gree.mall.manager.logic.contract;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
@@ -76,15 +77,19 @@ public class ContractTemplateLogic {
|
|
|
if (adminUser.getType().equals(2)) {
|
|
|
throw new RemoteServiceException("平台账号禁止操作");
|
|
|
}
|
|
|
+ contractTemplate.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(adminUser.getCompanyName());
|
|
|
+
|
|
|
this.validRequireParams(contractTemplate);
|
|
|
+ // 检查二级网点的主合同有没有
|
|
|
+ this.checkMainDate(contractTemplate);
|
|
|
+
|
|
|
String urlWw = ossUtil.getUrlWw(ossUtil.replaceLongKeyUrl(contractTemplate.getContractTemplatePdf()));
|
|
|
String templateId = IdWorker.getIdStr();
|
|
|
|
|
|
Auth4FDDUtil.uploadTemplate(templateId, null, urlWw);
|
|
|
|
|
|
- contractTemplate.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
- .setCompanyWechatName(adminUser.getCompanyName())
|
|
|
- .setFadadaTemplateId(templateId)
|
|
|
+ contractTemplate.setFadadaTemplateId(templateId)
|
|
|
.setContractTemplateName(contractTemplate.getContractTemplateName().trim())
|
|
|
.setStatus(StateEnum.ON.getKey())
|
|
|
.insert();
|
|
@@ -102,6 +107,7 @@ public class ContractTemplateLogic {
|
|
|
@Transactional
|
|
|
public void update(ContractTemplateBean contractTemplate) {
|
|
|
this.validRequireParams(contractTemplate);
|
|
|
+ this.checkMainDate(contractTemplate);
|
|
|
ContractTemplate byId = contractTemplateService.getById(contractTemplate.getContractTemplateId());
|
|
|
if (!byId.getContractTemplatePdf().equals(contractTemplate.getContractTemplatePdf())) {
|
|
|
String urlWw = ossUtil.getUrlWw(ossUtil.replaceLongKeyUrl(contractTemplate.getContractTemplatePdf()));
|
|
@@ -141,6 +147,19 @@ public class ContractTemplateLogic {
|
|
|
}
|
|
|
|
|
|
public void updateStatus(String contractTemplateId, StateEnum status) {
|
|
|
+ ContractTemplateBean bean = new ContractTemplateBean();
|
|
|
+ ContractTemplate template = contractTemplateService.lambdaQuery()
|
|
|
+ .eq(ContractTemplate::getContractTemplateId, contractTemplateId)
|
|
|
+ .one();
|
|
|
+ BeanUtils.copyProperties(template, bean);
|
|
|
+ final List<ContractWebsit> websitList = contractWebsitService.lambdaQuery()
|
|
|
+ .eq(ContractWebsit::getContractTemplateId, template.getContractTemplateId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ final List<ContractWebsitBean> websitBeanList = BeanUtil.copyToList(websitList, ContractWebsitBean.class);
|
|
|
+ bean.setItems(websitBeanList);
|
|
|
+
|
|
|
+ this.checkMainDate(bean);
|
|
|
ContractTemplate contractTemplate = new ContractTemplate();
|
|
|
contractTemplate.setStatus(status.getKey())
|
|
|
.setContractTemplateId(contractTemplateId)
|
|
@@ -168,6 +187,10 @@ public class ContractTemplateLogic {
|
|
|
&& Objects.isNull(contractTemplate.getExpireDate())) {
|
|
|
throw new RemoteServiceException("主合同类型失效日期不能为空");
|
|
|
}
|
|
|
+ if (ContractTypeEnum.MAIN.getKey().equals(contractTemplate.getContractType())
|
|
|
+ && contractTemplate.getValidDate().after(contractTemplate.getExpireDate())) {
|
|
|
+ throw new RemoteServiceException("生效日期不能大于失效日期");
|
|
|
+ }
|
|
|
if (StringUtils.isBlank(contractTemplate.getContractTemplateId())) {
|
|
|
Integer count = contractTemplateService.lambdaQuery()
|
|
|
.eq(ContractTemplate::getContractTemplateName, contractTemplate.getContractTemplateName().trim())
|
|
@@ -180,4 +203,29 @@ public class ContractTemplateLogic {
|
|
|
throw new RemoteServiceException("合同模板不能为空");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void checkMainDate(ContractTemplateBean contractTemplate) {
|
|
|
+ if (!contractTemplate.getContractType().equals(ContractTypeEnum.MAIN.getKey())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isEmpty(contractTemplate.getItems())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<String> ids = commonMapper.selectMainContractIdByValidDate(contractTemplate.getCompanyWechatId(), contractTemplate.getValidDate());
|
|
|
+ if (StringUtils.isNotBlank(contractTemplate.getContractTemplateId())
|
|
|
+ && CollectionUtil.isNotEmpty(ids)) {
|
|
|
+ ids.remove(contractTemplate.getContractTemplateId());
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isNotEmpty(ids)) {
|
|
|
+ for (ContractWebsitBean item : contractTemplate.getItems()) {
|
|
|
+ final Integer count = contractWebsitService.lambdaQuery()
|
|
|
+ .in(ContractWebsit::getContractTemplateId, ids)
|
|
|
+ .in(ContractWebsit::getSubWebsitId, item.getSubWebsitId())
|
|
|
+ .count();
|
|
|
+ if (count > 0) {
|
|
|
+ throw new RemoteServiceException(item.getSubWebsitId() + "的生效日期在" + String.join(",", ids) + "其他主合同的有效期内,请检查");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|