From 234415a381da98992240dc7c673614f49d1dee32 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 六月 2025 10:00:30 +0800
Subject: [PATCH] Merge branch 'ycds-wms-dev' of http://47.97.1.152:5880/r/zy-asrs-master into ycds-wms-dev
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java | 392 ++++++++++++++++++++++++++++---------------------------
1 files changed, 198 insertions(+), 194 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java
index 6c0acd9..f4c9ce1 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java
@@ -1,194 +1,198 @@
-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.TaskStsType;
-import com.zy.asrs.wms.asrs.entity.param.SeedCompleteParam;
-import com.zy.asrs.wms.asrs.mapper.CacheSiteMapper;
-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.*;
-
-@Service("cacheSiteService")
-public class CacheSiteServiceImpl extends ServiceImpl<CacheSiteMapper, CacheSite> implements CacheSiteService {
-
- @Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
- private WaveSeedService waveSeedService;
- @Autowired
- private WaveSeedLogService waveSeedLogService;
- @Autowired
- private TaskService taskService;
- @Autowired
- private TaskDetlService taskDetlService;
- @Autowired
- private PlatformService platformService;
- @Autowired
- private PlatformDetlService platformDetlService;
-
-
- @Override
- public List<String> getChannelList() {
- return this.baseMapper.getChannelList();
- }
-
- @Override
- public boolean seedCompletePreview(SeedCompleteParam param) {
- if (param == null) {
- throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
- }
-
- String siteNo = param.getSiteNo();
- if (siteNo == null) {
- throw new CoolException("鎾绔欑偣缂栧彿涓嶈兘涓虹┖");
- }
-
- CacheSite cacheSite = this.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteNo, siteNo));
- if(cacheSite == null){
- throw new CoolException("鎾绔欑偣涓嶅瓨鍦�");
- }
-
- if (cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
- throw new CoolException("绔欑偣鐘舵�佸紓甯�");
- }
-
- Long orderId = cacheSite.getOrderId();
- Order order = orderService.getById(orderId);
- if (order == null) {
- throw new CoolException("璁㈠崟涓嶅瓨鍦�");
- }
-
- HashMap<Long, Double> stockMap = new HashMap<>();
- List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderId, orderId));
- for (WaveSeed waveSeed : waveSeeds) {
- Double anfme = stockMap.get(waveSeed.getOrderDetlId());
- if (anfme == null) {
- anfme = 0.0D;
- }
- anfme += waveSeed.getWorkQty();
- stockMap.put(waveSeed.getOrderDetlId(), anfme);
- }
-
- List<OrderDetl> orderDetls = orderDetlService.getOrderDetlByOrderId(orderId);
- boolean check = true;
- for (OrderDetl orderDetl : orderDetls) {
- Double anfme = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty() - orderDetl.getQty()).orElse(0.0D);
- Double workQty = stockMap.get(orderDetl.getId());
- if (!anfme.equals(workQty)) {
- check = false;
- break;
- }
- }
-
- return check;
- }
-
- @Override
- public void seedComplete(SeedCompleteParam param) {
- if (param == null) {
- throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
- }
-
- String siteNo = param.getSiteNo();
- if (siteNo == null) {
- throw new CoolException("鎾绔欑偣缂栧彿涓嶈兘涓虹┖");
- }
-
- CacheSite cacheSite = this.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteNo, siteNo));
- if(cacheSite == null){
- throw new CoolException("鎾绔欑偣涓嶅瓨鍦�");
- }
-
- if (cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
- throw new CoolException("绔欑偣鐘舵�佸紓甯�");
- }
-
- if (cacheSite.getPlatformId() == null) {
- throw new CoolException("闆嗚揣鍖哄煙鏈粦瀹�");
- }
-
- Long orderId = cacheSite.getOrderId();
- Order order = orderService.getById(orderId);
- if (order == null) {
- throw new CoolException("璁㈠崟涓嶅瓨鍦�");
- }
- Long waveId = order.getWaveId();
-
- boolean check = this.seedCompletePreview(param);
- if (!check) {//璁㈠崟鏈鐞嗗畬鎴�
- List<Long> taskIds = new ArrayList<>();
- List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getWaveId, waveId));
- for (TaskDetl taskDetl : taskDetls) {
- if(!taskIds.contains(taskDetl.getTaskId())){
- taskIds.add(taskDetl.getTaskId());
- }
- }
-
- if (!taskIds.isEmpty()) {
- List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, taskIds).notIn(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id, TaskStsType.UPDATED_OUT.id));
- if (!tasks.isEmpty()) {
- throw new CoolException("瀛樺湪鏈畬鎴愪换鍔�");
- }
- }
- }
-
- Platform platform = platformService.getById(cacheSite.getPlatformId());
- if(platform == null){
- throw new CoolException("闆嗚揣鍖哄煙涓嶅瓨鍦�");
- }
-
- List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderId, orderId));
- if (waveSeeds.isEmpty()) {
- throw new CoolException("鎾鏁版嵁涓嶅瓨鍦�");
- }
-
- for (WaveSeed waveSeed : waveSeeds) {
- PlatformDetl platformDetl = new PlatformDetl();
- platformDetl.setPlatformId(platform.getId());
- platformDetl.setPlatformNo(platform.getPlatformNo());
- platformDetl.setOrderId(orderId);
- platformDetl.setOrderDetlId(waveSeed.getOrderDetlId());
- platformDetl.setTaskDetlId(waveSeed.getTaskDetlId());
- platformDetl.setMatnr(waveSeed.getMatnr());
- platformDetl.setBatch(waveSeed.getBatch());
- platformDetl.setFieldParams(waveSeed.getFieldParams());
- platformDetl.setAnfme(waveSeed.getAnfme());
- platformDetl.setQty(waveSeed.getWorkQty());
-
- if (!platformDetlService.save(platformDetl)) {
- throw new CoolException("闆嗚揣鍖哄煙搴撳瓨鎻掑叆澶辫触");
- }
-
-
- WaveSeedLog waveSeedLog = new WaveSeedLog();
- waveSeedLog.sync(waveSeed);
- waveSeedLog.setId(null);
- if (!waveSeedLogService.save(waveSeedLog)) {
- throw new CoolException("鎾鏁版嵁杞巻鍙插け璐�");
- }
-
- if (!waveSeedService.removeById(waveSeed.getId())) {
- throw new CoolException("鎾鏁版嵁鍒犻櫎澶辫触");
- }
- }
-
- cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
- cacheSite.setOrderId(null);
- cacheSite.setOrderNo(null);
- cacheSite.setPlatformId(null);
- cacheSite.setPlatformNo(null);
- cacheSite.setUpdateTime(new Date());
- if (!this.updateById(cacheSite)) {
- throw new CoolException("鏇存柊鎾绔欑偣鏁版嵁澶辫触");
- }
-
- }
-}
+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.TaskStsType;
+import com.zy.asrs.wms.asrs.entity.param.SeedCompleteParam;
+import com.zy.asrs.wms.asrs.mapper.CacheSiteMapper;
+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.*;
+import java.util.stream.Collectors;
+
+@Service("cacheSiteService")
+public class CacheSiteServiceImpl extends ServiceImpl<CacheSiteMapper, CacheSite> implements CacheSiteService {
+
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private WaveSeedService waveSeedService;
+ @Autowired
+ private WaveSeedLogService waveSeedLogService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private TaskDetlService taskDetlService;
+ @Autowired
+ private PlatformService platformService;
+ @Autowired
+ private PlatformDetlService platformDetlService;
+
+
+ @Override
+ public List<String> getChannelList() {
+ return this.baseMapper.getChannelList();
+ }
+
+ @Override
+ public boolean seedCompletePreview(SeedCompleteParam param) {
+ if (param == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ String siteNo = param.getSiteNo();
+ if (siteNo == null) {
+ throw new CoolException("鎾绔欑偣缂栧彿涓嶈兘涓虹┖");
+ }
+
+ CacheSite cacheSite = this.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteNo, siteNo));
+ if(cacheSite == null){
+ throw new CoolException("鎾绔欑偣涓嶅瓨鍦�");
+ }
+
+ if (cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
+ throw new CoolException("绔欑偣鐘舵�佸紓甯�");
+ }
+
+ Long orderId = cacheSite.getOrderId();
+ Order order = orderService.getById(orderId);
+ if (order == null) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ HashMap<Long, Double> stockMap = new HashMap<>();
+ List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderId, orderId));
+ //fixme 鏍¢獙褰撳墠璁㈠崟鏄惁瀹屾垚鎾锛岄渶瑕佽幏鍙栧綋鍓嶆尝娆℃墍鏈変换鍔′腑A鐗╂枡鐨勬墽琛屾暟閲忔槸鍚︾瓑浜庤鍗曠殑鎬婚噺-宸插畬鎴愭暟閲�(anfme - qty) 鎴栬�� 浠诲姟涓凡鎵ц鏁伴噺鏄惁绛夎鍗曚腑鐨勬墽琛屾暟閲� workQty = workQty
+ List<OrderDetl> orderDetls = orderDetlService.getOrderDetlByOrderId(orderId);
+
+ for (WaveSeed waveSeed : waveSeeds) {
+ Double anfme = stockMap.get(waveSeed.getOrderDetlId());
+ if (anfme == null) {
+ anfme = 0.0D;
+ }
+ anfme += waveSeed.getWorkQty();
+ stockMap.put(waveSeed.getOrderDetlId(), anfme);
+ }
+
+ boolean check = true;
+ for (OrderDetl orderDetl : orderDetls) {
+ Double anfme = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+ Double workQty = stockMap.get(orderDetl.getId());
+ if (!anfme.equals(workQty)) {
+ check = false;
+ break;
+ }
+ }
+
+ return check;
+ }
+
+ @Override
+ public void seedComplete(SeedCompleteParam param) {
+ if (param == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ String siteNo = param.getSiteNo();
+ if (siteNo == null) {
+ throw new CoolException("鎾绔欑偣缂栧彿涓嶈兘涓虹┖");
+ }
+
+ CacheSite cacheSite = this.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteNo, siteNo));
+ if(cacheSite == null){
+ throw new CoolException("鎾绔欑偣涓嶅瓨鍦�");
+ }
+
+ if (cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
+ throw new CoolException("绔欑偣鐘舵�佸紓甯�");
+ }
+
+ if (cacheSite.getPlatformId() == null) {
+ throw new CoolException("闆嗚揣鍖哄煙鏈粦瀹�");
+ }
+
+ Long orderId = cacheSite.getOrderId();
+ Order order = orderService.getById(orderId);
+ if (order == null) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+ Long waveId = order.getWaveId();
+
+ boolean check = this.seedCompletePreview(param);
+
+ if (!check) {//璁㈠崟鏈鐞嗗畬鎴�
+ List<Long> taskIds = new ArrayList<>();
+ List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getWaveId, waveId));
+ for (TaskDetl taskDetl : taskDetls) {
+ if(!taskIds.contains(taskDetl.getTaskId())){
+ taskIds.add(taskDetl.getTaskId());
+ }
+ }
+
+ if (!taskIds.isEmpty()) {
+ List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, taskIds).notIn(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id, TaskStsType.UPDATED_OUT.id));
+ if (!tasks.isEmpty()) {
+ throw new CoolException("瀛樺湪鏈畬鎴愪换鍔�");
+ }
+ }
+ }
+
+ Platform platform = platformService.getById(cacheSite.getPlatformId());
+ if(platform == null){
+ throw new CoolException("闆嗚揣鍖哄煙涓嶅瓨鍦�");
+ }
+
+ List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderId, orderId));
+ if (waveSeeds.isEmpty()) {
+ throw new CoolException("鎾鏁版嵁涓嶅瓨鍦�");
+ }
+
+ for (WaveSeed waveSeed : waveSeeds) {
+ PlatformDetl platformDetl = new PlatformDetl();
+ platformDetl.setPlatformId(platform.getId());
+ platformDetl.setPlatformNo(platform.getPlatformNo());
+ platformDetl.setOrderId(orderId);
+ platformDetl.setOrderDetlId(waveSeed.getOrderDetlId());
+ platformDetl.setTaskDetlId(waveSeed.getTaskDetlId());
+ platformDetl.setMatnr(waveSeed.getMatnr());
+ platformDetl.setBatch(waveSeed.getBatch());
+ platformDetl.setFieldParams(waveSeed.getFieldParams());
+ platformDetl.setAnfme(waveSeed.getAnfme());
+ platformDetl.setQty(waveSeed.getWorkQty());
+
+ if (!platformDetlService.save(platformDetl)) {
+ throw new CoolException("闆嗚揣鍖哄煙搴撳瓨鎻掑叆澶辫触");
+ }
+
+
+ WaveSeedLog waveSeedLog = new WaveSeedLog();
+ waveSeedLog.sync(waveSeed);
+ waveSeedLog.setId(null);
+ if (!waveSeedLogService.save(waveSeedLog)) {
+ throw new CoolException("鎾鏁版嵁杞巻鍙插け璐�");
+ }
+
+ if (!waveSeedService.removeById(waveSeed.getId())) {
+ throw new CoolException("鎾鏁版嵁鍒犻櫎澶辫触");
+ }
+ }
+
+ cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+ cacheSite.setOrderId(null);
+ cacheSite.setOrderNo(null);
+ cacheSite.setPlatformId(null);
+ cacheSite.setPlatformNo(null);
+ cacheSite.setUpdateTime(new Date());
+ if (!this.updateById(cacheSite)) {
+ throw new CoolException("鏇存柊鎾绔欑偣鏁版嵁澶辫触");
+ }
+
+ }
+}
--
Gitblit v1.9.1