现场修改

This commit is contained in:
liuhanqing
2026-02-03 15:46:28 +08:00
parent 6152646e1b
commit c392eb6cf3
21 changed files with 457 additions and 132 deletions

View File

@@ -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<Integer, List<String>> 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<String> ssjCodes = AREA_SSJ_CODES.get(areaNum);
if (ssjCodes == null || ssjCodes.isEmpty()) {
return AjaxResult.error("未找到该区域的输送机编号配置");
}
// 查询所有输送机
List<DeviceSsj> allSsjList = deviceSsjService.selectDeviceSsjList(null);
// 根据编号数组筛选输送机
List<DeviceSsj> filteredList = allSsjList.stream()
.filter(ssj -> ssj.getDeviceCode() != null && ssjCodes.contains(ssj.getDeviceCode().trim()))
.collect(Collectors.toList());
// 转换为前端需要的数据格式
List<Map<String, Object>> resultList = new ArrayList<>();
// 创建作业信息列表
List<MydoJob> jobList = new ArrayList<>();
for (DeviceSsj ssj : filteredList) {
Map<String, Object> 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<String, Object> 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<String,List<MydoJobScreen>> jobList = mydoJobService.selectJobListByWarehouseIdAndType(warehouseId,type);
return AjaxResult.success(jobList);
}
}
/**
* 查询设备故障记录
*/
@GetMapping("/selectFaultRecord")
public AjaxResult selectFaultRecord(@RequestParam("warehouseId") String warehouseId,@RequestParam("type") String type) {
List<BasFaultRecord> jobList = basFaultRecordService.selectFaultRecord(warehouseId, type);
return AjaxResult.success(jobList);
}
}

View File

@@ -359,11 +359,11 @@ public class ApiServiceImpl implements IApiService {
@Override
public AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> 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());
}
}

View File

@@ -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<BasFaultRecord> selectFaultRecord(@Param("deviceIds") List<String> deviceIds);
}

View File

@@ -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<BasFaultRecord> selectFaultRecord(String warehouseId, String type);
}

View File

@@ -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<BasFaultRecord> selectFaultRecord(String warehouseId, String type) {
List<String> 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<>();
}
}

View File

@@ -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;
}

View File

@@ -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<MydoJob> selectMydoJobFinishList(MydoJob mydoJob);
MydoJob selectRunningMydoJobByExitList(@Param("exitList") List<String> exitList);
List<MydoJobScreen> selectJobListByWarehouseIdAndType(MydoJob inParam);
}

View File

@@ -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<String> strings);
AjaxResult manualCallback(String jobId);
Map<String,List<MydoJobScreen>> selectJobListByWarehouseIdAndType(String warehouseId, String exitType);
}

View File

@@ -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<String, List<MydoJobScreen>> selectJobListByWarehouseIdAndType(String warehouseId, String type) {
Map<String, List<MydoJobScreen>> 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<MydoJobScreen> outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam);
if (CollUtil.isNotEmpty(outMydoJobs)){
Map<String, List<MydoJobScreen>> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> mydoJobs = map.get(roadwayId);
mydoJobs.addAll(collect.get(roadwayId));
map.put(roadwayId,mydoJobs);
}
}
}
MydoJob inParam = new MydoJob();
inParam.setWarehouseId(warehouseId);
inParam.setEntranceId(type);
List<MydoJobScreen> inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam);
if (CollUtil.isNotEmpty(inMydoJobs)) {
Map<String, List<MydoJobScreen>> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> mydoJobs = map.get(roadwayId);
mydoJobs.addAll(collect.get(roadwayId));
map.put(roadwayId,mydoJobs);
}
}
}
return map;
}
}

View File

@@ -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<String, Object> 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;
}

View File

@@ -30,4 +30,11 @@ public interface DdjThreadInterface {
* 初始化设备
*/
void init();
/**
* 获取入口ID
* @param ddjDeviceExecutionQueue 设备执行队列
* @return 入口ID
*/
String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue);
}

View File

@@ -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<Integer> 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 "";
}
}

View File

@@ -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<Integer> 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 "";
}
}

View File

@@ -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<Integer> 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 "";
}
}

View File

@@ -92,4 +92,9 @@ public class Ddj4Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -79,5 +79,10 @@ public class Ddj5Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -81,4 +81,9 @@ public class Ddj6Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -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<BasFaultRecord> 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<BasFaultRecord> 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<BasFaultRecord> 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<BasFaultRecord> 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<BasFaultRecord> 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) {

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.bas.fault.mapper.BasFaultRecordMapper">
<resultMap type="BasFaultRecord" id="BasFaultRecordResult">
<result property="id" column="id" />
<result property="deviceId" column="device_id" />
@@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectBasFaultRecordList" parameterType="BasFaultRecord" resultMap="BasFaultRecordResult">
<include refid="selectBasFaultRecordVo"/>
<where>
<where>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
<if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
<if test="deviceType != null and deviceType != ''"> and device_type = #{deviceType}</if>
@@ -33,11 +33,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null and finishTime != ''"> and finish_time = #{finishTime}</if>
</where>
</select>
<select id="selectBasFaultRecordById" parameterType="String" resultMap="BasFaultRecordResult">
<include refid="selectBasFaultRecordVo"/>
where id = #{id}
</select>
<select id="selectFaultRecord" resultType="com.ruoyi.bas.fault.domain.BasFaultRecord">
<include refid="selectBasFaultRecordVo"/>
where job_id = '0'
and device_id in
<foreach collection="deviceIds" separator="," item="it" open="(" close=")" index="i">
#{it}
</foreach>
</select>
<insert id="insertBasFaultRecord" parameterType="BasFaultRecord">
insert into bas_fault_record
@@ -85,9 +93,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteBasFaultRecordByIds" parameterType="String">
delete from bas_fault_record where id in
delete from bas_fault_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -111,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exitId != null">exit_id,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="faultFlag != null">fault_flag,</if>
<if test="trayCode != null">tray_code,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="jobId != null">#{jobId},</if>
@@ -130,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exitId != null">#{exitId},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="faultFlag != null">#{faultFlag},</if>
<if test="trayCode != null">#{trayCode},</if>
</trim>
</insert>
<insert id="insertHistory">
@@ -233,4 +235,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and status = 3
order by priority desc,create_time
</select>
<select id="selectJobListByWarehouseIdAndType" resultType="com.ruoyi.job.domain.MydoJobScreen">
select job_id as jobId,task_no as taskNo,in_or_out as inOrOut,status,tray_code as trayCode,roadway_id as roadwayId
from mydo_job_wcs
where warehouse_id = #{warehouseId}
<if test="entranceId != null and entranceId != ''"> and entrance_id = #{entranceId}</if>
<if test="exitId != null and exitId != ''"> and exit_id = #{exitId}</if>
</select>
</mapper>

View File

@@ -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();
})