From ed72baa5f60f2d86cc58799ce96c658321a54d79 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期五, 30 四月 2021 13:53:54 +0800
Subject: [PATCH] 1.erp立库出库对接 2.erp平仓出库对接

---
 src/main/webapp/views/pakStore/outStockNormalDetail.html              |  123 +++++++++++++++
 src/main/java/com/zy/asrs/entity/param/LocNormalStockOutParam.java    |   15 +
 src/main/java/com/zy/asrs/service/OutStockService.java                |    4 
 src/main/java/com/zy/common/service/erp/ErpService.java               |   38 ++++
 src/main/java/com/zy/common/service/erp/task/ErpScheduler.java        |    2 
 src/main/java/com/zy/asrs/controller/LocDetlController.java           |    4 
 src/main/resources/mapper/LocDetlMapper.xml                           |    4 
 src/main/resources/mapper/LocNormalMapper.xml                         |    6 
 src/main/java/com/zy/asrs/mapper/OutStockMapper.java                  |    2 
 src/main/webapp/views/pakStore/locDetlQuery.html                      |    2 
 src/main/webapp/static/js/pakStore/outStock.js                        |   30 +++
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java            |   22 ++
 src/main/java/com/zy/asrs/service/LocNormalService.java               |    4 
 src/main/webapp/views/pakStore/outStock.html                          |    6 
 src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java |    3 
 src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java      |   82 ++++++++++
 src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java       |   10 +
 src/main/java/com/zy/asrs/mapper/LocNormalMapper.java                 |    2 
 src/main/java/com/zy/asrs/entity/LocNormal.java                       |    3 
 src/main/java/com/zy/asrs/controller/OutStockController.java          |   48 +++++
 src/main/webapp/static/js/common.js                                   |    2 
 src/main/resources/mapper/OutStockMapper.xml                          |   25 ++-
 22 files changed, 411 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index a06bdc5..526274e 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -73,8 +73,8 @@
             param.remove("supplier");
         }
         /* 鐢熶骇鍗曞彿涓虹┖锛屽垹闄ょ敓浜у崟鍙穡arehouse */
-        if (Cools.isEmpty(param.get("warehouse"))) {
-            param.remove("warehouse");
+        if (Cools.isEmpty(param.get("mnemonic"))) {
+            param.remove("mnemonic");
         }
         return R.ok(locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class)));
     }
diff --git a/src/main/java/com/zy/asrs/controller/OutStockController.java b/src/main/java/com/zy/asrs/controller/OutStockController.java
index 7d982c9..362dcf0 100644
--- a/src/main/java/com/zy/asrs/controller/OutStockController.java
+++ b/src/main/java/com/zy/asrs/controller/OutStockController.java
@@ -5,20 +5,27 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocNormal;
+import com.zy.asrs.entity.param.LocNormalStockOutParam;
 import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.service.LocNormalService;
 import com.zy.asrs.service.OutStockService;
 import com.zy.asrs.service.WorkService;
