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 9cb9f90..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