From b9f3d3d8c6f236a2351969c360e640497d6c9d56 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 22 Oct 2020 13:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B6=85=E6=9C=9F=E6=BB=9E?= =?UTF-8?q?=E7=95=99=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/CostDayFormDTO.java | 34 +++++++ .../epmet/dto/result/CostDayResultDTO.java | 31 ++++++ .../EpmetCommonServiceOpenFeignClient.java | 22 +++++ ...tCommonServiceOpenFeignClientFallback.java | 28 ++++++ .../epmet/controller/WorkDayController.java | 30 ++++++ .../com/epmet/service/WorkDayService.java | 20 ++++ .../service/impl/WorkDayServiceImpl.java | 98 +++++++++++++++++++ .../epmet/dto/result/StaffUnHandledDTO.java | 37 +++++++ .../epmet/constant/ParameterKeyConstant.java | 30 ++++++ .../dao/CustomerProjectParameterDao.java | 13 +++ .../java/com/epmet/dao/ProjectStaffDao.java | 10 ++ .../CustomerProjectParameterService.java | 9 ++ .../com/epmet/service/ProjectService.java | 9 ++ .../epmet/service/ProjectStaffService.java | 10 ++ .../CustomerProjectParameterServiceImpl.java | 13 +++ .../service/impl/ProjectServiceImpl.java | 67 +++++++++++++ .../service/impl/ProjectStaffServiceImpl.java | 14 +++ .../mapper/CustomerProjectParameterDao.xml | 9 ++ .../main/resources/mapper/ProjectStaffDao.xml | 43 ++++++++ 19 files changed, 527 insertions(+) create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CostDayFormDTO.java create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CostDayResultDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/StaffUnHandledDTO.java diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CostDayFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CostDayFormDTO.java new file mode 100644 index 0000000000..5c1c27395a --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CostDayFormDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/21 17:34 + */ +@Data +public class CostDayFormDTO implements Serializable { + private static final long serialVersionUID = -1002961480112906533L; + /** + * 项目ID + */ + private String id; + + /** + * 工作人员ID + */ + private String staffId; + + /** + * 起始日期 + */ + private String startDate; + + /** + * 终止日期 + */ + private String endDate; +} diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CostDayResultDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CostDayResultDTO.java new file mode 100644 index 0000000000..27074d8c8f --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CostDayResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/21 17:53 + */ +@Data +public class CostDayResultDTO implements Serializable { + private static final long serialVersionUID = -1575208332115510050L; + /** + * 项目ID + */ + private String id; + + /** + * 工作人员ID + */ + private String staffId; + + /** + * 已滞留工作日 + */ + private Integer detentionDays; + + +} diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java index 7ed9ff3f18..7b718fb2e3 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java @@ -2,8 +2,10 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CostDayFormDTO; import com.epmet.dto.form.ExternalAppAuthFormDTO; import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.CostDayResultDTO; import com.epmet.dto.result.ExternalAppAuthResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.feign.fallback.EpmetCommonServiceOpenFeignClientFallback; @@ -53,4 +55,24 @@ public interface EpmetCommonServiceOpenFeignClient { */ @PostMapping("/commonservice/externalapp/get-secret") Result getSecret(@RequestBody String appId); + + /** + * 工作日计算 + * @author zhaoqifeng + * @date 2020/10/22 9:25 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("commonservice/workday/workdays") + Result> costWorkDays(@RequestBody List formDTO); + + /** + * 日历天计算 + * @author zhaoqifeng + * @date 2020/10/22 9:25 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("commonservice/workday/calendardays") + Result> costCalendarDays(@RequestBody List formDTO); } diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java index 4640f13b45..8fb21a626d 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java @@ -3,8 +3,10 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CostDayFormDTO; import com.epmet.dto.form.ExternalAppAuthFormDTO; import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.CostDayResultDTO; import com.epmet.dto.result.ExternalAppAuthResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -39,4 +41,30 @@ public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonSer public Result getSecret(String appId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "getSecret", appId); } + + /** + * 工作日计算 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhaoqifeng + * @date 2020/10/22 9:25 + */ + @Override + public Result> costWorkDays(List formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "costWorkDays", formDTO); + } + + /** + * 日历天计算 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhaoqifeng + * @date 2020/10/22 9:25 + */ + @Override + public Result> costCalendarDays(List formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "costCalendarDays", formDTO); + } } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java index 0d975a0c31..06c41ca828 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java @@ -1,7 +1,9 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CostDayFormDTO; import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.CostDayResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.service.WorkDayService; import org.springframework.beans.factory.annotation.Autowired; @@ -36,5 +38,33 @@ public class WorkDayController { List list = workDayService.detentionDays(formDTO); return new Result>().ok(list); } + + + /** + * 工作日计算 + * @author zhaoqifeng + * @date 2020/10/22 9:23 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("workdays") + public Result> costWorkDays(@RequestBody List formDTO) { + List list = workDayService.costWorkDays(formDTO); + return new Result>().ok(list); + } + + /** + * 日历天计算 + * @author zhaoqifeng + * @date 2020/10/22 9:23 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("calendardays") + public Result> costCalendarDays(@RequestBody List formDTO) { + List list = workDayService.costCalendarDays(formDTO); + return new Result>().ok(list); + } + } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java index 7433b154c1..8dfdb24c4f 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java @@ -1,6 +1,8 @@ package com.epmet.service; +import com.epmet.dto.form.CostDayFormDTO; import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.CostDayResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import java.util.List; @@ -13,4 +15,22 @@ import java.util.Set; */ public interface WorkDayService { List detentionDays(List formDTO); + + /** + * 工作日计算 + * @author zhaoqifeng + * @date 2020/10/21 17:56 + * @param formDTO + * @return java.util.List + */ + List costWorkDays(List formDTO); + + /** + * 日历日计算 + * @author zhaoqifeng + * @date 2020/10/21 17:56 + * @param formDTO + * @return java.util.List + */ + List costCalendarDays(List formDTO); } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java index 25ede12e88..8a15b3b0f3 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java @@ -2,7 +2,9 @@ package com.epmet.service.impl; import com.epmet.commons.tools.exception.RenException; import com.epmet.dao.CalenderDao; +import com.epmet.dto.form.CostDayFormDTO; import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.CostDayResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.entity.CalenderEntity; import com.epmet.service.WorkDayService; @@ -44,6 +46,54 @@ public class WorkDayServiceImpl implements WorkDayService { return list; } + /** + * 工作日计算 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/10/21 17:56 + */ + @Override + public List costWorkDays(List formDTO) { + List list = new ArrayList<>(); + if (formDTO.isEmpty()) { + throw new RenException("起始时间、终止时间不能为空"); + } + for (CostDayFormDTO form : formDTO) { + CostDayResultDTO result = new CostDayResultDTO(); + result.setId(form.getId()); + result.setStaffId(form.getStaffId()); + result.setDetentionDays(this.getWorkDays(form.getStartDate(), form.getEndDate())); + list.add(result); + } + return list; + } + + /** + * 日历日计算 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/10/21 17:56 + */ + @Override + public List costCalendarDays(List formDTO) { + List list = new ArrayList<>(); + if (formDTO.isEmpty()) { + throw new RenException("起始时间、终止时间不能为空"); + } + for (CostDayFormDTO form : formDTO) { + CostDayResultDTO result = new CostDayResultDTO(); + result.setId(form.getId()); + result.setStaffId(form.getStaffId()); + result.setDetentionDays(this.getCalendarDays(form.getStartDate(), form.getEndDate())); + list.add(result); + } + return list; + } + //公式: 当前日期 - 被吹日期 - 期间的节假日 private String caculateDetentionDays(String startDateStr, String endDateStr) { if (startDateStr.equals(endDateStr)) { @@ -78,5 +128,53 @@ public class WorkDayServiceImpl implements WorkDayService { } + private Integer getWorkDays(String startDateStr, String endDateStr) { + if (startDateStr.equals(endDateStr)) { + logger.info(String.format("%s-%s起止时间一致,返回<1,",startDateStr,endDateStr)); + return 0; + } + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + try { + Date startDate = simpleDateFormat.parse(startDateStr); + Date endDate = simpleDateFormat.parse(endDateStr); + long day = (endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000); + logger.info(String.format("当前日期[%s]-被吹日期[%s]=%s", endDateStr, startDateStr, day)); + List list = calenderDao.selectByStartAndEnd(startDateStr, endDateStr); + + long totalHoliday = 0; + for (CalenderEntity calenderEntity : list) { + if (!"1".equals(calenderEntity.getType())) { + totalHoliday += 1; + } + } + logger.info(String.format("期间的节假日[%s-%s]=%s", endDateStr, startDateStr, totalHoliday)); + long detentionDay = day - totalHoliday; + logger.info(String.format("当前日期[%s]-被吹日期[%s]-期间的节假日[%s]=%s", endDateStr, startDateStr, totalHoliday, detentionDay)); + return (int)detentionDay; + } catch (Exception e) { + e.printStackTrace(); + } + return -1; + } + + + private Integer getCalendarDays(String startDateStr, String endDateStr) { + if (startDateStr.equals(endDateStr)) { + logger.info(String.format("%s-%s起止时间一致,返回<1,",startDateStr,endDateStr)); + return 0; + } + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + try { + Date startDate = simpleDateFormat.parse(startDateStr); + Date endDate = simpleDateFormat.parse(endDateStr); + long day = (endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000); + return (int)day; + } catch (Exception e) { + e.printStackTrace(); + } + return -1; + } + + } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/StaffUnHandledDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/StaffUnHandledDTO.java new file mode 100644 index 0000000000..1a2c4e0971 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/StaffUnHandledDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/21 16:48 + */ +@Data +public class StaffUnHandledDTO implements Serializable { + private static final long serialVersionUID = 5257146338113364709L; + /** + * 项目ID + */ + private String id; + /** + * 项目标题 + */ + private String title; + /** + * 工作人员ID + */ + private String staffId; + /** + * 吹哨时间 + */ + private Date createdTime; + /** + * 响应处理时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java index 502b895544..2d5ae69fbb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java @@ -11,4 +11,34 @@ public interface ParameterKeyConstant { * 可滞留天数 */ String DETENTION_DAYS = "detention_days"; + + /** + * 计算方式 + */ + String CALCULATION = "calculation"; + + /** + * 计算方式-工作日 + */ + String WORK = "work"; + + /** + * 计算方式-日历天 + */ + String CALENDAR = "calendar"; + + /** + * 即将超期提醒时间 + */ + String REMIND_TIME = "remind_time"; + + /** + * 推送时间 + */ + String PUSH_TIME = "push_time"; + + /** + * 起止时间 + */ + String START_AND_END_TIME = "start_and_end_time"; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java index c94ad69046..e71bfac726 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java @@ -18,10 +18,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomerProjectParameterDTO; import com.epmet.entity.CustomerProjectParameterEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * 项目客户参数订制表 * @@ -38,5 +42,14 @@ public interface CustomerProjectParameterDao extends BaseDao + */ + List getParameterByCustomer(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java index 88bc5dadf2..37613ce615 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.result.DepartmentResultDTO; +import com.epmet.dto.result.StaffUnHandledDTO; import com.epmet.entity.ProjectStaffEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -79,4 +80,13 @@ public interface ProjectStaffDao extends BaseDao { * @return java.util.List */ List selectCreatedProcess(ProjectStaffDTO dto); + + /** + * 获取未做处理的节点 + * @author zhaoqifeng + * @date 2020/10/21 16:56 + * @param customerId + * @return java.util.List + */ + List getStaffUnHandledList(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java index 87664dc583..532b982df6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java @@ -101,4 +101,13 @@ public interface CustomerProjectParameterService extends BaseService + */ + List getParameterByCustomer(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 9f3bfa8bf1..ab6e688a1a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -188,4 +188,13 @@ public interface ProjectService extends BaseService { * @return void */ void response(ProjectResponseFormDTO formDTO); + + /** + * 项目滞留超期提醒 + * @author zhaoqifeng + * @date 2020/10/21 15:21 + * @param customerId + * @return void + */ + void sendMessage(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java index af0ee6061d..c15d36304a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java @@ -23,6 +23,7 @@ import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.DepartmentStaffListFormDTO; import com.epmet.dto.result.DepartmentResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.StaffUnHandledDTO; import com.epmet.entity.ProjectStaffEntity; import java.util.List; @@ -140,4 +141,13 @@ public interface ProjectStaffService extends BaseService { * @return java.util.List */ List getCreatedProcess(ProjectStaffDTO dto); + + /** + * 获取未做处理的节点 + * @author zhaoqifeng + * @date 2020/10/21 16:54 + * @param customerId + * @return java.util.List + */ + List getStaffUnHandledList(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java index 3df0971eb3..42afef6c1f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java @@ -107,4 +107,17 @@ public class CustomerProjectParameterServiceImpl extends BaseServiceImpl + * @author zhaoqifeng + * @date 2020/10/21 14:16 + */ + @Override + public List getParameterByCustomer(String customerId) { + return baseDao.getParameterByCustomer(customerId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 38f5ac64a7..f6eeccd013 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -31,6 +31,7 @@ import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ParameterKeyConstant; @@ -712,4 +713,70 @@ public class ProjectServiceImpl extends BaseServiceImpl paramList = parameterService.getParameterByCustomer(customerId); + //可滞留天数 + int detentionDays = 5; + //计算方式 + String calculation = ParameterKeyConstant.WORK; + //即将超期提醒时间 + int remindTime = 0; + //推送时间 + String pushTime = "08:00"; + if (null != paramList && paramList.size() > NumConstant.ZERO) { + for (CustomerProjectParameterDTO dto : paramList) { + if (ParameterKeyConstant.DETENTION_DAYS.equals(dto.getParameterKey())) { + detentionDays = Integer.parseInt(dto.getParameterValue()); + } else if (ParameterKeyConstant.CALCULATION.equals(dto.getParameterKey())) { + calculation = dto.getParameterValue(); + } else if (ParameterKeyConstant.REMIND_TIME.equals(dto.getParameterKey())) { + remindTime = Integer.parseInt(dto.getParameterValue()); + } else if (ParameterKeyConstant.PUSH_TIME.equals(dto.getParameterKey())) { + pushTime = dto.getParameterValue(); + } + } + + } + //获取工作人员未处理的节点 + List unHandledList = projectStaffService.getStaffUnHandledList(customerId); + List formDTOS = unHandledList.stream().map(item -> { + CostDayFormDTO dto = new CostDayFormDTO(); + dto.setId(item.getId()); + dto.setStaffId(item.getStaffId()); + if (null != item.getUpdatedTime()) { + dto.setStartDate(DateUtils.format(item.getUpdatedTime(), DateUtils.DATE_PATTERN_YYYYMMDD)); + } else { + dto.setStartDate(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMMDD)); + } + dto.setEndDate(DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYYMMDD)); + return dto; + }).collect(Collectors.toList()); + List costDayList = new ArrayList<>(); + if (ParameterKeyConstant.WORK.equals(calculation)) { + //工作日计算 + Result> result = epmetCommonServiceOpenFeignClient.costWorkDays(formDTOS); + if (!result.success()) { + throw new RenException(result.getCode(), result.getMsg()); + } + costDayList = result.getData(); + } else { + //日历日计算 + Result> result = epmetCommonServiceOpenFeignClient.costCalendarDays(formDTOS); + if (!result.success()) { + throw new RenException(result.getCode(), result.getMsg()); + } + costDayList = result.getData(); + } + + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java index e33943f2e4..7285388e35 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java @@ -32,6 +32,7 @@ import com.epmet.dto.form.DepartmentStaffListFormDTO; import com.epmet.dto.form.TransferOptionalStaffListFormDTO; import com.epmet.dto.result.DepartmentResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.StaffUnHandledDTO; import com.epmet.entity.ProjectStaffEntity; import com.epmet.feign.GovOrgFeignClient; import com.epmet.redis.ProjectStaffRedis; @@ -155,4 +156,17 @@ public class ProjectStaffServiceImpl extends BaseServiceImpl + * @author zhaoqifeng + * @date 2020/10/21 16:54 + */ + @Override + public List getStaffUnHandledList(String customerId) { + return null; + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml index 25a30d23a9..28afd4123b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml @@ -26,6 +26,15 @@ and CUSTOMER_ID = #{customerId} and PARAMETER_KEY = #{parameterKey} + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml index b2fc15543a..163ad63238 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml @@ -65,5 +65,48 @@ AND ps.STAFF_ID = #{staffId} AND IS_HANDLE = 'unhandled' + \ No newline at end of file