28 changed files with 639 additions and 183 deletions
@ -0,0 +1,96 @@ |
|||
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; |
|||
|
|||
/** |
|||
* 是这个节点的操作,相当于上一个人的操作,而不是对于这个节点的处理 |
|||
* 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; |
|||
|
|||
} |
@ -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; |
|||
} |
@ -0,0 +1,100 @@ |
|||
CREATE TABLE `project_org_relation` ( |
|||
`ID` varchar(64) COLLATE utf8_unicode_ci NOT NULL, |
|||
`PROJECT_STAFF_ID` varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT '关联PROJECT_STAFF,由此ID可以关联出PROJECT_ID、CUSTOMER_ID、PROCESS_ID', |
|||
`INFORMED_DATE` datetime DEFAULT NULL COMMENT '流转到的日期 同CREATED_TIME', |
|||
`HANDLED_DATE` datetime DEFAULT NULL COMMENT '流转走或结案的日期', |
|||
`TOTAL_PERIOD` int(12) DEFAULT NULL COMMENT '节点耗时,从流转到自己到流转走共耗时,单位:分钟,如果项目还没有结案且该项目在这个组织下一直滞留,这一项为空\r\n8*60的倍数', |
|||
`FIRST_DEALT_DATE` datetime DEFAULT NULL COMMENT '第一次响应时间', |
|||
`FIRST_REPLY_PERIOD` int(12) DEFAULT NULL COMMENT '首次响应时长,单位:分钟\r\n8*60的倍数', |
|||
`SOURCE_OPERATION` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '来源动作,return(回退)、transfer(流转)、closed(结案)、response(响应)、created(立项时第一个流转到的)', |
|||
`OPERATION` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '处理动作,return(回退)、transfer(流转)、closed(结案)、response(响应)', |
|||
`DEL_FLAG` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0' COMMENT '删除标识', |
|||
`REVISION` int(4) NOT NULL DEFAULT '0' COMMENT '乐观锁', |
|||
`CREATED_TIME` datetime NOT NULL, |
|||
`CREATED_BY` varchar(64) COLLATE utf8_unicode_ci NOT NULL, |
|||
`UPDATED_TIME` datetime NOT NULL, |
|||
`UPDATED_BY` varchar(64) COLLATE utf8_unicode_ci NOT NULL, |
|||
PRIMARY KEY (`ID`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目机关历时关系表'; |
|||
|
|||
ALTER TABLE `epmet_gov_project`.`project_process` |
|||
ADD COLUMN `AGENCY_ID` varchar(64) NULL COMMENT '组织ID' AFTER 'DEPARTMENT_NAME', |
|||
ADD COLUMN `DEPARTMENT_ID` varchar(64) NULL COMMENT '部门ID' AFTER 'AGENCY_ID', |
|||
ADD COLUMN `GRID_ID` varchar(64) NULL COMMENT '网格ID' AFTER 'DEPARTMENT_ID', |
|||
ADD COLUMN `ORG_ID_PATH` varchar(500) NULL COMMENT '所属机关(11:22:33)' AFTER 'GRID_ID'; |
|||
ADD COLUMN `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id'; |
|||
|
|||
|
|||
UPDATE project_process a |
|||
INNER JOIN ( |
|||
SELECT DISTINCT |
|||
pp.ID, |
|||
p.AGENCY_ID, |
|||
p.ORG_ID_PATH, |
|||
prp.GRID_ID |
|||
FROM |
|||
project_process pp |
|||
INNER JOIN project p ON pp.PROJECT_ID = p.ID |
|||
LEFT JOIN project_related_personnel prp ON pp.PROJECT_ID = prp.PROJECT_ID |
|||
WHERE |
|||
pp.OPERATION = 'created' |
|||
) b ON a.ID = b.ID |
|||
SET a.AGENCY_ID = b.AGENCY_ID, |
|||
a.GRID_ID = b.GRID_ID, |
|||
a.ORG_ID_PATH = b.ORG_ID_PATH; |
|||
|
|||
|
|||
|
|||
UPDATE project_process a |
|||
INNER JOIN ( |
|||
SELECT DISTINCT |
|||
pp.ID, |
|||
ps.ORG_ID, |
|||
ps.GRID_ID, |
|||
ps.DEPARTMENT_ID, |
|||
ps.ORG_ID_PATH |
|||
FROM |
|||
project_process pp |
|||
INNER JOIN project_staff ps ON pp.PROJECT_ID = ps.PROJECT_ID |
|||
AND pp.DEPARTMENT_NAME = ps.DEPARTMENT_NAME |
|||
AND ps.IS_HANDLE = 'handle' |
|||
AND pp.STAFF_ID = ps.STAFF_ID |
|||
AND ps.DEL_FLAG = '0' |
|||
WHERE |
|||
pp.OPERATION != 'created' |
|||
AND pp.OPERATION != 'response' |
|||
) b ON a.ID = b.ID |
|||
SET a.AGENCY_ID = b.ORG_ID, |
|||
a.GRID_ID = b.GRID_ID, |
|||
a.DEPARTMENT_ID = b.DEPARTMENT_ID, |
|||
a.ORG_ID_PATH = b.ORG_ID_PATH; |
|||
|
|||
|
|||
UPDATE project_process a |
|||
INNER JOIN ( |
|||
SELECT DISTINCT |
|||
pp.ID, |
|||
ps.ORG_ID, |
|||
ps.GRID_ID, |
|||
ps.DEPARTMENT_ID, |
|||
ps.ORG_ID_PATH |
|||
FROM |
|||
project_process pp |
|||
LEFT JOIN project_staff ps ON pp.PROJECT_ID = ps.PROJECT_ID |
|||
AND pp.STAFF_ID = ps.STAFF_ID |
|||
AND pp.DEPARTMENT_NAME = ps.DEPARTMENT_NAME |
|||
WHERE |
|||
pp.OPERATION = 'response' |
|||
) b ON a.ID = b.ID |
|||
SET a.AGENCY_ID = b.ORG_ID, |
|||
a.GRID_ID = b.GRID_ID, |
|||
a.DEPARTMENT_ID = b.DEPARTMENT_ID, |
|||
a.ORG_ID_PATH = b.ORG_ID_PATH; |
|||
|
|||
UPDATE PROJECT_PROCESS process |
|||
INNER JOIN PROJECT project ON process.PROJECT_ID = project.ID |
|||
AND project.DEL_FLAG = '0' |
|||
AND process.DEL_FLAG = '0' |
|||
SET process.CUSTOMER_ID = project.CUSTOMER_ID; |
|||
|
|||
|
Loading…
Reference in new issue