diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java index 32e1ea1..c01f4b8 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java @@ -19,6 +19,7 @@ import java.util.concurrent.Future; /** * 首页 + * * @Description * @Author ytl * @Date 2023/2/14 0014 15:54 @@ -42,22 +43,22 @@ public class HomePageController extends BladeController { @GetMapping("/aboutMy") @ApiOperationSupport(order = 1) @ApiOperation(value = "我的相关", notes = "首页的“到期提醒”、“我的待办”、“今日新增”、“今日完成”的统计") - public R aboutMy() throws Exception{ + public R aboutMy() throws Exception { //当前获取登录人deptid String deptId = AuthUtil.getDeptId(); String taskUser = WfTaskUtil.getTaskUser(); String taskGroup = WfTaskUtil.getCandidateGroup(); String tenantId = WfTaskUtil.getTenantId(); - Future expireNum = homePageService.expireNum(taskUser,taskGroup,deptId,tenantId); - Future needDoNum = homePageService.needDoNum(taskUser,taskGroup,deptId,tenantId); - Future todayAddNum = homePageService.todayAddNum(deptId,tenantId); - Future todayFinishNum = homePageService.todayFinishNum(deptId,tenantId); + Future expireNum = homePageService.expireNum(taskUser, taskGroup, deptId, tenantId); + Future needDoNum = homePageService.needDoNum(taskUser, taskGroup, deptId, tenantId); + Future todayAddNum = homePageService.todayAddNum(deptId, tenantId, taskUser); + Future todayFinishNum = homePageService.todayFinishNum(deptId, tenantId, taskUser); JSONObject result = new JSONObject(); result.put("needDoNum", needDoNum.get()); result.put("expireNum", expireNum.get()); - result.put("todayAddNum" , todayAddNum.get()); + result.put("todayAddNum", todayAddNum.get()); result.put("todayFinishNum", todayFinishNum.get()); return R.data(result); @@ -82,7 +83,7 @@ public class HomePageController extends BladeController { @GetMapping("/flowListType") @ApiOperationSupport(order = 3) @ApiOperation(value = "种类统计,近一个月的", notes = "饼图") - public R flowListType(){ + public R flowListType() { return homePageService.flowListType(); } @@ -92,7 +93,7 @@ public class HomePageController extends BladeController { @GetMapping("/flowStatus") @ApiOperationSupport(order = 4) @ApiOperation(value = "流程状态,近一个月的", notes = "饼图") - public R flowStatus(){ + public R flowStatus() { return homePageService.flowStatus(); } @@ -103,7 +104,7 @@ public class HomePageController extends BladeController { @GetMapping("/flowTakeTime") @ApiOperationSupport(order = 5) @ApiOperation(value = "耗时统计", notes = "柱状图") - public R flowTakeTime(){ + public R flowTakeTime() { return homePageService.flowTakeTime(); } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/IHomePageService.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/IHomePageService.java index ef486e7..cdc5b16 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/IHomePageService.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/IHomePageService.java @@ -22,11 +22,11 @@ public interface IHomePageService { R flowTakeTime(); - Future expireNum(String taskUser,String taskGroup,String deptId,String tenantId); + Future expireNum(String taskUser, String taskGroup, String deptId, String tenantId); - Future needDoNum(String taskUser,String taskGroup,String deptId,String tenantId); + Future needDoNum(String taskUser, String taskGroup, String deptId, String tenantId); - Future todayAddNum(String deptId,String tenantId); + Future todayAddNum(String deptId, String tenantId, String taskUser); - Future todayFinishNum(String deptId,String tenantId); + Future todayFinishNum(String deptId, String tenantId, String taskUser); } 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 41aaf54..f044c3b 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 @@ -4,6 +4,7 @@ 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 com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import liquibase.pro.packaged.E; import lombok.AllArgsConstructor; import org.apache.commons.lang.StringUtils; @@ -193,9 +194,9 @@ public class HomePageServiceImpl implements IHomePageService { // 工单记录待实施 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getMaintenanceCompany, taskUser); wrapper.eq(WorkOrder::getIsFinish, 0); - wrapper.ge(WorkOrder::getExpectedCompletionTime, new Date()); + wrapper.le(WorkOrder::getExpectedCompletionTime, new Date()); int count = workOrderService.count(wrapper); return new AsyncResult<>(expireNum + count); @@ -221,7 +222,7 @@ public class HomePageServiceImpl implements IHomePageService { // 工单记录待实施 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getMaintenanceCompany, taskUser); wrapper.eq(WorkOrder::getIsFinish, 0); int count = workOrderService.count(wrapper); @@ -230,7 +231,7 @@ public class HomePageServiceImpl implements IHomePageService { @Async @Override - public Future todayAddNum(String deptId, String tenantId) { + public Future todayAddNum(String deptId, String tenantId, String taskUser) { List nowUserDepts = Func.toLongList(deptId); @@ -261,7 +262,7 @@ public class HomePageServiceImpl implements IHomePageService { } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getManagement, deptId); wrapper.eq(WorkOrder::getIsFinish, 0); wrapper.between(WorkOrder::getCreateTime, startTime(), endTime()); int count = workOrderService.count(wrapper); @@ -271,7 +272,7 @@ public class HomePageServiceImpl implements IHomePageService { @Async @Override - public Future todayFinishNum(String deptId, String tenantId) { + public Future todayFinishNum(String deptId, String tenantId, String taskUser) { List nowUserDepts = Func.toLongList(deptId); //4.与我相关的今日完成 @@ -298,10 +299,8 @@ public class HomePageServiceImpl implements IHomePageService { } - - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); + wrapper.eq(WorkOrder::getManagement, deptId); wrapper.eq(WorkOrder::getIsFinish, 1); wrapper.between(WorkOrder::getFinishTime, startTime(), endTime()); int count = workOrderService.count(wrapper); @@ -352,6 +351,7 @@ public class HomePageServiceImpl implements IHomePageService { //当前获取登录人deptid String deptId = AuthUtil.getDeptId(); List nowUserDeptList = Func.toLongList(deptId); + List list = Func.toStrList(deptId); //查询近一年开始的工单 List historicProcessInstanceStartList = historyService.createHistoricProcessInstanceQuery().processInstanceTenantId(WfTaskUtil.getTenantId()) @@ -409,6 +409,36 @@ public class HomePageServiceImpl implements IHomePageService { } }); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(WorkOrder::getManagement, list); + List orders = workOrderService.list(wrapper); + if (CollectionUtils.isNotEmpty(orders)) { + orders.forEach(workOrder -> { + Date startTime = workOrder.getCreateTime(); + String format = DateUtil.format(startTime, "yyyy-MM"); + if (mapMonthAdd.containsKey(format)) { + int num = mapMonthAdd.get(format); + mapMonthAdd.put(format, num + 1); + } + }); + } + + wrapper.clear(); + wrapper.eq(WorkOrder::getIsFinish, 1); + wrapper.in(WorkOrder::getManagement, list); + List workOrders = workOrderService.list(wrapper); + if (CollectionUtils.isNotEmpty(workOrders)) { + workOrders.forEach(workOrder -> { + Date startTime = workOrder.getFinishTime(); + String format = DateUtil.format(startTime, "yyyy-MM"); + if (mapMonthFinish.containsKey(format)) { + int num = mapMonthFinish.get(format); + mapMonthFinish.put(format, num + 1); + } + }); + } + + int[] monthAddNum = new int[12]; int[] monthFinishNum = new int[12]; for (int j = 0; j < 12; j++) { @@ -423,6 +453,8 @@ public class HomePageServiceImpl implements IHomePageService { return R.data(result); } + + /** * 种类统计,近一个月的 */ 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 4e49efe..0d61689 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 @@ -105,7 +105,7 @@ public class WorkOrderController extends BladeController { * 流程中心导出 */ @GetMapping("/exportExcel") - public void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException { + public void exportExcel(WorkOrder workOrder, HttpServletResponse response){ workOrderService.exportExcel(workOrder, response); } 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 1d6ff6e..022b6d7 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 @@ -2,6 +2,7 @@ package org.springblade.plugin.operation.workorder.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.models.auth.In; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; @@ -127,4 +128,7 @@ public class WorkOrder extends TenantEntity { @TableField(exist = false) private List uploadRecords; + + @TableField(exist = false) + private Integer isBecomeDue; } 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 3e8728d..8d7bae2 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 @@ -25,7 +25,7 @@ public interface IWorkOrderService extends BaseService { IPage myToDo(WorkOrder workOrder, Query query) throws ParseException; - void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException; + void exportExcel(WorkOrder workOrder, HttpServletResponse response) ; IPage myPage(WorkOrder workOrder, Query query); 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 850a213..3952882 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 @@ -92,7 +92,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl myToDo(WorkOrder workOrder, Query query) throws ParseException { + public IPage myToDo(WorkOrder workOrder, Query query) { IPage page = new Page<>(); String taskUser = WfTaskUtil.getTaskUser(); @@ -108,10 +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<>(); @@ -154,7 +154,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl objectPage = new Page<>(query.getCurrent() - (count / query.getSize()), query.getSize()); +// Page 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); wrapper.orderByDesc(WorkOrder::getCreateTime); - IPage iPage = page(objectPage, wrapper); + if (workOrder.getIsBecomeDue() == 1) { + wrapper.le(WorkOrder::getExpectedCompletionTime, new Date()); + } +// IPage iPage = page(objectPage, wrapper); - // 总条数 - page.setTotal(count + iPage.getTotal()); -// List records = list(wrapper); - List orders = iPage.getRecords(); + List records = list(wrapper); +// List orders = iPage.getRecords(); - setAllName(orders); + setAllName(records); - workOrders.addAll(orders); + workOrders.addAll(records); + + if (workOrder.getIsBecomeDue() == 1) { + workOrders = workOrders.stream().filter(s -> new Date().after(s.getExpectedCompletionTime())).collect(Collectors.toList()); + } // 任务父类 if (StringUtils.isNotBlank(workOrder.getTaskParentName())) { @@ -215,12 +224,15 @@ 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().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()); + 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);