From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java | 388 +++++++++++++++++++++++++++--------------------------- 1 files changed, 194 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 11ffc4b..d1b99b5 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,194 @@ -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.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.*; + +@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.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