From e97bfb5567d95dea572f84a84db9c4151b884656 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 02 八月 2024 11:36:57 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java   |    4 
 src/main/java/com/zy/asrs/controller/OrderController.java         |   22 ++++
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |    6 +
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java             |   63 ++++++++++++
 src/main/java/com/zy/asrs/controller/AgvOpenController.java       |   19 +++
 src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java |    4 
 src/main/java/com/zy/asrs/controller/OrderDetlController.java     |   31 ++++++
 src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java            |   12 ++
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java           |    2 
 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java            |    2 
 src/main/java/com/zy/asrs/controller/AgvMobileController.java     |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |   37 +++++-
 src/main/java/com/zy/asrs/controller/OutController.java           |    1 
 src/main/java/com/zy/asrs/service/AgvBasDevpService.java          |    1 
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java       |   69 +++++++++++++
 15 files changed, 260 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 771ae87..e9fa509 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -117,7 +117,7 @@
     }
 
     /*
-    鍚姩鍏ュ簱锛岀粍鎵� + 鐢熶骇宸ヤ綔妗�
+    鍚姩鍏ュ簱锛岀粍鎵� + 鐢熸垚宸ヤ綔妗�
     */
     @PostMapping("/start/pakin/auth")
     @Synchronized
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 6b87a01..2f37df0 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -203,11 +203,22 @@
         @Transactional
         public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
-            //鍏ュ簱浠诲姟 || 鎷f枡鍏ュ簱浠诲姟 ||鐩樼偣鍐嶅叆搴� ||绌烘澘鍏ュ簱
-            if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){
-                //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
-                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            switch(agvWrkMast.getIoType()) {
+                //鍏ュ簱浠诲姟
+                case 1:
+                // 绌烘澘鍏ュ簱
+                case 10:
+                // 鎷f枡鍏ュ簱浠诲姟
+                case 53:
+                // 鐩樼偣鍐嶅叆搴�
+                case 57:
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null);
+                    break;
             }
+            //if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){
+            //    //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
+            //    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            //}
 
             //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓�
             agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204);
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 771adbb..10de0f4 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -166,6 +166,28 @@
 //        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
+    @RequestMapping(value = "/order/wait/detls/pakin/page/auth")
+    @ManagerAuth
+    public R waitOrderDetls(@RequestParam(defaultValue = "1")Integer curr,
+                        @RequestParam(defaultValue = "100")Integer limit,
+                        @RequestParam(required = false)String orderByField,
+                        @RequestParam(required = false)String orderByType,
+                        @RequestParam Map<String, Object> param){
+        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convert(param, wrapper);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 36) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source",docIds);
+        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
     //  鎵�鏈夊叆搴撹鍗曟槑缁�
     @RequestMapping(value = "/order/bcp/detls/pakin/page/auth")
     @ManagerAuth
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 1906679..c0c1deb 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -194,6 +194,37 @@
         return R.ok(page);
     }
 
+    @RequestMapping(value = "/orderDetl/pakout/list/authV6")
+    @ManagerAuth
+    public R pakoutList6(@RequestParam(defaultValue = "1")Integer curr,
+                         @RequestParam(defaultValue = "10")Integer limit,
+                         @RequestParam(required = false)String orderByField,
+                         @RequestParam(required = false)String orderByType,
+                         @RequestParam Map<String, Object> param){
+        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convertLike(param, wrapper);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+            wrapper.orderBy("create_time", false);
+        }
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 37) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+
+        wrapper.in("source",docIds);
+        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+        for (OrderDetl record : page.getRecords()) {
+            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
+            record.setStock(sumAnfme == null ? 0 : sumAnfme);
+        }
+
+        return R.ok(page);
+    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 425cdb0..17c08a7 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -184,6 +184,7 @@
             if(!staNoList.contains(locDto.getAgvStaNo())){
                 return R.error(locDto.getAgvStaNo()+"璇ョ珯鐐瑰凡鏈夊嚭搴撲换鍔★紝鏃犳硶閫夋嫨璇ョ珯鐐瑰嚭搴�");
             }
