From 6caf0eee972894014cf6c6900b0d68f60a488809 Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 7 Mar 2023 18:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=95=B0=E6=8D=AE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E5=8D=95=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/plugin/config/TaskConfig.java | 2 +- .../service/impl/HomePageServiceImpl.java | 205 +++++++++++------- .../controller/DataBaseController.java | 4 +- .../service/impl/DataBaseServiceImpl.java | 4 +- .../task/controller/TaskInfoController.java | 9 +- .../controller/WorkOrderController.java | 2 +- .../operation/workorder/entity/WorkOrder.java | 2 +- .../workorder/service/IWorkOrderService.java | 2 +- .../service/impl/WorkOrderServiceImpl.java | 48 ++-- .../impl/AutoStartModelServiceImpl.java | 12 +- 10 files changed, 178 insertions(+), 112 deletions(-) diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java index cb91e15..b876518 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java @@ -74,7 +74,7 @@ public class TaskConfig { workOrder.setType(autoStartModel.getType()); workOrder.setTenantId(autoStartModel.getTenantId()); workOrder.setUploadRecord(autoStartModel.getUploadRecord()); - workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime().toString()); + workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime()); //新增 workOrderService.save(workOrder); //修改nextFlag = 1,表示已经生成新工单了 diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java index 066045c..41aaf54 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java @@ -3,6 +3,7 @@ package org.springblade.plugin.homepage.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.shaded.com.google.gson.JsonObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import org.apache.commons.lang.StringUtils; @@ -23,6 +24,8 @@ import org.springblade.core.tool.utils.StringUtil; import org.springblade.plugin.homepage.enumutil.TaskTypeColorEnum; import org.springblade.plugin.homepage.enumutil.WorkingStatusEnum; import org.springblade.plugin.homepage.service.IHomePageService; +import org.springblade.plugin.operation.workorder.entity.WorkOrder; +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.user.cache.UserCache; @@ -31,6 +34,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.AsyncResult; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDate; @@ -49,8 +53,7 @@ public class HomePageServiceImpl implements IHomePageService { private final TaskService taskService; private final HistoryService historyService; private final RuntimeService runtimeService; - - + private final IWorkOrderService workOrderService; /** @@ -86,15 +89,15 @@ public class HomePageServiceImpl implements IHomePageService { //2.我的到期提醒 int expireNum = 0; - for(Task task : listNeedDo){ + for (Task task : listNeedDo) { String executionId = task.getExecutionId(); System.out.println("executionid--" + executionId); Map variables = runtimeService.getVariables(task.getExecutionId()); Date qiwangwanchengshijian = DateUtil.parse(variables.get("qiwangwanchengshijian").toString(), "yyyy-MM-dd HH:mm:ss"); Duration between = DateUtil.between(qiwangwanchengshijian, DateUtil.now()); - if(!between.isNegative()){ //between.isNegative() true ,现在时间小于任务结束时间,false消灾时间大于任务结束时间 - expireNum ++; + if (!between.isNegative()) { //between.isNegative() true ,现在时间小于任务结束时间,false消灾时间大于任务结束时间 + expireNum++; } } result.put("expireNum", expireNum); @@ -109,22 +112,22 @@ public class HomePageServiceImpl implements IHomePageService { //3.2.遍历流程,得到流程发起人,只要流程发起人的dept在当前用户所属的dept列表中,就计算一次 int todayAddNum = 0; List thisDayStartProcessInstanceList = thisDayStartProcessInstanceQuery.list(); - for(HistoricProcessInstance his : thisDayStartProcessInstanceList){ + for (HistoricProcessInstance his : thisDayStartProcessInstanceList) { //获取流程发起人 String startUserId = his.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { List startUserDepts = Func.toLongList(user.getDeptId()); - for(Long startUserDept : startUserDepts){ - if(nowUserDepts.contains(startUserDept)){ - todayAddNum ++; + for (Long startUserDept : startUserDepts) { + if (nowUserDepts.contains(startUserDept)) { + todayAddNum++; break; } } } } - result.put("todayAddNum" , todayAddNum); + result.put("todayAddNum", todayAddNum); //4.与我相关的今日完成 //4.1 获取今日完成的流程 @@ -134,15 +137,15 @@ public class HomePageServiceImpl implements IHomePageService { //4.2 遍历流程,得到流程发起人,只要流程发起人的dept在当前用户所属的dept列表中,就计算一次 int todayFinishNum = 0; List thisDayEndProcessInstanceList = thisDayEndProcessInstanceQuery.list(); - for(HistoricProcessInstance his : thisDayEndProcessInstanceList){ + for (HistoricProcessInstance his : thisDayEndProcessInstanceList) { //获取流程发起人 String startUserId = his.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { List startUserDepts = Func.toLongList(user.getDeptId()); - for(Long startUserDept : startUserDepts){ - if(nowUserDepts.contains(startUserDept)){ - todayFinishNum ++; + for (Long startUserDept : startUserDepts) { + if (nowUserDepts.contains(startUserDept)) { + todayFinishNum++; break; } } @@ -155,7 +158,7 @@ public class HomePageServiceImpl implements IHomePageService { @Async @Override - public Future expireNum(String taskUser,String taskGroup,String deptId,String tenantId){ + public Future expireNum(String taskUser, String taskGroup, String deptId, String tenantId) { List nowUserDepts = Func.toLongList(deptId); //我的待办 @@ -173,7 +176,7 @@ public class HomePageServiceImpl implements IHomePageService { //我的到期提醒 int expireNum = 0; - for(Task task : listNeedDo){ + for (Task task : listNeedDo) { String executionId = task.getExecutionId(); Map variables = runtimeService.getVariables(task.getExecutionId()); try { @@ -182,19 +185,26 @@ public class HomePageServiceImpl implements IHomePageService { if (!between.isNegative()) { //between.isNegative() true ,现在时间小于任务结束时间,false消灾时间大于任务结束时间 expireNum++; } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); continue; } } - return new AsyncResult<>(expireNum); + // 工单记录待实施 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getIsFinish, 0); + wrapper.ge(WorkOrder::getExpectedCompletionTime, new Date()); + int count = workOrderService.count(wrapper); + + return new AsyncResult<>(expireNum + count); } @Async @Override - public Future needDoNum(String taskUser,String taskGroup,String deptId,String tenantId){ + public Future needDoNum(String taskUser, String taskGroup, String deptId, String tenantId) { List nowUserDepts = Func.toLongList(deptId); //1.我的待办 @@ -208,12 +218,19 @@ public class HomePageServiceImpl implements IHomePageService { ; List listNeedDo = taskQuery.list(); - return new AsyncResult<>(listNeedDo.size()); + + // 工单记录待实施 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getIsFinish, 0); + int count = workOrderService.count(wrapper); + + return new AsyncResult<>(listNeedDo.size() + count); } @Async @Override - public Future todayAddNum(String deptId,String tenantId){ + public Future todayAddNum(String deptId, String tenantId) { List nowUserDepts = Func.toLongList(deptId); @@ -227,27 +244,34 @@ public class HomePageServiceImpl implements IHomePageService { //3.2.遍历流程,得到流程发起人,只要流程发起人的dept在当前用户所属的dept列表中,就计算一次 int todayAddNum = 0; List thisDayStartProcessInstanceList = thisDayStartProcessInstanceQuery.list(); - for(HistoricProcessInstance his : thisDayStartProcessInstanceList){ + for (HistoricProcessInstance his : thisDayStartProcessInstanceList) { //获取流程发起人 String startUserId = his.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { List startUserDepts = Func.toLongList(user.getDeptId()); - for(Long startUserDept : startUserDepts){ - if(nowUserDepts.contains(startUserDept)){ - todayAddNum ++; + for (Long startUserDept : startUserDepts) { + if (nowUserDepts.contains(startUserDept)) { + todayAddNum++; break; } } } } - return new AsyncResult<>(todayAddNum); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getIsFinish, 0); + wrapper.between(WorkOrder::getCreateTime, startTime(), endTime()); + int count = workOrderService.count(wrapper); + + return new AsyncResult<>(todayAddNum + count); } @Async @Override - public Future todayFinishNum(String deptId,String tenantId){ + public Future todayFinishNum(String deptId, String tenantId) { List nowUserDepts = Func.toLongList(deptId); //4.与我相关的今日完成 @@ -258,42 +282,70 @@ public class HomePageServiceImpl implements IHomePageService { //4.2 遍历流程,得到流程发起人,只要流程发起人的dept在当前用户所属的dept列表中,就计算一次 int todayFinishNum = 0; List thisDayEndProcessInstanceList = thisDayEndProcessInstanceQuery.list(); - for(HistoricProcessInstance his : thisDayEndProcessInstanceList){ + for (HistoricProcessInstance his : thisDayEndProcessInstanceList) { //获取流程发起人 String startUserId = his.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { List startUserDepts = Func.toLongList(user.getDeptId()); - for(Long startUserDept : startUserDepts){ - if(nowUserDepts.contains(startUserDept)){ - todayFinishNum ++; + for (Long startUserDept : startUserDepts) { + if (nowUserDepts.contains(startUserDept)) { + todayFinishNum++; break; } } } } - return new AsyncResult<>(todayFinishNum); + + + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getIsFinish, 1); + wrapper.between(WorkOrder::getFinishTime, startTime(), endTime()); + int count = workOrderService.count(wrapper); + + return new AsyncResult<>(todayFinishNum + count); + } + + private Date startTime() { + Calendar todayStart = Calendar.getInstance(); + todayStart.set(Calendar.SECOND, 0); + todayStart.set(Calendar.MINUTE, 0); + todayStart.set(Calendar.HOUR_OF_DAY, 0); + todayStart.set(Calendar.MILLISECOND, 0); + return todayStart.getTime(); + } + + private Date endTime() { + Calendar todayEnd = Calendar.getInstance(); + todayEnd.set(Calendar.SECOND, 59); + todayEnd.set(Calendar.MINUTE, 59); + todayEnd.set(Calendar.HOUR_OF_DAY, 23); + todayEnd.set(Calendar.MILLISECOND, 999); + return todayEnd.getTime(); } /** * 近一年与当前用户所在部门相关的新增工单和完成工单数量,按照月份进行统计 + * * @return */ @Override - public R flowListMonth(){ + public R flowListMonth() { JSONObject result = new JSONObject(); Date start = DateUtil.minusYears(DateUtil.now(), 1); String[] xData = new String[12]; - Map mapMonthAdd = new HashMap<>(); - Map mapMonthFinish = new HashMap<>(); - for(int i = 0;i < 12; i++){ + Map mapMonthAdd = new HashMap<>(); + Map mapMonthFinish = new HashMap<>(); + for (int i = 0; i < 12; i++) { Date date = DateUtil.plusMonths(start, i + 1); String format = DateUtil.format(date, "yyyy-MM"); xData[i] = format; - mapMonthAdd.put(format,0); - mapMonthFinish.put(format,0); + mapMonthAdd.put(format, 0); + mapMonthFinish.put(format, 0); } @@ -305,7 +357,7 @@ public class HomePageServiceImpl implements IHomePageService { List historicProcessInstanceStartList = historyService.createHistoricProcessInstanceQuery().processInstanceTenantId(WfTaskUtil.getTenantId()) .startedAfter(DateUtil.plusYears(DateUtil.now(), -1)) .startedBefore(DateUtil.now()).orderByProcessInstanceStartTime().asc().list(); -System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); + System.out.println("上一年1-" + DateUtil.plusYears(DateUtil.now(), -1)); //过滤出发起人所在部门与当前用户所在部门一致的工单 List collect1 = historicProcessInstanceStartList.stream().filter(process -> { String startUserId = process.getStartUserId(); @@ -320,13 +372,13 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); return false; }).collect(Collectors.toList()); - collect1.forEach(his ->{ + collect1.forEach(his -> { Date startTime = his.getStartTime(); String format = DateUtil.format(startTime, "yyyy-MM"); if (mapMonthAdd.containsKey(format)) { int num = mapMonthAdd.get(format); - mapMonthAdd.put(format,num + 1); + mapMonthAdd.put(format, num + 1); } }); @@ -348,18 +400,18 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); } return false; }).collect(Collectors.toList()); - collect2.forEach(his ->{ + collect2.forEach(his -> { Date startTime = his.getStartTime(); String format = DateUtil.format(startTime, "yyyy-MM"); if (mapMonthFinish.containsKey(format)) { int num = mapMonthFinish.get(format); - mapMonthFinish.put(format,num + 1); + mapMonthFinish.put(format, num + 1); } }); int[] monthAddNum = new int[12]; int[] monthFinishNum = new int[12]; - for(int j = 0; j< 12; j++){ + for (int j = 0; j < 12; j++) { monthAddNum[j] = mapMonthAdd.get(xData[j]); monthFinishNum[j] = mapMonthFinish.get(xData[j]); } @@ -375,7 +427,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); * 种类统计,近一个月的 */ @Override - public R flowListType(){ + public R flowListType() { JSONArray result = new JSONArray(); //当前获取登录人deptid String deptId = AuthUtil.getDeptId(); @@ -392,7 +444,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); process -> { String startUserId = process.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { String userDept = user.getDeptId(); List userDeptList = Func.toLongList(userDept); for (Long l : userDeptList) { @@ -405,29 +457,29 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); } ).collect(Collectors.toList()); - LinkedHashMap map = new LinkedHashMap<>(); + LinkedHashMap map = new LinkedHashMap<>(); //根据工作流查询任务种类 - collect.stream().forEach(his ->{ + collect.stream().forEach(his -> { HistoricVariableInstance renwufulei = historyService.createHistoricVariableInstanceQuery().processInstanceId(his.getId()) .variableName("renwufulei").singleResult(); System.out.println("renwu renwufulei--" + renwufulei); - if(!Func.isEmpty(renwufulei)){ - if(renwufulei.getValue() != null){ + if (!Func.isEmpty(renwufulei)) { + if (renwufulei.getValue() != null) { Object renwuzhongleiValue = renwufulei.getValue(); - map.put(String.valueOf(renwuzhongleiValue), map.get(String.valueOf(renwuzhongleiValue)) == null ? 1: map.get(String.valueOf(renwuzhongleiValue)) + 1); + map.put(String.valueOf(renwuzhongleiValue), map.get(String.valueOf(renwuzhongleiValue)) == null ? 1 : map.get(String.valueOf(renwuzhongleiValue)) + 1); } } }); Iterator> iterator = map.entrySet().iterator(); - while(iterator.hasNext()){ + while (iterator.hasNext()) { Map.Entry next = iterator.next(); JSONObject jsonByDict = new JSONObject(); jsonByDict.put("name", DictBizCache.getById(Long.parseLong(next.getKey())).getDictValue()); - jsonByDict.put("value",next.getValue()); + jsonByDict.put("value", next.getValue()); JSONObject color = new JSONObject(); color.put("color", TaskTypeColorEnum.getAllToMap().get(next.getKey())); jsonByDict.put("itemStyle", color); @@ -440,10 +492,11 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); /** * 流程状态统计 + * * @return */ @Override - public R flowStatus(){ + public R flowStatus() { JSONArray result = new JSONArray(); //当前获取登录人deptid String deptId = AuthUtil.getDeptId(); @@ -460,7 +513,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); process -> { String startUserId = process.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { String userDept = user.getDeptId(); List userDeptList = Func.toLongList(userDept); for (Long l : userDeptList) { @@ -473,16 +526,16 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); } ).collect(Collectors.toList()); - Map map = new HashMap<>(); - collect.forEach(hi ->{ + Map map = new HashMap<>(); + collect.forEach(hi -> { HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().processInstanceId(hi.getId()).unfinished().singleResult(); - if(historicActivityInstance == null){ + if (historicActivityInstance == null) { map.put("已完成", map.get("已完成") == null ? 1 : map.get("已完成") + 1); - }else{ + } else { String activityName = historicActivityInstance.getActivityName(); - if(StringUtils.contains(historicActivityInstance.getActivityName(), "审批")){ + if (StringUtils.contains(historicActivityInstance.getActivityName(), "审批")) { map.put("审批中", map.get("审批中") == null ? 1 : map.get("审批中") + 1); - }else{ + } else { map.put("进行中", map.get("进行中") == null ? 1 : map.get("进行中") + 1); } // map.put(historicActivityInstance.getActivityName(), map.get(historicActivityInstance.getActivityName()) == null ? 1 : map.get(historicActivityInstance.getActivityName()) + 1); @@ -490,14 +543,14 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); }); Iterator> iterator = map.entrySet().iterator(); - while(iterator.hasNext()){ + while (iterator.hasNext()) { Map.Entry next = iterator.next(); JSONObject jsonObject = new JSONObject(); - jsonObject.put("name",next.getKey()); - jsonObject.put("value",next.getValue()); + jsonObject.put("name", next.getKey()); + jsonObject.put("value", next.getValue()); JSONObject itemStyle = new JSONObject(); itemStyle.put("color", WorkingStatusEnum.valueOf(next.getKey()).getColorCode()); - jsonObject.put("itemStyle",itemStyle); + jsonObject.put("itemStyle", itemStyle); result.add(jsonObject); } return R.data(result); @@ -507,7 +560,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); * 任务耗时 */ @Override - public R flowTakeTime(){ + public R flowTakeTime() { JSONObject result = new JSONObject(); //当前获取登录人deptid String deptId = AuthUtil.getDeptId(); @@ -524,7 +577,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); process -> { String startUserId = process.getStartUserId(); User user = UserCache.getUser(Long.parseLong(startUserId)); - if(!Func.isEmpty(user)){ + if (!Func.isEmpty(user)) { String userDept = user.getDeptId(); List userDeptList = Func.toLongList(userDept); for (Long l : userDeptList) { @@ -537,13 +590,13 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); } ).collect(Collectors.toList()); - HashMap map = new HashMap<>(); + HashMap map = new HashMap<>(); //获取流程的耗时毫秒数并计算成天数放入到map - collect.forEach(hi ->{ - if(!Func.isEmpty(hi.getDurationInMillis())){ + collect.forEach(hi -> { + if (!Func.isEmpty(hi.getDurationInMillis())) { Long durationInMillis = hi.getDurationInMillis(); - Integer days = (int)(durationInMillis/(1000 * 60 * 60 * 24) + 1); + Integer days = (int) (durationInMillis / (1000 * 60 * 60 * 24) + 1); map.put(days, map.get(days) == null ? 1 : map.get(days) + 1); } @@ -554,7 +607,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1)); List XData = new ArrayList<>(); List YData = new ArrayList<>(); - while(iterator.hasNext()){ + while (iterator.hasNext()) { Map.Entry next = iterator.next(); XData.add(next.getKey()); YData.add(next.getValue()); diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java index c9897cf..642838c 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java @@ -188,13 +188,13 @@ public class DataBaseController extends BladeController { try { // 4、将临时文件转存到指定位置 - file.transferTo(new File(basePath + "//" + fileName)); + file.transferTo(new File(basePath + "/" + fileName)); } catch (IOException e) { e.printStackTrace(); } UploadReturn uploadReturn = new UploadReturn(); uploadReturn.setName(originalFilename); - uploadReturn.setPath(basePath + "//" + fileName); + uploadReturn.setPath(basePath + "/" + fileName); uploadReturn.setCreateUser(AuthUtil.getNickName()); uploadReturn.setCreateTime(new Date()); return R.data(uploadReturn); diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java index cee0d5c..716b381 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java @@ -21,6 +21,7 @@ import org.springblade.system.feign.ISysClient; import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; @@ -42,10 +43,11 @@ public class DataBaseServiceImpl extends BaseServiceImpl excelList = ExcelUtil.read(file, DatabaseExcel.class); if (CollectionUtils.isNotEmpty(excelList)) { - List dataTableList = new ArrayList<>(); +// List dataTableList = new ArrayList<>(); excelList.forEach(item -> { Integer databaseType = Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType())); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java index a6ffcf0..562fff4 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java @@ -144,10 +144,13 @@ public class TaskInfoController extends BladeController { @GetMapping("/taskTypeData") public R taskTypeData(String parentId) { QueryWrapper wrapper = new QueryWrapper<>(); - if (StringUtils.isNotBlank(parentId)) { +// if (StringUtils.isNotBlank(parentId)) { wrapper.eq("task_parent_id", parentId); - } else { - wrapper.select("DISTINCT task_type_name"); +// } else { +// wrapper.select("DISTINCT task_type_name"); +// } + if (!"运维公司".equals(AuthUtil.getUser().getRoleName())) { + wrapper.ne("task_level", 1625035000825049090L); } return R.data(taskInfoService.list(wrapper)); } 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 7476b33..4e49efe 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 @@ -65,7 +65,7 @@ public class WorkOrderController extends BladeController { * 我的待办 */ @GetMapping("/myToDo") - public R> myToDo(WorkOrder workOrder, Query query) { + public R> myToDo(WorkOrder workOrder, Query query) throws ParseException { return R.data(workOrderService.myToDo(workOrder, query)); } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java index 6d10c0a..1d6ff6e 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java @@ -72,7 +72,7 @@ public class WorkOrder extends TenantEntity { // 期望完成时间 // @TableField(exist = false) - private String expectedCompletionTime; + private Date expectedCompletionTime; @TableField(exist = false) private String taskId; diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java index 048f5ce..3e8728d 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java @@ -23,7 +23,7 @@ public interface IWorkOrderService extends BaseService { IPage> historyWorkOrder(WorkOrder workOrder, Query query); - IPage myToDo(WorkOrder workOrder, Query query); + IPage myToDo(WorkOrder workOrder, Query query) throws ParseException; void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException; 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 43013a9..850a213 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 @@ -1,6 +1,5 @@ package org.springblade.plugin.operation.workorder.service.impl; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.StringUtils; @@ -93,7 +92,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl myToDo(WorkOrder workOrder, Query query) { + public IPage myToDo(WorkOrder workOrder, Query query) throws ParseException { IPage page = new Page<>(); String taskUser = WfTaskUtil.getTaskUser(); @@ -109,9 +108,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize()); - List listNeedDo = taskQuery.list(); + List listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize()); +// List listNeedDo = taskQuery.list(); List workOrders = new ArrayList<>(); @@ -153,7 +153,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl objectPage = new Page<>(query.getCurrent() - (count / query.getSize()), query.getSize()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); wrapper.eq(WorkOrder::getIsFinish, 0); - List records = list(wrapper); - setAllName(records); + wrapper.orderByDesc(WorkOrder::getCreateTime); + IPage iPage = page(objectPage, wrapper); + + // 总条数 + page.setTotal(count + iPage.getTotal()); - workOrders.addAll(records); +// List records = list(wrapper); + List orders = iPage.getRecords(); + + setAllName(orders); + + workOrders.addAll(orders); // 任务父类 if (StringUtils.isNotBlank(workOrder.getTaskParentName())) { @@ -205,25 +215,16 @@ public class WorkOrderServiceImpl extends BaseServiceImpl (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); } - // 总条数 - page.setTotal(workOrders.size()); - - // 分页 - workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); - // 排序 workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList()); + // 分页 +// workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); + workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList()); + // 数据 page.setRecords(workOrders); - // 总条数 -// page.setTotal(taskService.createTaskQuery() -// .orderByTaskCreateTime() -// .desc() -// .taskTenantId(WfTaskUtil.getTenantId()) -// .active().taskCandidateOrAssigned(taskUser).count()); - // 当前页数 page.setCurrent(query.getCurrent()); @@ -233,7 +234,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl excels = new ArrayList<>(); List> workOrders = new ArrayList<>(); @@ -394,7 +395,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl