From d75541110d428f61a9fe3378110248b7dd78e240 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期三, 21 五月 2025 12:31:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java | 37 +++++++++++++++++++++++++++++++------ 1 files changed, 31 insertions(+), 6 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 5a9c0e1..52ac0a3 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 @@ -2,9 +2,8 @@ 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; import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; @@ -13,6 +12,7 @@ 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; @@ -123,7 +123,8 @@ List<ApsMaterialProductGroupManagement> list = new ArrayList<>(); /*鏁版嵁鍒椾粠1寮�濮�*/ - for (int i = 1; i <= rows; i++) { + Set<String> keys = new HashSet<>(); + for (int i = rows; i > 0; --i) { Row row = sheet.getRow(i); if (row.getCell(0) == null) { continue; @@ -149,11 +150,35 @@ item.setIsMain(isMain); item.setCreateBy(SecurityUtils.getUsername()); item.setCreateTime(DateUtils.getNowDate()); - list.add(item); + if (!keys.contains(item.getKey())) { + keys.add(item.getKey()); + list.add(item); + } } } if (!list.isEmpty()) { - apsMaterialProductGroupManagementMapper.insert(list); + 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(); } -- Gitblit v1.9.3