+import com.zy.common.service.erp.ErpService;
 import com.zy.common.service.erp.entity.OutStockBillEntry;
 import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+@Slf4j
 @RestController
 public class OutStockController extends BaseController {
 
@@ -26,6 +33,10 @@
     private OutStockService outStockService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private LocNormalService locNormalService;
+    @Autowired
+    private ErpService erpService;
 
     /**
      *
@@ -43,7 +54,7 @@
     }
 
     /**
-     * 妫�绱㈢鍚堥�氱煡鍗曠殑搴撳瓨鐗╂枡
+     * 妫�绱㈢鍚堥�氱煡鍗曠殑绔嬪簱搴撳瓨鐗╂枡
      * @param fbillNo
      * @return
      */
@@ -60,4 +71,39 @@
         outStockService.startupFullTakeStore(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
+
+    /**
+     * 妫�绱㈢鍚堥�氱煡鍗曠殑骞充粨搴撳瓨鐗╂枡
+     * @param fbillNo
+     * @return
+     */
+    @RequestMapping(value = "/outStock/query/locNormalList")
+    @ManagerAuth
+    public R queryMatWithLocNormal(String fbillNo) {
+        List<LocNormal> list = locNormalService.queryLocNorlMatnr(fbillNo);
+        return R.ok(list);
+    }
+
+
+    /**
+     * 骞充粨瀵规帴erp鍑哄簱
+     * @param
+     * @return
+     */
+    @RequestMapping(value = "/outStock/locNormal")
+    @ManagerAuth
+    public R outStockLocNormal(@RequestBody LocNormalStockOutParam param) {
+        Long modiUser = getUserId();
+        Date modiTime = new Date();
+        for (LocNormal locNormals:param.getList()) {
+            // erp涓棿琛ㄦ洿鏂版暟鎹�
+            Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
+            if (!erpService.incrementCPakOut(FInterI, locNormals.getMatnr(), locNormals.getAnfme().doubleValue(), param.getSupplier())) {
+                log.info("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", locNormals.getMatnr());
+            }
+            // 鎶婂搴旂墿鏂欏钩浠撳簱瀛樺嚭搴�
+            locNormalService.outLocNormal(locNormals.getMatnr(), modiUser, modiTime, locNormals.getId());
+        }
+        return R.ok("骞充粨鍑哄簱鎴愬姛");
+    }
 }
diff --git a/src/main/java/com/zy/asrs/entity/LocNormal.java b/src/main/java/com/zy/asrs/entity/LocNormal.java
index 453c3a6..bbd8357 100644
--- a/src/main/java/com/zy/asrs/entity/LocNormal.java
+++ b/src/main/java/com/zy/asrs/entity/LocNormal.java
@@ -48,6 +48,9 @@
     @ApiModelProperty(value= "浠撳簱")
     private String warehouse;
 
+    @TableField(exist = false)
+    private String warehouseName;
+
     @ApiModelProperty(value= "鍝佺墝")
     private String brand;
 
diff --git a/src/main/java/com/zy/asrs/entity/param/LocNormalStockOutParam.java b/src/main/java/com/zy/asrs/entity/param/LocNormalStockOutParam.java
new file mode 100644
index 0000000..7a1b998
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/LocNormalStockOutParam.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.LocNormal;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class LocNormalStockOutParam {
+    // 鍗曟嵁缂栧彿
+    private String supplier;
+    // 骞充粨鐗╂枡娓呭崟
+    List<LocNormal> list = new ArrayList<>();
+}
diff --git a/src/main/java/com/zy/asrs/mapper/LocNormalMapper.java b/src/main/java/com/zy/asrs/mapper/LocNormalMapper.java
index b88ca82..cf3ea67 100644
--- a/src/main/java/com/zy/asrs/mapper/LocNormalMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocNormalMapper.java
@@ -37,4 +37,6 @@
     public List<LocNormal> pdaLocNormalWarehouseQuery(@Param("warehouse") String warehouse, @Param("matnr") String matnr);
 
     public void pdaLocNormalMove(List<LocNormal> list);
+
+    public List<LocNormal> queryLocNorlMatnr(String matnr);
 }
diff --git a/src/main/java/com/zy/asrs/mapper/OutStockMapper.java b/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
index 60d596d..ee6d155 100644
--- a/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
@@ -19,4 +19,6 @@
     List<LocDetl> queryMatWithLoc(String matnr);
 
     List<OutStockBillEntry> queryMatnrWithBillNo(String fbillNo);
+
+    Integer queryOutStockFInterID(String supplier);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocNormalService.java b/src/main/java/com/zy/asrs/service/LocNormalService.java
index 16a5b0b..555c7f0 100644
--- a/src/main/java/com/zy/asrs/service/LocNormalService.java
+++ b/src/main/java/com/zy/asrs/service/LocNormalService.java
@@ -28,4 +28,8 @@
   public List<LocNormal> pdaLocNormalWarehouseQuery(String warehouse, String matnr);
 
   public void pdaLocNormalMove(List<LocNormal> list);
