From e9648272bcaee5f64273aca8e41f830a3644628d Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期四, 20 三月 2025 15:41:38 +0800
Subject: [PATCH] 初始化

---
 src/main/webapp/views/locMast/locMast.html                     |   10 
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    5 
 src/main/java/com/zy/asrs/controller/LocMastController.java    |  173 ++++++++--
 src/main/java/com/zy/asrs/controller/OpenController.java       |  104 ++++++
 src/main/java/com/zy/asrs/entity/result/StorageResult.java     |   19 +
 src/main/resources/mapper/LocMastMapper.xml                    |   13 
 src/main/java/com/zy/asrs/entity/BasCrnp.java                  |   16 
 src/main/java/com/zy/common/web/WcsController.java             |  182 +++++++---
 src/main/resources/mapper/BasCrnpMapper.xml                    |    1 
 src/main/java/com/zy/asrs/controller/WorkController.java       |   12 
 src/main/webapp/views/locMast/locMast_detail.html              |   12 
 src/main/java/com/zy/common/web/param/SearchLocParam.java      |   22 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |    2 
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 
 src/main/webapp/static/js/locMast/locMast.js                   |    2 
 src/main/java/com/zy/asrs/entity/LocMast.java                  |   12 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    3 
 src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java |   17 
 src/main/java/com/zy/common/service/CommonService.java         |  371 ++++++++++++++++++++-
 19 files changed, 822 insertions(+), 156 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 3d7b9b3..5a9fba3 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -53,22 +53,24 @@
 
     @RequestMapping(value = "/locMast/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) {
         excludeTrash(param);
         EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
         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(locMastService.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]));
@@ -89,17 +91,17 @@
         return R.ok();
     }
 
