From d52bab61f91056e75e60ddeda76a72cd1bd63615 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 07 八月 2025 14:40:00 +0800
Subject: [PATCH] no message
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java | 405 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 239 insertions(+), 166 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 cdb9aff..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,166 +1,239 @@
-package com.zy.asrs.wms.asrs.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-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.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.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-@Service("platformService")
-public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService {
-
- @Autowired
- private PlatformDetlService platformDetlService;
- @Autowired
- private PlatformDetlLogService platformDetlLogService;
- @Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
- private TaskService taskService;
- @Autowired
- private CacheSiteService cacheSiteService;
- @Autowired
- private WaveService waveService;
- @Autowired
- private WaveDetlService waveDetlService;
- @Autowired
- private WaveLogService waveLogService;
- @Autowired
- private WaveDetlLogService waveDetlLogService;
-
- @Override
- public void shipped(PlatformShippedParam param) {
- if (param == null) {
- throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
- }
-
- if (param.getPlatformId() == null) {
- throw new CoolException("闆嗚揣鍖哄煙鍙傛暟涓嶈兘涓虹┖");
- }
-
- Platform platform = this.getById(param.getPlatformId());
- if(platform == null) {
- throw new CoolException("闆嗚揣鍖哄煙鏁版嵁涓嶅瓨鍦�");
- }
-
- List<PlatformDetl> detls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getPlatformId, platform.getId()));
- if (detls.isEmpty()) {
- throw new CoolException("闆嗚揣鍖哄煙搴撳瓨涓虹┖");
- }
-
- ArrayList<Long> orderIds = new ArrayList<>();
- for (PlatformDetl detl : detls) {
- if (!orderIds.contains(detl.getOrderId())) {
- orderIds.add(detl.getOrderId());
- }
- }
-
- List<Order> orderList = orderService.listByIds(orderIds);
- if(orderList.isEmpty()) {
- throw new CoolException("璁㈠崟鏁版嵁涓嶅瓨鍦�");
- }
-
- ArrayList<Long> waveIds = new ArrayList<>();
- for (Order order : orderList) {
- waveIds.add(order.getWaveId());
- }
-
- if (waveIds.isEmpty()) {
- throw new CoolException("娉㈡涓嶅瓨鍦�");
- }
-
- List<Task> waitTasks = taskService.selectWaitWaveOut(waveIds);
- if (!waitTasks.isEmpty()) {
- throw new CoolException("娉㈡瀛樺湪鏈畬鎴愪换鍔�");
- }
-
- for (PlatformDetl detl : detls) {
- OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
- orderDetl.setQty(orderDetl.getQty() + detl.getQty());
- orderDetl.setWorkQty(orderDetl.getWorkQty() - detl.getAnfme());
- orderDetl.setUpdateTime(new Date());
- if (!orderDetlService.updateById(orderDetl)) {
- throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
- }
- }
-
- List<Wave> waves = waveService.listByIds(waveIds);
- for (Wave wave : waves) {
- WaveLog waveLog = new WaveLog();
- waveLog.sync(wave);
- waveLog.setId(null);
- if (!waveLogService.save(waveLog)) {
- throw new CoolException("娉㈡杞巻鍙插け璐�");
- }
-
- List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
- for (WaveDetl waveDetl : waveDetls) {
- WaveDetlLog waveDetlLog = new WaveDetlLog();
- waveDetlLog.sync(waveDetl);
- waveDetlLog.setId(null);
- waveDetlLog.setWaveId(waveLog.getId());
- if (!waveDetlLogService.save(waveDetlLog)) {
- throw new CoolException("娉㈡鏄庣粏杞巻鍙插け璐�");
- }
-
- if (!waveDetlService.removeById(waveDetl.getId())) {
- throw new CoolException("娉㈡鏄庣粏鍒犻櫎澶辫触");
- }
- }
-
- if (!waveService.removeById(wave.getId())) {
- throw new CoolException("娉㈡鍒犻櫎澶辫触");
- }
- }
-
- List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
- for (Order order : orders) {
- order.setOrderSettle(OrderSettleType.COMPLETE.val());
- order.setUpdateTime(new Date());
- if (!orderService.updateById(order)) {
- throw new CoolException("璁㈠崟鏇存柊澶辫触");
- }
- }
-
- List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getPlatformId, platform.getId()));
- for (CacheSite cacheSite : cacheSites) {
- if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
- cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
- cacheSite.setOrderId(null);
- cacheSite.setOrderNo(null);
- cacheSite.setPlatformId(null);
- cacheSite.setPlatformNo(null);
- cacheSite.setUpdateTime(new Date());
- if (!cacheSiteService.updateById(cacheSite)) {
- throw new CoolException("鎾绔欑偣鏇存柊澶辫触");
- }
- }
- }
-
- for (PlatformDetl detl : detls) {
- PlatformDetlLog platformDetlLog = new PlatformDetlLog();
- platformDetlLog.sync(detl);
- platformDetlLog.setId(null);
- if (!platformDetlLogService.save(platformDetlLog)) {
- throw new CoolException("闆嗚揣鍖哄煙搴撳瓨杞巻鍙插け璐�");
- }
-
- if (!platformDetlService.removeById(detl.getId())) {
- throw new CoolException("闆嗚揣鍖哄煙鍒犻櫎澶辫触");
- }
- }
-
- }
-}
+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;
+
+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 {
+
+ @Autowired
+ private PlatformDetlService platformDetlService;
+ @Autowired
+ private PlatformDetlLogService platformDetlLogService;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private CacheSiteService cacheSiteService;
+ @Autowired
+ private WaveService waveService;
+ @Autowired
+ private WaveDetlService waveDetlService;
+ @Autowired
+ private WaveLogService waveLogService;
+ @Autowired
+ private WaveDetlLogService waveDetlLogService;
+ @Autowired
+ private WaveSeedService waveSeedService;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void shipped(PlatformShippedParam param) {
+ if (param == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ if (param.getPlatformId() == null) {
+ throw new CoolException("闆嗚揣鍖哄煙鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ Platform platform = this.getById(param.getPlatformId());
+ if(platform == null) {
+ throw new CoolException("闆嗚揣鍖哄煙鏁版嵁涓嶅瓨鍦�");
+ }
+
+ List<PlatformDetl> detls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getPlatformId, platform.getId()));
+ if (detls.isEmpty()) {
+ throw new CoolException("闆嗚揣鍖哄煙搴撳瓨涓虹┖");
+ }
+
+ ArrayList<Long> orderIds = new ArrayList<>();
+ for (PlatformDetl detl : detls) {
+ if (!orderIds.contains(detl.getOrderId())) {
+ orderIds.add(detl.getOrderId());
+ }
+ }
+
+ List<Order> orderList = orderService.listByIds(orderIds);
+ if(orderList.isEmpty()) {
+ throw new CoolException("璁㈠崟鏁版嵁涓嶅瓨鍦�");
+ }
+
+ ArrayList<Long> waveIds = new ArrayList<>();
+ for (Order order : orderList) {
+ waveIds.add(order.getWaveId());
+ }
+
+ if (waveIds.isEmpty()) {
+ throw new CoolException("娉㈡涓嶅瓨鍦�");
+ }
+
+ List<Task> waitTasks = taskService.selectWaitWaveOut(waveIds);
+ if (!waitTasks.isEmpty()) {
+ throw new CoolException("娉㈡瀛樺湪鏈畬鎴愪换鍔�");
+ }
+
+ for (PlatformDetl detl : detls) {
+ OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
+ orderDetl.setQty(orderDetl.getQty() + detl.getQty());
+ orderDetl.setWorkQty(orderDetl.getWorkQty() - detl.getAnfme());
+ orderDetl.setUpdateTime(new Date());
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
+ }
+ }
+
+ List<Wave> waves = waveService.listByIds(waveIds);
+ for (Wave wave : waves) {
+ WaveLog waveLog = new WaveLog();
+ waveLog.sync(wave);
+ waveLog.setId(null);
+ if (!waveLogService.save(waveLog)) {
+ throw new CoolException("娉㈡杞巻鍙插け璐�");
+ }
+
+ List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
+ for (WaveDetl waveDetl : waveDetls) {
+ WaveDetlLog waveDetlLog = new WaveDetlLog();
+ waveDetlLog.sync(waveDetl);
+ waveDetlLog.setId(null);
+ waveDetlLog.setWaveId(waveLog.getId());
+ if (!waveDetlLogService.save(waveDetlLog)) {
+ throw new CoolException("娉㈡鏄庣粏杞巻鍙插け璐�");
+ }
+
+ if (!waveDetlService.removeById(waveDetl.getId())) {
+ throw new CoolException("娉㈡鏄庣粏鍒犻櫎澶辫触");
+ }
+ }
+
+ if (!waveService.removeById(wave.getId())) {
+ throw new CoolException("娉㈡鍒犻櫎澶辫触");
+ }
+ }
+
+ List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
+ for (Order order : orders) {
+ order.setOrderSettle(OrderSettleType.COMPLETE.val());
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鏇存柊澶辫触");
+ }
+ }
+
+ List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getPlatformId, platform.getId()));
+ for (CacheSite cacheSite : cacheSites) {
+ if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
+ cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+ cacheSite.setOrderId(null);
+ cacheSite.setOrderNo(null);
+ cacheSite.setPlatformId(null);
+ cacheSite.setBarcode(null);
+ cacheSite.setPlatformNo(null);
+ cacheSite.setUpdateTime(new Date());
+ if (!cacheSiteService.updateById(cacheSite)) {
+ throw new CoolException("鎾绔欑偣鏇存柊澶辫触");
+ }
+ }
+ }
+
+ for (PlatformDetl detl : detls) {
+ PlatformDetlLog platformDetlLog = new PlatformDetlLog();
+ platformDetlLog.sync(detl);
+ platformDetlLog.setId(null);
+ if (!platformDetlLogService.save(platformDetlLog)) {
+ throw new CoolException("闆嗚揣鍖哄煙搴撳瓨杞巻鍙插け璐�");
+ }
+
+ if (!platformDetlService.removeById(detl.getId())) {
+ throw new CoolException("闆嗚揣鍖哄煙鍒犻櫎澶辫触");
+ }
+ }
+
+ }
+
+ @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