|
@@ -10,15 +10,15 @@ import com.gree.mall.manager.bean.contract.ContractTemplateBean;
|
|
|
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.commonmapper.WebsitMapper;
|
|
|
import com.gree.mall.manager.enums.ContractTypeEnum;
|
|
|
+import com.gree.mall.manager.enums.base.BaseEnum;
|
|
|
import com.gree.mall.manager.enums.contract.FieldTypeEnum;
|
|
|
+import com.gree.mall.manager.enums.contract.SignContractStatusEnum;
|
|
|
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.ContractTemplateField;
|
|
|
-import com.gree.mall.manager.plus.entity.ContractWebsit;
|
|
|
+import com.gree.mall.manager.plus.entity.*;
|
|
|
import com.gree.mall.manager.plus.service.AdminWebsitService;
|
|
|
import com.gree.mall.manager.plus.service.ContractTemplateFieldService;
|
|
|
import com.gree.mall.manager.plus.service.ContractTemplateService;
|
|
@@ -34,9 +34,8 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
@@ -50,6 +49,7 @@ public class ContractTemplateLogic {
|
|
|
private final ContractTemplateFieldService contractTemplateFieldService;
|
|
|
private final AdminWebsitService adminWebsitService;
|
|
|
private final OSSUtil ossUtil;
|
|
|
+ private final WebsitMapper websitMapper;
|
|
|
|
|
|
public IPage<ContractTemplateVO> list(ZfireParamBean zfireParamBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
@@ -66,6 +66,26 @@ public class ContractTemplateLogic {
|
|
|
List<ContractWebsitBean> websitBeanList = commonMapper.contractWebsitList(contractTemplateId);
|
|
|
bean.setItems(websitBeanList);
|
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(bean.getItems()) && template.getContractType().equals(ContractTypeEnum.MAIN.getKey())) {
|
|
|
+ final List<String> subWebsitIds = bean.getItems().stream().map(ContractWebsitBean::getSubWebsitId).collect(Collectors.toList());
|
|
|
+ List<WebsitContractSignRecord> recordList = websitMapper.querySignStatus(contractTemplateId, subWebsitIds);
|
|
|
+ // 签约记录为空new空list
|
|
|
+ if (CollectionUtil.isEmpty(recordList)) {
|
|
|
+ recordList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ final Map<String, WebsitContractSignRecord> recordMap = recordList.stream().collect(Collectors.toMap(WebsitContractSignRecord::getWebsitId, Function.identity()));
|
|
|
+ for (ContractWebsitBean item : bean.getItems()) {
|
|
|
+ if (!recordMap.containsKey(item.getSubWebsitId())) {
|
|
|
+ item.setSignStatus(SignContractStatusEnum.WAIT_SIGN.getRemark());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ final WebsitContractSignRecord record = recordMap.get(item.getSubWebsitId());
|
|
|
+
|
|
|
+ String status = BaseEnum.keyToValueOpt(SignContractStatusEnum.class, record.getStatus()).orElse(SignContractStatusEnum.WAIT_SIGN.getRemark());
|
|
|
+ item.setSignStatus(status);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
final List<ContractTemplateField> fields = contractTemplateFieldService.lambdaQuery()
|
|
|
.eq(ContractTemplateField::getContractTemplateId, contractTemplateId)
|
|
|
.list();
|
|
@@ -151,7 +171,8 @@ public class ContractTemplateLogic {
|
|
|
contractWebsitService.lambdaUpdate()
|
|
|
.eq(ContractWebsit::getContractTemplateId, contractTemplate.getContractTemplateId())
|
|
|
.remove();
|
|
|
- if (CollectionUtil.isNotEmpty(contractTemplate.getItems())) {
|
|
|
+ if (contractTemplate.getContractType().equals(ContractTypeEnum.MAIN.getKey())
|
|
|
+ && CollectionUtil.isNotEmpty(contractTemplate.getItems())) {
|
|
|
contractWebsitService.saveBatch(contractTemplate.getItems().stream()
|
|
|
.peek(v -> v.setContractTemplateId(byId.getContractTemplateId())
|
|
|
.setCompanyWechatId(byId.getCompanyWechatId())
|