From ff8ae23da4205f072c823ea2a5e095386c6672db Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 23 九月 2021 10:58:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/OutStockService.java          |    2 +
 src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java |   44 ++++++++++++++++++++++
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java      |   22 ++++++++---
 src/main/resources/mapper/OutStockMapper.xml                    |    1 
 4 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/OutStockService.java b/src/main/java/com/zy/asrs/service/OutStockService.java
index 40fa84d..786c055 100644
--- a/src/main/java/com/zy/asrs/service/OutStockService.java
+++ b/src/main/java/com/zy/asrs/service/OutStockService.java
@@ -17,6 +17,8 @@
 
     Integer queryOutStockFInterID(String supplier);
 
+    boolean incrementCPakOut(Integer FInterID, String Fnumber, Double increment, String FBillNo);
+
     /**
      * 鍑哄簱浣滀笟
      */
diff --git a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
index e99acff..db288b2 100644
--- a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
@@ -16,13 +16,17 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.service.erp.entity.OutStockBillEntry;
 import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.text.MessageFormat;
 import java.util.*;
 
+@Slf4j
 @Service("outStockService")
 public class OutStockServiceImpl extends ServiceImpl<OutStockMapper, OutStockBillEntry> implements OutStockService{
     // 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨�
@@ -43,6 +47,8 @@
     private WrkDetlService wrkDetlService;
     @Autowired
     private LocNormalService locNormalService;
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
 
     @Override
     public Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page) {
@@ -82,6 +88,44 @@
        return baseMapper.queryOutStockFInterID(supplier);
     }
 
+    /* 鎴愬搧澧為噺鍑哄簱 */
+    @Override
+    public boolean incrementCPakOut(Integer FInterID, String Fnumber, Double increment, String FBillNo) {
+        String sql = "update OutStockbillEntry set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FInterID = {2,number,#}";
+        sql = MessageFormat.format(sql, increment, Fnumber, FInterID);
+        if (jdbcTemplate.update(sql) > 0) {
+            sql = "select * from OutStockbillEntry where 1=1 and Fnumber = ''{0}'' and FInterID = {1,number,#}";
+            sql = MessageFormat.format(sql, Fnumber, FInterID);
+            List<OutStockBillEntry> select = jdbcTemplate.queryForList(sql, OutStockBillEntry.class);
+            OutStockBillEntry outStockBillEntry = select.get(0);
+            boolean complete = false;
+            if (outStockBillEntry.getFQty().compareTo(BigDecimal.ZERO) == 1) {
+                if (outStockBillEntry.getFAuxCommitQty().compareTo(outStockBillEntry.getFQty()) > -1) {
+                    complete = true;
+                }
+            } else {
+                if (outStockBillEntry.getFAuxCommitQty().compareTo(outStockBillEntry.getFAuxQty()) > -1) {
+                    complete = true;
+                }
+            }
+            if (complete) {
+                if (!completeCPakOut(FBillNo)) {
+                    log.error("{}鍑哄簱鍗曟爣璁板畬鎴愬け璐�", FBillNo);
+                }
+            }
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /* 鎴愬搧鍑哄簱鍗曟爣璁板畬鎴� */
+    private boolean completeCPakOut(String FBillNo){
+        String sql = "update OutStockbill set Fflag_finish = 1 where FBillNo = ''{0}''";
+        sql = MessageFormat.format(sql, FBillNo);
+        return jdbcTemplate.update(sql) > 0;
+    }
+
     @Override
     @Transactional
     public void startupFullTakeStore(StockOutParam param, Long userId) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 0ee1a5e..69b9f1d 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -12,6 +12,7 @@
 import com.zy.common.service.erp.ErpService;
 import com.zy.common.service.erp.entity.OutStockBillEntry;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -43,6 +44,8 @@
     private ErpService erpService;
     @Autowired
     private OutStockService outStockService;
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
 
     @GetMapping("/test1")
     public String test1(String barcode){
@@ -97,18 +100,25 @@
                         Integer FInterI = outStockService.queryOutStockFInterID(wrkDetl.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
                         if (!Cools.isEmpty(FInterI)) {
                             if (!erpService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
-                                exceptionHandle("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", wrkDetl.getMatnr());
+                                exceptionHandle("[xtyasrs_dual]鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", wrkDetl.getMatnr());
                             }
                         }
-//                        if (wrkDetl.getMemo().equals("鍘熸潗鏂�")) {
-//                            // 寰呭疄鐜�
-//                        } else if (wrkDetl.getMemo().equals("鎴愬搧")) {
-//
-//                        }
+                        if (wrkDetl.getMemo().equals("鍘熸潗鏂�")) {
+                            // 寰呭疄鐜�
+
+
+                        } else if (wrkDetl.getMemo().equals("鎴愬搧")) {
+                            if (!outStockService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
+                                exceptionHandle("[xtyasrs]鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", wrkDetl.getMatnr());
+                            }
+
+                        }
                     }
                 }
             }
 
+
+
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                 exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
diff --git a/src/main/resources/mapper/OutStockMapper.xml b/src/main/resources/mapper/OutStockMapper.xml
index 0a706d7..183ac69 100644
--- a/src/main/resources/mapper/OutStockMapper.xml
+++ b/src/main/resources/mapper/OutStockMapper.xml
@@ -61,6 +61,7 @@
         b.FAdd,b.Fflag_finish, a.Fname, a.Fmodel
         from OutStockBillEntry a left join OutStockBill b on a.FInterID = b.FInterID
         where 1=1
+        and b.Fflag_finish != 1
         <if test="FSourceBillNo!=null and FSourceBillNo!='' ">
             and a.FSourceBillNo = #{FSourceBillNo}
         </if>

--
Gitblit v1.9.1