From 669fe984048785873c20fbd0ce8abb3cd52c1fce Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 29 四月 2025 15:22:24 +0800 Subject: [PATCH] 新增出库单优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java | 121 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 112 insertions(+), 9 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 dce36e7..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; /** @@ -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()) @@ -85,7 +89,9 @@ } 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)); + 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