Browse Source

新增客户最后跟进列表新增筛选项

anderx 2 years ago
parent
commit
61719fb8bc

+ 26 - 6
src/main/java/com/goafanti/common/mapper/UserMapper.xml

@@ -1612,7 +1612,8 @@
 
   <select id="selectUserLastSignList" resultType="com.goafanti.customer.bo.OutUserLastSignBo">
     select a.share_type shareType ,a.nickname ,b.name ,c.contacts ,c.contact_mobile contactMobile,d.task_names taskNames ,
-    date_format(d.last_follow_time,'%Y-%m-%d %H:%i:%S')lastFollowTimeStr
+    date_format(d.last_follow_time,'%Y-%m-%d %H:%i:%S')lastFollowTimeStr,
+    date_format(a.transfer_time,'%Y-%m-%d %H:%i:%S') transferTimeStr
     from `user` a left join admin b on a.aid=b.id left join department dep on b.department_id =dep.id
     left join organization_identity c on a.id=c.uid left join user_mid d on a.id=d.uid
     where 1=1
@@ -1624,10 +1625,19 @@
       and dep.province in (11)
       and b.id in ('734092ad-6564-4021-b7ab-aab5af3a1537') is not true
     </if>
-    <if test="uid !=null">
-      and a.id =#{uid}
+    <if test="nickname !=null">
+      and a.nickname like concat('%',#{nickname},'%')
     </if>
-    order by last_follow_time desc
+    <if test="shareType != null">
+      and a.share_type= #{shareType}
+    </if>
+    <if  test="aid !=null">
+      and a.aid= #{aid}
+    </if>
+    <if test="lastTime !=null">
+      and d.last_follow_time &lt; #{lastTime}
+    </if>
+    order by d.last_follow_time desc
     <if test="page_sql !=null">
       ${page_sql}
     </if>
@@ -1635,6 +1645,7 @@
   <select id="selectUserLastSignCount" resultType="java.lang.Integer">
     select count(*)
     from `user` a left join admin b on a.aid=b.id left join department dep on b.department_id =dep.id
+    left join user_mid d on a.id=d.uid
     where 1=1
     and a.share_type in (0,2,3,4)
     <if test="purview==0">
@@ -1644,8 +1655,17 @@
       and dep.province in (11)
       and b.id in ('734092ad-6564-4021-b7ab-aab5af3a1537') is not true
     </if>
-    <if test="uid !=null">
-      and a.id =#{uid}
+    <if test="nickname !=null">
+      and a.nickname like concat('%',#{nickname},'%')
+    </if>
+    <if test="shareType != null">
+      and a.share_type= #{shareType}
+    </if>
+    <if  test="aid !=null">
+      and a.aid= #{aid}
+    </if>
+    <if test="lastTime !=null">
+      and d.last_follow_time &lt; #{lastTime}
     </if>
   </select>
 

+ 14 - 0
src/main/java/com/goafanti/common/utils/DateUtils.java

@@ -7,6 +7,7 @@ import java.util.Calendar;
 import java.util.Date;
 
 
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.error.BusinessException;
 import org.apache.commons.lang3.time.DateFormatUtils;
 
@@ -511,4 +512,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 			return null;
 		}
 	}
+
+	/**
+	 * 计算距离今天天数
+	 * @param dates
+	 * @return
+	 */
+	public static Integer sumDays(String dates) {
+		Date date = StringToDate(dates, AFTConstants.YYYYMMDDHHMMSS);
+		Date now=getEarlyToday();
+
+		int days=(int)(now.getTime()-date.getTime())/(1000*3600*24);
+		return days;
+	}
 }

+ 42 - 5
src/main/java/com/goafanti/customer/bo/InputSelectUserLastSignBo.java

@@ -1,16 +1,53 @@
 package com.goafanti.customer.bo;
 
