From 288e45a990a5abf4ab50f820ed4e870e8314468e Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期六, 21 六月 2025 15:14:10 +0800 Subject: [PATCH] 完善 --- src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java | 14 +- src/main/java/com/zy/asrs/entity/WaitPakin.java | 8 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 47 +++------ src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 11 - src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java | 56 +++++++++++ src/main/java/com/zy/asrs/entity/WrkMast.java | 2 src/main/java/com/zy/asrs/controller/MobileController.java | 57 ++++------ src/main/java/com/zy/common/web/WcsController.java | 45 ++++---- src/main/resources/application.yml | 10 + 9 files changed, 139 insertions(+), 111 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index bab271d..7971216 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -464,51 +464,41 @@ */ @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); + ,@RequestParam(required = false) String staNo + ,Integer priority){ + String noww="aa" + new Date().getTime(); - List<RCSParam.TaskBody> taskBodyList=new ArrayList<>(); - RCSParam.TaskBody taskBody=new RCSParam.TaskBody(); - //鍙栬揣绫诲瀷 - taskBody.setType("load"); - taskBody.setStation(sourceStaNo); - taskBodyList.add(taskBody); + LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); + rcsParam.put("task_id",noww); + rcsParam.put("start_location",sourceStaNo); + rcsParam.put("start_command",1); + rcsParam.put("target_location",staNo); + rcsParam.put("target_command",2); + rcsParam.put("priority",1);//浼樺厛绾ц秺灏忓厛鎵ц + rcsParam.put("robot_type",1);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L + rcsParam.put("MoverID","XCD"); - RCSParam.TaskBody taskBody1=new RCSParam.TaskBody(); - //鏀捐揣绫诲瀷 - taskBody1.setType("unload"); - taskBody1.setStation(staNo); - taskBodyList.add(taskBody1); - - dataBody.setTasks(taskBodyList); - rcsParam.setData(dataBody); + LinkedHashMap<String,Object> map=new LinkedHashMap<>(); + map.put("data",rcsParam); String response =""; Boolean bool =false; - + String msg = ""; try { log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(url) .setPath(attrcs) - .setJson(JSON.toJSONString(rcsParam)) + .setJson(JSON.toJSONString(map)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if(jsonObject.getBoolean("IsSuccess")){ + JSONObject data = jsonObject.getJSONObject("data"); + JSONObject errInfo = jsonObject.getJSONObject("err_info"); + if(data.getInteger("result")==0){ bool = true; + }else{ + msg=errInfo.getString("err_msg"); } } catch (Exception e) { log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response); @@ -517,13 +507,14 @@ , url + attrcs , null , "127.0.0.1" - , JSON.toJSONString(rcsParam) + , JSON.toJSONString(map) , response , bool ); } + if(bool){ - return R.ok(); + return R.ok(noww); }else { return R.error("涓嬪彂浠诲姟澶辫触"); } diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java index a786586..d3e7ed6 100644 --- a/src/main/java/com/zy/asrs/entity/WaitPakin.java +++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java @@ -17,6 +17,10 @@ private static final long serialVersionUID = 1L; + @ApiModelProperty(value= "RCS浠诲姟") + @TableField("item_num") + private String itemNum; + @ApiModelProperty(value= "鎵樼洏鏉$爜") private String zpallet; @@ -76,10 +80,6 @@ @ApiModelProperty(value= "鐢熶骇鏃ユ湡") @TableField("manu_date") private String manuDate; - - @ApiModelProperty(value= "鍝侀」鏁�") - @TableField("item_num") - private String itemNum; @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") @TableField("safe_qty") diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index f33acd0..fec3510 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -159,7 +159,7 @@ @TableField("ctn_type") private Integer ctnType; - @ApiModelProperty(value= "") + @ApiModelProperty(value= "RCS宸ヤ綔鍙�") private String packed; @ApiModelProperty(value= "") diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index fdd857e..27bc55b 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -217,13 +217,6 @@ } Integer outSta = staNo.getDevNo(); - //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负103 - if(locMast.getCrnNo()==2){ - outSta = 103; - //鍑哄簱绔欑偣涓�205锛� - }else if(staNo.getDevNo()==205){ - - } // 鑾峰彇璺緞 StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta); @@ -238,7 +231,7 @@ wrkMast.setIoPri(13D); // 浼樺厛绾э細13 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 - wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setStaNo(104); // 鐩爣绔� wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -250,6 +243,7 @@ wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); + wrkMast.setMemo(outSta+""); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo()); } @@ -809,6 +803,7 @@ if (!Cools.isEmpty(waitPakin)) { waitPakin.setIoStatus("N"); waitPakin.setLocNo(""); + waitPakin.setZpallet(""); boolean result = waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>() .eq("zpallet", wrkMast.getBarcode())); } diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java index f99e1e7..9d8031e 100644 --- a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java +++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java @@ -39,7 +39,7 @@ * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS */ @Scheduled(cron = "0/3 * * * * ? ") - private void execute(){ + private synchronized void execute(){ //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔� WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1)); if(waitPakin1!=null){ @@ -49,13 +49,15 @@ //璇ユ暟鎹繘琛�0杞�1 WaitPakin waitPakin=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",0)); if(waitPakin!=null){ - R r=mobileController.AGVMove(waitPakin.getMemo(),100+""); + R r=mobileController.AGVMove(waitPakin.getMemo(),6001+"",1); if (r.get("code").equals(200)){ - waitPakin.setBeBatch(1);//0杞�1 - waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu())); + R r1=mobileController.AGVMove(6001+"",waitPakin.getMemo(),2); + if (r1.get("code").equals(200)){ + waitPakin.setItemNum(r.get("msg")+""); + waitPakin.setBeBatch(1);//0杞�1 + waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu())); + } } } - } - } diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java new file mode 100644 index 0000000..e670647 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java @@ -0,0 +1,56 @@ +package com.zy.asrs.task.NewWay; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +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.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; + +/** + * Created by vincent on 2020/7/7 + */ +@Component +public class AutomaticallyAssignOutTasksToRCSScheduler { + + private static final Logger log = LoggerFactory.getLogger(AutomaticallyAssignOutTasksToRCSScheduler.class); + + @Autowired + private WrkMastService wrkMastService; + @Autowired + private MobileController mobileController; + + /** + * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS + */ + @Scheduled(cron = "0/3 * * * * ? ") + private synchronized void execute(){ + //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔� + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 15)); + if(!Cools.isEmpty(wrkMast)){ + return; + } + //鎵惧埌鍑哄簱浠诲姟 + //灏嗕换鍔℃。鐘舵�佷粠30杞�15 + WrkMast wrkMast1 =wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 30)); + if(wrkMast1!=null){ + R r=mobileController.AGVMove(wrkMast1.getMemo()+"","6002",3); + if (r.get("code").equals(200)){ + R r1=mobileController.AGVMove("6002",wrkMast1.getMemo()+"",4); + if (r1.get("code").equals(200)){ + wrkMast1.setWrkSts(15L); + wrkMast1.setPacked(r.get("msg")+"");//RCS 宸ヤ綔鍙� + wrkMastService.updateById(wrkMast1); + } + } + } + } +} diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index 425a04e..06f2801 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -14,6 +14,8 @@ import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.utils.PostMesDataUtils; 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; @@ -58,6 +60,8 @@ private PackQualifiedService packQualifiedService; @Autowired private ReportQueryMapper reportQueryMapper; + @Autowired + private ConfigService configService; public ReturnT<String> start(WrkMast wrkMast) { // 4.鍏ュ簱瀹屾垚 @@ -504,37 +508,14 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); }else{ - //鍑哄簱鏍囪 - packQualifiedService.insertPackQualified(false,new Date(),wrkDetls101.get(0).getMatnr()); - //2.鍑哄簱瀹屾垚涓婃姤 - CombParam combParam = new CombParam(); - combParam.setPackNo(wrkDetls101.get(0).getMatnr()); - combParam.setLocNo(wrkMast.getLocNo()); - combParam.setBarcode(wrkMast.getBarcode()); - //鐩爣绔�206鍑哄簱 - if(wrkMast.getStaNo()==206){ - combParam.setPackSts(1);//OK - combParam.setStepSts(7);//娴嬭瘯搴撳嚭搴撳畬鎴� - }else if(wrkMast.getStaNo()==204){//NG 鍑哄簱 - //NG鍑哄簱淇敼娴嬭瘯妗g殑鐘舵�佷负5.宸茬Щ搴� - TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("user_id",wrkMast.getBarcode()) - .eq("barcode",wrkDetls101.get(0).getMatnr())); - combParam.setPackSts(2);//NG - combParam.setStepSts(8);//NG鍑哄簱瀹屾垚 - testMast.setStatus(5); - if(!testMastService.update(testMast,new EntityWrapper<TestMast>() - .eq("user_id",wrkMast.getBarcode()) - .eq("barcode",wrkDetls101.get(0).getMatnr()))){ - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼娴嬭瘯琛ㄧ姸鎬佷负5澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); - } - }else if(wrkMast.getStaNo()==103){//鐩爣绔�103鍑哄簱 - combParam.setPackSts(1);//OK - combParam.setStepSts(6);//闈欑疆搴撳嚭搴撳畬鎴� + Config config=configService.selectOne(new EntityWrapper<Config>().eq("code","OutTask")); + if(config.getValue().equals("Y")){ + // 淇敼宸ヤ綔涓绘。鐘舵�� + wrkMast.setWrkSts(30L);//绛夊緟涓婃姤 + }else{ + wrkMast.setWrkSts(15L); } - combParam.setRequestTime(DateUtils.convert(now)); -// new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + } } break; @@ -551,14 +532,16 @@ // exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + }else{ + // 淇敼宸ヤ綔涓绘。鐘舵�� + wrkMast.setWrkSts(15L); } } break; default: break; } - // 淇敼宸ヤ綔涓绘。鐘舵�� - wrkMast.setWrkSts(15L); + wrkMast.setModiTime(now); if (!wrkMastService.updateById(wrkMast)) { // exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo()); diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index 3d85ce9..d1c0b90 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -76,22 +76,33 @@ return R.error("鏉$爜涓嶈兘涓虹┖"); } waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); - if (Cools.isEmpty(waitPakins) || waitPakins.size() !=1) { + List<WaitPakin> beBatch = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("be_batch", 1)); + if(beBatch.size() > 1){ + return R.error("缁勬墭妗d腑鏈夊鏉℃惉杩愪换鍔�"); + }else if(Cools.isEmpty(beBatch)){ + return R.error("缁勬墭妗d腑娌℃湁鎼繍浠诲姟"); + } + if (Cools.isEmpty(waitPakins)) { WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); - if (wrkMast != null || waitPakins.size() !=1) { + if (wrkMast != null) { return R.parse("600-閲嶅缁勬墭"); } - return R.parse(CodeRes.NO_COMB_700); - } - int countWait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()) - .eq("io_status", "Y")); - 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 || countWait > 0) { - if (!Cools.isEmpty(waitPakins.get(0).getDeadWarn()) && waitPakins.get(0).getDeadWarn()!=0){ - return R.error(CodeRes.EXIST_500); + for (WaitPakin waitPakin : beBatch) { + waitPakin.setZpallet(param.getBarcode()); + waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("be_batch",1)); + } + }else { + int countWait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()) + .eq("io_status", "Y")); + 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 || countWait > 0) { + if (!Cools.isEmpty(waitPakins.get(0).getDeadWarn()) && waitPakins.get(0).getDeadWarn()!=0){ + return R.error(CodeRes.EXIST_500); + } } } + } if (Cools.isEmpty(param.getLocType1())){ param.setLocType1((short)1); @@ -228,18 +239,6 @@ locMast.setModiTime(now); if (!locMastService.updateById(locMast)){ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); - }else{ - if (locMast.getRow1()<2){ - //1.鎵爜涓婃姤 - CombParam combParam = new CombParam(); - combParam.setPackNo(waitPakins.get(0).getMatnr()); - combParam.setBarcode(wrkMast.getBarcode()); - combParam.setLocNo(wrkMast.getLocNo()); - combParam.setPackSts(0); - combParam.setStepSts(1); - combParam.setRequestTime(DateUtils.convert(now)); -// new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); - } } } else { throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index bec9086..f63be60 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8081 + port: 8083 servlet: context-path: /@pom.build.finalName@ # tomcat: @@ -12,7 +12,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs + url: jdbc:sqlserver://178.18.1.200:1433;databasename=jxtlfasrs # url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs username: sa password: sa@123 @@ -60,6 +60,8 @@ doubleLocs: 3 # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� groupCount: 3 + workIssued : 1 + url: 1 # MES绯荤粺 mes: @@ -105,6 +107,6 @@ #RCS rcs: address: - url: http://192.168.3.102:16001 + url: http://178.18.1.220:50001 #浠诲姟涓嬪彂鍦板潃 - attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub. \ No newline at end of file + attrcs: rbrainrobot/create_task \ No newline at end of file -- Gitblit v1.9.1