From 78b637613099f0e2e04e98c5f33c24f8e6c78c7a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 30 四月 2026 09:17:47 +0800
Subject: [PATCH] fix: 质检内的工序修改为部件类型

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   44 +++++++++++++++++++++
 src/main/java/com/ruoyi/home/dto/ProcessDataProductionStatisticsDto.java    |    2 
 src/main/java/com/ruoyi/home/controller/HomeController.java                 |    2 
 src/main/resources/mapper/production/ProductProcessMapper.xml               |    2 
 src/main/java/com/ruoyi/home/service/HomeService.java                       |    2 
 src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java         |    4 +-
 doc/君歌化工.sql                                                                |    5 ++
 src/main/java/com/ruoyi/quality/pojo/QualityInspect.java                    |   10 +++--
 src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java              |    9 +---
 9 files changed, 61 insertions(+), 19 deletions(-)

diff --git "a/doc/\345\220\233\346\255\214\345\214\226\345\267\245.sql" "b/doc/\345\220\233\346\255\214\345\214\226\345\267\245.sql"
index c05c511..5cde33e 100644
--- "a/doc/\345\220\233\346\255\214\345\214\226\345\267\245.sql"
+++ "b/doc/\345\220\233\346\255\214\345\214\226\345\267\245.sql"
@@ -41,4 +41,7 @@
     MODIFY COLUMN `plan_start_time` datetime NULL DEFAULT NULL COMMENT '璁″垝寮�濮嬫椂闂�' AFTER `work_order_no`,
     MODIFY COLUMN `plan_end_time` datetime NULL DEFAULT NULL COMMENT '璁″垝缁撴潫鏃堕棿' AFTER `plan_start_time`,
     MODIFY COLUMN `actual_start_time` datetime NULL DEFAULT NULL COMMENT '瀹為檯寮�濮嬫椂闂�' AFTER `plan_end_time`,
