From 89a2971d0a728641f1745ae7acb41b4800592a38 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期四, 06 二月 2025 07:53:42 +0800
Subject: [PATCH] 四期

---
 src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java   |    2 
 src/main/java/com/zy/asrs/excel/ExcelOrder.java                   |   14 +
 src/main/java/com/zy/asrs/task/OrderLogScheduler.java             |    2 
 src/main/resources/四期sql/4.初始化1.txt                               |    5 
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |   81 +++++++
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java             |   59 +++++
 src/main/resources/四期sql/2.新增2楼库位.txt                             |    8 
 src/main/java/com/zy/asrs/utils/TimeUtils.java                    |   15 +
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java  |   85 ++++---
 src/main/java/com/zy/asrs/service/AgvMobileService.java           |    4 
 src/main/java/com/zy/asrs/service/AgvLocMastService.java          |    3 
 src/main/java/com/zy/asrs/controller/OrderLogController.java      |   66 ++++--
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java     |    4 
 src/main/java/com/zy/common/service/AgvCommonService.java         |   29 ++
 src/main/java/com/zy/asrs/controller/AgvMobileController.java     |    9 
 src/main/java/com/zy/asrs/excel/CloseOrderReadListener.java       |   84 ++++++++
 src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java |   11 +
 src/main/resources/四期sql/未上线前禁用库位.txt                             |    1 
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java       |   85 ++++++++
 src/main/resources/application.yml                                |    2 
 20 files changed, 478 insertions(+), 91 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index cdbcfae..76361f2 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -812,6 +812,15 @@
         return R.ok();
     }
 
