From a15ad9309f383153d4f5a95a044fb19e882fff55 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 18 七月 2025 15:19:52 +0800 Subject: [PATCH] 平库组库功能优化 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java index 577f45d..6b53069 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java @@ -1,14 +1,18 @@ package com.zy.asrs.wms.asrs.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType; import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; +import com.zy.asrs.wms.asrs.entity.param.BindPlatformParam; import com.zy.asrs.wms.asrs.entity.param.PlatformShippedParam; import com.zy.asrs.wms.asrs.mapper.PlatformMapper; import com.zy.asrs.wms.asrs.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +20,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; @Service("platformService") public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService { @@ -40,6 +45,8 @@ private WaveLogService waveLogService; @Autowired private WaveDetlLogService waveDetlLogService; + @Autowired + private WaveSeedService waveSeedService; @Override @Transactional(rollbackFor = Exception.class) @@ -143,6 +150,7 @@ cacheSite.setOrderId(null); cacheSite.setOrderNo(null); cacheSite.setPlatformId(null); + cacheSite.setBarcode(null); cacheSite.setPlatformNo(null); cacheSite.setUpdateTime(new Date()); if (!cacheSiteService.updateById(cacheSite)) { @@ -165,4 +173,67 @@ } } + + @Override + @Transactional(rollbackFor = Exception.class) + public R bindShippingPlatform(BindPlatformParam platform) { + if (Objects.isNull(platform.getPlatformId())) { + throw new CoolException("闆嗚揣鍖烘爣璇嗕笉鑳戒负绌猴紒锛�"); + } + if (Objects.isNull(platform.getOrderId())) { + throw new CoolException("璁㈠崟缂栫爜涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(platform.getWaveId())) { + throw new CoolException("娉㈡ID涓嶈兘涓虹┖锛侊紒"); + } + Platform pl = this.getById(platform.getPlatformId()); + if (Objects.isNull(pl)) { + throw new CoolException("闆嗚揣鍖轰笉瀛樺湪锛侊紒"); + } + + List<CacheSite> list = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>() + .eq(CacheSite::getOrderId, platform.getOrderId())); + if (list.isEmpty()) { + throw new CoolException("璁㈠崟鏈粦瀹氭挱绉嶅簱浣嶏紝璇峰畬鎴愭嫞璐у悗锛屽啀鎵撳嵃璁㈠崟锛侊紒"); + } + + if (!cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>() + .eq(CacheSite::getOrderId, platform.getOrderId()) + .set(CacheSite::getPlatformId, pl.getId()) + .set(CacheSite::getPlatformNo, pl.getPlatformNo()))) { + throw new CoolException("鎾澧欑珯鐐圭粦瀹氶泦璐у尯澶辫触!!"); + } + + List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>() + .eq(WaveSeed::getWaveId, platform.getWaveId()) + .eq(WaveSeed::getOrderId, platform.getOrderId())); + if (waveSeeds.isEmpty()) { + throw new CoolException("鍒嗘嫞鏄庣粏淇℃伅涓嶅瓨鍦紝鏁版嵁閿欒锛侊紒"); + } + + ArrayList<PlatformDetl> detls = new ArrayList<>(); + for (WaveSeed waveSeed : waveSeeds) { + PlatformDetl platformDetl = new PlatformDetl(); + BeanUtils.copyProperties(waveSeed, platformDetl); + platformDetl.setPlatformId(pl.getId()); + platformDetl.setPlatformNo(pl.getPlatformNo()); + + List<PlatformDetl> plats = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>() + .eq(PlatformDetl::getTaskDetlId, waveSeed.getTaskDetlId()) + .eq(PlatformDetl::getOrderDetlId, waveSeed.getOrderDetlId()) + .eq(PlatformDetl::getMatnr, waveSeed.getMatnr())); + if (!plats.isEmpty()) { + continue; + } + detls.add(platformDetl); + } + + if (!detls.isEmpty()) { + if (!platformDetlService.saveOrUpdateBatch(detls)) { + throw new CoolException("闆嗚揣鍖烘槑缁嗕繚瀛樺け璐ワ紒锛�"); + } + } + + return R.ok("缁戝畾鎴愬姛锛侊紒"); + } } -- Gitblit v1.9.1