From e3799b9d987596de79ae7607a205d547c8060340 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 29 四月 2026 16:27:24 +0800
Subject: [PATCH] feat: 工序修改为字典,首页产品部件统计调整

---
 /dev/null                                                                             |   55 ------------------
 src/main/java/com/ruoyi/home/controller/HomeController.java                           |    4 
 src/main/resources/mapper/production/ProductProcessMapper.xml                         |   11 +--
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   10 +--
 src/main/java/com/ruoyi/home/service/HomeService.java                                 |    2 
 src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java        |   10 +-
 src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java                   |    2 
 src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java              |    7 ++
 src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java                        |   23 +++++++
 9 files changed, 45 insertions(+), 79 deletions(-)

diff --git a/src/main/java/com/ruoyi/home/controller/HomeController.java b/src/main/java/com/ruoyi/home/controller/HomeController.java
index fcdfc16..3898c90 100644
--- a/src/main/java/com/ruoyi/home/controller/HomeController.java
+++ b/src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -173,8 +173,8 @@
 
     @GetMapping("/processDataProductionStatistics")
     @ApiOperation("宸ュ簭鏁版嵁鐢熶骇缁熻鏁版嵁")
-    public AjaxResult processDataProductionStatistics(@DefaultType Integer type,@RequestParam(required = false) List<Long> processIds) {
-        List<processDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, processIds);
+    public AjaxResult processDataProductionStatistics(@DefaultType Integer type,@RequestParam(required = false) List<Long> processTypes) {
+        List<processDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, processTypes);
         return AjaxResult.success(list);
     }
 
diff --git a/src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java b/src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java
index 09b01a8..bb57461 100644
--- a/src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java
+++ b/src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java
@@ -1,5 +1,6 @@
 package com.ruoyi.home.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -23,6 +24,12 @@
     private String processName;
 
     /**
+     * 宸ュ簭绫诲瀷
+     */
+    @JsonIgnore
+    private Integer processType;
+
+    /**
      * 绱鎬绘姇鍏�
      */
     private BigDecimal totalInput;
diff --git a/src/main/java/com/ruoyi/home/service/HomeService.java b/src/main/java/com/ruoyi/home/service/HomeService.java
index 2c3c89b..29cf8a5 100644
--- a/src/main/java/com/ruoyi/home/service/HomeService.java
+++ b/src/main/java/com/ruoyi/home/service/HomeService.java
@@ -94,5 +94,5 @@
 
     QualityStatisticsDto qualityInspectionStatistics(Integer type);
 
-    List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processIds);
+    List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes);
 }
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 4f6fe9e..2012680 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -20,6 +20,7 @@
 import com.ruoyi.collaborativeApproval.mapper.NoticeMapper;
 import com.ruoyi.collaborativeApproval.pojo.Notice;
 import com.ruoyi.common.enums.ApproveTypeEnum;
+import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.device.mapper.DeviceRepairMapper;
@@ -2481,7 +2482,7 @@
     }
 
     @Override
-    public List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processIds) {
+    public List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long userId = SecurityUtils.isAdmin(loginUser.getUserId()) ? null : loginUser.getUserId();
 
@@ -2510,6 +2511,24 @@
         LocalDateTime startDateTime = startDate.atStartOfDay();
         LocalDateTime endDateTime = endDate.atTime(LocalTime.MAX);
 
-        return productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processIds);
+        List<processDataProductionStatisticsDto> result = productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processTypes);
+        if (!ObjectUtils.isEmpty(result)) {
+            result.forEach(dto -> {
+                if (dto == null) {
+                    return;
+                }
+                Integer processType = dto.getProcessType();
+                String dictLabel = null;
+                if (processType != null) {
+                    dictLabel = DictUtils.getDictLabel("product_process_type", String.valueOf(processType));
+                }
+                if (StringUtils.isEmpty(dictLabel)) {
+                    dictLabel = "鍏朵粬";
+                }
+                dto.setProcessName(dictLabel);
+            });
+        }
+
+        return result;
     }
 }
