From a3a66aa959151e91f57be097b83f2a2715b502f5 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 31 三月 2025 13:11:36 +0800
Subject: [PATCH] 定时任务增加同步锁

---
 src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java |   99 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 84 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java b/src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java
index cfd3d9e..829cdde 100644
--- a/src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.WrkMastSta;
 import com.zy.asrs.entity.param.BalconyWrkMastParam;
 import com.zy.asrs.entity.param.TrussCombParam;
 import com.zy.asrs.service.*;
@@ -22,6 +23,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -46,7 +48,7 @@
     @Autowired
     private BasDevpService basDevpService;
     @Autowired
-    private OrderService orderService;
+    private WrkMastStaService wrkMastStaService;
 
     @Value("${srHangJia.url}")
     private String srHangJiaUrl;
@@ -54,11 +56,17 @@
     @Value("${srHangJia.reportInPath}")
     private String reportOutPath;
 
-    public ReturnT<String> start(int staNo) {
+    public ReturnT<String> start(int staNo,int staNoEnd) {
         try {
+            Integer staOther = getStaOther(staNoEnd);
             BasDevp basDevp = basDevpService.selectById(staNo);
             if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0
                     || !basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y") || !basDevp.getInEnable().equals("Y")){
+                return FAIL;
+            }
+            BasDevp basDevp131 = basDevpService.selectById(131);
+            if (Cools.isEmpty(basDevp131) || !basDevp131.getAutoing().equals("Y")
+                    || !( basDevp131.getWrkNo()>9899 && basDevp131.getWrkNo()<10000) || basDevp131.getReportSign()!=0){
                 return FAIL;
             }
             WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
@@ -66,20 +74,65 @@
             if (Cools.isEmpty(wrkMast) || wrkMast.getIoType()!=1 || wrkMast.getWrkSts()!=2){
                 return FAIL;
             }
+            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+            if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){
+                return FAIL;
+            }
+            WrkDetl wrkDetl = wrkDetls.get(0);
+            if (Cools.isEmpty(wrkDetl) || Cools.isEmpty(wrkDetl.getOrigin()) || Cools.isEmpty(wrkDetl.getBatch())
+                    || Cools.isEmpty(wrkDetl.getBrand())){
+                return FAIL;
+            }
+            BasDevp basDevpEnd = basDevpService.selectById(staNoEnd);
+            if (Cools.isEmpty(basDevpEnd) || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getReportSign()!=0 ){
+                return FAIL;
+            }
+            BasDevp basDevpOther = basDevpService.selectById(staOther);
+            if (Cools.isEmpty(basDevpOther) || basDevpOther.getReportSign()!=0){
+                return FAIL;
+            }
 
-
-
-//            TrussCombParam trussCombParam = new TrussCombParam(param, order, orderDetlList);
-//            try{
-//                ReturnT<String> success = postMesData(reportOutPath, trussCombParam);
-//                if (success.getCode()!=200){
-//                    throw new CoolException("妗佹灦涓婁綅杞欢閫�搴撳け璐�");
-//                }
-//            } catch (Exception e){
-//                throw new CoolException("妗佹灦涓婁綅杞欢閫�搴撳け璐�");
-//            }
+            if (basDevpEnd.getLoading().equals("Y") && basDevpEnd.getEmptyMk().equals("Y")){
+                //鐢熸垚鏈烘鑷備换鍔�
+                TrussCombParam trussCombParam = new TrussCombParam(wrkDetl,staNoEnd);
+                try{
+                    ReturnT<String> success = postMesData(reportOutPath, trussCombParam);
+                    if (success.getCode()!=200){
+                        log.error("妗佹灦涓婁綅杞欢閫�搴撳け璐�");
+                        return FAIL;
+                    }else {
+                        wrkMast.setSheetNo("3");
+                        wrkMastService.updateById(wrkMast);
+                        basDevp.setReportSign(3);
+                        basDevpService.updateById(basDevp);
+                        basDevpEnd.setReportSign(3);
+                        basDevpService.updateById(basDevpEnd);
+                        wrkDetl.setOrigin(trussCombParam.getPalletizingNo2()==118? "2":"1");
+                        wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no",wrkDetl.getWrkNo()));
+                    }
+                    return SUCCESS;
+                } catch (Exception e){
+                    log.error("妗佹灦涓婁綅杞欢閫�搴撳け璐�"+e);
+                    return FAIL;
+                }
+            }else if (!basDevpEnd.getLoading().equals("Y") ){
+                Thread.sleep(1000);
+                basDevpEnd = basDevpService.selectById(staNoEnd);
+                if (Cools.isEmpty(basDevpEnd) || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getReportSign()!=0 || basDevpEnd.getLoading().equals("Y") ){
+                    return FAIL;
+                }
+                WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no",staNoEnd + 19999L));
+                if (Cools.isEmpty(wrkMastSta)){
+                    //鐢熸垚鎷嗙洏浠诲姟
+                    WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staNoEnd);
+                    wrkMastSta1.setType(2);      //绫诲瀷 1:闈炵┖  2:绌烘澘
+                    wrkMastSta1.setWrkType(2);                    //宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
+                    wrkMastStaService.insert(wrkMastSta1);
+                }
+                return SUCCESS;
+            }
         }catch (Exception e){
-            log.error("寮傚父锛侊紒锛�"+e);
+            log.error("閫�璐у叆搴撴満姊拌噦鍙栬揣寮傚父锛侊紒锛�"+e);
             return FAIL;
         }
         return FAIL;
@@ -97,7 +150,7 @@
                         .build()
                         .doPost();
                 JSONObject jsonObject = JSON.parseObject(response);
-                if (jsonObject.getString("result").equals("Y")) {
+                if (jsonObject.getInteger("Code").equals(200)) {
                     success = true;
                 } else {
                     log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}"+srHangJiaUrl+erpPath, JSON.toJSONString(combParam), response);
@@ -124,4 +177,20 @@
         }
         return SUCCESS;
     }
+
+    public Integer getStaOther(Integer staNo){
+        switch (staNo){
+            case 118:
+                return 119;
+            case 119:
+                return 118;
+            case 120:
+                return 121;
+            case 121:
+                return 120;
+            default:
+                return 0;
+        }
+    }
+
 }

--
Gitblit v1.9.1