From 0b5b7e4fe9860779dba6ce0a6cc10435ac13c87d Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期四, 07 十一月 2024 08:41:18 +0800 Subject: [PATCH] #优化 --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 288 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 228 insertions(+), 60 deletions(-) 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 855a1f2..9364b19 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; @@ -51,9 +52,17 @@ private AgvBasDevpService agvBasDevpService; @Autowired private AgvWorkService agvWorkService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; @Transactional public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { + long flowId = snowflakeIdWorker.nextId(); + Date now = new Date(); try{ int wrkNo = agvWrkMast.getWrkNo(); String barcode = agvWrkMast.getBarcode(); @@ -66,22 +75,12 @@ } + agvWrkMast.setModiTime(new Date()); //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); agvWrkMastService.updateById(agvWrkMast); // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉� String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F"; - if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109 || agvWrkMast.getIoType() == 111 ) { - // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - if ((agvWrkMast.getIoType() == 109 || agvWrkMast.getIoType() == 111) && agvWrkMast.getLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); - // 鎺ラ┏浣� -- 搴撲綅 - } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); - } - } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); - } if (agvWrkMast.getIoType() != 111) { //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� @@ -90,63 +89,190 @@ agvWrkDetlLogService.save(wrkNo); } - //绫诲瀷涓哄叆搴撴椂 - if(agvWrkMast.getIoType() == 1){ - //鏇存柊鐩爣搴撲綅鏄庣粏 - log.info("鏇存柊鐩爣搴撲綅鏄庣粏 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo); - agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo); - //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗� - boolean save = agvWaitPakinLogService.save(barcode); - //鍒犻櫎鍏ュ簱閫氱煡妗� - log.info("鍒犻櫎鍏ュ簱閫氱煡妗� supp_code: " + barcode); - agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode)); - } - //绫诲瀷涓哄簱浣嶇Щ杞椂 - if(agvWrkMast.getIoType() == 11 || agvWrkMast.getIoType() == 12){ - //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); - //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); - } - - //绫诲瀷涓哄簱浣嶇Щ杞椂 - if(agvWrkMast.getIoType() == 108){ - //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); - //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); - } - - if(agvWrkMast.getIoType() == 109 || agvWrkMast.getIoType() == 111 || agvWrkMast.getIoType() == 112){ - // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + switch (agvWrkMast.getIoType()){ + case 1: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + //鏇存柊鐩爣搴撲綅鏄庣粏 + log.info("鏇存柊鐩爣搴撲綅鏄庣粏 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo); + agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo); + //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗� + boolean save = agvWaitPakinLogService.save(barcode); + //鍒犻櫎鍏ュ簱閫氱煡妗� + log.info("鍒犻櫎鍏ュ簱閫氱煡妗� supp_code: " + barcode); + agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode)); + break; + case 10: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); - // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - } else { + break; + case 11: + case 12: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + //鏇存柊搴撳瓨鏄庣粏 + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + break; + case 53: + //淇敼宸ヤ綔鍏氭槑缁� + //淇敼搴撳瓨淇℃伅 + List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + agvWrkDetlList.forEach(agvWrkDetl -> { + AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); + if (!Cools.isEmpty(agvLocDetl)) { + double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme(); +// OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode()); +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(String.valueOf(agvWrkMast.getWrkNo())); +// flowLog.setLocNo(agvWrkMast.getLocNo()); +// flowLog.setSpare1(agvWrkDetl.getSuppCode()); +// flowLog.setOpType(53L); +// flowLog.setOrderNo(agvWrkDetl.getOrderNo()); +// flowLog.setThreeCode(agvWrkDetl.getThreeCode()); +// flowLog.setMatnr(agvWrkDetl.getMatnr()); +// flowLog.setMaktx(agvWrkDetl.getMaktx()); +// +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(updateAnfme); +// flowLog.setQtyChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setLocPrevious(agvLocDetl.getAnfme()); +// flowLog.setLocCurrent(updateAnfme); +// flowLog.setLocChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setAppeTime(now); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } + agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); + } + //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + + }); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); + break; + case 57: + // 鏇存柊搴撳瓨鏄庣粏 + List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + wrkDetlList.forEach(agvWrkDetl -> { + AgvLocDetl agvLocDetl = new AgvLocDetl(); + agvLocDetl.setLocNo(agvWrkMast.getLocNo()); + agvLocDetl.sync(agvWrkDetl); + agvLocDetl.setModiTime(now); + agvLocDetl.setAppeTime(now); + if (!agvLocDetlService.insert(agvLocDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + // 鏇存柊绔欑偣 + 搴撲綅鐘舵�� 婧愬簱浣嶆槸绔欑偣 + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + break; + case 58: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); + break; + case 108: + case 114: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + //鏇存柊搴撳瓨鏄庣粏 + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); - } + break; + case 109: + // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 + if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + // 鎺ラ┏浣� -- 搴撲綅 + } else { + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + } + // 鎺ラ┏浣� -- 搴撲綅 + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 + } else { + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + } + break; + case 111: + // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 + if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + // 鎺ラ┏浣� -- 搴撲綅 + } else { + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + } + + // 鎺ラ┏浣� -- 搴撲綅 + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 + } else { + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); + } + break; + case 112: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { + AgvLocDetl locDetl = new AgvLocDetl(); + locDetl.setLocNo(agvWrkMast.getLocNo()); + locDetl.sync(agvWrkDetl); + locDetl.setModiTime(new Date()); + agvLocDetlService.insert(locDetl); + } + // 鎺ラ┏浣� -- 搴撲綅 + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 + } else { + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + } + break; + case 113: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + // 鎺ラ┏浣� -- 搴撲綅 + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + } + break; + case 121: + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + //鏇存柊搴撳瓨鏄庣粏 + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + break; + + default: + return null; } - - if(agvWrkMast.getIoType() == 113){ - // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); - } - } - - if (agvWrkMast.getIoType() == 58) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); - } - - - if (agvWrkMast.getIoType() != 111) { //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); } +// else { +// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); +// if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { +// agvWrkMast.setSourceLocNo(""); +// } +// agvWrkMastService.updateById(agvWrkMast); +// } if(!isJSON(orderNo)){ //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 @@ -170,20 +296,59 @@ @Transactional public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) { try{ + Date now = new Date(); int wrkNo = agvWrkMast.getWrkNo(); String orderNo = getOrderNoByWrkNo(wrkNo); //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + if (agvWrkMast.getIoType() == 110) { + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + } if(agvWrkMast.getIoType() == 101){ //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); //鐢熸垚绌烘澘鍏ュ簱浠诲姟 Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)); try { - agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true); +// agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true); + AgvWrkMast wrkMast = new AgvWrkMast(); + //宸ヤ綔鐘舵�� + wrkMast.setWrkSts(201L); + //鍏ュ嚭搴撶被鍨� + wrkMast.setIoType(10); + wrkMast.setIoTime(now); + //浼樺厛绾� + wrkMast.setIoPri(300.0); + //婧愮珯鐐� + wrkMast.setSourceLocNo(agvWrkMast.getLocNo()); + //鐩爣绔欑偣 + wrkMast.setLocNo(agvWrkMast.getSourceLocNo()); + //璐ф灦缂栫爜 + wrkMast.setBarcode(agvWrkMast.getBarcode()); + //璐ф灦绫诲瀷 + wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2))); + + wrkMast.setAppeUser(9527L); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(9527L); + wrkMast.setModiTime(now); + wrkMast.setLogErrMemo("completedCarryWrk"); + + if (!agvWrkMastService.insertByIncrease(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo()); + agvLocMast.setLocSts("S"); + agvLocMast.setModiTime(now); + agvLocMastService.updateById(agvLocMast); + + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getLocNo()); + agvBasDevp.setLocSts("R"); + agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2))); + agvBasDevpService.updateById(agvBasDevp); }catch (Exception e){ e.printStackTrace(); log.error(e.getMessage()); @@ -228,6 +393,7 @@ } //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); @@ -273,6 +439,7 @@ } agvWrkMast.setWrkSts(202L); + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); if(agvWrkMast.getIoType() == 1){ //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y @@ -338,6 +505,7 @@ Map<String, Object> devNoMap = devNoMaps.get(0); if((int)devNoMap.get("num") < maxWrokNum){ agvWrkMast.setLocNo(devNoMap.get("dev_no").toString()); + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); } -- Gitblit v1.9.1