From fbde0b947b4641081b558302ea77d88c902c4cd1 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期三, 30 四月 2025 10:03:24 +0800 Subject: [PATCH] 可靠性计划优化检验项 --- inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java | 4 inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java | 12 ++-- inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java | 2 inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java | 2 inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java | 2 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java | 45 +++++++++++++- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java | 70 ---------------------- 7 files changed, 55 insertions(+), 82 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java index 9e8c98b..dd541e6 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java @@ -5,4 +5,6 @@ @Data public class ReliabilityPlanProductDto extends ReliabilityPlanProduct { + + private String itemType; } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java index 585ad9f..43f18ca 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java @@ -5,5 +5,5 @@ @Data public class ReliabilityPlanProductItemDto extends ReliabilityPlanProductItem { - private Integer rePlanId; + private Long rePlanId; } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java index 5a1cf60..b0b6ec8 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.inspect.mapper; +import com.ruoyi.framework.mybatis_config.MyBaseMapper; import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -15,13 +15,13 @@ * @author ld * @since 2025-04-01 05:12:38 */ -public interface ReliabilityPlanProductItemMapper extends BaseMapper<ReliabilityPlanProductItem> { +public interface ReliabilityPlanProductItemMapper extends MyBaseMapper<ReliabilityPlanProductItem> { - List<Map<String, Object>> itemList(@Param("planId") Integer rePlanId); + List<Map<String, Object>> itemList(@Param("planId") Long rePlanId); - List<Map<String, Object>> codeList(@Param("planId") Integer rePlanId); + List<Map<String, Object>> codeList(@Param("planId") Long rePlanId); - List<Map<String, Object>> materialItem(@Param("planId") Integer rePlanId); + List<Map<String, Object>> materialItem(@Param("planId") Long rePlanId); - List<Map<String, Object>> materialCodeList(@Param("planId") Integer rePlanId); + List<Map<String, Object>> materialCodeList(@Param("planId") Long rePlanId); } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java index b7b17de..7af2d7b 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java @@ -24,7 +24,7 @@ public class ReliabilityPlanProduct implements Serializable { @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; @ApiModelProperty("浜у搧鍚嶇О") private String productName; diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java index cc1e61f..05d9066 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java @@ -26,7 +26,7 @@ private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; @ApiModelProperty("妫�楠岄」") private String inspectionItem; @@ -41,7 +41,7 @@ private String remark; @ApiModelProperty("鍏宠仈鍙潬鎬ц鍒掍骇鍝乮d") - private Integer planId; + private Long planId; /** * 鎴愬搧/鍘熻緟鏉� */ diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java index b225652..ea3cb8d 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java @@ -31,75 +31,9 @@ @Override public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) { - // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹� - List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(reliabilityPlanProductItemDto.getRePlanId()); - List<ReliabilityPlanProductItem> newItemList = new ArrayList<>(); - for (Map<String, Object> map : maps) { - ReliabilityPlanProductItem item = new ReliabilityPlanProductItem(); - item.setInspectionItem((String) map.get("inspectionItem")); - item.setStandard((String) map.get("standard")); - item.setFrequency((String) map.get("frequency")); - item.setPlanId(reliabilityPlanProductItemDto.getRePlanId()); - item.setType(reliabilityPlanProductItemDto.getType()); - newItemList.add(item); - } - - // 鏌ヨ鏁版嵁搴撲腑宸插瓨鍦ㄧ殑鏁版嵁 - List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList( - new LambdaQueryWrapper<ReliabilityPlanProductItem>() + return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<ReliabilityPlanProductItem>() .eq(ReliabilityPlanProductItem::getPlanId, reliabilityPlanProductItemDto.getRePlanId()) - .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType()) - ); - - // 灏嗗凡瀛樺湪鐨勬暟鎹浆鎹负浠� inspectionItem_planId_type 涓洪敭鐨� Map - Map<String, ReliabilityPlanProductItem> existingItemMap = new HashMap<>(); - for (ReliabilityPlanProductItem item : existingItemList) { - StringBuilder keyBuilder = new StringBuilder(); - keyBuilder.append(item.getInspectionItem()) - .append("_") - .append(item.getPlanId()) - .append("_") - .append(item.getType()); - existingItemMap.put(keyBuilder.toString(), item); - } - - List<ReliabilityPlanProductItem> itemsToUpdate = new ArrayList<>(); - List<ReliabilityPlanProductItem> itemsToInsert = new ArrayList<>(); - - // 瀵规瘮鏂版暟鎹拰宸插瓨鍦ㄧ殑鏁版嵁锛屽尯鍒嗗嚭闇�瑕佹洿鏂板拰闇�瑕佹柊澧炵殑璁板綍 - for (ReliabilityPlanProductItem newItem : newItemList) { - StringBuilder keyBuilder = new StringBuilder(); - keyBuilder.append(newItem.getInspectionItem()) - .append("_") - .append(newItem.getPlanId()) - .append("_") - .append(newItem.getType()); - String key = keyBuilder.toString(); - ReliabilityPlanProductItem existingItem = existingItemMap.get(key); - if (existingItem != null) { - // 瀛樺湪鍒欐洿鏂� - existingItem.setStandard(newItem.getStandard()); - existingItem.setFrequency(newItem.getFrequency()); - itemsToUpdate.add(existingItem); - } else { - // 涓嶅瓨鍦ㄥ垯鏂板 - itemsToInsert.add(newItem); - } - } - - // 鎵ц鏇存柊鍜屾柊澧炴搷浣� - if (!itemsToUpdate.isEmpty()) { - saveOrUpdateBatch(itemsToUpdate); - } - if (!itemsToInsert.isEmpty()) { - saveBatch(itemsToInsert); - } - - // 鍙互鑰冭檻鍦ㄥ墠闈㈢殑鏌ヨ涓繚鐣欓渶瑕佺殑缁撴灉锛岄伩鍏嶅啀娆℃煡璇� - return existingItemList.stream() - .filter(item -> item.getPlanId().equals(reliabilityPlanProductItemDto.getRePlanId()) - && item.getType().equals(reliabilityPlanProductItemDto.getType())) - .collect(Collectors.toList()); + .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType())); } @Override diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java index 5d5158d..5d4abd1 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java @@ -1,17 +1,22 @@ package com.ruoyi.inspect.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.inspect.dto.ReliabilityPlanProductDto; +import com.ruoyi.inspect.mapper.ReliabilityPlanProductItemMapper; import com.ruoyi.inspect.pojo.ReliabilityPlanProduct; import com.ruoyi.inspect.mapper.ReliabilityPlanProductMapper; +import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem; import com.ruoyi.inspect.service.ReliabilityPlanProductService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import java.util.Objects; +import java.util.*; /** * <p> @@ -26,6 +31,7 @@ public class ReliabilityPlanProductServiceImpl extends ServiceImpl<ReliabilityPlanProductMapper, ReliabilityPlanProduct> implements ReliabilityPlanProductService { private ReliabilityPlanProductMapper reliabilityPlanProductMapper; + private ReliabilityPlanProductItemMapper reliabilityPlanProductItemMapper; @Override public IPage<ReliabilityPlanProduct> selectProduct(Page page, ReliabilityPlanProductDto reliabilityPlanProductDto) { @@ -34,17 +40,48 @@ @Override public int addOrUpdateProduct(ReliabilityPlanProductDto reliabilityPlanProductDto) { + int i; if (Objects.isNull(reliabilityPlanProductDto.getId())) { reliabilityPlanProductDto.setState(0); - return reliabilityPlanProductMapper.insert(reliabilityPlanProductDto); + i = reliabilityPlanProductMapper.insert(reliabilityPlanProductDto); } else { - // 瀹℃牳鐘舵�� 0.寰呮彁浜�1.寰呭鏍�2.閫氳繃3.涓嶉�氳繃 + // 瀹℃牳鐘舵�� 0.寰呮彁浜�1.寰呭鏍�2.閫氳繃3.涓嶉�氳繃 int state = reliabilityPlanProductDto.getState(); if (state != 0 && state != 1 && state != 2) { reliabilityPlanProductDto.setState(3); } - return reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto); + i = reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto); } + if (i > 0) { + Long id = reliabilityPlanProductDto.getId(); // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹� + List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(id); + List<ReliabilityPlanProductItem> newItemList = new ArrayList<>(); + for (Map<String, Object> map : maps) { + ReliabilityPlanProductItem item = new ReliabilityPlanProductItem(); + item.setInspectionItem((String) map.get("inspectionItem")); + item.setStandard((String) map.get("standard")); + item.setFrequency((String) map.get("frequency")); + item.setPlanId(id); + item.setType(reliabilityPlanProductDto.getItemType()); + newItemList.add(item); + } + // 鏌ヨ鏁版嵁搴撲腑宸插瓨鍦ㄧ殑鏁版嵁 + List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList( + new LambdaQueryWrapper<ReliabilityPlanProductItem>() + .eq(ReliabilityPlanProductItem::getPlanId, id) + .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType()) + ); + + if (!existingItemList.isEmpty()) { + // 濡傛灉鏈夋暟鎹紝鎵ц鍒犻櫎鎿嶄綔 + reliabilityPlanProductItemMapper.delete(new LambdaUpdateWrapper<ReliabilityPlanProductItem>() + .eq(ReliabilityPlanProductItem::getPlanId, id) + .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType()) + ); + } + reliabilityPlanProductItemMapper.insertBatchSomeColumn(newItemList); + } + return i; } @Override -- Gitblit v1.9.3