From 8c6329b191e7eb9ea9268c4cf678b9a6b12a96de Mon Sep 17 00:00:00 2001 From: zj Date: Mon, 15 Dec 2025 17:33:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/impl/ApiServiceImpl.java | 2 +- .../service/impl/RequestLogServiceImpl.java | 8 +- .../ruoyi/job/mapper/JobCallBackMapper.java | 2 + .../service/impl/JobCallBackServiceImpl.java | 26 +++- .../schedule/plcRead/ssj/PlcSsjRead.java | 6 +- .../ssj/floor1/Floor1BothWayOutSsjThread.java | 1 + .../ssj/floor1/Floor1SingleSsjThread.java | 1 + .../ssj/floor2/Floor2InOutSsjThread.java | 11 ++ .../mapper/device/RequestLogMapper.xml | 5 +- .../mapper/job/JobCallBackMapper.xml | 6 + ruoyi-ui/src/views/device/api/index.vue | 20 +++- ruoyi-ui/src/views/job/jobCallBack/index.vue | 112 ++++++++++-------- 12 files changed, 135 insertions(+), 65 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index ba9d448e..d3ce02eb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -143,7 +143,7 @@ public class ApiServiceImpl implements IApiService { */ @Override public RequestLog finishMydoJob(Map param) { - return requestLogService.getRequestLog(JOB_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param)); + return requestLogService.getRequestLog(JOB_FINISH_URL, "任务完成上报", JSONUtil.toJsonStr(param)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java index 0e7a619d..adf18de2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java @@ -65,7 +65,7 @@ public class RequestLogServiceImpl implements IRequestLogService if ("1".equals(requestLog.getIsSuccessful())){ return requestLogMapper.insertRequestLog(requestLog); }else { - //log.error("请求失败:" + requestLog.getErrorDetails()); + requestLogMapper.insertRequestLog(requestLog); return 0; } } @@ -126,26 +126,30 @@ public class RequestLogServiceImpl implements IRequestLogService requestLog.setRequestHeaders(null); requestLog.setRequestBody(param); requestLog.setRequestUrl(url); + Date responseTime =new Date(); try { String resStr = HttpUtil.post(url, param); requestLog.setResponseBody(resStr); InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class); - Date responseTime =new Date(); if (bean.getCode() == 200) { requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); requestLog.setResponseStatus("1"); requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS))); requestLog.setIsSuccessful("1"); }else { + requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); requestLog.setResponseStatus("0"); requestLog.setErrorDetails(bean.getMsg()); requestLog.setIsSuccessful("0"); + requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS))); } } catch (Exception e) { + requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); requestLog.setErrorDetails(e.getMessage()); requestLog.setIsSuccessful("0"); requestLog.setResponseStatus("0"); + requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS))); } finally { insertRequestLog(requestLog); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/JobCallBackMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/JobCallBackMapper.java index 163c6f0d..976be460 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/JobCallBackMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/JobCallBackMapper.java @@ -60,4 +60,6 @@ public interface JobCallBackMapper public int deleteJobCallBackByIds(Long[] ids); List selectJobCallBackListNoSuccess(); + + List getTopJobCallBack(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/JobCallBackServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/JobCallBackServiceImpl.java index 07f9afb8..0f985797 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/JobCallBackServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/JobCallBackServiceImpl.java @@ -103,8 +103,22 @@ public class JobCallBackServiceImpl implements IJobCallBackService @Override public void jobCallBack() { - List jobCallBackList = jobCallBackMapper.selectJobCallBackListNoSuccess(); - for (JobCallBack jobCallBack : jobCallBackList) { +// List jobCallBackList = jobCallBackMapper.selectJobCallBackListNoSuccess(); +// for (JobCallBack jobCallBack : jobCallBackList) { +// Map param = new HashMap<>(); +// param.put("jobId", jobCallBack.getMydojobId()); +// param.put("taskNo", jobCallBack.getTaskNo()); +// param.put("wmsType", jobCallBack.getType()); +// RequestLog requestLog = apiService.finishMydoJob(param); +// if ("1".equals(requestLog.getIsSuccessful())){ +// jobCallBack.setStatus("1"); +// jobCallBackMapper.updateJobCallBack(jobCallBack); +// } +// } + + List list = jobCallBackMapper.getTopJobCallBack(); + if(list != null && list.size() > 0){ + JobCallBack jobCallBack = list.get(0); Map param = new HashMap<>(); param.put("jobId", jobCallBack.getMydojobId()); param.put("taskNo", jobCallBack.getTaskNo()); @@ -113,6 +127,14 @@ public class JobCallBackServiceImpl implements IJobCallBackService if ("1".equals(requestLog.getIsSuccessful())){ jobCallBack.setStatus("1"); jobCallBackMapper.updateJobCallBack(jobCallBack); + }else{ + if(Integer.parseInt(jobCallBack.getSpare1()) < 2){ + jobCallBack.setSpare1(String.valueOf(Integer.parseInt(jobCallBack.getSpare1())+1)); + jobCallBackMapper.updateJobCallBack(jobCallBack); + }else{ + jobCallBack.setStatus("2"); + jobCallBackMapper.updateJobCallBack(jobCallBack); + } } } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java index 0e284969..a761ad25 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java @@ -234,7 +234,11 @@ public class PlcSsjRead implements Runnable { return PlcSsjRead.WriteToSSJ(address, bytes); } - + public static int writeToSsjQH(String address, int size) { + SendData sizeSendData = new SendData(Tools.INT, size); + byte[] bytes = Tools.sendData(sizeSendData); + return PlcSsjRead.WriteToSSJ(address, bytes); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java index c4847699..092f048b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java @@ -120,6 +120,7 @@ public class Floor1BothWayOutSsjThread implements Runnable { jobCallBack.setStatus("0"); jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); jobCallBack.setCreateTime(new Date()); + jobCallBack.setSpare1("0"); jobCallBackService.insertJobCallBack(jobCallBack); log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java index 86b467eb..d14b54b1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java @@ -129,6 +129,7 @@ public class Floor1SingleSsjThread implements Runnable { jobCallBack.setStatus("0"); jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); jobCallBack.setCreateTime(new Date()); + jobCallBack.setSpare1("0"); jobCallBackService.insertJobCallBack(jobCallBack); log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); mydoJob.setStatus(TASK_STATUS_FINISH); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java index 004bd054..336d2de1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java @@ -14,6 +14,7 @@ import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.queue.agv.domain.AgvQueue; import com.ruoyi.queue.agv.service.IAgvQueueService; import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; @@ -23,6 +24,7 @@ import java.util.List; import static com.ruoyi.common.TaskStatusCode.*; import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj; +import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsjQH; /** * 二楼出入口输送线线程 @@ -98,6 +100,14 @@ public class Floor2InOutSsjThread implements Runnable { agvQueue.setPositionCode2(inSsjDevice.getDeviceCode()); List agvQueues = agvQueueService.selectAgvQueueList(agvQueue); //不允许放货 等着 + if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 0 && "L1001".equals(inSsjDevice.getDeviceCode())) { + //下发输送线切换导向 + int i = writeToSsjQH(inSsjDevice.getPlcDbWriteAddress(), Integer.parseInt(agvQueues.get(0).getCtnrType())); + if (i == 1) { + log.info("输送机{}下发切换导向{}成功", inSsjDevice.getDeviceCode(), agvQueues.get(0).getCtnrType()); + } + } + //允许放货 if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 1) { log.info("设备:{} 位置:{} 任务号:{} 请求放货成功", inSsjDevice.getDeviceCode(), "输送线", agvQueues.get(0).getTaskCode()); @@ -151,6 +161,7 @@ public class Floor2InOutSsjThread implements Runnable { jobCallBack.setStatus("0"); jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); jobCallBack.setCreateTime(new Date()); + jobCallBack.setSpare1("0"); jobCallBackService.insertJobCallBack(jobCallBack); } } diff --git a/ruoyi-admin/src/main/resources/mapper/device/RequestLogMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/RequestLogMapper.xml index 8f845d5c..21c7a2b1 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/RequestLogMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/RequestLogMapper.xml @@ -38,12 +38,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and request_headers = #{requestHeaders} and request_body like concat('%',#{requestBody},'%') and response_time = #{responseTime} - and response_body = #{responseBody} + and response_body like concat('%',#{responseBody},'%') and response_status = #{responseStatus} - and error_details = #{errorDetails} + and error_details like concat('%',#{errorDetails},'%') and duration = #{duration} and Is_successful = #{isSuccessful} + order by request_time desc + select top(1) id, type, task_no, mydojob_id, status, create_time, spare1, spare2, spare3 from job_call_back + where status = '0' and spare1 in ('0','1','2') + order by create_time asc + diff --git a/ruoyi-ui/src/views/device/api/index.vue b/ruoyi-ui/src/views/device/api/index.vue index 59522962..2f134277 100644 --- a/ruoyi-ui/src/views/device/api/index.vue +++ b/ruoyi-ui/src/views/device/api/index.vue @@ -1,6 +1,16 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 新增 + + + + 修改 + + + + 删除 + + + + 导出 + + + + @@ -132,25 +136,29 @@ - + - + - + - + + + - + + + - + - +