From 83e9a3d09b8eda7e3976425302ebe61d6f8c1d14 Mon Sep 17 00:00:00 2001
From: LSH <brook_w@163.com>
Date: 星期四, 11 八月 2022 17:07:05 +0800
Subject: [PATCH] Default Changelist

---
 src/main/webapp/views/waitPakin/waitPakin_detail.html       |    4 
 src/main/java/com/zy/asrs/entity/param/CombParam.java       |   14 ++
 src/main/webapp/static/js/waitPakin/waitPakin.js            |    3 
 src/main/java/com/zy/asrs/entity/param/HeartBeat.java       |   18 +++
 src/main/java/com/zy/asrs/controller/OpenController.java    |   38 +++++++
 src/main/webapp/views/waitPakin/waitPakin.html              |    4 
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java  |  125 +++++++++++++++---------
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   54 ++++++++++
 src/main/java/com/zy/asrs/service/OpenService.java          |    5 +
 src/main/resources/application.yml                          |    7 +
 10 files changed, 214 insertions(+), 58 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index cb34a46..498d446 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -13,9 +13,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by vincent on 2022/4/8
@@ -46,6 +44,40 @@
         return R.ok();
     }
 
+    @PostMapping("/rpc/watchDog/auth/v1")
+    @AppAuth(memo = "蹇冭烦鎺ュ彛璋冪敤")
+    public synchronized R hostName(@RequestHeader(required = false) String appkey,
+                               @RequestBody(required = false) HeartBeat param,
+                               HttpServletRequest request){
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+
+        //........
+        System.out.println(String.format("id:%s,hostName:%s,requestTime:%s",
+                param.getId(),param.getHostName(),param.getRequestTime()));
+
+        return R.ok();
+    }
+    @PostMapping("/rcp/pakIn/auth/v1")
+    @AppAuth(memo = "鍏ュ簱閫氱煡鍗曟帴鍙h皟鐢�")
+    public synchronized R combPack(@RequestHeader(required = false) String appkey,
+                                   @RequestBody(required = false) CombParam param,
+                                   HttpServletRequest request){
+
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        //鐢熸垚鍏ュ簱閫氱煡妗�
+        openService.combPACK(param);
+
+        Map<String,Boolean> map=new HashMap<>();
+        map.put("isComplete",true);
+        System.out.println(map);
+        return R.ok(map);
+    }
     /****************************************************************************/
     /********************************* 鎵撳寘涓婄嚎 **********************************/
     /****************************************************************************/
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index e19b459..91a68e3 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -9,6 +9,20 @@
  */
 @Data
 public class CombParam {
+    //packNo	鏄�	瀛楃涓�	PACK鐮�
+    private String packNo;
+
+    //packName	鏄�	瀛楃涓�	浜у搧鍨嬪彿
+    private String packName;
+
+    //settingTimes	鏄�	Integer	闈欑疆鏃堕棿,鍗曚綅鍒嗛挓
+    private Integer settingTimes;
+
+    //requestTime	鏄�	瀛楃涓�	鍏ュ簱鏃堕棿锛寉yyy-MM-dd HH:mm:ss
+    private String requestTime;
+
+    //PACK鐘舵��
+    private Integer packSts;
 
     // 鍗曟嵁缂栧彿
     private String orderNo;
diff --git a/src/main/java/com/zy/asrs/entity/param/HeartBeat.java b/src/main/java/com/zy/asrs/entity/param/HeartBeat.java
new file mode 100644
index 0000000..f365dc3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/HeartBeat.java
@@ -0,0 +1,18 @@
+package com.zy.asrs.entity.param;
+
+
+import lombok.Data;
+
+@Data
+public class HeartBeat {
+
+    //鎶ユ枃鏍囪瘑锛岃嚜澧為暱
+    private String id;
+
+    //鍥哄畾鍊�:MES
+    private String hostName;
+
+    //涓婃姤鏃堕棿锛寉yyy-MM-dd HH:mm:ss
+    private String requestTime;
+
+}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index afd90b1..3454acb 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -9,6 +9,11 @@
 public interface OpenService {
 
     /**
+     * 娣诲姞鍏ュ簱閫氱煡妗�
+     */
+    void combPACK(CombParam param);
+
+    /**
      * 娣诲姞鍏ュ簱鍗�
      */
     void pakinOrderCreate(OpenOrderPakinParam param);
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 5d8970a..81b1045 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SnowflakeIdWorker;
@@ -19,6 +20,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -48,6 +51,10 @@
     private TagService tagService;
     @Autowired
     private TagMapper tagMapper;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
 
     @Override
     @Transactional
@@ -544,4 +551,51 @@
 
     }
 
+    @Override
+    @Transactional
+    public void combPACK(CombParam param) {
+        if (Cools.isEmpty(param.getPackNo())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        // 鍒ゆ柇鏄惁鏈夌浉鍚孭ack鐮佺殑鏁版嵁
+        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getPackNo()).eq("io_status", "N")) > 0) {
+            throw new CoolException(param.getPackNo() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+        }
+
+        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getPackNo()));
+        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getPackNo()));
+        if (countLoc > 0 || countWrk > 0) {
+            throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getPackNo());
+        }
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        java.util.Date date=null;
+        try {
+            date= sdf.parse(param.getRequestTime());
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        java.sql.Date requestTime = new java.sql.Date(date.getTime());
+
+        // 鐢熸垚鍏ュ簱閫氱煡妗�
+        Mat mat = matService.selectByMatnr(param.getPackName());
+        if (Cools.isEmpty(mat)) {
+            throw new CoolException(param.getPackName() + "鍟嗗搧妗f涓嶅瓨鍦�");
+        }
+        WaitPakin waitPakin = new WaitPakin();
+        waitPakin.sync(mat);
+        waitPakin.setZpallet(param.getPackNo());   // Pack鐮�
+        waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+        waitPakin.setAnfme(1.0);  // 鏁伴噺
+        waitPakin.setStatus("Y");    // 鐘舵��
+        waitPakin.setAppeUser(null);
+        waitPakin.setAppeTime(requestTime);
+        waitPakin.setModiUser(null);
+        waitPakin.setModiTime(requestTime);
+        if (!waitPakinService.insert(waitPakin)) {
+            throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+        }
+    }
+
 }
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 173bc58..d50a892 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -1,19 +1,31 @@
 package com.zy.asrs.task.handler;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.model.MesPakinParam;
