diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java b/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java new file mode 100644 index 0000000..49c3cfa --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java @@ -0,0 +1,104 @@ +package com.ruoyi.job.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.job.domain.JobCallBack; +import com.ruoyi.job.service.IJobCallBackService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 任务完成回传Controller + * + * @author ruoyi + * @date 2025-09-25 + */ +@RestController +@RequestMapping("/job/callBack") +public class JobCallBackController extends BaseController +{ + @Autowired + private IJobCallBackService jobCallBackService; + + /** + * 查询任务完成回传列表 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:list')") + @GetMapping("/list") + public TableDataInfo list(JobCallBack jobCallBack) + { + startPage(); + List list = jobCallBackService.selectJobCallBackList(jobCallBack); + return getDataTable(list); + } + + /** + * 导出任务完成回传列表 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:export')") + @Log(title = "任务完成回传", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, JobCallBack jobCallBack) + { + List list = jobCallBackService.selectJobCallBackList(jobCallBack); + ExcelUtil util = new ExcelUtil(JobCallBack.class); + util.exportExcel(response, list, "任务完成回传数据"); + } + + /** + * 获取任务完成回传详细信息 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(jobCallBackService.selectJobCallBackById(id)); + } + + /** + * 新增任务完成回传 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:add')") + @Log(title = "任务完成回传", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody JobCallBack jobCallBack) + { + return toAjax(jobCallBackService.insertJobCallBack(jobCallBack)); + } + + /** + * 修改任务完成回传 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:edit')") + @Log(title = "任务完成回传", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody JobCallBack jobCallBack) + { + return toAjax(jobCallBackService.updateJobCallBack(jobCallBack)); + } + + /** + * 删除任务完成回传 + */ + @PreAuthorize("@ss.hasPermi('job:callBack:remove')") + @Log(title = "任务完成回传", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(jobCallBackService.deleteJobCallBackByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/domain/JobCallBack.java b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/JobCallBack.java new file mode 100644 index 0000000..e75c470 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/JobCallBack.java @@ -0,0 +1,143 @@ +package com.ruoyi.job.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 任务完成回传对象 job_call_back + * + * @author ruoyi + * @date 2025-09-25 + */ +public class JobCallBack extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 类型 */ + @Excel(name = "类型") + private String type; + + /** 任务号 */ + @Excel(name = "任务号") + private Long taskNo; + + /** mydojob作业号 */ + @Excel(name = "mydojob作业号") + private String mydojobId; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String spare1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String spare2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String spare3; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setType(String type) + { + this.type = type; + } + + public String getType() + { + return type; + } + + public void setTaskNo(Long taskNo) + { + this.taskNo = taskNo; + } + + public Long getTaskNo() + { + return taskNo; + } + + public void setMydojobId(String mydojobId) + { + this.mydojobId = mydojobId; + } + + public String getMydojobId() + { + return mydojobId; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setSpare1(String spare1) + { + this.spare1 = spare1; + } + + public String getSpare1() + { + return spare1; + } + + public void setSpare2(String spare2) + { + this.spare2 = spare2; + } + + public String getSpare2() + { + return spare2; + } + + public void setSpare3(String spare3) + { + this.spare3 = spare3; + } + + public String getSpare3() + { + return spare3; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("type", getType()) + .append("taskNo", getTaskNo()) + .append("mydojobId", getMydojobId()) + .append("status", getStatus()) + .append("createTime", getCreateTime()) + .append("spare1", getSpare1()) + .append("spare2", getSpare2()) + .append("spare3", getSpare3()) + .toString(); + } +} 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 new file mode 100644 index 0000000..c51d806 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/JobCallBackMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.job.mapper; + +import java.util.List; +import com.ruoyi.job.domain.JobCallBack; + +/** + * 任务完成回传Mapper接口 + * + * @author ruoyi + * @date 2025-09-25 + */ +public interface JobCallBackMapper +{ + /** + * 查询任务完成回传 + * + * @param id 任务完成回传主键 + * @return 任务完成回传 + */ + public JobCallBack selectJobCallBackById(Long id); + + /** + * 查询任务完成回传列表 + * + * @param jobCallBack 任务完成回传 + * @return 任务完成回传集合 + */ + public List selectJobCallBackList(JobCallBack jobCallBack); + + /** + * 新增任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + public int insertJobCallBack(JobCallBack jobCallBack); + + /** + * 修改任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + public int updateJobCallBack(JobCallBack jobCallBack); + + /** + * 删除任务完成回传 + * + * @param id 任务完成回传主键 + * @return 结果 + */ + public int deleteJobCallBackById(Long id); + + /** + * 批量删除任务完成回传 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteJobCallBackByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IJobCallBackService.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IJobCallBackService.java new file mode 100644 index 0000000..d303fe0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IJobCallBackService.java @@ -0,0 +1,61 @@ +package com.ruoyi.job.service; + +import java.util.List; +import com.ruoyi.job.domain.JobCallBack; + +/** + * 任务完成回传Service接口 + * + * @author ruoyi + * @date 2025-09-25 + */ +public interface IJobCallBackService +{ + /** + * 查询任务完成回传 + * + * @param id 任务完成回传主键 + * @return 任务完成回传 + */ + public JobCallBack selectJobCallBackById(Long id); + + /** + * 查询任务完成回传列表 + * + * @param jobCallBack 任务完成回传 + * @return 任务完成回传集合 + */ + public List selectJobCallBackList(JobCallBack jobCallBack); + + /** + * 新增任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + public int insertJobCallBack(JobCallBack jobCallBack); + + /** + * 修改任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + public int updateJobCallBack(JobCallBack jobCallBack); + + /** + * 批量删除任务完成回传 + * + * @param ids 需要删除的任务完成回传主键集合 + * @return 结果 + */ + public int deleteJobCallBackByIds(Long[] ids); + + /** + * 删除任务完成回传信息 + * + * @param id 任务完成回传主键 + * @return 结果 + */ + public int deleteJobCallBackById(Long id); +} 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 new file mode 100644 index 0000000..de3fca7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/JobCallBackServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.job.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.job.mapper.JobCallBackMapper; +import com.ruoyi.job.domain.JobCallBack; +import com.ruoyi.job.service.IJobCallBackService; + +/** + * 任务完成回传Service业务层处理 + * + * @author ruoyi + * @date 2025-09-25 + */ +@Service +public class JobCallBackServiceImpl implements IJobCallBackService +{ + @Autowired + private JobCallBackMapper jobCallBackMapper; + + /** + * 查询任务完成回传 + * + * @param id 任务完成回传主键 + * @return 任务完成回传 + */ + @Override + public JobCallBack selectJobCallBackById(Long id) + { + return jobCallBackMapper.selectJobCallBackById(id); + } + + /** + * 查询任务完成回传列表 + * + * @param jobCallBack 任务完成回传 + * @return 任务完成回传 + */ + @Override + public List selectJobCallBackList(JobCallBack jobCallBack) + { + return jobCallBackMapper.selectJobCallBackList(jobCallBack); + } + + /** + * 新增任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + @Override + public int insertJobCallBack(JobCallBack jobCallBack) + { + jobCallBack.setCreateTime(DateUtils.getNowDate()); + return jobCallBackMapper.insertJobCallBack(jobCallBack); + } + + /** + * 修改任务完成回传 + * + * @param jobCallBack 任务完成回传 + * @return 结果 + */ + @Override + public int updateJobCallBack(JobCallBack jobCallBack) + { + return jobCallBackMapper.updateJobCallBack(jobCallBack); + } + + /** + * 批量删除任务完成回传 + * + * @param ids 需要删除的任务完成回传主键 + * @return 结果 + */ + @Override + public int deleteJobCallBackByIds(Long[] ids) + { + return jobCallBackMapper.deleteJobCallBackByIds(ids); + } + + /** + * 删除任务完成回传信息 + * + * @param id 任务完成回传主键 + * @return 结果 + */ + @Override + public int deleteJobCallBackById(Long id) + { + return jobCallBackMapper.deleteJobCallBackById(id); + } +} 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 e2dede0..c75c463 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 @@ -5,17 +5,15 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.util.StrUtil; -import com.ruoyi.api.domain.RequestLog; -import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse; import com.ruoyi.api.service.IApiService; import com.ruoyi.bas.cargospace.domain.BasCargoSpace; import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.ssj.domain.DeviceSsj; +import com.ruoyi.job.domain.JobCallBack; import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.service.IJobCallBackService; import com.ruoyi.job.service.IMydoJobService; -import com.ruoyi.queue.agv.domain.AgvQueue; import com.ruoyi.queue.agv.service.IAgvQueueService; import com.ruoyi.queue.ddj.domain.DdjDeviceExecutionQueue; import com.ruoyi.queue.ddj.service.IDdjDeviceExecutionQueueService; @@ -25,7 +23,6 @@ import lombok.extern.slf4j.Slf4j; import java.util.*; import static com.ruoyi.common.TaskStatusCode.*; -import static com.ruoyi.common.TaskType.DDJ_RWLX_2; import static com.ruoyi.common.TaskType.DDJ_RWLX_3; /** @@ -43,6 +40,7 @@ public class Floor1BothWayOutSsjThread implements Runnable { private IBasCargoSpaceService basCargoSpaceService; private IDdjDeviceExecutionQueueService ddjDeviceExecutionQueueService; private final Map> roadwayMap = new HashMap<>(); + private IJobCallBackService jobCallBackService; public boolean isRun = true; @@ -74,6 +72,7 @@ public class Floor1BothWayOutSsjThread implements Runnable { mydoJobService = SpringUtils.getBean(IMydoJobService.class); basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class); ddjDeviceExecutionQueueService = SpringUtils.getBean(IDdjDeviceExecutionQueueService.class); + jobCallBackService = SpringUtils.getBean(IJobCallBackService.class); //初始化巷道口 排 列 层 @@ -117,19 +116,22 @@ public class Floor1BothWayOutSsjThread implements Runnable { mydoJobService.updateMydoJob(mydoJob); } if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { - HashMap param = new HashMap<>(); - param.put("taskNo",mydoJob.getTaskNo()); - param.put("jobId",mydoJob.getJobId()); - RequestLog result = apiService.finishMydoJob(param); - if ("1".equals(result.getIsSuccessful())){ - log.info("完成任务 taskNo{} ",mydoJob.getTaskNo()); - mydoJob.setStatus(TASK_STATUS_FINISH); - mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); - mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); - mydoJobService.updateMydoJob(mydoJob); - mydoJobService.insertHistory(mydoJob.getJobId()); - mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); - } + JobCallBack jobCallBack = new JobCallBack(); + jobCallBack.setType("2"); + jobCallBack.setMydojobId(mydoJob.getJobId()); + jobCallBack.setStatus("0"); + jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); + jobCallBack.setCreateTime(new Date()); + jobCallBackService.insertJobCallBack(jobCallBack); + + log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); + mydoJob.setStatus(TASK_STATUS_FINISH); + mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); + mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); + mydoJobService.updateMydoJob(mydoJob); + mydoJobService.insertHistory(mydoJob.getJobId()); + mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); + } } } 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 ec9cb44..ffd75f5 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 @@ -3,18 +3,17 @@ package com.ruoyi.schedule.scheduleTask.ssj.floor1; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; -import com.ruoyi.api.domain.RequestLog; import com.ruoyi.api.service.IApiService; import com.ruoyi.bas.cargospace.domain.BasCargoSpace; import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.job.domain.MydoJob; -import com.ruoyi.job.service.IMydoJobService; -import com.ruoyi.queue.agv.service.IAgvQueueService; import com.ruoyi.device.ssj.domain.DeviceSsj; +import com.ruoyi.job.domain.JobCallBack; +import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.service.IJobCallBackService; +import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.queue.ddj.domain.DdjDeviceExecutionQueue; import com.ruoyi.queue.ddj.service.IDdjDeviceExecutionQueueService; import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead; @@ -39,6 +38,8 @@ public class Floor1SingleSsjThread implements Runnable { private IDdjDeviceExecutionQueueService ddjDeviceExecutionQueueService; private IBasCargoSpaceService basCargoSpaceService; private final Map> roadwayMap = new HashMap<>(); + private IJobCallBackService jobCallBackService; + public void init() { @@ -59,6 +60,8 @@ public class Floor1SingleSsjThread implements Runnable { mydoJobService = SpringUtils.getBean(IMydoJobService.class); ddjDeviceExecutionQueueService = SpringUtils.getBean(IDdjDeviceExecutionQueueService.class); basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class); + jobCallBackService = SpringUtils.getBean(IJobCallBackService.class); + //初始化出口和巷道口映射关系 exitRoadwayMap.put("L2001", "L2002"); @@ -123,19 +126,20 @@ public class Floor1SingleSsjThread implements Runnable { if (ObjUtil.isNotNull(mydoJob)) { mydoJob.setExecutionPhase(TASK_EP_SSJ); mydoJobService.updateMydoJob(mydoJob); - HashMap param = new HashMap<>(); - param.put("taskNo", mydoJob.getTaskNo()); - param.put("jobId", mydoJob.getJobId()); - RequestLog result = apiService.finishMydoJob(param); - if ("1".equals(result.getIsSuccessful())) { - log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); - mydoJob.setStatus(TASK_STATUS_FINISH); - mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); - mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); - mydoJobService.updateMydoJob(mydoJob); - mydoJobService.insertHistory(mydoJob.getJobId()); - mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); - } + JobCallBack jobCallBack = new JobCallBack(); + jobCallBack.setType("2"); + jobCallBack.setMydojobId(mydoJob.getJobId()); + jobCallBack.setStatus("0"); + jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); + jobCallBack.setCreateTime(new Date()); + jobCallBackService.insertJobCallBack(jobCallBack); + log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); + mydoJob.setStatus(TASK_STATUS_FINISH); + mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); + mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); + mydoJobService.updateMydoJob(mydoJob); + mydoJobService.insertHistory(mydoJob.getJobId()); + mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); } } } diff --git a/ruoyi-admin/src/main/resources/mapper/job/JobCallBackMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/JobCallBackMapper.xml new file mode 100644 index 0000000..68b5285 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/job/JobCallBackMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + select id, type, task_no, mydojob_id, status, create_time, spare1, spare2, spare3 from job_call_back + + + + + + + + insert into job_call_back + + type, + task_no, + mydojob_id, + status, + create_time, + spare1, + spare2, + spare3, + + + #{type}, + #{taskNo}, + #{mydojobId}, + #{status}, + #{createTime}, + #{spare1}, + #{spare2}, + #{spare3}, + + + + + update job_call_back + + type = #{type}, + task_no = #{taskNo}, + mydojob_id = #{mydojobId}, + status = #{status}, + create_time = #{createTime}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + + where id = #{id} + + + + delete from job_call_back where id = #{id} + + + + delete from job_call_back where id in + + #{id} + + + \ No newline at end of file