Просмотр исходного кода

客户模块修改

Signed-off-by: anderx <anderx@qq.com>
anderx лет назад: 5
Родитель
Сommit
e004dc9521

+ 6 - 0
src/main/java/com/goafanti/common/dao/UserMapper.java

@@ -268,6 +268,12 @@ public interface UserMapper {
 	void updateList(@Param("aid")String aid,@Param("level")Integer level, @Param("source")Integer source,
 			@Param("transferTime")Date transferTime,@Param("shareType")Integer shareType,@Param("list")List<String> list);
 
+	int checkUserMax(String aid);
+
+	int checkLock(@Param("uid")String uid);
+
+	void updateShareType(@Param("uid")String uid,@Param("aid")String aid);
+
 	
 	
 }

+ 21 - 9
src/main/java/com/goafanti/common/mapper/UserMapperExt.xml

@@ -333,6 +333,7 @@
 			dg2.name as city, 
 			dg3.name as area,
 			a.aid,
+			a.sign_bills signBills,
 			a.share_type as shareType,
 			a.information_maintainer as mid 		
 		from user a 
@@ -412,7 +413,7 @@
 	
 	<select id="selectPrivateOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
 	select a.id uid,a.aid,a.identify_name name,a.society_tag societyTag,a.`level`,b.name aName,dg1.name as province,dg2.name as city,
