From a5990a214ba13119d617b4532e2b9eef2fe70cda Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 12 九月 2024 14:09:01 +0800 Subject: [PATCH] mes接口对接 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 223 insertions(+), 3 deletions(-) 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 8974d59..b3a8d55 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -9,6 +9,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; +import com.zy.asrs.mapper.MatMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.constant.MesConstant; @@ -40,6 +41,8 @@ @Autowired private MatService matService; + @Autowired + private MatMapper matMapper; @Autowired private WaitPakinService waitPakinService; @Autowired @@ -1174,7 +1177,7 @@ if (wrkMast == null) { throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getBarcode()); } - if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) { + if (wrkMast.getWrkSts() != 20) { throw new CoolException(wrkMast.getWrkNo() + ",宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�"); } @@ -1207,6 +1210,8 @@ List<PdckqrParam.Material> materials = param.getMaterials(); boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials); + // todo 涓ょ鐩樹袱绠遍渶瑕佺‘瀹氫綅缃病閿� + if (isFullyCancelled) { // 鐩樼偣鐗╂枡纭垚鍔燂紝宸ヤ綔妗h浆鎹� 鐩樼偣鍑哄簱->鐩樼偣鍐嶅叆搴擄紝涓嬪彂鍥炲簱鍛戒护 // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� if (!wrkMastLogService.save(wrkMast.getWrkNo())) { @@ -1249,11 +1254,19 @@ return R.ok("鐩樼偣纭鎴愬姛"); } else { // 鐗╂枡涓嶄竴鑷� - // todo 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶寰呭畾 + // 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶锛氬脊鍑鸿皟鏁寸晫闈� +// 閲嶆柊鎵弿瀹炵墿涓婇潰鐨勭爜杩涜璋冩暣 +// 瀹炵墿鍦ㄥ簱瀛橀噷闈㈢殑鍦版柟娓呯┖锛屼换鍔℃墍鍦ㄥ簱瀛樻竻绌� +// 灏嗗疄鐗╁拰褰撳墠鎵樼洏浣嶇疆鍜屽簱浣嶇粦瀹� +// 涓�涓湪绠辨儏鍐电洿鎺ヨ皟鏁� +// 涓や釜鏈ㄧ鍑轰袱涓� 閮借皟鏁� +// 涓や釜鏈ㄧ鍑轰竴涓� 璋冩暣涓�涓� +// 宸ヤ綔妗f爣璁板紓甯�->鍥炲簱 + + return R.error("鐩樼偣纭寮傚父"); } - return R.error("鐩樼偣纭寮傚父"); } @Override @@ -1416,6 +1429,213 @@ return R.ok("鍏ュ簱鍚姩鎴愬姛"); } + @Override + public R pdaFxprk(FxprkParam param, Long userId) { + + // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅 + List<String> groupNos = param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList()); + List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", groupNos)); + if (list.isEmpty()) { + throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getBoxList().toString()); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short) 1); + StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); + + int workNo = dto.getWorkNo(); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(param.getPalletizingNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setAppeUser(userId); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + for (Mat obj : list) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(obj); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setAnfme(1.0); + // 閲嶆柊瀹氫綅鏈ㄧ浣嶇疆 + for (FxprkParam.Box box :param.getBoxList()) { + if (box.getPackageGroupNo().equals(obj.getBrand())) { + if (!box.getBoxPos().equals(obj.getOrigin()) || !wrkDetl.getZpallet().equals(param.getBarcode())) { + wrkDetl.setOrigin(box.getBoxPos()); + wrkDetl.setZpallet(param.getBarcode()); + wrkDetl.setBarcode(param.getBarcode()); + matMapper.updateBoxPos(box.getPackageGroupNo(), box.getBoxPos(),param.getBarcode()); + } + break; + } + } + wrkDetl.setIoTime(now); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")) { + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤"); + } + + // 杩斿洖GWCS鐩爣淇℃伅 + boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode()); + + // 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒� + pushDpToMes(groupNos); + + return R.ok("鍏ュ簱鎴愬姛"); + } + + /** + * 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒� + */ + private void pushDpToMes(List<String> groupNos) { + boolean success = false; + // 鑾峰彇璇锋眰澶� + Map<String,Object> headers = new HashMap<>(); + headers.put("Content-Type","application/json;charset=UTF-8"); + + // 鏋勯�犺姹備綋 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("groupNos", groupNos); + String body = jsonObject.toJSONString(); + + String response = ""; + try { + response = new HttpHandler.Builder() + .setUri(MesConstant.MES_CC_IP_PORT) + .setPath(MesConstant.MES_CC_DP_URL) + .setHeaders(headers) + .setJson(body) + .build() + .doGet(); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject1 = JSONObject.parseObject(response); + int code = (int) jsonObject1.get("code"); + boolean state = jsonObject1.getBoolean("state"); + String msg = (String) jsonObject1.get("message"); + if (code == 200 && state) { + success = true; + } + throw new CoolException(msg); + } else { + log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, body, response); + throw new CoolException("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐�"); + } + } catch (Exception e) { + log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅ紓甯革細{}", e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒�", + MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + } + + public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) { + boolean success = false; + // 鑾峰彇璇锋眰澶� + Map<String, Object> headers = getHeaders(); + + // 鏋勯�犺姹備綋 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("workNo", workNo); + jsonObject.put("staNo", staNo); + jsonObject.put("sourceStaNo", palletizingNo); + jsonObject.put("barcode", barcode); + String body = jsonObject.toJSONString(); + String response = ""; + try { + response = new HttpHandler.Builder() + .setUri(MesConstant.GWCS_IP_PORT) + .setPath(MesConstant.GWCS_FPKW_URL) + .setHeaders(headers) + .setJson(body) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + success = true; +// // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� +// if (!orderService.updateSettle(order.getId(), 6L, null)) { +// throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); +// } + } else { + log.error("zmws鎺ㄩ�佸叆搴撶爜澶寸珯鐐规帴鍙eけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response); + throw new CoolException("涓婃姤mes绯荤粺澶辫触"); + } + } catch (Exception e) { + log.error("鍏ュ簱璇锋眰鎺ュ彛澶辫触锛歿}", e.getMessage()); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鍏ュ簱", + MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + return success; + } + Map<String, Object> getHeaders(){ + Map<String,Object> headers = new HashMap<>(); + headers.put("digi-type","sync "); + headers.put("digi-protocol","raw"); + headers.put("digi-datakey"," XCommon.ImportData"); + + return headers; + } private Map<String, String> getPackageGroupNoByGwms(List<String> boxNoList) { Map<String, String> map = null; Map<String, Object> headers = new HashMap<>(); -- Gitblit v1.9.1