map = new HashMap<>();
+ formDTO.getStaffList().forEach(staff->{
+ if(!map.containsKey(staff.getStaffId())){
+ WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO();
+ msg.setCustomerId(entity.getCustomerId());
+ msg.setClientType(AppClientConstant.APP_GOV);
+ msg.setUserId(staff.getStaffId());
+ msg.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE);
+ msg.setMessageContent(projectStaffMessage);
+ msg.setMessageTime(new Date());
+ msg.setGridId("*");
+ msgList.add(msg);
+ map.put(staff.getStaffId(),staff.getStaffId());
+ }
+ });
+ logger.info("议题转项目,推送微信订阅消息");
+ return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
+ }
/**
* @Description
diff --git a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml
index 3bc86de1dc..11c377e5dc 100644
--- a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-mine-server:
container_name: gov-mine-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/gov-mine-server:0.3.33
+ image: 192.168.1.130:10080/epmet-cloud-dev/gov-mine-server:version_placeholder
ports:
- "8098:8098"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml
index 265d79c930..3f5da9911a 100644
--- a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-mine-server:
container_name: gov-mine-server-test
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:0.3.33
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:version_placeholder
ports:
- "8098:8098"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencyInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencyInfoFormDTO.java
new file mode 100644
index 0000000000..2d751240cb
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencyInfoFormDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 对外接口-根据组织Id获取组织信息-接口入参
+ * @Author sun
+ */
+@Data
+public class AgencyInfoFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -1719033407335647411L;
+
+ /**
+ * 组织或网格Id
+ */
+ @NotBlank(message = "组织或网格Id不能为空", groups = StaffIdGroup.class)
+ private String orgId;
+ /**
+ * 组织或网格类型(agency/grid)
+ */
+ @NotBlank(message = "组织或网格类型不能为空", groups = StaffIdGroup.class)
+ private String orgType;
+ public interface StaffIdGroup extends CustomerClientShowGroup {
+ }
+
+
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffBasicInfoFromDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffBasicInfoFromDTO.java
new file mode 100644
index 0000000000..5c5e1ed6e9
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffBasicInfoFromDTO.java
@@ -0,0 +1,22 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author sun
+ * @dscription
+ */
+
+@Data
+public class StaffBasicInfoFromDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 用户ID
+ */
+ @NotBlank(message = "staffId不能为空", groups = {AddUserInternalGroup.class})
+ String staffId;
+ public interface AddUserInternalGroup {}
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/SubAgencyFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/SubAgencyFormDTO.java
index 6cdf21a193..ce80929e97 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/SubAgencyFormDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/SubAgencyFormDTO.java
@@ -39,5 +39,10 @@ public class SubAgencyFormDTO implements Serializable {
@NotBlank(message = "机关组织ID不能为空")
private String agencyId;
+ /**
+ * 机关组织数量
+ */
+ private Integer agencyNum = 10;
+
}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyInfoResultDTO.java
new file mode 100644
index 0000000000..7b753259e4
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyInfoResultDTO.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 组织信息
+ *
+ * @author sun
+ */
+@Data
+public class AgencyInfoResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+ /**
+ * 机关组织Id
+ */
+ private String agencyId;
+ /**
+ * 机关组织名称
+ */
+ private String agencyName;
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+ /**
+ * 上级组织机构ID
+ */
+ private String pid;
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+ /**
+ * 机关级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province)
+ */
+ private String level;
+ /**
+ * 地区编码
+ */
+ private String areaCode;
+}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffInfoResultDTO.java
index e8d385c116..31d5e24a34 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffInfoResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffInfoResultDTO.java
@@ -79,6 +79,11 @@ public class ExtStaffInfoResultDTO implements Serializable {
* */
private String adminFlag;
+ /**
+ * 手机号
+ * */
+ private String mobile;
+
/**
* 用户角色列表
* */
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java
index 241f2eb44f..de4bf27a47 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java
@@ -50,4 +50,9 @@ public class MineResultDTO implements Serializable {
* 我所属的机关名称
*/
private String myAgencyName;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeDeptResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeDeptResultDTO.java
new file mode 100644
index 0000000000..8249d17991
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeDeptResultDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 外挂-部门信息
+ * @Auth sun
+ */
+@Data
+public class OrganizeTreeDeptResultDTO implements Serializable {
+ private static final long serialVersionUID = 1792371558965832432L;
+
+ /**
+ * 部门Id
+ * */
+ private String deptId;
+ /**
+ * 部门名称
+ * */
+ private String deptName;
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeGridResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeGridResultDTO.java
new file mode 100644
index 0000000000..4c855f6956
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeGridResultDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 外挂-网格信息
+ * @Auth sun
+ */
+@Data
+public class OrganizeTreeGridResultDTO implements Serializable {
+ private static final long serialVersionUID = -4531574240525562587L;
+
+ /**
+ * 网格Id
+ * */
+ private String gridId;
+ /**
+ * 网格名称
+ * */
+ private String gridName;
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeResultDTO.java
new file mode 100644
index 0000000000..ee06600de6
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizeTreeResultDTO.java
@@ -0,0 +1,50 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据-接口返参
+ * @Auth sun
+ */
+@Data
+public class OrganizeTreeResultDTO implements Serializable {
+ private static final long serialVersionUID = 2513553862809278219L;
+
+ /**
+ * 直属机关Id
+ * */
+ private String agencyId;
+ /**
+ * 直属机关名称
+ * */
+ private String agencyName;
+ /**
+ * 机关级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province)
+ * */
+ private String level;
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+
+ /**
+ * 直属机关直属网格列表
+ * */
+ private List gridList = new ArrayList<>();
+ /**
+ * 直属机关直属部门列表
+ * */
+ private List departmentList = new ArrayList<>();
+ /**
+ * 子集机关列表
+ * */
+ private List subAgencyList = new ArrayList<>();
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubListResultDTO.java
index 17dc985695..b6bf347332 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubListResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubListResultDTO.java
@@ -41,5 +41,9 @@ public class SubListResultDTO implements Serializable {
*/
private String agencyName = "";
+ /**
+ * 机关组织级别
+ */
+ private String agencyLevel = "";
}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
index 2ebce80475..82c64c24eb 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
@@ -250,4 +250,29 @@ public interface GovOrgOpenFeignClient {
**/
@PostMapping("/gov/org/customeragency/userinfoext")
Result userInfoExt(@RequestBody ExtUserInfoResultDTO result);
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 组织首页-下级机关列表
+ */
+ @PostMapping("/gov/org/agency/subagencylist")
+ Result subAgencyList(@RequestBody SubAgencyFormDTO formDTO);
+
+ /**
+ * @param formDTO
+ * @Author sun
+ * @Description 根据组织Id获取组织信息
+ */
+ @PostMapping("/gov/org/customeragency/agencyinfo")
+ Result agencyInfo(@RequestBody AgencyInfoFormDTO formDTO);
+
+ /**
+ * @param agencyId
+ * @Author sun
+ * @Description 获取当前组织及部门、网格数据,递归查询所有下级数据
+ */
+ @PostMapping("/gov/org/customeragency/organizetree/{agencyId}")
+ Result organizeTree(@PathVariable("agencyId") String agencyId);
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
index 8f70da4530..c3811eb323 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
@@ -146,4 +146,19 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
public Result userInfoExt(ExtUserInfoResultDTO result) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "userInfoExt", result);
}
+
+ @Override
+ public Result subAgencyList(SubAgencyFormDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "subAgencyList", formDTO);
+ }
+
+ @Override
+ public Result agencyInfo(AgencyInfoFormDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "agencyInfo", formDTO);
+ }
+
+ @Override
+ public Result organizeTree(String agencyId) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "organizeTree", agencyId);
+ }
}
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
index 902ce5e8d0..abdd0d45e1 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-org-server:
container_name: gov-org-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.88
+ image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:version_placeholder
ports:
- "8092:8092"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
index f942a8fdb1..0f0c900f89 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-org-server:
container_name: gov-org-server-prod
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-org-server:0.3.91
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-org-server:0.3.92
ports:
- "8092:8092"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
index d8a3a119a0..8e81106bf9 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-org-server:
container_name: gov-org-server-test
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.81
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:version_placeholder
ports:
- "8092:8092"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml
index 041a45f6fc..5c6f53c739 100644
--- a/epmet-module/gov-org/gov-org-server/pom.xml
+++ b/epmet-module/gov-org/gov-org-server/pom.xml
@@ -2,7 +2,7 @@
4.0.0
- 0.3.91
+ 0.3.92
com.epmet
gov-org
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
index cb1865ba35..08154a921d 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
@@ -38,7 +38,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import javax.xml.validation.Validator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
index 1876fedb9b..b88368a11d 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
@@ -279,4 +279,22 @@ public class CustomerAgencyController {
}
return new Result>().ok(customerAgencyService.getAgencyElementTree(customerId).getDefaultKeys());
}
-}
+
+ /**
+ * @Description 对外接口-根据组织Id获取组织信息
+ * @author sun
+ **/
+ @PostMapping("agencyinfo")
+ Result agencyInfo(@RequestBody AgencyInfoFormDTO formDTO) {
+ return new Result().ok(customerAgencyService.agencyInfo(formDTO));
+ }
+
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ @PostMapping("organizetree/{agencyId}")
+ Result organizeTree(@PathVariable("agencyId") String agencyId) {
+ return new Result().ok(customerAgencyService.organizeTree(agencyId));
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java
index c3187e3e8e..88ee0bd046 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java
@@ -8,14 +8,10 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.StaffInfoFromDTO;
-import com.epmet.dto.form.StaffSubmitFromDTO;
-import com.epmet.dto.form.StaffTransferFormDTO;
-import com.epmet.dto.form.StaffsInAgencyFromDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.StaffService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -151,4 +147,14 @@ public class StaffController {
staffService.staffTransfer(tokenDto, formDTO);
return new Result();
}
+
+ /**
+ * 根据staffId查询用户基本信息
+ * @author sun
+ */
+ @PostMapping("staffbasicinfo")
+ public Result staffBasicInfo(@RequestBody StaffBasicInfoFromDTO fromDTO) {
+ ValidatorUtils.validateEntity(fromDTO, StaffBasicInfoFromDTO.AddUserInternalGroup.class);
+ return staffService.staffBasicInfo(fromDTO);
+ }
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
index 19b2e338b4..9c1735a886 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
@@ -57,7 +57,7 @@ public interface CustomerAgencyDao extends BaseDao {
* @Author sun
* @Description 组织首页-下级机关列表
**/
- List selectSubAgencyById(@Param("pId") String pId);
+ List selectSubAgencyById(@Param("pId") String pId, @Param("agencyNum") Integer agencyNum);
/**
* @param pId
@@ -185,4 +185,25 @@ public interface CustomerAgencyDao extends BaseDao {
* @Date 2020/11/6 14:57
*/
List getAgencyElementTree(@Param("customerId") String customerId,@Param("pid") String pid);
-}
+
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ OrganizeTreeResultDTO selectorganizeTree(@Param("agencyId") String agencyId);
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ List selectAgencyGridList(@Param("agencyId") String agencyId);
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ List selectAgencyDeptList(@Param("agencyId") String agencyId);
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ List selectAllSub(@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
index aecfd85109..8051ca63f5 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
@@ -222,4 +222,16 @@ public interface CustomerAgencyService extends BaseService
* @Date 2020/11/6 14:02
*/
AgencyElementTreeResultDTO getAgencyElementTree(String customerId);
-}
+
+ /**
+ * @Description 对外接口-根据组织Id获取组织信息
+ * @author sun
+ **/
+ AgencyInfoResultDTO agencyInfo(AgencyInfoFormDTO formDTO);
+
+ /**
+ * @Description 外挂-获取当前组织及部门、网格数据,递归查询所有下级数据
+ * @author sun
+ **/
+ OrganizeTreeResultDTO organizeTree(String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java
index dab238f3fb..f23330fa24 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java
@@ -2,10 +2,7 @@ package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
-import com.epmet.dto.form.StaffInfoFromDTO;
-import com.epmet.dto.form.StaffSubmitFromDTO;
-import com.epmet.dto.form.StaffTransferFormDTO;
-import com.epmet.dto.form.StaffsInAgencyFromDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import java.util.List;
@@ -103,4 +100,9 @@ public interface StaffService {
*/
void staffTransfer(TokenDto tokenDto, StaffTransferFormDTO fromDTO);
+ /**
+ * 根据staffId查询用户基本信息
+ * @author sun
+ */
+ Result staffBasicInfo(StaffBasicInfoFromDTO fromDTO);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
index 7595aafa33..8fbd617cf2 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
@@ -25,14 +25,12 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerAgencyConstant;
import com.epmet.constant.RoleKeyConstants;
-import com.epmet.constant.UserWorkType;
import com.epmet.dao.CustomerAgencyDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerAgencyEntity;
-import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.redis.CustomerAgencyRedis;
import com.epmet.service.AgencyService;
@@ -177,7 +175,7 @@ public class AgencyServiceImpl implements AgencyService {
public Result removeAgency(RemoveAgencyFormDTO formDTO) {
Result result = new Result();
//1:查询当前机关是否存在所属下级机关,存在下级的不能删除
- List agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId());
+ List agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId(), 10);
if (null != agencyList && agencyList.size() > NumConstant.ZERO) {
result.setCode(EpmetErrorCode.NOT_DEL_AGENCY.getCode());
result.setMsg(EpmetErrorCode.NOT_DEL_AGENCY.getMsg());
@@ -238,7 +236,7 @@ public class AgencyServiceImpl implements AgencyService {
public Result subAgencyList(SubAgencyFormDTO formDTO) {
SubAgencyResultDTO subAgencyResultDTO = new SubAgencyResultDTO();
//1:根据当前机关Id查询直属下一级机关列表,只返回前十条
- List agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId());
+ List agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId(),formDTO.getAgencyNum());
if (null == agencyList || agencyList.size() < NumConstant.ONE) {
subAgencyResultDTO.setAgencyList(new ArrayList());
subAgencyResultDTO.setSubAgencyCount(NumConstant.ZERO);
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
index 9838fdd95f..bc91668e7c 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
@@ -1021,4 +1021,40 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl staffBasicInfo(StaffBasicInfoFromDTO fromDTO) {
+ return epmetUserOpenFeignClient.getStaffBasicInfo(fromDTO);
+ }
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
index 7326a91f31..b85f892aa1 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
+++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
@@ -62,11 +62,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -298,4 +381,4 @@
-
+
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectOrgRelationDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectOrgRelationDTO.java
new file mode 100644
index 0000000000..a092793cf2
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectOrgRelationDTO.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目机关历时关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-10-19
+ */
+@Data
+public class ProjectOrgRelationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 关联PROJECT_STAFF,由此ID可以关联出PROJECT_ID、CUSTOMER_ID、PROCESS_ID
+ */
+ private String projectStaffId;
+
+ /**
+ * 流转到的日期 同CREATED_TIME
+ */
+ private Date informedDate;
+
+ /**
+ * 流转走或结案的日期
+ */
+ private Date handledDate;
+
+ /**
+ * 节点耗时,从流转到自己到流转走共耗时,单位:分钟,如果项目还没有结案且该项目在这个组织下一直滞留,这一项为空
+ * 8*60的倍数
+ */
+ private Integer totalPeriod;
+
+ /**
+ * 第一次响应时间
+ */
+ private Date firstDealtDate;
+
+ /**
+ * 首次响应时长,单位:分钟
+ * 8*60的倍数
+ */
+ private Integer firstReplyPeriod;
+
+ /**
+ * 来源动作,return(回退)、transfer(流转)、closed(结案)、response(响应)、created(立项时第一个流转到的)
+ */
+ private String sourceOperation;
+
+ /**
+ * 处理动作,return(回退)、transfer(流转)、closed(结案)、response(响应)
+ */
+ private String operation;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ *
+ */
+ private Date createdTime;
+
+ /**
+ *
+ */
+ private String createdBy;
+
+ /**
+ *
+ */
+ private Date updatedTime;
+
+ /**
+ *
+ */
+ private String updatedBy;
+
+}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectProcessDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectProcessDTO.java
index 4a0e30f907..689b3317d1 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectProcessDTO.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectProcessDTO.java
@@ -114,4 +114,24 @@ public class ProjectProcessDTO implements Serializable {
*/
private Date updatedTime;
+ /**
+ * 节点发起人所属机关Id
+ */
+ private String agencyId;
+
+ /**
+ * 节点发起人所属部门Id 可空
+ */
+ private String departmentId;
+
+ /**
+ * 节点发起人所属网格Id 可空
+ */
+ private String gridId;
+
+ /**
+ * 节点发起人所属机关全路径
+ */
+ private String orgIdPath;
+
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OverdueAndDelayDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OverdueAndDelayDTO.java
new file mode 100644
index 0000000000..93434edacc
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OverdueAndDelayDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/10/22 15:45
+ */
+@Data
+public class OverdueAndDelayDTO implements Serializable {
+ private static final long serialVersionUID = -3632539647818460833L;
+ /**
+ * 工作人员ID
+ */
+ private String staffId;
+ /**
+ * 即将超期
+ */
+ private List overdueList;
+ /**
+ * 滞留
+ */
+ private List delayList;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgPeriodResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgPeriodResultDTO.java
new file mode 100644
index 0000000000..69a2362b9d
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgPeriodResultDTO.java
@@ -0,0 +1,97 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 从数据库中查询出的 项目 - 机关(网格、部门、机关)的响应时长
+ * @ClassName ProjectOrgPeriodResultDTO
+ * @Auth wangc
+ * @Date 2020-09-16 15:28
+ */
+@Data
+public class ProjectOrgPeriodResultDTO implements Serializable {
+ private static final long serialVersionUID = 6216112710806237600L;
+
+ /**
+ * 节点Id
+ * */
+ private String processId;
+
+ /**
+ * 项目Id
+ * */
+ private String projectId;
+
+
+ /**
+ * 对这个节点的处理,如果未处理则为null
+ * created transfer close return response(查不出response,因为response类型的节点不会与process_staff产生关联,需要另取)
+ * */
+ private String operation;
+
+ /**
+ * source_operation
+ * 是生成这个节点的操作,相当于上一个人的操作,而不是对于这个节点的处理
+ * created transfer close return response
+ * */
+ private String lastAction;
+
+ /**
+ * 节点所属的机关,即上个节点推到这个节点的负责部门
+ * */
+ private String departmentName;
+
+ /**
+ * 当前节点所属的Agency,如果负责的是部门或者网格则是其所属的机关
+ * */
+ private String orgId;
+
+ /**
+ * 如果是部门处理,则有值,否则null
+ * */
+ private String departmentId;
+
+ /**
+ * 如果是网格处理,则有值,否则null
+ * */
+ private String gridId;
+
+ /**
+ * 当前所属的机关的所有Pid集合以及当前的机关Id,所以此项不会未null,至少也是它的所属Agency
+ * */
+ private String orgIdPath;
+
+ /**
+ * 从节点流入到节点流出,且当前负责单位确实解决(包括退回)了的情况下,所耗费的时间(以分钟为单位)
+ * 如果未当前负责单位一直停留在unresolved状态,即使做出response、或者项目被其他单位结案,该项依旧是0,不参与办结的计时
+ * 如果负责单位只是做出回应,但未处理(即没有让节点流走),需要查出其相应的第一次响应时间,另取
+ * */
+ private Integer totalPeriod;
+
+ /**
+ * 节点流入时间
+ * */
+ private Date informedDate;
+
+ /**
+ * 节点流出时间,如果未解决则未null
+ * */
+ private Date handledDate;
+
+ /**
+ * 第一次响应时间
+ * */
+ private Date periodTillReplyFirstly;
+
+ private String customerId;
+
+ private String staffId;
+
+ private String isResolved;
+
+ private String projectStaffId;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgRelationWhenResponseResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgRelationWhenResponseResultDTO.java
new file mode 100644
index 0000000000..e29f37dde9
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOrgRelationWhenResponseResultDTO.java
@@ -0,0 +1,49 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 查询机关在项目节点上响应的结果
+ * 查询的是存在“响应”的所有相关工作人员节点,如果同一个人对同一个项目已经做过一次处理(并未做出响应)而在第二次流转到自己时
+ * 做出了响应,也会连带查询出其第一次未响应过的数据
+ * @ClassName ProjectOrgRelationWhenResponseResultDTO
+ * @Auth wangc
+ * @Date 2020-09-16 17:27
+ */
+@Data
+public class ProjectOrgRelationWhenResponseResultDTO implements Serializable {
+ private static final long serialVersionUID = 1962332392048752037L;
+
+ /**
+ * 项目Id
+ * */
+ private String projectId;
+
+ /**
+ * 节点Id
+ * */
+ private String processId;
+
+ /**
+ * 节点动作的发起人
+ * */
+ private String staffId;
+
+ /**
+ * 负责人所属的单位名称:xx机关-xx部门 、 xx机关-xx网格 、 xx机关
+ * */
+ private String departmentName;
+
+ /**
+ * 动作分类
+ * */
+ private String operation;
+
+ /**
+ * 节点创建时间,动作发起时间
+ * */
+ private Date createdTime;
+}
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..7f19ab6754
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/StaffUnHandledDTO.java
@@ -0,0 +1,41 @@
+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;
+ /**
+ * project_staff ID
+ */
+ private String id;
+ /**
+ * 项目ID
+ */
+ private String projectId;
+ /**
+ * 项目标题
+ */
+ private String title;
+ /**
+ * 工作人员ID
+ */
+ private String staffId;
+ /**
+ * 吹哨时间
+ */
+ private Date createdTime;
+ /**
+ * 响应处理时间
+ */
+ private Date updatedTime;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
index 0f89d630d4..17bd06d5df 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
@@ -2,6 +2,7 @@ package com.epmet.feign;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ProcessListFormDTO;
+import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.PendProjectListResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
@@ -33,6 +34,16 @@ public interface GovProjectOpenFeignClient {
@PostMapping("gov/project/project/pendprojectlist")
Result> getPendProjectList(@RequestBody ProjectListFromDTO fromDTO);
+ /**
+ * 滞留消息提醒定时任务
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:05
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("gov/project/project/sendmessagejob")
+ Result sendMessageJob(@RequestBody ProjectDTO formDTO);
+
@PostMapping("gov/project/trace/processlistnotrule")
Result getProcessList(@RequestBody ProcessListFormDTO fromDTO);
}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
index a3eb7d7e01..b0bb14a9eb 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
@@ -3,6 +3,7 @@ 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.ProjectDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.PendProjectListResultDTO;
@@ -26,6 +27,19 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getPendProjectList", fromDTO);
}
+ /**
+ * 滞留消息提醒定时任务
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:05
+ */
+ @Override
+ public Result sendMessageJob(ProjectDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "sendMessageJob", formDTO);
+ }
+
@Override
public Result getProcessList(ProcessListFormDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO);
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
index 1d61afd8af..2293705079 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-project-server:
container_name: gov-project-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.43
+ image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:version_placeholder
ports:
- "8102:8102"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
index b00690b656..cee65e15cc 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-project-server:
container_name: gov-project-server-prod
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-project-server:0.3.45
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-project-server:0.3.46
ports:
- "8102:8102"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
index d7bf5d6939..d6c9360982 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
gov-project-server:
container_name: gov-project-server-test
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.39
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:version_placeholder
ports:
- "8102:8102"
network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index 1d80b96d6b..06ec668460 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -2,7 +2,7 @@
- 0.3.45
+ 0.3.46
gov-project
com.epmet
@@ -54,6 +54,12 @@
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
+
+ org.apache.commons
+ commons-collections4
+ 4.3
+ compile
+
io.github.openfeign
@@ -90,6 +96,12 @@
2.0.0
compile
+
+ com.epmet
+ oper-crm-client
+ 2.0.0
+ compile
+
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/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
index dd0f37c086..d529abf12e 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
@@ -105,6 +105,10 @@ public interface ProjectConstant {
* 调用user-message服务失败
*/
String SAVE_MSG_EXCEPTION = "发送消息失败";
+ /**
+ * 调用user-message服务失败
+ */
+ String SAVE_WXMP_MSG_EXCEPTION = "发送微信订阅消息失败";
/**
* 查询项目表数据失败
*/
@@ -128,4 +132,24 @@ public interface ProjectConstant {
String SAVE_PROJECT_EXCEPTION = "已存在项目数据,不能重复转项目";
String REVIEW_PROJECT = "项目评论失败,评论内容为:%s";
+
+ /***
+ * 计算方式 使用自定应
+ */
+ String CALCULATION_TYPE_CUSTOM = "custom";
+
+ /**
+ * 计算方式 使用默认24小时制
+ */
+ String CALCULATION_TYPE_DEFAULT = "default";
+
+ /**
+ * 精准计算
+ */
+ String PRECISE_CALCULATION = "precise";
+
+ /**
+ * 非精准计算
+ */
+ String IMPRECISE_CALCULATION = "imprecise";
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java
index 756a599ac3..9a1323f55f 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java
@@ -11,14 +11,50 @@ public interface UserMessageConstant {
*/
String PROJECT_TITLE = "您有一条项目消息";
+ /**
+ * 微信订阅消息部分标题
+ */
+ String WXMP_PROJECT_TITLE = "您有一条项目消息";
+
/**
* 议题转项目、项目流转、项目退回消息模板
*/
- String PROJECT_RESOLVED_MSG = "您好。您收到一条【%s】的新信息,请您尽快处理。";
+ String PROJECT_RESOLVED_MSG = "您收到一条【%s】的新信息,请您尽快处理。";
/**
* 项目结案消息模板
*/
- String PROJECT_CLOSED_MSG = "您好,您参与的【%s】项目已结案,原因:%s";
+ String PROJECT_CLOSED_MSG = "您参与的【%s】项目已结案,原因:%s";
+
+
+ /**
+ * 滞留超期消息标题
+ */
+ String STAY_REMINDER_TITLE_1 = "您有%d个项目即将超期,%d个项目已经滞留";
+
+ /**
+ * 滞留超期消息模板
+ */
+ String STAY_REMINDER_MSG_1 = "即将超期项目:%n%s 滞留项目:%n%s";
+
+ /**
+ * 滞留超期消息标题
+ */
+ String STAY_REMINDER_TITLE_2 = "您有%d个项目即将超期";
+
+ /**
+ * 滞留超期消息模板
+ */
+ String STAY_REMINDER_MSG_2 = "即将超期项目:%n%s";
+
+ /**
+ * 滞留超期消息标题
+ */
+ String STAY_REMINDER_TITLE_3 = "您有%d个项目已经滞留";
+
+ /**
+ * 滞留超期消息模板
+ */
+ String STAY_REMINDER_MSG_3 = "滞留项目:%n%s";
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
index 5ccc25b279..345fb495a3 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
@@ -152,4 +152,35 @@ public class ProjectController {
return new Result>().ok(result);
}
+ /**
+ * 滞留消息提醒
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:02
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("message")
+ public Result sendMessage(@RequestBody ProjectDTO formDTO) {
+ projectService.sendMessage(formDTO.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 滞留消息提醒定时任务
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:03
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("sendmessagejob")
+ public Result sendMessageJob(@RequestBody ProjectDTO formDTO) {
+ projectService.sendMessageJob(formDTO);
+ return new Result();
+ }
+
+ @PostMapping("compensation")
+ public Result compensation(){
+ projectService.projectProcessCostTimeDataCompensation();
+ return new Result();
+ }
}
\ No newline at end of file
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..349b07308b 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,32 @@ public interface CustomerProjectParameterDao extends BaseDao
+ */
+ List getParameterByCustomer(@Param("customerId") String customerId);
+
+ /**
+ * 获取推送时间范围内的客户ID
+ * @author zhaoqifeng
+ * @date 2020/10/26 13:44
+ * @param
+ * @return java.util.List
+ */
+ CustomerProjectParameterDTO getPushTime(@Param("customerId") String customerId);
+ /**
+ * 获取默认配置
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:59
+ * @param
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ */
+ CustomerProjectParameterDTO getDefaultPushTime();
+
+ CustomerProjectParameterDTO getPushTimeConfig(@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/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
index 4d20d6327c..0584789909 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
@@ -121,4 +121,13 @@ public interface ProjectDao extends BaseDao {
* @Description 根据客户Id、机关Id、议题Id查询项目数据是否存在
**/
List selectProjectList(ProjectDTO projectDTO);
+
+ /**
+ * @Description 得到所有的customerId
+ * @param
+ * @return java.util.List
+ * @author wangc
+ * @date 2020.10.26 11:20
+ */
+ List selectAllCustomerIds();
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectOrgRelationDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectOrgRelationDao.java
new file mode 100644
index 0000000000..b628f0cbbe
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectOrgRelationDao.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.ProjectOrgRelationDTO;
+import com.epmet.entity.ProjectOrgRelationEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目机关历时关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-10-19
+ */
+@Mapper
+public interface ProjectOrgRelationDao extends BaseDao {
+
+ /***
+ * @Description
+ * @param entity
+ * @return int
+ * @author wangc
+ * @date 2020.10.20 14:18
+ */
+ int maintainTimePropertyConsistency(ProjectOrgRelationEntity entity);
+
+
+ /***
+ * @Description 批量插入
+ * @param list
+ * @return void
+ * @author wangc
+ * @date 2020.10.20 09:57
+ */
+ void insertBatch(@Param("list") List list);
+
+ /***
+ * @Description 根据projectStaffId查找项目机关关联的数据
+ * @param projectStaffId
+ * @return com.epmet.entity.ProjectOrgRelationEntity
+ * @author wangc
+ * @date 2020.10.21 15:37
+ */
+ ProjectOrgRelationEntity selectByProjectStaffId(@Param("projectStaffId") String projectStaffId);
+
+ /***
+ * @Description 查询出所有未处理的节点耗时记录 - 结案时使用
+ * @param projectId
+ * @return java.util.List
+ * @author wangc
+ * @date 2020.10.22 13:37
+ */
+ List selectAllUnhandledProcess(@Param("projectId")String projectId);
+
+ /**
+ * @Description 批量新增(数据补偿)
+ * @param list
+ * @return int
+ * @author wangc
+ * @date 2020.10.26 13:55
+ */
+ int batchInsertProjectOrgRelation(@Param("list") List list);
+
+ /**
+ * @Description 批量删除
+ * @param list
+ * @return int
+ * @author wangc
+ * @date 2020.10.26 14:07
+ */
+ int deleteBatch(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
index 333d1aefeb..dc3260b2c8 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
@@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.ProcessProjectIdFormDTO;
import com.epmet.dto.form.ProjectIdFormDTO;
import com.epmet.dto.result.ProcesslistResultDTO;
+import com.epmet.dto.result.ProjectOrgRelationWhenResponseResultDTO;
import com.epmet.dto.result.ProjectProcessListResultDTO;
import com.epmet.entity.ProjectProcessEntity;
import org.apache.ibatis.annotations.Mapper;
@@ -67,4 +68,13 @@ public interface ProjectProcessDao extends BaseDao {
* @author zxc
*/
Integer checkProjectClose(ProjectIdFormDTO projectIdFormDTO);
+
+ /**
+ * @Description 查询项目-机关各个节点的响应列表
+ * @param projects
+ * @return
+ * @author wangc
+ * @date 2020.09.17 17:56
+ **/
+ List selectResponseTrace(@Param("projects") List projects);
}
\ 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..b3728bf23a 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,44 @@ 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);
+
+ /***
+ * @Description 根据项目ID查询项目-人员表的ID
+ * @param projectId
+ * @return java.util.List
+ * @author wangc
+ * @date 2020.10.19 18:00
+ */
+ List selectIdByProjectId(@Param("projectId") String projectId);
+
+ /**
+ * @Description 根据项目Id和工作人员Id查找最新的project_staff表的ID
+ * @param projectId
+ * @param staffId
+ * @return com.epmet.dto.ProjectStaffDTO
+ * @author wangc
+ * @date 2020.10.21 15:07
+ */
+ ProjectStaffDTO selectLatestByProjectIdAndStaffId(@Param("projectId") String projectId,@Param("staffId") String staffId);
+
+ /**
+ * @Description 查询项目-机关各个节点历时详情
+ * @param customerId
+ * @return
+ * @author wangc
+ * @date 2020.09.17 09:43
+ **/
+ List selectProjectOrgPeriod(@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/entity/ProjectOrgRelationEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectOrgRelationEntity.java
new file mode 100644
index 0000000000..23e190ab90
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectOrgRelationEntity.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目机关历时关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-10-19
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("project_org_relation")
+public class ProjectOrgRelationEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 关联PROJECT_STAFF,由此ID可以关联出PROJECT_ID、CUSTOMER_ID、PROCESS_ID
+ */
+ private String projectStaffId;
+
+ /**
+ * 流转到的日期 同CREATED_TIME
+ */
+ private Date informedDate;
+
+ /**
+ * 流转走或结案的日期
+ */
+ private Date handledDate;
+
+ /**
+ * 节点耗时,从流转到自己到流转走共耗时,单位:分钟,如果项目还没有结案且该项目在这个组织下一直滞留,这一项为空
+ * 8*60的倍数
+ */
+ private Integer totalPeriod;
+
+ /**
+ * 第一次响应时间
+ */
+ private Date firstDealtDate;
+
+ /**
+ * 首次响应时长,单位:分钟
+ * 8*60的倍数
+ */
+ private Integer firstReplyPeriod;
+
+ /**
+ * 来源动作,return(回退)、transfer(流转)、closed(结案)、response(响应)、created(立项时第一个流转到的)
+ */
+ private String sourceOperation;
+
+ /**
+ * 处理动作,return(回退)、transfer(流转)、closed(结案)、response(响应)
+ */
+ private String operation;
+
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java
index e9ae924698..a862140529 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java
@@ -43,6 +43,11 @@ public class ProjectProcessEntity extends BaseEpmetEntity {
*/
private String projectId;
+ /**
+ * 项目改造新增字段:客户Id
+ */
+ private String customerId;
+
/**
* 部门名
*/
@@ -83,4 +88,24 @@ public class ProjectProcessEntity extends BaseEpmetEntity {
*/
private String costWorkdays;
+ /**
+ * 节点发起人所属机关Id
+ */
+ private String agencyId;
+
+ /**
+ * 节点发起人所属部门Id 可空
+ */
+ private String departmentId;
+
+ /**
+ * 节点发起人所属网格Id 可空
+ */
+ private String gridId;
+
+ /**
+ * 节点发起人所属机关全路径
+ */
+ private String orgIdPath;
+
}
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..c9b487e7d0 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,40 @@ public interface CustomerProjectParameterService extends BaseService
+ */
+ List getParameterByCustomer(String customerId);
+
+ /**
+ * 获取推送时间范围内的客户ID
+ * @author zhaoqifeng
+ * @date 2020/10/26 13:43
+ * @param customerId
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ */
+ CustomerProjectParameterDTO getPushTime(String customerId);
+
+ /**
+ * 获取默认配置
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:58
+ * @param
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ */
+ CustomerProjectParameterDTO getDefaultPushTime();
+
+ /**
+ * 获取推送时间范围内的客户ID
+ * @author zhaoqifeng
+ * @date 2020/10/26 13:43
+ * @param customerId
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ */
+ CustomerProjectParameterDTO getPushTimeConfig(String customerId);
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
index c8b4dfdcc7..59f41ab307 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
@@ -19,7 +19,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
-import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.ProjectProcessDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@@ -143,4 +142,13 @@ public interface ProjectProcessService extends BaseService
*/
ProcessAndCurrentDeptResultDTO progressAndCurrentDept(ProcessListFormDTO formDTO);
+ /**
+ * @Description 查询项目-机关各个节点的响应列表
+ * @param projects
+ * @return
+ * @author wangc
+ * @date 2020.09.17 17:56
+ **/
+ List selectResponseTrace(List projects);
+
}
\ 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..2050b5921e 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,32 @@ 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);
+
+ /**
+ * 项目滞留超期提醒定时任务
+ * @author zhaoqifeng
+ * @date 2020/10/26 10:53
+ * @param dto
+ * @return void
+ */
+ void sendMessageJob(ProjectDTO dto);
+
+
+ /**
+ * @Description 项目节点耗时数据补齐
+ * @param
+ * @return void
+ * @author wangc
+ * @date 2020.10.26 10:54
+ */
+ void projectProcessCostTimeDataCompensation();
}
\ 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..fa4f17266d 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,8 +23,10 @@ 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;
import java.util.Map;
@@ -140,4 +142,42 @@ 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);
+
+ /***
+ * @Description 根据项目ID查询项目-人员表的ID
+ * @param projectId
+ * @return java.util.List
+ * @author wangc
+ * @date 2020.10.19 18:00
+ */
+ List getIdByProjectId(String projectId);
+
+ /**
+ * @Description 根据项目Id和工作人员Id查找最新的project_staff表的ID
+ * @param projectId
+ * @param staffId
+ * @return com.epmet.dto.ProjectStaffDTO
+ * @author wangc
+ * @date 2020.10.21 15:07
+ */
+ ProjectStaffDTO getLatestIdByProjectIdAndStaffId(String projectId,String staffId);
+
+ /**
+ * @Description 查询项目-机关各个节点历时详情
+ * @param customerId
+ * @return
+ * @author wangc
+ * @date 2020.09.17 09:43
+ **/
+ List selectProjectOrgPeriod(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..a3b249ab4b 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,54 @@ public class CustomerProjectParameterServiceImpl extends BaseServiceImpl
+ * @author zhaoqifeng
+ * @date 2020/10/21 14:16
+ */
+ @Override
+ public List getParameterByCustomer(String customerId) {
+ return baseDao.getParameterByCustomer(customerId);
+ }
+
+ /**
+ * 获取推送时间范围内的客户ID
+ *@param customerId
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2020/10/26 13:43
+ */
+ @Override
+ public CustomerProjectParameterDTO getPushTime(String customerId) {
+ return baseDao.getPushTime(customerId);
+ }
+
+ /**
+ * 获取默认配置
+ *
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ * @author zhaoqifeng
+ * @date 2020/10/26 14:58
+ */
+ @Override
+ public CustomerProjectParameterDTO getDefaultPushTime() {
+ return baseDao.getDefaultPushTime();
+ }
+
+ /**
+ * 获取推送时间范围内的客户ID
+ *
+ * @param customerId
+ * @return com.epmet.dto.CustomerProjectParameterDTO
+ * @author zhaoqifeng
+ * @date 2020/10/26 13:43
+ */
+ @Override
+ public CustomerProjectParameterDTO getPushTimeConfig(String customerId) {
+ return baseDao.getPushTimeConfig(customerId);
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
index 6af8b68c00..759d57bcb2 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
@@ -17,6 +17,7 @@
package com.epmet.service.impl;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@@ -35,6 +36,7 @@ import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageConstant;
+import com.epmet.dao.ProjectOrgRelationDao;
import com.epmet.dao.ProjectDao;
import com.epmet.dao.ProjectProcessDao;
import com.epmet.dao.ProjectStaffDao;
@@ -44,8 +46,11 @@ import com.epmet.dto.ProjectStaffDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.ProjectEntity;
+import com.epmet.entity.ProjectOrgRelationEntity;
import com.epmet.entity.ProjectProcessEntity;
import com.epmet.entity.ProjectStaffEntity;
+import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
+import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient;
@@ -53,11 +58,15 @@ import com.epmet.redis.ProjectProcessRedis;
import com.epmet.service.ProjectProcessService;
import com.epmet.service.ProjectService;
import com.epmet.service.ProjectStaffService;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@@ -69,8 +78,10 @@ import java.util.stream.Collectors;
* @since v1.0.0 2020-05-11
*/
@Service
+@Slf4j
public class ProjectProcessServiceImpl extends BaseServiceImpl implements ProjectProcessService {
+ protected static final Logger logger = LoggerFactory.getLogger(ProjectProcessServiceImpl.class);
@Autowired
private ProjectProcessRedis projectProcessRedis;
@Autowired
@@ -87,6 +98,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl page(Map params) {
@@ -223,12 +240,18 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl staffList = formDTO.getStaffList();
@@ -284,10 +307,58 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl intervalList = new LinkedList<>();intervalList.add(interval);
+ timeParam.setTimeList(intervalList);
+ Result