+
+  public List<LocNormal> queryLocNorlMatnr(String fbillNo);
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/OutStockService.java b/src/main/java/com/zy/asrs/service/OutStockService.java
index 4876502..40fa84d 100644
--- a/src/main/java/com/zy/asrs/service/OutStockService.java
+++ b/src/main/java/com/zy/asrs/service/OutStockService.java
@@ -13,7 +13,9 @@
 public interface OutStockService extends IService<OutStockBillEntry> {
     Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page);
 
-    List<LocDetl> queryMatWithLoc(String matnr);
+    List<LocDetl> queryMatWithLoc(String fbillNo);
+
+    Integer queryOutStockFInterID(String supplier);
 
     /**
      * 鍑哄簱浣滀笟
diff --git a/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
index a9c011f..1d9ec03 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -3,21 +3,31 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
 import com.zy.asrs.entity.LocNormal;
 import com.zy.asrs.mapper.LocNormalMapper;
+import com.zy.asrs.mapper.OutStockMapper;
 import com.zy.asrs.service.LocNormalService;
 import com.zy.common.service.erp.ErpSqlServer;
+import com.zy.common.service.erp.entity.CPICMO;
+import com.zy.common.service.erp.entity.OutStockBillEntry;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.text.MessageFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+@Slf4j
 @Service("locNormalService")
 public class LocNormalServiceImpl extends ServiceImpl<LocNormalMapper, LocNormal> implements LocNormalService {
     @Autowired
     ErpSqlServer erpSqlServer;
+    @Autowired
+    OutStockMapper outStockMapper;
 
     @Override
     public List<LocNormal> getLocNormalData() {
@@ -44,11 +54,44 @@
         // 骞充粨鍏ュ簱鍚庢洿鏂颁腑闂磋〃鏁版嵁锛孎flag_finish鏀逛负1锛岃〃绀哄钩浠撳叆搴撴垚鍔�
         if (list.size() > 0) {
             for (Integer i = 0; i < list.size(); i++) {
-                String sql = "update CPICMO set Fflag_finish = 1 where FBillNo = '" + list.get(i).getSupplier() + "' and Fnumber = '" + list.get(i).getMatnr() +"'";
-                erpSqlServer.update(sql);
+                if (!Cools.isEmpty(list.get(i).getSupplier())) { // 瀛樺湪鍏ュ簱鍗曞彿鐨勬墠杩涜erp鏇存柊
+                    String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''";
+                    sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier());
+                    if (erpSqlServer.update(sql) > 0) {
+                        sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+                        sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier());
+                        List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
+                        CPICMO cpicmo = select.get(0);
+                        boolean complete = false;
+                        if (cpicmo.getFQty() > 0) {
+                            if (cpicmo.getFAuxCommitQty() >= cpicmo.getFQty()) {
+                                complete = true;
+                            }
+                        } else {
+                            if (cpicmo.getFAuxCommitQty() >= cpicmo.getFAuxQty()) {
+                                complete = true;
+                            }
+                        }
+                        if (complete) {
+                            if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) {
+                                log.error("{}骞充粨鍏ュ簱鍗曟爣璁板畬鎴愬け璐�", list.get(i).getSupplier());
+                            }
+                        }
+                    }
+                }
             }
         }
+        // 骞充粨鍏ュ簱閫昏緫
         baseMapper.locNormalIn(list);
+    }
+
+    /**
+     * 鎴愬搧鍏ュ簱鍗曟爣璁板畬鎴�
+     */
+    private boolean completeCPakIn(String FBillNo, String Fnumber){
+        String sql = "update CPICMO set Fflag_finish = 1 where FBillNo = ''{0}'' and Fnumber = ''{1}''";
+        sql = MessageFormat.format(sql, FBillNo, Fnumber);
+        return erpSqlServer.update(sql) > 0;
     }
 
     @Override