+
 public class InputSelectUserLastSignBo {
-    private String uid;
+    private Integer shareType;
+    private String nickname;
+    private String aid;
+    private Integer daysType;
+    private String endTime;
     private Integer pageSize;
     private Integer pageNo;
 
-    public String getUid() {
-        return uid;
+    public Integer getShareType() {
+        return shareType;
+    }
+
+    public void setShareType(Integer shareType) {
+        this.shareType = shareType;
+    }
+
+    public String getNickname() {
+        return nickname;
+    }
+
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public Integer getDaysType() {
+        return daysType;
+    }
+
+    public void setDaysType(Integer daysType) {
+        this.daysType = daysType;
+    }
+
+    public String getEndTime() {
+        return endTime;
     }
 
-    public void setUid(String uid) {
-        this.uid = uid;
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
     }
 
     public Integer getPageSize() {

+ 20 - 0
src/main/java/com/goafanti/customer/bo/OutUserLastSignBo.java

@@ -18,6 +18,26 @@ public class OutUserLastSignBo {
 //    private String taskNames;
     @Excel(name = "最后跟进时间")
     private String lastFollowTimeStr;
+    private String transferTimeStr;
+
+    @Excel(name = "未跟进天数")
+    private Integer days;
+
+    public String getTransferTimeStr() {
+        return transferTimeStr;
+    }
+
+    public void setTransferTimeStr(String transferTimeStr) {
+        this.transferTimeStr = transferTimeStr;
+    }
+
+    public Integer getDays() {
+        return days;
+    }
+
+    public void setDays(Integer days) {
+        this.days = days;
+    }
 
     public Integer getShareType() {
         return shareType;

+ 42 - 18
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -3,15 +3,7 @@ package com.goafanti.customer.service.impl;
 import java.lang.reflect.InvocationTargetException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Resource;
 
@@ -2746,7 +2738,32 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	public Pagination<OutUserLastSignBo> selectUserLastSign(InputSelectUserLastSignBo in) {
 		Map<String, Object> param = addParam(in);
 
-		return (Pagination<OutUserLastSignBo>) findPage("selectUserLastSignList","selectUserLastSignCount",param,in.getPageNo(),in.getPageSize());
+		Pagination<OutUserLastSignBo> p=(Pagination<OutUserLastSignBo>) findPage("selectUserLastSignList","selectUserLastSignCount",param,in.getPageNo(),in.getPageSize());
+		pushDays(p);
+		return p;
+	}
+	@Override
+	public Result selectUserLastSignExport(InputSelectUserLastSignBo in) {
+		Map<String, Object> param = addParam(in);
+		List<OutUserLastSignBo> list = (List<OutUserLastSignBo>) findList("selectUserLastSignList", param, 1, 99999);
+		pushDays(list);
+		NewExcelUtil<OutUserLastSignBo> excelUtil=new NewExcelUtil<>(OutUserLastSignBo.class);
+		return excelUtil.exportExcel(list,"用户最后跟进表");
+	}
+
+	private void pushDays(Pagination<OutUserLastSignBo> p) {
+		List<OutUserLastSignBo> list = (List<OutUserLastSignBo>) p.getList();
+		pushDays(list);
+	}
+
+	private void pushDays(List<OutUserLastSignBo> list) {
+		for (OutUserLastSignBo bo : list) {
+			String dates=null;
+			if (bo.getLastFollowTimeStr()!=null)dates=bo.getLastFollowTimeStr();
+			else dates=bo.getTransferTimeStr();
+			Integer days=DateUtils.sumDays(dates);
+			bo.setDays(days);
+		}
 	}
 
 	private Map<String, Object> addParam(InputSelectUserLastSignBo in) {
@@ -2762,15 +2779,22 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			throw new BusinessException("权限异常");
 		}
 		param.put("purview",purview);
-		if(in.getUid()!=null)param.put("uid",in.getUid());
+		if(in.getNickname()!=null)param.put("nickname",in.getNickname());
+		if(in.getAid()!=null)param.put("aid",in.getAid());
+		if(in.getShareType()!=null)param.put("shareType",in.getShareType());
+		if (in.getDaysType()!=null){
+			Calendar cal=Calendar.getInstance();
+			cal=DateUtils.setMidnight(cal);
+			if (in.getDaysType()==0)cal.add(Calendar.DATE,-29);
+			else if (in.getDaysType()==1)cal.add(Calendar.DATE,-59);
+			else if (in.getDaysType()==2)cal.add(Calendar.DATE,-89);
+			else if (in.getDaysType()==3)cal.add(Calendar.DATE,-179);
+			else if (in.getDaysType()==4)cal.add(Calendar.DATE,-364);
+			else if (in.getDaysType()==5)cal.add(Calendar.DATE,-729);
+			param.put("lastTime",DateUtils.formatDate(cal.getTime(),AFTConstants.YYYYMMDDHHMMSS));
+		}
 		return param;
 	}
 
-	@Override
-	public Result selectUserLastSignExport(InputSelectUserLastSignBo in) {
-		Map<String, Object> param = addParam(in);
-		List<OutUserLastSignBo> list = (List<OutUserLastSignBo>) findList("selectUserLastSignList", param, 1, 99999);
-		NewExcelUtil<OutUserLastSignBo> excelUtil=new NewExcelUtil<>(OutUserLastSignBo.class);
-		return excelUtil.exportExcel(list,"用户最后跟进表");
-	}
+
 }