From 7dc148e5b2de27a5cf28d121daa643ff4247b610 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 18 Nov 2024 17:51:23 +0800 Subject: [PATCH] 1 --- .../iocoder/yudao/common/RecordTypeEnum.java | 4 ++ .../admin/DlRepairTicketsController.java | 42 ++++++++++++-- .../tickets/mapper/DlRepairTicketsMapper.java | 10 ++++ .../service/DlRepairTicketsService.java | 2 +- .../impl/DlRepairTicketsServiceImpl.java | 58 +++++++++++++++---- .../mapper/tickets/DlRepairTicketsMapper.xml | 19 ++++++ 6 files changed, 118 insertions(+), 17 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java index e232af30..9a5c946c 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java @@ -35,6 +35,10 @@ public enum RecordTypeEnum { * 总检 */ ZJ("zj","总检"), + /** + * 结算 + */ + JS("js","结算"), /** * 结束工单 */ diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 34781e67..6150b425 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.tickets.controller.admin; +import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.common.RepairCons; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; @@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -311,15 +315,45 @@ public class DlRepairTicketsController { return CommonResult.ok(); } /** - * 从总检的角度差维修中、已完成的工单数量 + * 从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量 * @author vinjor-M * @date 11:29 2024/10/24 * @return cn.iocoder.yudao.framework.common.pojo.CommonResult **/ @GetMapping("/getBossNum") - @Operation(summary = "从总检的角度查维修中、已完成的工单数量") - public CommonResult getBossNum(String selectType) { - return success(dlRepairTicketsService.getBossNum(selectType)); + @Operation(summary = "从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量") + public CommonResult getBossNum(String selectType,String startDate,String endDate) { + return success(dlRepairTicketsService.getBossNum(selectType, startDate, endDate)); + } + + /** + * 获取日期范围 + * @author vinjor-M + * @date 11:29 2024/10/24 + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @GetMapping("/getDateRange") + @Operation(summary = "获取日期范围") + public CommonResult getDateRange(String selectType) { + Map rtnMap = new HashMap<>(); + // 获取当前日期 + Date currentDate = new Date(); + String nowDay = DateUtil.formatDate(new Date()); + rtnMap.put("endDate",nowDay); + if("threeMonth".equals(selectType)){ + //近3个月 + // 使用Hutool的DateUtil推移3个月 + Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -3); + String startDay = DateUtil.formatDate(threeMonthsAgo); + rtnMap.put("startDate",startDay); + }else { + //近6个月 + // 使用Hutool的DateUtil推移6个月 + Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -6); + String startDay = DateUtil.formatDate(threeMonthsAgo); + rtnMap.put("startDate",startDay); + } + return success(rtnMap); } /** diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java index 4a53a9f2..0ca90e77 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java @@ -42,6 +42,16 @@ public interface DlRepairTicketsMapper extends BaseMapper { * @param repairTicketsReqVO 查询对象 **/ IPage getPageTypeAll(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page page); + + /** + * 根据条件查询指定工单数量 + * @author vinjor-M + * @date 15:46 2024/11/18 + * @param dayDate 某一天日期 + * @param recordCode 操作记录code + * @return java.lang.Long + **/ + Long selectCountByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index cfe2fc56..9f922bbe 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -172,7 +172,7 @@ public interface DlRepairTicketsService extends IService { * @date 11:30 2024/10/24 * @return java.util.Map **/ - Map getBossNum(String selectType); + Map getBossNum(String selectType,String startDate,String endDate); /** * 服务顾问通知客户取车 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index d36d62e7..58d68c60 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.*; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; @@ -102,6 +103,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl getBossNum(String selectType) { - Map rtnMap = new HashMap<>(); - int workingNum = 0; - int doneNum = 0; - + public Map getBossNum(String selectType,String startDate,String endDate) { + Map rtnMap = new HashMap<>(); + //维修中---当前这一时刻 + long workingNum = 0; + //在厂数--当前这一时刻 + long inCompanyNum = 0; + //进场数 + long newOrderNum=0; + //已完成 + long overNum=0; + //已交车 + long giveCusNum=0; List repairTickets = this.list(); if (!repairTickets.isEmpty()) { - Map> ifFinishMap = repairTickets.stream().collect(Collectors.groupingBy(DlRepairTickets::getIsFinish)); - if (ifFinishMap.containsKey("0")) { - workingNum = ifFinishMap.get("0").size(); - } - if (ifFinishMap.containsKey("1")) { - doneNum = ifFinishMap.get("1").size(); + workingNum = repairTickets.stream().filter(item -> TicketsStatusEnum.WORKING.getCode().equals(item.getTicketsStatus())).count(); + inCompanyNum = repairTickets.stream().filter(item -> TicketsStatusEnum.NO_PAY.getCode().equals(item.getTicketsStatus())).count(); + LocalDateTime currentTime = LocalDateTime.now(); + if("today".equals(selectType)){ + String nowDayStr = DateUtil.formatDate(new Date()); + //查当日进厂数、已完成、已交车 + newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().toLocalDate().equals(currentTime.toLocalDate())).count(); + //查当日已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.ZJ.getCode(),null,null); + //查当日已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.JS.getCode(),null,null); + }else if("all".equals(selectType)){ + //查累计进厂数、已完成、已交车 + newOrderNum = repairTickets.size(); + //查累计已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(),null,null); + //查累计已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(),null,null); + }else { + //查某个时间范围内进厂数、已完成、已交车 + LocalDateTime startTime = LocalDateTime.parse(startDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = LocalDateTime.parse(endDate+" 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().isAfter(startTime) && item.getCreateTime().isBefore(endTime)).count(); + //查某区间范围内已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(), startDate+" 00:00:00", endDate+" 23:59:59"); + //查某区间范围内已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(), startDate+" 00:00:00", endDate+" 23:59:59"); } } rtnMap.put("workingNum", workingNum); - rtnMap.put("doneNum", doneNum); + rtnMap.put("inCompanyNum", inCompanyNum); + rtnMap.put("newOrderNum", newOrderNum); + rtnMap.put("overNum", overNum); + rtnMap.put("giveCusNum", giveCusNum); return rtnMap; } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml index 742779d9..db8e23ab 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -349,4 +349,23 @@ GROUP BY drt.id order by drt.update_time desc +