From 0f69561e397093b5165c4aac58530721d5c62178 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 25 十一月 2024 11:03:16 +0800 Subject: [PATCH] #led --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 133 ++++++++++++++++++++++++++++--------------- 1 files changed, 86 insertions(+), 47 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index 5acaf07..6a5ef93 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -8,15 +8,18 @@ import com.zy.asrs.common.domain.param.SearchLocParam; import com.zy.asrs.common.utils.HttpHandler; import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.common.SnowflakeIdWorker; import com.zy.asrs.wcs.core.domain.dto.MatDto; import com.zy.asrs.wcs.core.domain.dto.RedisMapDto; import com.zy.asrs.wcs.core.domain.dto.StaDto; +import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam; import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.kernel.AnalyzeService; import com.zy.asrs.wcs.core.model.MapNode; import com.zy.asrs.wcs.core.model.enums.*; import com.zy.asrs.wcs.core.service.*; +import com.zy.asrs.wcs.core.utils.OpenUtils; import com.zy.asrs.wcs.core.utils.RedisUtil; import com.zy.asrs.wcs.core.utils.ShuttleDispatcher; import com.zy.asrs.wcs.core.utils.Utils; @@ -86,6 +89,8 @@ private DeviceBarcodeService deviceBarcodeService; @Autowired private ShuttleChargeStaService shuttleChargeStaService; + @Autowired + private OpenUtils openUtils; /** * 缁勬墭 @@ -160,6 +165,7 @@ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) + && staProtocol.isPakMk() ) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� @@ -191,19 +197,18 @@ } } - //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 - TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) - .eq(TaskCtg::getStatus, 1)); - // 鍒ゆ柇閲嶅宸ヤ綔妗� Task task1 = taskService.getOne(new LambdaQueryWrapper<Task>() .eq(Task::getOriginSite, inSta.getStaNo()) - .eq(Task::getTaskCtg, taskCtg.getId()) - .in(Task::getTaskSts, 1, 2, 3) + .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts, TaskStsType.ANALYZE_INBOUND.sts, TaskStsType.EXECUTE_INBOUND.sts) .eq(Task::getZpallet, barcode)); if (task1 != null) { News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", task1.getTaskNo()); + if (staProtocol.getWorkNo().intValue() != Integer.parseInt(task1.getTaskNo())) { + devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getDestSite())); + devpThread.setPakMk(staProtocol.getSiteId(), false); + News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(task1)); + } continue; } @@ -220,7 +225,7 @@ param.setBarcode(barcode); param.setIoType(1); param.setSourceStaNo(inSta.getStaNo()); - param.setLocType1((short) 1); + param.setLocType1(staProtocol.getLocType1().shortValue()); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/pakin/loc/v1") @@ -233,17 +238,50 @@ if (code.equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); - //鑾峰彇杈撻�佽矾寰� - BasConveyorPath conveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() - .eq(BasConveyorPath::getTypeNo, TaskCtgType.IN.val()) - .eq(BasConveyorPath::getDeviceId, devp.getId()) - .eq(BasConveyorPath::getStnNo, staProtocol.getSiteId())); - if (conveyorPath == null) { - News.error("杈撻�佽矾寰勪笉瀛樺湪"); - }else { - devpThread.writeWorkSta(staProtocol.getSiteId(), dto.getWorkNo().shortValue(), conveyorPath.getDeviceStn().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); + String wmsLocNo = dto.getLocNo(); + int row = Integer.parseInt(wmsLocNo.substring(0, 2)); + int bay = Integer.parseInt(wmsLocNo.substring(2, 5)); + int lev = Integer.parseInt(wmsLocNo.substring(5, 7)); + row -= 16; + String wcsLocNo = Utils.getLocNo(row, bay, lev); + + CreateInTaskParam createInTaskParam = new CreateInTaskParam(); + createInTaskParam.setTaskNo(String.valueOf(dto.getWorkNo())); + createInTaskParam.setDestLoc(wcsLocNo); + createInTaskParam.setOriginSite("31002"); + createInTaskParam.setDestSite("31004"); + createInTaskParam.setPriority(11); + createInTaskParam.setBarcode(barcode); + + R result = openUtils.createInTask(createInTaskParam); + News.info("鍒涘缓鍏ュ簱浠诲姟锛屼换鍔℃暟鎹�={}锛學MS鍝嶅簲={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject), JSON.toJSON(result)); + try{ + String msg = ""; + HashMap<String, String> hashMap = new HashMap<>(); + hashMap.put("msg", msg); + hashMap.put("sta", "31001"); + new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/led/getError") + .setJson(JSON.toJSONString(hashMap)) + .build() + .doPost(); + }catch (Exception e){ + } + + }else { + String msg = jsonObject.getString("msg"); + HashMap<String, String> hashMap = new HashMap<>(); + hashMap.put("msg", msg); + hashMap.put("sta", "31001"); + new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/led/getError") + .setJson(JSON.toJSONString(hashMap)) + .build() + .doPost(); + News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject)); } } catch (Exception e) { e.printStackTrace(); @@ -455,7 +493,7 @@ if (Cools.isEmpty(basConveyorSta.getTaskNo())){ continue; } - if (!basConveyorSta.getTaskNo().toString().equals(task.getWmsTaskNo())){ + if (!basConveyorSta.getTaskNo().toString().equals(task.getTaskNo())){ continue; } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); @@ -472,6 +510,14 @@ continue; } + //瑙f瀽鍓嶅垽鏂唴閮ㄧ洰鏍囧�兼槸鍚︽湁鐗� 鏈夊伐浣滃彿 + StaProtocol staProtocolInside = devpThread.getStation().get(Utils.getStaByLev(Utils.getLev(task.getDestLoc()))); + if (staProtocolInside == null) { + continue; + } + if (staProtocolInside.isLoading() || staProtocolInside.getWorkNo() !=0) { + continue; + } if (Cools.isEmpty(task.getShuttleNo())) { //鍒嗛厤灏忚溅 @@ -884,7 +930,8 @@ .eq(BasLed::getDeviceId, ledDevice.getId())); List<Integer> staArr = JSON.parseArray(led.getSta(), Integer.class); - BasConveyor basConveyor = basConveyorService.getById(led.getConveyorId().intValue()); + BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>() + .eq(BasConveyor::getDeviceId, led.getConveyorId().intValue())); if (basConveyor == null) { continue; } @@ -898,26 +945,26 @@ for (Integer staNo : staArr) { // 鑾峰彇鍙夎溅绔欑偣 StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { + if (null == staProtocol || null == staProtocol.getWorkNo()) { continue; } else { staProtocol = staProtocol.clone(); } - // 鑾峰彇宸ヤ綔妗f暟鎹� - Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, staProtocol.getWorkNo())); - if (null == task) { - continue; - } + String taskNo = "0"; + if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001 ){ + if (0 != staProtocol.getWorkNo()){ + Motion motion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getMotionCtg, 9).eq(Motion::getTemp, staProtocol.getWorkNo())); + // 鑾峰彇宸ヤ綔妗f暟鎹� + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo())); + if (null == task) { + continue; + } + taskNo = task.getWmsTaskNo(); + } - tasks.add(task); - // 缁勮鍛戒护 - LedCommand ledCommand = new LedCommand(); - ledCommand.setWorkNo(task.getTaskNo()); - ledCommand.setIoType(task.getTaskCtg().intValue()); - ledCommand.setTitle(task.getTaskCtg$()); - ledCommand.setSourceLocNo(task.getOriginLoc()); - ledCommand.setLocNo(task.getDestLoc()); - ledCommand.setStaNo(Integer.parseInt(task.getDestSite())); + } else if (staProtocol.isInEnable() && staProtocol.getSiteId() == 31002) { + taskNo = staProtocol.getStaNo().toString(); + } try { //鑾峰彇WMS鍦板潃 @@ -926,32 +973,24 @@ String wmsUrl = dict.getValue(); HashMap<String, Object> param = new HashMap<>(); - param.put("taskNo", task.getTaskNo()); + param.put("taskNo", taskNo); + param.put("sta",staNo); String response = new HttpHandler.Builder() .setUri(wmsUrl) - .setPath("/queryTask") + .setPath("/rpc/led/getTask") .setJson(JSON.toJSONString(param)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); if (code.equals(200)) { - List<MatDto> matDtos = JSON.parseArray(jsonObject.getString("data"), MatDto.class); - ledCommand.setMatDtos(matDtos); + } } } catch (Exception e) { e.printStackTrace(); } - commands.add(ledCommand); - } - // 鑾峰彇LED绾跨▼ - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledDevice.getId().intValue()); - // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- - if (!commands.isEmpty()) { - ledThread.write(commands); - ledThread.setLedMk(false); } } } -- Gitblit v1.9.1