+import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
+import net.sf.jsqlparser.parser.JJTCCJSqlParserState;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
@@ -38,60 +50,29 @@
     private WaitPakinLogService waitPakinLogService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private ApiLogService apiLogService;
+
+    @Value("${mes.url}")
+    private String mesUrl;
+
+    @Value("${mes.inPath}")
+    private String inpath;
+
+    @Value("${mes.outPath}")
+    private String outPath;
 
     @Transactional
     public ReturnT<String> start(WrkMast wrkMast) {
         try {
-            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
-            if (!Cools.isEmpty(wrkDetls)) {
-                Iterator<WrkDetl> iterator = wrkDetls.iterator();
-                while (iterator.hasNext()) {
-                    WrkDetl wrkDetl = iterator.next();
-                    if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                        orderService.checkComplete(wrkDetl.getOrderNo());
-                        iterator.remove();
-                    }
-                }
+            ReturnT<String> result = null;
+            if (wrkMast.getWrkSts() == 5 && wrkMast.getIoType() == 1) {
+                result = postMesData(wrkMast,inpath);
+            } else if (wrkMast.getWrkSts() == 15 && wrkMast.getIoType() == 101){
+                result = postMesData(wrkMast,outPath);
             }
-
-            // 鍏ュ簱 --------------------------------------------------------------------------------
-            if (wrkMast.getWrkSts() == 5) {
-                // 鍏ㄦ澘鍏ュ簱
-                if (wrkMast.getIoType() == 1) {
-                    // 鍏ュ簱閫氱煡鍗�
-                    if (!Cools.isEmpty(wrkMast.getBarcode())) {
-                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
-                        if (!waitPakinLogService.save(wrkMast.getBarcode())) {
-                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
-                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
-                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                    }
-                    // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
-                    if (!Cools.isEmpty(wrkDetls)) {
-                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
-                            exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                    }
-                // 鎷f枡鍐嶅叆搴�
-                } else if (wrkMast.getIoType() == 53) {
-                    if (!Cools.isEmpty(wrkDetls)) {
-                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
-                            exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                    }
-                }
-
-            // 鍑哄簱 --------------------------------------------------------------------------------
-            } else if (wrkMast.getWrkSts() == 15) {
-                if (!Cools.isEmpty(wrkDetls)) {
-                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
-                        exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                    }
-                }
+            if(null != result && !result.isSuccess()){
+                return result;
             }
 
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
@@ -119,4 +100,50 @@
         return SUCCESS;
     }
 
+    private ReturnT<String> postMesData(WrkMast wrkMast, String mesPath){
+        WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        if(wrkDetl != null){
+            CombParam combParam = new CombParam();
+            combParam.setPackNo(wrkDetl.getZpallet());
+            combParam.setPackName(wrkDetl.getMatnr());
+            combParam.setLocno(wrkMast.getLocNo());
+            combParam.setPackSts(1);
+            combParam.setRequestTime(DateUtils.convert(new Date()));
+            String response = "";
+            boolean success = false;
+            try {
+                response = new HttpHandler.Builder()
+                        .setUri(mesUrl)
+                        .setPath(mesPath)
+                        .setJson(JSON.toJSONString(combParam))
+                        .build()
+                        .doPost();
+                JSONObject jsonObject = JSON.parseObject(response);
+                if (jsonObject.getInteger("code").equals(200)) {
+                    success = true;
+                } else {
+                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(combParam), response);
+                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+                }
+            } catch (Exception e) {
+                log.error("fail", e);
+//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg(e.getMessage());
+            } finally {
+                try {
+                    // 淇濆瓨鎺ュ彛鏃ュ織
+                    apiLogService.save(
+                            "鎴愬搧搴撳叆搴撲笂鎶�",
+                            MesConstant.URL + MesConstant.PAKIN_URL,
+                            null,
+                            "127.0.0.1",
+                            JSON.toJSONString(combParam),
+                            response,
+                            success
+                    );
+                } catch (Exception e) { log.error("", e); }
+            }
+        }
+        return SUCCESS;
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5c21782..e3660c4 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -48,4 +48,9 @@
   # 鍙屾繁搴撲綅鎺掑彿
   doubleLocs: 1,4,5,8,9,12,13,16
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
-  groupCount: 2
\ No newline at end of file
+  groupCount: 2
+
+mes:
+  url: 127.0.0.1:8080/test
+  inPath: mesin/v1
+  outPath: mesin/v1
\ No newline at end of file
diff --git a/src/main/webapp/static/js/waitPakin/waitPakin.js b/src/main/webapp/static/js/waitPakin/waitPakin.js
index 4027f58..8f30fad 100644
--- a/src/main/webapp/static/js/waitPakin/waitPakin.js
+++ b/src/main/webapp/static/js/waitPakin/waitPakin.js
@@ -464,7 +464,8 @@
         if (find[0]!=null){
             if (find[0].type === 'checkbox'){
                 if (data[val]==='Y'){
-                    find.attr("checked","checked");
+                    find.attr
+                    ("checked","checked");
                     find.val('Y');
                 } else {
                     find.remove("checked");
diff --git a/src/main/webapp/views/waitPakin/waitPakin.html b/src/main/webapp/views/waitPakin/waitPakin.html
index 331f54d..e8b1f94 100644
--- a/src/main/webapp/views/waitPakin/waitPakin.html
+++ b/src/main/webapp/views/waitPakin/waitPakin.html
@@ -16,12 +16,12 @@
 <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="zpallet" placeholder="鎵樼洏鏉$爜" autocomplete="off">
+            <input class="layui-input" type="text" name="zpallet" placeholder="PACK鐮�" autocomplete="off">
         </div>
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+            <input class="layui-input" type="text" name="matnr" placeholder="浜у搧鍨嬪彿" autocomplete="off">
         </div>
     </div>
     <!-- 鏃ユ湡鑼冨洿 -->
diff --git a/src/main/webapp/views/waitPakin/waitPakin_detail.html b/src/main/webapp/views/waitPakin/waitPakin_detail.html
index d419c9d..8373fda 100644
--- a/src/main/webapp/views/waitPakin/waitPakin_detail.html
+++ b/src/main/webapp/views/waitPakin/waitPakin_detail.html
@@ -30,13 +30,13 @@
             </div>
         </div>
         <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鎵� 鐩� 鐮侊細</label>
+            <label class="layui-form-label">PACK 鐮侊細</label>
             <div class="layui-input-inline">
                 <input id="barcode" class="layui-input" type="text">
             </div>
         </div>
         <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍟嗗搧缂栧彿锛�</label>
+            <label class="layui-form-label">浜у搧鍨嬪彿锛�</label>
             <div class="layui-input-inline">
                 <input id="matnr" class="layui-input" type="text">
             </div>

--
Gitblit v1.9.1