From d56b8093dc9e3e75f8efe1a0f1aa6d821c9c3dfb Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 15 四月 2025 13:30:35 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 140 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 123 insertions(+), 17 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java index cf5f724..7f898b7 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java @@ -1,24 +1,24 @@ package com.zy.asrs.wcs.core.timer; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.zy.asrs.wcs.core.entity.Loc; -import com.zy.asrs.wcs.core.entity.Task; -import com.zy.asrs.wcs.core.entity.TaskLog; +import com.zy.asrs.common.utils.HttpHandler; +import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.model.enums.LocStsType; +import com.zy.asrs.wcs.core.model.enums.MotionCtgType; import com.zy.asrs.wcs.core.model.enums.TaskStsType; -import com.zy.asrs.wcs.core.service.LocService; -import com.zy.asrs.wcs.core.service.TaskLogService; -import com.zy.asrs.wcs.core.service.TaskService; +import com.zy.asrs.wcs.core.service.*; +import com.zy.asrs.wcs.rcs.News; +import com.zy.asrs.wcs.system.entity.Dict; +import com.zy.asrs.wcs.system.service.DictService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; @Slf4j @Component @@ -29,14 +29,22 @@ @Autowired private TaskLogService taskLogService; @Autowired + private MotionService motionService; + @Autowired + private MotionLogService motionLogService; + @Autowired private LocService locService; + @Autowired + private DictService dictService; + @Autowired + private BasConveyorStaService basConveyorStaService; @Scheduled(cron = "0/1 * * * * ? ") @Transactional - public synchronized void clearCompletedTask() { + public synchronized void clearCompletedTask2() { ArrayList<Long> taskSts = new ArrayList<>(); - taskSts.add(TaskStsType.COMPLETE_INBOUND.sts); - taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts); +// taskSts.add(TaskStsType.COMPLETE_INBOUND.sts); +// taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts); taskSts.add(TaskStsType.COMPLETE_CHARGE.sts); taskSts.add(TaskStsType.COMPLETE_MOVE.sts); taskSts.add(TaskStsType.COMPLETE_MANUAL.sts); @@ -45,6 +53,12 @@ .eq(Task::getStatus, 1) .in(Task::getTaskSts, taskSts)); for (Task task : tasks) { + +// boolean httpRequest = doHttpRequest(task, "127.0.0.1:8080", "/wms/open/asrs//wrkMast/finish/v1"); +// if (!httpRequest) { +// return; +// } + //璁板綍搴撳瓨淇℃伅 updateRecordLoc(task); //浠诲姟杞巻鍙叉。 @@ -52,9 +66,93 @@ } } + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public synchronized void clearCompletedTask() { + ArrayList<Long> taskSts = new ArrayList<>(); + taskSts.add(TaskStsType.COMPLETE_INBOUND.sts); + taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts); +// taskSts.add(TaskStsType.COMPLETE_CHARGE.sts); +// taskSts.add(TaskStsType.COMPLETE_MOVE.sts); +// taskSts.add(TaskStsType.COMPLETE_MANUAL.sts); + taskSts.add(TaskStsType.COMPLETE_LADEN_MOVE.sts); + + Dict reportWms = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "reportWms")); + + List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() + .eq(Task::getStatus, 1) + .in(Task::getTaskSts, taskSts)); + for (Task task : tasks) { + Motion motion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getMotionCtg, MotionCtgType.LIFT_WITH_GOODS.val()).eq(Motion::getTaskNo, task.getTaskNo())); + if (motion != null) { + List<BasConveyorSta> conveyorStas = basConveyorStaService.list(new LambdaQueryWrapper<BasConveyorSta>().in(BasConveyorSta::getTaskNo, motion.getTemp())); + if (!conveyorStas.isEmpty()) { + continue; + } + } + if (reportWms != null && reportWms.getValue().equals("true")) { + //鑾峰彇WMS鍦板潃 + Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "WMS_URL").eq(Dict::getStatus, 1)); + if (dict == null) { + News.error("WMS鍦板潃鏈厤缃�"); + return; + } + String wmsUrl = dict.getValue(); + + if(task.getTaskSts().equals(TaskStsType.COMPLETE_INBOUND.sts) + || task.getTaskSts().equals(TaskStsType.COMPLETE_OUTBOUND.sts) + || task.getTaskSts().equals(TaskStsType.COMPLETE_LADEN_MOVE.sts)){ +// boolean httpRequest = doHttpRequest(task, wmsUrl, "/open/asrs/wrkMast/finish/v1"); +// if (!httpRequest) { +// continue; +// } + } + } + + //璁板綍搴撳瓨淇℃伅 + updateRecordLoc(task); + //浠诲姟杞巻鍙叉。 + saveTaskLog(task); + } + } + + private boolean doHttpRequest(Task requestParam, String url, String path){ + String response = ""; + boolean success = false; + try { + Map<String, Object> map = new HashMap<>(); + map.put("appkey", "ea1f0459efc02a79f046f982767939ae"); + Map<String, Object> map2 = new HashMap<>(); + map2.put("taskNo", requestParam.getWmsTaskNo()); + log.info("璇锋眰鎶ユ枃:"+ JSONObject.toJSONString(requestParam)); + + response = new HttpHandler.Builder() + .setHeaders(map) + .setUri(url) + .setPath(path) + .setJson(JSONObject.toJSONString(map2)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + log.info("璇锋眰杩斿洖:"+response); + String code = jsonObject.get("code").toString(); + if(code.equals("200")){ + success = true; + } + + }catch (Exception e){ + log.info("璇锋眰鎶ラ敊"+e.getMessage()); + } + return success; + } + //鏇存柊搴撳瓨淇℃伅 @Transactional public void updateRecordLoc(Task task) { + if (task.getRecordLoc() == null) { + return; + } + if (task.getRecordLoc().equals("Y")) {//璁板綍搴撳瓨淇℃伅 //婧愬簱浣� => 绌哄簱 //鐩爣搴撲綅 => 鍦ㄥ簱 @@ -83,16 +181,24 @@ @Transactional public void saveTaskLog(Task task) { //鍒涘缓鍘嗗彶妗� - Date date = new Date(); TaskLog taskLog = new TaskLog(); - taskLog.setTaskNo(task.getTaskNo()); - taskLog.setTaskData(JSON.toJSONString(task)); - taskLog.setCreateTime(date); - taskLog.setUpdateTime(date); + taskLog.sync(task); + taskLog.setUpdateTime(new Date()); taskLogService.save(taskLog); + + List<Motion> motions = motionService.list(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); + for (Motion motion : motions) { + //鍒涘缓鍔ㄤ綔鍘嗗彶妗� + MotionLog motionLog = new MotionLog(); + motionLog.sync(motion); + motionLog.setUpdateTime(new Date()); + motionLogService.save(motionLog); + } //鍒犻櫎婧愪换鍔� taskService.removeById(task.getId()); + //鍒犻櫎鍔ㄤ綔 + motionService.remove(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); } } -- Gitblit v1.9.1