+    @PostMapping("/hand/control/processed/v2")
+    @Transactional
+    @ManagerAuth(memo = "纭鍔犲伐瀹屾垚V2")
+    @Synchronized
+    public R processedV2(@RequestBody AgvMobileStartPakin param) {
+        agvMobileService.processedV2(param, getUserId());
+        return R.ok();
+    }
+
 
     public static void main(String[] args) {
         List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
diff --git a/src/main/java/com/zy/asrs/controller/OrderLogController.java b/src/main/java/com/zy/asrs/controller/OrderLogController.java
index b8e70ca..bbbad84 100644
--- a/src/main/java/com/zy/asrs/controller/OrderLogController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderLogController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -8,13 +9,18 @@
 import com.core.common.*;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.result.WrkTraceVo;
+import com.zy.asrs.excel.CloseOrderReadListener;
+import com.zy.asrs.excel.ExcelOrder;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.OrderServiceImpl;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.*;
 
 @Slf4j
@@ -39,10 +45,12 @@
     private LocDetlService locDetlService;
     @Autowired
     private MatService matService;
+    @Autowired
+    private OrderServiceImpl orderService;
 
     @RequestMapping(value = "/orderLog/nav/list/auth")
     @ManagerAuth
-    public R navList(@RequestParam(required = false) String orderNo){
+    public R navList(@RequestParam(required = false) String orderNo) {
         EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
         if (!Cools.isEmpty(orderNo)) {
             wrapper.like("order_no", orderNo);
@@ -70,15 +78,17 @@
 
     @RequestMapping(value = "/orderLog/head/page/auth")
     @ManagerAuth
-    public R head(@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){
+    public R head(@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<OrderLog> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        } else {
             wrapper.orderBy("settle").orderBy("create_time", false);
         }
         wrapper.eq("status", 1);
@@ -87,12 +97,9 @@
 
     @RequestMapping(value = "/orderLog/detl/all/auth")
     @ManagerAuth
-    public R head(@RequestParam Long orderId){
+    public R head(@RequestParam Long orderId) {
         return R.ok().add(orderDetlLogService.selectList(new EntityWrapper<OrderDetlLog>().eq("order_id", orderId)));
     }
-
-
-
 
 
     @PostMapping(value = "/orderLog/wrk/trace/auth")
@@ -174,22 +181,24 @@
 
     @RequestMapping(value = "/orderLog/list/auth")
     @ManagerAuth
-    public R list(@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){
+    public R list(@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<OrderLog> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        }
         return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    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());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -202,7 +211,7 @@
 
     @RequestMapping(value = "/orderLog/export/auth")
     @ManagerAuth
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         Map<String, Object> map = excludeTrash(param.getJSONObject("order"));
@@ -218,7 +227,7 @@
         wrapper.like("id", condition);
         Page<OrderLog> page = orderLogService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (OrderLog order : page.getRecords()){
+        for (OrderLog order : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", order.getId());
             map.put("value", order.getOrderNo());
@@ -231,10 +240,21 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<OrderLog> wrapper = new EntityWrapper<OrderLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != orderLogService.selectOne(wrapper)){
+        if (null != orderLogService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(Order.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
     }
 
+    /**
+     * 鏂囦欢涓婁紶,鍏抽棴鍗曟嵁
+     */
+    @PostMapping("/order/close")
+    @ResponseBody
+    @ManagerAuth
+    public R upload(MultipartFile file) throws IOException {
+        EasyExcel.read(file.getInputStream(), ExcelOrder.class, new CloseOrderReadListener(orderService)).sheet().doRead();
+        return R.ok();
+    }
+
 }
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 4bcb2d2..21694de 100644
--- a/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java
+++ b/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java
@@ -19,6 +19,8 @@
 
     // 绔欑偣鐮�
     private String devNo;
+    //璁㈠崟缂栧彿閲屾湁B鏄簩鍘傦紝G鏄笁鍘�
+    private String factory;
 
     private List<CombParam> combParams;
 
diff --git a/src/main/java/com/zy/asrs/excel/CloseOrderReadListener.java b/src/main/java/com/zy/asrs/excel/CloseOrderReadListener.java
new file mode 100644
index 0000000..cad2151
--- /dev/null
+++ b/src/main/java/com/zy/asrs/excel/CloseOrderReadListener.java
@@ -0,0 +1,84 @@
+package com.zy.asrs.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.alibaba.excel.util.ListUtils;
+import com.alibaba.fastjson.JSON;
+import com.zy.asrs.controller.AgvMobileController;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.service.OrderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+public class CloseOrderReadListener implements ReadListener<ExcelOrder> {
+
+    private static final Logger log = LoggerFactory.getLogger(CloseOrderReadListener.class);
+
+
+    /**
+     * 姣忛殧5鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互100鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀�
+     */
+    private static final int BATCH_COUNT = 300;
+    /**
+     * 缂撳瓨鐨勬暟鎹�
+     */
+    private List<ExcelOrder> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+
+    private OrderService orderService;
+
+
+    /**
+     * 濡傛灉浣跨敤浜唖pring,璇蜂娇鐢ㄨ繖涓瀯閫犳柟娉曘�傛瘡娆″垱寤篖istener鐨勬椂鍊欓渶瑕佹妸spring绠$悊鐨勭被浼犺繘鏉�
+     *
+     * @param orderService
+     */
+    public CloseOrderReadListener(OrderService orderService) {
+        this.orderService = orderService;
+    }
+
+    /**
+     * 杩欎釜姣忎竴鏉℃暟鎹В鏋愰兘浼氭潵璋冪敤
+     *
+     * @param data    one row value. Is is same as
+     * @param context
+     */
+    @Override
+    public void invoke(ExcelOrder data, AnalysisContext context) {
+        log.info("瑙f瀽鍒颁竴鏉℃暟鎹�:{}", JSON.toJSONString(data));
+        cachedDataList.add(data);
+        // 杈惧埌BATCH_COUNT浜嗭紝闇�瑕佸幓瀛樺偍涓�娆℃暟鎹簱锛岄槻姝㈡暟鎹嚑涓囨潯鏁版嵁鍦ㄥ唴瀛橈紝瀹规槗OOM
+        if (cachedDataList.size() >= BATCH_COUNT) {
+            saveData();
+            // 瀛樺偍瀹屾垚娓呯悊 list
+            cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+        }
+    }
+
+    /**
+     * 鎵�鏈夋暟鎹В鏋愬畬鎴愪簡 閮戒細鏉ヨ皟鐢�
+     *
+     * @param context
+     */
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        // 杩欓噷涔熻淇濆瓨鏁版嵁锛岀‘淇濇渶鍚庨仐鐣欑殑鏁版嵁涔熷瓨鍌ㄥ埌鏁版嵁搴�
+        saveData();
+        log.info("鎵�鏈夋暟鎹В鏋愬畬鎴愶紒");
+    }
+
+    /**
+     * 鍔犱笂瀛樺偍鏁版嵁搴�
+     */
+    private void saveData() {
+        log.info("{}鏉℃暟鎹紝寮�濮嬫搷浣滄暟鎹簱锛�", cachedDataList.size());
+        for (ExcelOrder excelOrder : cachedDataList) {
+            Order order = orderService.selectByNo(excelOrder.getOrderNo());
+            if (order != null) {
+                orderService.updateSettle(order.getId(), 6L, 9529L);
+            }
+        }
+        log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒");
+    }
+}
diff --git a/src/main/java/com/zy/asrs/excel/ExcelOrder.java b/src/main/java/com/zy/asrs/excel/ExcelOrder.java
new file mode 100644
index 0000000..46bbe51
--- /dev/null
+++ b/src/main/java/com/zy/asrs/excel/ExcelOrder.java
@@ -0,0 +1,14 @@
+package com.zy.asrs.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ExcelOrder implements Serializable {
+
+    @ExcelProperty("鍗曟嵁缂栧彿")
+    private String orderNo;
+    
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvLocMastService.java b/src/main/java/com/zy/asrs/service/AgvLocMastService.java
index 0623e67..3806e6c 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocMastService.java
@@ -22,6 +22,9 @@
 
     public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType);
 
+    public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String ctnNo);
+
+
     public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String locType,Short locType3);
     public List<String> queryGroupEmptyStock(int floor);
 
diff --git a/src/main/java/com/zy/asrs/service/AgvMobileService.java b/src/main/java/com/zy/asrs/service/AgvMobileService.java
index 7e7db3d..37c8f59 100644
--- a/src/main/java/com/zy/asrs/service/AgvMobileService.java
+++ b/src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -62,6 +62,10 @@
      * 纭鍔犲伐瀹屾垚
      */
     String processed(AgvMobileStartPakin param, Long userId);
+    /**
+     * 纭鍔犲伐瀹屾垚锛屽洓鏈�
+     */
+    String processedV2(AgvMobileStartPakin param, Long userId);
 
     /**
      * 绌烘灦绂诲満
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
index 9b308c5..e0edc63 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
@@ -373,6 +373,17 @@
         agvLocMast.setModiTime(new Date());
         this.updateById(agvLocMast);
     }
+
+    public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String ctnNo) {
+        AgvLocMast agvLocMast = this.selectById(locNo);
+        agvLocMast.setLocSts(locSts);
+        agvLocMast.setBarcode(barcode);
+        agvLocMast.setLocType2(containerType);
+        agvLocMast.setCtnNo(ctnNo);
+        agvLocMast.setModiTime(new Date());
+        this.updateById(agvLocMast);
+    }
+
     public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String locType,Short locType3) {
         AgvLocMast agvLocMast = this.selectById(locNo);
         agvLocMast.setLocSts(locSts);
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 f286e4d..41dc775 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -4,11 +4,11 @@
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.zy.asrs.constant.AsrsConstants;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.CodeDetectionUtil;
-import com.zy.asrs.utils.OrderUtils;
 import com.zy.common.model.DetlDto;
 import com.zy.common.service.AgvCommonService;
 import lombok.Synchronized;
@@ -797,14 +797,8 @@
         agvWrkMastLogService.save(agvWrkMast);
         agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
         String sourceLocNo = agvWrkMast.getSourceLocNo();
-        //AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
-        // TODO: 鍥涙湡
+        AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
         List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
-        String factory = null;
-        if (!Cools.isEmpty(agvWrkDetls)) {
-            factory = OrderUtils.getFactory(agvWrkDetls.get(0).getThreeCode());
-        }
-        AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory);
         if (newLocMast == null) {
             throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
         }
@@ -849,6 +843,77 @@
         return "ok";
     }
 
+    /*
+     * 纭鍔犲伐瀹屾垚
+     */
+    @Override
+    @Transactional
+    public String processedV2(AgvMobileStartPakin param, Long userId) {
+        Date now = new Date();
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()).eq("loc_no", param.getDevNo()));
+        if (Cools.isEmpty(agvWrkMast)) {
+            throw new CoolException("鏆傛棤褰撳墠璐ф灦鐨勫伐浣滄。");
+        }
+        if (agvWrkMast.getWrkSts() != 205) {
+            throw new CoolException("褰撳墠浠诲姟鏈畬鎴愶紝璇风‘璁�");
+        }
+        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+        agvWrkMastLogService.save(agvWrkMast);
+        agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
+        String sourceLocNo = agvWrkMast.getSourceLocNo();
+        // TODO: 鍥涙湡
+        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
+        String factory = param.getFactory();
+        AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory);
+        if (newLocMast == null) {
+            throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
+        }
+        agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
+        agvWrkMast.setLocNo(newLocMast.getLocNo());
+        agvWrkMast.setIoType(57);
+        agvWrkMast.setWrkSts(201L);
+        agvWrkMast.setModiUser(userId);
+        agvWrkMast.setModiTime(now);
+        agvWrkMast.setIoTime(now);
+        // 鎵撴爣璁帮紝鑻ュ簱浣嶄笉澶燂紝鍏ュ簱鍒板埆鐨勬ゼ灞傦紝閭d箞闇�瑕佽法灞傜Щ搴�
+        if (!Cools.isEmpty(factory)){
+            if (newLocMast.getLev1() == 1 && factory.equals(AsrsConstants.SANCHANG)) {
+                agvWrkMast.setPacked("1");
+            } else if (newLocMast.getLev1() == 2 && factory.equals(AsrsConstants.ERCHANG)) {
+                agvWrkMast.setPacked("1");
+            }
+        }
+        if (!agvWrkMastService.update(agvWrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", agvWrkMast.getWrkNo()))) {
+            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+        }
+
+        // 鏇存柊婧愮珯鐐� + 鐩爣搴撲綅鐘舵�� + 鍘嗗彶婧愬簱浣�
+        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(), "R", param.getBarcode(), agvWrkMast.getWhsType().shortValue());
+        agvLocMastService.updateLocStsByLocNo(newLocMast.getLocNo(), "S", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+        agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30);
+        agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo));
+
+        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);
+            agvWrkDetl.setModiTime(now);
+            agvWrkDetl.setIoTime(now);
+            if (!agvWrkDetlService.update(agvWrkDetl, new EntityWrapper<AgvWrkDetl>()
+                    .eq("matnr", agvWrkDetl.getMatnr())
+                    .eq("three_code", agvWrkDetl.getThreeCode())
+                    .eq("supp_code", param.getBarcode()))) {
+                throw new CoolException("鏇存柊宸ヤ綔鏄庣粏澶辫触");
+            }
+        });
+        return "ok";
+    }
 
     /*
      * 绔欑偣鍥為��
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index d65682c..383ea3b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -16,6 +16,8 @@
 import com.zy.asrs.service.*;
 import com.zy.common.service.AgvCommonService;
 import com.zy.common.utils.HttpHandler;
+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.beans.factory.annotation.Value;
@@ -64,6 +66,8 @@
     private AgvCommonService agvCommonService;
     @Autowired
     private AgvWrkMastService agvWrkMastService;
+    @Autowired
+    private ConfigService configService;
 
 
     public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
@@ -227,46 +231,51 @@
             agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
         }
         agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
-        switch (agvWrkMast.getIoType()) {
-            case 114:
-            case 108:
-            case 12:
-                agvTaskCreateParam.setTaskTyp("F06");
-                break;
-            case 109:
-                if (agvWrkMast.getWrkSts() == 201) {
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR"));
+        if (config != null && config.getStatus() == 1 && config.getValue().equals("1") && processUseTiShengJi(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo())) {
+                // TODO 鍥涙湡
+        } else {
+            switch (agvWrkMast.getIoType()) {
+                case 114:
+                case 108:
+                case 12:
                     agvTaskCreateParam.setTaskTyp("F06");
-                } else {
+                    break;
+                case 109:
+                    if (agvWrkMast.getWrkSts() == 201) {
+                        agvTaskCreateParam.setTaskTyp("F06");
+                    } else {
+                        agvTaskCreateParam.setTaskTyp("F01");
+                    }
+                    break;
+                case 1:
+                case 57:
+                    // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅
+                    AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
+                    String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
+                    AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
+                    if ("02".equals(locSub)) {
+                        if (agvBasDevp.getFloor() == 4) {
+                            agvTaskCreateParam.setTaskTyp("F01");
+                        } else {
+                            agvTaskCreateParam.setTaskTyp("F06");
+                        }
+
+                    } else {
+                        // 鐩爣妤煎眰浣�1妤� 浣嗘簮搴撲綅锛堟帴椹充綅锛夊湪鍚稿浜屾ゼ
+                        if (agvBasDevp.getFloor() == 4) {
+                            agvTaskCreateParam.setTaskTyp("F06");
+                        } else {
+                            agvTaskCreateParam.setTaskTyp("F01");
+                        }
+
+
+                    }
+                    break;
+                default:
                     agvTaskCreateParam.setTaskTyp("F01");
-                }
-                break;
-            case 1:
-            case 57:
-                // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅
-                AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
-                String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
-                AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
-                if ("02".equals(locSub)) {
-                    if (agvBasDevp.getFloor() == 4) {
-                        agvTaskCreateParam.setTaskTyp("F01");
-                    } else {
-                        agvTaskCreateParam.setTaskTyp("F06");
-                    }
-
-                } else {
-                    // 鐩爣妤煎眰浣�1妤� 浣嗘簮搴撲綅锛堟帴椹充綅锛夊湪鍚稿浜屾ゼ
-                    if (agvBasDevp.getFloor() == 4) {
-                        agvTaskCreateParam.setTaskTyp("F06");
-                    } else {
-                        agvTaskCreateParam.setTaskTyp("F01");
-                    }
-
-
-                }
-                break;
-            default:
-                agvTaskCreateParam.setTaskTyp("F01");
-                break;
+                    break;
+            }
         }
 
         agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 2182cb5..c6d9042 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -213,7 +213,7 @@
      * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱
      * 2妤兼垨3妤肩珯鐐瑰彲鍏ヤ俊鍙峰叏閮ㄦ病鏈夛紝浠h〃璧扮數姊嚜鍔ㄦ惉杩愭ā寮�
      */
