From b1fe5e3f3eed2e4cf20a1ca2871db3f3f6576f2d Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期五, 09 五月 2025 15:47:05 +0800 Subject: [PATCH] 初始化 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 156 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 103 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index c270c19..43b8aaa 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -113,6 +113,70 @@ private CrnController crnController; @Autowired private SiteController siteController; + + /** + * 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆 + */ + public synchronized void crnDemoOfLocMove1() { + try { + List <BasCrnp> basCrnps =basCrnpService.selectList(new EntityWrapper<BasCrnp>()); + for (BasCrnp crn : basCrnps) { + if (!crn.getEmpIn().equals("1")) { + continue; + } // 蹇呴』涓烘紨绀虹姸鎬� + + + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getCrnNo()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + + // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� + if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { + // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭� + WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getCrnNo()); + if (null != wrkMast) { + continue; + } + LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getCrnNo()); + + LocMast loc = locMastService.queryDemoLoc(crn.getCrnNo(),sourceLoc.getLocType1()); + if (null == sourceLoc || null == loc) { + continue; + } + String sourceLocNo = sourceLoc.getLocNo(); + String locNo = loc.getLocNo(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + // 淇濆瓨宸ヤ綔妗� + TaskWrk taskWrk = new TaskWrk(); + taskWrk.setWrkNo(workNo); + taskWrk.setTaskNo(workNo+"");//浠诲姟鍙� + taskWrk.setWrkSts(11); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + taskWrk.setIoType(3); // 鍏ュ嚭搴撶姸鎬侊細 3.搴撴牸绉昏浇 + taskWrk.setIoPri(13); + taskWrk.setCrnNo(crn.getCrnNo()); + taskWrk.setStartPoint(sourceLocNo);//璧风偣 + taskWrk.setTargetPoint(locNo); + taskWrk.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� + taskWrk.setModiTime(new Date()); + int res = taskWrkMapper.insert(taskWrk); + if (res == 0) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + }else { + loc.setCtnKind(1); + locMastService.updateById(loc); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + @Synchronized public void shiftTargetToCyclePoint() throws IOException, InterruptedException { try { @@ -164,7 +228,7 @@ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol5)); } } else { - if(staProtocol.isLoading() && (staProtocol.getStaNo() == 105 || staProtocol.getStaNo() == 110 || staProtocol.getStaNo() == 111)){ + if (staProtocol.isLoading() && (staProtocol.getStaNo() == 105 || staProtocol.getStaNo() == 110 || staProtocol.getStaNo() == 111)) { short workNo = staProtocol.getWorkNo(); staProtocol.setWorkNo(workNo); staProtocol.setStaNo((short) 112); @@ -221,9 +285,6 @@ } - - - public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 @@ -276,7 +337,7 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && workNo >= 9790 + && workNo >= 9990 && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); @@ -303,6 +364,10 @@ } log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); storageEscalationParam.setBoxNo(BoxNo); + //鏄惁婊℃澘 1婊℃澘 0绌烘澘 + storageEscalationParam.setStaType(staProtocol.isEmptyMk()? 0:1); + //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣� + storageEscalationParam.setLocType(staProtocol.isHigh()? 1:0); String response = ""; Boolean success = false; try { @@ -313,20 +378,13 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if(back){ - if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){ - staProtocol.setStaNo((short)105); - } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) { - staProtocol.setStaNo((short)107); - }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) { - staProtocol.setStaNo((short)109); - }else if (staProtocol.getWorkNo()>=9876 && staProtocol.getWorkNo() <= 9900){ - staProtocol.setStaNo((short)110); - } + if (back) { + staProtocol.setWorkNo((short) 9991); + staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - }else{ - if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) { + } else { + if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) { Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); // 鍒涙柊涓�涓叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); @@ -342,7 +400,7 @@ staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); HashMap<String, Object> hashMap = new HashMap<>(); - hashMap.put("TaskNo",taskWrk.getTaskNo()); + hashMap.put("TaskNo", taskWrk.getTaskNo()); try { //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS response = new HttpHandler.Builder() @@ -353,7 +411,7 @@ .doPost(); JSONObject jsonObject1 = JSON.parseObject(response); Boolean bool = false; - if(jsonObject1.get("ReturnStatus").equals(0)){ + if (jsonObject1.get("ReturnStatus").equals(0)) { taskWrk.setStatus(2);//娲惧彂浠诲姟 bool = true; taskWrkService.updateById(taskWrk); @@ -371,22 +429,14 @@ } } } else { -// staProtocol.setWorkNo((short) 9991); - if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){ - staProtocol.setStaNo((short)105); - } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) { - staProtocol.setStaNo((short)107); - }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) { - staProtocol.setStaNo((short)109); - }else{ - staProtocol.setStaNo((short)110); - } + staProtocol.setWorkNo((short) 9991); + staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } else { -// staProtocol.setWorkNo((short) 9991); + staProtocol.setWorkNo((short) 9991); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); @@ -876,7 +926,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� crnCommand.setCommand((short) 1); - log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}",crnCommand); + log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}", crnCommand); if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); @@ -896,7 +946,7 @@ * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴� */ - public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) { + public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) { List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null); if (taskWrksInitial.size() == 0) { return; @@ -916,24 +966,24 @@ continue; } - LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint()); + LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐� - if(locMast.getRow1()==1||locMast.getRow1()==5){ - LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1()+1)) - .eq("bay1",locMast.getBay1()) - .eq("lev1",locMast.getLev1()).eq("loc_sts","F")); - if (!Cools.isEmpty(locMast1)){ - log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); + if (locMast.getRow1() == 1 || locMast.getRow1() == 5) { + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("row1", (locMast.getRow1() + 1)) + .eq("bay1", locMast.getBay1()) + .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); + if (!Cools.isEmpty(locMast1)) { + log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); continue; } - }else if(locMast.getRow1()==4||locMast.getRow1()==8){ - LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1()-1)) - .eq("bay1",locMast.getBay1()) - .eq("lev1",locMast.getLev1()).eq("loc_sts","F")); - if (!Cools.isEmpty(locMast1)){ - log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); + } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) { + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("row1", (locMast.getRow1() - 1)) + .eq("bay1", locMast.getBay1()) + .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); + if (!Cools.isEmpty(locMast1)) { + log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); continue; } } @@ -964,8 +1014,8 @@ break; } int storeCount = basDevpService.getStoreCount(); - if(storeCount >= maxCount){ - log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}",storeCount); + if (storeCount >= maxCount) { + log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}", storeCount); break; } @@ -1104,7 +1154,7 @@ log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } String response = ""; - Boolean bool=false; + Boolean bool = false; HashMap<String, Object> headParam = new HashMap<>(); headParam.put("TaskNo", taskWrk.getTaskNo()); try { @@ -1116,7 +1166,7 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if(jsonObject.get("ReturnStatus").equals(0)){ + if (jsonObject.get("ReturnStatus").equals(0)) { bool = true; taskWrk.setStatus(2); taskWrkMapper.updateById(taskWrk); @@ -1125,7 +1175,7 @@ } catch (Exception e) { log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk); // throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触"); - }finally { + } finally { apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms" , wmsUrl + taskStatusFeedbackPath , null @@ -1216,7 +1266,7 @@ crnOperatorParam.setCrnNo(crn.getId()); R r = crnController.crnTaskComplete(crnOperatorParam); Thread.sleep(1000); - if(!r.get("code").equals(200)){ + if (!r.get("code").equals(200)) { return; } if (!Cools.isEmpty(taskWrk)) { -- Gitblit v1.9.1