@@ -83,4 +126,39 @@
     public void pdaLocNormalMove(List<LocNormal> list) {
         baseMapper.pdaLocNormalMove(list);
     }
+
+    @Override
+    public List<LocNormal> queryLocNorlMatnr(String fbillNo) {
+        List<OutStockBillEntry> matList = outStockMapper.queryMatnrWithBillNo(fbillNo);
+        List<LocNormal> locNormal = new ArrayList<>();
+        List<LocNormal> locNormalResult = new ArrayList<>();
+        for (Integer i = 0; i < matList.size(); i++) {
+            locNormal = baseMapper.queryLocNorlMatnr(matList.get(i).getFnumber()) ;
+            if (locNormal.size() > 0) {
+                for (LocNormal e:locNormal) {
+                    LocNormal obj = new LocNormal();
+                    obj.setMatnr(e.getMatnr());
+                    obj.setMaktx(e.getMaktx());
+                    obj.setLgnum(e.getLgnum());
+                    obj.setType(e.getType());
+                    obj.setMnemonic(e.getMnemonic());
+                    obj.setSupplier(e.getSupplier());
+                    obj.setWarehouse(e.getWarehouse());
+                    obj.setBrand(e.getBrand());
+                    obj.setAnfme(e.getAnfme());
+                    obj.setBname(e.getBname());
+                    obj.setMemo(e.getMemo());
+                    obj.setModiUser(e.getModiUser());
+                    obj.setModiTime(e.getModiTime());
+                    obj.setAppeUser(e.getAppeUser());
+                    obj.setAppeTime(e.getAppeTime());
+                    obj.setState(e.getState());
+                    obj.setWarehouseName(e.getWarehouseName());
+                    obj.setId(e.getId());
+                    locNormalResult.add(obj);
+                }
+            }
+        }
+       return locNormalResult;
+    }
 }
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 8393028..8872e37 100644
--- a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
@@ -41,6 +41,8 @@
     private CommonService commonService;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private LocNormalService locNormalService;
 
     @Override
     public Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page) {
@@ -73,6 +75,11 @@
             }
         }
         return locList;
+    }
+
+    @Override
+    public Integer queryOutStockFInterID(String supplier) {
+       return baseMapper.queryOutStockFInterID(supplier);
     }
 
     @Override
@@ -174,7 +181,8 @@
                 wrkDetl.setAppeUser(userId);
                 wrkDetl.setModiTime(new Date());
                 wrkDetl.setModiUser(userId);
