From 7b1177906ec9f2c79a6b1da97bb4272ff6131951 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 06 七月 2020 10:28:50 +0800
Subject: [PATCH] #任务中心————并板入库

---
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    3 +
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java    |   61 ++++++++++++++++++++++++++----
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    9 +++-
 3 files changed, 62 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index f9d29c7..1c4f0fa 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -8,6 +8,9 @@
 
     Page<LocDetl> getStockOut(Page<LocDetl> page);
 
+    /**
+     * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
+     */
     boolean updateAnfme(Double anfme, String locNo, String matnr);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index a7ec5d2..23f8617 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.asrs.entity.LocDetl;
@@ -19,8 +20,12 @@
 
     @Override
     public boolean updateAnfme(Double anfme, String locNo, String matnr) {
-        int res = baseMapper.updateAnfme(anfme, locNo, matnr);
-        return res > 0;
+        if (anfme <= 0) {
+            return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", matnr));
+        } else {
+            int res = baseMapper.updateAnfme(anfme, locNo, matnr);
+            return res > 0;
+        }
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index d43ee82..5417171 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -142,19 +142,13 @@
                     // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滃伐浣滄槑缁嗘暟閲忎负0鏃讹紝鍒犻櫎搴撳瓨鏄庣粏
                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
                     if (null != locDetl) {
-                        if (wrkDetl.getAnfme() == 0) {
-                            if (!locDetlService.delete(new EntityWrapper<>(locDetl))) {
-                                exceptionHandle(""); // todo
-                            }
-                        } else {
-                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
-                                exceptionHandle(""); // todo
-                            }
+                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
+                            exceptionHandle(""); // todo
                         }
                         // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
                     }
                 }
-                // 淇敼搴撲綅鐘舵�� S ====>> F
+                // 淇敼搴撲綅鐘舵�� Q ====>> F
                 if (locMast.getLocType().equals("Q")) {
                     locMast.setLocType("F");
                     locMast.setBarcode(wrkMast.getBarcode());
@@ -165,7 +159,56 @@
                     }
                 }
                 break;
+            // 骞舵澘鍏ュ簱
             case 54:
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (wrkDetls54.isEmpty()) {
+                    exceptionHandle(""); // todo
+                }
+                // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+                for (WrkDetl wrkDetl:wrkDetls54) {
+                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
+                    if (null != locDetl) {
+                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
+                            exceptionHandle(""); // todo
+                        }
+                    } else {
+                        locDetl = new LocDetl(
+                                wrkMast.getLocNo(), // 搴撲綅鍙�
+                                wrkDetl.getMatnr(), // 鐗╂枡鍙�
+                                null,    // 浠撳簱鍙�
+                                null,    // 杞偍璇锋眰缂栧彿
+                                null,    // 琛岄」鐩�
+                                null,    // 鐗╂枡鏍囩ID
+                                wrkDetl.getMaktx(),    // 鐗╂枡鎻忚堪
+                                null,    // 宸ュ巶
+                                wrkDetl.getAnfme(),    // 鏁伴噺
+                                wrkDetl.getAltme(),    // 鍗曚綅
+                                wrkDetl.getZpallet(),    // 鎵樼洏鏉$爜
+                                null,    // 鐢ㄦ埛ID
+                                null,    // 澶囨敞
+                                null,    // 淇敼浜哄憳
+                                now,    // 淇敼鏃堕棿
+                                null,    // 鍒涘缓鑰�
+                                now    // 娣诲姞鏃堕棿
+                        );
+                        if (!locDetlService.insert(locDetl)) {
+                            exceptionHandle(""); // todo
+                        }
+                    }
+                    // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+                }
+                // 淇敼搴撲綅鐘舵�� Q ====>> F
+                if (locMast.getLocType().equals("Q")) {
+                    locMast.setLocType("F");
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
                 break;
             case 57:
                 break;

--
Gitblit v1.9.1