From e7949c7f0b4f66802003721d2e6c46797973d91b Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期五, 29 三月 2024 09:20:15 +0800 Subject: [PATCH] 初始化库位和站点 --- src/main/java/com/zy/asrs/controller/AgvMobileController.java | 21 ++++- src/main/webapp/static/js/agvBasDevp/basDevp.js | 50 ----------- src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java | 3 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 1 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 9 + src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java | 81 ++++++++++++++----- src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java | 21 +++- src/main/webapp/static/js/agvLocMast/locMast.js | 4 src/main/webapp/static/js/agvWrkMast/wrkMast.js | 3 src/main/java/com/zy/asrs/service/AgvLocMastService.java | 2 src/main/resources/application.yml | 2 src/main/webapp/static/js/agvStoMan/stoQue.js | 4 12 files changed, 115 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index 15ec11f..cc87a8f 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -4,10 +4,7 @@ import com.zy.asrs.entity.AgvBasDevp; import com.zy.asrs.entity.param.AgvMobileStartParam; import com.zy.asrs.entity.param.CombParam; -import com.zy.asrs.service.AgvBasDevpService; -import com.zy.asrs.service.AgvMobileService; -import com.zy.asrs.service.AgvWorkService; -import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.*; import com.zy.common.web.BaseController; import lombok.Synchronized; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -34,6 +32,8 @@ private AgvBasDevpService agvBasDevpService; @Autowired private AgvWorkService workService; + @Autowired + private AgvLocMastService agvLocMastService; @Autowired private OrderDetlService orderDetlService; @@ -104,6 +104,7 @@ public R pakinEmpty(@RequestBody AgvMobileStartParam params){ for (AgvMobileStartParam.Pda pda : params.getPad()) { + pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0,2))); workService.emptyPlateIn(pda.getDevNo(),pda.getContainerCode(),pda.getContainerType(), getUserId()); } @@ -124,4 +125,16 @@ return R.ok(); } + /* + 绌烘澘鍑哄簱瀹瑰櫒鐮侀�夋嫨 + */ + @PostMapping("/pakout/empty/container/selector/auth") + public R containerType(@RequestBody HashMap<String,String> params){ + + Short locType = Short.valueOf(params.get("locType")); + + return R.ok(agvLocMastService.queryContainerTypeByLocType1(locType)); + + } + } diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java index 08be9dc..aadd73d 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java @@ -30,4 +30,7 @@ @Select("SELECT * FROM agv_loc_mast WHERE lev1 = #{lev} And floor = #{floor}") List<AgvLocMast> selectLocByLevAndFloor(@Param("lev")int lev, @Param("floor")int floor); + + @Select("SELECT loc_type2 FROM agv_loc_mast WHERE loc_type1 = #{locType1} AND loc_type2 IS NOT NULL GROUP BY loc_type2") + List<String> queryContainerTypeByLocType1(@Param("locType1")Short locType1); } diff --git a/src/main/java/com/zy/asrs/service/AgvLocMastService.java b/src/main/java/com/zy/asrs/service/AgvLocMastService.java index 30ff0ef..04ce60b 100644 --- a/src/main/java/com/zy/asrs/service/AgvLocMastService.java +++ b/src/main/java/com/zy/asrs/service/AgvLocMastService.java @@ -26,4 +26,6 @@ AgvLocMast selectEmptyZpallet(int type); + public List<String> queryContainerTypeByLocType1(Short locType1); + } diff --git a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java index 0a2aceb..6fa99d4 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java @@ -37,38 +37,58 @@ public void initBasDevp(){ - //鍒濆鍖�1妤肩紦瀛樿揣鏋剁珯鐐� 2鎺�5鍒�3灞� - this.insertBatch(getCacheBasDevpList(1,2,1,5,1,3,1)); - //鍒濆鍖�3妤肩紦瀛樿揣鏋剁珯鐐� 3鎺�5鍒�3灞� - this.insertBatch(getCacheBasDevpList(5,9,1,5,1,3,3)); - //鍒濆鍖�3妤艰緭閫佺嚎宸ヤ綔绔欑偣 4涓珯鐐� - this.insertBatch(getLineBasDevpList()); +// //鍒濆鍖�1妤肩紦瀛樿揣鏋剁珯鐐� 2鎺�5鍒�3灞� +// this.insertBatch(getCacheBasDevpList(1,2,1,5,1,3,1)); +// //鍒濆鍖�3妤肩紦瀛樿揣鏋剁珯鐐� 3鎺�5鍒�3灞� +// this.insertBatch(getCacheBasDevpList(5,9,1,5,1,3,3)); +// //鍒濆鍖�3妤艰緭閫佺嚎宸ヤ綔绔欑偣 4涓珯鐐� +// this.insertBatch(getLineBasDevpList()); + //寰呭寘瑁呮垚鍝佸瓨鍌ㄥ尯鍏ュ簱鎺ラ┏浣� + this.insertBatch(getConnectionBasDevpList("DI",12,2,true,(short)1)); + //寰呭寘瑁呮垚鍝佸瓨鍌ㄥ尯鍑哄簱鎺ラ┏浣� + this.insertBatch(getConnectionBasDevpList("DO",8,2,false,(short)1)); + //鍘熸潗鏂欏叆搴撴帴椹充綅 + this.insertBatch(getConnectionBasDevpList("YI",15,2,true,(short)2)); + //鍘熸潗鏂欏嚭搴撴帴椹充綅 + this.insertBatch(getConnectionBasDevpList("YO",18,2,false,(short)2)); + //绠卞3鍏ュ簱鎺ラ┏浣� + this.insertBatch(getConnectionBasDevpList("XI",5,2,true,(short)3)); + //绠卞3鍑哄簱鎺ラ┏浣� + this.insertBatch(getConnectionBasDevpList("XO",12,2,false,(short)3)); } - private List<AgvBasDevp> getLineBasDevpList(){ +// private List<AgvBasDevp> getLineBasDevpList(){ +// List<AgvBasDevp> agvBasDevpList = new ArrayList<>(); +// Date now = new Date(); +// for(int row=1; row<=4; row++){ +// agvBasDevpList.add(getAgvBasDevp(row,1,1,3,"N",now)); +// } +// return agvBasDevpList; +// } + + private List<AgvBasDevp> getConnectionBasDevpList(String type, int num, int floor, boolean inEnable, Short locType){ List<AgvBasDevp> agvBasDevpList = new ArrayList<>(); Date now = new Date(); - for(int row=1; row<=4; row++){ - agvBasDevpList.add(getAgvBasDevp(row,1,1,3,"N",now)); + for(int index=1; index<=num; index++){ + agvBasDevpList.add(getAgvBasDevp(type,index,floor,inEnable,locType,now)); } return agvBasDevpList; } - //鏍规嵁鎺掑垪灞傝幏鍙朅GV缂撳瓨璐ф灦绔欑偣鍒楄〃 - private List<AgvBasDevp> getCacheBasDevpList(int rowIndex, int rowMax, int bayIndex, int bayMax, int levIndex, int levMax, int floor){ - List<AgvBasDevp> agvBasDevpList = new ArrayList<>(); - Date now = new Date(); - for(int row=rowIndex; row<=rowMax; row++){ - for(int bay=bayIndex; bay<=bayMax; bay++){ - for(int lev=levIndex; lev<=levMax; lev++){ - agvBasDevpList.add(getAgvBasDevp(row,bay,lev,floor,"Y",now)); - } - } - } - - return agvBasDevpList; - } +// //鏍规嵁鎺掑垪灞傝幏鍙朅GV缂撳瓨璐ф灦绔欑偣鍒楄〃 +// private List<AgvBasDevp> getCacheBasDevpList(int rowIndex, int rowMax, int bayIndex, int bayMax, int levIndex, int levMax, int floor){ +// List<AgvBasDevp> agvBasDevpList = new ArrayList<>(); +// Date now = new Date(); +// for(int row=rowIndex; row<=rowMax; row++){ +// for(int bay=bayIndex; bay<=bayMax; bay++){ +// for(int lev=levIndex; lev<=levMax; lev++){ +// agvBasDevpList.add(getAgvBasDevp(row,bay,lev,floor,"Y",now)); +// } +// } +// } +// return agvBasDevpList; +// } private AgvBasDevp getAgvBasDevp(int row, int bay, int lev, int floor, String cacheShelves, Date now){ AgvBasDevp agvBasDevp = new AgvBasDevp(); @@ -84,6 +104,21 @@ return agvBasDevp; } + private AgvBasDevp getAgvBasDevp(String type, int index, int floor, boolean inEnable, Short locType, Date now){ + AgvBasDevp agvBasDevp = new AgvBasDevp(); + String no = index >= 10 ? index + "" : "0" + index; + String devNo = type + "_" + no + "F" + floor; + agvBasDevp.setDevNo(devNo); + agvBasDevp.setLocSts("O"); + agvBasDevp.setInEnable(inEnable ? "Y" : "N"); + agvBasDevp.setOutEnable(inEnable ? "N" : "Y"); + agvBasDevp.setFloor(floor); + agvBasDevp.setLocType1(locType); + agvBasDevp.setModiTime(now); + agvBasDevp.setAppeTime(now); + return agvBasDevp; + } + public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode, Short containerType){ AgvBasDevp agvBasDevp = this.selectById(devNo); 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 43c140a..a0485fc 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java @@ -50,10 +50,10 @@ } AgvLocMast loc = new AgvLocMast(); - String locRow = row < 10 ? "-00" + row : "-0" + row; - String locBay = bay < 10 ? "-00" + bay : "-0" + bay; - String locLev = lev < 10 ? "-0" + lev : "-" + lev; - String locNo = "YZ" + locRow + locBay + locLev + "@" + floor; + String locRow = row < 10 ? "_00" + row : "_0" + row; + String locBay = bay < 10 ? "_00" + bay : "_0" + bay; + String locLev = lev < 10 ? "_0" + lev : "_" + lev; + String locNo = "YZ" + locRow + locBay + locLev + "F" + floor; loc.setLocNo(locNo); loc.setLocSts("O"); loc.setRow1(row); @@ -73,11 +73,11 @@ } private boolean checkLocExistFloor2(int row, int bay){ - if(row <= 4 && bay >= 17){ + if(row <= 4 && bay >= 13){ return false; } - if(row <= 7 && bay >= 26){ + if(row <= 7 && bay >= 25){ return false; } @@ -94,6 +94,10 @@ } if(row == 21 && bay == 15){ + return false; + } + + if(row == 23 && bay == 29){ return false; } @@ -238,4 +242,9 @@ } + @Override + public List<String> queryContainerTypeByLocType1(Short locType1) { + return this.baseMapper.queryContainerTypeByLocType1(locType1); + } + } 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 d048f5d..b1b53d9 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -55,6 +55,7 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } + param.setContainerType(Short.valueOf(param.getBarcode().substring(0,2))); //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯� if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().eq("supp_code", param.getBarcode())) > 0) { diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index 97265c2..490ab06 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -341,13 +341,18 @@ } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast agvLocMast = agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1()); + AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1()); //鏌ヨ鍏ュ簱閫氱煡妗� List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode); if(!Cools.isEmpty(agvWaitPakinList)){ + + + String devNo = agvBasDevp.getDevNo(); + String locNo = agvLocMast.getLocNo(); + //鐢熸垚宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId, agvBasDevp.getLocType2()); + AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType); //鐢熸垚宸ヤ綔妗f槑缁� agvWaitPakinList.forEach(wp -> { createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0e478a1..fda05c3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://192.168.4.188:1433;databasename=phyzasrs + url: jdbc:sqlserver://192.168.43.49:1433;databasename=phyzasrs # url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs username: sa diff --git a/src/main/webapp/static/js/agvBasDevp/basDevp.js b/src/main/webapp/static/js/agvBasDevp/basDevp.js index c17a0b3..cbe7787 100644 --- a/src/main/webapp/static/js/agvBasDevp/basDevp.js +++ b/src/main/webapp/static/js/agvBasDevp/basDevp.js @@ -20,7 +20,6 @@ cols: [[ {type: 'checkbox', fixed: 'left'} // ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} - ,{field: 'stationCode', align: 'center',sort:true,title: '宸ヤ綔绔欑紪鍙�'} ,{field: 'devNo', align: 'center',sort:true,title: '宸ヤ綔浣嶇紪鍙�',width:150} // ,{field: 'decDesc', align: 'center',title: '璁惧鎻忚堪'} // ,{field: 'devMk', align: 'center',title: '澶囨敞'} @@ -36,57 +35,14 @@ html += ">"; return html; }} - ,{field: 'autoing', align: 'center',title: '鑷姩', templet:function(row){ - var html = "<input value='autoing' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - if(row.autoing === 'Y'){html += " checked ";} - html += ">"; - return html; - }} - // ,{field: 'loading', align: 'center',title: '鏈夌墿', templet:function(row){ - // var html = "<input value='loading' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - // if(row.loading === 'Y'){html += " checked ";} - // html += ">"; - // return html; - // }} - // ,{field: 'canining', align: 'center',title: '鑳藉叆', templet:function(row){ - // var html = "<input value='canining' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - // if(row.canining === 'Y'){html += " checked ";} - // html += ">"; - // return html; - // }} - // ,{field: 'canouting', align: 'center',title: '鑳藉嚭', templet:function(row){ - // var html = "<input value='canouting' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - // if(row.canouting === 'Y'){html += " checked ";} - // html += ">"; - // return html; - // }} - // ,{field: 'fronting', align: 'center',title: ''} - // ,{field: 'rearing', align: 'center',title: ''} - // ,{field: 'uping', align: 'center',title: ''} - // ,{field: 'downing', align: 'center',title: ''} - // ,{field: 'inreq1', align: 'center',title: '闇�姹�1', templet:function(row){ - // var html = "<input value='inreq1' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - // if(row.inreq1 === 'Y'){html += " checked ";} - // html += ">"; - // return html; - // }} - ,{field: 'cacheShelves', align: 'center',title: '鏄惁缂撳瓨璐ф灦', templet:function(row){ - var html = "<input value='cacheShelves' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; - if(row.cacheShelves === 'Y'){html += " checked ";} - html += ">"; - return html; - }} ,{field: 'locSts$', align: 'center',title: '璐т綅鐘舵��'} //,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�', edit:true, style:'color: blue;font-weight: bold'} ,{field: 'floor', align: 'center',title: '妤�'} //,{field: 'locType1$', align: 'center',title: '楂樹綆'} ,{field: 'barcode', align: 'center',title: '鏉″舰鐮�'} - // ,{field: 'inQty', align: 'center',title: '鍏ュ簱鏆傚瓨'} - // ,{field: 'row1', align: 'center',title: ''} - // ,{field: 'ioTime$', align: 'center',title: ''} - // ,{field: 'area', align: 'center',title: ''} - // ,{field: 'inOk', align: 'center',title: ''} - // ,{field: 'outOk', align: 'center',title: ''} + ,{field: 'locType1', align: 'center',title: '搴撲綅绫诲瀷'} + ,{field: 'locType2', align: 'center',title: "瀹瑰櫒绫诲瀷"} + ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',event: 'modiUser', hide:true} ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true} // ,{field: 'appeUser$', align: 'center',title: '鍒涘缓鑰�',event: 'appeUser', style: 'text-decoration: underline;cursor:pointer'} diff --git a/src/main/webapp/static/js/agvLocMast/locMast.js b/src/main/webapp/static/js/agvLocMast/locMast.js index f6721a5..bd50d63 100644 --- a/src/main/webapp/static/js/agvLocMast/locMast.js +++ b/src/main/webapp/static/js/agvLocMast/locMast.js @@ -28,11 +28,13 @@ // ,{field: 'locSts', align: 'center',title: ''} // ,{field: 'sheetNo', align: 'center',title: ''} //,{field: 'crnNo', align: 'center',title: '鍫嗗灈鏈哄彿'} - ,{field: 'qrCodeValue', align: 'center',title: '浜岀淮鐮佸��', sort:true} + //,{field: 'qrCodeValue', align: 'center',title: '浜岀淮鐮佸��', sort:true} ,{field: 'row1', align: 'center',title: '鎺�', sort:true} ,{field: 'bay1', align: 'center',title: '鍒�', sort:true} ,{field: 'lev1', align: 'center',title: '灞�', sort:true} ,{field: 'floor', align: 'center',title: '妤�', sort:true} + ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�', sort:true} + ,{field: 'barcode', 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/static/js/agvStoMan/stoQue.js b/src/main/webapp/static/js/agvStoMan/stoQue.js index 4b0d3c1..0466e10 100644 --- a/src/main/webapp/static/js/agvStoMan/stoQue.js +++ b/src/main/webapp/static/js/agvStoMan/stoQue.js @@ -30,11 +30,13 @@ ,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��', width: 180, style: 'color: #8E2323'} // ,{field: 'whsType$', align: 'center',title: '搴撲綅绫诲瀷'} //,{field: 'crnNo', align: 'center',title: '鍫嗗灈鏈哄彿'} - ,{field: 'qrCodeValue', align: 'center',title: '浜岀淮鐮佸��', sort:true} + //,{field: 'qrCodeValue', align: 'center',title: '浜岀淮鐮佸��', sort:true} ,{field: 'row1', align: 'center',title: '鎺�'} ,{field: 'bay1', align: 'center',title: '鍒�'} ,{field: 'lev1', align: 'center',title: '灞�'} ,{field: 'floor', align: 'center',title: '妤�', sort:true} + ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�', sort:true} + ,{field: 'barcode', 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' table-index='"+row.LAY_TABLE_INDEX+"'"; if(row.fullPlt === 'Y'){html += " checked ";} diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js index 63ae9f5..e0e4a42 100644 --- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js +++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js @@ -30,7 +30,8 @@ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'} ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'} //,{field: 'steNo', align: 'center',title: '灏忚溅', width: 70} - ,{field: 'barcode', align: 'center',title: '鏂欑鐮�', hide: false} + ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�'} + ,{field: 'barcode', align: 'center',title: '瀹瑰櫒绫诲瀷'} ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true} ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true} // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){ -- Gitblit v1.9.1