+
         }
         //濡傛灉鎵�鏈夊簱閮芥病鏈夊簱瀛橈紝鍒欒繑鍥�
         for (LocDto locDto : locDtos) {
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java b/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java
index 2392904..4bcb2d2 100644
--- a/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java
+++ b/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.entity.param;
 
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.WrkDetl;
 import lombok.Data;
 
 import java.util.List;
@@ -20,6 +22,8 @@
 
     private List<CombParam> combParams;
 
+    private List<AgvWrkDetl> wrkDetls;
+
 //    private List<CombParam> combParam;
 
 
diff --git a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java
index 6fcda28..885fb64 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java
@@ -38,6 +38,18 @@
     List<String> selectCacheShelvesStationCodeByLocType(@Param("locType") Short locType, @Param("floor") int floor);
 
     @Select("SELECT\n" +
+            "\tdev_no \n" +
+            "FROM\n" +
+            "\tagv_bas_devp\n" +
+            "\tLEFT JOIN agv_wrk_mast ON agv_bas_devp.dev_no = agv_wrk_mast.source_loc_no \n" +
+            "WHERE\n" +
+            "\tagv_wrk_mast.loc_no IS NULL \n" +
+            "\tAND agv_bas_devp.loc_type1 = #{locType} \n" +
+            "\tAND agv_bas_devp.floor = #{floor} \n" +
+            "\tAND agv_bas_devp.out_enable = 'Y'")
+    List<String> selectCacheShelvesStationCodeByLocType2(@Param("locType") Short locType, @Param("floor") int floor);
+
+    @Select("SELECT\n" +
             "\tbas.dev_no,\n" +
             "\tCOUNT ( mast.loc_no ) AS num \n" +
             "FROM\n" +
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index 52d314a..b0f3a46 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -28,7 +28,7 @@
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts = 1")
     Double selectSumAnfmeByMatnrProcess(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
 
-    @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1 AND b.lev1 != 2")
+    @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1 AND b.floor != 1")
     Double selectSumAnfmeByMatnrProcessed(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
 
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor = #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1")
diff --git a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java
index 399593a..dab9548 100644
--- a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java
+++ b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java
@@ -26,6 +26,7 @@
 
     List<String> selectCacheShelvesStationCodeByFloor(int floor);
     List<String> selectCacheShelvesStationCodeByLocType(short locType, int floor);
+    List<String> selectCacheShelvesStationCodeByLocType2(short locType, int floor);
 
     public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
index d9c18b8..2242247 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
@@ -303,6 +303,10 @@
     public List<String> selectCacheShelvesStationCodeByLocType(short locType, int floor) {
         return this.baseMapper.selectCacheShelvesStationCodeByLocType(locType,floor);
     }
+    @Override
+    public List<String> selectCacheShelvesStationCodeByLocType2(short locType, int floor) {
+        return this.baseMapper.selectCacheShelvesStationCodeByLocType2(locType,floor);
+    }
 
     public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode){
         return this.baseMapper.selectDevNoAndNumBystationCode(stationCode);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 51e91ce..6c1417e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -701,6 +701,12 @@
 
         List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code",param.getBarcode()));
         agvWrkDetls.forEach(agvWrkDetl -> {
+            for (AgvWrkDetl wrkDetl : param.getWrkDetls()) {
+                if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) {
+                    agvWrkDetl.setAnfme(wrkDetl.getAnfme());
+                    break;
+                }
+            }
             agvWrkDetl.setProcessSts(2);
             agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2));
             agvWrkDetl.setModiUser(userId);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index e66cebf..97316b1 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -17,8 +17,11 @@
 import com.zy.common.model.TaskDto;
 import com.zy.common.service.AgvCommonService;
 import com.zy.common.web.BaseController;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -69,6 +72,8 @@
     private AgvWrkDetlLogService agvWrkDetlLogService;
     @Autowired
     private WrkMastExecuteService wrkMastExecuteService;
+    @Autowired
+    private ConfigService configService;
 
 
     /*
@@ -476,13 +481,28 @@
                     }
                 }
             });
-            if (isCurrLev.get()) {
-                agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
+
+
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks"));
+            if (Cools.isEmpty(config)) {
+                if (isCurrLev.get()) {
+                    agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
+                } else {
+                    agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+                }
             } else {
-                agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+                List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1"));
+                if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) {
+                    agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
+                } else {
+                    if (isCurrLev.get()) {
+                        agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
+                    } else {
+                        agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+                    }
+                    //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+                }
             }
-
-
 
             String devNo = agvBasDevp.getDevNo();
             String locNo = agvLocMast.getLocNo();
@@ -514,7 +534,6 @@
         updateAgvLocMast(agvLocMast,"S");
         return agvLocMast.getLocNo();
     }
-
     /*
     绌烘澘鍑哄簱
      */
@@ -693,7 +712,9 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
-
+        if (wrkMast.getIoType() == 113 && (wrkMast.getWrkSts() != 212L || wrkMast.getWrkSts() != 213L || wrkMast.getWrkSts() != 214L)) {
+            throw new CoolException(workNo+"涓嶆敮鎸佹墜鍔ㄧ淮鎶�");
+        }
         if (wrkMast.getIoType()==121){
             if (wrkMast.getWrkSts()<12L){
                 agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
@@ -1206,4 +1227,4 @@
 
     }
 
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index f4ce7b2..539a5b5 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -142,7 +142,7 @@
                 try{
                     agvWrkMastHandler.startPutWayWrk(agvWrkMast);
                 } catch (Exception e){
-                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
                 }
             });
         }
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 0275339..db4034f 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -1,7 +1,11 @@
 package com.zy.asrs.task;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.AgvBasDevp;
 import com.zy.asrs.entity.AgvLocMast;
 import com.zy.asrs.entity.AgvWrkMast;
@@ -10,11 +14,15 @@
 import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AutoMoveHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -31,6 +39,8 @@
     private AgvWrkMastService agvWrkMastService;
     @Autowired
     private AgvBasDevpService agvBasDevpService;
+    @Autowired
+    private ConfigService configService;
 
     // 璋冩嫧鍑哄簱
 //    @Scheduled(cron = "0/2 * * * * ? ")
@@ -305,4 +315,57 @@
             }
         }
     }