-    @Scheduled(cron = "0/2 * * * * ? ")
+    @Scheduled(cron = "0/30 * * * * ? ")
     private void autoEmptyBack4() {
         // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
         List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>()
@@ -236,7 +236,7 @@
      * 灏嗕簩鍘傜殑6绫诲瀷鐨勭┖璐ф灦璋冩嫧鍥炲惛濉戜簩妤�
      */
     // TODO 鍥涙湡
-    @Scheduled(cron = "0/2 * * * * ? ")
+    @Scheduled(cron = "0/30 * * * * ? ")
     private void autoEmptyBackSiqi() {
         // 鏌ヨ6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐�
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_TIME"));
@@ -245,7 +245,7 @@
             try {
                 // 鍒ゆ柇鏄惁鍦ㄦ墽琛屾椂闂村唴
                 ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class);
-                if (procesTimeData != null && TimeUtils.between(procesTimeData)) {
+                if (procesTimeData != null && config.getStatus() == 1 && TimeUtils.between(procesTimeData)) {
                     flag = true;
                 }
             } catch (Exception e) {
@@ -255,9 +255,10 @@
             if (flag) {
                 executeLocType6();
             }
-        } else {
-            executeLocType6();
         }
+//        else {
+//            executeLocType6();
+//        }
     }
 
 
@@ -298,7 +299,6 @@
      * 鑷姩锛� 鐢熸垚 109 鑷姩鍥炴祦
      * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦
      * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱
-     *
      */
     @Scheduled(cron = "0/2 * * * * ? ")
     private void autoEmptyBack5() {
@@ -336,7 +336,6 @@
 
     /**
      * 鑷姩绉诲簱
-     *
      */
     @Scheduled(cron = "0/2 * * * * ? ")
     private void autoEmptyBack7() throws ParseException {
@@ -382,4 +381,50 @@
     }
 
 
+    /**
+     * 鑷姩绉诲簱锛屽洓鏈�
+     * 鍦ㄥ簱浣嶄笉澶熺殑鎯呭喌涓嬶紝绠卞3鍏ュ簱鍒殑妤煎眰搴撲綅鐨勬椂鍊欙紝鏅氫笂杩涜璺ㄥ眰绉诲簱
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack8() 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", "autoTime2"));
+        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>().eq("io_type", 12));
+                if (agvWrkMasts != null && maxTansk <= agvWrkMasts.size()) {
+                    return;
+                }
+
+                List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("floor", 1).eq("loc_sts", "F").eq("loc_type1", 3).eq("ctn_no", "1"));
+                if (agvLocMasts.isEmpty()) {
+                    return;
+                }
+                for (AgvLocMast agvLocMast : agvLocMasts) {
+                    try {
+                        autoMoveHandler.autoTransfersV2(agvLocMast, maxTansk);
+                    } catch (Exception e) {
+                        log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "鍥涙湡瀹氭椂绉诲簱浠诲姟 鍚稿 --> 鍚稿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
+                    }
+                }
+            }
+        }
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
index ebea365..ff27c40 100644
--- a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
@@ -24,7 +24,7 @@
 //    private boolean isERP;
 //
     //@Scheduled(cron = "0/10 * * * * ? ")
-    @Scheduled(fixedDelay = 600000)
+    @Scheduled(fixedDelay = 1000)
     private void execute() {
         List<Order> orders = orderService.selectToBeHistoryOrder();
         if (orders.isEmpty()) {
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 8d7af01..3d79d0d 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -191,7 +191,7 @@
                     //鏇存柊搴撳瓨鏄庣粏
                     agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo());
                     //淇敼婧愬簱浣嶇姸鎬佷负O
-                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null);
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null,null);
                     break;
                 case 53:
                     //淇敼宸ヤ綔鍏氭槑缁�
@@ -254,7 +254,7 @@
                     });
                     // 鏇存柊绔欑偣 + 搴撲綅鐘舵��     婧愬簱浣嶆槸绔欑偣
                     agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue());
-                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue(),agvWrkMast.getPacked());
                     break;
                 case 58:
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
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 344ef5b..b96533b 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -666,7 +666,8 @@
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
         AgvLocMast LocMast = agvCommonService.getLocNo(3, 1, false, false);
         if (LocMast.getLev1() != 2) {
-            throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
+            //throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
+            return FAIL;
         }
         List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12));
         if (agvWrkMasts.size() >= maxTansk) {
@@ -722,4 +723,86 @@
 
         return SUCCESS;
     }
+
+    /**
+     * 鍥涙湡锛岃法灞傜Щ搴擄紝1妤煎埌2妤硷紝2妤煎埌1妤�
+     *
+     * @param agvLocMast
+     * @param maxTansk
+     * @return
+     */
+    public ReturnT<String> autoTransfersV2(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;
+        if (agvLocMast.getLev1() == 1) {
+            //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+            LocMast = agvCommonService.getLocByLocRule(3, 1, 2);
+        } else {
+            LocMast = agvCommonService.getLocByLocRule(3, 1, 1);
+        }
+        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 12));
+        if (agvWrkMasts.size() >= maxTansk) {
+            throw new CoolException("鑷姩绉诲簱浠诲姟宸插埌璁惧畾鏈�澶у�硷細" + maxTansk);
+        }
+        //鐢熸垚宸ヤ綔妗�
+        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("doAutoMoveV4");
+        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;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/TimeUtils.java b/src/main/java/com/zy/asrs/utils/TimeUtils.java
index a6c26b8..35b19e7 100644
--- a/src/main/java/com/zy/asrs/utils/TimeUtils.java
+++ b/src/main/java/com/zy/asrs/utils/TimeUtils.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.utils;
 
+import com.alibaba.fastjson.JSON;
 import com.zy.asrs.task.core.ProcesTimeData;
 
 import java.time.LocalDate;
@@ -16,14 +17,22 @@
         LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(procesTimeData.getStartHour(), procesTimeData.getStartMinute()));
         LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(procesTimeData.getEndHour(), procesTimeData.getEndMinute()));
         if (procesTimeData.getStartHour() > procesTimeData.getEndHour()) {
-            endTime = endTime.plusDays(1);
+            startTime = startTime.plusDays(-1);
         }
         LocalDateTime currentTime = LocalDateTime.now(); // 鑾峰彇褰撳墠鏃堕棿
