|  |  |  | 
|---|
|  |  |  | import com.zy.core.model.Task; | 
|---|
|  |  |  | import com.zy.core.model.command.*; | 
|---|
|  |  |  | import com.zy.core.model.protocol.ForkLiftProtocol; | 
|---|
|  |  |  | import com.zy.core.model.protocol.ForkLiftStaProtocol; | 
|---|
|  |  |  | import com.zy.core.model.protocol.LiftStaProtocol; | 
|---|
|  |  |  | import com.zy.core.properties.SlaveProperties; | 
|---|
|  |  |  | import com.zy.core.thread.ForkLiftThread; | 
|---|
|  |  |  | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JSONObject data = JSON.parseObject(JSON.toJSONString(forkLiftProtocol)); | 
|---|
|  |  |  | List<ForkLiftStaProtocol> forkLiftStaProtocols = forkLiftThread.getForkLiftStaProtocols(); | 
|---|
|  |  |  | data.put("forkLiftStaProtocols", forkLiftStaProtocols); | 
|---|
|  |  |  | baseObj.putAll(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok().add(list); | 
|---|
|  |  |  | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | vo.setWorkNo(forkLiftProtocol.getTaskNo().intValue());//任务号 | 
|---|
|  |  |  | vo.setWorkNo(forkLiftProtocol.getTaskNo());//任务号 | 
|---|
|  |  |  | vo.setPakMk(forkLiftProtocol.getPakMk()?"Y" : "N");    // 作业标记 | 
|---|
|  |  |  | vo.setForkLiftStaProtocols(forkLiftThread.getForkLiftStaProtocols()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok().add(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.domain.vo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.zy.core.model.protocol.ForkLiftStaProtocol; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | public class LiftMsgTableVo { | 
|---|
|  |  |  | 
|---|
|  |  |  | private String pakMk = "-"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 任务地址 | 
|---|
|  |  |  | * 站点信息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Short taskAddress; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 目的地址 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Short distAddress; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 已完成的任务号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Short completeTaskNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 层 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Short lev; | 
|---|
|  |  |  | private List<ForkLiftStaProtocol> forkLiftStaProtocols; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 穿梭车号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Integer shuttleNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 令牌 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Integer token; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @TableField(value = "wms_wrk_no") | 
|---|
|  |  |  | private String wmsWrkNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 系统消息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiModelProperty(value= "系统消息") | 
|---|
|  |  |  | @TableField(value = "system_msg") | 
|---|
|  |  |  | private String systemMsg; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getWrkSts$(){ | 
|---|
|  |  |  | BasWrkStatusMapper mapper = SpringUtils.getBean(BasWrkStatusMapper.class); | 
|---|
|  |  |  | BasWrkStatus entity = mapper.selectById(this.wrkSts); | 
|---|
|  |  |  | 
|---|
|  |  |  | @TableField(value = "wms_wrk_no") | 
|---|
|  |  |  | private String wmsWrkNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 系统消息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiModelProperty(value= "系统消息") | 
|---|
|  |  |  | @TableField(value = "system_msg") | 
|---|
|  |  |  | private String systemMsg; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public WrkMastLog() {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getWrkSts$(){ | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //小车处于空闲状态 | 
|---|
|  |  |  | if (!shuttleThread.isIdle()) { | 
|---|
|  |  |  | News.info("{}任务,{}小车,小车忙碌中", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,小车忙碌中", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) | 
|---|
|  |  |  | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftSta.getLiftNo()); | 
|---|
|  |  |  | if (liftWrkMast != null) { | 
|---|
|  |  |  | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftSta.getLiftNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftSta.getLiftNo()); | 
|---|
|  |  |  | return false;//当前提升机存在未完成任务,等待下一次轮询 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //获取小车到输送站点行走命令 | 
|---|
|  |  |  | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread); | 
|---|
|  |  |  | if (commands == null) { | 
|---|
|  |  |  | News.info("{}任务,{}小车,路径计算失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,路径计算失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | return false;//路径解锁失败 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!forkLiftThread.isIdle()) { | 
|---|
|  |  |  | News.info("{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //判断提升机是否有其他任务 | 
|---|
|  |  |  | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo()); | 
|---|
|  |  |  | if (liftWrkMast != null) { | 
|---|
|  |  |  | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 | 
|---|
|  |  |  | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); | 
|---|
|  |  |  | return false;//当前提升机存在未完成任务,等待下一次轮询 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //获取目标站 | 
|---|
|  |  |  | ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); | 
|---|
|  |  |  | if (sourceLiftSta == null || liftSta == null) { | 
|---|
|  |  |  | News.info("{}任务,缺少站点信息,禁止派发", wrkMast.getWrkNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,缺少站点信息,禁止派发", wrkMast.getWrkNo()); | 
|---|
|  |  |  | return false;//缺少站点信息 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //小车处于空闲状态 | 
|---|
|  |  |  | if (!shuttleThread.isIdle()) { | 
|---|
|  |  |  | News.info("{}任务,{}小车,小车忙碌中,禁止派发", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,小车忙碌中,禁止派发", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | List<NavigateNode> nodeList = navigateUtils.calc(startLocNo, endLocNo, mapType, Utils.getShuttlePoints(shuttleNo, Utils.getLev(startLocNo)), null); | 
|---|
|  |  |  | if (nodeList == null) { | 
|---|
|  |  |  | News.error("{} dash {} can't find navigate path!", startLocNo, endLocNo); | 
|---|
|  |  |  | shuttleThread.offerSystemMsg("{} dash {} can't find navigate path!", startLocNo, endLocNo); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(startLocNo), shuttleNo, allNode, true);//锁定路径 | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | News.error("{} dash {} can't lock path!", startLocNo, endLocNo); | 
|---|
|  |  |  | shuttleThread.offerSystemMsg("{} dash {} can't lock path!", startLocNo, endLocNo); | 
|---|
|  |  |  | return null;//路径锁定失败 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return commands; | 
|---|
|  |  |  | 
|---|
|  |  |  | boolean lockResult = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(endLocNo), shuttleProtocol.getShuttleNo(), unlockPath, false);//所使用的路径进行解锁 | 
|---|
|  |  |  | if (!lockResult) { | 
|---|
|  |  |  | News.error("{} dash {} can't find unlock path!", startLocNo, endLocNo); | 
|---|
|  |  |  | shuttleThread.offerSystemMsg("{} dash {} can't find unlock path!", startLocNo, endLocNo); | 
|---|
|  |  |  | return null;//解锁失败 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | List<NavigateNode> nodeList = navigateUtils.calc(startLocNo, endLocNo, mapType, Utils.getShuttlePoints(shuttleNo, Utils.getLev(startLocNo)), null); | 
|---|
|  |  |  | if (nodeList == null) { | 
|---|
|  |  |  | News.error("{} dash {} can't find navigate path!", startLocNo, endLocNo); | 
|---|
|  |  |  | shuttleThread.offerSystemMsg("{} dash {} can't find navigate path!", startLocNo, endLocNo); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.core; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.core.common.SpringUtils; | 
|---|
|  |  |  | import com.zy.asrs.entity.WrkMast; | 
|---|
|  |  |  | import com.zy.asrs.service.WrkMastService; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.lang.reflect.Array; | 
|---|
|  |  |  | 
|---|
|  |  |  | offer(NewsLevel.ERROR, format, arguments); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void taskInfo(Integer wrkNo, String format, Object... arguments) { | 
|---|
|  |  |  | info(format, arguments); | 
|---|
|  |  |  | offerTask(wrkNo, format, arguments); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void taskWarn(Integer wrkNo, String format, Object... arguments) { | 
|---|
|  |  |  | warn(format, arguments); | 
|---|
|  |  |  | offerTask(wrkNo, format, arguments); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void taskError(Integer wrkNo, String format, Object... arguments) { | 
|---|
|  |  |  | error(format, arguments); | 
|---|
|  |  |  | offerTask(wrkNo, format, arguments); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String printStr() { | 
|---|
|  |  |  | StringBuilder sb = new StringBuilder("["); | 
|---|
|  |  |  | List<NewsDomain> domains = NEWS_QUEUE.data(); | 
|---|
|  |  |  | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static boolean offerTask(Integer wrkNo, String msg, Object[] args) { | 
|---|
|  |  |  | WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class); | 
|---|
|  |  |  | if (wrkMastService == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectByWorkNo(wrkNo); | 
|---|
|  |  |  | if (wrkMast == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String systemMsg = replace(msg, args); | 
|---|
|  |  |  | if (systemMsg.equals(wrkMast.getSystemMsg())) { | 
|---|
|  |  |  | wrkMast.setSystemMsg(systemMsg); | 
|---|
|  |  |  | wrkMast.setModiTime(new Date()); | 
|---|
|  |  |  | wrkMastService.updateById(wrkMast); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static boolean offer(NewsLevel level, String msg, Object[] args) { | 
|---|
|  |  |  | return NEWS_QUEUE.offer(new NewsDomain(level, replace(msg, args), (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static String replace(String str, Object[] objs){ | 
|---|
|  |  |  | public static String replace(String str, Object[] objs){ | 
|---|
|  |  |  | if (null == objs || objs.length == 0 || null == str || "".equals(str.trim())) { | 
|---|
|  |  |  | return str; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Object extend; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 系统消息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String systemMsg; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getProtocolStatus$() { | 
|---|
|  |  |  | if (this.protocolStatusType == null) { | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean enableDemo(boolean enable);//演示模式 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean offerSystemMsg(String format, Object... arguments); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //***************获取命令***************** | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes);//获取移动命令 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean offerSystemMsg(String format, Object... arguments) { | 
|---|
|  |  |  | String msg = News.replace(format, arguments); | 
|---|
|  |  |  | shuttleProtocol.setSystemMsg(msg); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { | 
|---|
|  |  |  | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); | 
|---|
|  |  |  | NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); | 
|---|
|  |  |  | 
|---|
|  |  |  | OutputQueue.FORKLIFT.offer(MessageFormat.format("【{0}】{1}读取货叉提升机状态信息失败", DateUtils.convert(new Date()), slave.getId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB102.0", (short) 8); | 
|---|
|  |  |  | if (result2.IsSuccess) { | 
|---|
|  |  |  | for (int i = 0; i < this.slave.getSta().size(); i++) { | 
|---|
|  |  |  | ForkLiftSlave.Sta sta = this.slave.getSta().get(i); | 
|---|
|  |  |  | if (forkLiftStaProtocols.isEmpty()) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i); | 
|---|
|  |  |  | boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result2.Content, i * 2, 2); | 
|---|
|  |  |  | forkLiftStaProtocol.setHasTray(status1[0]); | 
|---|
|  |  |  | forkLiftStaProtocol.setHasCar(status1[1]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (System.currentTimeMillis() - forkLiftProtocol.getDeviceDataLog() > 1000 * 5) { | 
|---|
|  |  |  | //采集时间超过5s,保存一次数据记录 | 
|---|
|  |  |  | //保存数据记录 | 
|---|
|  |  |  | 
|---|
|  |  |  | array[3] = command.getPut();//放货数据 | 
|---|
|  |  |  | OperateResult result = siemensS7Net.Write("DB103.0", array); | 
|---|
|  |  |  | if (result.IsSuccess) { | 
|---|
|  |  |  | OperateResult result2 = siemensS7Net.Write("DB103.16", command.getConfirm()); | 
|---|
|  |  |  | OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm()); | 
|---|
|  |  |  | if (result2.IsSuccess) { | 
|---|
|  |  |  | response.setResult(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | port: 102 | 
|---|
|  |  |  | rack: 0 | 
|---|
|  |  |  | slot: 0 | 
|---|
|  |  |  | staRow: 10 | 
|---|
|  |  |  | staRow: 9 | 
|---|
|  |  |  | staBay: 6 | 
|---|
|  |  |  | sta[0]: | 
|---|
|  |  |  | staNo: 101 | 
|---|
|  |  |  | 
|---|
|  |  |  | <result column="lift_no" property="liftNo" /> | 
|---|
|  |  |  | <result column="shuttle_no" property="shuttleNo" /> | 
|---|
|  |  |  | <result column="wms_wrk_no" property="wmsWrkNo" /> | 
|---|
|  |  |  | <result column="system_msg" property="systemMsg" /> | 
|---|
|  |  |  | </resultMap> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </mapper> | 
|---|
|  |  |  | 
|---|
|  |  |  | <result column="shuttle_no" property="shuttleNo" /> | 
|---|
|  |  |  | <result column="lift_no" property="liftNo" /> | 
|---|
|  |  |  | <result column="wms_wrk_no" property="wmsWrkNo" /> | 
|---|
|  |  |  | <result column="system_msg" property="systemMsg" /> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </resultMap> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | <tr> | 
|---|
|  |  |  | <th>提升机</th> | 
|---|
|  |  |  | <th>工作号</th> | 
|---|
|  |  |  | <th>任务地址</th> | 
|---|
|  |  |  | <th>目的地址</th> | 
|---|
|  |  |  | <th>已完成的任务号</th> | 
|---|
|  |  |  | <th>层</th> | 
|---|
|  |  |  | <th>站点信息</th> | 
|---|
|  |  |  | <th>作业标记</th> | 
|---|
|  |  |  | <th>穿梭车号</th> | 
|---|
|  |  |  | </tr> | 
|---|
|  |  |  | </thead> | 
|---|
|  |  |  | <tbody> | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (var i=1;i<=table.length;i++){ | 
|---|
|  |  |  | var tr = tableEl.find("tr").eq(i); | 
|---|
|  |  |  | let staDiv = ""; | 
|---|
|  |  |  | table[i-1].forkLiftStaProtocols.forEach((item) => { | 
|---|
|  |  |  | let hasTray = item.hasTray ? "Y" : "N"; | 
|---|
|  |  |  | let hasCar = item.hasCar ? "Y" : "N"; | 
|---|
|  |  |  | staDiv += "<div>" + item.lev + "层,托盘:" + hasTray + ",小车:" + hasCar + "</div>" | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | setVal(tr.children("td").eq(0), table[i-1].liftNo); | 
|---|
|  |  |  | setVal(tr.children("td").eq(1), table[i-1].workNo); | 
|---|
|  |  |  | setVal(tr.children("td").eq(2), table[i-1].taskAddress); | 
|---|
|  |  |  | setVal(tr.children("td").eq(3), table[i-1].distAddress); | 
|---|
|  |  |  | setVal(tr.children("td").eq(4), table[i-1].completeTaskNo); | 
|---|
|  |  |  | setVal(tr.children("td").eq(5), table[i-1].lev); | 
|---|
|  |  |  | setVal(tr.children("td").eq(6), table[i-1].pakMk); | 
|---|
|  |  |  | setVal(tr.children("td").eq(7), table[i-1].shuttleNo); | 
|---|
|  |  |  | setVal(tr.children("td").eq(2), staDiv); | 
|---|
|  |  |  | setVal(tr.children("td").eq(3), table[i-1].pakMk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (res.code === 403){ | 
|---|
|  |  |  | window.location.href = baseUrl+"/login"; | 
|---|