From d61d4384e19580a32becb54e8e7f2287bed5469a Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期一, 26 五月 2025 09:08:18 +0800 Subject: [PATCH] 1.出库口补空板 2.组托时调用agv 3.新增agv调用程序 --- src/main/java/com/zy/asrs/entity/param/RCSParam.java | 51 ++++++++++++ src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java | 61 +++++++++++++++ src/main/java/com/zy/asrs/entity/WaitPakin.java | 4 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 16 +--- src/main/java/com/zy/asrs/controller/MobileController.java | 88 +++++++++++++++++++++ src/main/java/com/zy/asrs/controller/WorkController.java | 2 src/main/resources/application.yml | 11 ++ 7 files changed, 216 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 7fcf3f4..bab271d 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -14,10 +14,12 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; +import com.zy.asrs.entity.param.RCSParam; import com.zy.asrs.entity.param.Review; import com.zy.asrs.entity.result.MobileAdjustResult; import com.zy.asrs.service.*; import com.zy.asrs.service.impl.MobileServiceImpl; +import com.zy.asrs.task.WorkMastScheduler; import com.zy.asrs.task.handler.WorkLogHandler; import com.zy.common.constant.MesConstant; import com.zy.common.model.LocDto; @@ -26,13 +28,18 @@ import com.zy.common.utils.HttpHandler; import com.zy.common.web.BaseController; import com.zy.common.web.param.SearchLocParam; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; /** @@ -42,7 +49,7 @@ @RestController @RequestMapping("mobile") public class MobileController extends BaseController { - + private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); @Autowired private MobileService mobileService; @Autowired @@ -63,6 +70,12 @@ private BasDevpService basDevpService; @Autowired private PackService packService; + @Autowired + private ApiLogService apiLogService; + @Value("${rcs.address.url}") + private String url; + @Value("${rcs.address.attrcs}") + private String attrcs; // 鍟嗗搧涓婃灦 @@ -443,5 +456,78 @@ /*...........................璧e窞鏂板..............浠ヤ笂.............璧e窞鏂板...........................*/ + /** + * 鎵ц绉诲簱浠诲姟 + * @param sourceStaNo + * @param staNo + * @return + */ + @RequestMapping("/AGVMove") + public R AGVMove(@RequestParam(required = false) String sourceStaNo + ,@RequestParam(required = false) String staNo){ + RCSParam rcsParam = new RCSParam(); + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss"); + String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂� + //缃戠粶娴佹按鍙� + rcsParam.setReqId(now.toString()); + //搴旂敤鏍囪瘑 + rcsParam.setClientId("WMS"); + //閫氱煡鏃堕棿 + rcsParam.setReqTime(formattedDate); + RCSParam.DataBody dataBody=new RCSParam.DataBody(); + //浠诲姟鍙� + dataBody.setId(formattedDate); + + List<RCSParam.TaskBody> taskBodyList=new ArrayList<>(); + RCSParam.TaskBody taskBody=new RCSParam.TaskBody(); + //鍙栬揣绫诲瀷 + taskBody.setType("load"); + taskBody.setStation(sourceStaNo); + taskBodyList.add(taskBody); + + RCSParam.TaskBody taskBody1=new RCSParam.TaskBody(); + //鏀捐揣绫诲瀷 + taskBody1.setType("unload"); + taskBody1.setStation(staNo); + taskBodyList.add(taskBody1); + + dataBody.setTasks(taskBodyList); + rcsParam.setData(dataBody); + String response =""; + Boolean bool =false; + + try { + log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam); + response = new HttpHandler.Builder() + // .setHeaders(headParam) + .setUri(url) + .setPath(attrcs) + .setJson(JSON.toJSONString(rcsParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if(jsonObject.getBoolean("IsSuccess")){ + bool = true; + } + } catch (Exception e) { + log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response); + } finally { + apiLogService.save("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍" + , url + attrcs + , null + , "127.0.0.1" + , JSON.toJSONString(rcsParam) + , response + , bool + ); + } + if(bool){ + return R.ok(); + }else { + return R.error("涓嬪彂浠诲姟澶辫触"); + } + + } } diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java index eae764b..3ba64de 100644 --- a/src/main/java/com/zy/asrs/controller/WorkController.java +++ b/src/main/java/com/zy/asrs/controller/WorkController.java @@ -158,4 +158,6 @@ return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo); } + + } diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java index 21a45ed..a786586 100644 --- a/src/main/java/com/zy/asrs/entity/WaitPakin.java +++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java @@ -70,7 +70,7 @@ @ApiModelProperty(value= "浜у湴") private String origin; - @ApiModelProperty(value= "鍘傚") + @ApiModelProperty(value= "鍞竴鐮�") private String manu; @ApiModelProperty(value= "鐢熶骇鏃ユ湡") @@ -105,7 +105,7 @@ @TableField("supp_code") private String suppCode; - @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @ApiModelProperty(value= "agv浠诲姟涓嬪彂 锛� 0锛氬緟涓嬪彂 1锛氫笅鍙戞垚鍔� 2锛氫换鍔″畬鎴�") @TableField("be_batch") private Integer beBatch; diff --git a/src/main/java/com/zy/asrs/entity/param/RCSParam.java b/src/main/java/com/zy/asrs/entity/param/RCSParam.java new file mode 100644 index 0000000..0bf6f65 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/RCSParam.java @@ -0,0 +1,51 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +import java.util.List; + +@Data +public class RCSParam { + /** + * 缃戠粶娴佹按鍙� + */ + private String ReqId; + + /** + * 搴旂敤琛ㄧず wms + */ + private String ClientId; + + /** + * 閫氱煡鏃堕棿 + */ + private String ReqTime; + + /** + * 鏁版嵁 + */ + private DataBody Data; + + @Data + public static class DataBody { + /** + * 浠诲姟鍙� + */ + private String Id; + + private List<TaskBody> tasks; + } + @Data + public static class TaskBody { + /** + * 浠诲姟绫诲瀷 锛� + * load 鍙栬揣 锛� unload 鏀捐揣 锛� + */ + private String Type; + + /** + * 鐩爣搴撲綅 + */ + private String Station; + } +} diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 0723b34..314f1f1 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -125,17 +125,6 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } - // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 - if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). - eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { - throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); - } - - int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); - int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); - if (countLoc > 0 || countWrk > 0) { - throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); - } Date now = new Date(); @@ -164,7 +153,7 @@ WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setBatch(detlDto.getBatch()); - waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� + waitPakin.setZpallet(""); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 waitPakin.setStatus("Y"); // 鐘舵�� @@ -172,6 +161,9 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setMemo(param.getBarcode());//AGV婧愮珯 + waitPakin.setBeBatch(0);//AGV 浠诲姟绛夊緟涓嬪彂 + waitPakin.setManu(now.getTime()+"");//鍞竴鐮� if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java new file mode 100644 index 0000000..f99e1e7 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java @@ -0,0 +1,61 @@ +package com.zy.asrs.task.NewWay; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.R; +import com.zy.asrs.controller.MobileController; +import com.zy.asrs.entity.WaitPakin; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.WrkMastService; +import com.zy.asrs.service.impl.WaitPakinServiceImpl; +import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.task.handler.WorkMastHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +/** + * Created by vincent on 2020/7/7 + */ +@Component +public class AutomaticallyAssignInTasksToRCSScheduler { + + private static final Logger log = LoggerFactory.getLogger(AutomaticallyAssignInTasksToRCSScheduler.class); + + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WorkMastHandler workMastHandler; + @Autowired + private WaitPakinServiceImpl waitPakinService; + @Autowired + private MobileController mobileController; + + /** + * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS + */ + @Scheduled(cron = "0/3 * * * * ? ") + private void execute(){ + //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔� + WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1)); + if(waitPakin1!=null){ + return; + } + //鎵惧埌姝e湪绛夊緟鐨勭粍鎵樻暟鎹� + //璇ユ暟鎹繘琛�0杞�1 + WaitPakin waitPakin=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",0)); + if(waitPakin!=null){ + R r=mobileController.AGVMove(waitPakin.getMemo(),100+""); + if (r.get("code").equals(200)){ + waitPakin.setBeBatch(1);//0杞�1 + waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu())); + } + } + + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 9486b42..bec9086 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,7 +12,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs + url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs # url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs username: sa password: sa@123 @@ -100,4 +100,11 @@ # 鍚姩娴嬭瘯璇锋眰 startUpTestPACK: TestStart #鏆傚仠娴嬭瘯 - suspendTestPACK: TestStop \ No newline at end of file + suspendTestPACK: TestStop + +#RCS +rcs: + address: + url: http://192.168.3.102:16001 + #浠诲姟涓嬪彂鍦板潃 + attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub. \ No newline at end of file -- Gitblit v1.9.1