|
@@ -1,6 +1,8 @@
|
|
|
package com.gree.mall.manager.logic.contract;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
import com.gree.mall.manager.bean.contract.ContractTemplateBean;
|
|
@@ -8,12 +10,17 @@ import com.gree.mall.manager.bean.contract.ContractTemplateVO;
|
|
|
import com.gree.mall.manager.bean.contract.ContractWebsitBean;
|
|
|
import com.gree.mall.manager.commonmapper.CommonMapper;
|
|
|
import com.gree.mall.manager.enums.ContractTypeEnum;
|
|
|
+import com.gree.mall.manager.enums.material.StateEnum;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
import com.gree.mall.manager.plus.entity.ContractTemplate;
|
|
|
+import com.gree.mall.manager.plus.entity.ContractTemplateBak;
|
|
|
+import com.gree.mall.manager.plus.entity.ContractWebsit;
|
|
|
import com.gree.mall.manager.plus.service.AdminWebsitService;
|
|
|
import com.gree.mall.manager.plus.service.ContractTemplateService;
|
|
|
import com.gree.mall.manager.plus.service.ContractWebsitService;
|
|
|
+import com.gree.mall.manager.utils.fadada.Auth4FDDUtil;
|
|
|
+import com.gree.mall.manager.utils.oss.OSSUtil;
|
|
|
import com.gree.mall.manager.zfire.bean.ZfireParamBean;
|
|
|
import com.gree.mall.manager.zfire.util.FieldUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -24,6 +31,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -34,6 +43,7 @@ public class ContractTemplateLogic {
|
|
|
private final ContractTemplateService contractTemplateService;
|
|
|
private final ContractWebsitService contractWebsitService;
|
|
|
private final AdminWebsitService adminWebsitService;
|
|
|
+ private final OSSUtil ossUtil;
|
|
|
|
|
|
public IPage<ContractTemplateVO> list(ZfireParamBean zfireParamBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
@@ -62,9 +72,80 @@ public class ContractTemplateLogic {
|
|
|
|
|
|
@Transactional
|
|
|
public void add(ContractTemplateBean contractTemplate) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ if (adminUser.getType().equals(2)) {
|
|
|
+ throw new RemoteServiceException("平台账号禁止操作");
|
|
|
+ }
|
|
|
this.validRequireParams(contractTemplate);
|
|
|
+ String urlWw = ossUtil.getUrlWw(contractTemplate.getContractTemplatePdf());
|
|
|
+ String templateId = IdWorker.getIdStr();
|
|
|
+
|
|
|
+ Auth4FDDUtil.uploadTemplate(templateId, null, urlWw);
|
|
|
+
|
|
|
+ contractTemplate.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(adminUser.getCompanyName())
|
|
|
+ .setFadadaTemplateId(templateId)
|
|
|
+ .setContractTemplateName(contractTemplate.getContractTemplateName().trim())
|
|
|
+ .insert();
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(contractTemplate.getItems())) {
|
|
|
+ contractWebsitService.saveBatch(contractTemplate.getItems().stream()
|
|
|
+ .peek(v -> v.setContractTemplateId(contractTemplate.getContractTemplateId())
|
|
|
+ .setCompanyWechatId(contractTemplate.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(contractTemplate.getCompanyWechatName())
|
|
|
+ .setId(IdWorker.getIdStr()))
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void update(ContractTemplateBean contractTemplate) {
|
|
|
+ this.validRequireParams(contractTemplate);
|
|
|
+ ContractTemplate byId = contractTemplateService.getById(contractTemplate.getContractTemplateId());
|
|
|
+ if (!byId.getContractTemplatePdf().equals(contractTemplate.getContractTemplatePdf())) {
|
|
|
+ String urlWw = ossUtil.getUrlWw(contractTemplate.getContractTemplatePdf());
|
|
|
+ String templateId = IdWorker.getIdStr();
|
|
|
+ Auth4FDDUtil.uploadTemplate(templateId, null, urlWw);
|
|
|
+ byId.setFadadaTemplateId(templateId);
|
|
|
+ }
|
|
|
+
|
|
|
+ byId.setContractTemplateName(contractTemplate.getContractTemplateName().trim())
|
|
|
+ .setValidDate(contractTemplate.getValidDate())
|
|
|
+ .setExpireDate(contractTemplate.getExpireDate())
|
|
|
+ .setContractTemplatePdf(contractTemplate.getContractTemplatePdf())
|
|
|
+ .setFollowContractTemplateId(contractTemplate.getFollowContractTemplateId())
|
|
|
+ .updateById();
|
|
|
+
|
|
|
+ contractWebsitService.lambdaUpdate()
|
|
|
+ .eq(ContractWebsit::getContractTemplateId, contractTemplate.getContractTemplateId())
|
|
|
+ .remove();
|
|
|
+ if (CollectionUtil.isNotEmpty(contractTemplate.getItems())) {
|
|
|
+ contractWebsitService.saveBatch(contractTemplate.getItems().stream()
|
|
|
+ .peek(v -> v.setContractTemplateId(byId.getContractTemplateId())
|
|
|
+ .setCompanyWechatId(byId.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(byId.getCompanyWechatName())
|
|
|
+ .setId(IdWorker.getIdStr()))
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void delete(String contractTemplateId) {
|
|
|
+ ContractTemplate template = contractTemplateService.lambdaQuery()
|
|
|
+ .eq(ContractTemplate::getContractTemplateId, contractTemplateId)
|
|
|
+ .one();
|
|
|
+ ContractTemplateBak contractTemplateBak = new ContractTemplateBak();
|
|
|
+ BeanUtils.copyProperties(template, contractTemplateBak);
|
|
|
+ template.deleteById();
|
|
|
+ contractTemplateBak.insert();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void updateStatus(String contractTemplateId, StateEnum status) {
|
|
|
+ ContractTemplate contractTemplate = new ContractTemplate();
|
|
|
+ contractTemplate.setStatus(status.getKey())
|
|
|
+ .setContractTemplateId(contractTemplateId)
|
|
|
+ .updateById();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void validRequireParams(ContractTemplateBean contractTemplate) {
|
|
|
if (StringUtils.isBlank(contractTemplate.getContractTemplateName())) {
|
|
|
throw new RemoteServiceException("合同名称不能为空");
|
|
@@ -75,14 +156,26 @@ public class ContractTemplateLogic {
|
|
|
if (contractTemplate.getContractType().equals(ContractTypeEnum.FOLLOW.getKey())) {
|
|
|
contractTemplate.setFollowContractTemplateId("");
|
|
|
}
|
|
|
- if (contractTemplate.getContractType().equals(ContractTypeEnum.MAIN.getKey())) {
|
|
|
-
|
|
|
+ if (StringUtils.isBlank(contractTemplate.getContractTemplateId())
|
|
|
+ && ContractTypeEnum.MAIN.getKey().equals(contractTemplate.getContractType())
|
|
|
+ && Objects.isNull(contractTemplate.getValidDate())) {
|
|
|
+ throw new RemoteServiceException("主合同类型生效日期不能为空");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(contractTemplate.getContractTemplateId())
|
|
|
+ && ContractTypeEnum.MAIN.getKey().equals(contractTemplate.getContractType())
|
|
|
+ && Objects.isNull(contractTemplate.getExpireDate())) {
|
|
|
+ throw new RemoteServiceException("主合同类型失效日期不能为空");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(contractTemplate.getContractTemplateId())) {
|
|
|
+ Integer count = contractTemplateService.lambdaQuery()
|
|
|
+ .eq(ContractTemplate::getContractTemplateName, contractTemplate.getContractTemplateName().trim())
|
|
|
+ .count();
|
|
|
+ if (count > 0) {
|
|
|
+ throw new RemoteServiceException("合同名称已存在,不能重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(contractTemplate.getContractTemplatePdf())) {
|
|
|
+ throw new RemoteServiceException("合同模板不能为空");
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- public void update(ContractTemplateBean contractTemplate) {
|
|
|
- }
|
|
|
-
|
|
|
- public void delete(String contractTemplateId) {
|
|
|
}
|
|
|
}
|