From 80cd1569120416b096d28ebbe9a8e6e1d867f6e0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 19 九月 2024 14:19:45 +0800
Subject: [PATCH] 盘点异常处理
---
src/main/resources/mapper/OrderDetlMapper.xml | 6
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 5
src/main/java/com/zy/asrs/entity/param/PdtzParam.java | 43 ++++
src/main/java/com/zy/common/constant/MesConstant.java | 3
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 401 +++++++++++++++++++++++++++++++++++++-------
src/main/java/com/zy/asrs/controller/MobileController.java | 14 -
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 21 -
src/main/java/com/zy/asrs/service/MobileService.java | 5
8 files changed, 410 insertions(+), 88 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 69b722d..9cd8789 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -563,15 +563,11 @@
return mobileService.pdckqr(param);
}
-// @PostMapping("/pdtz/auth")
-// @ManagerAuth(memo = "鐩樼偣璋冩暣搴撳瓨")
-// public synchronized R pdtz(@RequestBody PdckqrParam param) {
-// // 鏍规嵁宸ヤ綔鍙风‘璁ゅ鏍�
-// if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())){
-// return R.parse(BaseRes.PARAM);
-// }
-// return mobileService.pdtz(param);
-// }
+ @PostMapping("/pdtz/auth")
+ @ManagerAuth(memo = "鐩樼偣寮傚父鎸夊疄鐗╄皟鏁村簱瀛樹俊鎭�")
+ public synchronized R pdtz(@RequestBody PdtzParam param) {
+ return mobileService.pdtz(param);
+ }
@PostMapping("/pdaWarehousingNow")
@ManagerAuth(memo = "pda缁勬墭绔嬪嵆鍏ュ簱")
diff --git a/src/main/java/com/zy/asrs/entity/param/PdtzParam.java b/src/main/java/com/zy/asrs/entity/param/PdtzParam.java
new file mode 100644
index 0000000..9672254
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PdtzParam.java
@@ -0,0 +1,43 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 鐩樼偣寮傚父璋冩暣搴撳瓨dto
+ * @createDate 2024/9/12 14:53
+ */
+@Data
+public class PdtzParam {
+
+ private String barcode;// 鎵樼洏鐮�
+ private Integer palletizingNo;// 鐮佸灈浣嶇紪鍙�
+ private List<PdtzParam.MatList> matList; // 鏈ㄧ闆嗗悎
+
+ @Data
+ public static class MatList {
+ // 鍐椾綑鍙傛暟锛岀粰mes鎺ㄦ椂鍜屽叆搴撴椂缁撴瀯淇濇寔涓�鑷�
+ private String barcode;// 鎵樼洏鐮�
+ private Integer palletizingNo;// 鐮佸灈浣嶇紪鍙�
+
+ private String boxPos; // 绠卞瓙浣嶇疆锛屼笉濉紝鑾峰彇浠诲姟鐨勪綅缃�
+
+ private String packageGroupNo; // 鍖呰缁勫彿
+ private String boxType; // 鏈ㄧ绫诲瀷
+ private String rollType; // 绠¤姱绫诲瀷
+ private String wideInWidth; // 瀹炴祴瀹藉箙 鎸夎鏍艰В鏋�
+ private String thickness; // 鐢熺當鍘氬害 鎸夎鏍艰В鏋�
+
+ private String rollNo; // 鍗峰彿
+ private String boxNo; // 绠卞彿
+ private String specs; //瑙勬牸
+ private Double length; //闀垮害
+ private Integer splices; //鎺ュご 涓�
+ private Double netWeight; // 鍑�閲�
+ private Double grossWeight; // 姣涢噸
+ private String fqTime; // 鍒嗗垏涓嬫枡鏃堕棿
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 48e8ddf..3346fd9 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -43,4 +43,9 @@
void updateOrderDetlByGroupNo(@Param("orderNo") String orderNo,@Param("brand") String brand, @Param("count") double count);
void updateOrderDetlQtyByGroupNo(@Param("orderNo") String orderNo,@Param("brand") String brand);
+
+ /**
+ * 鎸夊寘瑁呯粍鍙锋爣璁扮洏鐐硅褰曞紓甯�
+ */
+ void updateCheckExceptionByGroup(@Param("groups") List<String> groups);
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 8bd8819..f048580 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -66,4 +66,9 @@
* pda鍙嶄慨鍝佸叆搴�
*/
R pdaFxprk(FxprkParam param, Long userId);
+
+ /**
+ * 鐩樼偣寮傚父鎸夊疄鐗╄皟鏁村簱瀛樹俊鎭�
+ */
+ R pdtz(PdtzParam param);
}
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 b3a8d55..be1cef1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.mapper.MatMapper;
+import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.constant.MesConstant;
@@ -92,6 +93,9 @@
@Resource
private OpenServiceImpl openServiceImpl;
+
+ @Resource
+ private OrderDetlMapper orderDetlMapper;
@Override
@Transactional
@@ -1203,7 +1207,7 @@
throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getBarcode());
}
if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) {
- throw new CoolException(wrkMast.getWrkNo() + ",宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�");
+ throw new CoolException(wrkMast.getWrkNo() + "锛氬伐浣滅姸鎬佷笉鍖归厤");
}
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
@@ -1249,7 +1253,7 @@
}
// 鎺ㄩ�佺粰gwcs鎵ц鍛戒护
- openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo(),wrkMast.getBarcode());
+ openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo(),wrkMast.getBarcode(),"鐩樼偣纭鎴愬姛鎺ㄩ�乬wcs");
return R.ok("鐩樼偣纭鎴愬姛");
@@ -1425,7 +1429,7 @@
}
// 鎺ㄩ�丟WCS鐩爣娑堟伅
- openServiceImpl.pushStaNoToGwcs(sourceStaNo,dto.getStaNo(),dto.getWorkNo(),barcode);
+ openServiceImpl.pushStaNoToGwcs(sourceStaNo,dto.getStaNo(),dto.getWorkNo(),barcode,"pda缁勬墭绔嬪嵆鍏ュ簱鎺ㄩ�乬wcs");
return R.ok("鍏ュ簱鍚姩鎴愬姛");
}
@@ -1511,12 +1515,340 @@
}
// 杩斿洖GWCS鐩爣淇℃伅
- boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode());
+ openServiceImpl.pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(),"浜屾ゼ杩斾慨鍏ュ簱鎺ㄩ�乬wcs");
// 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒�
pushDpToMes(groupNos);
return R.ok("鍏ュ簱鎴愬姛");
+ }
+
+ @Override
+ @Transactional
+ public R pdtz(PdtzParam param) {
+
+ String barcode = param.getBarcode();
+ Integer palletizingNo = param.getPalletizingNo();
+ List<PdtzParam.MatList> matList = param.getMatList();
+ // 澧炲姞鍐椾綑瀛楁锛岀粰mes鎺ㄩ�佹椂缁撴瀯鍜屽叆搴撲繚瀛樹竴鑷�
+ for (PdtzParam.MatList matList1 : matList) {
+ matList1.setBarcode(barcode);
+ matList1.setPalletizingNo(palletizingNo);
+ }
+
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+ LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+
+ // 瀹炵墿鍖呰缁勫彿
+ List<String> groups = matList.stream().map(PdtzParam.MatList::getPackageGroupNo).distinct().collect(Collectors.toList());
+
+ // 搴撳瓨鏄庣粏鏈ㄧ浣嶇疆闆嗗悎
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("zpallet", barcode));
+ List<String> collect1 = locDetls.stream().map(LocDetl::getOrigin).distinct().collect(Collectors.toList());
+ // 宸ヤ綔鏄庣粏鏈ㄧ浣嶇疆闆嗗悎
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", barcode));
+ List<String> collect2 = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+ // 宸ヤ綔鐨勫寘瑁呯粍鍙�
+ List<String> wrkBrandlist = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList());
+ // 宸ヤ綔璁㈠崟鏄庣粏
+ List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("brand", wrkBrandlist));
+
+ Date now = new Date();
+
+ // 鍒ゆ柇瑕佽皟鏁寸殑鏈ㄧ鎵�鍦ㄤ綅缃叧绯�
+ if (collect1.size() == 0 || collect2.size() == 0){
+ return R.parse(barcode+"锛氫换鍔″簱瀛樺紓甯革紒");
+ } else if(collect1.size() == 2 && collect2.size() == 1) { // 2鍑�1锛岄兘鏄崟绠辩殑
+ if (matList.size() == 0) { // 瀹炵墿鏄┖
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // todo 鏍囪寮傚父锛屾帹閫乵es锛屽洖搴�
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ kctzPushMes(jsonObject);
+ kctzReturn(wrkMast);
+ } else { // 瀹炵墿涓嶄负绌�
+ // 瀵绘壘瀹炵墿鐨勪綅缃�
+ List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().in("brand", groups).notIn("barcode",barcode));
+ if (locDetls1.size() == 0) { // 瀹炵墿鏃犲簱瀛�
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // 琛ュ厖鏈ㄧ浣嶇疆
+ matList.get(0).setBoxPos(collect2.get(0));
+ // 鎶婂疄鐗╃墿鏂欎俊鎭斁鍏ヤ换鍔℃墍鍦ㄥ簱浣�
+ insertLocDetl(locMast.getLocNo(),barcode,matList);
+ // todo 鏍囪寮傚父锛屾帹閫乵es锛屽洖搴�
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ jsonObject.put("insert",matList);
+ kctzPushMes(jsonObject);
+ kctzReturn(wrkMast);
+ }else { // 瀹炵墿鏈夊簱瀛�
+ List<String> brandList = locDetls1.stream().map(LocDetl::getBrand).distinct().collect(Collectors.toList());
+ return R.parse(brandList+"搴撳瓨宸插瓨鍦紝璇峰厛澶勭悊锛�");
+ }
+ }
+ } else if(collect1.size() == 1 && collect2.size() == 1) {
+ if (matList.size() == 0) { // 瀹炵墿涓虹┖
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // 瀹屾垚杩欐潯鐩樼偣浠诲姟锛氭洿鏂拌鍗曞畬鎴愭暟閲忥紝宸ヤ綔涓绘。5
+ for(WrkDetl wrkDetl:wrkDetls) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+ }
+ }
+ if (locMast.getLocSts().equals("P")) {
+ locMast.setLocSts("O");
+ locMast.setBarcode("");
+ locMast.setSheetNo("");
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ locMastService.updateById(locMast);
+ }
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(now);
+ wrkMastService.updateById(wrkMast);
+
+ // todo 鏍囪寮傚父锛屼笉鍥炲簱锛岀粰gwcs涓嬪彂鍘诲彔鐩樻満鍛戒护,鎺ㄩ�乵es
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ kctzPushMes(jsonObject);
+
+ // 鎺ㄩ�佺粰gwcs鎵ц鍛戒护
+ openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),3013,wrkMast.getWrkNo(),wrkMast.getBarcode(),"鐩樼偣寮傚父璋冩暣鍚庡洖鍙犵洏鏈烘帹閫乬wcs");
+ } else { // 瀹炵墿涓嶄负绌�
+ // 瀵绘壘瀹炵墿鐨勪綅缃�
+ List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().in("brand", groups).notIn("barcode",barcode));
+ if (locDetls1.size() == 0) { // 瀹炵墿鏃犲簱瀛�
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // 琛ュ厖鏈ㄧ浣嶇疆
+ for (PdtzParam.MatList matList1:matList) {
+ matList1.setBoxPos(collect2.get(0));
+ }
+ // 鎶婂疄鐗╃墿鏂欎俊鎭斁鍏ヤ换鍔℃墍鍦ㄥ簱浣�
+ insertLocDetl(locMast.getLocNo(),barcode,matList);
+ // todo 鏍囪寮傚父锛屽洖搴擄紝鎺ㄩ�乵es
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ jsonObject.put("insert",matList);
+ kctzPushMes(jsonObject);
+
+ kctzReturn(wrkMast);
+ } else { // 瀹炵墿鏈夊簱瀛�
+ List<String> brandList = locDetls1.stream().map(LocDetl::getBrand).distinct().collect(Collectors.toList());
+ return R.parse(brandList+"搴撳瓨宸插瓨鍦紝璇峰厛澶勭悊锛�");
+ }
+ }
+ } else if (collect1.size() == 2 && collect2.size() == 2) {
+ if (matList.size() == 0) { // 瀹炵墿涓虹┖
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // 瀹屾垚杩欐潯鐩樼偣浠诲姟锛氭洿鏂拌鍗曞畬鎴愭暟閲忥紝宸ヤ綔涓绘。5
+ for(WrkDetl wrkDetl:wrkDetls) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+ }
+ }
+ if (locMast.getLocSts().equals("P")) {
+ locMast.setLocSts("O");
+ locMast.setBarcode("");
+ locMast.setSheetNo("");
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ locMastService.updateById(locMast);
+ }
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(now);
+ wrkMastService.updateById(wrkMast);
+
+ // todo 鏍囪寮傚父锛屾帹閫乵es,涓嶅洖搴擄紝缁檊wcs涓嬪彂鍘诲彔鐩樻満鍛戒护
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ jsonObject.put("insert",matList);
+ kctzPushMes(jsonObject);
+
+ // 鎺ㄩ�佺粰gwcs鎵ц鍛戒护
+ openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),3013,wrkMast.getWrkNo(),wrkMast.getBarcode(),"鐩樼偣寮傚父璋冩暣鍚庡洖鍙犵洏鏈烘帹閫乬wcs");
+ } else { // 瀹炵墿涓嶄负绌�
+ // 瀵绘壘瀹炵墿鐨勪綅缃�
+ List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().in("brand", groups).notIn("barcode",barcode));
+ if (locDetls1.size() == 0) { // 瀹炵墿鏃犲簱瀛�
+ // 鎶婅浠诲姟鍦ㄥ簱鏄庣粏鍒犻櫎
+ locDetlService.delete(new EntityWrapper<LocDetl>().in("brand",wrkBrandlist));
+ // 琛ュ厖鏈ㄧ浣嶇疆
+ matList.get(0).setBoxPos("宸�");
+ matList.get(1).setBoxPos("鍙�");
+ // 鎶婂疄鐗╃墿鏂欎俊鎭斁鍏ヤ换鍔℃墍鍦ㄥ簱浣�
+ insertLocDetl(locMast.getLocNo(),barcode,matList);
+ // todo 鏍囪寮傚父锛屽洖搴擄紝鎺ㄩ�乵es
+ for(OrderDetl orderDetl:orderDetlList) {
+ orderDetl.setSource(1);
+ orderDetlMapper.updateById(orderDetl);
+ }
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("delete",wrkBrandlist);
+ jsonObject.put("insert",matList);
+ kctzPushMes(jsonObject);
+
+ kctzReturn(wrkMast);
+ } else { // 瀹炵墿鏈夊簱瀛�
+ List<String> brandList = locDetls1.stream().map(LocDetl::getBrand).distinct().collect(Collectors.toList());
+ return R.parse(brandList+"搴撳瓨宸插瓨鍦紝璇峰厛澶勭悊锛�");
+ }
+ }
+ }
+
+ return R.ok("璋冩暣鎴愬姛");
+ }
+
+ // 鍚屾鐩樼偣寮傚父璋冩暣缁撴灉缁檓es
+ void kctzPushMes(JSONObject jsonObject) {
+ // 鎺ュ彛璇锋眰缁撴灉
+ boolean success = false;
+ // 鎺ュ彛璁板綍绌洪棿鍚嶇О
+ String message = "鍚屾鐩樼偣寮傚父璋冩暣缁撴灉缁檓es";
+
+ // 鏋勯�犺姹備綋
+ String body = jsonObject.toJSONString();
+ String response = "";
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.MES_CC_IP_PORT)
+ .setPath(MesConstant.MES_CC_YCTZ_URL)
+ .setJson(body)
+ .build()
+ .doPost();
+ if (!Cools.isEmpty(response)) {
+ JSONObject result = JSON.parseObject(response);
+ if (result.getInteger("code").equals(200)) {
+ success = true;
+ }
+ } else {
+ log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_YCTZ_URL, body, response);
+ }
+ } catch (Exception e) {
+ log.error(message + "寮傚父锛歿}", e);
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ message,
+ MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_YCTZ_URL,
+ null,
+ "127.0.0.1",
+ body,
+ response,
+ success
+ );
+ } catch (Exception e) {
+ log.error("", e);
+ }
+ }
+ }
+
+ // 鐩樼偣寮傚父鍥炲簱
+ @Transactional
+ public void kctzReturn(WrkMast wrkMast) {
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", wrkMast.getStaNo())
+ .eq("crn_no", wrkMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+ Date now = new Date();
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(14L); // 宸ヤ綔鐘舵��: 14.宸插嚭搴撴湭纭
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+
+ // 鎺ㄩ�佺粰gwcs鎵ц鍛戒护
+ openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo(),wrkMast.getBarcode(),"鐩樼偣寮傚父璋冩暣鍚庢帹閫乬wcs");
+ }
+
+ /**
+ * 璋冩暣搴撳瓨鏄庣粏
+ */
+ @Transactional
+ void insertLocDetl(String locNo, String barcode, List<PdtzParam.MatList> matList) {
+ Date now = new Date();
+ for (PdtzParam.MatList mat : matList) {
+ LocDetl locDetl = new LocDetl();
+ locDetl.setBatch("");
+ locDetl.setLocNo(locNo);
+ locDetl.setMatnr(mat.getSpecs()); // 瑙勬牸
+ locDetl.setMaktx(mat.getSpecs()); //瑙勬牸
+ locDetl.setUnit(mat.getBoxNo()); // 绠卞彿
+ locDetl.setModel(mat.getRollNo()); // 鍗峰彿
+ locDetl.setBrand(mat.getPackageGroupNo()); // 鍖呰缁勫彿
+ locDetl.setZpallet(barcode); // 鎵樼洏鐮�
+ locDetl.setBarcode(barcode);
+ locDetl.setOrigin(mat.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+ locDetl.setColor(mat.getBoxType()); // 鏈ㄧ绫诲瀷
+ locDetl.setManu(mat.getRollType()); // 绠¤姱绫诲瀷
+ locDetl.setSku(mat.getWideInWidth()); // 瀹炴祴瀹藉箙
+ locDetl.setItemNum(mat.getThickness()); // 鐢熺當鍘氬害
+ locDetl.setManuDate(mat.getFqTime()); // 鍒嗗垏涓嬫枡鏃堕棿
+ locDetl.setWeight(mat.getNetWeight()); // 鍑�閲�
+ locDetl.setVolume(mat.getGrossWeight()); // 姣涢噸
+ locDetl.setLength(mat.getLength()); // 闀垮害
+ locDetl.setSpecs(String.valueOf(mat.getSplices())); // 鎺ュご
+ locDetl.setAnfme(1.0);
+// wrkDetl.setThreeCode(null); // 閫氳繃mes鎴杄xcel瀵煎叆妫�娴嬫槸鍚﹀悎鏍� 0涓嶅悎鏍硷紝1 鍚堟牸
+ locDetl.setAppeTime(now);
+ locDetl.setModiTime(now);
+ locDetlService.insert(locDetl);
+ }
}
/**
@@ -1575,67 +1907,6 @@
}
}
- 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<>();
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 67a7ab4..2de975b 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1054,7 +1054,7 @@
StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0);
// 杩斿洖GWCS鐩爣淇℃伅
- boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode());
+ pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(),"涓�妤煎弽淇搧鍏ュ簱鎺ㄩ�乬wcs");
// if (!result) {
// throw new CoolException("鍏ュ簱鍥炴帹鍏ュ簱鐮佸ご缁橤WCS澶辫触");
// }
@@ -1173,7 +1173,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 杩斿洖GWCS鐩爣淇℃伅
- pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode());
+ pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode(),"浜屾ゼ绌烘墭鍥炴祦鎺ㄩ�乬wcs");
return R.ok("绌烘墭鍥炴祦璇锋眰鎴愬姛");
}
@@ -1233,7 +1233,7 @@
StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0);
// 杩斿洖GWCS鐩爣淇℃伅
- pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode());
+ pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode(),"gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs");
int workNo = dto.getWorkNo();
@@ -1741,7 +1741,7 @@
return wrkDetls.size() > 1 ? 1 : 4; // 涓�鏉¤褰曞氨鏄竴鍗�
}
- public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) {
+ public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode,String message) {
boolean success = false;
// 鑾峰彇璇锋眰澶�
Map<String, Object> headers = getHeaders();
@@ -1764,23 +1764,16 @@
.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绯荤粺澶辫触");
+ log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
}
} catch (Exception e) {
- log.error("鍏ュ簱璇锋眰鎺ュ彛澶辫触锛歿}", e.getMessage());
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// return FAIL.setMsg(e.getMessage());
+ log.error(message + "寮傚父锛歿}", e);
} finally {
try {
// 淇濆瓨鎺ュ彛鏃ュ織
apiLogService.save(
- "鍏ュ簱",
+ message,
MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL,
null,
"127.0.0.1",
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index c7c4b53..5781136 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -22,6 +22,9 @@
// 缁欎粨鍌∕ES鎺ㄩ�佺洏鐐瑰嚭搴撶粨鏋�
public static final String MES_CC_SB_URL = "/planCutRolling/v1/updateBatchHandleType";
+ // 缁欎粨鍌∕ES鎺ㄩ�佺洏鐐瑰紓甯歌皟鏁寸粨鏋�
+ public static final String MES_CC_YCTZ_URL = "/planCutRolling/v1/exception";
+
// MES璐ㄩ噺IP鍦板潃
public static final String MES_ZL_IP_PORT = "http://172.22.152.3:8157";
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 8c94d80..dede67e 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -231,5 +231,11 @@
and order_no = #{orderNo}
and brand = #{brand}
</update>
+ <update id="updateCheckExceptionByGroup">
+ update man_order_detl set source = 1 where 1 = 1 and brand in
+ <foreach collection="groups" item="item" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </update>
</mapper>
--
Gitblit v1.9.1