-	a.guidance, dg3.name as area,d.contacts,d.contact_mobile as contactMobile,
+	a.guidance, dg3.name as area,
 	date_format(um.last_sign_time,'%Y-%m-%d %H:%i:%S') lastSignTime,
 	date_format(a.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime, 
 	date_format(a.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
@@ -510,8 +511,6 @@
 			a.identify_name as name,
 			a.create_time as createTime,
 			a.transfer_time as transferTime,
-			b.contacts,
-			b.contact_mobile as contactMobile,
 			dg1.name as province,
 			dg2.name as city, 
 			dg3.name as area	
@@ -605,8 +604,6 @@
 			dg1.name as province,
 			dg2.name as city, 
 			dg3.name as area,
-			b.contacts,
-			b.contact_mobile as contactMobile,
 			c.name as industry,
 			d.name as adminName
 		from
@@ -1645,10 +1642,9 @@
     </select>
     
     <select id="selectSignedCustomerByName" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerSimpleBo">
-   	 	select b.id,b.identify_name as name from 
-			(select uid from user_lock_release  where type = 1 and status = 0 and aid = #{aid} group by uid) a
-		inner join user b on a.uid = b.id
-			where b.status != 1 and b.identify_name like concat('%',#{name},'%')
+   	 	select b.id,b.identify_name as name from user b  
+	where b.status != 1 and b.share_type =2 
+	and b.aid = #{aid}  and b.identify_name like concat('%',#{name},'%')
     </select>
     
     <update id="updateReleaseLock" parameterType="java.lang.String">
@@ -2057,4 +2053,20 @@ inner join(
 			 		desc
 			 </if>
 	</select>
+	
+	<select id="checkUserMax" parameterType="string" resultType="integer">
+		select count(*) from `user`
+		where aid= #{aid,jdbcType=VARCHAR}
+		and source in(1,2,3) and share_type=0
+	</select>
+	
+	<select id="checkLock" parameterType="string" resultType="integer">
+		select count(*) from `user`
+		where  id= #{uid,jdbcType=VARCHAR}
+		and share_type=2
+	</select>
+	<update id="updateShareType">
+	update user set share_type =2,aid = #{aid}
+	where id= #{uid}
+	</update>
 </mapper>

+ 14 - 5
src/main/java/com/goafanti/common/task/PatentTask.java

@@ -10,6 +10,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
+import javax.mail.SendFailedException;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -116,13 +117,22 @@ public class PatentTask {
 						ted.setTime(cst.getTime());
 						ted.add(Calendar.YEAR, y);
 						EmailBo emailBo = new EmailBo("专利提醒",p.getEmail().trim(), p.getApplicant(), "科德集团", a.getName(),p.getName(), p.getPatentNo(), money.toString(), DateFormatUtils.format(ted, "yyyy-MM-dd"));
-						SendEmailUtil.getInstance().patentSend(emailBo);
-						 p.setPatentAmount(money);
+						 n.setNoticeType(NoticeStatus.TASK_PATENT_REMIND.getCode());
+						 String title="专利提醒";
 						 p.setStatus(1);//提醒中
+						try {
+							SendEmailUtil.getInstance().patentSend(emailBo);
+						} catch (SendFailedException e) {
+							//如果邮件发送失败提醒
+							 n.setNoticeType(NoticeStatus.TASK_PATENT_ERROR.getCode());
+							 title="专利提醒失败!对方邮箱不存在或者拒收";
+							 p.setStatus(0);
+						}
+						 p.setPatentAmount(money);
 						 p.setYears(y);
 						 patentNewService.updatePatenNew(p);
 						 PatentNewLog pl=new PatentNewLog();
-						 String str=StrToString("专利提醒",p.getEmail().trim(), p.getApplicant(), a.getName(),p.getName(), p.getPatentNo(),
+						 String str=StrToString(title,p.getEmail().trim(), p.getApplicant(), a.getName(),p.getName(), p.getPatentNo(),
 								 money.toString(), DateFormatUtils.format(ted, "yyyy-MM-dd"));
 						 pl.setContent(str);
 						 pl.setCreateTime(new Date());
@@ -130,12 +140,11 @@ public class PatentTask {
 						 patentNewService.addPatenNewLog(pl);
 						 n.setAid(p.getAid());
 						 n.setContent(str);
-						 n.setNoticeType(NoticeStatus.TASK_PATENT_REMIND.getCode());
 						 nlist.add(n);
 					}
 					
+					 Thread.sleep(2000);
 				}
-			 Thread.sleep(2000);
 		}
 		if (!nlist.isEmpty()) {
 			List<Notice> newList=new  ArrayList<>();

+ 0 - 17
src/main/java/com/goafanti/common/task/ReleaseUserTask.java

@@ -101,19 +101,14 @@ public class ReleaseUserTask {
 		try {
 			List<User> userList = userServiceImpl.selectUserByRoleName("营销员","营销经理");
 			List<LockingReleaseBo> lockUserList = new ArrayList<LockingReleaseBo>();
-			List<LockingReleaseBo> lockBusinessList = new ArrayList<LockingReleaseBo>();
 			List<LockingReleaseBo> userTmpList = null;
-			List<LockingReleaseBo> businessTmpList = null;
 			if (userList!=null&&!userList.isEmpty()) {
 				for(User u : userList){
 					if(StringUtils.isNotBlank(u.getId())) {
 						userTmpList = customerServiceImpl.selectWaitReleaseCustomer(u.getId());
 							if(userTmpList!=null&&!userTmpList.isEmpty())lockUserList.addAll(userTmpList);
-							businessTmpList = customerServiceImpl.selectWaitReleaseBusiness(u.getId());
-							if(businessTmpList!=null&&!businessTmpList.isEmpty())lockBusinessList.addAll(businessTmpList);
 						}
 				}
-				
 			}
 		List<LockingReleaseBo> newList=new ArrayList<LockingReleaseBo>();
 			  if (lockUserList!=null&&lockUserList.size()>0) {
@@ -126,20 +121,8 @@ public class ReleaseUserTask {
 					  }  
 				  }
 			}
-			  if (lockBusinessList!=null&&lockBusinessList.size()>0) {
-				  for(int i=0;i<lockBusinessList.size();i++){
-					  newList.add(lockBusinessList.get(i));
-					  if(pointsDataLimit == newList.size()||i == lockBusinessList.size()-1){
-						  if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
-						  newList.clear();
-						  Thread.sleep(2000);
-					  }  
-				  }
-			}
 			List<LockingReleaseBo> lockList=customerServiceImpl.selectPendinglockUserList();
 			if (lockList.size()>0)customerServiceImpl.updateReleaseLock(releaseTime);
-		
-
 		} catch (Exception e) {
 			Notice n =new Notice(UUID.randomUUID().toString(),new Date(),0,"1",NoticeStatus.TASK_PATENT_ERROR.getCode(),"==============客户释放失败================");
 			 noticeMapper.insert(n);

+ 12 - 0
src/main/java/com/goafanti/customer/bo/CustomerListOut.java

@@ -57,6 +57,10 @@ public class CustomerListOut extends CustomerListIn{
 	 * 指导意见 0无 1有
 	 */
 	private Integer guidance;
+	/**
+	 * 签单 0否 1是
+	 */
+	private Integer signBills;
 	
 	public String getAuditOpinion() {
 		return auditOpinion;
@@ -217,6 +221,14 @@ public class CustomerListOut extends CustomerListIn{
 		this.guidance = guidance;
 	}
 
+	public Integer getSignBills() {
+		return signBills;
+	}
+
+	public void setSignBills(Integer signBills) {
+		this.signBills = signBills;
+	}
+
 	
 
 }

+ 12 - 0
src/main/java/com/goafanti/customer/controller/AdminCustomerApiController.java

@@ -246,6 +246,10 @@ public class AdminCustomerApiController extends BaseApiController{
 			res.getError().add(buildError("","客户名称、联系人、联系电话、社会性质、地址不能为空"));
 			return res;
 		}
+		if (customerService.checkMax(TokenManager.getAdminId())) {
+			res.getError().add(buildError("私有客户已达最大限制"));
+			return res;
+		}
 		//将新增客户的空格去除
 		customerService.addCustomer(name.replace(" ", ""), contacts, contactMobile,type,source,societyTag,province,city,area);
 		return res;
@@ -531,6 +535,10 @@ public class AdminCustomerApiController extends BaseApiController{
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, ""));
 			return res;
 		}
+		if (customerService.checkMax(TokenManager.getAdminId())) {
+			res.getError().add(buildError("私有客户已达最大限制"));
+			return res;
+		}
 		customerService.updateByOperatorType(uid, oldAid,AFTConstants.USER_RECEIVE);
 		return res;
 	}
@@ -765,6 +773,10 @@ public class AdminCustomerApiController extends BaseApiController{
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "客户编号或管理员编号"));
 			return res;
 		}
+		if (customerService.checkMax(aid)) {
+			res.getError().add(buildError("对方私有客户已达最大限制"));
+			return res;
+		}
 		customerService.updateByOperatorType(uid,oldAid,AFTConstants.USER_TRANSFER_TO_OTHER, aid);
 		return res;
 	}

+ 2 - 0
src/main/java/com/goafanti/customer/service/CustomerService.java

@@ -518,4 +518,6 @@ public interface CustomerService {
 	Pagination<FollowListBo> listFollowHistory(Integer pageNo, Integer pageSize,String uid,String businessGlossoryId,Integer type);
 	int pushGuidance(String uid);
 	
+	boolean checkMax(String aid);
+	
 }

+ 14 - 4
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -214,10 +214,6 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PUBLIC));
 		Map<String,Object> params = disposeParams(cli);
 		Pagination<CustomerListOut> p = (Pagination<CustomerListOut>) findPage("selectPublicOrganizationCustomerList","selectPublicOrganizationCustomerCount",params,pageNo,pageSize);
