diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java index 83d8e10..549c371 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java @@ -7,6 +7,9 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import com.ruoyi.bas.fault.domain.BasFaultRecord; +import com.ruoyi.bas.fault.service.IBasFaultRecordService; +import com.ruoyi.job.domain.MydoJobScreen; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -20,105 +23,37 @@ import com.ruoyi.job.service.IMydoJobService; /** * 大屏接口Controller - * + * * @author ruoyi */ @Anonymous @RestController @RequestMapping("/api/screen") public class ScreenController extends BaseController { - - @Autowired - private IDeviceSsjService deviceSsjService; - + @Autowired private IMydoJobService mydoJobService; - - // 定义各区域输送机编号数组 - private static final Map> AREA_SSJ_CODES = new HashMap<>(); - - // 静态初始化输送机编号数组 - static { - // 1区域输送机编号 - AREA_SSJ_CODES.put(1, Arrays.asList( - "L2007","L2008","L2005","L2006","L2013" - )); - - // 2区域输送机编号 - AREA_SSJ_CODES.put(2, Arrays.asList( - "L2003","L2004","L2012","L2001","L2002" - )); - - // 3区域输送机编号 - AREA_SSJ_CODES.put(3, Arrays.asList( - "L1001","L1002","L1011" - )); - - // 4区域输送机编号 - AREA_SSJ_CODES.put(4, Arrays.asList( - "L1003","L1004","L1012" - )); - } - + @Autowired + private IBasFaultRecordService basFaultRecordService; + /** - * 根据区域编号查询输送机列表 - * - * @param areaNum 区域编号(1-4) - * @return 输送机数据列表 + * 查询任务列表 */ - @PostMapping("/ssj/{areaNum}") - public AjaxResult getSsjListByArea(@PathVariable("areaNum") Integer areaNum) { - if (areaNum < 1 || areaNum > 4) { - return AjaxResult.error("区域编号必须在1-4之间"); - } - - // 获取该区域的输送机编号数组 - List ssjCodes = AREA_SSJ_CODES.get(areaNum); - if (ssjCodes == null || ssjCodes.isEmpty()) { - return AjaxResult.error("未找到该区域的输送机编号配置"); - } - - // 查询所有输送机 - List allSsjList = deviceSsjService.selectDeviceSsjList(null); - - // 根据编号数组筛选输送机 - List filteredList = allSsjList.stream() - .filter(ssj -> ssj.getDeviceCode() != null && ssjCodes.contains(ssj.getDeviceCode().trim())) - .collect(Collectors.toList()); - - // 转换为前端需要的数据格式 - List> resultList = new ArrayList<>(); - // 创建作业信息列表 - List jobList = new ArrayList<>(); - - for (DeviceSsj ssj : filteredList) { - Map map = new HashMap<>(); - map.put("id", ssj.getDeviceCode()); - map.put("name", ssj.getName()); - map.put("kx", String.valueOf(ssj.getKx())); - map.put("dw", String.valueOf(ssj.getDw())); - map.put("sbzt", ssj.getException()); - // map.put("trayCode", ssj.getTrayCode()); - map.put("allowPut", String.valueOf(ssj.getAllowPut())); - map.put("traySize", String.valueOf(ssj.getTraySize())); - map.put("exception", String.valueOf(ssj.getException())); - map.put("taskNo", ssj.getTaskNo()); - resultList.add(map); - - // 如果taskNo大于0,查询对应的作业信息 - if (ssj.getTaskNo()> 0) { - MydoJob job = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(ssj.getTaskNo())); - if (job != null) { - jobList.add(job); - } - } - } - - // 返回结果包含data和job两个字段 - Map result = new HashMap<>(); - result.put("ssj", resultList); - result.put("job", jobList); - - return AjaxResult.success(result); + @GetMapping("/selectJobListByWarehouseIdAndType") + public AjaxResult selectJobListByWarehouseIdAndType(@RequestParam("warehouseId") String warehouseId,@RequestParam("type") String type) { + Map> jobList = mydoJobService.selectJobListByWarehouseIdAndType(warehouseId,type); + return AjaxResult.success(jobList); } -} \ No newline at end of file + + /** + * 查询设备故障记录 + */ + @GetMapping("/selectFaultRecord") + public AjaxResult selectFaultRecord(@RequestParam("warehouseId") String warehouseId,@RequestParam("type") String type) { + List jobList = basFaultRecordService.selectFaultRecord(warehouseId, type); + return AjaxResult.success(jobList); + } + + + +} 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 85d569f..d4f2e6c 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 @@ -359,11 +359,11 @@ public class ApiServiceImpl implements IApiService { @Override public AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap paramMap) { RequestLog requestLog = requestLogService.getRequestLog(REQUEST_ENTER_URL, "请求获取入库作业", JSONUtil.toJsonStr(paramMap)); + InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class); if ("1".equals(requestLog.getIsSuccessful())) { - InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class); return AjaxResult.success(bean.getData()); } else { - return AjaxResult.error(); + return AjaxResult.error(bean.getMsg()); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/mapper/BasFaultRecordMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/mapper/BasFaultRecordMapper.java index 729b22f..14a63f5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/mapper/BasFaultRecordMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/mapper/BasFaultRecordMapper.java @@ -2,18 +2,19 @@ package com.ruoyi.bas.fault.mapper; import java.util.List; import com.ruoyi.bas.fault.domain.BasFaultRecord; +import org.apache.ibatis.annotations.Param; /** * 设备故障记录Mapper接口 - * + * * @author ruoyi * @date 2026-01-16 */ -public interface BasFaultRecordMapper +public interface BasFaultRecordMapper { /** * 查询设备故障记录 - * + * * @param id 设备故障记录主键 * @return 设备故障记录 */ @@ -21,7 +22,7 @@ public interface BasFaultRecordMapper /** * 查询设备故障记录列表 - * + * * @param basFaultRecord 设备故障记录 * @return 设备故障记录集合 */ @@ -29,7 +30,7 @@ public interface BasFaultRecordMapper /** * 新增设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -37,7 +38,7 @@ public interface BasFaultRecordMapper /** * 修改设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -45,7 +46,7 @@ public interface BasFaultRecordMapper /** * 删除设备故障记录 - * + * * @param id 设备故障记录主键 * @return 结果 */ @@ -53,9 +54,11 @@ public interface BasFaultRecordMapper /** * 批量删除设备故障记录 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteBasFaultRecordByIds(String[] ids); + + List selectFaultRecord(@Param("deviceIds") List deviceIds); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/IBasFaultRecordService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/IBasFaultRecordService.java index 1925f43..2698f81 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/IBasFaultRecordService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/IBasFaultRecordService.java @@ -2,18 +2,19 @@ package com.ruoyi.bas.fault.service; import java.util.List; import com.ruoyi.bas.fault.domain.BasFaultRecord; +import com.ruoyi.job.domain.MydoJob; /** * 设备故障记录Service接口 - * + * * @author ruoyi * @date 2026-01-16 */ -public interface IBasFaultRecordService +public interface IBasFaultRecordService { /** * 查询设备故障记录 - * + * * @param id 设备故障记录主键 * @return 设备故障记录 */ @@ -21,7 +22,7 @@ public interface IBasFaultRecordService /** * 查询设备故障记录列表 - * + * * @param basFaultRecord 设备故障记录 * @return 设备故障记录集合 */ @@ -29,7 +30,7 @@ public interface IBasFaultRecordService /** * 新增设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -37,7 +38,7 @@ public interface IBasFaultRecordService /** * 修改设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -45,7 +46,7 @@ public interface IBasFaultRecordService /** * 批量删除设备故障记录 - * + * * @param ids 需要删除的设备故障记录主键集合 * @return 结果 */ @@ -53,9 +54,11 @@ public interface IBasFaultRecordService /** * 删除设备故障记录信息 - * + * * @param id 设备故障记录主键 * @return 结果 */ public int deleteBasFaultRecordById(String id); + + List selectFaultRecord(String warehouseId, String type); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/impl/BasFaultRecordServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/impl/BasFaultRecordServiceImpl.java index 39b3032..7f4b16b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/impl/BasFaultRecordServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/fault/service/impl/BasFaultRecordServiceImpl.java @@ -1,6 +1,10 @@ package com.ruoyi.bas.fault.service.impl; +import java.util.ArrayList; import java.util.List; + +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.job.domain.MydoJob; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.bas.fault.mapper.BasFaultRecordMapper; @@ -9,19 +13,19 @@ import com.ruoyi.bas.fault.service.IBasFaultRecordService; /** * 设备故障记录Service业务层处理 - * + * * @author ruoyi * @date 2026-01-16 */ @Service -public class BasFaultRecordServiceImpl implements IBasFaultRecordService +public class BasFaultRecordServiceImpl implements IBasFaultRecordService { @Autowired private BasFaultRecordMapper basFaultRecordMapper; /** * 查询设备故障记录 - * + * * @param id 设备故障记录主键 * @return 设备故障记录 */ @@ -33,7 +37,7 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService /** * 查询设备故障记录列表 - * + * * @param basFaultRecord 设备故障记录 * @return 设备故障记录 */ @@ -45,7 +49,7 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService /** * 新增设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -57,7 +61,7 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService /** * 修改设备故障记录 - * + * * @param basFaultRecord 设备故障记录 * @return 结果 */ @@ -69,7 +73,7 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService /** * 批量删除设备故障记录 - * + * * @param ids 需要删除的设备故障记录主键 * @return 结果 */ @@ -81,7 +85,7 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService /** * 删除设备故障记录信息 - * + * * @param id 设备故障记录主键 * @return 结果 */ @@ -90,4 +94,43 @@ public class BasFaultRecordServiceImpl implements IBasFaultRecordService { return basFaultRecordMapper.deleteBasFaultRecordById(id); } + + @Override + public List selectFaultRecord(String warehouseId, String type) { + List deviceIds = new ArrayList<>(); + if ("01".equals(warehouseId)) { + deviceIds.add("1"); + deviceIds.add("2"); + deviceIds.add("3"); + if ("1".equals(type)){ + deviceIds.add("L2001"); + deviceIds.add("L2002"); + deviceIds.add("L2003"); + deviceIds.add("L2004"); + deviceIds.add("L2005"); + deviceIds.add("L2006"); + }else if ("2".equals(type)){ + deviceIds.add("L2007"); + deviceIds.add("L2008"); + deviceIds.add("L2009"); + deviceIds.add("L2010"); + deviceIds.add("L2011"); + deviceIds.add("L2012"); + } + } else if ("02".equals(warehouseId)) { + deviceIds.add("4"); + deviceIds.add("5"); + deviceIds.add("6"); + deviceIds.add("L1001"); + deviceIds.add("L1002"); + deviceIds.add("L1003"); + deviceIds.add("L1004"); + deviceIds.add("L1005"); + deviceIds.add("L1006"); + } + if (CollUtil.isNotEmpty(deviceIds)){ + return basFaultRecordMapper.selectFaultRecord(deviceIds); + } + return new ArrayList<>(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJobScreen.java b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJobScreen.java new file mode 100644 index 0000000..1de0d37 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/domain/MydoJobScreen.java @@ -0,0 +1,17 @@ +package com.ruoyi.job.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MydoJobScreen { + private String jobId; + private String taskNo; + private String inOrOut; + private String status; + private String trayCode; + private String roadwayId; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java index 76aaa74..66838a8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.job.mapper; import java.util.HashMap; import java.util.List; import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.domain.MydoJobScreen; import org.apache.ibatis.annotations.Param; /** @@ -81,4 +82,6 @@ public interface MydoJobMapper List selectMydoJobFinishList(MydoJob mydoJob); MydoJob selectRunningMydoJobByExitList(@Param("exitList") List exitList); + + List selectJobListByWarehouseIdAndType(MydoJob inParam); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java index 98a316a..77ae905 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java @@ -1,9 +1,11 @@ package com.ruoyi.job.service; import java.util.List; +import java.util.Map; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.domain.MydoJobScreen; /** * 作业信息Service接口 @@ -80,4 +82,7 @@ public interface IMydoJobService MydoJob selectRunningMydoJobByExitList(List strings); AjaxResult manualCallback(String jobId); + + Map> selectJobListByWarehouseIdAndType(String warehouseId, String exitType); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java index d54bcd9..8af9642 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java @@ -1,17 +1,22 @@ package com.ruoyi.job.service.impl; -import java.util.HashMap; -import java.util.List; - +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjUtil; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.domain.MydoJobScreen; +import com.ruoyi.job.mapper.MydoJobMapper; +import com.ruoyi.job.service.IMydoJobService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.job.mapper.MydoJobMapper; -import com.ruoyi.job.domain.MydoJob; -import com.ruoyi.job.service.IMydoJobService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 作业信息Service业务层处理 @@ -173,4 +178,45 @@ public class MydoJobServiceImpl implements IMydoJobService } return AjaxResult.error("手动回调失败"); } + + @Override + public Map> selectJobListByWarehouseIdAndType(String warehouseId, String type) { + Map> map = new HashMap<>(); + map.put("1",new ArrayList<>()); + map.put("2",new ArrayList<>()); + map.put("3",new ArrayList<>()); + map.put("4",new ArrayList<>()); + map.put("5",new ArrayList<>()); + map.put("6",new ArrayList<>()); + MydoJob outParam = new MydoJob(); + outParam.setWarehouseId(warehouseId); + outParam.setExitId(type); + List outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam); + if (CollUtil.isNotEmpty(outMydoJobs)){ + Map> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } + } + } + MydoJob inParam = new MydoJob(); + inParam.setWarehouseId(warehouseId); + inParam.setEntranceId(type); + List inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam); + if (CollUtil.isNotEmpty(inMydoJobs)) { + Map> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } + } + } + return map; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java index 8a6ee46..94da664 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java @@ -253,17 +253,29 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(ddj.getRwh(), ddj.getId()); if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) { //请求wms获取任务 并生成队列 - AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(getParamMap(trayCode, Convert.toInt(ddj.getHeight()), Convert.toDouble(ddjDeviceExecutionQueue.getSpare3()))); + HashMap paramMap = getParamMap(trayCode, Convert.toInt(ddj.getHeight()), Convert.toDouble(ddjDeviceExecutionQueue.getSpare3())); + AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(paramMap); if (result.isSuccess()) { inJob = BeanUtil.toBean(result.get("data"), MydoJob.class); inJob.setStatus(TASK_STATUS_CREATE); inJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); inJob.setRoadwayId(Convert.toStr(ddj.getId())); inJob.setFaultFlag("0"); + inJob.setEntranceId(getEntranceId(ddjDeviceExecutionQueue)); + inJob.setWarehouseId(Convert.toStr(paramMap.get("warehouseId"))); + inJob.setTrayCode(trayCode); mydoJobService.insertMydoJob(inJob); } else { - createRollbackQueue(ddj, 2); log.error(result.get("msg").toString()); + if ("没有空货位".equals(result.get("msg").toString())) { + createRollbackQueue(ddj, 3); + } else if ("无入库任务".equals(result.get("msg").toString())) { + createRollbackQueue(ddj, 2); + } else if ("该托盘已有库存".equals(result.get("msg").toString())) { + createRollbackQueue(ddj, 4); + }else { + createRollbackQueue(ddj, 2); + } } } @@ -335,13 +347,17 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { DeviceSsj roadWay = PlcSsjRead.deviceSsjMap.get(road); if (roadWay.getKx() == 1) { long rwh = roadwayRollback.get(road); - log.info("扫码失败,放回原位 排:{} 列:{} 层:{} 任务号:{}", mbph, mblh, mbch, rwh); + log.info("入库异常 1-未扫到 2-无任务 3-无空货位 4-已存在当前托盘 type{},放回原位 排:{} 列:{} 层:{} 任务号:{}", type, mbph, mblh, mbch, rwh); DdjDeviceExecutionQueue ddjQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh, ddj.getId()); if (ObjUtil.isNull(ddjQueue)) { ddjTaskFinish(ddj.getRwh(), ddj.getId(), 2); if (type == 2) { rwh = rwh + 100; + } else if (type == 3) { + rwh = rwh + 20; + } else if (type == 4) { + rwh = rwh + 40; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java index 1a98f8b..3fe6474 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java @@ -30,4 +30,11 @@ public interface DdjThreadInterface { * 初始化设备 */ void init(); + + /** + * 获取入口ID + * @param ddjDeviceExecutionQueue 设备执行队列 + * @return 入口ID + */ + String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java index 05fdb90..a97f4b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java @@ -113,4 +113,26 @@ public class Ddj1Thread extends BaseDdjThread { } + @Override + public String getEntranceId(DdjDeviceExecutionQueue pickQueue) { + Integer mbph = pickQueue.getYph(); + Integer mblh = pickQueue.getYlh(); + Integer mbch = pickQueue.getYch(); + String road = ""; + for (String roadway : roadwayMap.keySet()) { + List integers = roadwayMap.get(roadway); + if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) { + road = roadway; + break; + } + } + if ("L2001".equals(road)|| "L2002".equals(road)){ + return "1"; + }else if ("L2007".equals(road)|| "L2008".equals(road)){ + return "2"; + } + return ""; + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java index c6a616a..330f64e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import static com.ruoyi.common.Constant.*; @@ -109,4 +110,25 @@ public class Ddj2Thread extends BaseDdjThread { return param; } + @Override + public String getEntranceId(DdjDeviceExecutionQueue pickQueue) { + Integer mbph = pickQueue.getYph(); + Integer mblh = pickQueue.getYlh(); + Integer mbch = pickQueue.getYch(); + String road = ""; + for (String roadway : roadwayMap.keySet()) { + List integers = roadwayMap.get(roadway); + if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) { + road = roadway; + break; + } + } + if ("L2003".equals(road)|| "L2004".equals(road)){ + return "1"; + }else if ("L2009".equals(road)|| "L2010".equals(road)){ + return "2"; + } + return ""; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java index 09713a4..4aa46c7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import static com.ruoyi.common.Constant.*; @@ -92,4 +93,25 @@ public class Ddj3Thread extends BaseDdjThread { param.setSpare2(exitSsj); return param; } + + @Override + public String getEntranceId(DdjDeviceExecutionQueue pickQueue) { + Integer mbph = pickQueue.getYph(); + Integer mblh = pickQueue.getYlh(); + Integer mbch = pickQueue.getYch(); + String road = ""; + for (String roadway : roadwayMap.keySet()) { + List integers = roadwayMap.get(roadway); + if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) { + road = roadway; + break; + } + } + if ("L2005".equals(road)|| "L2006".equals(road)){ + return "1"; + }else if ("L2011".equals(road)|| "L2012".equals(road)){ + return "2"; + } + return ""; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java index 0627b47..da438b7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java @@ -92,4 +92,9 @@ public class Ddj4Thread extends BaseDdjThread { return param; } + @Override + public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) { + return "1"; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java index cacc74a..6047c55 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java @@ -79,5 +79,10 @@ public class Ddj5Thread extends BaseDdjThread { return param; } + @Override + public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) { + return "1"; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java index 7999513..06ed300 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java @@ -81,4 +81,9 @@ public class Ddj6Thread extends BaseDdjThread { return param; } + @Override + public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) { + return "1"; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java index b711f43..79ecb7f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java @@ -45,6 +45,70 @@ public class MonitoringThread implements Runnable { for (String ssjCode : PlcSsjRead.deviceSsjMap.keySet()) { DeviceSsj deviceSsj = PlcSsjRead.deviceSsjMap.get(ssjCode); deviceSsjService.updateDeviceSsj(deviceSsj); + + if (deviceSsj.getException() >= 101 && deviceSsj.getException() <= 106) { + BasFaultRecord param = new BasFaultRecord(); + param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo())); + param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode())); + param.setJobId("0"); + List basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param); + if (CollUtil.isEmpty(basFaultRecords)) { + BasFaultRecord record = new BasFaultRecord(); + record.setId(IdUtil.simpleUUID()); + record.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode())); + record.setDeviceName(deviceSsj.getName()); + record.setDeviceType("ssj"); + record.setTaskNo(Convert.toStr(deviceSsj.getTaskNo())); + record.setStartTime(DateUtil.formatDateTime(new Date())); + record.setFault(Convert.toStr(deviceSsj.getException())); + record.setJobId("0"); + basFaultRecordService.insertBasFaultRecord(record); + } + } else if (deviceSsj.getException() == 0) { + //查询记录 更新故障结束时间 + BasFaultRecord param = new BasFaultRecord(); + param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo())); + param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode())); + param.setJobId("0"); + List basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param); + if (CollUtil.isNotEmpty(basFaultRecords)) { + BasFaultRecord record = basFaultRecords.get(0); + record.setJobId("1"); + record.setFinishTime(DateUtil.formatDateTime(new Date())); + basFaultRecordService.updateBasFaultRecord(record); + } + } else if (deviceSsj.getTaskNo() == 0) { + //查询记录 更新故障结束时间 + BasFaultRecord param = new BasFaultRecord(); + param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode())); + param.setJobId("0"); + List basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param); + if (CollUtil.isNotEmpty(basFaultRecords)) { + BasFaultRecord record = basFaultRecords.get(0); + record.setJobId("1"); + record.setFinishTime(DateUtil.formatDateTime(new Date())); + basFaultRecordService.updateBasFaultRecord(record); + } + } + + /* if (deviceSsj.getException()==101){ + //前超长 + } + if (deviceSsj.getException()==102){ + //后超长 + } + if (deviceSsj.getException()==103){ + //左超宽 + } + if (deviceSsj.getException()==104){ + //右超宽 + } + if (deviceSsj.getException()==105){ + //超高 + } + if (deviceSsj.getException()==106){ + //称重异常 + }*/ } for (String ddjCode : PlcDdjRead.deviceDdjMap.keySet()) { MsgDdj msgDdj = PlcDdjRead.deviceDdjMap.get(ddjCode); @@ -54,6 +118,7 @@ public class MonitoringThread implements Runnable { BasFaultRecord param = new BasFaultRecord(); param.setTaskNo(Convert.toStr(msgDdj.getRwh())); param.setDeviceId(Convert.toStr(msgDdj.getId())); + param.setJobId("0"); List basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param); if (CollUtil.isEmpty(basFaultRecords)){ BasFaultRecord record = new BasFaultRecord(); @@ -64,6 +129,7 @@ public class MonitoringThread implements Runnable { record.setTaskNo(Convert.toStr(msgDdj.getRwh())); record.setStartTime(DateUtil.formatDateTime(new Date())); record.setFault(Convert.toStr(msgDdj.getSbzt())); + record.setJobId("0"); basFaultRecordService.insertBasFaultRecord(record); } } @@ -72,13 +138,96 @@ public class MonitoringThread implements Runnable { BasFaultRecord param = new BasFaultRecord(); param.setTaskNo(Convert.toStr(msgDdj.getRwh())); param.setDeviceId(Convert.toStr(msgDdj.getId())); + param.setJobId("0"); List basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param); if (CollUtil.isNotEmpty(basFaultRecords)){ BasFaultRecord record = basFaultRecords.get(0); + record.setJobId("1"); record.setFinishTime(DateUtil.formatDateTime(new Date())); basFaultRecordService.updateBasFaultRecord(record); } } + /* + private String getZt(int value) { + + if (value == 0) { + return "待机"; + } else if (value == 1) { + return "工作"; + } else if (value == 1031) { + return "急停"; + } else if (value == 1032) { + return "货叉不在中位"; + } else if (value == 1033) { + return "行走变频报警"; + } else if (value == 1034) { + return "升降变频报警"; + } else if (value == 1035) { + return "货叉变频报警"; + } else if (value == 1036) { + return "货叉变频报警"; + } else if (value == 1037) { + return "运行限位故障"; + } else if (value == 1038) { + return "升降限位故障"; + } else if (value == 1039) { + return "运行不能纠偏"; + } else if (value == 1040) { + return "升降不能纠偏"; + } else if (value == 1041) { + return "水平测距出错"; + } else if (value == 1042) { + return "垂直BPS出错"; + } else if (value == 1043) { + return "超速保护"; + } else if (value == 1044) { + return "前边超宽"; + } else if (value == 1045) { + return "后边超宽"; + } else if (value == 1046) { + return "左边歪斜"; + } else if (value == 1047) { + return "右边歪斜"; + } else if (value == 1048) { + return "超高1"; + } else if (value == 1049) { + return "超高2"; + } else if (value == 1050) { + return "放货完毕货叉有货"; + } else if (value == 1051) { + return "取货时货叉有货"; + } else if (value == 1052) { + return "放货目标有货"; + } else if (value == 1053) { + return "取货完毕无货"; + } else if (value == 1054) { + return "放货时货叉无货"; + } else if (value == 1055) { + return "货叉动作超时"; + } else if (value == 1056) { + return "货叉不能纠偏"; + } else if (value == 1057) { + return "微升降超时"; + } else if (value == 1058) { + return "松绳过载"; + } else if (value == 1059) { + return "设定超限"; + } else if (value == 1060) { + return "取双伸时单伸有货"; + } else if (value == 1061) { + return "放双伸时单伸有货"; + } else if (value == 1062) { + return "入库输送机任务不符"; + } else if (value == 1063) { + return "安全门打开"; + } else if (value == 9999) { + return "设备未联机"; + }else{ + return "未知"; + } + + } + */ } Thread.sleep(1500); } catch (Exception e) { diff --git a/ruoyi-admin/src/main/resources/mapper/bas/BasFaultRecordMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/BasFaultRecordMapper.xml index 449984d..d6fe839 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/BasFaultRecordMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/BasFaultRecordMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + insert into bas_fault_record @@ -85,9 +93,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from bas_fault_record where id in + delete from bas_fault_record where id in #{id} - \ No newline at end of file + diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index babe08e..c6e07d5 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -111,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" exit_id, warehouse_id, fault_flag, + tray_code, #{jobId}, @@ -130,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{exitId}, #{warehouseId}, #{faultFlag}, + #{trayCode}, @@ -233,4 +235,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and status = 3 order by priority desc,create_time + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 3f68194..1ee7565 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -120,7 +120,7 @@ public class SecurityConfig .antMatchers("/device/api/**").permitAll() .antMatchers("/wcs2Wms/api/**").permitAll() .antMatchers("/test/**").permitAll() - .antMatchers("/largeScreen/monitor/**").permitAll() + .antMatchers("/api/screen/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); })