| 
					
				 | 
			
			
				@@ -1,8 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.fs.qw.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.hutool.core.lang.Pair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.util.ObjectUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -11,16 +8,19 @@ import com.fs.company.cache.ICompanyCacheService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.company.cache.ICompanyUserCacheService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.company.domain.Company; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.company.domain.CompanyUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.company.dto.UserProjectDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.qw.domain.CustomerTransferApproval; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.qw.mapper.CustomerTransferApprovalMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.qw.service.ICustomerTransferApprovalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.qw.vo.TransferCustomDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.store.domain.FsUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.store.domain.FsUserCompanyUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.store.dto.FsUserTransferParamDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.store.service.IFsUserCompanyUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.store.service.IFsUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.store.service.cache.IFsUserCacheService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.hc.openapi.tool.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.apache.http.util.Asserts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.hc.core5.util.Asserts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.aop.framework.AopContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.context.annotation.EnableAspectJAutoProxy; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,6 +28,11 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Propagation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 客户转移审批Service业务层处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,6 +57,8 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private IFsUserService fsUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsUserCompanyUserService userCompanyUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询客户转移审批 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -107,7 +114,7 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(StringUtils.isBlank(item.getTransferBefore()) && StringUtils.isNotBlank(item.getCustomerIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> customerIds = JSON.parseArray(item.getCustomerIds(), Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<UserProjectDTO> customerIds = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<TransferCustomDTO> customerList = getCustomerList(customerIds, item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setCustomerList(customerList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -134,27 +141,28 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private List<TransferCustomDTO> getCustomerList(List<Long> customerIds, CustomerTransferApproval item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<TransferCustomDTO> getCustomerList(List<UserProjectDTO> customerIds, CustomerTransferApproval item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TransferCustomDTO> customerList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (Long customerId : customerIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (UserProjectDTO customerId : customerIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            FsUser fsUser = fsUserCacheService.selectFsUserById(customerId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            FsUser fsUser = fsUserCacheService.selectFsUserById(customerId.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(ObjectUtils.isNotNull(fsUser)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String companyUserName = "无"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(ObjectUtils.isNotNull(fsUser.getCompanyUserId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(fsUser.getCompanyUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    companyUserName = String.format("%s_%d", companyUser.getUserName(), companyUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                FsUserCompanyUser userCompanyUser = userCompanyUserService.selectByUserIdAndProjectId(customerId.getUserId(), customerId.getProjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(Objects.nonNull(userCompanyUser)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(userCompanyUser.getCompanyUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String companyUserName = String.format("%s_%d", companyUser.getUserName(), companyUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customerList.add(TransferCustomDTO.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .userName(String.format("%s_%d", fsUser.getNickname(), fsUser.getUserId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .userId(fsUser.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .beforeCompanyUserName(companyUserName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .beforeCompanyUserId(fsUser.getCompanyUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .afterCompanyUserName(item.getTargetUserName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .afterCompanyUserId(item.getTargetUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .build()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    customerList.add(TransferCustomDTO.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .userName(String.format("%s_%d", fsUser.getNickname(), fsUser.getUserId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .userId(fsUser.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .projectId(customerId.getProjectId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .beforeCompanyUserName(companyUserName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .beforeCompanyUserId(companyUser.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .afterCompanyUserName(item.getTargetUserName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .afterCompanyUserId(item.getTargetUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .build()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return customerList; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -239,7 +247,7 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         item.setProcessedAt(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        审批状态: 0=待审批, 1=审批通过, 2=审批驳回, 3=已撤销 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 如果审批通过 进行转移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> customerIds1 = JSON.parseArray(item.getCustomerIds(), Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<UserProjectDTO> customerIds1 = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TransferCustomDTO> customerList = getCustomerList(customerIds1, item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         item.setTransferBefore(JSON.toJSONString(customerList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -249,11 +257,14 @@ public class CustomerTransferApprovalServiceImpl implements ICustomerTransferApp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             transferParam.setTargetCompanyUserId(item.getTargetUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Asserts.check(StringUtils.isNotBlank(item.getCustomerIds()),"转移客户不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> customerIds = JSON.parseArray(item.getCustomerIds(), Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<UserProjectDTO> customerIds = JSON.parseArray(item.getCustomerIds(), UserProjectDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             transferParam.setUserIds(customerIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             transferParam.setSourceCompanyUserId(item.getOriginalUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fsUserService.transfer(transferParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (UserProjectDTO customerId : customerIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CompanyUser companyUser = companyUserCacheService.selectCompanyUserById(item.getTargetUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userCompanyUserService.changeRelationship(customerId.getUserId(), customerId.getProjectId(), companyUser.getCompanyId(), companyUser.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return customerTransferApprovalMapper.updateCustomerTransferApproval(item); 
			 |