From fce34ab8e1453d7376de56eca7eff01576e62745 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期六, 18 五月 2024 16:52:23 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | 1 src/main/java/com/zy/common/service/AgvCommonService.java | 2 src/main/java/com/zy/asrs/controller/AgvMobileController.java | 83 ++++++++++++++++++--------- src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java | 3 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 10 ++- src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 36 ++++++++++++ src/main/webapp/static/js/agvWrkMast/wrkMast.js | 7 +- src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 38 ++++++++++++ 8 files changed, 144 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index 6dd8c54..c8e678a 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -41,6 +41,8 @@ private AgvLocDetlService agvLocDetlService; @Autowired private AgvWrkMastService agvWrkMastService; + @Autowired + private AgvWrkDetlService agvWrkDetlService; /* @@ -416,36 +418,23 @@ } for (HashMap<String, String> map : dbList) { String locNo = map.get("locNo"); - String barcode = map.get("barcode"); - //鐢熸垚宸ヤ綔妗� - AgvWrkMast mast = new AgvWrkMast(); - //宸ヤ綔鐘舵�� - mast.setWrkSts(22L); - //鍏ュ嚭搴撶被鍨� - mast.setIoType(ioType); - mast.setIoTime(now); - //浼樺厛绾� - mast.setIoPri(300.0); - //婧愮珯鐐� - mast.setSourceLocNo(locNo); - //鐩爣绔欑偣 - mast.setLocNo(""); - //瀹瑰櫒缂栫爜 - mast.setBarcode(barcode); - //瀹瑰櫒绫诲瀷 - mast.setWhsType(30); - // 鐩爣妤煎眰 - mast.setCrnNo(floor); - mast.setAppeUser(getUserId()); - mast.setAppeTime(now); - mast.setModiUser(getUserId()); - mast.setModiTime(now); - if (!agvWrkMastService.insertByIncrease(mast)) { - throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); - } + String barcode = map.get("suppCode"); + AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor); // 鍚屾璋冩嫧鍗� List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); for (AgvLocDetl agvLocDetl : agvLocDetls) { + AgvWrkDetl wrkDetl = new AgvWrkDetl(); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.sync(agvLocDetl); + wrkDetl.setSuppCode(agvLocDetl.getSuppCode()); + wrkDetl.setIoTime(now); + wrkDetl.setAppeUser(getUserId()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiUser(getUserId()); + wrkDetl.setModiTime(now); + if (!agvWrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } // 鏇存柊璁㈠崟 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); @@ -454,7 +443,9 @@ } } // 鏇存柊婧愬簱浣� - + AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); + locMast.setLocSts("R"); + agvLocMastService.updateById(locMast); } return R.ok(); } @@ -501,5 +492,41 @@ System.out.println(agvLocDetls22.equals(agvLocDetls2)); } + /* + 鐢熸垚宸ヤ綔妗� + */ + private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType,int floor){ + AgvWrkMast wrkMast = new AgvWrkMast(); + //宸ヤ綔鐘舵�� + wrkMast.setWrkSts(wrkSts); + //鍏ュ嚭搴撶被鍨� + wrkMast.setIoType(ioType); + wrkMast.setIoTime(now); + //浼樺厛绾� + wrkMast.setIoPri(300.0); + //婧愮珯鐐� + wrkMast.setSourceLocNo(sourceLocNo); + //鐩爣绔欑偣 + wrkMast.setLocNo(locNo); + //瀹瑰櫒缂栫爜 + wrkMast.setBarcode(barcode); + //瀹瑰櫒绫诲瀷 + wrkMast.setWhsType(containerType); + // 鐩爣妤煎眰 + wrkMast.setCrnNo(floor); + + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + + if (!agvWrkMastService.insertByIncrease(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo)); + + return wrkMast; + } } diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java index edb28d1..c0fd131 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java @@ -14,13 +14,14 @@ "io_pri," + "source_loc_no," + "loc_no," + + "crn_no," + "barcode," + "whs_type," + "appe_user," + "appe_time," + "modi_user," + "modi_time) " + - "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{whsType},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") + "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{crnNo},#{barcode},#{whsType},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") public int insertByIncrease(AgvWrkMast agvWrkMast); } 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 a5cd6e2..bbc5f3e 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -564,7 +564,7 @@ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 - if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ + if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){ //淇敼鍑哄簱绔欑偣鐘舵�� agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); } @@ -616,9 +616,13 @@ String targetLocNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0); if (wrkMast.getIoType() == 108) { - agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); + if (wrkMast.getWrkSts() != 22) { + agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); + } } else { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); + if (wrkMast.getWrkSts() != 22) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); + } } List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java index 38491e9..df8b0c4 100644 --- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java @@ -79,6 +79,7 @@ } } + /* 瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱) */ diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index c1d9027..a5825d4 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.AgvLocMast; +import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.service.AgvLocMastService; +import com.zy.asrs.service.AgvWrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.AutoMoveHandler; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +23,8 @@ private AgvLocMastService agvLocMastService; @Autowired private AutoMoveHandler autoMoveHandler; + @Autowired + private AgvWrkMastService agvWrkMastService; // 璋冩嫧鍑哄簱 @Scheduled(cron = "0/2 * * * * ? ") @@ -40,6 +44,38 @@ } + // 璋冩嫧鍑哄簱 + @Scheduled(cron = "0/2 * * * * ? ") + private void execute2(){ + List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() + .eq("wrk_sts", 22) + .andNew().eq("io_type",108) + ); + if (agvWrkMastList.isEmpty()) { + return; + } + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + ReturnT<String> returnT = autoMoveHandler.start2(agvWrkMast); + } + + } + + // 璋冩嫧鍑哄簱 + @Scheduled(cron = "0/2 * * * * ? ") + private void execute3(){ + List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() + .eq("wrk_sts", 22) + .andNew().eq("io_type",111) + ); + if (agvWrkMastList.isEmpty()) { + return; + } + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + ReturnT<String> returnT = autoMoveHandler.start3(agvWrkMast); + } + + } + // 绌烘澘鑷姩鍥炲簱 @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack(){ diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java index 1aca5fd..73a5e0a 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java @@ -45,6 +45,17 @@ return SUCCESS; } + public ReturnT<String> start2(AgvWrkMast agvWrkMast) { + // locType 1. 鑷姩锛� 2. 鎵嬪姩 + doAutoMove2(agvWrkMast); + return SUCCESS; + } + public ReturnT<String> start3(AgvWrkMast agvWrkMast) { + // locType 1. 鑷姩锛� 2. 鎵嬪姩 + doHandMove2(agvWrkMast); + return SUCCESS; + } + private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) { Date now = new Date(); //鏌ヨ宸ヤ綔妗� @@ -168,6 +179,33 @@ return SUCCESS; } + private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) { + Date now = new Date(); + //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 + AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo()); + if (Cools.isEmpty(locMast)) { + throw new CoolException("鏆傛棤搴撲綅"); + } + agvWrkMast.setWrkSts(201L); + agvWrkMast.setLocNo(locMast.getLocNo()); + agvWrkMastService.updateById(agvWrkMast); + //鏇存柊鐩爣搴撲綅鐘舵�� + updateAgvLocMast(locMast,"S"); + + return SUCCESS; + } + private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) { + Date now = new Date(); + AgvBasDevp devpNo = agvCommonService.getDevpNo(3, 1); + if (Cools.isEmpty(devpNo)) { + throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�"); + } + agvWrkMast.setWrkSts(201L); + agvWrkMast.setLocNo(devpNo.getDevNo()); + agvWrkMastService.updateById(agvWrkMast); + updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode()); + return SUCCESS; + } /* 鏇存柊鐩爣搴撲綅淇℃伅 */ diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java index d8e1dff..f8c55c2 100644 --- a/src/main/java/com/zy/common/service/AgvCommonService.java +++ b/src/main/java/com/zy/common/service/AgvCommonService.java @@ -250,7 +250,7 @@ } //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 - throw new CoolException("璇ユゼ灞傛病鏈夌┖搴撲綅"); + throw new CoolException("璇ユゼ灞傛病鏈夌┖鎺ラ┏浣�"); } //闅忔満鍙栦竴涓揣浣� diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js index b5724c2..c7cf16b 100644 --- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js +++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js @@ -24,16 +24,17 @@ ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160} ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'} ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'} - ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'} + ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�',width: 80} //,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'} //,{field: 'staNo$', align: 'center',title: '鐩爣绔�'} ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'} ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'} //,{field: 'steNo', align: 'center',title: '灏忚溅', width: 70} - ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�'} - ,{field: 'whsType', align: 'center',title: '瀹瑰櫒绫诲瀷'} + ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�',width: 80} + ,{field: 'whsType', align: 'center',title: '瀹瑰櫒绫诲瀷',width: 90} ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true} ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true} + ,{field: 'crnNo', align: 'center',title: '鐩爣妤煎眰', hide: false} // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){ // var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; // if(row.picking === 'Y'){html += " checked ";} -- Gitblit v1.9.1