| | |
| | | import com.core.common.R; |
| | | import com.zy.asrs.domain.devops.DevopsMessage; |
| | | import com.zy.asrs.domain.devops.ErrorType; |
| | | import com.zy.asrs.domain.vo.SiteTableVo; |
| | | import com.zy.asrs.entity.BasDevp; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | |
| | | import com.zy.core.enums.CrnStatusType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.CrnSlave; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @RequestMapping("/devops") |
| | |
| | | //先查询堆垛机是否在工作 |
| | | WrkMast working = wrkMastMapper.selectWorking(crnSlave.getId()); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { |
| | | crnProtocol = new CrnProtocol(); |
| | | } |
| | | devopsMessage = new DevopsMessage(); |
| | | devopsMessage.setWrkNo(wrkMast.getWrkNo()); |
| | | if (working != null) { |
| | | //在工作,则判断是否未当前这条 |
| | | if (working.getWrkNo().equals(wrkMast.getWrkNo())) { |
| | | devopsMessage.setError("该工作档正在出库,请稍后"); |
| | | if (crnProtocol.getTaskNo().intValue() == working.getWrkNo()) { |
| | | devopsMessage.setError("该工作档正在执行,请稍后"); |
| | | } else { |
| | | devopsMessage.setError("该工作档状态不对,与堆垛机的工作号不匹配"); |
| | | devopsMessage.setMethod("结合任务情况进行操作;如果实际已完成,就将工作档完成;如果未完成,则调整工作档状态"); |
| | | } |
| | | } else { |
| | | devopsMessage.setError(working.getWrkNo() + "号工作档正在出库,请稍后"); |
| | | devopsMessage.setError(working.getWrkNo() + "号工作档正在执行,请稍后"); |
| | | } |
| | | devopsMessages.add(devopsMessage); |
| | | continue; |
| | | } |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | |
| | | List<ErrorType> staError = isStaError(staProtocol, wrkMast); |
| | | for (ErrorType type : staError) { |
| | | if (!Cools.isEmpty(devopsMessage.getError())) { |
| | | devopsMessage.setError(devopsMessage.getError() + "\n" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + "\n" + type.getMethod()); |
| | | devopsMessage.setError(devopsMessage.getError() + ";" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + ";" + type.getMethod()); |
| | | } else { |
| | | devopsMessage.setError(type.getDesc()+ ";"); |
| | | devopsMessage.setMethod(type.getMethod()+ ";" ); |
| | | devopsMessage.setError(type.getDesc()); |
| | | devopsMessage.setMethod(type.getMethod()); |
| | | } |
| | | } |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | List<ErrorType> crnError = isCrnError(crnProtocol, wrkMast); |
| | | for (ErrorType type : crnError) { |
| | | if (!Cools.isEmpty(devopsMessage.getError())) { |
| | | devopsMessage.setError(devopsMessage.getError() + "\n" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + "\n" + type.getMethod()); |
| | | devopsMessage.setError(devopsMessage.getError() + ";" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + ";" + type.getMethod()); |
| | | } else { |
| | | devopsMessage.setError(type.getDesc()+ ";"); |
| | | devopsMessage.setMethod(type.getMethod()+ ";"); |
| | | devopsMessage.setError(type.getDesc()); |
| | | devopsMessage.setMethod(type.getMethod()); |
| | | } |
| | | } |
| | | devopsMessages.add(devopsMessage); |
| | |
| | | @PostMapping("/site/list") |
| | | @ManagerAuth(memo = "站点信息表") |
| | | public R siteTable() { |
| | | List<SiteTableVo> list = new ArrayList<>(); |
| | | // 内存数据 |
| | | Map<Integer, StaProtocol> station = new HashMap<>(); |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | station.putAll(devpThread.getStation()); |
| | | } |
| | | List<DevopsMessage> devopsMessages = new ArrayList<>(); |
| | | DevopsMessage devopsMessage; |
| | | List<Integer> outSta = slaveProperties.getOutSta(); |
| | | List<Integer> inSta = slaveProperties.getInSta(); |
| | | // 持久数据 |
| | | List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>().orderBy("dev_no")); |
| | | for (BasDevp devp : basDevps) { |
| | | StaProtocol staProtocol = station.get(devp.getDevNo()); |
| | | if (null == staProtocol) { |
| | | continue; |
| | | for (Integer out : outSta) { |
| | | for (BasDevp devp : basDevps) { |
| | | if (devp.getDevNo().equals(out)) { |
| | | devopsMessage = new DevopsMessage(); |
| | | devopsMessage.setStaNo(out); |
| | | devopsMessage.setType("出库站点"); |
| | | if (devp.getLoading().equalsIgnoreCase("Y")) { |
| | | devopsMessage.setError(ErrorType.YOUWU.getDesc()); |
| | | devopsMessage.setMethod("请将物料挪走,才能出库"); |
| | | } else { |
| | | List<ErrorType> crnError = isOutStaError(devp); |
| | | for (ErrorType type : crnError) { |
| | | if (!Cools.isEmpty(devopsMessage.getError())) { |
| | | devopsMessage.setError(devopsMessage.getError() + ";" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + ";" + type.getMethod()); |
| | | } else { |
| | | devopsMessage.setError(type.getDesc()); |
| | | devopsMessage.setMethod(type.getMethod()); |
| | | } |
| | | } |
| | | } |
| | | devopsMessages.add(devopsMessage); |
| | | } |
| | | } |
| | | SiteTableVo vo = new SiteTableVo(); |
| | | vo.setDevNo(devp.getDevNo()); // 站点编号 |
| | | vo.setWorkNo(staProtocol.getWorkNo()); // 工作号 |
| | | vo.setAutoing(staProtocol.isAutoing() ? "Y" : "N"); // 自动 |
| | | vo.setLoading(staProtocol.isLoading() ? "Y" : "N"); // 有物 |
| | | vo.setInEnable(staProtocol.isInEnable() ? "Y" : "N"); // 可入 |
| | | vo.setOutEnable(staProtocol.isOutEnable() ? "Y" : "N"); // 可出 |
| | | vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 入库标记 |
| | | vo.setStaNo(staProtocol.getStaNo()); // 目标站 |
| | | vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 空板信号 |
| | | list.add(vo); |
| | | } |
| | | return R.ok().add(list); |
| | | for (Integer in : inSta) { |
| | | for (BasDevp devp : basDevps) { |
| | | if (devp.getDevNo().equals(in)) { |
| | | devopsMessage = new DevopsMessage(); |
| | | devopsMessage.setStaNo(in); |
| | | devopsMessage.setType("入库站点"); |
| | | if (devp.getLoading().equalsIgnoreCase("Y")) { |
| | | List<ErrorType> crnError = isInStaError(devp); |
| | | for (ErrorType type : crnError) { |
| | | if (!Cools.isEmpty(devopsMessage.getError())) { |
| | | devopsMessage.setError(devopsMessage.getError() + ";" + type.getDesc()); |
| | | devopsMessage.setMethod(devopsMessage.getMethod() + ";" + type.getMethod()); |
| | | } else { |
| | | devopsMessage.setError(type.getDesc()); |
| | | devopsMessage.setMethod(type.getMethod()); |
| | | } |
| | | } |
| | | } else { |
| | | devopsMessage.setError(ErrorType.WUWU.getDesc()); |
| | | devopsMessage.setMethod(ErrorType.WUWU.getMethod()); |
| | | } |
| | | devopsMessages.add(devopsMessage); |
| | | } |
| | | } |
| | | } |
| | | return R.ok().add(devopsMessages); |
| | | } |
| | | |
| | | private List<ErrorType> isOutStaError(BasDevp devp) { |
| | | List<ErrorType> types = new ArrayList<>(); |
| | | // 自动 |
| | | if (devp.getAutoing().equalsIgnoreCase("Y")) { |
| | | types.add(ErrorType.FEIZIDONG); |
| | | } |
| | | |
| | | // 有物 |
| | | if (devp.getLoading().equalsIgnoreCase("Y")) { |
| | | types.add(ErrorType.YOUWU); |
| | | } // 工作号是否为0 |
| | | if (devp.getWrkNo() != null) { |
| | | types.add(ErrorType.GONGZUOHAO); |
| | | } |
| | | // 目标站点 |
| | | //TODO |
| | | // if (devp.getStaNo() == null) { |
| | | // types.add(ErrorType.STANO); |
| | | // } |
| | | |
| | | return types; |
| | | } |
| | | |
| | | private List<ErrorType> isInStaError(BasDevp devp) { |
| | | List<ErrorType> types = new ArrayList<>(); |
| | | |
| | | // 自动 |
| | | if (devp.getAutoing().equalsIgnoreCase("Y")) { |
| | | types.add(ErrorType.FEIZIDONG); |
| | | } |
| | | |
| | | // 工作号是否为0 |
| | | if (devp.getWrkNo() != null) { |
| | | types.add(ErrorType.GONGZUOHAO); |
| | | } |
| | | // 目标站点 |
| | | // if (staProtocol.getStaNo() == null) { |
| | | // types.add(ErrorType.STANO); |
| | | // } |
| | | return types; |
| | | } |
| | | } |