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/ApsGasPipelinePredictionServiceImpl.java | 118 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 59 insertions(+), 59 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java index 7a85b16..7ed42e1 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java @@ -2,151 +2,151 @@ 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.mapper.ApsGasPipelinePredictionMapper; import com.aps.core.service.IApsGasPipelinePredictionService; -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.math.BigDecimal; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2025-05-19 */ @Service -public class ApsGasPipelinePredictionServiceImpl implements IApsGasPipelinePredictionService -{ +public class ApsGasPipelinePredictionServiceImpl implements IApsGasPipelinePredictionService { @Autowired private ApsGasPipelinePredictionMapper apsGasPipelinePredictionMapper; /** * 鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param id 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 */ @Override - public ApsGasPipelinePrediction selectApsGasPipelinePredictionById(Long id) - { + public ApsGasPipelinePrediction selectApsGasPipelinePredictionById(Long id) { return apsGasPipelinePredictionMapper.selectApsGasPipelinePredictionById(id); } /** * 鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 */ @Override - public List<ApsGasPipelinePrediction> selectApsGasPipelinePredictionList(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public List<ApsGasPipelinePrediction> selectApsGasPipelinePredictionList(ApsGasPipelinePrediction apsGasPipelinePrediction) { return apsGasPipelinePredictionMapper.selectApsGasPipelinePredictionList(apsGasPipelinePrediction); } /** * 鏂板绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 缁撴灉 */ @Override - public int insertApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public int insertApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) { apsGasPipelinePrediction.setCreateTime(DateUtils.getNowDate()); return apsGasPipelinePredictionMapper.insertApsGasPipelinePrediction(apsGasPipelinePrediction); } /** * 淇敼绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 缁撴灉 */ @Override - public int updateApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public int updateApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) { apsGasPipelinePrediction.setUpdateTime(DateUtils.getNowDate()); return apsGasPipelinePredictionMapper.updateApsGasPipelinePrediction(apsGasPipelinePrediction); } /** * 鎵归噺鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param ids 闇�瑕佸垹闄ょ殑绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelinePredictionByIds(Long[] ids) - { + public int deleteApsGasPipelinePredictionByIds(Long[] ids) { return apsGasPipelinePredictionMapper.deleteApsGasPipelinePredictionByIds(ids); } /** * 鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁淇℃伅 - * + * * @param id 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelinePredictionById(Long id) - { + public int deleteApsGasPipelinePredictionById(Long id) { return apsGasPipelinePredictionMapper.deleteApsGasPipelinePredictionById(id); } @SneakyThrows @Override public int batchInsertApsGasPipelinePrediction(MultipartFile file) { - Workbook workbook = WorkbookFactory.create(file.getInputStream()); - Sheet sheet = workbook.getSheetAt(0); - int rows = sheet.getLastRowNum(); - if (rows > 0) { - List<ApsGasPipelinePrediction> list = new ArrayList<>(); + ExcelUtil<ApsGasPipelinePrediction> util = new ExcelUtil<>(ApsGasPipelinePrediction.class); + List<ApsGasPipelinePrediction> list = util.importExcel(file.getInputStream()); + DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory"); + Set<String> keys = new HashSet<>(); + list.forEach(item -> { + item.setId(IdUtil.getSnowflakeNextId()); + item.setFactory(cacheValue.get(item.getFactory())); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(DateUtils.getNowDate()); + }); - /*鏁版嵁鍒椾粠1寮�濮�*/ - for (int i = 1; i <= rows; i++) { - Row row = sheet.getRow(i); - String materialCode = row.getCell(0).getStringCellValue(); - if (StringUtils.isEmpty(materialCode)){ - continue; - } - String factory = row.getCell(1).getStringCellValue(); - double quantity = row.getCell(2).getNumericCellValue(); - Date date = row.getCell(3).getDateCellValue(); - if (StringUtils.isNotBlank(factory) && - date != null) { - ApsGasPipelinePrediction item = new ApsGasPipelinePrediction(); - item.setId(IdUtil.getSnowflakeNextId()); - item.setFactory(factory); - item.setMaterialCode(materialCode); - item.setCreateBy(SecurityUtils.getUsername()); - item.setCreateTime(DateUtils.getNowDate()); - item.setPredictQuantity(new BigDecimal(quantity)); - item.setPredictDate(new Timestamp(date.getTime())); - list.add(item); + 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()) { + List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys); + if (!facCodeKey.isEmpty()) { + Iterator<ApsGasPipelinePrediction> it = list.iterator(); + while (it.hasNext()) { + ApsGasPipelinePrediction item = it.next(); + int count = 0; + for (Map<String, Object> map : facCodeKey) { + if (map.get("key").equals(item.getKey())) { + item.setId((Long) map.get("id")); + item.setCreateBy(null); + item.setCreateTime(null); + item.setUpdateBy(SecurityUtils.getUsername()); + item.setUpdateTime(new Timestamp(System.currentTimeMillis())); + apsGasPipelinePredictionMapper.updateById(item); + count++; + } + } + if (count > 0) { + it.remove(); + } } } if (!list.isEmpty()) { - apsGasPipelinePredictionMapper.deleteAll(); apsGasPipelinePredictionMapper.insert(list); } - return list.size(); } - return 0; + return list.size(); } } -- Gitblit v1.9.3