| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | Administrator | ![]() |
| 2025-05-15 | Administrator | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| 2025-05-15 | pang.jiabao | ![]() |
| src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/domain/param/ApplyInDevpDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/OpenService.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/task/TaskReportScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/license.lic | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/wcs和wms接口(2).docx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/wms/js/realtimeWatch/pipeline.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -2,15 +2,14 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.AppAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.domain.param.ApplyInDevpDto; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CrnStatusParam; import com.zy.asrs.entity.param.TaskCreateParam; import com.zy.asrs.entity.param.TaskOverParam; import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import com.zy.asrs.service.*; import com.zy.common.web.BaseController; @@ -20,11 +19,8 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @RestController @@ -55,55 +51,6 @@ private LocMastService locMastService; @Autowired private BasCrnErrorService basCrnErrorService; public static <T> List<T> convertListMapToListObject(List<HashMap<String, Object>> listMap, Class<T> clazz) throws Exception { List<T> list = new ArrayList<>(); for (Map<String, Object> map : listMap) { T obj = clazz.getDeclaredConstructor().newInstance(); for (Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); try { Field field = clazz.getDeclaredField(key); field.setAccessible(true); setFieldValue(obj, field, value); } catch (NoSuchFieldException e) { System.out.println("No such field: " + key + " in class " + clazz.getName()); } } list.add(obj); } return list; } private static void setFieldValue(Object obj, Field field, Object value) throws IllegalAccessException { Class<?> fieldType = field.getType(); if (fieldType.isAssignableFrom(value.getClass())) { field.set(obj, value); } else if (fieldType == int.class || fieldType == Integer.class) { field.set(obj, ((Number) value).intValue()); } else if (fieldType == long.class || fieldType == Long.class) { field.set(obj, ((Number) value).longValue()); } else if (fieldType == double.class || fieldType == Double.class) { field.set(obj, ((Number) value).doubleValue()); } else if (fieldType == float.class || fieldType == Float.class) { field.set(obj, ((Number) value).floatValue()); } else if (fieldType == boolean.class || fieldType == Boolean.class) { field.set(obj, (Boolean) value); } else if (fieldType == String.class) { field.set(obj, String.valueOf(value)); } else { System.out.println("Unsupported field type: " + fieldType.getName()); } } //åå»ºä»»å¡ @PostMapping("/taskCreate") @@ -247,45 +194,6 @@ return R.ok(crnStatusParams); } //åæ¾è´§ç³è¯· @PostMapping("/pick/and/place/v1") @AppAuth(memo = "agvåæ¾è´§ç³è¯·") public R getAgvPickAndPlaceV1(@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("ç 头[staNo]ä¸è½ä¸ºç©º"); } if (Cools.isEmpty(param.getType())) { return R.error("ç±»å[type]ä¸è½ä¸ºç©º"); } return openService.getAgvPickAndPlaceV1(param); } //åæ¾è´§å®æåé¦ @PostMapping("/pick/and/place/v2") @AppAuth(memo = "agvåæ¾è´§å®æåé¦") public R getAgvPickAndPlaceV2(@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("ç 头[staNo]ä¸è½ä¸ºç©º"); } if (Cools.isEmpty(param.getType())) { return R.error("ç±»å[type]ä¸è½ä¸ºç©º"); } return openService.getAgvPickAndPlaceV2(param); } private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}æ¥å£è¢«è®¿é®ï¼appkey:{}ï¼è¯·æ±æ°æ®ï¼{}", request.getServletPath(), appkey, JSON.toJSONString(obj)); request.setAttribute("cache", obj); @@ -314,6 +222,7 @@ @GetMapping("/queryTaskCommand") public R queryTaskCommand(@RequestHeader String appkey, @RequestParam String taskNo, HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); @@ -325,188 +234,13 @@ return R.ok().add(commandInfos); } // å¤ç½®è¾é线wmséç¥è¾é线æµå¨,䏿¥æ¶å䏿¥ç«ç¹å³å¯ @PostMapping("/applyInDevp") public R applyInDevp(@RequestHeader String appkey, @RequestBody ApplyInDevpDto param, HttpServletRequest request) { auth(appkey, param, request); return openService.applyInDevp(param); } //ä»»å¡ä¸åæ¥å£ // @PostMapping("/outboundTaskSend") // @Transactional // public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) { // HashMap<String, Object> map = new HashMap<>(); // for (CarryParam param : params) { // if (Cools.isEmpty(param)) { // map.put("Code", "0"); // map.put("Msg", "åæ°ä¸ºç©ºï¼"); // return map; // } else if (Cools.isEmpty(param.getTaskNo())) { // map.put("Code", "0"); // map.put("Msg", "ä»»å¡å·ä¸ºç©ºï¼"); // return map; // } else if (Cools.isEmpty(param.getStereoscopicTaskType())) { // map.put("Code", "0"); // map.put("Msg", "ä»»å¡ç±»å为空ï¼"); // return map; // } // String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo()); // param.setStartPoint(fusion); // LocMast locMast = locMastService.selectByLocNo(param.getStartPoint()); // if (Cools.isEmpty(locMast)) { // map.put("Code", "0"); // map.put("Msg", "åå§åºä½æ æ³æ¾å°ï¼"); // return map; // } // // HashMap<String, Object> r = new HashMap<>(); // // if (param.getStereoscopicTaskType() == 2) { // //åºåºä»»å¡å建 // StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() // .eq("type_no", 2) // .eq("crn_no", locMast.getCrnNo()) // .eq("stn_no", param.getTerminalNo())); // if (Cools.isEmpty(staDesc)) { // map.put("Code", "0"); // map.put("Msg", "åºåºè·¯å¾ä¸åå¨ï¼"); // return map; // } // r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo())); // if (r.get("Code").equals("0")) { // return r; // } // } else if (param.getStereoscopicTaskType() == 3) { // String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo()); // param.setTerminalNo(fusion1); // //ç§»åºä»»å¡å建 // r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo())); // if (r.get("Code").equals("0")) { // return r; // } // } // apiLogService.save("Wmsä»»å¡ä¸åæ¥å£" // , request.getRemoteAddr() + request.getRequestURI() // , "" // , request.getRemoteAddr() // , JSON.toJSONString(param) // , r.toString() // , true // ); // } // map.put("Code", "1"); // map.put("Msg", "ok"); // return map; // } //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/domain/param/ApplyInDevpDto.java
New file @@ -0,0 +1,28 @@ package com.zy.asrs.domain.param; import lombok.Data; /** * @author pang.jiabao * @description éç¥è¾é线æµå¨ * @createDate 2025/5/15 14:27 */ @Data public class ApplyInDevpDto { /** * æºç«ç¹ */ private Integer sourceSite; /** * ç®æ ç«ç¹ */ private Integer targetSite; /** * 0:1.6, 1:1.8, 2:2.4 */ private Integer flag; } src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,11 +1,9 @@ package com.zy.asrs.service; import com.core.common.R; import com.zy.asrs.domain.param.ApplyInDevpDto; import com.zy.asrs.entity.param.TaskCreateParam; import com.zy.asrs.entity.param.TaskOverParam; import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import java.io.IOException; import java.util.HashMap; public interface OpenService { @@ -13,11 +11,8 @@ //åå»ºä»»å¡ HashMap<String, Object> taskCreate(TaskCreateParam param); R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException; void getAgvTaskOver(TaskOverParam param); R getAgvPickAndPlaceV1(TaskOverParam param); R getAgvPickAndPlaceV2(TaskOverParam param); /** * å¤ç½®è¾é线wmséç¥è¾é线æµå¨ */ R applyInDevp(ApplyInDevpDto param); } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -625,6 +625,7 @@ //æ´æ°åºä½ç¶æ LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); locMast.setLocSts("F");//F.å¨åº locMast.setStatus("1"); locMast.setBarcode(taskWrk.getBarcode());//æçç locMast.setModiTime(new Date()); locMast.setModiUser(9999L); src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,25 +1,22 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.domain.param.ApplyInDevpDto; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.param.TaskCreateParam; import com.zy.asrs.entity.param.TaskOverParam; import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; @@ -27,22 +24,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; import java.util.*; import java.util.Date; import java.util.HashMap; @Service public class OpenServiceImpl implements OpenService { public ArrayList<String> wharfCode1 = new ArrayList<String>() {{ add("J-1101"); add("J-1103"); add("J-1105"); add("J-1107"); add("J-1109"); add("J-1111"); add("H-1101"); add("G-1101"); }}; @Autowired private TaskWrkService taskWrkService; @Autowired @@ -73,7 +60,17 @@ Date now = new Date(); taskWrk = new TaskWrk(); LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getStartPoint())); int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//è·åå ¥åºå·¥ä½å· if (locMast == null) { map.put("Code", "0"); map.put("Msg", param.getStartPoint() + "åºä½å·æè¯¯"); return map; } int workNoType = WorkNoType.PAKOUT.type; // 2ï¼3å·å åæºåºåºï¼éè¦éè¿æ¡ç åºå大尿çï¼16å¼å¤´å°æçï¼18å¼å¤´å¤§æçï¼ä»»å¡å·3001-6000ä¸ºå°æç if (param.getIoType() == 2 && (locMast.getCrnNo() == 3 || locMast.getCrnNo() == 2) && locMast.getBarcode().startsWith("16")){ workNoType = WorkNoType.PICK.type; } int workNo1 = commonService.getWorkNo(workNoType);//è·åå ¥åºå·¥ä½å· taskWrk.setTaskNo(param.getTaskNo());//ä»»å¡å· taskWrk.setWrkNo(workNo1); taskWrk.setStatus(TaskStatusType.RECEIVE.id);//ä»»å¡ç¶æï¼æ¥æ¶ @@ -121,251 +118,27 @@ } @Override public R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException { ToWmsDTO toWmsDTO = new ToWmsDTO(); Map<String, Object> map = new HashMap<>(); map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2"); List<Integer> list = new ArrayList<>(); if (param.getWharfSource().contains("J")) { list = getInEnableRoadway(); public R applyInDevp(ApplyInDevpDto param) { Integer sourceSite = param.getSourceSite(); BasDevp basDevp = basDevpService.selectById(sourceSite); if (basDevp == null) { return R.error("æºç«ç¹ä¸åå¨:" + param); } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); StaProtocol staProtocol = devpThread.getStation().get(sourceSite); if (staProtocol == null) { return R.parse(sourceSite + "线ç¨ä¸ºç©º!"); } else { list = getInEnableRoadway2(); staProtocol = staProtocol.clone(); } //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); toWmsDTO.setWarehouseId("1688469798893297665"); toWmsDTO.setContainerCode(param.getContainerCode()); toWmsDTO.setApplyType("TUNNEL"); toWmsDTO.setWharfSource(null); toWmsDTO.setCanInboundTunnels(list); String response = null; try { response = new HttpHandler.Builder() .setHeaders(map) .setUri(wmsUrl) .setPath("wcsManager/wcsInterface/inboundTaskApply") .setJson(JSON.toJSONString(toWmsDTO)) .build() .doPost(); } catch (Exception e) { return R.error("wmsè¿æ¥å¤±è´¥" + e.getMessage()); } JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wms请æ±å ¥åºç 头æ¥å£" , wmsUrl + "wcsManager/wcsInterface/inboundTaskApply" , null , "127.0.0.1" , JSON.toJSONString(toWmsDTO) , response , true ); if (jsonObject.getInteger("code").equals(200)) { //è§£æ List<WMSAndAGVInterfaceParam> params = new ArrayList<>(); params.add(param); WMSAndAGVInterfaceParam data = JSONObject.parseObject(jsonObject.get("data").toString(), WMSAndAGVInterfaceParam.class); String msg = null; try { taskCreate(new TaskCreateParam(data)); } catch (Exception e) { msg = e.getMessage(); } if (msg != null) { return R.error(msg); } Map<String, String> map1 = new HashMap<>(); StaDesc staDesc = new StaDesc(); if (param.getWharfSource().contains("J")) { staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("crn_no", data.getTaskTunnel()) .eq("type_no", 1) .lt("stn_no", 200)); } else if (param.getWharfSource().contains("H")) { staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("crn_no", data.getTaskTunnel()) .eq("type_no", 1) .lt("stn_no", 400) .gt("stn_no", 200)); } else { staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("crn_no", data.getTaskTunnel()) .eq("type_no", 1) .lt("stn_no", 500) .ge("stn_no", 400)); } map1.put("taskTunnel", staDesc.getStnDesc()); //map1.put("taskTunnel", "J-1104"); return R.ok(map1); } return R.error((String) jsonObject.get("msg")); } @Override public void getAgvTaskOver(TaskOverParam param) { // æ ¹æ®è¾é线plcéå for (DevpSlave devp : slaveProperties.getDevp()) { StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("stn_desc", param.getStartPoint())); if (Cools.isEmpty(staDesc)) { throw new RuntimeException("æªæ¥è¯¢å°ç«ç¹ä¿¡æ¯"); } // è·åå ¥åºç«ä¿¡æ¯ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(staDesc.getStnNo()); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } Short workNo = staProtocol.getWorkNo(); if (wharfCode1.contains(param.getStartPoint())) { if (!staProtocol.isLoading() && !staProtocol.isCar() && staProtocol.getWorkNo() > 0) { //AGVåºåºå®æä»¥å staProtocol.setWorkNo((short) 0); staProtocol.setStaNo((short) 0); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); if (result) { } else { throw new RuntimeException("agvè¿å宿åï¼å½ä»¤ä¸å失败"); } } } else { for (DevpSlave.Sta inSta : devp.getInSta()) { if (inSta.getBackSta().equals(staDesc.getStnNo())) { if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0) { //AGVå ¥åºå®æä»¥å staProtocol.setWorkNo((short) 9999); staProtocol.setStaNo(inSta.getStaNo().shortValue()); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); if (result) { } else { throw new RuntimeException("agvè¿å宿åï¼å½ä»¤ä¸å失败"); } } } } } } } @Override public R getAgvPickAndPlaceV1(TaskOverParam param) { BasDevp basDevp = basDevpService.selectById(param.getStartPoint()); 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(); staProtocol.setWorkNo((short) commonService.getWorkNo(param.getFlag())); staProtocol.setStaNo(param.getTargetSite().shortValue()); basDevpService.updateById(basDevp); boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol)); if (result) { return R.ok("æå"); } else { return R.error("ä¸å 许"); return R.error("ä¸åå½ä»¤å¤±è´¥:" + param); } } @Override public R getAgvPickAndPlaceV2(TaskOverParam param) { BasDevp basDevp = basDevpService.selectById(param.getStartPoint()); if (Cools.isEmpty(basDevp)) { return R.error("ç«ç¹å·æè¯¯" + param.getStartPoint()); } if (param.getType() == 0) { basDevp.setAgvTargetPick(1); basDevpService.updateById(basDevp); return R.ok(); } else if (param.getType() == 1) { basDevp.setAgvTargetPlace(1); basDevpService.updateById(basDevp); return R.ok(); } else { return R.error("请æ±ç±»åå¼å¸¸" + param.getType()); } } public List<Integer> getInEnableRoadway() { int[] roadway = null; List<Integer> list = new ArrayList<>(); Map<Integer, Integer> map = new HashMap<>(); map.put(103, 1); map.put(107, 2); map.put(111, 3); map.put(115, 4); map.put(119, 5); map.put(123, 6); //put(301,7); // æ ¹æ®è¾é线plcéå for (DevpSlave devp : slaveProperties.getDevp()) { // éåå ¥åºå£ for (DevpSlave.Sta inSta : devp.getInSta()) { // è·åå ¥åºç«ä¿¡æ¯ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta()); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } Short workNo = staProtocol.getWorkNo(); if (workNo == 0 && !staProtocol.isLoading()) { if (Cools.isEmpty(map.get(inSta.getStaNo()))) { continue; } list.add(map.get(inSta.getStaNo())); } } } //roadway = list.stream().mapToInt(Integer::intValue).toArray(); return list; } public List<Integer> getInEnableRoadway2() { int[] roadway = null; List<Integer> list = new ArrayList<>(); Map<Integer, Integer> map = new HashMap<>(); map.put(205, 1); map.put(211, 2); map.put(217, 3); map.put(223, 4); map.put(229, 5); map.put(235, 6); //put(301,7); // æ ¹æ®è¾é线plcéå for (DevpSlave devp : slaveProperties.getDevp()) { // éåå ¥åºå£ for (DevpSlave.Sta inSta : devp.getInSta()) { // è·åå ¥åºç«ä¿¡æ¯ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta()); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } Short workNo = staProtocol.getWorkNo(); if (workNo == 0 && !staProtocol.isLoading()) { if (Cools.isEmpty(map.get(inSta.getStaNo()))) { continue; } list.add(map.get(inSta.getStaNo())); } } } //roadway = list.stream().mapToInt(Integer::intValue).toArray(); return list; } } src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -13,15 +13,19 @@ import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.TaskWrkReport; import com.zy.asrs.entity.TaskWrkReportLog; import com.zy.asrs.entity.param.TaskCreateParam; import com.zy.asrs.entity.wms.WmsFeedback; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.TaskWrkReportLogService; import com.zy.asrs.service.TaskWrkReportService; import com.zy.asrs.service.*; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -30,6 +34,7 @@ import javax.annotation.Resource; import java.io.IOException; import java.util.ArrayList; import java.util.Date; /** @@ -55,6 +60,9 @@ @Value("${wms.taskExecCallback}") private String TaskExecCallback; @Value("${wms.completeDevpTask}") private String completeDevpTask; @Resource private TaskWrkMapper taskWrkMapper; @@ -64,6 +72,13 @@ @Resource private CommonService commonService; @Resource private OpenService openService; // çå¬å¤ç½®è¾é线 public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308); }}; @Scheduled(cron = "0/5 * * * * ? ") public synchronized void execute() throws IOException { @@ -116,6 +131,7 @@ } // ç«ä½åºè·åºç¨åºï¼ç产å¿ç¨ // @Scheduled(cron = "0/5 * * * * ? ") public synchronized void autoMoveLoc() { int flag = 1; // 1.è·23å·å åæºå7åï¼1å·å åæº1ï¼9å± 2.è·23å·å åæºå8-12åï¼1å·å åæº2-8å± @@ -126,15 +142,31 @@ // è·åå åæºå··éå¨åºåºä½ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i)); if (locMast != null) { // 50次åºä¸æ¬¡åº int count1 = locMastService.selectCount(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", 1)); if (count1 % 25 == 0) { TaskCreateParam taskCreateParam = new TaskCreateParam(); taskCreateParam.setTaskNo(locMast.getLocNo()+"0"); taskCreateParam.setStartPoint(locMast.getLocNo()); taskCreateParam.setIoType(2); taskCreateParam.setTaskPriority(11); taskCreateParam.setBarcode(locMast.getBarcode()); taskCreateParam.setTargetPoint(i == 1 ? "114" : i == 2 ? "111" : "105"); openService.taskCreate(taskCreateParam); return; } // è·åä¸ä¸ªç§»å¨çç®æ åºä½ LocMast locMast1; if (flag == 1) { if (i == 1) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").in("lev1",1,9)); } else { .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1")); } else if(i==2) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").le("bay1",7)); .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7)); }else { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7)); } } else { @@ -156,6 +188,7 @@ taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type)); taskWrk.setStatus(TaskStatusType.RECEIVE.id);//ä»»å¡ç¶æï¼æ¥æ¶ taskWrk.setCreateTime(now); taskWrk.setAssignTime(now); taskWrk.setIoType(3);//ä»»å¡ç±»å taskWrk.setIoPri(11);//ä¼å 级 taskWrk.setBarcode(locMast.getBarcode());//æ¡ç @@ -172,6 +205,62 @@ } } // çå¬å¤ç½®è¾éçº¿ï¼æä»»å¡å·åå¯åºä¿¡å·ï¼ä¸æ¥æåæ¸ é¤ä»»å¡å·ç®æ ç« @Scheduled(cron = "0/3 * * * * ? ") public synchronized void completeDevpTask() { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); if (devpThread != null) { for(Integer site : staNos) { StaProtocol staProtocol = devpThread.getStation().get(site); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } if (staProtocol.isOutEnable() && staProtocol.getWorkNo() != 0 && staProtocol.isAutoing() && staProtocol.isLoading()) { String response = ""; boolean bool = false; JSONObject request = new JSONObject(); request.put("site",site); try { log.info("å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wms={}", site); response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath(completeDevpTask) .setJson(request.toJSONString()) .build() .doPost(); if (!Cools.isEmpty(response)) { JSONObject jsonObject = JSON.parseObject(response); if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) { bool = true; staProtocol.setWorkNo((short) 0); staProtocol.setStaNo((short) 0); boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol)); if (result) { log.info("å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wms,æ¸ é¤è¾é线ç«ç¹{}å½ä»¤ä¸åæåï¼",site); } else { log.error("å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wms,æ¸ é¤è¾é线ç«ç¹{}å½ä»¤ä¸å失败ï¼" ,site); } } } } catch (Exception e) { log.error("å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wmså¼å¸¸{},è¿åå¼={}", request, response); } finally { apiLogService.save("å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wms" , wmsUrl + completeDevpTask , null , "127.0.0.1" , request.toJSONString() , response , bool ); } } } } } private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { WmsFeedback feedback = new WmsFeedback(); feedback.setBarcode(taskWrk.getBarcode()); src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -41,13 +41,19 @@ public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);add(110); add(111);add(112);add(113);add(114);add(115);add(116); add(201);add(202);add(203);add(205);add(206);add(207);add(210);add(211);add(212); add(111);add(112);add(113);add(114);add(115);add(116); // ä¾§é¢ä» index 16å¼å§ é¿åº¦12 add(201);add(202);add(203);add(204);add(205);add(206);add(207);add(208);add(209);add(210);add(211);add(212); }}; public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308); }}; // ä¾§é¢ä¸ä¸ªæ¡ç æ«æç« public static final ArrayList<Integer> barcodeSite = new ArrayList<Integer>() {{ add(202);add(206);add(211); }}; /** * å ¥åºåºæ¨¡å¼ * 0ï¼æªç¥ @@ -180,10 +186,10 @@ ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); // 读货ä½ä¿¡æ¯åé¦ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8)); // 读æ£é¢è´§ä½ä¿¡æ¯åé¦ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (16 * 8)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { for (int i = 0; i < 16; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { @@ -211,68 +217,160 @@ } } if (slave.getId() == 1) { //Thread.sleep(200); // è¯»åæ¡ç OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (staNoSize*8)); if (result2.IsSuccess) { for (int i =0; i <staNoSize; i++) { int barcodeId = 0; switch (i){ case 1:barcodeId=1;break; case 4:barcodeId=2;break; case 7:barcodeId=3;break; case 10:barcodeId=4;break; case 13:barcodeId=5;break; default: } if (barcodeId != 0) { String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8"); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId); if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } // 读侧é¢è´§ä½ä¿¡æ¯åé¦ OperateResultExOne<byte[]> resultCm = siemensS7Net.Read("DB101.800", (short) (12 * 8)); if (resultCm.IsSuccess) { for (int i = 16; i < staNoSize; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(resultCm.Content, (i-16) * 8)); // å·¥ä½å· staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(resultCm.Content, (i-16) * 8 + 4)); // ç®æ ç« boolean[] status = siemensS7Net.getByteTransform().TransBool(resultCm.Content, (i-16) * 8 + 6, 2); staProtocol.setAutoing(status[0]); // èªå¨ staProtocol.setLoading(status[1]); // æç© staProtocol.setInEnable(status[2]); // å¯å ¥ staProtocol.setOutEnable(status[3]);// å¯åº staProtocol.setEmptyMk(status[4]); // 空æ¿ä¿¡å· staProtocol.setFullPlt(status[5]); // 满æç staProtocol.setHigh(status[6]); // é«åºä½ staProtocol.setLow(status[7]); // ä½åºä½ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } // 读åå¤å½¢æ£æµ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (staNoSize * 8)); if (resultErr1.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· StaProtocol staProtocol = station.get(siteId); boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1); staProtocol.setFrontErr(status1[0]); staProtocol.setBackErr(status1[1]); staProtocol.setHighErr(status1[2]); staProtocol.setLeftErr(status1[3]); staProtocol.setRightErr(status1[4]); staProtocol.setWeightErr(status1[5]); staProtocol.setBarcodeErr(status1[6]); } } OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); if (resultErr.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setBreakerErr(status[0]); staProtocol.setInfraredErr(status[1]); staProtocol.setOutTimeErr(status[2]); staProtocol.setSeizeSeatErr(status[3]); staProtocol.setWrkYgoodsN(status[4]); staProtocol.setInverterErr(status[5]); staProtocol.setContactErr(status[6]); staProtocol.setUpcontactErr(status[7]); } } } // è¯»åæ£é¢æ¡ç OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8)); if (result2.IsSuccess) { for (int i = 0; i < 16; i++) { int barcodeId = 0; switch (i) { case 1: barcodeId = 1; break; case 4: barcodeId = 2; break; case 7: barcodeId = 3; break; case 10: barcodeId = 4; break; case 13: barcodeId = 5; break; default: } if (barcodeId != 0) { String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8"); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId); if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } } } // 读å侧颿¡ç OperateResultExOne<byte[]> resultCM2 = siemensS7Net.Read("DB101.2574", (short) (3 * 4 * 6)); if (resultCM2.IsSuccess) { for (int i= 8; i >= 6; i --) { BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i); List<String> barcodes = new ArrayList<>(); for(int j = 0; j < 4; j ++) { String barcode1 = siemensS7Net.getByteTransform().TransString(resultCM2.Content, (8-i) * 24 + j *6, 6, "UTF-8"); if (!Cools.isEmpty(barcode1)&&!barcode1.equals("000000")&& !barcode1.equals("NoRead")) { barcodes.add(barcode1); } } String barcode = String.join("#",barcodes); if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } } // è¯»åæ£é¢å¤å½¢æ£æµ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (16 * 8)); if (resultErr1.IsSuccess) { for (int i = 0; i < 16; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· StaProtocol staProtocol = station.get(siteId); boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1); staProtocol.setFrontErr(status1[0]); staProtocol.setBackErr(status1[1]); staProtocol.setHighErr(status1[2]); staProtocol.setLeftErr(status1[3]); staProtocol.setRightErr(status1[4]); staProtocol.setWeightErr(status1[5]); staProtocol.setBarcodeErr(status1[6]); } } // 读åä¾§é¢å¤å½¢æ£æµ OperateResultExOne<byte[]> resultErrCM1 = siemensS7Net.Read("DB101.1336", (short) (12 * 8)); if (resultErrCM1.IsSuccess) { for (int i = 16; i < staNoSize; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· StaProtocol staProtocol = station.get(siteId); boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErrCM1.Content, (i-16) * 2, 1); staProtocol.setFrontErr(status1[0]); staProtocol.setBackErr(status1[1]); staProtocol.setHighErr(status1[2]); staProtocol.setLeftErr(status1[3]); staProtocol.setRightErr(status1[4]); staProtocol.setWeightErr(status1[5]); staProtocol.setBarcodeErr(status1[6]); } } // 读æ£é¢æ éåé¦ OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (16 * 4)); if (resultErr.IsSuccess) { for (int i = 0; i < 16; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setBreakerErr(status[0]); staProtocol.setInfraredErr(status[1]); staProtocol.setOutTimeErr(status[2]); staProtocol.setSeizeSeatErr(status[3]); staProtocol.setWrkYgoodsN(status[4]); staProtocol.setInverterErr(status[5]); staProtocol.setContactErr(status[6]); staProtocol.setUpcontactErr(status[7]); } } // è¯»ä¾§é¢æ éåé¦ OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 4)); if (resultErrCM.IsSuccess) { for (int i = 16; i < staNoSize; i++) { Integer siteId = staNos.get(i); // ç«ç¹ç¼å· boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i-16) * 4, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setBreakerErr(status[0]); staProtocol.setInfraredErr(status[1]); staProtocol.setOutTimeErr(status[2]); staProtocol.setSeizeSeatErr(status[3]); staProtocol.setWrkYgoodsN(status[4]); staProtocol.setInverterErr(status[5]); staProtocol.setContactErr(status[6]); staProtocol.setUpcontactErr(status[7]); } } if (result.IsSuccess) { @@ -314,6 +412,17 @@ ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); // ä»»å¡å·å°å String workNoAddress; // ç®æ ç«å°å String staNoAddress; if (index < 16) { workNoAddress = "DB100." + index * 4; staNoAddress = "DB100." + (index * 4 + 2); } else { workNoAddress = "DB100." + (400 + (index-16) * 4); staNoAddress = "DB100." + (400 + (index-16) * 4 + 2); } OperateResult writeResult; //ä»»å¡ä¸åæ¬¡æ° @@ -321,8 +430,8 @@ //ä»»å¡ä¸åæåæ è¯ boolean writeFlag = false; while (writeCount < 5) { OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo()); // å·¥ä½å· OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo()); // ç®æ ç« OperateResult writeResult1 = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo()); // å·¥ä½å· OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo()); // ç®æ ç« if (writeResult1.IsSuccess && writeResult2.IsSuccess) { Thread.sleep(200); OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2); src/main/resources/application.yml
@@ -62,6 +62,8 @@ movePath: api/InterFace/get_InterFace_TestStorage # 任塿§è¡ç¶æä¸æ¥ executionStatusReport: /executionStatusReport # å¤ç½®è¾é线æµå¨å°ä½ä¸æ¥wms completeDevpTask: /completeDevpTask # æµè¯ç¯å¢ # url: http://127.0.0.1:8080/ghlnwms # taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback @@ -69,6 +71,7 @@ # taskExecCallback: /open/asrs/taskExecCallback # inboundTaskApplyPath: /open/asrs/testInLoc # movePath: api/InterFace/get_InterFace_TestStorage # completeDevpTask: /completeDevpTask code: code src/main/resources/license.licBinary files differ
src/main/resources/wcsºÍwms½Ó¿Ú(2).docxBinary files differ
src/main/webapp/static/wms/js/realtimeWatch/pipeline.js
@@ -149,10 +149,10 @@ form.on('submit(editSubmit)', function (data) { var loadIndex = layer.load(2); $.ajax({ url: baseUrl+"/site//detl/update", url: baseUrl+"/site/detl/update", headers: {'token': localStorage.getItem('token')}, data: { siteId: $('#devNo').val(), devNo: $('#devNo').val(), workNo: $('#workNo').val(), staNo: $('#staNo').val(), pakMk: $('#pakMk').val()