| 
					
				 | 
			
			
				@@ -20,12 +20,8 @@ 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.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.gree.mall.manager.plus.service.AdminWebsitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.gree.mall.manager.plus.service.ContractTemplateFieldService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.gree.mall.manager.plus.service.ContractTemplateService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.gree.mall.manager.plus.service.ContractWebsitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.gree.mall.manager.plus.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,7 +31,10 @@ import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.function.Function; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -48,9 +47,10 @@ public class ContractTemplateLogic { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final ContractTemplateService contractTemplateService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final ContractWebsitService contractWebsitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final ContractTemplateFieldService contractTemplateFieldService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private final AdminWebsitService adminWebsitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private final OSSUtil ossUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final WebsitMapper websitMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private final WebsitContractSignRecordService websitContractSignRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private final WebsitContractSignItemService websitContractSignItemService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private final WebsitContractSignFieldService websitContractSignFieldService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<ContractTemplateVO> list(ZfireParamBean zfireParamBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         AdminUserCom adminUser = commonLogic.getAdminUser(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,6 +141,67 @@ public class ContractTemplateLogic { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             .setId(IdWorker.getIdStr())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 检查附件所属合同是否有签约记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (contractTemplate.getContractType().equals(ContractTypeEnum.FOLLOW.getKey()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                && StringUtils.isNotBlank(contractTemplate.getFollowContractTemplateId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            final List<WebsitContractSignItem> signItems = websitContractSignItemService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .eq(WebsitContractSignItem::getContractTemplateId, contractTemplate.getFollowContractTemplateId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .in(WebsitContractSignItem::getContractStatus, SignContractStatusEnum.WAIT_SIGN.getKey(), SignContractStatusEnum.OK.getKey()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .groupBy(WebsitContractSignItem::getWebsitContractSignRecordId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtil.isNotEmpty(signItems)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<WebsitContractSignItem> signItemList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<WebsitContractSignField> signFieldList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (WebsitContractSignItem signItem : signItems) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    WebsitContractSignItem contractSignItem = new WebsitContractSignItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    contractSignItem.setId(IdWorker.getIdStr()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setWebsitContractSignRecordId(signItem.getWebsitContractSignRecordId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setContractName(contractTemplate.getContractTemplateName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setContractTemplatePdf(contractTemplate.getContractTemplatePdf()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setContractType(contractTemplate.getContractType()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setContractStatus(SignContractStatusEnum.WAIT_SIGN.getKey()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setValidDate(contractTemplate.getValidDate()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setExpireDate(contractTemplate.getExpireDate()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setContractTemplateId(contractTemplate.getContractTemplateId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setFadadaTemplateId(contractTemplate.getFadadaTemplateId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setNeedCompanySign(contractTemplate.getNeedCompanySign()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setNeedManagerSign(contractTemplate.getNeedManagerSign()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setNeedPartyASign(contractTemplate.getNeedPartyASign()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setCaCustomerId(signItem.getCaCustomerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setCompanySignFiled(contractTemplate.getCompanySignFiled()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setManagerSignField(contractTemplate.getManagerSignField()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .setPartyASignFiled(contractTemplate.getPartyASignFiled()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    signItemList.add(contractSignItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 遍历网点合同签约明细找出填充字段配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (WebsitContractSignItem contractSignItem : signItemList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    final List<ContractTemplateField> templateFieldList = contractTemplateFieldService.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .eq(ContractTemplateField::getContractTemplateId, contractSignItem.getContractTemplateId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (ContractTemplateField templateField : templateFieldList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        WebsitContractSignField field = new WebsitContractSignField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        field.setWebsitContractSignRecordId(contractSignItem.getWebsitContractSignRecordId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .setWebsitContractSignItemId(contractSignItem.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .setFieldType(templateField.getFieldType()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .setFieldName(templateField.getFieldName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .setFieldValue(templateField.getFieldValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        signFieldList.add(field); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                websitContractSignItemService.saveBatch(signItemList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                websitContractSignFieldService.saveBatch(signFieldList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                websitContractSignRecordService.lambdaUpdate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .set(WebsitContractSignRecord::getStatus, SignContractStatusEnum.WAIT_SIGN.getKey()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .in(WebsitContractSignRecord::getId, signItems.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .map(WebsitContractSignItem::getWebsitContractSignRecordId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .collect(Collectors.toList())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional 
			 |