From a7ec33be10c9c70d1dd9efbce7248b008f899ed5 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期二, 25 二月 2025 09:00:11 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 245 ++++++++++++++++++++++++++++++------------------- 1 files changed, 150 insertions(+), 95 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 1e4e397..07c0a8c 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java @@ -16,6 +16,8 @@ import com.zy.asrs.service.*; import com.zy.common.service.AgvCommonService; import com.zy.common.utils.HttpHandler; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -23,10 +25,14 @@ import java.io.IOException; 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; @@ -60,22 +66,24 @@ private AgvCommonService agvCommonService; @Autowired private AgvWrkMastService agvWrkMastService; + @Autowired + private ConfigService configService; - 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()); - this.updateById(agvWrkMast); + return this.updateById(agvWrkMast); } - public void updateWrkStsByWrkNo(int wrkNo, long wrkSts,String manuType,long userId) { + public void updateWrkStsByWrkNo(int wrkNo, long wrkSts, String manuType, long userId) { Date now = new Date(); AgvWrkMast agvWrkMast = this.selectById(wrkNo); //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父 - checkWrkSts(agvWrkMast,wrkSts); + checkWrkSts(agvWrkMast, wrkSts); agvWrkMast.setWrkSts(wrkSts); agvWrkMast.setManuType(manuType); agvWrkMast.setModiTime(now); @@ -84,8 +92,7 @@ } // TODO 鍒ゆ柇瑙勫垯 - private boolean checkWrkSts(AgvWrkMast agvWrkMast,long wrkSts){ - + private boolean checkWrkSts(AgvWrkMast agvWrkMast, long wrkSts) { return true; @@ -96,9 +103,9 @@ AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); //agvTaskCreateParam.setTaskType(taskType); - getRequestParam(agvTaskCreateParam,agvWrkMast); + 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; } @@ -106,7 +113,7 @@ public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException { AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor(),false,true); + AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(), basDevp.getFloor(), false, true); agvWrkMast.setLocNo(locMast.getLocNo()); agvWrkMast.setWrkSts(201L); agvWrkMast.setLogErrMemo("startAllcationIn"); @@ -122,30 +129,30 @@ //璐ф灦鍏ュ満 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); + Map<String, List<Map<String, String>>> containerMoveParam = new HashMap<>(); + List<Map<String, String>> positionCodeMapList = new ArrayList<>(); + containerMoveParam.put("containerMoveIns", positionCodeMapList); - getContainerMoveParam(agvWrkMastList,positionCodeMapList); + getContainerMoveParam(agvWrkMastList, positionCodeMapList); - if(Cools.isEmpty(positionCodeMapList)){ + if (Cools.isEmpty(positionCodeMapList)) { return 0; } - return doHttpRequest(containerMoveParam,"璐ф灦鍏ュ満浠诲姟涓嬪彂",url, containerMoveInPath,null,"127.0.0.1"); + 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()); + 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) { @@ -162,25 +169,25 @@ //璐ф灦鍒拌揪閫氱煡 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"); } @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); + 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)); + return this.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", containerCode)); } @Override @@ -189,25 +196,25 @@ AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); agvTaskCreateParam.setTaskCode(wrkNo + ""); - return doHttpRequest(agvTaskCreateParam,"鍙栨秷浠诲姟涓嬪彂",url, taskCancelPath,null,"127.0.0.1"); + return doHttpRequest(agvTaskCreateParam, "鍙栨秷浠诲姟涓嬪彂", url, taskCancelPath, null, "127.0.0.1"); } - private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){ + private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList, List<Map<String, String>> positionCodeMapList) { //寰�璐ф灦鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆 - for(AgvWrkMast agvWrkMast : agvWrkMastList){ + for (AgvWrkMast agvWrkMast : agvWrkMastList) { //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佽揣鏋惰繘鍦鸿姹� - if("Y".equals(agvWrkMast.getMk())){ + 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,AgvWrkMast agvWrkMast){ + private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam, AgvWrkMast agvWrkMast) { List<AgvTaskParam> agvTaskParamList = Arrays.asList( //璧峰浣� @@ -220,90 +227,138 @@ // //鐩爣浣� // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo())); - if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 ){ + if (agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57) { agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); } agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); - switch (agvWrkMast.getIoType()) { - case 108: - case 12: - agvTaskCreateParam.setTaskTyp("F06"); - break; - case 109: - if (agvWrkMast.getWrkSts() == 201) { + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR")); + if (config != null && config.getStatus() == 1 && config.getValue().equals("1") && processUseTiShengJi(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo())) { + // TODO 鍥涙湡 + } else { + switch (agvWrkMast.getIoType()) { + case 114: + case 108: + case 12: agvTaskCreateParam.setTaskTyp("F06"); - } else { + 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; - 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; + break; + } } agvTaskCreateParam.setPositionCodePath(agvTaskParamList); } - private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ + // TODO 鍥涙湡 + private boolean processUseTiShengJi(String sourceLocNo, String locNo) { + // 鍒ゆ柇鏄惁鏄彁鍗囨満 + if (sourceLocNo.startsWith("YZ")) { + if (sourceLocNo.endsWith("01F2") && !locNo.startsWith("YZ") && locNo.endsWith("F4") ) { + // 浠庣敓浜т簩鍘傜殑搴撲綅鍒板惛濉戜簩鍘傜殑鐐逛綅涓� + return true; + } else if (sourceLocNo.endsWith("01F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) { + // 浠庣敓浜т簩鍘傜殑搴撲綅鍒板惛濉戜簩鍘傜殑搴撲綅 + return true; + } else if (sourceLocNo.endsWith("02F1") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) { + // 鍚稿浜屾ゼ鐨勫簱浣嶅埌鐢熶骇浜屽巶鐨勫簱浣� + return true; + } else if (sourceLocNo.endsWith("02F1") && !locNo.startsWith("YZ") && locNo.endsWith("F2")) { + // 鍚稿浜屾ゼ鐨勫簱浣嶅埌鐢熶骇浜屽巶鐨勭偣浣� + return true; + } + } else { + if (sourceLocNo.endsWith("F4") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) { + // 浠庡惛濉戜簩妤肩殑鐐逛綅鍒扮敓浜т簩鍘傜殑搴撲綅 + return true; + } else if (sourceLocNo.endsWith("F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) { + // 浠庣敓浜т簩鍘傜殑鐐逛綅鍒板惛濉戜簩妤肩殑搴撲綅 + return true; + } + } + return false; + } + + 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 = Integer.parseInt(jsonObject.get("code").toString()); - if(code != 0){ - //TODO 寮犺秴 - //throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); - return code; + 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()); - //TODO 寮犺秴 - //throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); - return 1; - }finally { - apiLogService.save( - namespace, - url + path, - appkey, - ip, - JSON.toJSONString(JSONObject.toJSONString(requestParam)), - response, - success - ); + throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); + //return 1; + } finally { + if (code != 6) { + apiLogService.save( + namespace, + url + path, + appkey, + ip, + JSON.toJSONString(JSONObject.toJSONString(requestParam)), + response, + success + ); + } } } -- Gitblit v1.9.1