From 158ef0f443b9f36f8beb44853ed1f39449c45c1d Mon Sep 17 00:00:00 2001 From: yangyang Date: 星期五, 21 三月 2025 10:55:37 +0800 Subject: [PATCH] #修改 1. 动态扩展字段优化 2. 物料优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java | 35 +++++++++++++++++++++++++++++------ 1 files changed, 29 insertions(+), 6 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java index 22980b3..b363b77 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java @@ -1,6 +1,7 @@ package com.vincent.rsf.server.manager.service.impl; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; @@ -11,6 +12,7 @@ import com.vincent.rsf.server.manager.entity.WarehouseAreas; import com.vincent.rsf.server.manager.mapper.LocMapper; import com.vincent.rsf.server.manager.entity.Loc; +import com.vincent.rsf.server.manager.mapper.LocTypeRelaMapper; import com.vincent.rsf.server.manager.service.LocService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.manager.service.LocTypeRelaService; @@ -35,6 +37,9 @@ @Autowired private LocTypeRelaService locTypeRelaService; + @Autowired + private LocTypeRelaMapper locTypeRelaMapper; + @Override public R modifyLocs(LocModifyParams locs) { if (locs.getId().isEmpty()) { @@ -49,6 +54,8 @@ boolean update = this.update(new LambdaUpdateWrapper<Loc>() .in(Loc::getId, locs.getId()) .eq(Loc::getStatus, 1) + .set(!Objects.isNull(loc.getAreaId()), Loc::getAreaId, loc.getAreaId()) + .set(!Objects.isNull(loc.getWarehouseId()), Loc::getWarehouseId, loc.getWarehouseId()) .set(!Objects.isNull(loc.getUseStatus()), Loc::getUseStatus, loc.getUseStatus()) .set(!Objects.isNull(loc.getType()), Loc::getType, loc.getType()) .set(!Objects.isNull(loc.getLength()), Loc::getLength, loc.getLength()) @@ -88,7 +95,7 @@ .setCol(b) .setLev(l) .setAreaId(param.getAreaId()) - .setWarehouseId(warehouseAreas.getWareId()) + .setWarehouseId(warehouseAreas.getWarehouseId()) .setType(param.getType()); list.add(loc); @@ -102,18 +109,34 @@ } @Override - @Transactional(rollbackFor = Exception.class) public boolean saveType(Loc loc) { + List<LocTypeRela> relas = new ArrayList<>(); - List<Long> lists = JSONArray.parseArray(loc.getTypeIds(), Long.class); - lists.forEach(id -> { + loc.getTypeIds().forEach(id -> { LocTypeRela typeRela = new LocTypeRela(); typeRela.setTypeId(id) .setLocId(loc.getId()); relas.add(typeRela); }); - if (!locTypeRelaService.saveBatch(relas)) { - throw new CoolException("搴撲綅鍏宠仈鍏崇郴淇濆瓨鎴愬姛锛侊紒"); + if (!locTypeRelaService.saveOrUpdateBatch(relas)) { + throw new CoolException("搴撲綅鍏宠仈鍏崇郴淇濆瓨澶辫触锛侊紒"); + } + return true; + } + + @Override + public boolean updateLoc(Loc loc) { + locTypeRelaMapper.delete(new LambdaQueryWrapper<LocTypeRela>().eq(LocTypeRela::getLocId, loc.getId())); + + List<LocTypeRela> relas = new ArrayList<>(); + loc.getTypeIds().forEach(id -> { + LocTypeRela typeRela = new LocTypeRela(); + typeRela.setTypeId(id) + .setLocId(loc.getId()); + relas.add(typeRela); + }); + if (!locTypeRelaService.saveOrUpdateBatch(relas)) { + throw new CoolException("搴撲綅鍏宠仈鍏崇郴淇濆瓨澶辫触锛侊紒"); } return true; } -- Gitblit v1.9.1