-		List<CustomerListOut> list=(List<CustomerListOut>) p.getList();
-		for (CustomerListOut out : list) {
-			out.setContactMobile("***");
-		}
 		return p;
 	}
 
@@ -1775,5 +1771,19 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return userFollowMapper.updateByPrimaryKeySelective(uf);
 	}
 
+	@Override
+	public boolean checkMax(String aid) {
+		int y =0;
+		int i=userMapper.checkUserMax(aid);
+		//营销员100 经理200 总监500
+		if (TokenManager.hasRole(AFTConstants.SALESMAN_DIRECTOR))y=500;
+		else if (TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER))y=200;
+		else if (TokenManager.hasRole(AFTConstants.SALESMAN))y=100;
+		if (i>=y) {
+			return true;
+		}
+		return false;
+	}
+
 
 }

+ 7 - 1
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -52,6 +52,7 @@ import com.goafanti.common.dao.TTaskMidMapper;
 import com.goafanti.common.dao.TaskHoursCountMapper;
 import com.goafanti.common.dao.TaskLogMapper;
 import com.goafanti.common.dao.TaskProgressMapper;
+import com.goafanti.common.dao.UserMapper;
 import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.enums.OrderLogProcess;
 import com.goafanti.common.error.BusinessException;
@@ -139,6 +140,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private NoticeMapper	noticeMapper;
 	@Autowired
 	private TTaskMidMapper	tTaskMidMapper;
+	@Autowired
+	private UserMapper	userMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
 	
@@ -147,7 +150,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	@Override
 	public int updateProjectDistribution(Integer taskId, String taskReceiverId,Integer specially,String remarks) {
 		TOrderTask t=tOrderTaskMapper.selectByPrimaryKey(taskId);
-		checkDeleteSign(t.getOrderNo());
+		TOrderNew tn=checkDeleteSign(t.getOrderNo());
 		t.setTaskStatus(TaskState.DISTRIBUTION.getCode());
 		t.setTaskAllocator(TokenManager.getAdminId());
 		t.setTaskReceiver(taskReceiverId);
@@ -176,6 +179,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		List<String> aids = new ArrayList<>();
 		aids.add(taskReceiverId);
 		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_TASK_TO.getCode(),t.getOrderNo(), TokenManager.getAdminId(),0);
+		if (userMapper.checkLock(tn.getBuyerId())<1) {
+			userMapper.updateShareType(tn.getBuyerId(),tn.getSalesmanId());
+		}
 		checkProjiectAllocation(t.getOrderNo());
 		return 1;
 	}