-    MODIFY COLUMN `actual_end_time` datetime NULL DEFAULT NULL COMMENT '瀹為檯缁撴潫鏃堕棿' AFTER `actual_start_time`;
\ No newline at end of file
+    MODIFY COLUMN `actual_end_time` datetime NULL DEFAULT NULL COMMENT '瀹為檯缁撴潫鏃堕棿' AFTER `actual_start_time`;
+
+ALTER TABLE `product-inventory-management-jghg`.`quality_inspect`
+    ADD COLUMN `process_type` int NULL DEFAULT NULL COMMENT '宸ュ簭绫诲瀷' AFTER `dept_id`;
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/home/controller/HomeController.java b/src/main/java/com/ruoyi/home/controller/HomeController.java
index 3898c90..a75d421 100644
--- a/src/main/java/com/ruoyi/home/controller/HomeController.java
+++ b/src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -174,7 +174,7 @@
     @GetMapping("/processDataProductionStatistics")
     @ApiOperation("宸ュ簭鏁版嵁鐢熶骇缁熻鏁版嵁")
     public AjaxResult processDataProductionStatistics(@DefaultType Integer type,@RequestParam(required = false) List<Long> processTypes) {
-        List<processDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, 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
similarity index 92%
rename from src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java
rename to src/main/java/com/ruoyi/home/dto/ProcessDataProductionStatisticsDto.java
index bb57461..7b161dd 100644
--- a/src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java
+++ b/src/main/java/com/ruoyi/home/dto/ProcessDataProductionStatisticsDto.java
@@ -16,7 +16,7 @@
  */
 
 @Data
-public class processDataProductionStatisticsDto {
+public class ProcessDataProductionStatisticsDto {
 
     /**
      * 宸ュ簭鍚嶇О
diff --git a/src/main/java/com/ruoyi/home/service/HomeService.java b/src/main/java/com/ruoyi/home/service/HomeService.java
index 29cf8a5..08c75e2 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> processTypes);
+    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 2012680..4ab1ace 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -12,7 +12,6 @@
 import com.ruoyi.approve.pojo.ApproveProcess;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.mapper.ProductMapper;
-import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.mapper.SupplierManageMapper;
 import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.basic.pojo.Product;
@@ -29,9 +28,6 @@
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.home.dto.*;
 import com.ruoyi.home.service.HomeService;
-import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
-import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
-import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.production.dto.ProductOrderDto;
 import com.ruoyi.production.dto.ProductWorkOrderDto;
 import com.ruoyi.production.mapper.ProductOrderMapper;
@@ -40,7 +36,6 @@
 import com.ruoyi.production.mapper.ProductionProductInputMapper;
 import com.ruoyi.production.mapper.ProductionProductOutputMapper;
 import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
-import com.ruoyi.production.pojo.ProductProcess;
 import com.ruoyi.production.pojo.ProductWorkOrder;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.mapper.SysDeptMapper;
@@ -2482,7 +2477,7 @@
     }
 
     @Override
-    public List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes) {
+    public List<ProcessDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long userId = SecurityUtils.isAdmin(loginUser.getUserId()) ? null : loginUser.getUserId();
 
@@ -2511,7 +2506,7 @@
         LocalDateTime startDateTime = startDate.atStartOfDay();
         LocalDateTime endDateTime = endDate.atTime(LocalTime.MAX);
 
-        List<processDataProductionStatisticsDto> result = productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processTypes);
+        List<ProcessDataProductionStatisticsDto> result = productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processTypes);
         if (!ObjectUtils.isEmpty(result)) {
             result.forEach(dto -> {
                 if (dto == null) {
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
index 662f5da..008c57e 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
@@ -3,7 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.home.dto.processDataProductionStatisticsDto;
+import com.ruoyi.home.dto.ProcessDataProductionStatisticsDto;
 import com.ruoyi.production.dto.ProductProcessDto;
 import com.ruoyi.production.pojo.ProductProcess;
 import org.apache.ibatis.annotations.Mapper;
@@ -17,5 +17,5 @@
     
     IPage<ProductProcessDto> listPage(Page page, @Param("productProcessDto") ProductProcessDto productProcessDto);
 
-    List<processDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processTypes);
+    List<ProcessDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processTypes);
 }
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
index ccdf6ef..7329f61 100644
--- a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -31,7 +31,7 @@
     /**
      * 绫诲埆(0:鍘熸潗鏂欐楠�;1:杩囩▼妫�楠�;2:鍑哄巶妫�楠�)
      */
-    @Excel(name = "绫诲埆",readConverterExp = "0=鍘熸潗鏂欐楠�,1=杩囩▼妫�楠�,2=鍑哄巶妫�楠�")
+    @Excel(name = "绫诲埆", readConverterExp = "0=鍘熸潗鏂欐楠�,1=杩囩▼妫�楠�,2=鍑哄巶妫�楠�")
     @NotBlank(message = "绫诲埆涓嶈兘涓虹┖!!")
     private Integer inspectType;
 
@@ -41,8 +41,6 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "妫�娴嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
     private Date checkTime;
-
-
 
 
     /**
@@ -62,6 +60,11 @@
      */
     @Excel(name = "宸ュ簭")
     private String process;
+
+    /**
+     * 宸ュ簭绫诲瀷
+     */
+    private Integer processType;
 
     /**
      * 妫�楠屽憳
@@ -110,7 +113,6 @@
      */
     @Excel(name = "妫�娴嬬粨鏋�")
     private String checkResult;
-
 
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index c6e40e4..6810aeb 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -10,6 +10,9 @@
 import com.deepoove.poi.config.Configure;
 import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DictUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
@@ -33,6 +36,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLEncoder;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -59,6 +63,7 @@
     public int add(QualityInspectDto qualityInspectDto) {
         QualityInspect qualityInspect = new QualityInspect();
         BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
+        validateProcessType(qualityInspect);
         qualityInspect.setInspectState(0);//榛樿鏈彁浜�
         qualityInspectMapper.insert(qualityInspect);
         for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {
@@ -167,6 +172,7 @@
         }
         QualityInspect qualityInspect = new QualityInspect();
         BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
+        validateProcessType(qualityInspect);
         return qualityInspectMapper.updateById(qualityInspect);
     }
 
@@ -178,7 +184,19 @@
     @Override
     public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) {
         List<QualityInspect> qualityInspects = qualityInspectMapper.qualityInspectExport(qualityInspect);
-        ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class);
+        if (qualityInspects != null && !qualityInspects.isEmpty()) {
+            for (QualityInspect inspect : qualityInspects) {
+                if (inspect == null || inspect.getProcessType() == null) {
+                    continue;
+                }
+                String processLabel = DictUtils.getDictLabel("product_process_type", String.valueOf(inspect.getProcessType()));
+                if (StringUtils.isNotEmpty(processLabel)) {
+                    inspect.setProcess(processLabel);
+                }
+            }
+        }
+
+        ExcelUtil<QualityInspect> util = new ExcelUtil<>(QualityInspect.class);
         switch (qualityInspect.getInspectType()) {
             case 0:
                 util.exportExcel(response, qualityInspects, "鍘熸潗鏂欐楠屽鍑�");
@@ -193,5 +211,29 @@
 
     }
 
+    private void validateProcessType(QualityInspect qualityInspect) {
+        if (qualityInspect == null || qualityInspect.getProcessType() == null) {
+            return;
+        }
+
+        String dictType = "product_process_type";
+        String input = String.valueOf(qualityInspect.getProcessType());
+
+        String dictValue = DictUtils.getDictValue(dictType, input);
+        if (StringUtils.isNotEmpty(dictValue)) {
+            qualityInspect.setProcessType(Integer.valueOf(dictValue));
+            return;
+        }
+        String dictValues = DictUtils.getDictValues(dictType);
+        if (StringUtils.isNotEmpty(dictValues)) {
+            List<String> valueList = Arrays.asList(dictValues.split(DictUtils.SEPARATOR));
+            if (valueList.contains(input)) {
+                return;
+            }
+        }
+
+        throw new ServiceException("宸ュ簭绫诲瀷銆�" + input + "銆戜笉瀛樺湪锛岃濉啓姝g‘鐨勭被鍨嬶細" + DictUtils.getDictLabels(dictType));
+    }
+
 
 }
diff --git a/src/main/resources/mapper/production/ProductProcessMapper.xml b/src/main/resources/mapper/production/ProductProcessMapper.xml
index 593c12f..a4283e8 100644
--- a/src/main/resources/mapper/production/ProductProcessMapper.xml
+++ b/src/main/resources/mapper/production/ProductProcessMapper.xml
@@ -33,7 +33,7 @@
         order by pp.id asc
     </select>
 
-    <select id="calculateProductionStatistics" resultType="com.ruoyi.home.dto.processDataProductionStatisticsDto">
+    <select id="calculateProductionStatistics" resultType="com.ruoyi.home.dto.ProcessDataProductionStatisticsDto">
         SELECT
         pp.type AS processType,
         SUM(pi.quantity) AS totalInput,

--
Gitblit v1.9.3