package com.zy.asrs.controller; import com.core.common.R; import com.zy.asrs.controller.requestParam.StaParam; import com.zy.asrs.controller.responseParam.StationResponseParam; import com.zy.asrs.controller.vo.PlcErrorTableVo; import com.zy.asrs.entity.Job; import com.zy.asrs.service.JobService; import com.zy.common.web.BaseController; import com.zy.core.DevpThread; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.protocol.StaProtocol; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 对ctu系统的接口 */ @Slf4j @RestController public class WmsController extends BaseController { @Autowired private JobService jobService; /** * 站点查询 */ @ResponseBody @PostMapping("/station/getTaskNo") public R query(@RequestBody StaParam param) { log.info("根据站点查询staNo:{}", param); String staNo = param.getStaNo(); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, param.getDevpId()); List list = new ArrayList<>(); Map station = devpThread.getStation(); StaProtocol staProtocol = station.get(Integer.parseInt(staNo)); Integer workNo = staProtocol.getWorkNo(); if (workNo != null) { Job jobByJobNo = jobService.getJobByJobNo(workNo); if (jobByJobNo != null) { return R.ok(jobByJobNo.getJobNo()); } } return R.ok(list); } /** * 查询异常 */ @ResponseBody @PostMapping("/station/getError") public R getError(@RequestBody StaParam param) { log.info("根据站点查询staNo:{}", param); String staNo = param.getStaNo(); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, param.getDevpId()); Map station = devpThread.getStation(); StaProtocol staProtocol = station.get(Integer.parseInt(staNo)); return R.ok(staPlcErr(staProtocol)); } private List staPlcErr(StaProtocol staProtocol) { if (staProtocol == null) { return null; } List list = new ArrayList<>(); if (staProtocol.getBreakerErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("断路器故障"); vo.setError("断路器故障"); list.add(vo); } if (staProtocol.getInfraredErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("光电异常"); vo.setError("光电异常"); list.add(vo); } if (staProtocol.getOutTimeErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("运行超时"); vo.setError("运行超时"); list.add(vo); } if (staProtocol.getSeizeSeatErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("占位超时"); vo.setError("占位超时"); list.add(vo); } if (staProtocol.getWrkYgoodsN()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("有任务无货故障"); vo.setError("有任务无货故障"); list.add(vo); } if (staProtocol.getInverterErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("变频器故障"); vo.setError("变频器故障"); list.add(vo); } if (staProtocol.getContactErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("电机接触器故障"); vo.setError("电机接触器故障"); list.add(vo); } if (staProtocol.getUpcontactErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("顶升电机接触器故障"); vo.setError("顶升电机接触器故障"); list.add(vo); } if (staProtocol.isFrontErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("前超限"); vo.setError("前超限"); list.add(vo); } if (staProtocol.isBackErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("后超限"); vo.setError("后超限"); list.add(vo); } if (staProtocol.isHighErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("高超限"); vo.setError("高超限"); list.add(vo); } if (staProtocol.isLeftErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("左超限"); vo.setError("左超限"); list.add(vo); } if (staProtocol.isRightErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("右超限"); vo.setError("右超限"); list.add(vo); } if (staProtocol.isBarcodeErr()) { PlcErrorTableVo vo = new PlcErrorTableVo(); vo.setStaNo(staProtocol.getSiteId()); // 序号 vo.setPlcDesc("扫码失败"); vo.setError("扫码失败"); list.add(vo); } return list; } }