From 5dc8a9f9aba3310fd21cad9509635bb7ec2f007f Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期四, 12 十二月 2024 13:29:06 +0800 Subject: [PATCH] Generating... --- src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 293 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 204 insertions(+), 89 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java index 940d621..af24386 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java @@ -3,18 +3,18 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.exception.CoolException; +import com.zy.asrs.entity.AgvBasDevp; +import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.entity.param.AgvTaskCreateParam; import com.zy.asrs.entity.param.AgvTaskParam; -import com.zy.asrs.entity.param.AgvTaskkDescribeParam; import com.zy.asrs.mapper.AgvWrkMastMapper; -import com.zy.asrs.service.AgvLocMastService; -import com.zy.asrs.service.AgvWrkDetlService; -import com.zy.asrs.service.AgvWrkMastService; -import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.service.*; +import com.zy.common.service.AgvCommonService; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -22,21 +22,24 @@ import org.springframework.stereotype.Service; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import java.util.*; +import java.util.concurrent.TimeUnit; @Service @Slf4j public class AgvWrkMastServiceImp extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService { + + @Value("${agv.flag}") + private boolean flag; @Value("${agv.url}") private String url; @Value("${agv.taskCreatePath}") private String taskCreatePath; + + @Value("${agv.taskCancelPath}") + private String taskCancelPath; @Value("${agv.containerMoveInPath}") private String containerMoveInPath; @@ -55,62 +58,97 @@ AgvLocMastService agvLocMastService; @Autowired ApiLogService apiLogService; + @Autowired + AgvBasDevpService agvBasDevpService; + @Autowired + private AgvCommonService agvCommonService; + @Autowired + private AgvWrkMastService agvWrkMastService; - public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) { + + public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) { AgvWrkMast agvWrkMast = this.selectById(wrkNo); //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父 - checkWrkSts(agvWrkMast,wrkSts); + checkWrkSts(agvWrkMast, wrkSts); agvWrkMast.setWrkSts(wrkSts); + agvWrkMast.setModiTime(new Date()); + return this.updateById(agvWrkMast); + } + + public void updateWrkStsByWrkNo(int wrkNo, long wrkSts, String manuType, long userId) { + Date now = new Date(); + AgvWrkMast agvWrkMast = this.selectById(wrkNo); + //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父 + checkWrkSts(agvWrkMast, wrkSts); + agvWrkMast.setWrkSts(wrkSts); + agvWrkMast.setManuType(manuType); + agvWrkMast.setModiTime(now); + agvWrkMast.setModiUser(userId); this.updateById(agvWrkMast); } // TODO 鍒ゆ柇瑙勫垯 - private boolean checkWrkSts(AgvWrkMast agvWrkMast,long wrkSts){ - + private boolean checkWrkSts(AgvWrkMast agvWrkMast, long wrkSts) { return true; } - public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException { + public int startWrk(AgvWrkMast agvWrkMast) throws IOException { AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); - agvTaskCreateParam.setTaskType(taskType); + //agvTaskCreateParam.setTaskType(taskType); - getRequestParam(agvTaskCreateParam,agvWrkMastList); + getRequestParam(agvTaskCreateParam, agvWrkMast); - return doHttpRequest(agvTaskCreateParam,"鎼繍浠诲姟涓嬪彂",url, taskCreatePath,null,"127.0.0.1"); + return doHttpRequest(agvTaskCreateParam, "鎼繍浠诲姟涓嬪彂", url, taskCreatePath, null, "127.0.0.1"); //return containerMoveParam; } - //瀹瑰櫒鍏ュ満 - public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException { - //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁� - Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>(); - List<Map<String,String>> positionCodeMapList = new ArrayList<>(); - containerMoveParam.put("containerMoveIns",positionCodeMapList); - - getContainerMoveParam(agvWrkMastList,positionCodeMapList); - - if(Cools.isEmpty(positionCodeMapList)){ - return 0; - } - return doHttpRequest(containerMoveParam,"瀹瑰櫒鍏ュ満浠诲姟涓嬪彂",url, containerMoveInPath,null,"127.0.0.1"); + public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException { + AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); + //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 + AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(), basDevp.getFloor(), false, true); + agvWrkMast.setLocNo(locMast.getLocNo()); + agvWrkMast.setWrkSts(201L); + agvWrkMast.setLogErrMemo("startAllcationIn"); + agvWrkMast.setModiTime(new Date()); + agvWrkMastService.updateById(agvWrkMast); + // 鏇寸洰鏍囧簱浣� + locMast.setLocSts("S"); + agvLocMastService.updateById(locMast); + return 0; } - //瀹瑰櫒绂诲満 - public int containerMoveOut(List<AgvWrkMast> agvWrkMastList){ - Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>(); - List<Map<String,String>> positionCodeMapList = new ArrayList<>(); - containerMoveParam.put("containerMoveOuts",positionCodeMapList); - for(AgvWrkMast agvWrkMast : agvWrkMastList){ - Map<String,String> positionCodeMap = new HashMap<>(); - positionCodeMap.put("positionCode",agvWrkMast.getLocNo()); + //璐ф灦鍏ュ満 + public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException { + //璋冪敤璐ф灦鍏ュ満鏃舵墍闇�瑕佸弬鏁� + Map<String, List<Map<String, String>>> containerMoveParam = new HashMap<>(); + List<Map<String, String>> positionCodeMapList = new ArrayList<>(); + containerMoveParam.put("containerMoveIns", positionCodeMapList); + + getContainerMoveParam(agvWrkMastList, positionCodeMapList); + + if (Cools.isEmpty(positionCodeMapList)) { + return 0; + } + return doHttpRequest(containerMoveParam, "璐ф灦鍏ュ満浠诲姟涓嬪彂", url, containerMoveInPath, null, "127.0.0.1"); + + } + + //璐ф灦绂诲満 + public int containerMoveOut(List<AgvWrkMast> agvWrkMastList) { + Map<String, List<Map<String, String>>> containerMoveParam = new HashMap<>(); + List<Map<String, String>> positionCodeMapList = new ArrayList<>(); + containerMoveParam.put("containerMoveOuts", positionCodeMapList); + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + Map<String, String> positionCodeMap = new HashMap<>(); + positionCodeMap.put("positionCode", agvWrkMast.getLocNo()); positionCodeMapList.add(positionCodeMap); } - return doHttpRequest(containerMoveParam,"瀹瑰櫒绂诲満浠诲姟涓嬪彂",url, containerMoveOutPath,null,"127.0.0.1"); + return doHttpRequest(containerMoveParam, "璐ф灦绂诲満浠诲姟涓嬪彂", url, containerMoveOutPath, null, "127.0.0.1"); } public boolean insertByIncrease(AgvWrkMast agvWrkMast) { @@ -124,88 +162,165 @@ return this.delete(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo)); } - //瀹瑰櫒鍒拌揪閫氱煡 + //璐ф灦鍒拌揪閫氱煡 public int containerArrived(AgvWrkMast agvWrkMast) { - Map<String,String> containerArrivedParam = new HashMap<>(); - containerArrivedParam.put("slotCode",agvWrkMast.getSourceLocNo()); - containerArrivedParam.put("containerCode",agvWrkMast.getBarcode()); + Map<String, String> containerArrivedParam = new HashMap<>(); + containerArrivedParam.put("slotCode", agvWrkMast.getSourceLocNo()); + containerArrivedParam.put("containerCode", agvWrkMast.getBarcode()); - return doHttpRequest(containerArrivedParam,"瀹瑰櫒杈惧埌閫氱煡",url, containerArrivedPath,null,"127.0.0.1"); + return doHttpRequest(containerArrivedParam, "璐ф灦杈惧埌閫氱煡", url, containerArrivedPath, null, "127.0.0.1"); } - private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){ - //寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆 - for(AgvWrkMast agvWrkMast : agvWrkMastList){ - //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佸鍣ㄨ繘鍦鸿姹� - if("Y".equals(agvWrkMast.getMk())){ + @Override + public List<AgvWrkMast> selectReadyAgvWrkMast() { + List<String> stationCodes = agvBasDevpService.selectAllStationCode(); + Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 21L).like(false, "loc_no", "@"); + wrapper.in("loc_no", stationCodes); + return this.selectList(wrapper); + //return this.baseMapper.selectReadyAgvWrkMast(); + } + + @Override + public AgvWrkMast selectByContainerCode(String containerCode) { + return this.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", containerCode)); + } + + @Override + public int callCancelTask(int wrkNo) { + + AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); + agvTaskCreateParam.setTaskCode(wrkNo + ""); + + return doHttpRequest(agvTaskCreateParam, "鍙栨秷浠诲姟涓嬪彂", url, taskCancelPath, null, "127.0.0.1"); + + } + + + private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList, List<Map<String, String>> positionCodeMapList) { + //寰�璐ф灦鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆 + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佽揣鏋惰繘鍦鸿姹� + if ("Y".equals(agvWrkMast.getMk())) { continue; } - Map<String,String> positionCodeMap = new HashMap<>(); - positionCodeMap.put("positionCode",agvWrkMast.getSourceLocNo()); + Map<String, String> positionCodeMap = new HashMap<>(); + positionCodeMap.put("positionCode", agvWrkMast.getSourceLocNo()); positionCodeMapList.add(positionCodeMap); } } - private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,List<AgvWrkMast> agvWrkMastList){ - List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> { - AgvTaskParam agvTaskParam = new AgvTaskParam(); - AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam(); - agvTaskParam.setTaskDescribe(agvTaskkDescribeParam); - //AgvTaskParam - if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){ - agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + ""); - }else{ - agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + ""); - } + private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam, AgvWrkMast agvWrkMast) { - agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue()); + List<AgvTaskParam> agvTaskParamList = Arrays.asList( + //璧峰浣� + new AgvTaskParam(agvWrkMast.getSourceLocNo()), + //鐩爣浣� + new AgvTaskParam(agvWrkMast.getLocNo())); - //AgvTaskkDescribeParam - if(agvWrkMast.getSourceLocNo().contains("C")){ - agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo()); - } - agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo()); - agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo()); - agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode()); - return agvTaskParam; - }).collect(Collectors.toList()); +// //璧峰浣� +// agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getSourceLocNo())); +// //鐩爣浣� +// agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo())); - agvTaskCreateParam.setTasks(agvTaskParamList); + if (agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57) { + agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); + } + agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); + switch (agvWrkMast.getIoType()) { + case 114: + case 108: + case 12: + agvTaskCreateParam.setTaskTyp("F06"); + break; + case 109: + if (agvWrkMast.getWrkSts() == 201) { + agvTaskCreateParam.setTaskTyp("F06"); + } else { + agvTaskCreateParam.setTaskTyp("F01"); + } + break; + case 1: + case 57: + // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅 + AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); + String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); + AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); + if ("02".equals(locSub)) { + if (agvBasDevp.getFloor() == 4) { + agvTaskCreateParam.setTaskTyp("F01"); + } else { + agvTaskCreateParam.setTaskTyp("F06"); + } + + } else { + // 鐩爣妤煎眰浣�1妤� 浣嗘簮搴撲綅锛堟帴椹充綅锛夊湪鍚稿浜屾ゼ + if (agvBasDevp.getFloor() == 4) { + agvTaskCreateParam.setTaskTyp("F06"); + } else { + agvTaskCreateParam.setTaskTyp("F01"); + } + + + } + break; + default: + agvTaskCreateParam.setTaskTyp("F01"); + break; + } + + agvTaskCreateParam.setPositionCodePath(agvTaskParamList); + } - private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ + private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip) { + if (!flag) { + return 1; + } String response = ""; boolean success = false; - + int code = 0; try { response = new HttpHandler.Builder() .setUri(url) .setPath(path) + .setTimeout(30, TimeUnit.SECONDS) .setJson(JSONObject.toJSONString(requestParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - int code = (int) jsonObject.get("code"); - if(code != 0){ + code = Integer.parseInt(jsonObject.get("code").toString()); + if (code != 0) { + if (code == 6) { + log.info("AGV浠诲姟鍗曞彿宸蹭笂鎶�:{}", response); + String message = jsonObject.getString("message"); + if (!Cools.isEmpty(message) && message.contains("宸插瓨鍦ㄤ换鍔″崟澶翠负")) { + success = true; + return 0; + } + } throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); + //return code; } success = true; return code; - }catch (Exception e){ + } catch (Exception e) { log.error(e.getMessage()); throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); - }finally { - apiLogService.save( - namespace, - url + path, - appkey, - ip, - JSON.toJSONString(JSONObject.toJSONString(requestParam)), - response, - success - ); + //return 1; + } finally { + if (code != 6) { + apiLogService.save( + namespace, + url + path, + appkey, + ip, + JSON.toJSONString(JSONObject.toJSONString(requestParam)), + response, + success + ); + } } } -- Gitblit v1.9.1