diff --git a/src/main/java/com/ruoyi/production/enums/ProductProcessEnum.java b/src/main/java/com/ruoyi/production/enums/ProductProcessEnum.java
deleted file mode 100644
index 26f5184..0000000
--- a/src/main/java/com/ruoyi/production/enums/ProductProcessEnum.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.ruoyi.production.enums;
-
-import lombok.Getter;
-
-/**
- * <br>
- * 閮ㄤ欢绫诲瀷鏋氫妇
- * </br>
- *
- * @author deslrey
- * @version 1.0
- * @since 2026/4/16 10:27
- */
-@Getter
-public enum ProductProcessEnum {
-
-    PROCESSING(1, "鍔犲伐"),
-    SCRAPER_COLD_CORE(2, "鍒澘鍐疯姱鍒朵綔"),
-    PIPELINE_ASSEMBLY(3, "绠¤矾缁勫"),
-    TANK_CONNECTION_DEBUG(4, "缃愪綋杩炴帴鍙婅皟璇�"),
-    PRESSURE_TEST(5, "娴嬭瘯鎵撳帇"),
-    OTHER(6, "鍏朵粬");
-
-    private final Integer code;
-    private final String info;
-
-    ProductProcessEnum(Integer code, String info) {
-        this.code = code;
-        this.info = info;
-    }
-
-    /**
-     * 鏍规嵁鍚嶇О鑾峰彇瀵瑰簲鐨� Code
-     */
-    public static Integer getCodeByInfo(String info) {
-        for (ProductProcessEnum value : ProductProcessEnum.values()) {
-            if (value.getInfo().equals(info)) {
-                return value.getCode();
-            }
-        }
-        return null;
-    }
-
-    /**
-     * 鏍规嵁鍚嶇О鑾峰彇鏋氫妇瀵硅薄
-     */
-    public static ProductProcessEnum getEnumByInfo(String info) {
-        for (ProductProcessEnum value : ProductProcessEnum.values()) {
-            if (value.getInfo().equals(info)) {
-                return value;
-            }
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
index 7f8aadd..662f5da 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
@@ -17,5 +17,5 @@
     
     IPage<ProductProcessDto> listPage(Page page, @Param("productProcessDto") ProductProcessDto productProcessDto);
 
-    List<processDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processIds);
+    List<processDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processTypes);
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
index 60f5788..71bf805 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -11,11 +11,11 @@
 import com.ruoyi.basic.service.IProductModelService;
 import com.ruoyi.basic.service.IProductService;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.production.dto.ProductProcessDto;
 import com.ruoyi.production.dto.ProductProcessImportDto;
-import com.ruoyi.production.enums.ProductProcessEnum;
 import com.ruoyi.production.mapper.ProcessRouteItemMapper;
 import com.ruoyi.production.mapper.ProductProcessMapper;
 import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
@@ -187,10 +187,10 @@
                 if (ObjectUtils.isEmpty(importDto.getProductProcessType())) {
                     throw new ServiceException("绗�" + rowNum + "琛岋細閮ㄤ欢銆�" + importDto.getName() + "銆戠殑绫诲瀷涓嶈兘涓虹┖");
                 }
-                ProductProcessEnum enumByInfo = ProductProcessEnum.getEnumByInfo(importDto.getProductProcessType());
-                if (ObjectUtils.isEmpty(enumByInfo)) {
+                String dictValue = DictUtils.getDictValue("product_process_type", importDto.getProductProcessType());
+                if (StringUtils.isEmpty(dictValue)) {
                     throw new ServiceException("绗�" + rowNum + "琛岋細閮ㄤ欢銆�" + importDto.getName() + "銆戠殑绫诲瀷銆�"
-                            + importDto.getProductProcessType() + "銆戜笉瀛樺湪锛岃濉啓姝g‘鐨勭被鍨嬶細鍔犲伐銆佸埉鏉垮喎鑺埗浣溿�佺璺粍瀵广�佺綈浣撹繛鎺ュ強璋冭瘯銆佹祴璇曟墦鍘嬨�佸叾浠�");
+                            + importDto.getProductProcessType() + "銆戜笉瀛樺湪锛岃濉啓姝g‘鐨勭被鍨嬶細" + DictUtils.getDictLabels("product_process_type"));
                 }
                 // 妫�楠岃鍒掑伐鏃�
                 if (importDto.getSalaryQuota() == null || importDto.getSalaryQuota().compareTo(BigDecimal.ZERO) < 0) {
@@ -207,7 +207,7 @@
                 ProductProcess productProcess = new ProductProcess();
                 BeanUtils.copyProperties(importDto, productProcess);
                 productProcess.setProductModelId(productModel.getId());
-                productProcess.setType(enumByInfo.getCode());
+                productProcess.setType(Integer.valueOf(dictValue));
                 if (sysUser != null) {
                     productProcess.setPlannerId(sysUser.getUserId());
                     productProcess.setPlannerName(sysUser.getNickName());
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index d6c5a0d..08a24aa 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -15,6 +15,7 @@
 import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.procurementrecord.utils.StockUtils;
@@ -23,7 +24,6 @@
 import com.ruoyi.production.dto.ProductionProductMainSummaryExportDto;
 import com.ruoyi.production.dto.ProductionReportDailySummaryDto;
 import com.ruoyi.production.dto.ProductionReportStateDto;
-import com.ruoyi.production.enums.ProductProcessEnum;
 import com.ruoyi.production.mapper.ProductionProductReportDailyMapper;
 import com.ruoyi.production.pojo.ProductionProductReportDaily;
 import com.ruoyi.production.mapper.*;
@@ -551,12 +551,8 @@
         if (process == null || process.getType() == null) {
             return "鍏朵粬";
         }
-        for (ProductProcessEnum value : ProductProcessEnum.values()) {
-            if (value.getCode().equals(process.getType())) {
-                return value.getInfo();
-            }
-        }
-        return "鍏朵粬";
+        String dictLabel = DictUtils.getDictLabel("product_process_type", String.valueOf(process.getType()));
+        return (dictLabel == null || dictLabel.isEmpty()) ? "鍏朵粬" : dictLabel;
     }
 
     private void saveDailyDurations(ProductionProductMain main, LocalDateTime start, LocalDateTime end) {
diff --git a/src/main/resources/mapper/production/ProductProcessMapper.xml b/src/main/resources/mapper/production/ProductProcessMapper.xml
index 0ab44e7..593c12f 100644
--- a/src/main/resources/mapper/production/ProductProcessMapper.xml
+++ b/src/main/resources/mapper/production/ProductProcessMapper.xml
@@ -35,7 +35,7 @@
 
     <select id="calculateProductionStatistics" resultType="com.ruoyi.home.dto.processDataProductionStatisticsDto">
         SELECT
-        pp.name AS processName,
+        pp.type AS processType,
         SUM(pi.quantity) AS totalInput,
         SUM(distinct ppo.scrap_qty) AS totalScrap,
         SUM(distinct (ppo.quantity - ppo.scrap_qty)) AS totalOutput
@@ -55,15 +55,14 @@
             <if test="userId != null">
                 AND ppm.user_id = #{userId}
             </if>
-            <if test="processIds != null and processIds.size() > 0">
-                AND pp.id IN
-                <foreach collection="processIds" item="id" open="(" separator="," close=")">
+            <if test="processTypes != null and processTypes.size() > 0">
+                AND pp.type IN
+                <foreach collection="processTypes" item="id" open="(" separator="," close=")">
                     #{id}
                 </foreach>
             </if>
         </where>
         GROUP BY
-        pp.id,
-        pp.name
+        pp.type
     </select>
 </mapper>

--
Gitblit v1.9.3