-                wrkDetl.setWarehouse(fbillNo);
+                wrkDetl.setSupplier(fbillNo);
+                wrkDetl.setMemo(detlDto.getLocDetl().getMemo());
                 if (!wrkDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
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 0282b28..8c7ff75 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 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.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -40,6 +41,8 @@
     private WaitPakinLogService waitPakinLogService;
     @Autowired
     private ErpService erpService;
+    @Autowired
+    private OutStockService outStockService;
 
     @GetMapping("/test1")
     public String test1(String barcode){
@@ -84,6 +87,25 @@
                 waitPakinService.delete(wrapper);
             }
 
+            // erp鍏宠仈鍑哄簱璁㈠崟澶勭悊
+            if (wrkMast.getIoType() == 101) {
+                EntityWrapper<WrkDetl> wrapper = new EntityWrapper<>();
+                // 鑾峰彇宸ヤ綔妗e唴鐗╂枡娓呭崟
+                List<WrkDetl> wrkDetls = wrkDetlService.selectList(wrapper.eq("wrk_no", wrkMast.getWrkNo()).and().isNotNull("supplier"));
+                for (WrkDetl wrkDetl: wrkDetls) {
+                    if (!Cools.isEmpty(wrkDetl.getMemo())) {
+                        if (wrkDetl.getMemo().equals("鍘熸潗鏂�")) {
+                            // 寰呭疄鐜�
+                        } else if (wrkDetl.getMemo().equals("鎴愬搧")) {
+                            Integer FInterI = outStockService.queryOutStockFInterID(wrkDetl.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
+                            if (!erpService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
+                                exceptionHandle("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", wrkDetl.getMatnr());
+                            }
+                        }
+                    }
+                }
+            }
+
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                 exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/common/service/erp/ErpService.java b/src/main/java/com/zy/common/service/erp/ErpService.java
index c55382d..c768af8 100644
--- a/src/main/java/com/zy/common/service/erp/ErpService.java
+++ b/src/main/java/com/zy/common/service/erp/ErpService.java
@@ -12,6 +12,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -293,6 +294,43 @@
         return erpSqlServer.select("SELECT * FROM  xtyasrs_dual.dbo.OutStockBillEntry", OutStockBillEntry.class);
     }
 
+    /* 鎴愬搧澧為噺鍑哄簱 */
+    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 (erpSqlServer.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 = erpSqlServer.select(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 erpSqlServer.update(sql) > 0;
+    }
+
 
 
 
diff --git a/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java b/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
index 0d58e51..9e1ceaf 100644
--- a/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
+++ b/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
@@ -23,6 +23,9 @@
     /*鍦板潃-OutStockBill琛ㄦ暟鎹�*/
     @TableField(exist = false)
     private String FAdd;
+    /* 瀹屾垚鏍囧織(Fflag_finish)-OutStockBill琛ㄦ暟鎹�  */
+    @TableField(exist = false)
+    private Integer FflagFinish;
     @TableField("FBrNo")
     private String FBrNo;
     /*閫氱煡鍗曞唴鐮�*/
diff --git a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
index c103a4e..2d3a018 100644
--- a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
+++ b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
@@ -203,6 +203,8 @@
                 if (!outStockMainService.insert(result.get(i))) {
                     log.info("鍑哄簱閫氱煡涓昏〃OutStockBill鍚屾澶辫触");
                 };
+            } else {
+
             }
         }
     }
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index dec2413..4bdb76e 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -53,8 +53,8 @@
         <if test="supplier!=null and supplier!=null">
             and a.supplier like '%' + #{supplier} + '%'
         </if>
-        <if test="warehouse!=null and warehouse!=null">
-            and a.warehouse like '%' + #{warehouse} + '%'
+        <if test="mnemonic!=null and mnemonic!=null">
+            and a.mnemonic like '%' + #{mnemonic} + '%'
         </if>
     </sql>
 
diff --git a/src/main/resources/mapper/LocNormalMapper.xml b/src/main/resources/mapper/LocNormalMapper.xml
index 83fc826..ad6e775 100644
--- a/src/main/resources/mapper/LocNormalMapper.xml
+++ b/src/main/resources/mapper/LocNormalMapper.xml
@@ -11,6 +11,7 @@
         <result column="mnemonic" property="mnemonic"/>
         <result column="supplier" property="supplier"/>
         <result column="warehouse" property="warehouse"/>
+        <result column="warehouseName" property="warehouseName"/>
         <result column="brand" property="brand"/>
         <result column="anfme" property="anfme"/>
         <result column="bname" property="bname"/>
@@ -116,4 +117,9 @@
         </foreach>
         END;
     </update>
+
+    <select id="queryLocNorlMatnr" resultMap="BaseResultMap">
+        select a.*,b.name as warehouseName from asr_loc_normal a left join asr_loc_area b on a.warehouse = b.uuid
+        where matnr = #{matnr} and state = '1'
+    </select>
 </mapper>
diff --git a/src/main/resources/mapper/OutStockMapper.xml b/src/main/resources/mapper/OutStockMapper.xml
index 39dc53d..0a706d7 100644
--- a/src/main/resources/mapper/OutStockMapper.xml
+++ b/src/main/resources/mapper/OutStockMapper.xml
@@ -17,7 +17,9 @@
         <result column="FSourceBillNo" property="FSourceBillNo"/>
         <result column="FBillNo" property="FBillNo"/>
         <result column="FAdd" property="FAdd"/>
