Commit d0bc8ee9538ab7e7eee194322977925ff57c6511

Authored by 张志伟
1 parent b91e5d54

:construction: 跟进池接口调整

doc/v1.0.1/升级事项 deleted
1 -1. 新增角色 :  
2 - 保有客分配 BYKFP 一个服务站一个  
3 -  
4 -2.资源路径  
5 - /app/leave2do/** 保有客分配  
6 \ No newline at end of file 0 \ No newline at end of file
doc/v1.0.1/升级事项.md 0 → 100644
  1 +##### 新增角色:
  2 +
  3 + |名称|角色码|备注|
  4 + | --|--|--|
  5 + |保有客分配 |BYKFP |一个服务站一个|
  6 +
  7 +
  8 +##### 资源路径:
  9 + ASCustomerDistribute 保有客分配 菜单
  10 + /app/leave2do/customer/** 保有客分配url
  11 + AsCrmOwnFollowUpPool 跟进池 菜单
  12 + /app/pool/follow/** 跟进池列表请求url
  13 +
  14 +##### 升级内容:
  15 +
  16 +1. 去掉战败池和成交池
  17 +2. 跟进池调整(菜单只能看自己的)
  18 +3. 事故车线索新增备案手机号
  19 +4. 新增离职分配功能(需等人事下个版本)
  20 +4. 跟进算法调整
  21 +5. 首保设置新增项目
  22 +7. 报表
  23 +8. 成交、战败 逻辑调整
fw-valhalla-common/src/main/java/cn/fw/valhalla/common/utils/DateUtil.java
@@ -7,6 +7,7 @@ import java.time.*; @@ -7,6 +7,7 @@ import java.time.*;
7 import java.time.temporal.TemporalAdjusters; 7 import java.time.temporal.TemporalAdjusters;
8 import java.util.Calendar; 8 import java.util.Calendar;
9 import java.util.Date; 9 import java.util.Date;
  10 +import java.util.Objects;
10 11
11 /** 12 /**
12 * 日期处理工具 13 * 日期处理工具
@@ -453,6 +454,74 @@ public final class DateUtil { @@ -453,6 +454,74 @@ public final class DateUtil {
453 return (int) result; 454 return (int) result;
454 } 455 }
455 456
  457 + /**
  458 + * 判断是否是凌晨
  459 + *
  460 + * @param date
  461 + * @return
  462 + */
  463 + public static boolean isBeforeDawn(Date date) {
  464 + if (Objects.isNull(date)) {
  465 + return false;
  466 + }
  467 + LocalDateTime dateTime = date2LocalDateTime(date);
  468 + SimpleDateFormat df = new SimpleDateFormat("HH");
  469 + String str = df.format(localDateTime2Date(dateTime));
  470 + int a = Integer.parseInt(str);
  471 + return a >= 0 && a <= 6;
  472 + }
  473 +
  474 + /**
  475 + * 判断是否是上午
  476 + *
  477 + * @param date
  478 + * @return
  479 + */
  480 + public static boolean isMorning(Date date) {
  481 + if (Objects.isNull(date)) {
  482 + return false;
  483 + }
  484 + LocalDateTime dateTime = date2LocalDateTime(date);
  485 + SimpleDateFormat df = new SimpleDateFormat("HH");
  486 + String str = df.format(localDateTime2Date(dateTime));
  487 + int a = Integer.parseInt(str);
  488 + return a > 6 && a <= 12;
  489 + }
  490 +
  491 + /**
  492 + * 判断是否是下午
  493 + *
  494 + * @param date
  495 + * @return
  496 + */
  497 + public static boolean isAfternoon(Date date) {
  498 + if (Objects.isNull(date)) {
  499 + return false;
  500 + }
  501 + LocalDateTime dateTime = date2LocalDateTime(date);
  502 + SimpleDateFormat df = new SimpleDateFormat("HH");
  503 + String str = df.format(localDateTime2Date(dateTime));
  504 + int a = Integer.parseInt(str);
  505 + return a > 12 && a <= 18;
  506 + }
  507 +
  508 + /**
  509 + * 判断是否是晚上
  510 + *
  511 + * @param date
  512 + * @return
  513 + */
  514 + public static boolean isEvening(Date date) {
  515 + if (Objects.isNull(date)) {
  516 + return false;
  517 + }
  518 + LocalDateTime dateTime = date2LocalDateTime(date);
  519 + SimpleDateFormat df = new SimpleDateFormat("HH");
  520 + String str = df.format(localDateTime2Date(dateTime));
  521 + int a = Integer.parseInt(str);
  522 + return a > 18 && a <= 23;
  523 + }
  524 +
