From 93860dbc9e47ef9886c1347ce0bf14e9f0438b2a Mon Sep 17 00:00:00 2001
From: IZCD4L12RTSW0VZ\Administrator <skyouc>
Date: 星期一, 05 一月 2026 17:20:14 +0800
Subject: [PATCH] 备货派工单优化 库存调整反馈优化
---
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 184 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 173 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index a23a420..c565ee8 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -37,17 +37,17 @@
import com.zy.asrs.utils.Utils;
import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
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.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+@Slf4j
@Service("kopenApiServiceImpl")
public class KopenApiServiceImpl implements KopenApiService {
@@ -65,6 +65,13 @@
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
private CheckOrderDetlService checkOrderDetlService;
+ @Value("${kopen.url}")
+ private String url;
+ @Value("${kopen.port}")
+ private String port;
+ @Value("${kopen.prefix}")
+ private String prefix;
+
/**
* 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
@@ -94,15 +101,16 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public XSR getInDispatchResult(List<ReportOrderParam> params) {
+ public XSR getInDispatchResult(List<ReportOrderParam> params, Order order) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
String response = null;
+
try {
response = new HttpHandler.Builder()
- .setUri("127.0.0.1:8081")
- .setPath("/wms/order/getInDispatchResult")
+ .setUri(url + ":" + port)
+ .setPath(prefix + "/getInDispatchResult")
.setJson(JSONObject.toJSONString(params))
.build()
.doPost();
@@ -111,15 +119,52 @@
}
JSONObject jsonObject = JSONObject.parseObject(response);
Integer code = jsonObject.getInteger("code");
- if (!Objects.isNull(code) && code.equals(1)) {
+ if (!Objects.isNull(code) && code.equals(200)) {
+ if (!Objects.isNull(order)) {
+ order.setReportOnce(5);
+ orderService.updateById(order);
+ }
return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
} else {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce ++;
+ order.setReportOnce(reportOnce);
+ orderService.updateById(order);
+ }
String msg = jsonObject.getString("message");
return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
}
} catch (Exception e) {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce ++;
+ order.setReportOnce(reportOnce);
+ orderService.updateById(order);
+ }
+ log.error(e.getMessage(), e);
return XSR.error(e.getMessage());
}
+ }
+
+ /**
+ * 鑾峰彇鑷畾涔夎姹傚ご
+ * @author Ryan
+ * @date 2025/12/29 9:11
+ * @return java.util.Map<java.lang.String,java.lang.Object>
+ */
+ private Map<String, Object> getHeaderParam() {
+ Map<String, Object> headerParam = new HashMap<>();
+// headerParam.put("accept", "*/*");
+// headerParam.put("connection", "Keep-Alive");
+ //璁剧疆璇锋眰杩炴帴鐨凾oken
+ headerParam.put("api_key", "WMS");
+ headerParam.put("charset", "UTF-8");
+ headerParam.put("timestamp", new Date());
+ headerParam.put("format", "xml");
+ headerParam.put("signature", "c56ced444ed772098ffeb59537bbfa59");
+
+ return headerParam;
}
/* */
@@ -296,6 +341,8 @@
// 澶囪揣鎸囩ず娲惧伐鍗曪紙EO/SO锛夊嚭搴�
order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
orderParams.getDispatch_no()));
+ } else {
+ throw new CoolException("鍗曟嵁绫诲瀷涓嶅瓨鍦紝涓嶆敮鎸佹坊鍔狅紒锛�");
}
} else {
throw new CoolException("鍗曟嵁绫诲瀷涓嶅瓨鍦紝涓嶆敮鎸佹坊鍔狅紒锛�");
@@ -340,7 +387,8 @@
if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍏ュ簱
newOrder.setPakinPakoutStatus(1);
- newOrder.setDocType(Long.parseLong(params.getType()));
+ Integer docType = OrderWkType.getDocType(params.getType());
+ newOrder.setDocType(Long.parseLong(docType + ""));
newOrder.setNumber(params.getInv_no());
} else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍑哄簱
@@ -516,6 +564,115 @@
return XSR.ok("闆朵欢鎹熸孩鍗曚笅鍙戞垚鍔燂紒锛�");
}
+ /**
+ * 鎹熸孩鍗曞畬缁撲笂鎶�
+ * @author Ryan
+ * @date 2025/12/30 16:57
+ * @param params
+ * @param order
+ * @return com.zy.api.entity.dto.XSR
+ */
+ @Override
+ public XSR reportCheckOrder(List<StockAdjustParams> params, CheckOrder order) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ String response = null;
+
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(url + ":" + port)
+ .setPath(prefix + "/getBSBYResult")
+ .setJson(JSONObject.toJSONString(params))
+ .build()
+ .doPost();
+ if (Objects.isNull(response) || response.trim().isEmpty()) {
+ return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+ }
+ XSR jsonObject = JSONObject.parseObject(response, XSR.class);
+ if (jsonObject.getSuccess()) {
+ if (!Objects.isNull(order)) {
+ order.setReportOnce(5);
+ order.setSettle(5L);
+ checkOrderService.updateById(order);
+ }
+ return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+ } else {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce ++;
+ order.setReportOnce(reportOnce);
+ checkOrderService.updateById(order);
+ }
+ String msg = jsonObject.getMessage();
+ return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+ }
+ } catch (Exception e) {
+// if (!Objects.isNull(order)) {
+// int reportOnce = order.getReportOnce();
+// reportOnce ++;
+// order.setReportOnce(reportOnce);
+// orderService.updateById(order);
+// }
+ log.error(e.getMessage(), e);
+ return XSR.error(e.getMessage());
+ }
+// return null;
+ }
+
+ /**
+ * 澶囪揣鍗曞弽棣�
+ * @param params
+ * @param order
+ * @return
+ */
+ @Override
+ public XSR getOutDetailsResult(List<StockUpOrderParams> params, Order order) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ String response = null;
+
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(url + ":" + port)
+ .setPath(prefix + "/getOutDetailsResult")
+ .setJson(JSONObject.toJSONString(params))
+ .build()
+ .doPost();
+ if (Objects.isNull(response) || response.trim().isEmpty()) {
+ return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+ }
+ JSONObject jsonObject = JSONObject.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if (!Objects.isNull(code) && code.equals(200)) {
+ if (!Objects.isNull(order)) {
+ order.setReportOnce(5);
+ orderService.updateById(order);
+ }
+ return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+ } else {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce ++;
+ order.setReportOnce(reportOnce);
+ orderService.updateById(order);
+ }
+ String msg = jsonObject.getString("message");
+ return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+ }
+ } catch (Exception e) {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce ++;
+ order.setReportOnce(reportOnce);
+ orderService.updateById(order);
+ }
+ log.error(e.getMessage(), e);
+ return XSR.error(e.getMessage());
+ }
+ }
+
/** 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
* @param userId */
@Transactional(rollbackFor = Exception.class)
@@ -543,7 +700,7 @@
order.setSettle(Long.valueOf(CommonEnum.COMMON_ENUM_Y.type + ""));
order.setStatus(CommonEnum.COMMON_ENUM_Y.type);
order.setOrderTime(params.getUpdate_time());
- order.setMemo(params.getResason());
+ order.setMemo(params.getReason());
order.setShipName(params.getReason_name());
order.setCreateTime(new Date());
order.setUpdateTime(new Date());
@@ -566,6 +723,7 @@
if (Objects.isNull(locDetl)) {
throw new CoolException("搴撳瓨涓嶅瓨鍦紒锛�");
}
+
BeanUtils.copyProperties(locDetl, checkOrderDetl);
checkOrderDetl.setLocDetlId(locDetl.getId());
checkOrderDetl.setOrderId(order.getId());
@@ -578,7 +736,7 @@
checkOrderDetl.setSuppCode(locDetl.getSuppCode());
checkOrderDetl.setStandby1(locDetl.getSuppCode());
checkOrderDetl.setAnfme(new BigDecimal(locDetl.getAnfme().toString()));
- checkOrderDetl.setDiffQty(BigDecimal.ZERO);
+ checkOrderDetl.setDiffQty(new BigDecimal(item.getBsby_qty() + ""));
checkOrderDetl.setWorkQty(BigDecimal.ZERO);
checkOrderDetl.setStatus(1);
checkOrderDetl.setZpallet(locDetl.getZpallet());
@@ -593,4 +751,8 @@
});
}
+ private String kopen() {
+ return url + ":" + port + prefix;
+ }
+
}
--
Gitblit v1.9.1