-        <result column="workRecord" property="workRecord"/>
+        <result column="Fname" property="Fname" />
+        <result column="Fmodel" property="Fmodel" />
+        <result column="Fflag_finish" property="FflagFinish" />
     </resultMap>
 
     <!-- asr_loc_detl鏄犲皠缁撴灉 -->
@@ -43,6 +45,8 @@
         <result column="mat_status" property="matStatus" />
     </resultMap>
 
+
+
     <sql id="stockOutCondition">
         <if test="FBillNo!=null and FBillNo!='' ">
             and b.FBillNo like '%' + #{FBillNo} + '%'
@@ -54,14 +58,16 @@
         (
         select ROW_NUMBER() over (order by a.FInterID,a.FEntryID) as row,a.FBrNo,a.FInterID,a.FEntryID,
         a.FOrderInterID,a.FAuxQty,a.FCommitQty,a.FAuxPrice,a.FDate,a.FNote, a.Fnumber, a.FSourceBillNo, b.FBillNo,
-        b.FAdd,
-        ((select COUNT(*) from asr_wrk_detl where warehouse = b.FBillNo and matnr = a.Fnumber) + (select COUNT(*) from asr_wrk_detl_log where warehouse = b.FBillNo and matnr = a.Fnumber)) as workRecord
+        b.FAdd,b.Fflag_finish, a.Fname, a.Fmodel
         from OutStockBillEntry a left join OutStockBill b on a.FInterID = b.FInterID
         where 1=1
-        <if test="FBillNo!=null and FBillNo!='' ">
+        <if test="FSourceBillNo!=null and FSourceBillNo!='' ">
+            and a.FSourceBillNo = #{FSourceBillNo}
+        </if>
+        <if test="FBillNo != null and FBillNo != ''">
             and b.FBillNo = #{FBillNo}
         </if>
-        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) and workRecord = 0
+        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
 
     <select id="queryOutStockCount" parameterType="java.util.Map" resultType="java.lang.Integer">
@@ -75,10 +81,9 @@
     <select id="queryMatnrWithBillNo" resultMap="OutStockResultMap">
         select * from (select ROW_NUMBER() over (order by a.FInterID,a.FEntryID) as row,a.FBrNo,a.FInterID,a.FEntryID,
         a.FOrderInterID,a.FAuxQty,a.FCommitQty,a.FAuxPrice,a.FDate,a.FNote, a.Fnumber, a.FSourceBillNo, b.FBillNo,
-        b.FAdd,
-        ((select COUNT(*) from asr_wrk_detl where warehouse = b.FBillNo and matnr = a.Fnumber) + (select COUNT(*) from asr_wrk_detl_log where warehouse = b.FBillNo and matnr = a.Fnumber)) as workRecord
+        b.FAdd
         from OutStockBillEntry a left join OutStockBill b on a.FInterID = b.FInterID
-        where b.FBillNo = #{FBillNo}) t where t.workRecord = 0
+        where b.FBillNo = #{FBillNo}) t where 1 = 1
     </select>
 
     <select id="queryMatWithLoc" resultMap="BaseResultMap">
@@ -106,4 +111,8 @@
         end
         desc
     </select>
+
+    <select id="queryOutStockFInterID" resultType="integer">
+        select FInterID from OutStockBill where FBillNo = #{supplier}
+    </select>
 </mapper>
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 2550e13..3c6cdd3 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -236,5 +236,5 @@
     ,{field: 'supplier', align: 'center',title: '閫氱煡鍗曞彿'}
     // ,{field: 'warehouse', align: 'center',title: '搴撳尯'}
     ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
-    ,{field: 'altme', align: 'center',title: '鍗曚綅'}
+    ,{field: 'altme', align: 'center',title: '鍗曚綅', hide: true}
 ]