-	@RequestMapping(value = "/locMast/update/auth")
-	@ManagerAuth(memo = "搴撲綅淇敼")
-    public R update(LocMast locMast){
-        if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
+    @RequestMapping(value = "/locMast/update/auth")
+    @ManagerAuth(memo = "搴撲綅淇敼")
+    public R update(LocMast locMast) {
+        if (Cools.isEmpty(locMast) || null == locMast.getLocNo()) {
             return R.error();
         }
         LocMast oldLocMast = locMastService.selectById(locMast.getLocNo());
-        if (locX(locMast.getLocNo())){
-            if (oldLocMast.getLocSts().equals("X")){
+        if (locX(locMast.getLocNo())) {
+            if (oldLocMast.getLocSts().equals("X")) {
                 return R.error("姝ゅ娌℃湁搴撲綅锛岃鏍规嵁鐜板満鎯呭喌鎿嶄綔锛侊紒锛�");
-            }else {
+            } else {
                 locMast.setLocSts("X");
             }
         }
@@ -117,14 +119,41 @@
         locMastService.updateById(locMast);
         return R.ok();
     }
-    public boolean locX(String locNo){
-        switch (locNo){
-            case "1300601": case "1300602": case "1300603": case "1300604": case "1300605": case "1300606":
-            case "1300701": case "1300702": case "1300703": case "1300704": case "1300705": case "1300706":
-            case "1301301": case "1301302": case "1301303": case "1301304": case "1301305": case "1301306":
-            case "1301401": case "1301402": case "1301403": case "1301404": case "1301405": case "1301406":
-            case "1302001": case "1302002": case "1302003": case "1302004": case "1302005": case "1302006":
-            case "1301205": case "1301206":
+
+    public boolean locX(String locNo) {
+        switch (locNo) {
+            case "1300601":
+            case "1300602":
+            case "1300603":
+            case "1300604":
+            case "1300605":
+            case "1300606":
+            case "1300701":
+            case "1300702":
+            case "1300703":
+            case "1300704":
+            case "1300705":
+            case "1300706":
+            case "1301301":
+            case "1301302":
+            case "1301303":
+            case "1301304":
+            case "1301305":
+            case "1301306":
+            case "1301401":
+            case "1301402":
+            case "1301403":
+            case "1301404":
+            case "1301405":
+            case "1301406":
+            case "1302001":
+            case "1302002":
+            case "1302003":
+            case "1302004":
+            case "1302005":
+            case "1302006":
+            case "1301205":
+            case "1301206":
             case "1302402":
             case "1402402":
                 return true;
@@ -135,12 +164,12 @@
 
     @RequestMapping(value = "/locMast/delete/auth")
     @ManagerAuth(memo = "搴撲綅鍒犻櫎")
-    public R delete(@RequestParam String param){
+    public R delete(@RequestParam String param) {
         List<LocMast> list = JSONArray.parseArray(param, LocMast.class);
-        if (Cools.isEmpty(list)){
+        if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (LocMast entity : list){
+        for (LocMast entity : list) {
             locMastService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
@@ -148,7 +177,7 @@
 
     @RequestMapping(value = "/locMast/export/auth")
     @ManagerAuth(memo = "搴撲綅瀵煎嚭")
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("locMast"));
@@ -164,7 +193,7 @@
         wrapper.like("loc_no", condition);
         Page<LocMast> page = locMastService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (LocMast locMast : page.getRecords()){
+        for (LocMast locMast : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", locMast.getLocNo());
             map.put("value", locMast.getLocNo());
@@ -177,7 +206,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != locMastService.selectOne(wrapper)){
+        if (null != locMastService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(LocMast.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -188,21 +217,21 @@
 //    @Transactional
     public R init(LocMastInitParam param) {
         List<LocMast> list = new ArrayList<>();
-        for (int r=param.getStartRow(); r<=param.getEndRow(); r++){
-            for (int b=param.getStartBay(); b<=param.getEndBay(); b++) {
-                for (int l=param.getStartLev(); l<=param.getEndLev(); l++) {
+        for (int r = param.getStartRow(); r <= param.getEndRow(); r++) {
+            for (int b = param.getStartBay(); b <= param.getEndBay(); b++) {
+                for (int l = param.getStartLev(); l <= param.getEndLev(); l++) {
                     // 鑾峰彇搴撲綅鍙�
                     String locNo = String.format("%02d", r) + String.format("%03d", b) + String.format("%02d", l);
                     // 鑾峰彇鍫嗗灈鏈哄彿
                     int crnNo = 0;
                     Shelves shelves = new Shelves(param.getEndRow() - param.getStartRow() + 1, param.getCrnAmount());
-                    for (List<Integer> node : shelves.nodes){
+                    for (List<Integer> node : shelves.nodes) {
                         if (node.contains(r)) {
                             crnNo = shelves.nodes.indexOf(node) + 1;
                             break;
                         }
                     }
-                    Date now =  new Date();
+                    Date now = new Date();
                     LocMast locMast = new LocMast();
                     locMast.setLocNo(locNo);
                     locMast.setLocSts("O");
@@ -226,4 +255,76 @@
         locMastService.insertBatch(list);
         return R.ok("鍒濆鍖栨垚鍔�");
     }
-}
+
+    /**
+     * 鍒濆鍖栫粍
+     */
+//    @GetMapping("/locMast/group")
+    private void group(){
+        int i=1;
+        for(int row=1;row<17;row++){//鍒�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",1).le("row1",3));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",5).le("row1",8));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",9).le("row1",11));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",13).le("row1",16));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",17).le("row1",19));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",21).le("row1",24));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",25).le("row1",27));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+        for(int row=1;row<17;row++){//鎺�
+            for (int lev=1;lev<8;lev++){//灞�
+                String s="group1="+i;
+                locMastService.updateForSet(s,new EntityWrapper<LocMast>().eq("bay1",row).eq("lev1",lev).ge("row1",29).le("row1",31));
+                i++;
+            }
+        }
+        System.out.println("i="+i);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 1974537..4217e4e 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,11 +1,14 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
@@ -15,6 +18,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -32,6 +36,8 @@
 
     @Autowired
     private OpenService openService;
+    @Autowired
+    private WrkMastService wrkMastService;
 
     @PostMapping("/order/matSync/default/v1")
     @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
@@ -206,5 +212,103 @@
 
     /*********************************鍚屾鐗╂枡妗f鍜岃鍗�****************************************************/
 
+    /*********************************wcs鎺ュ彛瀵规帴****************************************************/
 
+    /**
+     * 浠诲姟寮�濮�
+     */
+    @RequestMapping("/start/task")
+    public HashMap<String ,Object> startTask(@RequestBody HashMap<String,Object> map) {
+        String taskNo = map.get("TaskNo")+"";
+        HashMap<String ,Object> map1 = new HashMap<>();
+        if(Cools.isEmpty(taskNo)){
+            map1.put("ReturnStatus", "1");
+            map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
+        }else{
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
+            if(wrkMast == null){
+                map1.put("ReturnStatus", "1");
+                map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
+            }else{
+                if(wrkMast.getIoType()==1){
+                    wrkMast.setWrkSts(3L);//鍏ュ簱寮�濮�
+                }else if(wrkMast.getIoType()==11){
+                    wrkMast.setWrkSts(13L);//鍑哄簱寮�濮�
+                }
+                wrkMast.setModiTime(new Date());
+                if(wrkMastService.updateById(wrkMast)){
+                    map1.put("ReturnStatus", "0");
+                    map1.put("ErrorMessage", "");
+                }else{
+                    map1.put("ReturnStatus", "1");
+                    map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+                }
+            }
+        }
+        return map1;
+    }
+
+    /**
+     * 鎼繍鍒扮洰鐨勫湴
+     */
+    @RequestMapping("/destination/task")
+    public HashMap<String ,Object> destinationTask(@RequestBody HashMap<String,Object> map) {
+        String taskNo = map.get("TaskNo")+"";
+        HashMap<String ,Object> map1 = new HashMap<>();
+        if(Cools.isEmpty(taskNo)){
+            map1.put("ReturnStatus", "1");
+            map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
+        }else{
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
+            if(wrkMast == null){
+                map1.put("ReturnStatus", "1");
+                map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
+            }else{
+                if(wrkMast.getIoType()==1){
+                    wrkMast.setWrkSts(4L);//浠诲姟缁撴潫
+                }else if(wrkMast.getIoType()==11){
+                    wrkMast.setWrkSts(13L);//鍑哄簱鍒扮珯鐐逛笂
+                }
+                wrkMast.setModiTime(new Date());
+                if(wrkMastService.updateById(wrkMast)){
+                    map1.put("ReturnStatus", "0");
+                    map1.put("ErrorMessage", "");
+                }else{
+                    map1.put("ReturnStatus", "1");
+                    map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+                }
+            }
+        }
+        return map1;
+    }
+
+    /**
+     * 鎼繍鍒扮洰鐨勫湴
+     */
+    @RequestMapping("/leave/task")
+    public HashMap<String ,Object> leaveTask(@RequestBody HashMap<String,Object> map) {
+        String taskNo = map.get("TaskNo")+"";
+        HashMap<String ,Object> map1 = new HashMap<>();
+        if(Cools.isEmpty(taskNo)){
+            map1.put("ReturnStatus", "1");
+            map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
+        }else{
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
+            if(wrkMast == null){
+                map1.put("ReturnStatus", "1");
+                map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
+            }else{
+                wrkMast.setWrkSts(14L);//鍑哄簱鍒扮珯鐐逛笂
+                wrkMast.setModiTime(new Date());
+                if(wrkMastService.updateById(wrkMast)){
+                    map1.put("ReturnStatus", "0");
+                    map1.put("ErrorMessage", "");
+                }else{
+                    map1.put("ReturnStatus", "1");
+                    map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+                }
+            }
+        }
+        return map1;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index eae764b..7fd25fd 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -144,12 +144,12 @@
         return R.ok();
     }
 
-    @RequestMapping("/create/waitPain/wrkMast/start")
-    @ManagerAuth(memo = "鐢熸垚浠诲姟")
-    public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) {
-        StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId());
-        return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
-    }
+//    @RequestMapping("/create/waitPain/wrkMast/start")
+//    @ManagerAuth(memo = "鐢熸垚浠诲姟")
+//    public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) {
+//        StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId());
+//        return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
+//    }
 
     @RequestMapping("/deal/preHave/start")
     @ManagerAuth(memo = "鍏堝叆鍝佸鐞�")
diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index 73d632e..eb4f9df 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -13,12 +13,14 @@
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @TableName("asr_bas_crnp")
+@Data
 public class BasCrnp implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -47,6 +49,9 @@
 
     /**
      * 鐘舵��
+     * 1.鑱旀満
+     * 2.鎵嬪姩
+     * 3.鍏呯數涓�
      */
     @ApiModelProperty(value= "鐘舵��")
     @TableField("crn_sts")
@@ -148,14 +153,23 @@
     @TableField("emp_in")
     private String empIn;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鎵惧皬杞︽爣璁帮紝浼樺厛鎵炬湁1鐨勫皬杞︽墍鍦ㄥ眰锛屽啀鍘绘壘娌℃湁灏忚溅鐨勬墍鍦ㄥ眰
+     */
+    @ApiModelProperty(value= "鍏ュ簱鏍囪")
     @TableField("tank_qty")
     private Integer tankQty;
+
+    @ApiModelProperty(value= "灏忚溅鎵�鍦ㄥ眰")
+    @TableField("lev1")
+    private Integer lev1;
 
     @ApiModelProperty(value= "")
     @TableField("tank_qty1")
     private Integer tankQty1;
 
+
+
     public BasCrnp() {}
 
     public BasCrnp(String inEnable,String outEnable,Integer crnSts,Integer wrkNo,Long crnErr,String frmLocno,Integer frmSta,Integer toSta,String toLocno,Long appeUser,Date appeTime,Long modiUser,Date modiTime,String hpMk,String retrieveMk,String ctlHp,String ctlRest,String empIn,Integer tankQty,Integer tankQty1) {
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index 0ee2575..6b46397 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -176,6 +176,18 @@
     @TableField("ctn_no")
     private String ctnNo;
 
+    @ApiModelProperty(value= "缁�")
+    @TableField("group1")
+    private Integer group1;
+
+    /**
+     * 娣辨祬搴撲綅鎺掑彿
+     * 1.鏈�娣卞簱浣�
+     * 浠庡皬鍒板ぇ锛岃秺澶х殑搴撲綅瓒婃祬
+     */
+    @ApiModelProperty(value= "搴撲綅灞炴��")
+    @TableField("loc_attribute")
+    private Integer locAttribute;
 
     public String getWhsType$(){
         BasWhsService service = SpringUtils.getBean(BasWhsService.class);
diff --git a/src/main/java/com/zy/asrs/entity/result/StorageResult.java b/src/main/java/com/zy/asrs/entity/result/StorageResult.java
new file mode 100644
index 0000000..bdc456d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/StorageResult.java
@@ -0,0 +1,19 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+@Data
+public class StorageResult {
+    private String ErrorMessage = "";
+    private Integer ReturnStatus = 0;
+    private Results Results;
+
+    @Data
+    public static class Results{
+        //搴撲綅鍙�
+        private String ShelfUnitId;
+        //浠诲姟鍙�
+        private Integer TaskNo;
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 208fff4..33877cc 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -22,4 +22,6 @@
     Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
 
     List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo);
+
+    List<LocMast> querySame(@Param("matnr") String matnr,@Param("lev1") Integer lev1);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 00b330b..dc2562c 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -37,4 +38,6 @@
      * @return
      */
     List<LocMast> queryShallowLocFMast(Integer crnNo);
+
+    List<LocMast> querySame(String matnr,Integer lev1);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
index babb339..c7cb82b 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -49,21 +49,12 @@
             throw new CoolException(devpNo+"绔欑偣涓嶅瓨鍦�");
         }
         if (pakin) {
-            if(station.getAutoing()==null || !station.getAutoing().equals("Y")) {
-                throw new CoolException(devpNo+"绔欑偣涓嶆槸鑷姩鐘舵��");
+            if(station.getCanining()==null || !station.getAutoing().equals("Y")) {
+                throw new CoolException(devpNo+"绔欑偣涓嶆槸鑳藉叆鐘舵��");
             }
-            if(station.getLoading()==null || !station.getLoading().equals("Y")) {
-                throw new CoolException(devpNo+"绔欑偣鏃犵墿");
-            }
-            if(station.getWrkNo()!=null && station.getWrkNo()>0 && station.getWrkNo() < 9990) {
-                throw new CoolException(devpNo+"绔欑偣宸叉湁宸ヤ綔鍙�");
-            }
-//            if(!station.getInEnable().equals("Y")) {
-//                throw new CoolException(devpNo+"绔欑偣涓嶆槸鍙叆鐘舵��");
+//            if(wrkMastService.getWorkingMast(devpNo)>0){
+//                throw new CoolException(devpNo+"绔欑偣涓嶈兘鍚屾椂鐢熸垚涓ょ瑪鍏ュ簱宸ヤ綔妗�");
 //            }
-            if(wrkMastService.getWorkingMast(devpNo)>0){
-                throw new CoolException(devpNo+"绔欑偣涓嶈兘鍚屾椂鐢熸垚涓ょ瑪鍏ュ簱宸ヤ綔妗�");
-            }
         }
         return station;
     }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index e6ce450..ae76556 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -52,4 +52,9 @@
     public List<LocMast> queryShallowLocFMast(Integer crnNo) {
         return this.baseMapper.queryShallowLocFMast(crnNo);
     }
+
+    @Override
+    public List<LocMast> querySame(String matnr,Integer lev1) {
+        return this.baseMapper.querySame(matnr,lev1);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index a3616dc..4664557 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -957,7 +957,7 @@
         }
         LocTypeDto locTypeDto = new LocTypeDto();
         locTypeDto.setLocType1((short) 1);
-        return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
+        return null;
     }
 
     @Override
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 854ca6f..98226ab 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -14,11 +14,13 @@
 import com.zy.common.model.Shelves;
 import com.zy.common.model.StartupDto;
 import com.zy.common.properties.SlaveProperties;
+import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -50,6 +52,7 @@
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
+     *
      * @param wrkMk 0:鍏ュ簱 1 - 3000 ; 1:鎷f枡/骞舵澘/鐩樼偣 3001 - 6000 ; 2: 鍑哄簱 6001 -9000 ; 3:鍏朵粬 9001 -9999
      * @return workNo(宸ヤ綔鍙�)
      */
@@ -62,17 +65,17 @@
         int workNo = wrkLastno.getWrkNo();
         int sNo = wrkLastno.getSNo();
         int eNo = wrkLastno.getENo();
-        workNo = workNo>=eNo ? sNo : workNo+1;
+        workNo = workNo >= eNo ? sNo : workNo + 1;
         while (true) {
             WrkMast wrkMast = wrkMastService.selectById(workNo);
             if (null != wrkMast) {
-                workNo = workNo>=eNo ? sNo : workNo+1;
+                workNo = workNo >= eNo ? sNo : workNo + 1;
             } else {
                 break;
             }
         }
         // 淇敼搴忓彿璁板綍
-        if (workNo > 0){
+        if (workNo > 0) {
             wrkLastno.setWrkNo(workNo);
             wrkLastnoService.updateById(wrkLastno);
         }
@@ -80,7 +83,7 @@
         if (workNo == 0) {
             throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
         } else {
-            if (wrkMastService.selectById(workNo)!=null) {
+            if (wrkMastService.selectById(workNo) != null) {
                 throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
             }
         }
@@ -89,32 +92,21 @@
 
     /**
      * 妫�绱㈠簱浣嶅彿
-     * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋�
-     * @param staDescId 璺緞宸ヤ綔绫诲瀷
+     *
+     * @param whsType     绫诲瀷 1:鍙屾繁寮忚揣鏋�
+     * @param staDescId   璺緞宸ヤ綔绫诲瀷
      * @param sourceStaNo 婧愮珯
-     * @param matNos 鍟嗗搧缂栧彿闆嗗悎
+     * @param matNos      鍟嗗搧缂栧彿闆嗗悎
      * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
      */
     @Transactional
-    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
-//        whsType = getWhsType(sourceStaNo, times);
+    public StartupDto getLocNo4(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
         StartupDto startupDto = new StartupDto();
-
-//        if (sourceStaNo < 200){
-//            whsType = 1;
-//        } else if (sourceStaNo > 199 && sourceStaNo < 300){
-//            whsType = 2;
-//        } else if (sourceStaNo > 299 && sourceStaNo < 400){
-//            whsType = 3;
-//        } else if (sourceStaNo > 399){
-//            whsType = 4;
-//        }
-
-        if (sourceStaNo ==101||sourceStaNo==103){
+        if (sourceStaNo == 101 || sourceStaNo == 103) {
             whsType = 1;
-        } else if (sourceStaNo ==105||sourceStaNo==107){
+        } else if (sourceStaNo == 105 || sourceStaNo == 107) {
             whsType = 2;
-        } else{
+        } else {
             throw new CoolException("绔欑偣鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
 
@@ -164,11 +156,11 @@
                     if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
                         continue;
                     }
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo());
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
                     // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
                     LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                     if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
-                        if (shallowLoc.getLocType1()<locTypeDto.getLocType1()){
+                        if (shallowLoc.getLocType1() < locTypeDto.getLocType1()) {
                             continue;
                         }
                         if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
@@ -189,16 +181,16 @@
             if (curRow == 0) {
                 curRow = 4;
             }
-            for (int i = 0; i < shelves.group; i ++) {
+            for (int i = 0; i < shelves.group; i++) {
                 curRow = shelves.start(curRow);
                 if (curRow < 0) {
                     throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
                 }
                 Integer crnNo1 = shelves.get(curRow);
-                crnNo1 = crnNo1 + divides*1;
+                crnNo1 = crnNo1 + divides * 1;
                 if (basCrnpService.checkSiteError(crnNo1, true)) {
                     crnNo = crnNo1;
-                    curRow = curRow + divides*4;
+                    curRow = curRow + divides * 4;
                     break;
                 }
             }
@@ -219,7 +211,213 @@
         }
         BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
         if (!staNo.getAutoing().equals("Y")) {
-            throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+            throw new CoolException("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
+        }
+
+        // 鏇存柊搴撲綅鎺掑彿
+        rowLastno.setCurrentRow(curRow);
+        rowLastnoService.updateById(rowLastno);
+
+        // 寮�濮嬫煡鎵惧簱浣� ==============================>>
+
+        // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
+        if (locMast == null) {
+            if (Utils.isShallowLoc(slaveProperties, curRow)) {
+                Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
+                locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
+                // todo:luxiaotao 濡傛灉鐢ㄦ祬鎺掓壘鍒扮殑娣卞簱浣嶏紝閭d箞鍒欓渶瑕佸垽鏂繖涓繁搴撲綅瀵瑰簲鐨勬祬搴撲綅鏄惁鏈夎揣锛團銆乆銆丏锛�
+                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+                if (!locMastService.checkEmptyCount(locMast)) {
+                    locMast = null;
+                }
+            }
+            if (Cools.isEmpty(locMast)) {
+                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
+                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+                if (!locMastService.checkEmptyCount(locMast)) {
+                    locMast = null;
+                }
+                // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
+                if (null != locMast && Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) {
+                    LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, locMast.getLocNo()));
+                    if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
+                        locMast = null;
+                    }
+                }
+                // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
+                if (null != locMast && Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+                    LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast.getLocNo()));
+                    if (!shallowLoc.getLocSts().equals("O")) {
+                        locMast = null;
+                    }
+                }
+            }
+        }
+
+        // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
+        if (Cools.isEmpty(locMast)) {
+            // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
+            if (times < rowCount) {
+                times = times + 1;
+                return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
+            }
+
+            // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
+            if (locTypeDto.getLocType1() == 1) {
+                locTypeDto.setLocType1((short) 2);
+                return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
+            }
+            log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
+            throw new CoolException("娌℃湁绌哄簱浣�");
+        }
+        String locNo = locMast.getLocNo();
+
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = getWorkNo(0);
+        // 杩斿洖dto
+        startupDto.setWorkNo(workNo);
+        startupDto.setCrnNo(crnNo);
+        startupDto.setSourceStaNo(sourceStaNo);
+        startupDto.setStaNo(staNo.getDevNo());
+        startupDto.setLocNo(locNo);
+        return startupDto;
+    }
+
+
+    /**
+     * 妫�绱㈠簱浣嶅彿
+     *
+     * @param whsType     绫诲瀷 1:鍙屾繁寮忚揣鏋�
+     * @param staDescId   璺緞宸ヤ綔绫诲瀷
+     * @param sourceStaNo 婧愮珯
+     * @param matNos      鍟嗗搧缂栧彿闆嗗悎
+     * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
+     */
+    @Transactional
+    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
+//        whsType = getWhsType(sourceStaNo, times);
+        StartupDto startupDto = new StartupDto();
+
+//        if (sourceStaNo < 200){
+//            whsType = 1;
+//        } else if (sourceStaNo > 199 && sourceStaNo < 300){
+//            whsType = 2;
+//        } else if (sourceStaNo > 299 && sourceStaNo < 400){
+//            whsType = 3;
+//        } else if (sourceStaNo > 399){
+//            whsType = 4;
+//        }
+
+        if (sourceStaNo == 101 || sourceStaNo == 103) {
+            whsType = 1;
+        } else if (sourceStaNo == 105 || sourceStaNo == 107) {
+            whsType = 2;
+        } else {
+            throw new CoolException("绔欑偣鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
+
+        RowLastno rowLastno = rowLastnoService.selectById(whsType);
+        if (Cools.isEmpty(rowLastno)) {
+            throw new CoolException("1鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
+
+        // ===============>>>> 寮�濮嬫墽琛�
+        int curRow = rowLastno.getCurrentRow();
+        int sRow = rowLastno.getsRow();
+        int eRow = rowLastno.geteRow();
+        int crn_qty = rowLastno.getCrnQty();
+        int rowCount = eRow - sRow + 1;
+        // 鐩爣鍫嗗灈鏈哄彿
+        int crnNo = 0;
+        // 鐩爣搴撲綅
+        LocMast locMast = null;
+
+        // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
+        if (!Cools.isEmpty(matNos)) {
+            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
+            for (String locNo : locNos) {
+                if (Utils.isShallowLoc(slaveProperties, locNo)) {
+                    continue;
+                }
+                String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
+                // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
+                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+                if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
+                    if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) {
+                        if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
+                            locMast = shallowLoc;
+                            crnNo = locMast.getCrnNo();
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+        if (staDescId == 10) {
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+            if (locMasts.size() > 0) {
+                for (LocMast loc : locMasts) {
+                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
+                        continue;
+                    }
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+                    // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
+                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+                    if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
+                        if (shallowLoc.getLocType1() < locTypeDto.getLocType1()) {
+                            continue;
+                        }
+                        if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
+                            locMast = shallowLoc;
+                            crnNo = locMast.getCrnNo();
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
+        if (null == locMast) {
+            Shelves shelves = new Shelves(rowCount, crn_qty);
+            int divides = (int) Arith.divides(1, curRow - 1, 4);
+            curRow = (int) Arith.remainder(curRow, 4);
+            if (curRow == 0) {
+                curRow = 4;
+            }
+            for (int i = 0; i < shelves.group; i++) {
+                curRow = shelves.start(curRow);
+                if (curRow < 0) {
+                    throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                }
+                Integer crnNo1 = shelves.get(curRow);
+                crnNo1 = crnNo1 + divides * 1;
+                if (basCrnpService.checkSiteError(crnNo1, true)) {
+                    crnNo = crnNo1;
+                    curRow = curRow + divides * 4;
+                    break;
+                }
+            }
+        }
+
+        if (crnNo == 0) {
+            throw new CoolException("娌℃湁鍙敤鐨勫爢鍨涙満");
+        }
+        // 鑾峰彇鐩爣绔�
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", staDescId)
+                .eq("stn_no", sourceStaNo)
+                .eq("crn_no", crnNo);
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)) {
+            log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
+            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+        }
+        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+        if (!staNo.getAutoing().equals("Y")) {
+            throw new CoolException("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
         }
 
         // 鏇存柊搴撲綅鎺掑彿
@@ -299,7 +497,7 @@
             return msg.substring(0, 16);
         } else {
             StringBuilder msgBuilder = new StringBuilder(msg);
-            for(int i = 0; i < count - msg.length(); ++i) {
+            for (int i = 0; i < count - msg.length(); ++i) {
                 msgBuilder.insert(0, "0");
             }
             return msgBuilder.toString();
@@ -340,4 +538,117 @@
         }
     }
 
+    /**
+     * @param waitPakin 缁勬墭鐨勭墿鏂�
+     * @param arr       淇濆瓨椤哄簭灞�
+     * @param d         涓嬫爣
+     * @param locType   鐗╂枡鏄惁涓虹壒娈婄墿鏂�
+     * @param locType1  1.婊℃墭  2.绌烘墭
+     * @return
+     */
+    public LocMast getLocNo2(WaitPakin waitPakin, Integer[] arr, Integer d, Integer locType, Integer locType1) {
+        LocMast locMast = null;
+        //涓�.鏌ヨ鍏ュ簱璐х墿鏄惁鏄壒娈婃憜鏀捐揣鐗�
+        if (locType == 2) {
+            //鏌ユ壘灞傛爣璁扮殑
+            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                    .eq("lev1", arr[d])
+                    .eq("loc_sts", "O")
+                    .eq("loc_type1", 2)
+                    .eq("loc_attribute", 1));
+            if (!Cools.isEmpty(locMast1)) {
+                locMast = locMast1;
+            }
+        } else {
+            List<LocMast> locMasts = new ArrayList<>();
+            //浜�.绌烘爤鏉挎憜鏀捐鍒�
+            //1.璇ュ眰鐩稿悓绌烘爤鏉�
+            //2.鑾峰緱locAttribute搴撲綅灞炴�т负1鐨勬墍鏈夊簱浣�
+            //3.鏌ョ湅缁勯噷鏄惁杩樻湁绌轰綅
+            if (locType1 == 2) {
+                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("lev1", arr[d])
+                        .eq("loc_sts", "D")
+                        .eq("loc_type1", 1)
+                        .eq("loc_attribute", 1));
+                if (!Cools.isEmpty(locMasts)) {
+                    for (LocMast locMast1 : locMasts) {
+                        //4.鏌ョ湅璇ョ粍鏄惁鏈夐绾﹀叆搴撳拰棰勭害鍑哄簱鐨勫簱浣嶏紝鏈夌殑璇濈洿鎺ヨ烦杩囪缁�
+                        List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>()
+                                .eq("group1", locMast1.getGroup1())
+                                .in("loc_sts", "P", "Q", "R", "S"));
+                        if (!Cools.isEmpty(locMasts2)) {
+                            continue;
+                        }
+                        //5.鎵惧嚭鍚屼竴缁勭殑绌哄簱浣�
+                        //6.瀵规繁娴呭簱浣嶈繘琛屾帓搴�
+                        List<LocMast> locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
+                                .eq("group1", locMast1.getGroup1())
+                                .eq("loc_sts", "O")
+                                .orderBy("locAttribute"));
+                        if (Cools.isEmpty(locMasts1)) {
+                            continue;
+                        }
+                        //7.鏌ョ湅
+                        locMast = locMasts1.get(0);
+                    }
+                }
+            } else {
+                //涓�.姝e父璐х墿鍏ュ簱
+                //1.璇ュ眰鐩稿悓鐗╂枡鎽嗘斁
+                //2.鑾峰緱locAttribute搴撲綅灞炴�т负1鐨勬墍鏈夊簱浣�
+                //3.鏌ョ湅缁勯噷鏄惁杩樻湁绌轰綅
+                locMasts = locMastService.querySame(waitPakin.getMatnr(), arr[d]);
+                if (!Cools.isEmpty(locMasts)) {
+                    for (LocMast locMast1 : locMasts) {
+                        //4.鏌ョ湅璇ョ粍鏄惁鏈夐绾﹀叆搴撳拰棰勭害鍑哄簱鐨勫簱浣嶏紝鏈夌殑璇濈洿鎺ヨ烦杩囪缁�
+                        List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>()
+                                .eq("group1", locMast1.getGroup1())
+                                .in("loc_sts", "P", "Q", "R", "S"));
+                        if (!Cools.isEmpty(locMasts2)) {
+                            continue;
+                        }
+                        //5.鎵惧嚭鍚屼竴缁勭殑绌哄簱浣�
+                        //6.瀵规繁娴呭簱浣嶈繘琛屾帓搴�
+                        List<LocMast> locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
+                                .eq("group1", locMast1.getGroup1())
+                                .eq("loc_sts", "O")
+                                .orderBy("locAttribute"));
+                        if (Cools.isEmpty(locMasts1)) {
+                            continue;
+                        }
+                        //7.鏌ョ湅
+                        locMast = locMasts1.get(0);
+                    }
+                }
+
+            }
+            //鍥�.娌℃湁鐩稿悓鐗╂枡锛岃繘琛屾甯告壘搴�
+            if (Cools.isEmpty(locMast)) {
+                //鏌ユ壘璇ュ眰鎵�鏈夌┖鐨�"loc_attribute",1
+                List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("lev1", arr[d])
+                        .eq("loc_sts", "O")
+                        .eq("loc_type1", 1)
+                        .eq("loc_attribute", 1)
+                        .orderBy("row1", false)
+                        .orderBy("bay1", false));
+                if (!Cools.isEmpty(locMastList)) {
+                    locMast = locMastList.get(0);
+                }
+            }
+            //璇ュ眰娌℃湁鎵惧埌搴撲綅鏃惰繘鍏ラ�掑綊鎹㈠眰鎵惧簱浣�
+            if (Cools.isEmpty(locMast)) {
+                if (d > 6) {
+                    throw new CoolException("娌℃湁绌哄簱浣�");
+                }
+                if (d == 6 && locType == 2) {
+                    return getLocNo2(waitPakin, arr, 0, 1, locType1);
+                }
+                return getLocNo2(waitPakin, arr, d++, locType, locType1);
+            }
+        }
+        return locMast;
+    }
+
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 06099a0..72cd9a1 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -6,6 +6,7 @@
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.result.StorageResult;
 import com.zy.asrs.service.*;
 import com.zy.common.CodeRes;
 import com.zy.common.model.LocTypeDto;
@@ -43,72 +44,67 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private  LocDetlService locDetlService;
+    @Autowired
+    private  BasCrnpService basCrnpService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
-    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
+    public synchronized R getLocNo(@RequestBody(required = false) SearchLocParam param) {
+        StorageResult storageResult=new StorageResult();
         log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
-        if (Cools.isEmpty(param.getIoType())) {
+        if (Cools.isEmpty(param.getWcsIoType())) {
             return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
         }
-        if (Cools.isEmpty(param.getSourceStaNo())) {
+        if (Cools.isEmpty(param.getWcsSourceStaNo())) {
             return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
         }
         List<WaitPakin> waitPakins = null;
-        if (param.getIoType() == 1) {
-            if (Cools.isEmpty(param.getBarcode())) {
+        if (param.getWcsIoType() == 1) {
+            if (Cools.isEmpty(param.getBoxNo())) {
                 return R.error("鏉$爜涓嶈兘涓虹┖");
             }
-            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
+            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
             if (Cools.isEmpty(waitPakins)) {
-                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo());
                 if (wrkMast != null && wrkMast.getIoType() == 103) {
                     return R.parse(CodeRes.PICK_600);
                 }
                 return R.parse(CodeRes.NO_COMB_700);
             }
-            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
-            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBoxNo()));
+            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBoxNo()));
             if (countLoc > 0 || countWrk > 0) {
                 return R.error(CodeRes.EXIST_500);
             }
         }
-        if (Cools.isEmpty(param.getLocType1())){
-            return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
-        }
 
-        // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
-        sourceStaNo.setLocType1(param.getLocType1());
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
 
-        StartupDto dto = null;
-        switch (param.getIoType()) {
+        switch (param.getWcsIoType()) {
             case 1://婊℃墭鐩樺叆搴�
                 assert waitPakins != null;
-                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
+                storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins);
                 break;
-            case 10://绌烘墭鐩樺叆搴�
-                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+            case 2://绌烘墭鐩樺叆搴�
+                storageResult = emptyPlateIn(param.getWcsSourceStaNo(), param.getBoxNo());
                 break;
             default:
                 break;
         }
-        log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
-        return R.ok().add(dto);
+        log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", storageResult, param.getBoxNo());
+        return R.ok().add(storageResult);
     }
 
     /**
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional
-    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
-        // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+    public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins) {
+        StorageResult storageResult=new StorageResult();
+        Integer[] arr=arr();
+        int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
         // 妫�绱㈠簱浣�
-        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matNos, locTypeDto,0);
-        int workNo = dto.getWorkNo();
+        LocMast locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
+        int workNo = commonService.getWorkNo(0);
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -117,17 +113,15 @@
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
         wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         wrkMast.setIoPri(13D); // 浼樺厛绾�
-        wrkMast.setCrnNo(dto.getCrnNo());
-        wrkMast.setSourceStaNo(dto.getSourceStaNo());
-        wrkMast.setStaNo(dto.getStaNo());
-        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setSourceStaNo(devpNo);
+        wrkMast.setLocNo(locMast1.getLocNo());
         wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("Y");
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -151,20 +145,14 @@
         Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                 .eq("zpallet", barcode);
         WaitPakin setParam = new WaitPakin();
-        setParam.setLocNo(dto.getLocNo());
+        setParam.setLocNo(locMast1.getLocNo());
         setParam.setIoStatus("Y");
         setParam.setModiTime(now);
         if (!waitPakinService.update(setParam, wrapper)) {
             throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
         }
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(now);
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        LocMast locMast = locMastService.selectById(locMast1.getLocNo());
         if (locMast.getLocSts().equals("O")){
             locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
             locMast.setModiTime(now);
@@ -172,18 +160,23 @@
                 throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
             }
         } else {
-            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+            throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
-        return dto;
+        StorageResult.Results results=new StorageResult.Results();
+        results.setTaskNo(workNo);
+        results.setShelfUnitId(locMast1.getLocNo());
+        storageResult.setResults(results);
+        return storageResult;
     }
 
     @Transactional
-    public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) {
-        // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+    public StorageResult emptyPlateIn(Integer devpNo, String barcode) {
+        StorageResult storageResult=new StorageResult();
         // 妫�绱㈠簱浣�
-        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto,0);
-        int workNo = dto.getWorkNo();
+        Integer[] arr=arr();
+        // 妫�绱㈠簱浣�
+        LocMast locMast1 =commonService.getLocNo2(null,arr,0,1,2);
+        int workNo = commonService.getWorkNo(0);
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -191,17 +184,15 @@
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
         wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
         wrkMast.setIoPri(13D); // 浼樺厛绾�
-        wrkMast.setCrnNo(dto.getCrnNo());
-        wrkMast.setSourceStaNo(dto.getSourceStaNo());
-        wrkMast.setStaNo(dto.getStaNo());
-        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setSourceStaNo(devpNo);
+        wrkMast.setLocNo(locMast1.getLocNo());
         wrkMast.setFullPlt("N"); // 婊℃澘
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("Y"); // 绌烘澘
         wrkMast.setLinkMis("Y");
         wrkMast.setBarcode(barcode);
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(2); // 瀹瑰櫒绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(new Date());
         wrkMast.setModiTime(new Date());
@@ -209,14 +200,8 @@
         if (!res) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(new Date());
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        LocMast locMast = locMastService.selectById(locMast1.getLocNo());
         if (locMast.getLocSts().equals("O")){
             locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
             locMast.setModiTime(new Date());
@@ -224,9 +209,80 @@
                 throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
             }
         } else {
-            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+            throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
-        return dto;
+        StorageResult.Results results=new StorageResult.Results();
+        results.setTaskNo(workNo);
+        results.setShelfUnitId(locMast1.getLocNo());
+        storageResult.setResults(results);
+        return storageResult;
+    }
+
+    @Transactional
+    public Integer[] arr() {
+        //鑾峰彇鏈夋爣璁扮殑灏忚溅锛屾寜椤哄簭杩涜璁板綍
+        int count =basCrnpService.selectCount(new EntityWrapper<BasCrnp>());
+        //鍒濆鍖栨暟缁�
+        Integer [] arr=new Integer[7];
+        //鏁扮粍鏍囪
+        int i=0;
+        BasCrnp basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("tank_qty",1));
+        //娌℃湁鎵惧埌鏍囪鏃舵寜榛樿涓�鍙峰皬杞︽墍鍦ㄥ眰寮�濮嬫帓
+        if(Cools.isEmpty(basCrnp)){
+            for(int q=1;q<=count;q++){
+                basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no",q));
+                if(Cools.isEmpty(basCrnp)){
+                    log.error(q+"鍙峰皬杞︽病鏈夋壘鍒�");
+                    continue;
+                }
+                if(basCrnp.getCrnErr()>0||basCrnp.getCrnSts()!=1){
+                    log.error(q+"鍙峰皬杞︽姤璀︽垨鑰呭湪鍏呯數璺宠繃姝よ溅");
+                    continue;
+                }
+                arr[i]=basCrnp.getLev1();
+                i++;
+                if(q==1){
+                    basCrnp.setTankQty(0);
+                    basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",1));
+                }else if(q==2){
+                    basCrnp.setTankQty(1);
+                    basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",2));
+                }
+            }
+        }else{
+            basCrnp.setTankQty(0);
+            basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",basCrnp.getCrnNo()));
+            arr[i]=basCrnp.getLev1();
+            i++;
+            int o=basCrnp.getCrnNo();
+            for(int q=1;q<count;q++){
+                if(++o>count){
+                    o=1;
+                }
+                basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no",o));
+                if(q==1){
+                    basCrnp.setTankQty(1);
+                    basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",o));
+                }
+                arr[i]=basCrnp.getLev1();
+                i++;
+            }
+
+        }
+        for (int w=1;w<=7;w++){
+            boolean boo=true;
+            for(int g=0;g<count;g++){
+                if(arr[g]==w){
+                    boo=false;
+                    break;
+                }
+            }
+            if(boo){
+                arr[i]=w;
+                i++;
+            }
+        }
+        return arr;
     }
 
 }
diff --git a/src/main/java/com/zy/common/web/param/SearchLocParam.java b/src/main/java/com/zy/common/web/param/SearchLocParam.java
index 1a170ce..1f058ab 100644
--- a/src/main/java/com/zy/common/web/param/SearchLocParam.java
+++ b/src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -1,5 +1,6 @@
 package com.zy.common.web.param;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 
 /**
@@ -8,13 +9,22 @@
 @Data
 public class SearchLocParam {
 
-    private Integer ioType;
+    //鎵樼洏鐮�
+    @JSONField(name = "BoxNo")
+    private String boxNo;
+    //鎵ц鐘舵��   0锛氭垚鍔� 1锛氬け璐�
+    @JSONField(name = "WCSStatus")
+    private Integer wcsStatus=0;
+    //閿欒淇℃伅   鍏蜂綋鐨勯敊璇俊鎭紙瓒呴珮锛岃秴閲嶇瓑锛�
+    @JSONField(name = "WCSErrorMessage")
+    private String wcsErrorMessage="";
 
-    private Integer sourceStaNo;
+    //婧愮珯鐐�
+    @JSONField(name = "WCSSourceStaNo")
+    private Integer wcsSourceStaNo;
 
-    private String barcode;
-
-    // 搴撲綅瑙勬牸锛� 0:鏈煡, 1:浣庡簱浣�, 2:楂樺簱浣嶏級
-    private Short locType1;
+    //绌烘澘婊℃澘
+    @JSONField(name = "WCSIoType")
+    private Integer wcsIoType;
 
 }
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/BasCrnpMapper.xml
index 50d9755..00b15b5 100644
--- a/src/main/resources/mapper/BasCrnpMapper.xml
+++ b/src/main/resources/mapper/BasCrnpMapper.xml
@@ -26,6 +26,7 @@
         <result column="tank_qty" property="tankQty" />
         <result column="tank_qty1" property="tankQty1" />
         <result column="origin" property="origin" />
+        <result column="lev1" property="lev1" />
     </resultMap>
 
 </mapper>
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 2244412..ba75efb 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -34,6 +34,8 @@
         <result column="mk" property="mk" />
         <result column="barcode" property="barcode" />
         <result column="ctn_no" property="ctnNo" />
+        <result column="group1" property="group1" />
+        <result column="loc_attribute" property="locAttribute" />
 
     </resultMap>
 
@@ -75,4 +77,15 @@
         )
         and (loc_sts = 'F' or loc_sts = 'D') and crn_no = #{crnNo}
     </select>
+
+    <select id="querySame" resultMap="BaseResultMap">
+    select l.* from asr_loc_mast l,asr_loc_detl d where 1=1
+    and l.loc_no = d.loc_no
+    and d.matnr = #{matnr}
+    and l.lev1 = #{lev1}
+    and l.loc_attribute = 1
+    and l.loc_type1 = 1
+    and l.loc_sts = 'F'
+    </select>
+
 </mapper>
diff --git a/src/main/webapp/static/js/locMast/locMast.js b/src/main/webapp/static/js/locMast/locMast.js
index c9bafaf..9197a35 100644
--- a/src/main/webapp/static/js/locMast/locMast.js
+++ b/src/main/webapp/static/js/locMast/locMast.js
@@ -32,6 +32,8 @@
             ,{field: 'row1', align: 'center',title: '鎺�', sort:true}
             ,{field: 'bay1', align: 'center',title: '鍒�', sort:true}
             ,{field: 'lev1', align: 'center',title: '灞�', sort:true}
+            ,{field: 'group1', align: 'center',title: '缁�', sort:true}
+            ,{field: 'locAttribute', align: 'center',title: '娣辨祬搴撲綅鍙�', sort:true}
             ,{field: 'fullPlt', align: 'center',title: '婊℃澘', templet:function(row){
                     var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' disabled table-index='"+row.LAY_TABLE_INDEX+"'";
                     if(row.fullPlt === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/views/locMast/locMast.html b/src/main/webapp/views/locMast/locMast.html
index 6f4b17d..cd4c937 100644
--- a/src/main/webapp/views/locMast/locMast.html
+++ b/src/main/webapp/views/locMast/locMast.html
@@ -60,6 +60,16 @@
             <input class="layui-input" type="text" name="lev1" placeholder="灞�" autocomplete="off">
         </div>
     </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="group1" placeholder="缁�" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="loc_attribute" placeholder="娣辨祬搴撲綅鍙�" autocomplete="off">
+        </div>
+    </div>
     <!-- 寰呮坊鍔� -->
     <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
         <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
diff --git a/src/main/webapp/views/locMast/locMast_detail.html b/src/main/webapp/views/locMast/locMast_detail.html
index 1e12d40..6c7c638 100644
--- a/src/main/webapp/views/locMast/locMast_detail.html
+++ b/src/main/webapp/views/locMast/locMast_detail.html
@@ -101,6 +101,18 @@
                 <input id="lev1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
             </div>
         </div>
+        <div class="layui-inline"  style="width:80%;">
+            <label class="layui-form-label">缁勶細</label>
+            <div class="layui-input-inline">
+                <input id="group1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+            </div>
+        </div>
+        <div class="layui-inline"  style="width:80%;">
+            <label class="layui-form-label">娣辨祬搴撲綅鍙凤細</label>
+            <div class="layui-input-inline">
+                <input id="locAttribute" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+            </div>
+        </div>
         <div class="layui-inline"  style="width:80%;display: none">
             <label class="layui-form-label">婊°��銆�鏉匡細</label>
             <div class="layui-input-inline" style="text-align: left">

--
Gitblit v1.9.1