src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/TransferTaskMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,7 +1,6 @@ package com.zy.asrs.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.AppAuth; import com.core.common.BaseRes; @@ -15,12 +14,10 @@ import com.zy.common.web.BaseController; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; @@ -105,25 +102,6 @@ } } //agv任务完成 @PostMapping("/toAgvTaskOver") @AppAuth(memo = "agv任务完成接口") public R getAgvTaskOver(@RequestHeader String appkey, @RequestBody TaskOverParam param, HttpServletRequest request) { auth(appkey, param, request); if (Cools.isEmpty(param)) { return R.parse(BaseRes.PARAM); } if (Cools.isEmpty(param.getStartPoint())) { return R.error("码头[wharfCode]不能为空"); } if (Cools.isEmpty(param.getStatus())) { return R.error("完成标记[status]不能为空"); } openService.getAgvTaskOver(param); return R.ok(); } //创建任务 @PostMapping("/taskCreate") @@ -189,18 +167,6 @@ return R.ok(); } //查询任务详情 @GetMapping("/queryTask") public R queryTask(@RequestHeader String appkey, @RequestParam String taskNo, HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); if (taskWrk == null) { return R.error("任务不存在"); } return R.ok().add(taskWrk); } //取放货申请 @PostMapping("/pick/and/place/v1") @@ -240,20 +206,6 @@ return openService.getAgvPickAndPlaceV2(param); } //查询任务指令集合 @GetMapping("/queryTaskCommand") public R queryTaskCommand(@RequestHeader String appkey, @RequestParam String taskNo, HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); if (taskWrk == null) { return R.error("任务不存在"); } List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo); return R.ok().add(commandInfos); } private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj)); @@ -266,103 +218,6 @@ } } //AGV请求入库码头接口 // @PostMapping("/targetWharfApply") // @AppAuth(memo = "AGV请求入库码头接口") // public R targetWharfApply(@RequestHeader String appkey, // @RequestBody WMSAndAGVInterfaceParam param, // HttpServletRequest request) throws IOException { // auth(appkey, param, request); // // if (Cools.isEmpty(param)) { // return R.error("参数为空!"); // } else if (Cools.isEmpty(param.getTaskNo())) { // return R.error("工作号为空!"); // } else if (Cools.isEmpty(param.getContainerCode())) { // return R.error("托盘编码为空!"); // } else if (Cools.isEmpty(param.getWharfSource())) { // return R.error("源码头为空!"); // } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) { // return R.error("空闲的入库码头(AGV)为空!"); // } // R r = openService.AgvToWCSToWms(param); // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , r.toString() // , true // ); // return r; // } // // //AGV请求动作接口 // @PostMapping("/agvTaskRequest") // @AppAuth(memo = "AGV请求动作接口") // public R agvTaskRequest(@RequestHeader String appkey, // @RequestBody WMSAndAGVInterfaceParam param, // HttpServletRequest request) { // auth(appkey, param, request); // if (Cools.isEmpty(param)) { // return R.error("参数为空!"); // } else if (Cools.isEmpty(param.getRequestType())) { // return R.error("请求类型为空!"); // } else if (Cools.isEmpty(param.getWharfCode())) { // return R.error("码头编号为空!"); // } // // Map<String, Integer> map = new HashMap<>(); // map.put("J-1102", 102); // map.put("J-1101", 101); // map.put("J-1103", 105); // map.put("J-1104", 106); // map.put("J-1105", 109); // map.put("J-1106", 110); // map.put("J-1107", 113); // map.put("J-1108", 114); // map.put("J-1109", 117); // map.put("J-1110", 118); // map.put("J-1111", 121); // map.put("J-1112", 122); // map.put("H-1102", 300); // map.put("H-1101", 305); // map.put("G-1102", 400); // map.put("G-1101", 405); //// StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() //// .eq("stn_desc", param.getWharfCode())); //// //// if (Cools.isEmpty(staDesc)){ //// return R.error("程序报错,未查询到站点"); //// } // if (Cools.isEmpty(map.get(param.getWharfCode()))) { // return R.error("未查询到站点"); // } // BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode())); // if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) { // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , R.ok().toString() // , true // ); // return R.ok("可入"); // } else { // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , R.error("站点状态不可入").toString() // , true // ); // return R.error("站点状态不可入"); // } // // // } //任务下发接口 @PostMapping("/outboundTaskSend") @@ -402,7 +257,7 @@ .eq("stn_no", param.getTerminalNo())); if (Cools.isEmpty(staDesc)) { map.put("Code", "0"); map.put("Msg", "出库路劲不存在!"); map.put("Msg", "出库路径不存在!"); return map; } r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo())); @@ -509,4 +364,149 @@ return R.ok(crnStatusParams); } //查询任务详情 @GetMapping("/queryTask") public R queryTask(@RequestHeader String appkey, @RequestParam String taskNo, HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); if (taskWrk == null) { return R.error("任务不存在"); } return R.ok().add(taskWrk); } //查询任务指令集合 @GetMapping("/queryTaskCommand") public R queryTaskCommand(@RequestHeader String appkey, @RequestParam String taskNo, HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); if (taskWrk == null) { return R.error("任务不存在"); } List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo); return R.ok().add(commandInfos); } //AGV请求入库码头接口 // @PostMapping("/targetWharfApply") // @AppAuth(memo = "AGV请求入库码头接口") // public R targetWharfApply(@RequestHeader String appkey, // @RequestBody WMSAndAGVInterfaceParam param, // HttpServletRequest request) throws IOException { // auth(appkey, param, request); // // if (Cools.isEmpty(param)) { // return R.error("参数为空!"); // } else if (Cools.isEmpty(param.getTaskNo())) { // return R.error("工作号为空!"); // } else if (Cools.isEmpty(param.getContainerCode())) { // return R.error("托盘编码为空!"); // } else if (Cools.isEmpty(param.getWharfSource())) { // return R.error("源码头为空!"); // } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) { // return R.error("空闲的入库码头(AGV)为空!"); // } // R r = openService.AgvToWCSToWms(param); // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , r.toString() // , true // ); // return r; // } // // //AGV请求动作接口 // @PostMapping("/agvTaskRequest") // @AppAuth(memo = "AGV请求动作接口") // public R agvTaskRequest(@RequestHeader String appkey, // @RequestBody WMSAndAGVInterfaceParam param, // HttpServletRequest request) { // auth(appkey, param, request); // if (Cools.isEmpty(param)) { // return R.error("参数为空!"); // } else if (Cools.isEmpty(param.getRequestType())) { // return R.error("请求类型为空!"); // } else if (Cools.isEmpty(param.getWharfCode())) { // return R.error("码头编号为空!"); // } // // Map<String, Integer> map = new HashMap<>(); // map.put("J-1102", 102); // map.put("J-1101", 101); // map.put("J-1103", 105); // map.put("J-1104", 106); // map.put("J-1105", 109); // map.put("J-1106", 110); // map.put("J-1107", 113); // map.put("J-1108", 114); // map.put("J-1109", 117); // map.put("J-1110", 118); // map.put("J-1111", 121); // map.put("J-1112", 122); // map.put("H-1102", 300); // map.put("H-1101", 305); // map.put("G-1102", 400); // map.put("G-1101", 405); //// StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() //// .eq("stn_desc", param.getWharfCode())); //// //// if (Cools.isEmpty(staDesc)){ //// return R.error("程序报错,未查询到站点"); //// } // if (Cools.isEmpty(map.get(param.getWharfCode()))) { // return R.error("未查询到站点"); // } // BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode())); // if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) { // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , R.ok().toString() // , true // ); // return R.ok("可入"); // } else { // apiLogService.save("AGV请求入库码头接口" // , request.getRemoteAddr() + request.getRequestURI() // , appkey // , request.getRemoteAddr() // , JSON.toJSONString(param) // , R.error("站点状态不可入").toString() // , true // ); // return R.error("站点状态不可入"); // } // // // } // @PostMapping("/toAgvTaskOver") // @AppAuth(memo = "agv任务完成接口") // public R getAgvTaskOver(@RequestHeader String appkey, // @RequestBody TaskOverParam param, // HttpServletRequest request) { // auth(appkey, param, request); // if (Cools.isEmpty(param)) { // return R.parse(BaseRes.PARAM); // } // if (Cools.isEmpty(param.getStartPoint())) { // return R.error("码头[wharfCode]不能为空"); // } // if (Cools.isEmpty(param.getStatus())) { // return R.error("完成标记[status]不能为空"); // } // openService.getAgvTaskOver(param); // return R.ok(); // } } src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -17,6 +17,11 @@ */ private Integer startPoint; /** * 高度 */ private Integer height; /** * 1放。0取 */ private int type; src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -39,4 +39,6 @@ List<LocMast> selectLocByLev(@Param("lev") Integer lev); } src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
@@ -9,6 +9,8 @@ @Repository public interface TransferTaskMapper extends BaseMapper<TransferTask> { TransferTask selectByStartPoint(Integer startPoint); TransferTask selectByEndPoint(Integer endPoint); } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,12 +7,18 @@ import com.core.exception.CoolException; import com.zy.asrs.controller.CrnController; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; import com.zy.asrs.entity.wms.StorageEscalationParam; import com.zy.asrs.mapper.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.StaDescMapper; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.utils.Utils; import com.zy.common.service.CommonService; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -29,6 +35,7 @@ import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -36,6 +43,7 @@ import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Random; /** * 立体仓库WCS系统主流程业务 @@ -55,6 +63,8 @@ @Autowired private LocMastService locMastService; @Autowired private LocDetlService locDetlService; @Autowired private BasCrnpService basCrnpService; @Autowired private BasDevpService basDevpService; @@ -66,10 +76,9 @@ private TaskWrkMapper taskWrkMapper; @Autowired private DevpTaskMapper devpTaskMapper; @Autowired private TaskWrkService taskWrkService; @Autowired private CommonService commonService; @Autowired private StaDescMapper staDescMapper; @@ -87,6 +96,22 @@ @Autowired private TransferTaskService transferTaskService; @Autowired private WrkMastService wrkMastService; @Autowired private WrkDetlService wrkDetlService; @Value("${loc-move.enable}") private boolean enable; @Value("${loc-move.crn1}") private boolean crn1; @Value("${loc-move.crn2}") private boolean crn2; @Value("${loc-move.crn3}") private boolean crn3; public void generateStoreWrkFile() throws IOException, InterruptedException { try { @@ -838,7 +863,7 @@ try { // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { if (devp.getId() == 2){ if (devp.getId() == 2) { continue; } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); @@ -1003,23 +1028,120 @@ /** * 跑库程序 */ public void debug() { //首先库位有一个在库的库位 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F")); if (locMast != null) { // 再生成一个移库任务 LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1)); public void debug(String sts, Long modiUser, Integer loc_type1) { if (!enable) { return; } List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>()); if (basCrnps.isEmpty()) { return; } for (BasCrnp basCrnp : basCrnps) { if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) { continue; } List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11)); if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) { int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser)); LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser)); if (locMastStart == null || i > 1) { continue; } List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "O") .eq("crn_no", basCrnp.getCrnNo()) .eq("loc_type1", locMastStart.getLocType1()) .ne("modi_user", 77)); if (Cools.isEmpty(locMasts)) { continue; } Random random = new Random(); LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size())); ReturnT<String> result = locMove(locMastStart, locMastEnd, basCrnp.getCrnNo()); if (!result.isSuccess()) { log.error("处理失败"); } } } } public void locMove(LocMast sourceLoc, LocMast locNo, Long userId) { List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc.getLocNo())); LocMast loc = locMastService.selectById(locNo); if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { throw new CoolException("移转库位属于不同堆垛机"); } Date now = new Date(); // 获取工作号 int workNo = commonService.getWorkNo(WorkNoType.PICK.type); // 保存工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(11); // 入出库状态: 11.库格移载 wrkMast.setIoPri(10D); wrkMast.setCrnNo(sourceLoc.getCrnNo()); wrkMast.setSourceLocNo(sourceLoc.getLocNo()); // 源库位 wrkMast.setLocNo(locNo.getLocNo()); // 目标库位 wrkMast.setFullPlt(Cools.isEmpty(locDetls) ? "N" : "Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 空板 wrkMast.setBarcode(sourceLoc.getBarcode()); // 托盘码 wrkMast.setLinkMis("N"); wrkMast.setAppeUser(userId); wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("保存工作档失败"); } // 工作档明细保存 for (LocDetl locDetl : locDetls) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(locDetl); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(now); wrkDetl.setAnfme(locDetl.getAnfme()); wrkDetl.setAppeTime(now); wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("保存工作档明细失败"); } } // 修改源库位状态 if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { sourceLoc.setLocSts("R"); // R.出库预约 sourceLoc.setModiUser(userId); sourceLoc.setModiTime(now); if (!locMastService.updateById(sourceLoc)) { throw new CoolException("更新源库位状态失败"); } } else { throw new CoolException("源库位出库失败,状态:" + sourceLoc.getLocSts$()); } // 修改目标库位状态 if (loc.getLocSts().equals("O")) { loc.setLocSts("S"); // S.入库预约 loc.setModiTime(now); loc.setModiUser(userId); if (!locMastService.updateById(loc)) { throw new CoolException("更新目标库位状态失败"); } } else { throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$()); } } /** * 转移任务下发 */ public void transferTaskStart() { for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) { try { // 获取入库站信息 @@ -1082,7 +1204,7 @@ continue; } log.info("转移任务完成:transferTask:" + JSON.toJSONString(transferTask)); transferTask.setStatus(5); transferTask.setStatus(3); transferTaskService.updateById(transferTask); } } catch (Exception e) { src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -270,7 +270,11 @@ if (Cools.isEmpty(basDevp)) { return R.error("站点号有误" + param.getStartPoint()); } if (Cools.isEmpty(param.getHeight())) { return R.error("高度不能为空" + param.getStartPoint()); } if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) { basDevp.setInreq2(param.getHeight().toString()); return R.ok(); } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) { return R.ok(); src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
@@ -14,11 +14,11 @@ @Override public TransferTask selectByStartPoint(Integer startPoint) { return null; return this.baseMapper.selectByStartPoint(startPoint); } @Override public TransferTask selectByEndPoint(Integer endPoint) { return null; return this.baseMapper.selectByEndPoint(endPoint); } } src/main/java/com/zy/core/MainProcess.java
@@ -40,7 +40,10 @@ continue; } // 跑库程序 //mainService.debug(); //mainService.debug("F"); mainService.transferTaskStart(); mainService.transferTaskEnd(); // 入库 ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,20 +121,6 @@ this.slave = slave; } public static void main(String[] args) { ArrayList<Integer> staNos = staNos1; System.out.println(staNos.indexOf(129)); System.out.println(staNos.size()); for (int i = 0; i < staNos.size(); i++) { // System.out.println(i*2); // System.out.println(i*2 + 200); // System.out.println(i); } int index = staNos.indexOf(128); System.out.println(index * 2); System.out.println(index * 2 + 200); } private ArrayList<Integer> getStaNo() { switch (slave.getId()) { @@ -586,25 +572,5 @@ siemensS7Net.ConnectClose(); } // public static void main(String[] args) throws Exception { // DevpSlave slave = new DevpSlave(); // slave.setIp("192.168.2.125"); // SiemensDevpThread devpThread = new SiemensDevpThread(slave); // devpThread.connect(); // devpThread.read(); // // 写 // StaProtocol staProtocol = devpThread.getStation().get(1); // staProtocol.setWorkNo((short) 232); // staProtocol.setStaNo((short) 6); // staProtocol.setAutoing(true); // staProtocol.setEmptyMk(true); // staProtocol.setInEnable(true); // devpThread.write(staProtocol); // System.out.println("----------------------------------------"); // // 读 // devpThread.read(); // System.out.println(JSON.toJSONString(devpThread.station)); // // } } src/main/resources/application.yml
@@ -60,3 +60,9 @@ successCode: 200 msg: msg data: data loc-move: enable: false crn1: false crn2: false crn3: false crn4: false src/main/resources/mapper/TransferTaskMapper.xml
@@ -4,4 +4,12 @@ <select id="selectByStartPoint" resultType="com.zy.asrs.entity.TransferTask"> select top 1 * from wcs_transfer_task where start_point = #{startPoint} and status = 1 </select> <select id="selectByEndPoint" resultType="com.zy.asrs.entity.TransferTask"> select top 1 * from wcs_transfer_task where targetPoint = #{endPoint} and status = 2 </select> </mapper>