229 lines
7.0 KiB
Java
229 lines
7.0 KiB
Java
package com.ruoyi.api.controller;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Arrays;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.stream.Collectors;
|
||
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.web.bind.annotation.*;
|
||
|
||
import com.ruoyi.common.annotation.Anonymous;
|
||
import com.ruoyi.common.core.controller.BaseController;
|
||
import com.ruoyi.common.core.domain.AjaxResult;
|
||
import com.ruoyi.device.ssj.domain.DeviceSsj;
|
||
import com.ruoyi.device.ssj.service.IDeviceSsjService;
|
||
import com.ruoyi.job.domain.MydoJob;
|
||
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 {
|
||
// 区域输送机编号
|
||
AREA_SSJ_CODES.put(1, Arrays.asList(
|
||
"L1001", "G1004"
|
||
));
|
||
// // 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"
|
||
// ));
|
||
}
|
||
|
||
/**
|
||
* 根据区域编号查询输送机列表
|
||
*
|
||
* @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", 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", getSSzt(ssj.getSszt()));
|
||
map.put("taskNo", ssj.getTaskNo());
|
||
resultList.add(map);
|
||
|
||
// 如果taskNo大于0,查询对应的作业信息
|
||
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;
|
||
}
|
||
|
||
} |