From 337d59ac972b957d726fda17da498eb990255618 Mon Sep 17 00:00:00 2001 From: litao Date: Fri, 19 Jan 2024 16:15:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=AE=9E=E6=96=BD=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../homepage/flowutil/TaskNodeUtil.java | 2 +- .../operation/webservice/WebServiceUtils.java | 9 - .../controller/WorkOrderController.java | 8 + .../service/impl/WorkOrderServiceImpl.java | 196 +++++++++++------- .../impl/AutoStartModelServiceImpl.java | 2 +- .../design/controller/WfFormController.java | 1 + .../service/impl/WfProcessService.java | 9 +- 7 files changed, 136 insertions(+), 91 deletions(-) diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/flowutil/TaskNodeUtil.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/flowutil/TaskNodeUtil.java index 2c8cc65..967fe2c 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/flowutil/TaskNodeUtil.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/flowutil/TaskNodeUtil.java @@ -15,7 +15,7 @@ public class TaskNodeUtil { //将运维公司指定为节点办理人 public String setCompanyToAssignee(DelegateExecution execution){ - System.out.println("tong过方法将运维公司指定为节点办理人"); +// System.out.println("tong过方法将运维公司指定为节点办理人"); String assignee = ""; Object yunweigongsi = execution.getVariable("yunweigongsi"); diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/webservice/WebServiceUtils.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/webservice/WebServiceUtils.java index 389cae9..c375300 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/webservice/WebServiceUtils.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/webservice/WebServiceUtils.java @@ -85,7 +85,6 @@ public class WebServiceUtils { String result = nodeList.item(0).getTextContent(); // 输出参数值 - System.out.println("============================================================================"); System.out.println("返回值:" + result); } catch (IOException | ParserConfigurationException | SAXException e) { e.printStackTrace(); @@ -96,21 +95,13 @@ public class WebServiceUtils { code.setTodealGuid("{" + UUID.randomUUID().toString() + "}"); code.setFileGuid("{" + UUID.randomUUID().toString() + "}"); code.setFlowGuid(""); -// code.setTitle("消息推送测试数据"); code.setDocType("2"); -// code.setReceiveLocalPerson("李建国"); -// code.setReceiveLocalPersonGuid("650390E8-3CE0-47C4-8D4B-5550060944D1"); -// code.setSendperson("市南区大数据发展中心大数据应用科"); -// code.setSendpersonGuid("9DEEE6C9-1419-47FF-B76D-4BF3753CC00A"); code.setTypeName("其他"); code.setKeyNumber(""); code.setIsout("1"); -// code.setUrl("http://10.133.191.105/#/plugin/workflow/process/todo"); code.setOpenFlag("1"); code.setIsReply("1"); code.setIsTop("0"); -// code.setFromExchangeCode("00020000000000000001"); -// code.setToExchangeCode("00020000000000000001"); code.setPollCode("20051"); return code; } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java index 43c0d88..2e0b608 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Query; @@ -166,4 +167,11 @@ public class WorkOrderController extends BladeController { return R.data(workOrderService.detail(id)); } + /** + * 工单记录删除 + */ + @PostMapping("/remove") + public R remove(@RequestParam String ids) { + return R.status(workOrderService.deleteLogic(Func.toLongList(ids))); + } } \ No newline at end of file diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java index 792d300..23caf0e 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.AllArgsConstructor; import org.flowable.engine.HistoryService; @@ -29,6 +30,7 @@ import org.springblade.plugin.operation.database.service.IModuleDatatableService import org.springblade.plugin.operation.system.entity.ProjectInfo; import org.springblade.plugin.operation.system.service.IModuleInfoService; import org.springblade.plugin.operation.system.service.IProjectInfoService; +import org.springblade.plugin.operation.task.entity.TaskInfo; import org.springblade.plugin.operation.task.service.ITaskInfoService; import org.springblade.plugin.operation.workorder.entity.WorkOrder; import org.springblade.plugin.operation.workorder.excel.OrderExcel; @@ -37,7 +39,10 @@ import org.springblade.plugin.operation.workorder.mapper.WorkOrderMapper; import org.springblade.plugin.operation.workorder.service.IWorkOrderService; import org.springblade.plugin.workflow.core.utils.WfTaskUtil; import org.springblade.system.cache.DictBizCache; +import org.springblade.system.cache.SysCache; import org.springblade.system.feign.ISysClient; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; import org.springframework.stereotype.Service; @@ -45,6 +50,9 @@ import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -96,11 +104,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl page = new Page<>(); String taskUser = WfTaskUtil.getTaskUser(); -// String taskGroup = WfTaskUtil.getCandidateGroup(); - //当前获取登录人deptid -// String deptId = AuthUtil.getDeptId(); -// List nowUserDepts = Func.toLongList(deptId); - TaskQuery taskQuery = taskService.createTaskQuery() .orderByTaskCreateTime() @@ -108,13 +111,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize()); List listNeedDo = taskQuery.list(); - List workOrders = new ArrayList<>(); +// List users = userClient.allUser().getData(); + List databases = dataBaseService.list(Wrappers.lambdaQuery().select(ProjectDatabase::getId, ProjectDatabase::getDatabaseProjectName)); + Map databaseMap = databases.stream().collect(Collectors.toMap(ProjectDatabase::getId, Function.identity())); + List workOrders = new ArrayList<>(); + Pattern pattern = Pattern.compile("[0-9]*"); for (Task task : listNeedDo) { HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); WorkOrder order = new WorkOrder(); @@ -129,25 +133,27 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Long.valueOf(task.getAssignee()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); order.setManagementName(variables.get("$guanlibumen").toString()); // 运维公司 - order.setMaintenanceCompanyName(userClient.userInfoById(Long.parseLong(variables.get("yunweigongsi").toString())).getData().getRealName()); - order.setApplyUserName(userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); + order.setMaintenanceCompanyName(UserCache.getUser(Long.parseLong(variables.get("yunweigongsi").toString())).getRealName()); +// order.setMaintenanceCompanyName(users.stream().filter(user -> Long.valueOf(variables.get("yunweigongsi").toString()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); + order.setApplyUserName(UserCache.getUser(Long.parseLong(historicProcessInstance.getStartUserId())).getRealName()); +// order.setApplyUserName(users.stream().filter(user -> Long.valueOf(historicProcessInstance.getStartUserId()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); if (task.getName().contains("审批")) { order.setApprovalStatus("审批中"); @@ -172,7 +178,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl objectPage = new Page<>(query.getCurrent() - (workOrders.size() / query.getSize()), query.getSize()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); wrapper.eq(WorkOrder::getIsFinish, 0); @@ -182,9 +187,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl records = list(wrapper); -// IPage iPage = page(objectPage, wrapper); -// List orders = iPage.getRecords(); - setAllName(records); workOrders.addAll(records); @@ -239,7 +241,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl databases = dataBaseService.list(Wrappers.lambdaQuery().select(ProjectDatabase::getId, ProjectDatabase::getDatabaseProjectName)); + Map databaseMap = databases.stream().collect(Collectors.toMap(ProjectDatabase::getId, Function.identity())); for (HistoricProcessInstance historicProcessInstance : list) { Map varMap = new HashMap<>(); List historicVars = historyService.createHistoricVariableInstanceQuery() @@ -459,24 +462,26 @@ public class WorkOrderServiceImpl extends BaseServiceImpl page = page(Condition.getPage(query), wrapper); @@ -550,24 +554,56 @@ public class WorkOrderServiceImpl extends BaseServiceImpl excels = new ArrayList<>(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (CollectionUtils.isNotEmpty(workOrderList)) { + // 数据库数据转map + List strings = workOrderList.stream().map(WorkOrder::getOperateSys).distinct().collect(Collectors.toList()); + List databases = dataBaseService.list(Wrappers.lambdaQuery() + .select(ProjectDatabase::getId, ProjectDatabase::getDatabaseProjectName) + .in(ProjectDatabase::getId, strings)); + Map databaseMap = databases.stream().collect(Collectors.toMap(ProjectDatabase::getId, Function.identity())); + + // 任务种类数据转map + List taskInfoIds = workOrderList.stream().map(WorkOrder::getTaskType).distinct().collect(Collectors.toList()); + List taskInfos = taskInfoService.list(Wrappers.lambdaQuery() + .select(TaskInfo::getId, TaskInfo::getTaskTypeName) + .in(TaskInfo::getId, taskInfoIds)); + Map taskInfoMap = taskInfos.stream().collect(Collectors.toMap(TaskInfo::getId, Function.identity())); + + Pattern pattern = Pattern.compile("[0-9]*"); + // 循环赋值 for (WorkOrder record : workOrderList) { OrderExcel excel = new OrderExcel(); - excel.setTaskType(taskInfoService.getById(record.getTaskType()).getTaskTypeName()); +// excel.setTaskType(taskInfoService.getById(record.getTaskType()).getTaskTypeName()); + excel.setTaskType(taskInfoMap.get(Long.parseLong(record.getTaskType())).getTaskTypeName()); excel.setTaskParent(DictBizCache.getById(Long.parseLong(record.getTaskParent())).getDictValue()); - ProjectDatabase byId = dataBaseService.getById(record.getOperateSys()); - if (StringUtils.isNotBlank(record.getOperateSys())) { +// if (StringUtils.isNotBlank(record.getOperateSys())) { +//// ProjectDatabase byId = dataBaseService.getById(record.getOperateSys()); +// ProjectDatabase byId = databaseMap.get(Long.parseLong(record.getOperateSys())); +// if (byId != null) { +// excel.setOperationModule(byId.getDatabaseProjectName()); +// } else { +// excel.setOperationModule(record.getOperateSys()); +// } +// } else { +// excel.setOperationModule("--"); +// } + + if (StringUtils.isNotBlank(record.getOperateSys()) && pattern.matcher(record.getOperateSys()).matches()) { +// ProjectDatabase byId = dataBaseService.getById(record.getOperateSys()); + ProjectDatabase byId = databaseMap.get(Long.parseLong(record.getOperateSys())); if (byId != null) { excel.setOperationModule(byId.getDatabaseProjectName()); - } else { - excel.setOperationModule(record.getOperateSys()); } } else { excel.setOperationModule("--"); } - excel.setDept(sysClient.getDept(Long.parseLong(record.getManagement())).getData().getDeptName()); + + excel.setDept(SysCache.getDept(Long.parseLong(record.getManagement())).getDeptName()); +// excel.setDept(sysClient.getDept(Long.parseLong(record.getManagement())).getData().getDeptName()); excel.setLevel(DictBizCache.getById(Long.parseLong(record.getTaskLevel())).getDictValue()); - excel.setCompany(userClient.userInfoById(Long.parseLong(record.getMaintenanceCompany())).getData().getName()); - excel.setSponsor(userClient.userInfoById(Long.parseLong(record.getApplyUser())).getData().getName()); + excel.setCompany(UserCache.getUser(Long.parseLong(record.getMaintenanceCompany())).getName()); +// excel.setCompany(userClient.userInfoById(Long.parseLong(record.getMaintenanceCompany())).getData().getName()); + excel.setSponsor(UserCache.getUser(Long.parseLong(record.getApplyUser())).getName()); +// excel.setSponsor(userClient.userInfoById(Long.parseLong(record.getApplyUser())).getData().getName()); if (record.getIsFinish() == 0) { excel.setApprovalStatus("待实施"); } else { @@ -600,26 +636,26 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> workOrders = new ArrayList<>(); if (CollectionUtils.isNotEmpty(list)) { +// List users = userClient.allUser().getData(); + List databases = dataBaseService.list(Wrappers.lambdaQuery().select(ProjectDatabase::getId, ProjectDatabase::getDatabaseProjectName)); + Map databaseMap = databases.stream().collect(Collectors.toMap(ProjectDatabase::getId, Function.identity())); + Pattern pattern = Pattern.compile("[0-9]*"); + for (HistoricProcessInstance historicProcessInstance : list) { Map varMap = new HashMap<>(); List historicVars = historyService.createHistoricVariableInstanceQuery() @@ -641,20 +682,24 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Long.valueOf(varMap.get("yunweigongsi").toString()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); Task task = taskService.createTaskQuery().processInstanceId(historicProcessInstance.getId()).singleResult(); if (task != null) { if (task.getAssignee() != null) { - varMap.put("currentResponsiblePerson", userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); + varMap.put("currentResponsiblePerson", UserCache.getUser(Long.parseLong(task.getAssignee())).getRealName()); +// varMap.put("currentResponsiblePerson", users.stream().filter(user -> Long.valueOf(task.getAssignee()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); } else { varMap.put("currentResponsiblePerson", "--"); } @@ -675,7 +720,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Long.valueOf(historicProcessInstance.getStartUserId()).equals(user.getId())).map(User::getRealName).findAny().orElse(null)); varMap.put("startDeptId", varMap.get("guanlibumen")); varMap.put("processInstanceId", historicProcessInstance.getId()); @@ -760,12 +806,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl