From ef69d3bad0c7f03da11cb1c1e46a84bcebe02bc4 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 25 三月 2025 10:44:48 +0800 Subject: [PATCH] 修改 # 物料分组编码规则优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java | 123 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 112 insertions(+), 11 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..2c7f1c0 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,6 +76,7 @@ for (Matnr matnrId : matnrIds) { LocAreaMatRela locAreaMatRela = new LocAreaMatRela(); locAreaMatRela + .setAreaMatId(param.getAreaMatId()) .setAreaId(param.getAreaId()) .setLocId(locId) .setLocTypeId(typeId) @@ -84,8 +88,8 @@ } } - 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 +98,7 @@ LocAreaMatRela locAreaMatRela = new LocAreaMatRela(); locAreaMatRela .setAreaId(param.getAreaId()) + .setAreaMatId(param.getAreaMatId()) .setLocId(locTypeRela.getLocId()) .setLocTypeId(locTypeRela.getTypeId()) .setMatnrId(matnr.getId()) @@ -107,4 +112,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()) { + throw new CoolException("搴撳尯缁戝畾鐗╂枡涓虹┖锛侊紒"); + } + 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()) { + throw new CoolException("鏁版嵁閿欒锛氱墿鏂欏垎缁勪笉瀛樺湪锛侊紒"); + } + 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()) { + throw new CoolException("搴撳尯缁戝畾鐗╂枡涓虹┖锛侊紒"); + } + 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()) { + throw new CoolException("鏁版嵁閿欒锛氬簱浣嶇被鍨嬩笉瀛樺湪锛侊紒"); + } + return list; + } } -- Gitblit v1.9.1