From 552545e4c3dfa60de2cbec9a13bba2edffc3fc89 Mon Sep 17 00:00:00 2001 From: lzttt <1803073139@qq.com> Date: Mon, 21 Oct 2024 11:25:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=A9=BE=E6=A0=A1=E7=B3=BB=E7=BB=9Fbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partner/PartnerCustomerInfoMapper.xml | 1 + .../admin/DriveSchoolInfoController.java | 10 +++- .../admin/DriveSchoolSwiperController.java | 20 +++++-- .../jx/controller/admin/JxAuthController.java | 15 ++++- .../jx/mapper/DriveSchoolInfoMapper.java | 11 ++++ .../jx/mapper/DriveSchoolSwiperMapper.java | 17 +++++- .../payment/api/DriveSchoolPayController.java | 48 +++++++++++----- .../jx/service/IDriveSchoolInfoService.java | 2 +- .../jx/service/IDriveSchoolSwiperService.java | 12 +++- .../impl/DriveSchoolCoachServiceImpl.java | 14 +++-- .../impl/DriveSchoolExamPassServiceImpl.java | 37 +++++++++++- .../impl/DriveSchoolInfoServiceImpl.java | 46 +++++++++++---- .../impl/DriveSchoolSwiperServiceImpl.java | 21 +++++-- .../mapper/jx/DriveSchoolInfoMapper.xml | 3 + .../mapper/jx/DriveSchoolSwiperMapper.xml | 57 ++++++++++++++++--- 15 files changed, 259 insertions(+), 55 deletions(-) diff --git a/dl-module-inspection/src/main/resources/mapper/partner/PartnerCustomerInfoMapper.xml b/dl-module-inspection/src/main/resources/mapper/partner/PartnerCustomerInfoMapper.xml index 8c63ac7c..9da421eb 100644 --- a/dl-module-inspection/src/main/resources/mapper/partner/PartnerCustomerInfoMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/partner/PartnerCustomerInfoMapper.xml @@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + + diff --git a/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolSwiperMapper.xml b/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolSwiperMapper.xml index be301f00..50e7f386 100644 --- a/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolSwiperMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolSwiperMapper.xml @@ -21,19 +21,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, swiper_name, dept_id,swiper_picture, jump_url, list_order, creator, create_time, updater, update_time from drive_school_swiper - + SELECT id, swiper_name, dept_id, swiper_picture, jump_url, list_order, creator, create_time, updater, update_time + FROM drive_school_swiper deleted = 0 - and swiper_name like concat('%', #{swiperName}, '%') - and swiper_picture = #{swiperPicture} - and jump_url = #{jumpUrl} - and dept_id = #{deptId} - and list_order = #{listOrder} + + AND swiper_name LIKE CONCAT('%', #{swiperName}, '%') + + + AND swiper_picture = #{swiperPicture} + + + AND jump_url = #{jumpUrl} + + + AND dept_id = #{deptId} + + + AND list_order = #{listOrder} + - order by list_order asc + ORDER BY list_order ASC + + SELECT id, swiper_name, dept_id, swiper_picture, jump_url, list_order, creator, create_time, updater, update_time + FROM drive_school_swiper + + deleted = 0 + + + AND swiper_name LIKE CONCAT('%', #{driveSchoolSwiper.swiperName}, '%') + + + AND swiper_picture = #{driveSchoolSwiper.swiperPicture} + + + AND jump_url = #{driveSchoolSwiper.jumpUrl} + + + AND dept_id = #{driveSchoolSwiper.deptId} + + + AND list_order = #{driveSchoolSwiper.listOrder} + + + + ORDER BY list_order ASC + + + + From 8859ec67067fa3940c23f9a66c74f74a4a8db2e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Mon, 21 Oct 2024 13:09:45 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=B4=E4=BF=AEapp=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=90=8E=E6=8C=87=E5=AE=9A=E6=96=BD=E5=B7=A5?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=92=8C=E9=94=80=E5=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RepairProjectServiceImpl.java | 47 ++++++++++--------- .../admin/DlRepairTicketsController.java | 3 +- .../admin/DlRepairTitemController.java | 18 +++++-- .../tickets/mapper/DlRepairTitemMapper.java | 6 +++ .../service/DlRepairTicketsService.java | 2 +- .../tickets/service/DlRepairTitemService.java | 7 +++ .../impl/DlRepairTicketsServiceImpl.java | 3 +- .../impl/DlRepairTitemServiceImpl.java | 12 +++++ .../mapper/tickets/DlRepairTitemMapper.xml | 22 ++++++++- 9 files changed, 88 insertions(+), 32 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairProjectServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairProjectServiceImpl.java index 10afa53e..9f60fa49 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairProjectServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairProjectServiceImpl.java @@ -19,7 +19,9 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -86,7 +88,7 @@ public class RepairProjectServiceImpl extends ServiceImpl queryListPage(RepairProjectPageReqVO pageReqVO, Page page) { - return repairProjectMapper.selectListPage(pageReqVO,page); + return repairProjectMapper.selectListPage(pageReqVO, page); } /** @@ -97,28 +99,29 @@ public class RepairProjectServiceImpl extends ServiceImpl getRepairProjectAndCateGory() { List repairProjectAppvos = repairProjectMapper.selectProjectAndCateGory(); - // 提取并去重 typeId - List uniqueTypeIds = repairProjectAppvos.stream() - .map(RepairProjectAppvo::getTypeId) - .distinct() - .collect(Collectors.toList()); - List list = new ArrayList<>(); - for (String uniqueTypeId : uniqueTypeIds) { - RepairProjectAppvo repairProjectAppvo = new RepairProjectAppvo(); - repairProjectAppvo.setTypeId(uniqueTypeId); - if (ObjectUtil.isNotEmpty(uniqueTypeId)) { - List filteredList = repairProjectAppvos.stream() - .filter(appvo -> uniqueTypeId.equals(appvo.getTypeId())) - .collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(filteredList)) { - repairProjectAppvo.setTypeName(filteredList.get(0).getTypeName()); - repairProjectAppvo.setGroupList(BeanUtil.copyToList(filteredList, RepairProject.class)); - } + +// 使用 LinkedHashMap 按 typeId 分组,排除 typeId 为 null 的条目 + Map> groupedByTypeId = new LinkedHashMap<>(); + for (RepairProjectAppvo appvo : repairProjectAppvos) { + if (ObjectUtil.isNotEmpty(appvo.getTypeId())) { + groupedByTypeId.computeIfAbsent(appvo.getTypeId(), k -> new ArrayList<>()).add(appvo); } - list.add(repairProjectAppvo); } - return list; + + // 创建结果列表 + List resultList = new ArrayList<>(); + for (Map.Entry> entry : groupedByTypeId.entrySet()) { + RepairProjectAppvo repairProjectAppvo = new RepairProjectAppvo(); + repairProjectAppvo.setTypeId(entry.getKey()); + List filteredList = entry.getValue(); + repairProjectAppvo.setTypeName(filteredList.get(0).getTypeName()); + + // 只在最后一次调用 copyToList + repairProjectAppvo.setGroupList(BeanUtil.copyToList(filteredList, RepairProject.class)); + resultList.add(repairProjectAppvo); + } + + return resultList; + } - - } \ No newline at end of file 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 b01f0f79..9e29197e 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 @@ -45,8 +45,7 @@ public class DlRepairTicketsController { @PostMapping("/create") @Operation(summary = "维修工单表 新增") public CommonResult createTicket(@RequestBody DlRepairTicketsRespVO ticketsRespVO) { - dlRepairTicketsService.createTickets(ticketsRespVO); - return CommonResult.ok(); + return CommonResult.success(dlRepairTicketsService.createTickets(ticketsRespVO)); } /** diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTitemController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTitemController.java index 072e1a0c..f6ca7c1d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTitemController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTitemController.java @@ -7,10 +7,7 @@ import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -23,7 +20,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; * @date 18:21 2024/9/13 **/ @RestController -@RequestMapping("/repair/titem") + @RequestMapping("/repair/titem") public class DlRepairTitemController { /** * 服务对象 @@ -61,5 +58,16 @@ public class DlRepairTitemController { public CommonResult getProjectList(@RequestParam("ticketId") String ticketId){ return success(dlRepairTitemService.getProjectList(ticketId)); } + + /** + * 修改维修工单子表的维修人员和销售人员信息(app) + * @param dlRepairTitemReqVO + * @return + */ + @PutMapping("/updateRepairAndSale") + @Operation(summary = "修改维修工单子表的维修人员和销售人员信息") + public CommonResult updateRepairAndSale(@RequestBody DlRepairTitemReqVO dlRepairTitemReqVO){ + return success(dlRepairTitemService.updateRepairAndSale(dlRepairTitemReqVO)); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTitemMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTitemMapper.java index 251166c1..a17f4976 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTitemMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTitemMapper.java @@ -25,6 +25,12 @@ public interface DlRepairTitemMapper extends BaseMapper { * @param repairTitemRespVO 查询对象 **/ IPage getTItemPage(@Param("map") DlRepairTitemRespVO repairTitemRespVO, Page page); + + /** + * 更新工单子表中维修人员、销售人员信息(app) + * @param dlRepairTitem + */ + void updateRepairAndSale(DlRepairTitem dlRepairTitem); } 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 97fedb38..bfae38a6 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 @@ -25,7 +25,7 @@ public interface DlRepairTicketsService extends IService { * @author 小李 * @date 11:33 2024/9/20 **/ - void createTickets(DlRepairTicketsRespVO ticketsRespVO); + DlRepairTicketsRespVO createTickets(DlRepairTicketsRespVO ticketsRespVO); /** * 维修工单表 分页 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTitemService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTitemService.java index 82bd2045..ed7bd6f3 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTitemService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTitemService.java @@ -34,4 +34,11 @@ public interface DlRepairTitemService extends IService { **/ List getProjectList(String ticketId); + /** + * 更新工单子表中维修人员、销售人员信息(app) + * @param dlRepairTitem + * @return + */ + DlRepairTitem updateRepairAndSale(DlRepairTitem dlRepairTitem); + } 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 f7e69d0f..894022b4 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 @@ -155,7 +155,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl - SELECT drti.id, drti.ticket_id, drti.item_name, From 2c253b024f2ddd86a006d693c3ebaa8ca1c041d9 Mon Sep 17 00:00:00 2001 From: PQZ Date: Mon, 21 Oct 2024 17:03:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/RepairStatisticsController.java | 139 ++++++++++++++++++ .../base/mapper/RepairStatisticsMapper.java | 99 +++++++++++++ .../base/service/RepairStatisticsService.java | 85 +++++++++++ .../impl/RepairStatisticsServiceImpl.java | 131 +++++++++++++++++ .../module/base/vo/RepairStatisticsVO.java | 13 ++ .../base/vo/RepairTicketStatisticsVO.java | 20 +++ .../mapper/base/RepairStatisticsMapper.xml | 126 ++++++++++++++++ 7 files changed, 613 insertions(+) create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStatisticsController.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/mapper/RepairStatisticsMapper.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairStatisticsService.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairStatisticsServiceImpl.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairStatisticsVO.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairTicketStatisticsVO.java create mode 100644 dl-module-repair/src/main/resources/mapper/base/RepairStatisticsMapper.xml diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStatisticsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStatisticsController.java new file mode 100644 index 00000000..de69dcd8 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStatisticsController.java @@ -0,0 +1,139 @@ +package cn.iocoder.yudao.module.base.controller.admin; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.base.service.RepairStatisticsService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Tag(name = "维修数据统计") +@RestController +@RequestMapping("/repair/statistics") +@Validated +public class RepairStatisticsController { + @Resource + private RepairStatisticsService statisticsService; + + /** + * 客户来源分析饼图 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/customerSource") + @Operation(summary = "客户来源分析饼图") + public CommonResult customerSource() { + return CommonResult.success(statisticsService.customerSource()); + } + + /** + * 月工单金额走势折线图 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketMainAmount") + @Operation(summary = "月工单金额走势") + public CommonResult ticketMainAmount() { + return CommonResult.success(statisticsService.ticketMain("amount")); + } + + /** + * 月工单数量走势折线图 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketMainCount") + @Operation(summary = "月工单数量走势") + public CommonResult ticketMainCount() { + return CommonResult.success(statisticsService.ticketMain("count")); + } + + /** + * 支付渠道统计柱状图 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketMainPayWay") + @Operation(summary = "支付渠道统计") + public CommonResult ticketMainPayWay() { + return CommonResult.success(statisticsService.ticketMain("payWay")); + } + + /** + * 维修类型相关统计分析饼图 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketMainPayWay") + @Operation(summary = "维修类型相关统计分析饼图") + public CommonResult repairTypeStatistics() { + return CommonResult.success(statisticsService.repairTypeStatistics()); + } + + /** + * 工单总数、今日工单、工单总金额、今日工单金额 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketStatistics") + @Operation(summary = "工单总数、今日工单、工单总金额、今日工单金额") + public CommonResult ticketStatistics() { + return CommonResult.success(statisticsService.ticketStatistics()); + } + + /** + * 工单状态数量统计 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/ticketStatusCount") + @Operation(summary = "工单状态数量统计") + public CommonResult ticketStatusCount() { + return CommonResult.success(statisticsService.ticketStatusCount()); + } + + /** + * 今日工单 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/listTicketToday") + @Operation(summary = "今日工单") + public CommonResult listTicketToday() { + return CommonResult.success(statisticsService.listTicketToday()); + } + + /** + * 维修工人排行 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + * @author PQZ + * @date 16:15 2024/10/21 + **/ + @GetMapping("/listWorks") + @Operation(summary = "维修工人排行") + public CommonResult listWorks() { + return CommonResult.success(statisticsService.listWorks()); + } + +} \ No newline at end of file diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/mapper/RepairStatisticsMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/mapper/RepairStatisticsMapper.java new file mode 100644 index 00000000..bd4e7cbb --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/mapper/RepairStatisticsMapper.java @@ -0,0 +1,99 @@ +package cn.iocoder.yudao.module.base.mapper; + +import cn.iocoder.yudao.module.base.vo.RepairStatisticsVO; +import cn.iocoder.yudao.module.base.vo.RepairTicketStatisticsVO; +import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 维修数据统计 + * + * @author pqz + */ +@Mapper +public interface RepairStatisticsMapper { + + /** + * 客户来源统计 + * + * @return java.util.List + * @author PQZ + * @date 13:57 2024/10/21 + **/ + List customerSource(); + + /** + * 月工单数量走势 + * + * @return java.util.List + * @author PQZ + * @date 14:25 2024/10/21 + **/ + List ticketCountTrend(); + + /** + * 月工单金额走势 + * + * @return java.util.List + * @author PQZ + * @date 14:31 2024/10/21 + **/ + List ticketAmountTrend(); + + /** + * 按照支付方式统计 + * + * @return java.util.List + * @author PQZ + * @date 14:41 2024/10/21 + **/ + List paymentWay(); + + /** + * 维修方式统计饼图 + * + * @return java.util.List + * @author PQZ + * @date 14:52 2024/10/21 + **/ + List repairTypeStatistics(); + + /** + * 工单总数、今日工单、工单总金额、今日工单金额 + * + * @return cn.iocoder.yudao.module.base.vo.RepairTicketStatisticsVO + * @author PQZ + * @date 15:31 2024/10/21 + **/ + RepairTicketStatisticsVO ticketStatistics(); + + /** + * 工单状态数量统计 + * + * @return java.util.List + * @author PQZ + * @date 15:44 2024/10/21 + **/ + List ticketStatusCount(); + + /** + * 今日工单 + * + * @return java.util.List + * @author PQZ + * @date 15:50 2024/10/21 + **/ + List listTicketToday(); + + + /** + * 维修工人排行 + * @author PQZ + * @date 16:13 2024/10/21 + * @return java.util.List + **/ + List listWorks(); + +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairStatisticsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairStatisticsService.java new file mode 100644 index 00000000..dde50d36 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairStatisticsService.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.base.service; + +import cn.iocoder.yudao.module.base.vo.RepairStatisticsVO; +import cn.iocoder.yudao.module.base.vo.RepairTicketStatisticsVO; +import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; + +import java.util.List; +import java.util.Map; + +/** + * 维修数据统计 + * + * @author pqz + */ +public interface RepairStatisticsService { + + /** + * 客户来源分析饼图 + * + * @return java.util.List + * @author PQZ + * @date 14:01 2024/10/21 + **/ + List customerSource(); + + /** + * 月工单数量、金额走势、支付渠道统计 + * @author PQZ + * @date 14:32 2024/10/21 + * @param type 'amount:金额,count:数量',payWay:支付渠道 + * @return java.util.Map + **/ + Map ticketMain(String type); + + /** + * 维修类型相关统计分析饼图 + * + * @return java.util.Map + * @author PQZ + * @date 13:25 2024/10/21 + **/ + List repairTypeStatistics(); + + + /** + * 工单总数、今日工单、工单总金额、今日工单金额 + * + * @return java.util.Map + * @author PQZ + * @date 13:23 2024/10/21 + **/ + RepairTicketStatisticsVO ticketStatistics(); + + /** + * 工单状态数量统计 + * + * @return java.util.Map + * @author PQZ + * @date 13:28 2024/10/21 + **/ + List ticketStatusCount(); + + + /** + * 今日工单 + * + * @return java.util.List + * @author PQZ + * @date 13:25 2024/10/21 + **/ + List listTicketToday(); + + + + /** + * 维修工人排行 + * + * @return java.util.List + * @author PQZ + * @date 13:26 2024/10/21 + **/ + List listWorks(); + + +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairStatisticsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairStatisticsServiceImpl.java new file mode 100644 index 00000000..816ecd96 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairStatisticsServiceImpl.java @@ -0,0 +1,131 @@ +package cn.iocoder.yudao.module.base.service.impl; + +import cn.iocoder.yudao.module.base.mapper.RepairStatisticsMapper; +import cn.iocoder.yudao.module.base.service.RepairStatisticsService; +import cn.iocoder.yudao.module.base.vo.RepairStatisticsVO; +import cn.iocoder.yudao.module.base.vo.RepairTicketStatisticsVO; +import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 维修数据统计 + * + * @author pqz + */ +@Service +@Validated +public class RepairStatisticsServiceImpl implements RepairStatisticsService { + + @Resource + private RepairStatisticsMapper statisticsMapper; + + /** + * 客户来源分析饼图 + * + * @return java.util.List + * @author PQZ + * @date 14:01 2024/10/21 + **/ + @Override + public List customerSource() { + return statisticsMapper.customerSource(); + } + + /** + * 月工单数量、金额走势、支付渠道统计 + * + * @return java.util.Map + * @author PQZ + * @date 13:20 2024/10/21 + **/ + @Override + public Map ticketMain(String type) { + Map result = new HashMap<>(); + List tickets; + if ("count".equals(type)) { + //月工单数量走势折线图 + tickets = statisticsMapper.ticketCountTrend(); + } else if ("amount".equals(type)) { + //月工单金额走势折线图 + tickets = statisticsMapper.ticketAmountTrend(); + } else { + //支付渠道柱状图 + tickets = statisticsMapper.paymentWay(); + } + //取出数值 + List data = tickets.stream().map(RepairStatisticsVO::getValue).collect(Collectors.toList()); + //x轴值 + List xData = tickets.stream().map(RepairStatisticsVO::getName).collect(Collectors.toList()); + result.put("data", data); + result.put("xData", xData); + return result; + } + + /** + * 维修类型相关统计分析饼图 + * + * @return java.util.Map + * @author PQZ + * @date 13:25 2024/10/21 + **/ + @Override + public List repairTypeStatistics() { + return statisticsMapper.repairTypeStatistics(); + } + + + /** + * 工单总数、今日工单、工单总金额、今日工单金额 + * + * @return java.util.Map + * @author PQZ + * @date 13:23 2024/10/21 + **/ + @Override + public RepairTicketStatisticsVO ticketStatistics() { + return statisticsMapper.ticketStatistics(); + } + + /** + * 工单状态数量统计 + * + * @return java.util.Map + * @author PQZ + * @date 13:28 2024/10/21 + **/ + @Override + public List ticketStatusCount() { + return statisticsMapper.ticketStatusCount(); + } + + /** + * 今日工单 + * + * @return java.util.List + * @author PQZ + * @date 13:25 2024/10/21 + **/ + @Override + public List listTicketToday() { + return statisticsMapper.listTicketToday(); + } + + /** + * 维修工人排行 + * + * @return java.util.List + * @author PQZ + * @date 13:26 2024/10/21 + **/ + @Override + public List listWorks() { + return statisticsMapper.listWorks(); + } +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairStatisticsVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairStatisticsVO.java new file mode 100644 index 00000000..0cbc2575 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairStatisticsVO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.base.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "数据统计VO") +@Data +@ToString(callSuper = true) +public class RepairStatisticsVO { + String name; + Integer value; +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairTicketStatisticsVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairTicketStatisticsVO.java new file mode 100644 index 00000000..bf6d22e0 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairTicketStatisticsVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.base.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "数据统计VO") +@Data +@ToString(callSuper = true) +public class RepairTicketStatisticsVO { + /**工单总数量*/ + Integer totalCount; + /**工单总金额*/ + Double totalAmount; + /**工单今日数量*/ + Integer todayCount; + /**工单今日金额*/ + Double todayAmount; + +} diff --git a/dl-module-repair/src/main/resources/mapper/base/RepairStatisticsMapper.xml b/dl-module-repair/src/main/resources/mapper/base/RepairStatisticsMapper.xml new file mode 100644 index 00000000..3f526343 --- /dev/null +++ b/dl-module-repair/src/main/resources/mapper/base/RepairStatisticsMapper.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + +