From 5d56a8c20ec2d58d7f6a1f1bb970c0632172b357 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期二, 20 一月 2026 13:51:29 +0800
Subject: [PATCH] 备货指示派工单优化
---
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 111 insertions(+), 9 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 f37a826..865f9d7 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.api.service.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -14,6 +15,7 @@
import com.zy.api.entity.StockAdjustParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
+import com.zy.api.entity.dto.LocDetlDto;
import com.zy.api.entity.dto.XSR;
import com.zy.api.enums.MatLocType;
import com.zy.api.enums.OrderType;
@@ -46,6 +48,7 @@
import java.math.BigDecimal;
import java.util.*;
+import java.util.stream.Collectors;
@Slf4j
@Service("kopenApiServiceImpl")
@@ -83,6 +86,7 @@
*/
@Override
public XSR receiveOrders(List<PubOrderParams> orderParams, String type) {
+ log.info("鎺ユ敹涓嬪彂璁㈠崟淇℃伅鍙傛暟:{}", JSONObject.toJSONString(orderParams));
orderParams.forEach(params -> {
if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
throw new CoolException("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
@@ -102,6 +106,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public XSR getInDispatchResult(List<ReportOrderParam> params, Order order) {
+ log.info("涓婃灦娲惧伐鍗曞弽棣堣姹傚弬鏁�:{}", JSONObject.toJSONString(params));
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -119,6 +124,7 @@
}
JSONObject jsonObject = JSONObject.parseObject(response);
Integer code = jsonObject.getInteger("code");
+ log.info("涓婃灦娲惧伐鍗曡繑鍥炵粨鏋�:{}", JSONObject.toJSONString(response));
if (!Objects.isNull(code) && code.equals(200)) {
if (!Objects.isNull(order)) {
order.setReportOnce(5);
@@ -181,6 +187,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams, String type) {
+ log.info("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戝弬鏁�:{}", JSONObject.toJSONString(pubOrderParams));
+
if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -255,6 +263,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public synchronized XSR basMatupdate(List<SyncMatParmas> params) {
+ log.info("鍩虹闆朵欢鍙樻洿:{}", JSONArray.toJSONString(params));
+
if (Objects.isNull(params) || params.isEmpty()) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -498,6 +508,8 @@
*/
@Override
public XSR getOutDetails(List<StockUpOrderParams> stockUpParams) {
+ log.info("澶囪揣鍗曚笅鍙戝弬鏁�:{}", JSONArray.toJSONString(stockUpParams));
+
if (Objects.isNull(stockUpParams)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -547,18 +559,46 @@
* @return com.core.common.R
*/
@Override
- public XSR getStockInfo(PageRequestParams params) {
+ public XSR getStockInfo(List<PageRequestParams> params) {
+ if (Objects.isNull(params) || params.isEmpty()) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+
+ Set<String> collect = params.stream().map(PageRequestParams::getPro_id).collect(Collectors.toSet());
+
+ Set<String> komccodes = params.stream().map(PageRequestParams::getPro_komcode).collect(Collectors.toSet());
+
EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
- if (!Objects.isNull(params.getPro_id())) {
- wrapper.eq("supp_code", params.getPro_id());
- }
- if (!Objects.isNull(params.getPro_komcode())) {
- wrapper.eq("matnr", params.getPro_komcode());
- }
+ wrapper.in(collect.isEmpty(), "pro_id", collect);
+ wrapper.in(komccodes.isEmpty(), "komccode", komccodes);
- Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), wrapper);
+ List<LocDetl> detls = locDetlService.selectList(wrapper);
- return XSR.ok(locDetls.getRecords());
+ if (detls == null || detls.isEmpty()) {
+ return XSR.ok();
+ }
+ List<LocDetlDto> dtos = new ArrayList<>();
+ detls.forEach(item -> {
+ LocDetlDto locDetlDto = new LocDetlDto();
+ if (item.getDiffQty().compareTo(BigDecimal.ZERO) == 0) {
+ locDetlDto.setLock_qty(0);
+ } else {
+ locDetlDto.setLock_qty(Integer.parseInt(item.getDiffQty().toString()));
+ }
+
+ if (item.getBookQty().compareTo(BigDecimal.ZERO) == 0) {
+ locDetlDto.setStock_qty(0);
+ } else {
+ locDetlDto.setStock_qty(Integer.parseInt(item.getBookQty().toString()));
+ }
+ locDetlDto
+ .setPro_komcode(item.getMatnr())
+ .setPro_id(item.getStandby1())
+ .setLocation_no(item.getZpallet())
+ .setTarget_location("");
+ dtos.add(locDetlDto);
+ });
+ return XSR.ok(dtos);
}
/**
@@ -572,6 +612,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public XSR sendStockAdjust(List<StockAdjustParams> params, Long userId) {
+ log.info("闆朵欢鎹熸孩鍗曚笅鍙戝弬鏁�:{}", JSONArray.toJSONString(params));
+
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -694,6 +736,66 @@
}
/**
+ * 澶囪揣鎸囩ず娲惧伐鍗曞弽棣�
+ * @author Ryan
+ * @date 2026/1/15 15:20
+ * @param orderParams
+ * @param order
+ * @return com.zy.api.entity.dto.XSR
+ */
+ @Override
+ public XSR reportOutDetailsResult(List<ReportOrderParam> orderParams, Order order) {
+ if (Objects.isNull(orderParams)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ String response = null;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(url + ":" + port)
+ .setPath(prefix + "/getOutDispatchResult")
+ .setJson(JSONObject.toJSONString(orderParams))
+ .build()
+ .doPost();
+ if (Objects.isNull(response) || response.trim().isEmpty()) {
+ if (!Objects.isNull(order)) {
+ int reportOnce = order.getReportOnce();
+ reportOnce++;
+ order.setReportOnce(reportOnce);
+ orderService.updateById(order);
+ }
+ 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
--
Gitblit v1.9.1