This commit is contained in:
zj
2026-01-04 08:39:00 +08:00
parent 88d01609d8
commit 2b6065d72f
31 changed files with 592 additions and 225 deletions

View File

@@ -20,49 +20,49 @@ 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"
"L2007", "L2008", "L2005", "L2006", "L2013"
));
// 2区域输送机编号
AREA_SSJ_CODES.put(2, Arrays.asList(
"L2003","L2004","L2012","L2001","L2002"
"L2003", "L2004", "L2012", "L2001", "L2002"
));
// 3区域输送机编号
AREA_SSJ_CODES.put(3, Arrays.asList(
"L1001","L1002","L1011"
"L1001", "L1002", "L1011"
));
// 4区域输送机编号
AREA_SSJ_CODES.put(4, Arrays.asList(
"L1003","L1004","L1012"
"L1003", "L1004", "L1012"
));
}
/**
* 根据区域编号查询输送机列表
*
*
* @param areaNum 区域编号(1-4)
* @return 输送机数据列表
*/
@@ -71,54 +71,155 @@ public class ScreenController extends BaseController {
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("kx", getSsjKx(ssj.getKx()));
map.put("dw", getSsjDw(ssj.getDw()));
map.put("sbzt", getSSzt(ssj.getSszt()));
// 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("exception", getSSzt(ssj.getSszt()));
map.put("taskNo", ssj.getTaskNo());
resultList.add(map);
// 如果taskNo大于0,查询对应的作业信息
if (ssj.getTaskNo()> 0) {
MydoJob job = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(ssj.getTaskNo()));
if (ssj.getTaskNo() > 0) {
MydoJob job = mydoJobService.selectJobByTaskNo(String.valueOf(ssj.getTaskNo()));
if (job != null) {
if("1".equals(job.getInOrOut())){
job.setInOrOut("生产入库");
job.setExitId(job.getEntranceId());
}else if("2".equals(job.getInOrOut())){
job.setInOrOut("退货入库");
job.setExitId(job.getEntranceId());
}else if("3".equals(job.getInOrOut())){
job.setInOrOut("其他入库");
job.setExitId(job.getEntranceId());
}else if("5".equals(job.getInOrOut())){
job.setInOrOut("盘点入库");
job.setExitId(job.getEntranceId());
}else if("21".equals(job.getInOrOut())){
job.setInOrOut("物资出库");
}else if("26".equals(job.getInOrOut())){
job.setInOrOut("盘点出库");
}
jobList.add(job);
}
}
}
// 返回结果包含data和job两个字段
Map<String, Object> result = new HashMap<>();
result.put("ssj", resultList);
result.put("job", jobList);
return AjaxResult.success(result);
}
private String getSsjDw(int dw) {
if(dw == 1){
return "到位";
}else{
return "未到位";
}
}
private String getSsjKx(int kx) {
if(kx == 1){
return "空闲";
}else{
return "不空闲";
}
}
private String getSSzt(int sszt) {
String msg = "";
switch (sszt) {
case 1:
msg = "手动";
break;
case 2:
msg = "自动";
break;
case 3:
msg = "运行";
break;
case 4:
msg = "输送超时";
break;
case 5:
msg = "断路器跳闸";
break;
case 6:
msg = "变频器报警";
break;
case 7:
msg = "开关任务异常";
break;
case 8:
msg = "急停";
break;
case 9:
msg = "输送超界";
break;
}
return msg;
}
private String getBjxx(int bjxx) {
String msg = "";
switch (bjxx) {
case 1:
msg = "前超长";
break;
case 2:
msg = "后超长";
break;
case 3:
msg = "左超宽";
break;
case 4:
msg = "右超宽";
break;
case 5:
msg = "超高";
break;
case 6:
msg = "无任务";
break;
case 7:
msg = "未扫到条码";
break;
case 8:
msg = "称重异常";
break;
}
return msg;
}
}