diff --git a/src/main/webapp/static/js/pakStore/outStock.js b/src/main/webapp/static/js/pakStore/outStock.js
index 50fc770..2e70dac 100644
--- a/src/main/webapp/static/js/pakStore/outStock.js
+++ b/src/main/webapp/static/js/pakStore/outStock.js
@@ -7,16 +7,19 @@
     var cols = [];
     cols.push(
         {field: 'fbillNo', merge: true, align: 'center', title: '鍗曟嵁缂栧彿'}
+        , {field: 'fsourceBillNo', align: 'center', title: '璁㈠崟鍗曞彿' }
         , {field: 'fnumber', align: 'center', title: '鐗╂枡缂栧彿'}
+        , {field: 'fname', align: 'center', title: '鐗╂枡鍚嶇О'}
+        , {field: 'fmodel', align: 'center', title: '瑙勬牸'}
         , {field: 'fentryID', align: 'center', title: '鍒嗗綍鍙�'}
-        , {field: 'forderInterID', align: 'center', title: '閿�鍞鍗曞崟鍙�'}
+        , {field: 'forderInterID', align: 'center', title: '鍗曟嵁缂栧彿', hide: true}
         , {field: 'fauxQty', align: 'center', title: '鏁伴噺'}
         , {field: 'fcommitQty', align: 'center', title: '鍙戣揣鏁伴噺'}
         , {field: 'fauxPrice', align: 'center', title: '鍗曚环'}
-        , {field: 'fdate', align: 'center', title: '鏃ユ湡'}
-        , {field: 'fnote', align: 'center', title: '澶囨敞'}
-        , {field: 'fadd', align: 'center', title: '鍦板潃'}
-        , {merge: ['fbillNo'], title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+        , {field: 'fdate', align: 'center', title: '鏃ユ湡', hide: true}
+        , {field: 'fnote', align: 'center', title: '澶囨敞', hide: true}
+        , {field: 'fadd', align: 'center', title: '鍦板潃', hide: true}
+        , {merge: ['fbillNo'], title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 140}
     );
     return cols;
 }
@@ -96,7 +99,7 @@
             outStockDetail = layer.open(
                 {
                     type: 2,
-                    title: '閫夋嫨鍑哄簱-鍗曟嵁缂栧彿[' + orderData.fbillNo + ']',
+                    title: '绔嬪簱鍑哄簱-鍗曟嵁缂栧彿[' + orderData.fbillNo + ']',
                     maxmin: true,
                     area: [top.detailWidth, top.detailHeight],
                     shadeClose: false,
@@ -107,6 +110,21 @@
                 }
             );
         }
+        if (layEvent == 'btnNormalOut') {
+            outStockDetail = layer.open(
+                {
+                    type: 2,
+                    title: '骞充粨鍑哄簱-鍗曟嵁缂栧彿[' + orderData.fbillNo + ']',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: false,
+                    content: 'outStockNormalDetail.html',
+                    success: function (layero, index) {
+
+                    }
+                }
+            );
+        }
     });
 });
 
diff --git a/src/main/webapp/views/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index db7949d..cb0979e 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -83,7 +83,7 @@
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="warehouse" placeholder="鐢熶骇鍗曞彿" autocomplete="off">
+                <input class="layui-input" type="text" name="mnemonic" placeholder="鐢熶骇鍗曞彿" autocomplete="off">
             </div>
         </div>
         <!-- 寰呮坊鍔� -->
diff --git a/src/main/webapp/views/pakStore/outStock.html b/src/main/webapp/views/pakStore/outStock.html
index c58e3df..849e2ee 100644
--- a/src/main/webapp/views/pakStore/outStock.html
+++ b/src/main/webapp/views/pakStore/outStock.html
@@ -41,6 +41,9 @@
     <div id="search-box" class="layui-form layui-card-header">
         <div class="layui-inline">
             <div class="layui-input-inline">
+                <input class="layui-input" type="text" name="FSourceBillNo" placeholder="璇疯緭鍏ヨ鍗曞崟鍙�" autocomplete="off">
+            </div>
+            <div class="layui-input-inline">
                 <input class="layui-input" type="text" name="FBillNo" placeholder="璇疯緭鍏ュ崟鎹紪鍙�" autocomplete="off">
             </div>
         </div>
