From 0c5ccceec4de03833e89cb0c79873b2998383a21 Mon Sep 17 00:00:00 2001 From: zty <1048209592@qq.com> Date: Wed, 21 Aug 2024 20:39:14 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AD=A3=E5=BA=A6=E5=AE=A1=E6=A0=B8A?= =?UTF-8?q?=E8=A1=A8=E6=B5=81=E8=BD=AC=E8=AE=B0=E5=BD=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8CB=E8=A1=A8=E6=B5=81=E8=BD=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProjectAssessmentIndicatorsController.java | 201 ++++++++++++++---- 1 file changed, 160 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectAssessmentIndicatorsController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectAssessmentIndicatorsController.java index bcccba0..60c536c 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectAssessmentIndicatorsController.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectAssessmentIndicatorsController.java @@ -29,6 +29,7 @@ import com.xqopen.kehui.util.ApiResponse; import com.xqopen.kehui.util.PageNoUtil; import com.xqopen.kehui.util.ResultListReqUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.list.TransformedList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -194,6 +195,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI if (!ObjectUtils.isEmpty(ext.get("businessNumber"))) { businessNumber = Integer.parseInt(String.valueOf(ext.get("businessNumber"))); } + map.put("businessNumber", businessNumber); map.put("userId", String.valueOf(userId)); switch (taskName) { case "季度审核填报": @@ -213,9 +215,15 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI case "部门主任评级": if ("0".equals(examine)) { map.put("isBusiness", true);//添加当前是部门主任的标记 - Object o = businessNumber == 3 ? map.put("taskName", "管理员审核") : map.put("taskName", "部门主任评级"); + if(businessNumber==3){ + map.put("taskName", "管理员审核"); + map.put("businessNumber", 0); + } + else{ + map.put("taskName", "部门主任评级"); + } +// Object o = businessNumber == 3 ? map.put("taskName", "管理员审核") : map.put("taskName", "部门主任评级"); // map.put("taskName","管理员审核"); - map.put("businessNumber", businessNumber); map.put("executor", ext.get("projectAdmin")); // examine(userId, "管理员审核", ext, "projectAdmin", projectInfo); } else if ("1".equals(examine)) { @@ -227,6 +235,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI case "管理员审核": // ext.put("adminSpyj", map.get("spyj")); // map.put("adminSpyj", map.get("spyj")); + map.put("businessNumber", 0); if ("0".equals(examine)) { map.put("taskName", "分管领导审核"); map.put("executor", ext.get("branchLeaders")); @@ -234,6 +243,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI } else if ("1".equals(examine)) { if (isOffice) { map.put("taskName", "部门主任评级"); + map.put("businessNumber", 0); // examine(userId, "部门主任评级", ext, "", projectInfo); } else { map.put("taskName", "季度审核填报"); @@ -243,6 +253,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI } break; case "分管领导审核": + map.put("businessNumber", 0); // map.put("branchLeadersSpyj", map.get("spyj")); // ext.put("branchLeadersSpyj", map.get("spyj")); if ("0".equals(examine)) { @@ -256,6 +267,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI } break; case "主要领导审核": + map.put("businessNumber", 0); // map.put("MainLeaderSpyj", map.get("spyj")); if ("0".equals(examine)) { // ext.put("MainLeaderSpyj", map.get("spyj")); @@ -358,10 +370,10 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI String examine = String.valueOf(map.get("examine")); String spyj = String.valueOf(map.get("spyj")); - FlowsRecordResp quarterRecord=new FlowsRecordResp(); - List ls=new ArrayList<>(); - FlowsRecordList taskItemsList=new FlowsRecordList(); - List taskItems=new ArrayList<>(); + FlowsRecordResp quarterRecord = new FlowsRecordResp(); + List ls = new ArrayList<>(); + FlowsRecordList taskItemsList = new FlowsRecordList(); + List taskItems = new ArrayList<>(); if (!"部门主任评级".equals(taskName)) { for (int i = 0; i < list.size(); i++) { @@ -369,49 +381,81 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI JSONObject ext = indicators.getExt(); //流转 - if(ext.containsKey("quarterRecord")){ + if (!"3".equals(map.get("businessNumber").toString())) {//如果不是B表(办公室)走普通流程 + if (ext.containsKey("quarterRecord")) { + quarterRecord = ((JSONObject) ext.get("quarterRecord")).toJavaObject(FlowsRecordResp.class); + ls = quarterRecord.getLs(); + taskItemsList = ls.get(0); + taskItems = taskItemsList.getTaskItems(); + Collections.reverse(taskItems); + FlowsTaskItem taskItem = taskItems.get(taskItems.size() - 1); + taskItem.setDueDate(new Date()); + taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else taskItem.setActionReason(spyj); + taskItems.set(taskItems.size() - 1, taskItem); + if (!"流程结束".equals(taskName)) { + FlowsTaskItem taskItem1 = new FlowsTaskItem(); + taskItem1.setNodeName(taskName); + taskItem1.setAssigneeId(String.valueOf(map.get("executor"))); + taskItem1.setAssigneeName(getPersonalByUserLogin(Long.parseLong(String.valueOf(map.get("executor")))).getPersonName()); + taskItems.add(taskItem1); + } + Collections.reverse(taskItems); + taskItemsList.setTaskItems(taskItems); + ls.set(0, taskItemsList); + quarterRecord.setLs(ls); + } + else { + FlowsTaskItem taskItem = new FlowsTaskItem(); + taskItem.setDueDate(new Date()); + taskItem.setAssigneeId(userId); + taskItem.setAssigneeName(getPersonalByUserLogin(Long.parseLong(ext.getString("executor"))).getPersonName()); + taskItem.setNodeName(ext.getString("taskName")); + taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else taskItem.setActionReason(String.valueOf(map.get("spyj"))); + taskItems.add(taskItem); + FlowsTaskItem taskItem1 = new FlowsTaskItem(); + taskItem1.setNodeName(taskName); + taskItem1.setAssigneeId(String.valueOf(map.get("executor"))); + taskItem1.setAssigneeName(getPersonalByUserLogin(Long.parseLong(String.valueOf(map.get("executor")))).getPersonName()); + taskItems.add(taskItem1); + Collections.reverse(taskItems);//倒转 + taskItemsList.setTaskItems(taskItems); + ls.add(taskItemsList); + quarterRecord.setLs(ls); + } + } else { quarterRecord = ((JSONObject) ext.get("quarterRecord")).toJavaObject(FlowsRecordResp.class); ls = quarterRecord.getLs(); taskItemsList = ls.get(0); taskItems = taskItemsList.getTaskItems(); Collections.reverse(taskItems); - FlowsTaskItem taskItem = taskItems.get(taskItems.size()-1); - taskItem.setDueDate(new Date()); - taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); - if (StringUtils.isEmpty(spyj) ||"null".equals(spyj)) {//审批意见 - taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); - } else taskItem.setActionReason(spyj); - taskItems.set(taskItems.size() - 1, taskItem); - if(!"流程结束".equals(taskName)){ - FlowsTaskItem taskItem1 = new FlowsTaskItem(); - taskItem1.setNodeName(taskName); - taskItem1.setAssigneeName(getPersonalByUserLogin(Long.parseLong(String.valueOf(map.get("executor")))).getPersonName()); - taskItems.add(taskItem1); - } + int fromIndex = taskItems.size() - 4; + List flowsTaskItems = taskItems.subList(fromIndex, taskItems.size());//四个主任 + flowsTaskItems.forEach(a -> { + if (userId.equals(a.getAssigneeId())) {//判断当前是哪个主任执行任务 + a.setDueDate(new Date()); + a.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + a.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else a.setActionReason(spyj); + } + }); + FlowsTaskItem taskItem = new FlowsTaskItem(); + taskItem.setNodeName(taskName); + taskItem.setAssigneeId(String.valueOf(map.get("executor"))); + taskItem.setAssigneeName(getPersonalByUserLogin(Long.parseLong(String.valueOf(map.get("executor")))).getPersonName()); + taskItems.add(taskItem); Collections.reverse(taskItems); taskItemsList.setTaskItems(taskItems); ls.set(0, taskItemsList); quarterRecord.setLs(ls); - }else { - FlowsTaskItem taskItem = new FlowsTaskItem(); - taskItem.setDueDate(new Date()); - taskItem.setAssigneeName(getPersonalByUserLogin(Long.parseLong(ext.getString("executor"))).getPersonName()); - taskItem.setNodeName(ext.getString("taskName")); - taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); - if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 - taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); - } else taskItem.setActionReason(String.valueOf(map.get("spyj"))); - taskItems.add(taskItem); - FlowsTaskItem taskItem1 = new FlowsTaskItem(); - taskItem1.setNodeName(taskName); - taskItem1.setAssigneeName(getPersonalByUserLogin(Long.parseLong(String.valueOf(map.get("executor")))).getPersonName()); - taskItems.add(taskItem1); - Collections.reverse(taskItems);//倒转 - taskItemsList.setTaskItems(taskItems); - ls.add(taskItemsList); - quarterRecord.setLs(ls); } - ext.put("quarterRecord",quarterRecord); + ext.put("quarterRecord", quarterRecord); ext.put("executor", map.get("executor")); ext.put("taskName", taskName); @@ -430,9 +474,9 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI } } boolean isOffice = (boolean) map.get("isOffice"); - if(isOffice & "管理员审核".equals(taskName)){ + if (isOffice & "管理员审核".equals(taskName)) { if (!ObjectUtils.isEmpty(ext.get("businessNumber")) & "3".equals(String.valueOf(map.get("businessNumber")))) { - if(!str.contains(String.valueOf(userId))){ + if (!str.contains(String.valueOf(userId))) { historyExecutor = str + "," + userId; ext.put("historyExecutor", historyExecutor); } @@ -474,6 +518,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI userLoginEntityWrapper.in("userinfo_id", longs); userLoginEntityWrapper.setSqlSelect("string_agg(id_::text,',')"); String executor = String.valueOf(userLoginService.selectObj(userLoginEntityWrapper)); + String[] executorList = executor.split(","); boolean isBusiness = false; if (!ObjectUtils.isEmpty(map.get("isBusiness"))) { isBusiness = (boolean) map.get("isBusiness"); @@ -496,6 +541,79 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI if (!StringUtils.isEmpty(historyExecutor) && !historyExecutor.contains(userId)) { ext.put("historyExecutor", historyExecutor + "," + userId); //历史委托 } + + if (businessNumber == 0) { + quarterRecord = new FlowsRecordResp(); + ls = new ArrayList<>(); + taskItems = new ArrayList<>(); + taskItemsList = new FlowsRecordList(); + if (ext.containsKey("quarterRecord")) { + quarterRecord = ((JSONObject) ext.get("quarterRecord")).toJavaObject(FlowsRecordResp.class); + ls = quarterRecord.getLs(); + taskItemsList = ls.get(0); + taskItems = taskItemsList.getTaskItems(); + Collections.reverse(taskItems); + FlowsTaskItem taskItem = taskItems.get(taskItems.size() - 1); + taskItem.setDueDate(new Date()); + taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else taskItem.setActionReason(spyj); + taskItems.set(taskItems.size()-1,taskItem); + } + else{ + FlowsTaskItem taskItem = new FlowsTaskItem(); + taskItem.setDueDate(new Date()); + taskItem.setNodeName(ext.getString("taskName")); + taskItem.setAssigneeId(userId); + taskItem.setAssigneeName(getPersonalByUserLogin(Long.valueOf(userId)).getPersonName()); + taskItem.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + taskItem.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else taskItem.setActionReason(spyj); + taskItems.add(taskItem); + } + //添加部门数据 + for (int j = 0; j < executorList.length; j++) { + FlowsTaskItem taskItem1 = new FlowsTaskItem(); + taskItem1.setNodeName(taskName); + taskItem1.setAssigneeId(executorList[j]); + taskItem1.setAssigneeName(getPersonalByUserLogin(Long.parseLong(executorList[j])).getPersonName()); + taskItems.add(taskItem1); + } + Collections.reverse(taskItems); + taskItemsList.setTaskItems(taskItems); + if (ext.containsKey("quarterRecord")) { + ls.set(0, taskItemsList); + } else { + ls.add(taskItemsList); + } + quarterRecord.setLs(ls); + ext.put("quarterRecord", quarterRecord); + + } else { + quarterRecord = ((JSONObject) ext.get("quarterRecord")).toJavaObject(FlowsRecordResp.class); + ls = quarterRecord.getLs(); + taskItemsList = ls.get(0); + taskItems = taskItemsList.getTaskItems(); + Collections.reverse(taskItems); + int fromIndex = taskItems.size() - 4; + List flowsTaskItems = taskItems.subList(fromIndex, taskItems.size());//四个主任 + flowsTaskItems.forEach(a -> { + if (userId.equals(a.getAssigneeId())) {//判断当前是哪个主任执行任务 + a.setDueDate(new Date()); + a.setActionName("0".equals(examine) ? "同意" : "驳回"); + if (StringUtils.isEmpty(spyj) || "null".equals(spyj)) {//审批意见 + a.setActionReason("0".equals(examine) ? "同意" : "驳回"); + } else a.setActionReason(spyj); + } + }); + Collections.reverse(taskItems); + taskItemsList.setTaskItems(taskItems); + ls.set(0, taskItemsList); + quarterRecord.setLs(ls); + ext.put("quarterRecord", quarterRecord); + } ext.put("taskName", map.get("taskName")); ext.put("businessNumber", businessNumber); ext.put("executor", executor); @@ -516,6 +634,7 @@ public class ProjectAssessmentIndicatorsController implements ProjectAssessmentI } return systemUserLogin; } + /** * 通过账号id拿到人事对象 *