456 public static void main(String[] args) throws ParseException { 525 public static void main(String[] args) throws ParseException {
457 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 526 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
458 Date date = format.parse("2020-09-19 09:45:30"); 527 Date date = format.parse("2020-09-19 09:45:30");
fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/app/CommonController.java
@@ -43,7 +43,7 @@ public class CommonController { @@ -43,7 +43,7 @@ public class CommonController {
43 43
44 @GetMapping("/staff/list") 44 @GetMapping("/staff/list")
45 public Message<List<PostUserVO>> list(@NotNull(message = "服务站ID不能为空") final Long shopId, 45 public Message<List<PostUserVO>> list(@NotNull(message = "服务站ID不能为空") final Long shopId,
46 - @NotNull(message = "跟进类型ID不能为空") final Integer type) { 46 + @NotNull(message = "跟进类型不能为空") final Integer type) {
47 final String msg = "查询跟进人员[app/common/staff/list]"; 47 final String msg = "查询跟进人员[app/common/staff/list]";
48 try { 48 try {
49 log.info("{}: param[shopId: {} type: {}]", msg, shopId, type); 49 log.info("{}: param[shopId: {} type: {}]", msg, shopId, type);
fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/strategy/AbstractFollowStrategy.java
@@ -12,7 +12,6 @@ import cn.fw.valhalla.domain.db.follow.FollowTask; @@ -12,7 +12,6 @@ import cn.fw.valhalla.domain.db.follow.FollowTask;
12 import cn.fw.valhalla.domain.dto.CustomerDetailDto; 12 import cn.fw.valhalla.domain.dto.CustomerDetailDto;
13 import cn.fw.valhalla.domain.dto.FollowAttachmentDTO; 13 import cn.fw.valhalla.domain.dto.FollowAttachmentDTO;
14 import cn.fw.valhalla.domain.enums.*; 14 import cn.fw.valhalla.domain.enums.*;
15 -import cn.fw.valhalla.domain.vo.follow.ACDetailVO;  
16 import cn.fw.valhalla.domain.vo.follow.FollowDetailVO; 15 import cn.fw.valhalla.domain.vo.follow.FollowDetailVO;
17 import cn.fw.valhalla.domain.vo.follow.FollowRecordVO; 16 import cn.fw.valhalla.domain.vo.follow.FollowRecordVO;
18 import cn.fw.valhalla.domain.vo.setting.SettingVO; 17 import cn.fw.valhalla.domain.vo.setting.SettingVO;
@@ -595,6 +594,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { @@ -595,6 +594,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy {
595 return null; 594 return null;
596 } 595 }
597 Integer value = vo.getDetailValue(); 596 Integer value = vo.getDetailValue();
  597 + SettingUnitEnum unit = Objects.requireNonNull(SettingUnitEnum.ofValue(vo.getUnit()));
598 if (value == null || value <= 0) { 598 if (value == null || value <= 0) {
599 log.info("关键设置数据异常,请检查数据 : settingType[{}] settingId[{}]", vo.getType(), vo.getId()); 599 log.info("关键设置数据异常,请检查数据 : settingType[{}] settingId[{}]", vo.getType(), vo.getId());
600 return null; 600 return null;
@@ -602,7 +602,12 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { @@ -602,7 +602,12 @@ public abstract class AbstractFollowStrategy implements FollowStrategy {
602 if (reverse) { 602 if (reverse) {
603 value = -1 * value; 603 value = -1 * value;
604 } 604 }
605 - return DateUtil.getExpired(origin, value, getCalendarType(Objects.requireNonNull(SettingUnitEnum.ofValue(vo.getUnit())))); 605 + Timestamp expired = DateUtil.getExpired(origin, value, getCalendarType(unit));
  606 + DateUtil.date2LocalDateTime(expired);
  607 + if (SettingUnitEnum.DAY.equals(unit) && !DateUtil.isBeforeDawn(expired)) {
  608 + expired = DateUtil.getExpired(DateUtil.startDate(expired), 1, Calendar.DATE);
  609 + }
  610 + return expired;
606 } 611 }
607 612
608 protected String getItemCode(FollowTypeEnum type) { 613 protected String getItemCode(FollowTypeEnum type) {