@@ -69,7 +72,8 @@
 </div>
 
 <script type="text/html" id="operate">
-    <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="btnOut">鍑哄簱</button>
+    <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="btnOut">鍑虹珛搴�</button>
+    <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="btnNormalOut">鍑哄钩搴�</button>
 </script>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/pakStore/outStockNormalDetail.html b/src/main/webapp/views/pakStore/outStockNormalDetail.html
new file mode 100644
index 0000000..937ec75
--- /dev/null
+++ b/src/main/webapp/views/pakStore/outStockNormalDetail.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+    <link rel="stylesheet" href="../../static/css/print.css" media="all">
+
+</head>
+<body>
+<div>
+    <div class="layui-form" style="padding-top: 8px; padding-left: 8px">
+        <button style="margin-bottom: 0px" class="layui-btn layui-btn-sm layui-form-item" style="display: inline-block"
+                id="outbound" lay-submit
+                lay-event="outbound" onclick="outbound()">鍚姩鍑哄簱
+        </button>
+    </div>
+    <table class="layui-hide" id="stockOut" lay-filter="stockOut" style="margin-top: 0px"></table>
+</div>
+
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script>
+    var orderData = parent.getOrderData();
+    var locData = [];
+    var table;
+
+    function getCol() {
+        var cols = [
+            {type: 'checkbox'}
+            , {field: 'warehouseName', align: 'center', title: '搴撳尯鍚嶇О'}
+            , {field: 'warehouse', align: 'center', title: '搴撲綅缂栧彿'}
+            , {field: 'anfme', align: 'center', title: '鏁伴噺'}
+        ];
+        cols.push.apply(cols, locNormalCols);
+        cols.push({field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
+            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true})
+        return cols;
+    }
+
+    layui.use(['table', 'laydate', 'form'], function () {
+        table = layui.table;
+        var $ = layui.jquery;
+        var layer = layui.layer;
+        var layDate = layui.laydate;
+        var form = layui.form;
+        // 鏁版嵁娓叉煋
+        locDetlTableIns = table.render({
+            elem: '#stockOut',
+            headers: {token: localStorage.getItem('token')},
+            url: baseUrl + '/outStock/query/locNormalList?fbillNo=' + orderData.fbillNo,
+            page: true,
+            limit: 9999,
+            limits: [9999],
+            even: true,
+//            cellMinWidth: 50,
+            cols: [getCol()],
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+            parseData: function (res) {
+                return {
+                    'data': res.data,
+                    'code': res.code,
+                }
+            },
+            response: {
+                statusCode: 200
+            },
+            done: function (res, curr, count) {
+                if (res.code === 403) {
+                    top.location.href = baseUrl + "/";
+                }
+                locData = res.data;
+            }
+        });
+    });
+
+    /* 鍚姩鍑哄簱 */
+    function outbound() {
+        locData
+        var checkStatus = table.checkStatus('stockOut');
+        var checkData = checkStatus.data;
+        var obj = {
+            list: checkData,
+            supplier: orderData.fbillNo,
+        }
+        if (checkData.length > 0) {
+            $.ajax({
+                url: baseUrl + "/outStock/locNormal",
+                headers: {'token': localStorage.getItem('token')},
+                contentType: 'application/json;charset=UTF-8',
+                data: JSON.stringify(obj),
+                method: 'POST',
+                traditional: true,
+                success: function (res) {
+                    if (res.code === 200) {
+                        parent.closeDetail(res.msg);
+                    } else if (res.code === 403) {
+                        top.location.href = baseUrl + "/";
+                    } else {
+                        layer.msg(res.msg)
+                    }
+                }
+            })
+        } else {
+            layer.msg("璇烽�夋嫨闇�瑕佸嚭搴撶墿鏂�");
+            return;
+        }
+    }
+
+</script>
+</html>
\ No newline at end of file

--
Gitblit v1.9.1