From f73f8cb6753f8d8ab2c689b4640cd2688e6f6f62 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 16 九月 2025 11:06:42 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java index 1237fb3..27c0421 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule; @@ -9,11 +10,17 @@ import org.jeecg.modules.mdc.vo.MdcEquipmentDayScheduleVo; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.service.IMdcProductionService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author: Lius @@ -52,4 +59,43 @@ public MdcEquipmentDaySchedule selectLast(String equipmentId) { return this.baseMapper.selectLast(equipmentId); } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveOrUpdateBatchByMesId(List<MdcEquipmentDaySchedule> entityList) { + if (CollectionUtils.isEmpty(entityList)) { + return true; + } + + // 鎸塵esId鍒嗙粍澶勭悊 + Map<String, MdcEquipmentDaySchedule> mesIdMap = entityList.stream() + .collect(Collectors.toMap(MdcEquipmentDaySchedule::getMesId, + mdcEquipmentDaySchedule -> mdcEquipmentDaySchedule, // 鍊硷細鐢ㄦ埛瀵硅薄鏈韩 + (existing, replacement) -> existing)); + + // 鎵归噺鏌ヨ宸插瓨鍦ㄧ殑mesId + List<MdcEquipmentDaySchedule> existList = this.lambdaQuery() + .in(MdcEquipmentDaySchedule::getMesId, mesIdMap.keySet()) + .list(); + + // 鍒嗙闇�瑕佹柊澧炲拰鏇存柊鐨勬暟鎹� + List<MdcEquipmentDaySchedule> toInsert = new ArrayList<>(); + List<MdcEquipmentDaySchedule> toUpdate = new ArrayList<>(); + + existList.forEach(exist -> { + MdcEquipmentDaySchedule newData = mesIdMap.get(exist.getMesId()); + // 淇濈暀鍘烮D + BeanUtils.copyProperties(newData, exist); + toUpdate.add(exist); + mesIdMap.remove(exist.getMesId()); + }); + + toInsert.addAll(mesIdMap.values()); + + // 鎵ц鎵归噺鎿嶄綔 + boolean insertResult = toInsert.isEmpty() || this.saveBatch(toInsert); + boolean updateResult = toUpdate.isEmpty() || this.updateBatchById(toUpdate); + + return insertResult && updateResult; + } } -- Gitblit v1.9.3