From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++++----
1 files changed, 115 insertions(+), 12 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
index f4d140a..9872363 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
@@ -4,20 +4,17 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.LocAreaMatsParam;
-import com.vincent.rsf.server.manager.entity.LocTypeRela;
-import com.vincent.rsf.server.manager.entity.Matnr;
+import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.mapper.LocAreaMatRelaMapper;
-import com.vincent.rsf.server.manager.entity.LocAreaMatRela;
-import com.vincent.rsf.server.manager.service.LocAreaMatRelaService;
+import com.vincent.rsf.server.manager.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vincent.rsf.server.manager.service.LocService;
-import com.vincent.rsf.server.manager.service.LocTypeRelaService;
-import com.vincent.rsf.server.manager.service.MatnrService;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -31,7 +28,13 @@
private LocService locService;
@Autowired
+ private MatnrGroupService matnrGroupService;
+
+ @Autowired
private LocTypeRelaService locTypeRelaService;
+
+ @Autowired
+ private LocTypeService locTypeService;
/**
@@ -51,7 +54,7 @@
}
matnrIds.addAll(list);
}
- if (!param.getMatnrId().isEmpty()) {
+ if (!Objects.isNull(param.getMatnrId()) && !param.getMatnrId().isEmpty()) {
List<Matnr> matnrs = matnrService.list(new LambdaQueryWrapper<Matnr>()
.select(Matnr::getId, Matnr::getGroupId)
.in(Matnr::getId, param.getMatnrId()));
@@ -61,7 +64,7 @@
matnrIds.addAll(matnrs);
}
List<LocAreaMatRela> locAreaMatRelas = new ArrayList<>();
- if (!param.getTypeId().isEmpty()) {
+ if (!Objects.isNull(param.getTypeId()) && !param.getTypeId().isEmpty()) {
for (Long typeId : param.getTypeId()) {
List<LocTypeRela> list = locTypeRelaService.list(new LambdaQueryWrapper<LocTypeRela>()
.select(LocTypeRela::getLocId).eq(LocTypeRela::getTypeId, typeId));
@@ -73,7 +76,8 @@
for (Matnr matnrId : matnrIds) {
LocAreaMatRela locAreaMatRela = new LocAreaMatRela();
locAreaMatRela
- .setAreaId(param.getAreaId())
+ .setAreaMatId(param.getAreaMatId())
+// .setAreaId(param.getAreaId())
.setLocId(locId)
.setLocTypeId(typeId)
.setMatnrId(matnrId.getId())
@@ -84,8 +88,10 @@
}
}
- if (!param.getLocId().isEmpty()) {
- List<LocTypeRela> list = locTypeRelaService.list(new LambdaQueryWrapper<LocTypeRela>().in(LocTypeRela::getLocId, param.getTypeId()).select(LocTypeRela::getTypeId, LocTypeRela::getLocId));
+ if (!Objects.isNull(param.getLocId()) && !param.getLocId().isEmpty()) {
+ List<LocTypeRela> list = locTypeRelaService.list(new LambdaQueryWrapper<LocTypeRela>()
+ .in(LocTypeRela::getLocId, param.getLocId())
+ .select(LocTypeRela::getTypeId, LocTypeRela::getLocId));
if (list.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛氬簱浣嶆湭缁戝畾搴撲綅绫诲瀷锛侊紒");
}
@@ -94,6 +100,7 @@
LocAreaMatRela locAreaMatRela = new LocAreaMatRela();
locAreaMatRela
.setAreaId(param.getAreaId())
+ .setAreaMatId(param.getAreaMatId())
.setLocId(locTypeRela.getLocId())
.setLocTypeId(locTypeRela.getTypeId())
.setMatnrId(matnr.getId())
@@ -107,4 +114,100 @@
}
return R.ok("缁戝畾鎴愬姛锛侊紒");
}
+
+ /**
+ * @author Ryan
+ * @description 绉婚櫎鐗╂枡鍒嗙粍涓嬬粦瀹氬叧绯�
+ * @param
+ * @return
+ * @time 2025/3/24 13:33
+ */
+ @Override
+ public Boolean removeByGroupId(Map<String, Object> param) {
+ if (Objects.isNull(param)) {
+ throw new CoolException("鐗╂枡鍒嗙粍ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (!StringUtils.isBlank(param.get("groupId").toString())) {
+ throw new CoolException("鐗╂枡鍒嗙被涓嶈兘涓虹┖锛侊紒");
+ }
+ if (!StringUtils.isBlank(param.get("areaMatId").toString())) {
+ throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (!this.remove(new LambdaQueryWrapper<LocAreaMatRela>()
+ .eq(LocAreaMatRela::getAreaMatId, Long.parseLong(param.get("areaMatId").toString()))
+ .eq(LocAreaMatRela::getGroupId, Long.parseLong(param.get("groupId").toString())))) {
+ throw new CoolException("鍒犻櫎澶辫触锛侊紒");
+ }
+
+ return true;
+ }
+
+ /**
+ * @author Ryan
+ * @description 绉婚櫎搴撲綅绫诲瀷缁戝畾鍏崇郴
+ * @param
+ * @return
+ * @time 2025/3/24 13:32
+ */
+ @Override
+ public boolean removeByLocType(Map<String, Object> param) {
+ if (Objects.isNull(param)) {
+ throw new CoolException("搴撲綅绫诲瀷ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (!this.remove(new LambdaQueryWrapper<LocAreaMatRela>()
+ .eq(LocAreaMatRela::getAreaMatId, Long.parseLong(param.get("areaMatId").toString()))
+ .eq(LocAreaMatRela::getLocTypeId, Long.parseLong(param.get("typeId").toString())))) {
+ throw new CoolException("鍒犻櫎澶辫触锛侊紒");
+ }
+
+ return true;
+ }
+
+ /**
+ * @author Ryan
+ * @description 鑾峰彇鐗╂枡鍒嗙粍
+ * @param
+ * @return
+ * @time 2025/3/24 13:32
+ */
+ @Override
+ public List<MatnrGroup> getAllGroups(Long id) {
+ if (Objects.isNull(id)) {
+ throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒");
+ }
+ List<LocAreaMatRela> locAreaMatRelas = this.list(new LambdaQueryWrapper<LocAreaMatRela>().eq(LocAreaMatRela::getAreaMatId, id));
+ if (locAreaMatRelas.isEmpty()) {
+ return new ArrayList<>();
+ }
+ List<Long> longList = locAreaMatRelas.stream().map(LocAreaMatRela::getGroupId).collect(Collectors.toList());
+ List<MatnrGroup> groups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().in(MatnrGroup::getId, longList));
+ if (groups.isEmpty()) {
+ return new ArrayList<>();
+ }
+ return groups;
+ }
+
+ /**
+ * @author Ryan
+ * @description 鑾峰彇缁戝畾搴撲綅鐗╂枡
+ * @param
+ * @return
+ * @time 2025/3/24 13:36
+ */
+ @Override
+ public List<LocType> getAllLocType(Long id) {
+ if (Objects.isNull(id)) {
+ throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒");
+ }
+ List<LocAreaMatRela> locAreaMatRelas = this.list(new LambdaQueryWrapper<LocAreaMatRela>().eq(LocAreaMatRela::getAreaMatId, id));
+ if (locAreaMatRelas.isEmpty()) {
+ return new ArrayList<>();
+ }
+ List<Long> longList = locAreaMatRelas.stream().map(LocAreaMatRela::getLocTypeId).collect(Collectors.toList());
+ List<LocType> list = locTypeService.list(new LambdaQueryWrapper<LocType>().in(LocType::getId, longList));
+ if (list.isEmpty()) {
+ return new ArrayList<>();
+ }
+ return list;
+ }
}
--
Gitblit v1.9.1