-        System.out.println(startTime);
-        System.out.println(endTime);
         if (currentTime.isAfter(startTime) && currentTime.isBefore(endTime)) {
             return true;
         }
         return false;
     }
+
+    public static void main(String[] args) {
+        ProcesTimeData procesTimeData = new ProcesTimeData();
+        procesTimeData.setStartHour(7);
+        procesTimeData.setStartMinute(40);
+        procesTimeData.setEndHour(15);
+        procesTimeData.setEndMinute(0);
+        System.out.println(between(procesTimeData));
+        System.out.println(JSON.toJSONString(procesTimeData));
+    }
 }
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 02ad465..d026f0d 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -76,6 +76,7 @@
 
     /**
      * 妫�绱㈠簱浣嶅彿
+     *
      * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
      */
     public AgvLocMast getLocNo(int type, int floor, boolean isEmpty, boolean isCurrLev) {
@@ -118,7 +119,6 @@
 
         try {
             // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-            // 鍥涙湡椤圭洰锛氶渶瑕佹敼鏌ユ壘搴撲綅閫昏緫
             // 绠卞3鍏ュ簱
 //            if (type == 3 && factory != null) {
 //                //浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
@@ -144,7 +144,7 @@
     /**
      * 搴撲綅瑙勫垯鏌ユ壘
      */
-    public AgvLocMast getLocByLocRule(int type, int floor,  String factory) {
+    public AgvLocMast getLocByLocRule(int type, int floor, String factory) {
 
         try {
             EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
@@ -169,6 +169,28 @@
             }
 
             agvLocMasts = agvLocMastService.selectList(wrapper);
+            for (AgvLocMast agvLocMast : agvLocMasts) {
+                AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
+                if (agvLocMast1.getLocSts().equals("O")) {
+                    return agvLocMast1;
+                }
+            }
+            throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+        } catch (Exception e) {
+            throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+        }
+    }
+
+    /**
+     * 搴撲綅瑙勫垯鏌ユ壘
+     */
+    public AgvLocMast getLocByLocRule(int type, int floor, int lev1) {
+
+        try {
+            EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
+            wrapper.eq("loc_sts", "O").eq("loc_type1", type);
+            wrapper.eq("floor", floor).eq("lev1", lev1);
+            List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper);
             for (AgvLocMast agvLocMast : agvLocMasts) {
                 AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
                 if (agvLocMast1.getLocSts().equals("O")) {
@@ -335,6 +357,7 @@
 
     /**
      * 妫�绱㈠簱浣嶅彿
+     *
      * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
      */
     public AgvBasDevp getDevpNo(int type, int floor) {
@@ -354,6 +377,7 @@
 
     /**
      * 妫�绱㈠簱浣嶅彿
+     *
      * @return locNo 妫�绱㈣嚜鍔ㄦ帴椹充綅
      */
     public AgvBasDevp getDevpNo(int type, int floor, String auto) {
@@ -372,6 +396,7 @@
 
     /**
      * 妫�绱㈠簱浣嶅彿
+     *
      * @return locNo 妫�绱㈠彲鍏ユ帴椹充綅
      */
     public AgvBasDevp getDevpNo(int type, int floor, String auto, String inEable) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 22524fb..0e0e3f2 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,4 @@
 spring:
   profiles:
     #dev loc prod
-    active: loc
\ No newline at end of file
+    active: dev
\ No newline at end of file
diff --git "a/src/main/resources/\345\233\233\346\234\237sql/2.\346\226\260\345\242\2362\346\245\274\345\272\223\344\275\215.txt" "b/src/main/resources/\345\233\233\346\234\237sql/2.\346\226\260\345\242\2362\346\245\274\345\272\223\344\275\215.txt"
index ce30c27..2d5e4a8 100644
--- "a/src/main/resources/\345\233\233\346\234\237sql/2.\346\226\260\345\242\2362\346\245\274\345\272\223\344\275\215.txt"
+++ "b/src/main/resources/\345\233\233\346\234\237sql/2.\346\226\260\345\242\2362\346\245\274\345\272\223\344\275\215.txt"
@@ -1,7 +1,7 @@
 DECLARE @locno VARCHAR(50); -- 澹版槑 locno 瀛楁锛屾寚瀹氶暱搴�
 DECLARE @locsts NVARCHAR(50);
 DECLARE @row1 INT = 27;
-DECLARE @bay1 INT = 19;
+DECLARE @bay1 INT = 14;
 DECLARE @lev1 INT = 1;
 DECLARE @fullplt VARCHAR(1); -- 鍋囪 fullplt 鍙渶瑕佷竴涓瓧绗�
 DECLARE @loctype1 INT = 6;
@@ -12,7 +12,7 @@
 DECLARE @stas INT;
 DECLARE @floor INT;
 DECLARE @maprow INT = 21;
-DECLARE @mapbay INT = 19;
+DECLARE @mapbay INT = 14;
 DECLARE @rightside INT = 0;
 DECLARE @plttype INT = 777;
 
@@ -22,8 +22,8 @@
 WHILE @row1 <= 38
 BEGIN
 	-- 鍦ㄦ瘡娆″惊鐜腑锛屾洿鏂� lev1 鐨勫��
-	SET @bay1 = 19; -- 閲嶇疆 lev1
-	SET @mapbay = 19; -- 閲嶇疆 lev1
+	SET @bay1 = 14; -- 閲嶇疆 lev1
+	SET @mapbay = 14; -- 閲嶇疆 lev1
 
 	WHILE @bay1 <= 33
 	BEGIN
diff --git "a/src/main/resources/\345\233\233\346\234\237sql/4.\345\210\235\345\247\213\345\214\2261.txt" "b/src/main/resources/\345\233\233\346\234\237sql/4.\345\210\235\345\247\213\345\214\2261.txt"
index 0845039..1b41e81 100644
--- "a/src/main/resources/\345\233\233\346\234\237sql/4.\345\210\235\345\247\213\345\214\2261.txt"
+++ "b/src/main/resources/\345\233\233\346\234\237sql/4.\345\210\235\345\247\213\345\214\2261.txt"
@@ -39,4 +39,7 @@
 	 END
 	
 -- 璁剧疆涓夋ゼ涓�灞傞棿闅�
- UPDATE [dbo].[agv_loc_mast] SET right_side = 1 WHERE  floor = 3 AND lev1 = 1 AND row1 IN (1,3,5,7,8,9,11,13,14,16,18,20,21,23,25)
\ No newline at end of file
+ UPDATE [dbo].[agv_loc_mast] SET right_side = 1 WHERE  floor = 3 AND lev1 = 1 AND row1 IN (1,3,5,7,8,9,11,13,14,16,18,20,21,23,25)
+
+
+ UPDATE [dbo].[agv_loc_mast] SET loc_type2 = 31 WHERE  loc_type1 = 6
\ No newline at end of file
diff --git "a/src/main/resources/\345\233\233\346\234\237sql/\346\234\252\344\270\212\347\272\277\345\211\215\347\246\201\347\224\250\345\272\223\344\275\215.txt" "b/src/main/resources/\345\233\233\346\234\237sql/\346\234\252\344\270\212\347\272\277\345\211\215\347\246\201\347\224\250\345\272\223\344\275\215.txt"
new file mode 100644
index 0000000..33fba32
--- /dev/null
+++ "b/src/main/resources/\345\233\233\346\234\237sql/\346\234\252\344\270\212\347\272\277\345\211\215\347\246\201\347\224\250\345\272\223\344\275\215.txt"
@@ -0,0 +1 @@
+UPDATE [dbo].[agv_loc_mast] SET loc_sts = 'X' WHERE  loc_type1 = 6
\ No newline at end of file

--
Gitblit v1.9.1