+
+    /**
+     * 鑷姩绉诲簱
+     *
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack7() throws ParseException {
+        Date now = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String currentDay = sdf.format(now);
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime"));
+        if (Cools.isEmpty(config)) {
+
+        } else {
+            if (config.getStatus().intValue() == 0) {
+                return;
+            }
+            JSONObject jsonObject = JSON.parseObject(config.getValue().toString());
+            Integer maxTansk = jsonObject.getInteger("maxTansk");
+            //Integer startTime = jsonObject.getInteger("startTime");
+            String startTime = jsonObject.getString("startTime");
+            long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime();
+            long time = now.getTime();
+            long time3 = time - time1;
+
+
+
+            if (time3 > 0 && time3 < (1000* 60 * 10)) {
+
+                List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1"));
+                if (maxTansk <= agvWrkMasts.size()){
+                    return;
+                }
+
+                List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+                        new EntityWrapper<AgvLocMast>()
+                                .eq("floor", 1)
+                                .eq("lev1", 1)
+                                .eq("loc_sts","F")
+                                .eq("loc_type1",3));
+                if (agvLocMasts.isEmpty()) {
+                    return;
+                }
+                for (AgvLocMast agvLocMast : agvLocMasts) {
+                    try{
+                        autoMoveHandler.autoTransfers(agvLocMast,maxTansk);
+                    } catch (Exception e){
+                        log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                    }
+                }
+            }
+        }
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 0207985..6a10807 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -537,4 +537,73 @@
 
         return SUCCESS;
     }
+
+    public ReturnT<String> autoTransfers(AgvLocMast agvLocMast,Integer maxTansk) {
+        Date now = new Date();
+        List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+        locDetls.forEach(agvLocDetl -> {
+            if (agvLocDetl.getProcessSts().equals(1)) {
+                throw new CoolException("褰撳墠搴撲綅鏈夊簱瀛樻湭鍔犲伐");
+            }
+        });
+        //鏌ヨ宸ヤ綔妗�
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+        if(!Cools.isEmpty(agvWrkMast)){
+            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+        }
+        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+        AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false);
+        if (LocMast.getLev1() != 2) {
+            throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
+        }
+        //鐢熸垚宸ヤ綔妗�
+        AgvWrkMast mast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        mast.setWrkSts(201L);
+        //鍏ュ嚭搴撶被鍨�
+        mast.setIoType(12);
+        mast.setIoTime(now);
+        //浼樺厛绾�
+        mast.setIoPri(300.0);
+        //婧愮珯鐐�
+        mast.setSourceLocNo(agvLocMast.getLocNo());
+        //鐩爣绔欑偣
+        mast.setLocNo(LocMast.getLocNo());
+        //璐ф灦缂栫爜
+        mast.setBarcode(agvLocMast.getBarcode());
+        //璐ф灦绫诲瀷
+        mast.setWhsType(30);
+
+        mast.setAppeUser(9527L);
+        mast.setAppeTime(now);
+        mast.setModiUser(9527L);
+        mast.setModiTime(now);
+        mast.setLogErrMemo("doAutoMove");
+        if (!agvWrkMastService.insertByIncrease(mast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+        //鐢熸垚宸ヤ綔妗f槑缁�
+        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+        agvLocDetls.forEach(agvLocDetl -> {
+            AgvWrkDetl wrkDetl = new AgvWrkDetl();
+            wrkDetl.setWrkNo(mast1.getWrkNo());
+            wrkDetl.sync(agvLocDetl);
+            wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAppeUser(9527L);
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiUser(9527L);
+            wrkDetl.setModiTime(now);
+            if (!agvWrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        });
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvLocMast(agvLocMast,"R");
+        updateAgvLocMast(LocMast,"S");
+
+        return SUCCESS;
+    }
 }

--
Gitblit v1.9.1