From 0b7d3956104426517fbadaee526efa36d20112e7 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 27 二月 2025 16:30:21 +0800
Subject: [PATCH] 流程推进统计table内容调整
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 196 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 138 insertions(+), 58 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index ee84bc4..ca1ea6f 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -284,7 +284,7 @@
this.getRemainingTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
break;
case TaskTypeConstant.TIMELY:
- this.getTimelyTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
+ this.getTimelyTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
break;
case TaskTypeConstant.OVERTIME:
this.getOvertimeTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
@@ -898,11 +898,16 @@
List<String> handlerNames = new ArrayList<>(2);
List<Long> handlerUnitIds = new ArrayList<>(2);
List<String> handlerUnitNames = new ArrayList<>(2);
+ List<String> promoterNames = new ArrayList<>(2);
+ List<String> promoterUnitNames = new ArrayList<>(2);
vo.setHandlerId(handlerIds);
vo.setHandlerName(handlerNames);
vo.setHandlerUnitId(handlerUnitIds);
vo.setHandlerUnitName(handlerUnitNames);
+ vo.setPromoterName(promoterNames);
+ vo.setPromoterUnitName(promoterUnitNames);
+ this.setCandidateInfo(userTask, vo, projectId, processInsId);
if (Objects.isNull(task)) {
// 濡傛灉浠诲姟鍦ㄨ繍琛屾椂娌℃壘鍒帮紝閭d箞鍙兘涓烘湭寮�濮嬫垨鑰呭凡瀹屾垚锛岄渶瑕佷粠鍘嗗彶浠诲姟涓啀鎵句竴涓�
List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
@@ -913,8 +918,6 @@
.desc()
.list();
if (CollectionUtils.isEmpty(historicTasks)) {
- vo.setPromoterName("鏆傛棤");
- vo.setPromoterUnitName("鏆傛棤");
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
@@ -927,14 +930,13 @@
handlerUnitNames.add(sysUser.getDept().getDeptName());
}
}
-
} else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
List<String> groupIds = userTask.getCandidateGroups();
for (String groupId : groupIds) {
// 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬
if (groupId.contains(ProcessConstants.DATA_LAUNCH)) {
vo.setHandlerType(HandlerTypeEnum.DEPT);
- this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT);
+ this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1);
} else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
vo.setHandlerType(HandlerTypeEnum.DEPT);
String[] split = groupId.split(":");
@@ -944,6 +946,7 @@
if (Objects.nonNull(dept)) {
handlerUnitIds.add(dept.getDeptId());
handlerUnitNames.add(dept.getDeptName());
+ handlerNames.add(this.getDeptLeaderShowName(dept));
}
}
} else {
@@ -970,8 +973,10 @@
if (Objects.nonNull(handlerUser)) {
handlerIds.add(handlerUserId);
handlerNames.add(this.getUserShowName(handlerUser));
- vo.setActualHandlerUserId(historicTasks.get(0).getAssignee());
- vo.setActualHandlerUserName(handlerUser.getNickName());
+ if (Objects.nonNull(handlerUser.getDept())) {
+ handlerUnitNames.add(handlerUser.getDept().getDeptName());
+ handlerUnitIds.add(handlerUser.getDept().getDeptId());
+ }
}
vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey());
this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks());
@@ -1075,18 +1080,19 @@
taskVO.setProcessInsId(task.getProcessInstanceId());
taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
- // 娴佺▼鍙戣捣浜轰俊鎭�
- this.setPromoterInfo(taskVO);
-
// 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist
List<Long> handlerIds = new ArrayList<>(2);
List<String> handlerNames = new ArrayList<>(2);
List<Long> handlerUnitIds = new ArrayList<>(2);
List<String> handlerUnitNames = new ArrayList<>(2);
+ List<String> promoterNames = new ArrayList<>(2);
+ List<String> promoterUnitNames = new ArrayList<>(2);
taskVO.setHandlerId(handlerIds);
taskVO.setHandlerName(handlerNames);
taskVO.setHandlerUnitId(handlerUnitIds);
taskVO.setHandlerUnitName(handlerUnitNames);
+ taskVO.setPromoterName(promoterNames);
+ taskVO.setPromoterUnitName(promoterUnitNames);
// 娴佺▼澶勭悊浜轰俊鎭�
List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId());
@@ -1106,6 +1112,8 @@
if (Objects.nonNull(sysUser.getDept())) {
taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId());
taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName());
+ taskVO.getPromoterName().add(this.getUserShowName(sysUser));
+ taskVO.getPromoterUnitName().add(sysUser.getDept().getDeptName());
}
}
// 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂�
@@ -1119,6 +1127,8 @@
if (Objects.nonNull(dept)) {
taskVO.getHandlerUnitId().add(dept.getDeptId());
taskVO.getHandlerUnitName().add(dept.getDeptName());
+ taskVO.getPromoterName().add(this.getDeptLeaderShowName(dept));
+ taskVO.getPromoterUnitName().add(dept.getDeptName());
}
}
} else {
@@ -1130,7 +1140,6 @@
}
}
}
-
this.distinctVo(taskVO);
}
}
@@ -1189,7 +1198,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getTimelyTask(String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getTimelyTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1272,11 +1281,16 @@
List<String> handlerNames = new ArrayList<>(2);
List<Long> handlerUnitIds = new ArrayList<>(2);
List<String> handlerUnitNames = new ArrayList<>(2);
+ List<String> promoterNames = new ArrayList<>(2);
+ List<String> promoterUnitNames = new ArrayList<>(2);
vo.setHandlerId(handlerIds);
vo.setHandlerName(handlerNames);
vo.setHandlerUnitId(handlerUnitIds);
vo.setHandlerUnitName(handlerUnitNames);
+ vo.setPromoterName(promoterNames);
+ vo.setPromoterUnitName(promoterUnitNames);
+ this.setCandidateInfo(userTask, vo, projectId, processInsId);
HistoricTaskInstance hisTask = keyMap.get(userTask.getId());
if (Objects.nonNull(hisTask)) {
vo.setTaskStatus(TaskStatusEnum.FINISHED);
@@ -1291,8 +1305,6 @@
if (Objects.nonNull(handlerUser)) {
vo.getHandlerId().add(handlerUserId);
vo.getHandlerName().add(this.getUserShowName(handlerUser));
- vo.setActualHandlerUserId(hisTask.getAssignee());
- vo.setActualHandlerUserName(this.getUserShowName(handlerUser));
}
vo.setTaskDefinitionKey(hisTask.getTaskDefinitionKey());
this.setPromoterAndHandler(vo, hisTask.getIdentityLinks());
@@ -1313,6 +1325,16 @@
*/
private String getUserShowName(SysUser user) {
return user.getNickName() + (StringUtils.isNotBlank(user.getPhonenumber()) ? "(" + user.getPhonenumber() + ")" : "");
+ }
+
+ /**
+ * 閮ㄩ棬璐熻矗浜哄悕绉板悗闈㈣窡鐢佃瘽鍙风爜
+ *
+ * @param dept
+ * @return
+ */
+ private String getDeptLeaderShowName(SysDept dept) {
+ return dept.getLeader() + (StringUtils.isNotBlank(dept.getPhone()) ? "(" + dept.getPhone() + ")" : "");
}
/**
@@ -1622,10 +1644,14 @@
List<String> handlerNames = new ArrayList<>(2);
List<Long> handlerUnitIds = new ArrayList<>(2);
List<String> handlerUnitNames = new ArrayList<>(2);
+ List<String> promoterNames = new ArrayList<>(2);
+ List<String> promoterUnitNames = new ArrayList<>(2);
vo.setHandlerId(handlerIds);
vo.setHandlerName(handlerNames);
vo.setHandlerUnitId(handlerUnitIds);
vo.setHandlerUnitName(handlerUnitNames);
+ vo.setPromoterName(promoterNames);
+ vo.setPromoterUnitName(promoterUnitNames);
vo.setProcessInsId(process.getId());
vo.setProcessDefId(processDefinitionId);
@@ -1633,6 +1659,9 @@
vo.setTaskName(userTask.getName());
vo.setProcessName(process.getProcessDefinitionName());
vo.setTaskStatus(TaskStatusEnum.NOT_START);
+
+ this.setCandidateInfo(userTask, vo, projectId, processInsId);
+
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
@@ -1651,7 +1680,7 @@
// 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬
if (groupId.contains(ProcessConstants.DATA_LAUNCH)) {
vo.setHandlerType(HandlerTypeEnum.DEPT);
- this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT);
+ this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1);
} else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
vo.setHandlerType(HandlerTypeEnum.DEPT);
String[] split = groupId.split(":");
@@ -1694,10 +1723,10 @@
/**
* 澶勭悊娴佺▼鍙橀噺-涓氫富鍗曚綅
- *
+ * @param setType 0 璁剧疆璐d换鍗曚綅 1 璁剧疆鍔炵悊鍗曚綅
* @param vo
*/
- private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type) {
+ private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type, Integer setType) {
ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper)
.eq(ProjectProcess::getProjectId, projectId)
.eq(ProjectProcess::getProcessInsId, processInsId)
@@ -1714,8 +1743,14 @@
} else if (HandlerTypeEnum.DEPT.equals(type)) {
SysDept dept = deptService.selectDeptById(projectProcess.getDataLaunch());
if (Objects.nonNull(dept)) {
- vo.getHandlerUnitId().add(dept.getDeptId());
- vo.getHandlerUnitName().add(dept.getDeptName());
+ if (setType == 1) {
+ vo.getHandlerUnitId().add(dept.getDeptId());
+ vo.getHandlerUnitName().add(dept.getDeptName());
+ vo.getHandlerName().add(this.getDeptLeaderShowName(dept));
+ } else {
+ vo.getPromoterUnitName().add(dept.getDeptName());
+ vo.getPromoterName().add(this.getDeptLeaderShowName(dept));
+ }
}
} else if (HandlerTypeEnum.ROLE.equals(type)) {
SysRole role = sysRoleService.selectRoleById(projectProcess.getDataLaunch());
@@ -1753,6 +1788,52 @@
return totalNum - num;
}
+ /**
+ * 璁剧疆鍊欓�変汉淇℃伅/璐d换鍗曚綅
+ *
+ * @param userTask
+ * @param vo
+ * @param projectId
+ * @param processInsId
+ */
+ private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, Long projectId, String processInsId) {
+ if (StringUtils.isNotBlank(userTask.getAssignee())) {
+ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
+ if (Objects.nonNull(sysUser)) {
+ if (Objects.nonNull(sysUser.getDept())) {
+ // 濡傛灉鏄寚瀹氱殑鏌愪釜浜猴紝閭d箞璐d换鍗曚綅鏄繖涓汉鎵�鍦ㄧ殑閮ㄩ棬
+ vo.getPromoterUnitName().add(sysUser.getDept().getDeptName());
+ vo.getPromoterName().add(this.getUserShowName(sysUser));
+ }
+ }
+ } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
+ List<String> groupIds = userTask.getCandidateGroups();
+ for (String groupId : groupIds) {
+ // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬
+ if (groupId.contains(ProcessConstants.DATA_LAUNCH)) {
+ vo.setHandlerType(HandlerTypeEnum.DEPT);
+ this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 0);
+ } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+ vo.setHandlerType(HandlerTypeEnum.DEPT);
+ String[] split = groupId.split(":");
+ if (split.length > 1) {
+ // 閮ㄩ棬
+ SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1]));
+ if (Objects.nonNull(dept)) {
+ vo.getPromoterUnitName().add(dept.getDeptName());
+ vo.getPromoterName().add(this.getDeptLeaderShowName(dept));
+ }
+ }
+ } else {
+ vo.setHandlerType(HandlerTypeEnum.ROLE);
+ SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId));
+ if (Objects.nonNull(role)) {
+ vo.getPromoterUnitName().add(role.getRoleName());
+ }
+ }
+ }
+ }
+ }
/**
* 璁剧疆浠诲姟鐨勫彂璧蜂汉&澶勭悊浜� 鍙湁寰呭姙浠诲姟鍜屽凡瀹屾垚浠诲姟鎵嶄細鎺夎繖涓柟娉�
@@ -1761,7 +1842,7 @@
* @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁�
*/
private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) {
- this.setPromoterInfo(taskVO);
+// this.setPromoterInfo(taskVO);
// 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist
List<Long> handlerIds = new ArrayList<>(2);
@@ -1786,7 +1867,7 @@
if (Objects.nonNull(sysUser)) {
taskVO.setHandlerType(HandlerTypeEnum.USER);
handlerIds.add(sysUser.getUserId());
- handlerNames.add(sysUser.getNickName());
+ handlerNames.add(this.getUserShowName(sysUser));
if (Objects.nonNull(sysUser.getDept())) {
handlerUnitIds.add(sysUser.getDept().getDeptId());
handlerUnitNames.add(sysUser.getDept().getDeptName());
@@ -1823,7 +1904,7 @@
SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
if (Objects.nonNull(sysUser)) {
handlerIds.add(sysUser.getUserId());
- handlerNames.add(sysUser.getNickName());
+ handlerNames.add(this.getUserShowName(sysUser));
if (Objects.nonNull(sysUser.getDept())) {
handlerUnitIds.add(sysUser.getDept().getDeptId());
handlerUnitNames.add(sysUser.getDept().getDeptName());
@@ -1853,7 +1934,6 @@
}
}
}
-
this.distinctVo(taskVO);
}
@@ -1863,41 +1943,41 @@
* @param taskVO
*/
private void setPromoterInfo(CustomerTaskVO taskVO) {
- // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉
- List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey());
- List<SysUser> userList = beforeNodeKey.stream().map(key -> {
- List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery()
- .processInstanceId(taskVO.getProcessInsId())
- .taskDefinitionKey(key)
- .orderByHistoricTaskInstanceStartTime()
- .desc()
- .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉�
- if (!CollectionUtils.isEmpty(historicTaskInstances)) {
- // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜�
- String assignee = historicTaskInstances.get(0).getAssignee();
- SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee));
- return startUser;
- } else {
- return null;
- }
- }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList());
- if (CollectionUtils.isEmpty(userList)) {
- taskVO.setPromoterName("鏆傛棤");
- taskVO.setPromoterUnitName("鏆傛棤");
- } else {
- taskVO.setPromoterId(userList.stream().map(user -> {
- return user.getUserId() + "";
- }).collect(Collectors.joining("銆�")));
- taskVO.setPromoterName(userList.stream().map(user -> {
- return this.getUserShowName(user);
- }).collect(Collectors.joining("銆�")));
- taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> {
- return user.getDept().getDeptId() + "";
- }).collect(Collectors.joining("銆�")));
- taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> {
- return user.getDept().getDeptName() + "";
- }).collect(Collectors.joining("銆�")));
- }
+// // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉
+// List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey());
+// List<SysUser> userList = beforeNodeKey.stream().map(key -> {
+// List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery()
+// .processInstanceId(taskVO.getProcessInsId())
+// .taskDefinitionKey(key)
+// .orderByHistoricTaskInstanceStartTime()
+// .desc()
+// .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉�
+// if (!CollectionUtils.isEmpty(historicTaskInstances)) {
+// // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜�
+// String assignee = historicTaskInstances.get(0).getAssignee();
+// SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee));
+// return startUser;
+// } else {
+// return null;
+// }
+// }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList());
+// if (CollectionUtils.isEmpty(userList)) {
+// taskVO.setPromoterName("鏆傛棤");
+// taskVO.setPromoterUnitName("鏆傛棤");
+// } else {
+// taskVO.setPromoterId(userList.stream().map(user -> {
+// return user.getUserId() + "";
+// }).collect(Collectors.joining("銆�")));
+// taskVO.setPromoterName(userList.stream().map(user -> {
+// return this.getUserShowName(user);
+// }).collect(Collectors.joining("銆�")));
+// taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> {
+// return user.getDept().getDeptId() + "";
+// }).collect(Collectors.joining("銆�")));
+// taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> {
+// return user.getDept().getDeptName() + "";
+// }).collect(Collectors.joining("銆�")));
+// }
}
/**
--
Gitblit v1.8.0