From 48278d6051b6e58d648178964585d35ae000ec91 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 30 八月 2024 15:36:56 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java |  313 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 211 insertions(+), 102 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 4b78bed..10399de 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
@@ -69,78 +69,15 @@
 
             for (Task task : list) {
                 //鍚屾鏁版嵁
-                Long hostId = task.getHostId();
                 switch (task.getTaskType().intValue()) {
                     case 1://鍏ュ簱
-                        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());
-                        }
-
+                        executeTask1(task);
                         break;
+                    case 53://鎷f枡鍐嶅叆搴�
+                        executeTask53(task);
+                        break;
+                    default:
+                        throw new CoolException("鏈煡浠诲姟绫诲瀷");
                 }
 
                 task.setTaskSts(100L);//100.搴撳瓨鏇存柊瀹屾垚
@@ -169,41 +106,15 @@
             }
             for (Task task : list) {
                 //鍚屾鏁版嵁
-                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("浠诲姟鏄庣粏涓嶅瓨鍦�");
-                }
                 switch (task.getTaskType().intValue()) {
-                    //鍑哄簱
-                    case 101:
-                        loc.setLocStsId(LocStsType.O.val());
-                        loc.setBarcode("");
-                        if (!locService.updateById(loc)) {
-                            throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
-                        }
-                        List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, 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("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触");
-                                }
-                            }
-                        }
+                    case 101://鍑哄簱
+                        executeTask101(task);
                         break;
-
+                    case 103://鎷f枡
+                        executeTask103(task);
+                        break;
+                    default:
+                        throw new CoolException("鏈煡浠诲姟绫诲瀷");
                 }
 
                 task.setTaskSts(200L);//200.搴撳瓨鏇存柊瀹屾垚
@@ -220,4 +131,202 @@
         }
     }
 
+    //鍏ュ簱
+    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());
+        }
+    }
+
+    //鎷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) {
+            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.getStock() - 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("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触");
+                }
+            }
+        }
+    }
+
+    //鍑哄簱
+    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