From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 26 五月 2025 15:04:45 +0800
Subject: [PATCH] 修改json类型转换错误

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java |  164 ++++++++++++++++++++++--------------------------------
 1 files changed, 66 insertions(+), 98 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
index 52ac0a3..c6cec92 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
@@ -1,73 +1,64 @@
 package com.aps.core.service.impl;
 
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.*;
-import java.util.stream.Collectors;
-
 import cn.hutool.core.util.IdUtil;
 import com.aps.common.core.utils.DateUtils;
+import com.aps.common.core.utils.poi.ExcelUtil;
+import com.aps.common.security.utils.DictUtils;
 import com.aps.common.security.utils.SecurityUtils;
-import com.aps.core.domain.ApsGasPipelinePrediction;
 import com.aps.core.domain.ApsMaterialProductGroupManagement;
 import com.aps.core.mapper.ApsMaterialProductGroupManagementMapper;
 import com.aps.core.service.IApsMaterialProductGroupManagementService;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import io.micrometer.common.util.StringUtils;
 import lombok.SneakyThrows;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.sql.Timestamp;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * 鐗╂枡浜у搧缁勬暟鎹鐞哠ervice涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2025-05-19
  */
 @Service
-public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService
-{
+public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService {
     @Autowired
     private ApsMaterialProductGroupManagementMapper apsMaterialProductGroupManagementMapper;
 
     /**
      * 鏌ヨ鐗╂枡浜у搧缁勬暟鎹鐞�
-     * 
+     *
      * @param id 鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿�
      * @return 鐗╂枡浜у搧缁勬暟鎹鐞�
      */
     @Override
-    public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id)
-    {
+    public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id) {
         return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementById(id);
     }
 
     /**
      * 鏌ヨ鐗╂枡浜у搧缁勬暟鎹鐞嗗垪琛�
-     * 
+     *
      * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞�
      * @return 鐗╂枡浜у搧缁勬暟鎹鐞�
      */
     @Override
-    public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
-    {
+    public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
         return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementList(apsMaterialProductGroupManagement);
     }
 
     /**
      * 鏂板鐗╂枡浜у搧缁勬暟鎹鐞�
-     * 
+     *
      * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞�
      * @return 缁撴灉
      */
     @Override
-    public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
-    {
+    public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
         apsMaterialProductGroupManagement.setId(IdUtil.getSnowflakeNextId());
         apsMaterialProductGroupManagement.setCreateBy(SecurityUtils.getUsername());
         apsMaterialProductGroupManagement.setCreateTime(DateUtils.getNowDate());
@@ -76,13 +67,12 @@
 
     /**
      * 淇敼鐗╂枡浜у搧缁勬暟鎹鐞�
-     * 
+     *
      * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞�
      * @return 缁撴灉
      */
     @Override
-    public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
-    {
+    public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
         apsMaterialProductGroupManagement.setUpdateTime(DateUtils.getNowDate());
         apsMaterialProductGroupManagement.setUpdateBy(SecurityUtils.getUsername());
         return apsMaterialProductGroupManagementMapper.updateApsMaterialProductGroupManagement(apsMaterialProductGroupManagement);
@@ -90,98 +80,76 @@
 
     /**
      * 鎵归噺鍒犻櫎鐗╂枡浜у搧缁勬暟鎹鐞�
-     * 
+     *
      * @param ids 闇�瑕佸垹闄ょ殑鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿�
      * @return 缁撴灉
      */
     @Override
-    public int deleteApsMaterialProductGroupManagementByIds(Long[] ids)
-    {
+    public int deleteApsMaterialProductGroupManagementByIds(Long[] ids) {
         return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementByIds(ids);
     }
 
     /**
      * 鍒犻櫎鐗╂枡浜у搧缁勬暟鎹鐞嗕俊鎭�
-     * 
+     *
      * @param id 鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿�
      * @return 缁撴灉
      */
     @Override
-    public int deleteApsMaterialProductGroupManagementById(Long id)
-    {
+    public int deleteApsMaterialProductGroupManagementById(Long id) {
         return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementById(id);
     }
 
     @SneakyThrows
     @Override
     public int batchInsertApsMaterialProductGroupManagement(MultipartFile file) {
-        Workbook workbook = WorkbookFactory.create(file.getInputStream());
-
-        Sheet sheet = workbook.getSheetAt(0);
-        int rows = sheet.getLastRowNum();
-        if (rows > 0) {
-            List<ApsMaterialProductGroupManagement> list = new ArrayList<>();
-
-            /*鏁版嵁鍒椾粠1寮�濮�*/
-            Set<String> keys = new HashSet<>();
-            for (int i = rows; i > 0; --i) {
-                Row row = sheet.getRow(i);
-                if (row.getCell(0) == null) {
-                    continue;
-                }
-                String materialCode = row.getCell(0).getStringCellValue();
-                if (StringUtils.isEmpty(materialCode)){
-                    continue;
-                }
-                String materialType = row.getCell(1).getStringCellValue();
-                String domain = row.getCell(2).getStringCellValue();
-                String isMain = row.getCell(3).getStringCellValue();
-                String factory = row.getCell(4).getStringCellValue();
-                if (StringUtils.isNotBlank(materialType) &&
-                    StringUtils.isNotBlank(domain) &&
-                    StringUtils.isNotBlank(isMain) &&
-                    StringUtils.isNotBlank(factory)) {
-                    ApsMaterialProductGroupManagement item = new ApsMaterialProductGroupManagement();
-                    item.setId(IdUtil.getSnowflakeNextId());
-                    item.setFactory(factory);
-                    item.setDomain(domain);
-                    item.setMaterialType(materialType);
-                    item.setMaterialCode(materialCode);
-                    item.setIsMain(isMain);
-                    item.setCreateBy(SecurityUtils.getUsername());
-                    item.setCreateTime(DateUtils.getNowDate());
-                    if (!keys.contains(item.getKey())) {
-                        keys.add(item.getKey());
-                        list.add(item);
-                    }
-                }
+        ExcelUtil<ApsMaterialProductGroupManagement> util = new ExcelUtil<>(ApsMaterialProductGroupManagement.class);
+        List<ApsMaterialProductGroupManagement> list = util.importExcel(file.getInputStream());
+        DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory");
+        DictUtils.CacheValue cacheDomain = DictUtils.getCacheValue("aps_domain");
+        Set<String> keys = new HashSet<>();
+        list.forEach(item -> {
+            item.setId(IdUtil.getSnowflakeNextId());
+            item.setDomain(cacheDomain.get(item.getDomain()));
+            item.setFactory(cacheValue.get(item.getFactory()));
+            item.setCreateBy(SecurityUtils.getUsername());
+            item.setCreateTime(DateUtils.getNowDate());
+        });
+        for (int i = list.size() - 1; i >= 0; --i) {
+            list.get(i).setKey(null);
+            if (!keys.contains(list.get(i).getKey())) {
+                keys.add(list.get(i).getKey());
+            } else {
+                list.remove(i);
             }
-            if (!list.isEmpty()) {
-                Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys);
-                if (!facCodeKey.isEmpty()) {
-                    Iterator<ApsMaterialProductGroupManagement> it = list.iterator();
-                    while (it.hasNext()) {
-                        ApsMaterialProductGroupManagement item = it.next();
-                        if (facCodeKey.contains(item.getKey())) {
-                            LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>();
-                            wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory());
-                            wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode());
-                            item.setCreateBy(null);
-                            item.setCreateTime(null);
-                            item.setUpdateBy(SecurityUtils.getUsername());
-                            item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
-                            apsMaterialProductGroupManagementMapper.update(item, wrapper);
-                            it.remove();
-                        }
-                    }
-                }
-
-                if (!list.isEmpty()) {
-                    apsMaterialProductGroupManagementMapper.insert(list);
-                }
-            }
-            return list.size();
         }
-        return 0;
+
+        if (!list.isEmpty()) {
+            Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys);
+            if (!facCodeKey.isEmpty()) {
+                Iterator<ApsMaterialProductGroupManagement> it = list.iterator();
+                while (it.hasNext()) {
+                    ApsMaterialProductGroupManagement item = it.next();
+                    if (facCodeKey.contains(item.getKey())) {
+                        LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>();
+                        wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory());
+                        wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode());
+                        item.setCreateBy(null);
+                        item.setCreateTime(null);
+                        item.setId(null);
+                        item.setUpdateBy(SecurityUtils.getUsername());
+                        item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+                        apsMaterialProductGroupManagementMapper.update(item, wrapper);
+                        it.remove();
+                    }
+                }
+            }
+
+            if (!list.isEmpty()) {
+                apsMaterialProductGroupManagementMapper.insert(list);
+            }
+        }
+        return list.size();
+
     }
 }

--
Gitblit v1.9.3