From 90f845a4fc8b9f79db0c9266d65866eda72b8f59 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 7 Aug 2024 09:46:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=9E=90=E9=A1=B5=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=EF=BC=9A=E7=94=9F=E4=BA=A7=E5=8D=95=E7=8A=B6=E6=80=81mapper?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E7=8B=AC=E7=AB=8B=E6=8E=A5=E5=8F=A3=E3=80=81?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/dal/mysql/order/OrderMapper.java | 61 -------------- .../mysql/order/OrderStatisticsMapper.java | 79 +++++++++++++++++++ .../order/OrderStatisticsServiceImpl.java | 22 +++--- .../resources/mapper/order/OrderMapper.xml | 34 -------- .../mapper/order/OrderStatisticsMapper.xml | 36 +++++++++ 5 files changed, 126 insertions(+), 106 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java index e4a423dc0..886037f39 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java @@ -10,18 +10,13 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderOverdueRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatusRespVO; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; -import com.cf.imes.module.executor.enums.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.LocalTime; import java.util.Collection; import java.util.List; import java.util.Map; @@ -139,65 +134,9 @@ public interface OrderMapper extends BaseMapperX { List selectOrderIds(@Param(Constants.WRAPPER) Wrapper wrapper); - /** - * 生产单状态按时间分组统计 - * - * @param reqVO - * @return - */ - List selectOrderStatusCount(@Param("req") OrderStatisticsReqVO reqVO); - // 生产单预警统计 List selectOrderNear(@Param("today") LocalDateTime today, @Param("orderDate") LocalDateTime orderDate, @Param("organId") Long organId); // 生产单逾期统计 List selectOrderOverdue(@Param("today") LocalDateTime today, @Param("organId") Long organId); - - /** - * 生产单数量统计 - */ - default Integer selectOrderCount(Long organId) { - return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) - .eq(OrderDO::getDeleted, 0))); - } - - /** - * 今日新增生产单总数统计 - * - */ - default Integer selectOrderCountToday(Long organId) { - return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) - .eq(OrderDO::getOrderDate, LocalDate.now()))); - - } - - /** - * 今日完成生产单总数统计 - * - */ - default Integer selectOrderCountTodayFinish(Long organId) { - return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) - .between(OrderDO::getFinishTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.of(LocalDate.now(), LocalTime.MAX)))); - } - - /** - * 生产中生产单总数 - * - */ - default Integer selectOrderCountProduce(Long organId) { - return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) - .eq(OrderDO::getStatus, OrderStatusEnum.IN_PRODUCTION.getStatus()))); - } - - /** - * 生产中生产平方数 - * - * @param organId - * @return - */ - Integer selectOrderSquareProduce(@Param("organId") Long organId); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java new file mode 100644 index 000000000..a3053400d --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java @@ -0,0 +1,79 @@ +package com.cf.imes.module.executor.dal.mysql.order; + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; +import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatusRespVO; +import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; +import com.cf.imes.module.executor.enums.OrderStatusEnum; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.List; + +/** + * @author Gqr + * @since 2024/8/7 9:35 + */ +@Mapper +public interface OrderStatisticsMapper extends BaseMapperX { + + /** + * 生产单数量统计 + */ + default Integer selectOrderCount(Long organId) { + return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eqIfPresent(OrderDO::getOrganId, organId) + .eq(OrderDO::getDeleted, 0))); + } + + /** + * 今日新增生产单总数统计 + * + */ + default Integer selectOrderCountToday(Long organId) { + return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eqIfPresent(OrderDO::getOrganId, organId) + .eq(OrderDO::getOrderDate, LocalDate.now()))); + + } + + /** + * 今日完成生产单总数统计 + * + */ + default Integer selectOrderCountTodayFinish(Long organId) { + return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eqIfPresent(OrderDO::getOrganId, organId) + .between(OrderDO::getFinishTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.of(LocalDate.now(), LocalTime.MAX)))); + } + + /** + * 生产中生产单总数 + * + */ + default Integer selectOrderCountProduce(Long organId) { + return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eqIfPresent(OrderDO::getOrganId, organId) + .eq(OrderDO::getStatus, OrderStatusEnum.IN_PRODUCTION.getStatus()))); + } + + /** + * 生产中生产平方数 + * + * @param organId + * @return + */ + Integer selectOrderSquareProduce(@Param("organId") Long organId); + + /** + * 生产单状态按时间分组统计 + * + * @param reqVO + * @return + */ + List selectOrderStatusCount(@Param("req") OrderStatisticsReqVO reqVO); +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java index b8dde7fd3..4cb7ecaf4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java @@ -6,7 +6,7 @@ import com.cf.imes.framework.organ.core.aop.OrganIgnore; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatusRespVO; -import com.cf.imes.module.executor.dal.mysql.order.OrderMapper; +import com.cf.imes.module.executor.dal.mysql.order.OrderStatisticsMapper; import com.cf.imes.module.executor.enums.OrderStatisticsUnit; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -32,36 +32,36 @@ import java.util.stream.Collectors; @Validated public class OrderStatisticsServiceImpl implements OrderStatisticsService { @Resource - private OrderMapper orderMapper; + private OrderStatisticsMapper orderStatisticsMapper; @Override @OrganIgnore public Integer orderCount(OrderStatisticsReqVO reqVO) { - return orderMapper.selectOrderCount(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCount(getOrganIdParam(reqVO)); } @Override @OrganIgnore public Integer orderCountToday(OrderStatisticsReqVO reqVO) { - return orderMapper.selectOrderCountToday(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountToday(getOrganIdParam(reqVO)); } @Override @OrganIgnore public Integer orderCountTodayFinish(OrderStatisticsReqVO reqVO) { - return orderMapper.selectOrderCountTodayFinish(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountTodayFinish(getOrganIdParam(reqVO)); } @Override @OrganIgnore public Integer orderCountProduce(OrderStatisticsReqVO reqVO) { - return orderMapper.selectOrderCountProduce(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountProduce(getOrganIdParam(reqVO)); } @Override @OrganIgnore public Integer orderSquareProduce(OrderStatisticsReqVO reqVO) { - return orderMapper.selectOrderSquareProduce(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderSquareProduce(getOrganIdParam(reqVO)); } @Override @@ -73,7 +73,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { getTimeSpan(reqVO); // 查询订单状态统计数据 - List orderStatusRespVOS = orderMapper.selectOrderStatusCount(reqVO); + List orderStatusRespVOS = orderStatisticsMapper.selectOrderStatusCount(reqVO); // 基于相同的orderDate分组 Map> orderDateMap = orderStatusRespVOS.stream() @@ -84,13 +84,13 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { Set dateList = orderDateMap.keySet(); resultMap.put("dateList", dateList); - // 初始化结果集 + // 遍历订单状态所有枚举值 List> series = new ArrayList<>(); for (OrderStatusEnum orderStatusEnum : OrderStatusEnum.values()) { Map seriesItem = new HashMap<>(); int[] sumArr = new int[orderDateMap.size()]; - // 遍历日期map + // 遍历日期map记录status下的orderCount到sumArr数组 int index = 0; for (Map.Entry> entry : orderDateMap.entrySet()) { // 查找匹配的订单状态 @@ -98,7 +98,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { .filter(respVO -> Objects.equals(orderStatusEnum.getStatus(), respVO.getOrderState())) .findFirst(); - // 设置计数值 + // 没有匹配的补齐0 sumArr[index++] = matchingStatus.map(OrderStatusRespVO::getOrderCount).orElse(0); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index 7cc75754c..cc8db0aec 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -79,30 +79,6 @@ - - - - - - \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml new file mode 100644 index 000000000..2f9cb3c0a --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml @@ -0,0 +1,36 @@ + + + + + + + \ No newline at end of file