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/timer/TaskTimer.java | 846 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 423 insertions(+), 423 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java index 7f0389f..fb9cc2e 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java @@ -1,423 +1,423 @@ -package com.zy.asrs.wms.asrs.timer; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; -import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; -import com.zy.asrs.framework.exception.CoolException; -import com.zy.asrs.wms.asrs.entity.*; -import com.zy.asrs.wms.asrs.entity.enums.LocStsType; -import com.zy.asrs.wms.asrs.entity.enums.TaskStsType; -import com.zy.asrs.wms.asrs.service.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; - -import java.util.Date; -import java.util.List; - -@Component -public class TaskTimer { - - @Autowired - private TaskService taskService; - - @Autowired - private TaskDetlService taskDetlService; - - @Autowired - private TaskDetlFieldService taskDetlFieldService; - - @Autowired - private LocService locService; - - @Autowired - private LocDetlService locDetlService; - - @Autowired - private LocDetlFieldService locDetlFieldService; - - @Autowired - private WaitPakinService waitPakinService; - - @Autowired - private WaitPakinLogService waitPakinLogService; - - @Autowired - private TaskDetlLogService taskDetlLogService; - - @Autowired - private TaskDetlFieldLogService taskDetlFieldLogService; - - @Autowired - private OrderService orderService; - - @Autowired - private OrderDetlService orderDetlService; - - - @Scheduled(cron = "0/3 * * * * ? ") - @Transactional - public void inExecute() { - InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); - try { - //鑾峰彇鍏ュ簱瀹屾垚浠诲姟 - List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.COMPLETE_IN.id)); - if (list.isEmpty()) { - return; - } - - for (Task task : list) { - //鍚屾鏁版嵁 - switch (task.getTaskType().intValue()) { - case 1://鍏ュ簱 - executeTask1(task); - break; - case 11://搴撲綅绉昏浆 - executeTask11(task); - break; - case 53://鎷f枡鍐嶅叆搴� - executeTask53(task); - break; - default: - throw new CoolException("鏈煡浠诲姟绫诲瀷"); - } - - task.setTaskSts(TaskStsType.UPDATED_IN.id);//100.搴撳瓨鏇存柊瀹屾垚 - task.setUpdateTime(new Date()); - if (!taskService.updateById(task)) { - throw new CoolException("搴撳瓨鏇存柊澶辫触"); - } - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } finally { - InterceptorIgnoreHelper.clearIgnoreStrategy(); - } - } - - @Scheduled(cron = "0/3 * * * * ? ") - @Transactional - public void outExecute() { - InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); - try { - //鑾峰彇鍑哄簱瀹屾垚浠诲姟 - List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id)); - if (list.isEmpty()) { - return; - } - for (Task task : list) { - //鍚屾鏁版嵁 - switch (task.getTaskType().intValue()) { - case 101://鍑哄簱 - executeTask101(task); - break; - case 103://鎷f枡 - executeTask103(task); - break; - default: - throw new CoolException("鏈煡浠诲姟绫诲瀷"); - } - - task.setTaskSts(TaskStsType.UPDATED_OUT.id);//200.搴撳瓨鏇存柊瀹屾垚 - if (!taskService.updateById(task)) { - throw new CoolException("搴撳瓨鏇存柊澶辫触"); - } - } - - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } finally { - InterceptorIgnoreHelper.clearIgnoreStrategy(); - } - } - - //鍏ュ簱 - private void executeTask1(Task task) { - Long hostId = task.getHostId(); - - Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); - if (loc == null) { - throw new CoolException("搴撲綅涓嶅瓨鍦�"); - } - - if (loc.getLocStsId() != LocStsType.S.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); - } - - loc.setLocStsId(LocStsType.F.val()); - loc.setUpdateTime(new Date()); - loc.setBarcode(task.getBarcode()); - if (!locService.updateById(loc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - - List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if (taskDetls.isEmpty()) { - throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); - } - - //娣诲姞搴撳瓨鏄庣粏 - for (TaskDetl taskDetl : taskDetls) { - LocDetl locDetl = new LocDetl(); - locDetl.setLocId(loc.getId()); - locDetl.setLocNo(loc.getLocNo()); - locDetl.setMatId(taskDetl.getMatId()); - locDetl.setMatnr(taskDetl.getMat$().getMatnr()); - locDetl.setOrderNo(taskDetl.getOrderNo()); - locDetl.setBatch(taskDetl.getBatch()); - locDetl.setAnfme(taskDetl.getAnfme()); - locDetl.setHostId(hostId); - if (!locDetlService.save(locDetl)) { - throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); - } - - //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 - List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); - for (TaskDetlField detlField : detlFields) { - LocDetlField locDetlField = new LocDetlField(); - locDetlField.setDetlId(locDetl.getId()); - locDetlField.setFieldId(detlField.getFieldId()); - locDetlField.setName(detlField.getName()); - locDetlField.setValue(detlField.getValue()); - locDetlField.setHostId(hostId); - if (!locDetlFieldService.save(locDetlField)) { - throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); - } - } - } - - //缁勬墭閫氱煡妗h浆鍘嗗彶妗� - List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId)); - if (waitPakins.isEmpty()) { - throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪"); - } - for (WaitPakin waitPakin : waitPakins) { - WaitPakinLog waitPakinLog = new WaitPakinLog(); - waitPakinLog.sync(waitPakin); - if (!waitPakinLogService.save(waitPakinLog)) { - throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�"); - } - - //鍒犻櫎缁勬墭閫氱煡妗� - waitPakinService.removeById(waitPakin.getId()); - } - } - - //搴撲綅绉昏浆 - private void executeTask11(Task task) { - Long hostId = task.getHostId(); - - Loc originLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); - if (originLoc == null) { - throw new CoolException("婧愬簱浣嶄笉瀛樺湪"); - } - - if (originLoc.getLocStsId() != LocStsType.R.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); - } - - Loc targetLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); - if (targetLoc == null) { - throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦�"); - } - - if (targetLoc.getLocStsId() != LocStsType.S.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); - } - - originLoc.setLocStsId(LocStsType.O.val()); - originLoc.setUpdateTime(new Date()); - originLoc.setBarcode(""); - if (!locService.updateById(originLoc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - - targetLoc.setLocStsId(LocStsType.F.val()); - targetLoc.setUpdateTime(new Date()); - targetLoc.setBarcode(task.getBarcode()); - if (!locService.updateById(targetLoc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - - List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if (taskDetls.isEmpty()) { - throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); - } - - //娣诲姞搴撳瓨鏄庣粏 - for (TaskDetl taskDetl : taskDetls) { - LocDetl locDetl = new LocDetl(); - locDetl.setLocId(targetLoc.getId()); - locDetl.setLocNo(targetLoc.getLocNo()); - locDetl.setMatId(taskDetl.getMatId()); - locDetl.setMatnr(taskDetl.getMat$().getMatnr()); - locDetl.setOrderNo(taskDetl.getOrderNo()); - locDetl.setBatch(taskDetl.getBatch()); - locDetl.setAnfme(taskDetl.getAnfme()); - locDetl.setHostId(hostId); - if (!locDetlService.save(locDetl)) { - throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); - } - - //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 - List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); - for (TaskDetlField detlField : detlFields) { - LocDetlField locDetlField = new LocDetlField(); - locDetlField.setDetlId(locDetl.getId()); - locDetlField.setFieldId(detlField.getFieldId()); - locDetlField.setName(detlField.getName()); - locDetlField.setValue(detlField.getValue()); - locDetlField.setHostId(hostId); - if (!locDetlFieldService.save(locDetlField)) { - throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); - } - } - } - - List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, originLoc.getId())); - for (LocDetl locDetl : locDetls) { - boolean remove = locDetlFieldService.remove(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId())); - boolean result = locDetlService.removeById(locDetl.getId()); - if (!result) { - throw new CoolException("娓呴櫎鏄庣粏澶辫触"); - } - } - - } - - //鎷f枡鍐嶅叆搴� - private void executeTask53(Task task) { - Long hostId = task.getHostId(); - - Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); - if (loc == null) { - throw new CoolException("搴撲綅涓嶅瓨鍦�"); - } - - if (loc.getLocStsId() != LocStsType.S.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); - } - - loc.setLocStsId(LocStsType.F.val()); - loc.setUpdateTime(new Date()); - loc.setBarcode(task.getBarcode()); - if (!locService.updateById(loc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - - List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if (taskDetls.isEmpty()) { - throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); - } - - //娣诲姞搴撳瓨鏄庣粏 - for (TaskDetl taskDetl : taskDetls) { - double anfme = taskDetl.getStock() - taskDetl.getAnfme(); - if (anfme <= 0) { - continue; - } - - LocDetl locDetl = new LocDetl(); - locDetl.setLocId(loc.getId()); - locDetl.setLocNo(loc.getLocNo()); - locDetl.setMatId(taskDetl.getMatId()); - locDetl.setMatnr(taskDetl.getMat$().getMatnr()); - locDetl.setOrderNo(taskDetl.getOrderNo()); - locDetl.setBatch(taskDetl.getBatch()); - locDetl.setAnfme(anfme); - locDetl.setHostId(hostId); - if (!locDetlService.save(locDetl)) { - throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); - } - - //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 - List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); - for (TaskDetlField detlField : detlFields) { - LocDetlField locDetlField = new LocDetlField(); - locDetlField.setDetlId(locDetl.getId()); - locDetlField.setFieldId(detlField.getFieldId()); - locDetlField.setName(detlField.getName()); - locDetlField.setValue(detlField.getValue()); - locDetlField.setHostId(hostId); - if (!locDetlFieldService.save(locDetlField)) { - throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); - } - } - } - } - - //鍑哄簱 - private void executeTask101(Task task) { - Long hostId = task.getHostId(); - Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); - if (loc == null) { - throw new CoolException("搴撲綅涓嶅瓨鍦�"); - } - if (loc.getLocStsId() != LocStsType.R.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); - } - List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if (taskDetls.isEmpty()) { - throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); - } - - loc.setLocStsId(LocStsType.O.val()); - loc.setBarcode(""); - if (!locService.updateById(loc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId)); - //鍒犻櫎搴撳瓨鏄庣粏 - for (LocDetl locDetl : detlList) { - if (!locDetlService.removeById(locDetl)) { - throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); - } - List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId)); - for (LocDetlField detlField : detlFields) { - if (!locDetlFieldService.removeById(detlField)) { - throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); - } - } - } - } - - //鎷f枡鍑哄簱 - private void executeTask103(Task task) { - Long hostId = task.getHostId(); - Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); - if (loc == null) { - throw new CoolException("搴撲綅涓嶅瓨鍦�"); - } - if (loc.getLocStsId() != LocStsType.R.val()) { - throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); - } - List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if (taskDetls.isEmpty()) { - throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); - } - - loc.setLocStsId(LocStsType.O.val()); - loc.setBarcode(""); - if (!locService.updateById(loc)) { - throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); - } - List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId)); - //鍒犻櫎搴撳瓨鏄庣粏 - for (LocDetl locDetl : detlList) { - if (!locDetlService.removeById(locDetl)) { - throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); - } - List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId)); - for (LocDetlField detlField : detlFields) { - if (!locDetlFieldService.removeById(detlField)) { - throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); - } - } - } - } - -} +package com.zy.asrs.wms.asrs.timer; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; +import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; +import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wms.asrs.entity.*; +import com.zy.asrs.wms.asrs.entity.enums.LocStsType; +import com.zy.asrs.wms.asrs.entity.enums.TaskStsType; +import com.zy.asrs.wms.asrs.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import java.util.Date; +import java.util.List; + +@Component +public class TaskTimer { + + @Autowired + private TaskService taskService; + + @Autowired + private TaskDetlService taskDetlService; + + @Autowired + private TaskDetlFieldService taskDetlFieldService; + + @Autowired + private LocService locService; + + @Autowired + private LocDetlService locDetlService; + + @Autowired + private LocDetlFieldService locDetlFieldService; + + @Autowired + private WaitPakinService waitPakinService; + + @Autowired + private WaitPakinLogService waitPakinLogService; + + @Autowired + private TaskDetlLogService taskDetlLogService; + + @Autowired + private TaskDetlFieldLogService taskDetlFieldLogService; + + @Autowired + private OrderService orderService; + + @Autowired + private OrderDetlService orderDetlService; + + +// @Scheduled(cron = "0/3 * * * * ? ") + @Transactional + public void inExecute() { + InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); + try { + //鑾峰彇鍏ュ簱瀹屾垚浠诲姟 + List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.COMPLETE_IN.id)); + if (list.isEmpty()) { + return; + } + + for (Task task : list) { + //鍚屾鏁版嵁 + switch (task.getTaskType().intValue()) { + case 1://鍏ュ簱 + executeTask1(task); + break; + case 11://搴撲綅绉昏浆 + executeTask11(task); + break; + case 53://鎷f枡鍐嶅叆搴� + executeTask53(task); + break; + default: + throw new CoolException("鏈煡浠诲姟绫诲瀷"); + } + + task.setTaskSts(TaskStsType.UPDATED_IN.id);//100.搴撳瓨鏇存柊瀹屾垚 + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + throw new CoolException("搴撳瓨鏇存柊澶辫触"); + } + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } finally { + InterceptorIgnoreHelper.clearIgnoreStrategy(); + } + } + +// @Scheduled(cron = "0/3 * * * * ? ") + @Transactional + public void outExecute() { + InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); + try { + //鑾峰彇鍑哄簱瀹屾垚浠诲姟 + List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id)); + if (list.isEmpty()) { + return; + } + for (Task task : list) { + //鍚屾鏁版嵁 + switch (task.getTaskType().intValue()) { + case 101://鍑哄簱 + executeTask101(task); + break; + case 103://鎷f枡 + executeTask103(task); + break; + default: + throw new CoolException("鏈煡浠诲姟绫诲瀷"); + } + + task.setTaskSts(TaskStsType.UPDATED_OUT.id);//200.搴撳瓨鏇存柊瀹屾垚 + if (!taskService.updateById(task)) { + throw new CoolException("搴撳瓨鏇存柊澶辫触"); + } + } + + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } finally { + InterceptorIgnoreHelper.clearIgnoreStrategy(); + } + } + + //鍏ュ簱 + private void executeTask1(Task task) { + Long hostId = task.getHostId(); + + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); + if (loc == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } + + if (loc.getLocStsId() != LocStsType.S.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); + } + + loc.setLocStsId(LocStsType.F.val()); + loc.setUpdateTime(new Date()); + loc.setBarcode(task.getBarcode()); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + //娣诲姞搴撳瓨鏄庣粏 + for (TaskDetl taskDetl : taskDetls) { + LocDetl locDetl = new LocDetl(); + locDetl.setLocId(loc.getId()); + locDetl.setLocNo(loc.getLocNo()); + locDetl.setMatId(taskDetl.getMatId()); + locDetl.setMatnr(taskDetl.getMat$().getMatnr()); + locDetl.setOrderNo(taskDetl.getOrderNo()); + locDetl.setBatch(taskDetl.getBatch()); + locDetl.setAnfme(taskDetl.getAnfme()); + locDetl.setHostId(hostId); + if (!locDetlService.save(locDetl)) { + throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); + } + + //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 + List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); + for (TaskDetlField detlField : detlFields) { + LocDetlField locDetlField = new LocDetlField(); + locDetlField.setDetlId(locDetl.getId()); + locDetlField.setFieldId(detlField.getFieldId()); + locDetlField.setName(detlField.getName()); + locDetlField.setValue(detlField.getValue()); + locDetlField.setHostId(hostId); + if (!locDetlFieldService.save(locDetlField)) { + throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + + //缁勬墭閫氱煡妗h浆鍘嗗彶妗� + List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId)); + if (waitPakins.isEmpty()) { + throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪"); + } + for (WaitPakin waitPakin : waitPakins) { + WaitPakinLog waitPakinLog = new WaitPakinLog(); + waitPakinLog.sync(waitPakin); + if (!waitPakinLogService.save(waitPakinLog)) { + throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�"); + } + + //鍒犻櫎缁勬墭閫氱煡妗� + waitPakinService.removeById(waitPakin.getId()); + } + } + + //搴撲綅绉昏浆 + private void executeTask11(Task task) { + Long hostId = task.getHostId(); + + Loc originLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); + if (originLoc == null) { + throw new CoolException("婧愬簱浣嶄笉瀛樺湪"); + } + + if (originLoc.getLocStsId() != LocStsType.R.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); + } + + Loc targetLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); + if (targetLoc == null) { + throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦�"); + } + + if (targetLoc.getLocStsId() != LocStsType.S.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); + } + + originLoc.setLocStsId(LocStsType.O.val()); + originLoc.setUpdateTime(new Date()); + originLoc.setBarcode(""); + if (!locService.updateById(originLoc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + + targetLoc.setLocStsId(LocStsType.F.val()); + targetLoc.setUpdateTime(new Date()); + targetLoc.setBarcode(task.getBarcode()); + if (!locService.updateById(targetLoc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + //娣诲姞搴撳瓨鏄庣粏 + for (TaskDetl taskDetl : taskDetls) { + LocDetl locDetl = new LocDetl(); + locDetl.setLocId(targetLoc.getId()); + locDetl.setLocNo(targetLoc.getLocNo()); + locDetl.setMatId(taskDetl.getMatId()); + locDetl.setMatnr(taskDetl.getMat$().getMatnr()); + locDetl.setOrderNo(taskDetl.getOrderNo()); + locDetl.setBatch(taskDetl.getBatch()); + locDetl.setAnfme(taskDetl.getAnfme()); + locDetl.setHostId(hostId); + if (!locDetlService.save(locDetl)) { + throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); + } + + //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 + List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); + for (TaskDetlField detlField : detlFields) { + LocDetlField locDetlField = new LocDetlField(); + locDetlField.setDetlId(locDetl.getId()); + locDetlField.setFieldId(detlField.getFieldId()); + locDetlField.setName(detlField.getName()); + locDetlField.setValue(detlField.getValue()); + locDetlField.setHostId(hostId); + if (!locDetlFieldService.save(locDetlField)) { + throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + + List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, originLoc.getId())); + for (LocDetl locDetl : locDetls) { + boolean remove = locDetlFieldService.remove(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId())); + boolean result = locDetlService.removeById(locDetl.getId()); + if (!result) { + throw new CoolException("娓呴櫎鏄庣粏澶辫触"); + } + } + + } + + //鎷f枡鍐嶅叆搴� + private void executeTask53(Task task) { + Long hostId = task.getHostId(); + + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); + if (loc == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } + + if (loc.getLocStsId() != LocStsType.S.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); + } + + loc.setLocStsId(LocStsType.F.val()); + loc.setUpdateTime(new Date()); + loc.setBarcode(task.getBarcode()); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + //娣诲姞搴撳瓨鏄庣粏 + for (TaskDetl taskDetl : taskDetls) { + double anfme = taskDetl.getStock() - taskDetl.getAnfme(); + if (anfme <= 0) { + continue; + } + + LocDetl locDetl = new LocDetl(); + locDetl.setLocId(loc.getId()); + locDetl.setLocNo(loc.getLocNo()); + locDetl.setMatId(taskDetl.getMatId()); + locDetl.setMatnr(taskDetl.getMat$().getMatnr()); + locDetl.setOrderNo(taskDetl.getOrderNo()); + locDetl.setBatch(taskDetl.getBatch()); + locDetl.setAnfme(anfme); + locDetl.setHostId(hostId); + if (!locDetlService.save(locDetl)) { + throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触"); + } + + //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁 + List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId)); + for (TaskDetlField detlField : detlFields) { + LocDetlField locDetlField = new LocDetlField(); + locDetlField.setDetlId(locDetl.getId()); + locDetlField.setFieldId(detlField.getFieldId()); + locDetlField.setName(detlField.getName()); + locDetlField.setValue(detlField.getValue()); + locDetlField.setHostId(hostId); + if (!locDetlFieldService.save(locDetlField)) { + throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + } + + //鍑哄簱 + private void executeTask101(Task task) { + Long hostId = task.getHostId(); + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); + if (loc == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } + if (loc.getLocStsId() != LocStsType.R.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); + } + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + loc.setLocStsId(LocStsType.O.val()); + loc.setBarcode(""); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId)); + //鍒犻櫎搴撳瓨鏄庣粏 + for (LocDetl locDetl : detlList) { + if (!locDetlService.removeById(locDetl)) { + throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); + } + List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId)); + for (LocDetlField detlField : detlFields) { + if (!locDetlFieldService.removeById(detlField)) { + throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + } + + //鎷f枡鍑哄簱 + private void executeTask103(Task task) { + Long hostId = task.getHostId(); + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); + if (loc == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } + if (loc.getLocStsId() != LocStsType.R.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); + } + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + loc.setLocStsId(LocStsType.O.val()); + loc.setBarcode(""); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId)); + //鍒犻櫎搴撳瓨鏄庣粏 + for (LocDetl locDetl : detlList) { + if (!locDetlService.removeById(locDetl)) { + throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); + } + List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId)); + for (LocDetlField detlField : detlFields) { + if (!locDetlFieldService.removeById(detlField)) { + throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + } + +} -- Gitblit v1.9.1