From ea53d09634c87c0e867ec85c28d4d9aeabbd24fd Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 8 Aug 2024 11:02:45 +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=9A1=E3=80=81=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=B6=85=E7=AE=A1=E5=BF=BD=E8=A7=86=E6=9C=BA=E6=9E=84=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=85=A8=E9=83=A8=EF=BC=9B2=E3=80=81=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=9B=9E=E8=B0=83X=E8=BD=B4?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=AE=8C=E5=96=84=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/order/OrderStatisticsMapper.java | 14 ++-- .../order/OrderStatisticsServiceImpl.java | 80 ++++++++++--------- .../mapper/order/OrderStatisticsMapper.xml | 14 +--- .../plate/OrderPlateStatisticsMapper.xml | 10 +-- 4 files changed, 56 insertions(+), 62 deletions(-) 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 index b17eb8a17..fc2d6a061 100644 --- 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 @@ -25,9 +25,8 @@ public interface OrderStatisticsMapper extends BaseMapperX { /** * 生产单数量统计 */ - default Integer selectOrderCount(Long organId) { + default Integer selectOrderCount() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) .eq(OrderDO::getDeleted, 0))); } @@ -35,9 +34,8 @@ public interface OrderStatisticsMapper extends BaseMapperX { * 今日新增生产单总数统计 * */ - default Integer selectOrderCountToday(Long organId) { + default Integer selectOrderCountToday() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) .eq(OrderDO::getOrderDate, LocalDate.now()))); } @@ -46,9 +44,8 @@ public interface OrderStatisticsMapper extends BaseMapperX { * 今日完成生产单总数统计 * */ - default Integer selectOrderCountTodayFinish(Long organId) { + default Integer selectOrderCountTodayFinish() { 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)))); } @@ -56,9 +53,8 @@ public interface OrderStatisticsMapper extends BaseMapperX { * 生产中生产单总数 * */ - default Integer selectOrderCountProduce(Long organId) { + default Integer selectOrderCountProduce() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getOrganId, organId) .eq(OrderDO::getStatus, OrderStatusEnum.IN_PRODUCTION.getStatus()))); } @@ -68,7 +64,7 @@ public interface OrderStatisticsMapper extends BaseMapperX { * @param organId * @return */ - Integer selectOrderSquareProduce(@Param("organId") Long organId); + Integer selectOrderSquareProduce(); /** * 生产单状态按时间分组统计数量 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 1239cb63b..a2cdc3f5c 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 @@ -2,8 +2,6 @@ package com.cf.imes.module.executor.service.order; import cn.hutool.core.util.ObjectUtil; import com.cf.imes.framework.common.enums.OrderStatusEnum; -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.OrderGoodsPlateRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; @@ -49,44 +47,41 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { @Resource private OrderPlateStatisticsMapper orderPlateStatisticsMapper; + // 常用的字段key + private static final String DATELIST_FIELD_NAME = "dateList"; + private static final String SERIES_FIELD_NAME = "series"; + @Override - @OrganIgnore public Integer orderCount(OrderStatisticsReqVO reqVO) { - return orderStatisticsMapper.selectOrderCount(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCount(); } @Override - @OrganIgnore public Integer orderCountToday(OrderStatisticsReqVO reqVO) { - return orderStatisticsMapper.selectOrderCountToday(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountToday(); } @Override - @OrganIgnore public Integer orderCountTodayFinish(OrderStatisticsReqVO reqVO) { - return orderStatisticsMapper.selectOrderCountTodayFinish(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountTodayFinish(); } @Override - @OrganIgnore public Integer orderCountProduce(OrderStatisticsReqVO reqVO) { - return orderStatisticsMapper.selectOrderCountProduce(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderCountProduce(); } @Override - @OrganIgnore public Integer orderSquareProduce(OrderStatisticsReqVO reqVO) { - return orderStatisticsMapper.selectOrderSquareProduce(getOrganIdParam(reqVO)); + return orderStatisticsMapper.selectOrderSquareProduce(); } @Override - @OrganIgnore public Map getOrderStatusCount(OrderStatisticsReqVO reqVO) { Map resultMap = new HashMap<>(); // 所有的日期集合 List dateList = getDateList(reqVO); - resultMap.put("dateList", dateList); // 查询订单状态统计数据 List orderStatusRespVOS = orderStatisticsMapper.selectOrderStatusCountGroupBy(reqVO); @@ -122,14 +117,13 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { seriesItem.put("name", orderStatusEnum.getDescription()); series.add(seriesItem); } - - resultMap.put("series", series); + resultMap.put(DATELIST_FIELD_NAME, dateList.stream().map(date -> generateDateRangeAxis(date, reqVO.getUnit())).toList()); + resultMap.put(SERIES_FIELD_NAME, series); return resultMap; } @Override - @OrganIgnore public Map getOrderAndPlanCountGroup(OrderStatisticsReqVO reqVO) { Map resultMap = new LinkedHashMap<>(); @@ -144,8 +138,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { .collect(Collectors.groupingBy(OrderPlanStatisticsCountRespVO::getDate, LinkedHashMap::new, Collectors.toList())); // 遍历时间跨度列表,匹配数量存入数组,没有补0存入数组 - for (int i = 0; i < dateList.size(); i++) { - String dateStr = dateList.get(i); + for (String dateStr : dateList) { int[] countArr = new int[2]; // 存入生产单数量 Integer orderCount = Optional.ofNullable(orderRespMap.get(dateStr)) @@ -161,14 +154,13 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { .orElse(0); countArr[1] = planCount; - resultMap.put(dateStr, countArr); + resultMap.put(generateDateRangeAxis(dateStr, reqVO.getUnit()), countArr); } return resultMap; } @Override - @OrganIgnore public Map getOrderAndPlanAreaSumGroup(OrderStatisticsReqVO reqVO) { Map resultMap = new LinkedHashMap<>(); @@ -194,7 +186,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { List planCountRespVOS = planRespMap.get(dateStr); areaArr[1] = planCountRespVOS != null && !planCountRespVOS.isEmpty() ? planCountRespVOS.get(0).getAreaSum() : BigDecimal.ZERO; - resultMap.put(dateStr, areaArr); + resultMap.put(generateDateRangeAxis(dateStr, reqVO.getUnit()), areaArr); } return resultMap; @@ -207,7 +199,6 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { // 所有的日期集合 List dateList = getDateList(reqVO); - resultMap.put("dateList", dateList); List orderGoodsPlateRespVOList = orderPlateStatisticsMapper.selectPlateAnalysisListByCount(reqVO); // 基于相同的orderDate分组 @@ -250,7 +241,8 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { seriesItem.put("name", entry.getValue()); series.add(seriesItem); } - resultMap.put("series", series); + resultMap.put(DATELIST_FIELD_NAME, dateList.stream().map(date -> generateDateRangeAxis(date, reqVO.getUnit())).toList()); + resultMap.put(SERIES_FIELD_NAME, series); return resultMap; } @@ -260,7 +252,6 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { // 所有的日期集合 List dateList = getDateList(reqVO); - resultMap.put("dateList", dateList); List orderGoodsPlateRespVOList = orderPlateStatisticsMapper.selectPlateAnalysisListByArea(reqVO); // 基于相同的orderDate分组 @@ -303,7 +294,8 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { seriesItem.put("name", entry.getValue()); series.add(seriesItem); } - resultMap.put("series", series); + resultMap.put(DATELIST_FIELD_NAME, dateList.stream().map(date -> generateDateRangeAxis(date, reqVO.getUnit())).toList()); + resultMap.put(SERIES_FIELD_NAME, series); return resultMap; } @@ -316,9 +308,6 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { * @return */ private List getDateList(OrderStatisticsReqVO reqVO) { - // 获取机构id - reqVO.setOrganId(getOrganIdParam(reqVO)); - // 计算时间跨度 getTimeSpan(reqVO); @@ -416,16 +405,33 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { } /** - * 前端传组织否则查当前用户所在的组织 - * - * @param reqVO + * 构建日期格式到图标横轴可用格式 + * 2024-1 -> 2024年第1季度 + * 2024-1-1 -> 2024年1月 + * ... + * @param unit * @return */ - private Long getOrganIdParam(OrderStatisticsReqVO reqVO) { - if (reqVO != null && reqVO.getOrganId() != null) { - return reqVO.getOrganId(); - } else { - return SecurityFrameworkUtils.getUserOrganId(); + private String generateDateRangeAxis(String date, Integer unit) { + OrderStatisticsUnit orderStatisticsUnit = OrderStatisticsUnit.fromValue(unit); + StringBuffer newDateStrBuffer = new StringBuffer(); + String[] dateSplit = date.split("-"); + switch (orderStatisticsUnit) { + case QUARTER: + newDateStrBuffer.append(dateSplit[0]).append("年第").append(dateSplit[1]).append("季度"); + break; + case MONTH: + newDateStrBuffer.append(dateSplit[0]).append("年").append(dateSplit[1]).append("月"); + break; + case WEEK: + newDateStrBuffer.append(dateSplit[0]).append("年").append(dateSplit[1]).append("月").append("第").append(dateSplit[2]).append("周"); + break; + case DAY: + newDateStrBuffer.append(dateSplit[0]).append("年").append(dateSplit[1]).append("月").append(dateSplit[2]).append("日"); + break; + default: } + return newDateStrBuffer.toString(); } + } 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 index 3a4df3814..6cebf9238 100644 --- 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 @@ -5,9 +5,6 @@ SELECT SUM(op.area) as area FROM orders o LEFT JOIN order_plate op on op.order_id = o.id WHERE o.deleted = 0 - - AND o.organ_id = #{organId} - @@ -50,8 +46,7 @@ ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', DAY(o.order_date)) as date from orders o - where o.organ_id = #{req.organId} - and o.order_date between #{req.createTime[0]} and #{req.createTime[1]} + where o.order_date between #{req.createTime[0]} and #{req.createTime[1]} and o.deleted = 0 group by date; @@ -72,9 +67,8 @@ ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', DAY(o.order_date)) as date from orders o - join order_plate op on op.order_id = o.id and op.organ_id = #{req.organId} - where o.organ_id = #{req.organId} - and o.order_date between #{req.createTime[0]} and #{req.createTime[1]} + join order_plate op on op.order_id = o.id + where o.order_date between #{req.createTime[0]} and #{req.createTime[1]} and o.deleted = 0 group by date; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml index f17aa9c58..9b13f989a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml @@ -26,11 +26,10 @@ ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', DAY(o.order_date)) as orderDate FROM order_goods g - LEFT JOIN order_plate a ON g.id = a.goods_id AND g.organ_id = #{req.organId} - LEFT JOIN orders o ON o.id = a.order_id AND o.organ_id = #{req.organId} + LEFT JOIN order_plate a ON g.id = a.goods_id + LEFT JOIN orders o ON o.id = a.order_id WHERE a.deleted = 0 AND o.order_date BETWEEN #{req.createTime[0]} AND #{req.createTime[1]} - AND g.organ_id = #{req.organId} GROUP BY g.goods_id,orderDate HAVING @@ -65,11 +64,10 @@ ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', DAY(o.order_date)) as orderDate FROM order_goods g - LEFT JOIN order_plate a ON g.id = a.goods_id AND g.organ_id = #{req.organId} - LEFT JOIN orders o ON o.id = a.order_id AND o.organ_id = #{req.organId} + LEFT JOIN order_plate a ON g.id = a.goods_id + LEFT JOIN orders o ON o.id = a.order_id WHERE a.deleted = 0 AND o.order_date BETWEEN #{req.createTime[0]} AND #{req.createTime[1]} - AND g.organ_id = #{req.organId} GROUP BY g.goods_id,orderDate HAVING