From d2577544b333d545cf5269a2ef6701b7f609654d Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期一, 08 七月 2024 08:23:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OpenController.java | 12 ++ src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java | 122 ++++++++++++++++++++ src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java | 34 +++++ src/main/java/com/zy/asrs/entity/WrkMast.java | 11 + src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 12 ++ src/main/java/com/zy/asrs/service/OpenService.java | 3 src/main/resources/application.yml | 2 src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 9 + src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java | 149 ++++++++++++++++++++++++ 9 files changed, 352 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index cb34a46..8dbba94 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -204,4 +204,16 @@ System.out.println(JSON.toJSONString(param1)); } + + /** + * 搴撳瓨缁熻 + */ + @RequestMapping("/agv/haikang/complete/v1") + public R agvHaiKang(@RequestHeader(required = false) String wrkNo, + HttpServletRequest request) { +// auth(wrkNo, null, request); + return R.ok().add(openService.agvHaiKang(wrkNo)); + } + + } diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index 83298e9..4aeb57c 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -495,6 +495,15 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime); } - + public Long getWrkStsComplete(){ + if (Cools.isEmpty(this.wrkSts)){ + return this.wrkSts; + } + if (this.ioType>10){ + return this.wrkSts+2; + }else { + return this.wrkSts+2; + } + } } diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java index 80451ba..ec65a91 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java +++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java @@ -240,5 +240,14 @@ return null; } + public Long getWrkStsCode(){ + switch (this.wrkSts.intValue()){ + case 1: + return (long)2; + default: + return this.wrkSts+1; + } + } + } diff --git a/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java new file mode 100644 index 0000000..02a5e8f --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java @@ -0,0 +1,34 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 瀵规帴ESS 浠诲姟涓嬪彂鍙傛暟 + */ +@Data +public class AgvHaiKangTaskCreateParam implements Serializable { + + private static final long serialVersionUID = 1L; + + //浠诲姟鍙� + private String taskCode; + + //浠诲姟绫诲瀷 + private String taskTyp; + + private Long sign; + + private Integer start; + private Integer end; + +// //浠诲姟缁� +// private String taskGroupCode; +// +// //浠诲姟缁勪紭鍏堢骇 +// private int groupPriority; +} + + + diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java index afd90b1..93ff722 100644 --- a/src/main/java/com/zy/asrs/service/OpenService.java +++ b/src/main/java/com/zy/asrs/service/OpenService.java @@ -43,4 +43,7 @@ * @param param */ void syncMat(MatSyncParam param); + + boolean agvHaiKang(String wrkNo); + } diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 5d8970a..8e74b99 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -48,6 +48,8 @@ private TagService tagService; @Autowired private TagMapper tagMapper; + @Autowired + private WrkMastService wrkMastService; @Override @Transactional @@ -544,4 +546,14 @@ } + + @Override + @Transactional + public boolean agvHaiKang(String wrkNo) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Long.parseLong(wrkNo))); + wrkMast.setWrkSts(wrkMast.getWrkStsComplete()); + wrkMastService.updateById(wrkMast); + return true; + } + } diff --git a/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java new file mode 100644 index 0000000..791b9c9 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java @@ -0,0 +1,122 @@ +package com.zy.asrs.task; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.zy.asrs.entity.WrkMastExecute; +import com.zy.asrs.service.WrkMastExecuteService; +import com.zy.asrs.task.handler.AutoMoveHaiKangHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +// 鑷姩绉诲簱 +@Slf4j +@Component +public class AutoMoveHaiKangScheduler { + + @Autowired + private WrkMastExecuteService wrkMastExecuteService; + @Autowired + private AutoMoveHaiKangHandler autoMoveHaiKangHandler; + + /** + * 鎵цagv_wrk_mast_execute浠诲姟 + */ +// @Scheduled(cron = "0/2 * * * * ? ") + private void autoMove(){ + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",0L)); + for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ + try{ + if (true){ + autoMoveHaiKangHandler.start(wrkMastExecute); + } + }catch (Exception e){ + log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } + } + } +// +// /** +// * 涓嬩竴姝gv_wrk_mast_execute浠诲姟 +// */ +//// @Scheduled(cron = "0/2 * * * * ? ") +// private void autoMove2(){ +// List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",3L)); +// for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ +// Date now = new Date(); +// try{ +// if (wrkMastExecute.getStatus()==2 && wrkMastExecute.getNowPosition()==1){ +// //鍒ゆ柇鐢垫蹇欎笉蹇� +// int count = wrkMastExecuteService.selectCount(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("status", 2)); +// if(count<3){ +// wrkMastExecute.setStatus(3); +// wrkMastExecute.setWrkSts(0L); +// wrkMastExecute.setModiTime(now); +// wrkMastExecute.setEndPosition(4); +// wrkMastExecuteService.updateById(wrkMastExecute); +// updateAgvBasDevp(agvBasDevp,"R",agvBasDevp.getLocType2(),agvBasDevp.getBarcode()); +// } +// } +// }catch (Exception e){ +// log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage()); +// } +// } +// } +// +// /** +// * 涓嬩竴姝gv_wrk_mast_execute浠诲姟 +// */ +//// @Scheduled(cron = "0/2 * * * * ? ") +// private void autoMove3(){ +// List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",2L)); +// for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ +// Date now = new Date(); +// try{ +// if (wrkMastExecute.getStatus()==2){ +// AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", wrkMastExecute.getRoute()[wrkMastExecute.getEndPosition()])); +// if (Cools.isEmpty(agvBasDevp) || !agvBasDevp.getLocSts().equals("S")){ +// log.error("绔欑偣鐘舵�乴ocsts鍙傛暟鏈夎锛歭ocSts:"+agvBasDevp.getLocSts$()); +// }else { +// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); +// wrkMastExecute.setModiTime(now); +// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition()); +// wrkMastExecuteService.updateById(wrkMastExecute); +// updateAgvBasDevp(agvBasDevp,"F",agvBasDevp.getLocType2(),agvBasDevp.getBarcode()); +// } +// }else if (wrkMastExecute.getStatus()==3 || wrkMastExecute.getStatus()==4){ +// AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", wrkMastExecute.getRoute()[wrkMastExecute.getNowPosition()])); +// if (Cools.isEmpty(agvBasDevp) || !agvBasDevp.getLocSts().equals("R")){ +// log.error("绔欑偣鐘舵�乴ocsts鍙傛暟鏈夎锛歭ocSts:"+agvBasDevp.getLocSts$()); +// }else { +// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); +// wrkMastExecute.setModiTime(now); +// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition()); +// wrkMastExecuteService.updateById(wrkMastExecute); +// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"O","",(short)0); +// } +// }else if (wrkMastExecute.getStatus()==1){ +// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); +// wrkMastExecute.setModiTime(now); +// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition()); +// wrkMastExecuteService.updateById(wrkMastExecute); +// } +// }catch (Exception e){ +// log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage()); +// } +// } +// } +// +// +// +// private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){ +// if(!Cools.isEmpty(agvBasDevp)){ +// agvBasDevp.setLocSts(locSts); +// agvBasDevp.setLocType2(continerType); +// agvBasDevp.setBarcode(containerCode); +// agvBasDevpService.updateById(agvBasDevp); +// } +// } +} diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java new file mode 100644 index 0000000..88959fe --- /dev/null +++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java @@ -0,0 +1,149 @@ +package com.zy.asrs.task.handler; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.core.exception.CoolException; +import com.zy.asrs.entity.WrkMastExecute; +import com.zy.asrs.entity.param.AgvHaiKangTaskCreateParam; +import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.service.impl.WrkMastExecuteServiceImpl; +import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import com.zy.common.utils.HttpHandler; +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 java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +@Transactional +public class AutoMoveHaiKangHandler extends AbstractHandler<String> { + + @Value("${agv.url}") + private String url; + + @Value("${agv.taskCreatePath}") + private String taskCreatePath; + + @Autowired + private ApiLogService apiLogService; + @Autowired + private WrkMastExecuteServiceImpl wrkMastExecuteService; + + public ReturnT<String> start(WrkMastExecute wrkMastExecute) { + try{ + AgvHaiKangTaskCreateParam agvTaskCreateParam = new AgvHaiKangTaskCreateParam(); + getRequestParam(agvTaskCreateParam,wrkMastExecute); + int doHttpRequest = doHttpRequest(agvTaskCreateParam, "鎼繍浠诲姟涓嬪彂==>2-3==1", url, taskCreatePath, null, "127.0.0.1"); + if(doHttpRequest != 0){ + throw new CoolException("浠诲姟涓嬪彂澶辫触,code:"+doHttpRequest); + } + wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); + wrkMastExecute.setModiTime(new Date()); + if (!wrkMastExecuteService.updateById(wrkMastExecute)){ + throw new CoolException("浠诲姟涓嬪彂鎴愬姛,浣嗘槸鏇存柊鎵ц浠诲姟鐘舵�佸け璐�:"+doHttpRequest); + } + }catch (Exception e){ + log.error("鎼繍浠诲姟涓嬪彂===銆嬪紓甯革細"+e.getMessage()); + } + return SUCCESS; + } + +// public ReturnT<String> start1(WrkMastExecute wrkMastExecute) { +// try{ +// AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); +// getRequestParam(agvTaskCreateParam,wrkMastExecute); +// int doHttpRequest = doHttpRequest(agvTaskCreateParam, "鎼繍浠诲姟涓嬪彂", url, taskCreatePath, null, "127.0.0.1"); +// if(doHttpRequest != 0){ +// throw new CoolException("浠诲姟涓嬪彂澶辫触,code:"+doHttpRequest); +// } +// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); +// wrkMastExecute.setModiTime(new Date()); +// if (!wrkMastExecuteService.updateById(wrkMastExecute)){ +// throw new CoolException("浠诲姟涓嬪彂鎴愬姛,浣嗘槸鏇存柊鎵ц浠诲姟鐘舵�佸け璐�:"+doHttpRequest); +// } +// }catch (Exception e){ +// log.error("鎼繍浠诲姟涓嬪彂===銆嬪紓甯革細"+e.getMessage()); +// } +// return SUCCESS; +// } +// + private void getRequestParam(AgvHaiKangTaskCreateParam agvHaiKangTaskCreateParam, WrkMastExecute wrkMastExecute){ + +// List<AgvTaskParam> agvTaskParamList = Arrays.asList( +// //璧峰浣� +// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getNowPosition()]), +// //鐩爣浣� +// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getEndPosition()])); + + Long wrkNo = wrkMastExecute.getWrkNo(); + if (wrkMastExecute.getNowPosition()==1){ + agvHaiKangTaskCreateParam.setTaskCode(wrkMastExecute.getWrkNo().toString()); + }else { + wrkNo = -wrkNo; + agvHaiKangTaskCreateParam.setTaskCode(wrkNo.toString()); + } + if (!wrkMastExecute.getSouFloor().equals(wrkMastExecute.getEndFloor())) { + agvHaiKangTaskCreateParam.setTaskTyp("F06"); + } else { + agvHaiKangTaskCreateParam.setTaskTyp("F01"); + } + +// agvHaiKangTaskCreateParam.setPositionCodePath(agvTaskParamList); + + } + + private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ +// if (true){ +// apiLogService.save( +// namespace, +// url + path, +// appkey, +// ip, +// JSON.toJSONString(JSONObject.toJSONString(requestParam)), +// "", +// true +// ); +// return 0; +// } + String response = ""; + boolean success = false; + + try { + response = new HttpHandler.Builder() + .setUri(url) + .setPath(path) + .setJson(JSONObject.toJSONString(requestParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + + int code = Integer.parseInt(jsonObject.get("code").toString()); + if(code != 0){ + throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); + } + success = true; + return code; + }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 + ); + } + + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b41e798..7f5c157 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://192.168.4.15:1433;databasename=source + url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxgtasrs username: sa password: sa@123 mvc: -- Gitblit v1.9.1