From fcbc8ed5d4152d5b8b0a230e8074fb159bdd1989 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期二, 16 十二月 2025 10:22:47 +0800
Subject: [PATCH] bug修复
---
src/main/java/com/zy/api/enums/OrderWkType.java | 4 +
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 91 +++++++++++++++++++++++++++---
src/main/java/com/zy/api/service/KopenApiService.java | 7 ++
src/main/java/com/zy/api/controller/KopenApiController.java | 20 ++++++
src/main/java/com/zy/api/entity/OrderParams.java | 5 +
src/main/java/com/zy/api/entity/OrderItemsParam.java | 8 ++
6 files changed, 124 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/api/controller/KopenApiController.java b/src/main/java/com/zy/api/controller/KopenApiController.java
index 1d62be6..33df387 100644
--- a/src/main/java/com/zy/api/controller/KopenApiController.java
+++ b/src/main/java/com/zy/api/controller/KopenApiController.java
@@ -43,6 +43,7 @@
return kopenApiService.receiveOrders(params);
}
+
/**
* 涓婃父涓嬪彂闆朵欢鏁版嵁鍙樻洿
* s
@@ -84,4 +85,23 @@
return kopenApiService.getInDispatchResult(params);
}
+ /**
+ * 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
+ * @author Ryan
+ * @date 2025/11/24 15:21
+ * @param params
+ * @return com.core.common.R
+ */
+ @ApiOperation("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�")
+ @PostMapping("/sendOutDispatch")
+ public R sendStockPrepareDispatch(@RequestBody PubOrderParams params) {
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ return R.error("涓婃姤璁㈠崟鍒楄〃涓嶈兘涓虹┖锛侊紒");
+ }
+ return kopenApiService.sendOutDispatch(params);
+ }
+
}
diff --git a/src/main/java/com/zy/api/entity/OrderItemsParam.java b/src/main/java/com/zy/api/entity/OrderItemsParam.java
index bf5cbdc..4fbf902 100644
--- a/src/main/java/com/zy/api/entity/OrderItemsParam.java
+++ b/src/main/java/com/zy/api/entity/OrderItemsParam.java
@@ -30,5 +30,13 @@
@ApiModelProperty("鍏ュ簱閫氱煡鏁伴噺")
private Double inv_qty;
+ @ApiModelProperty("鎸囩ず鎷h揣璁㈠崟鏁伴噺")
+ private Integer order_qty;
+
+ @ApiModelProperty("鍘熶笂鏋舵淳宸ユ暟閲�")
+ private Integer old_qty;
+
+ @ApiModelProperty("鍙樻洿鏁伴噺")
+ private Integer new_qty;
}
diff --git a/src/main/java/com/zy/api/entity/OrderParams.java b/src/main/java/com/zy/api/entity/OrderParams.java
index 20d63ba..82685ba 100644
--- a/src/main/java/com/zy/api/entity/OrderParams.java
+++ b/src/main/java/com/zy/api/entity/OrderParams.java
@@ -26,7 +26,7 @@
@ApiModelProperty("鍏徃ID")
private String company_id;
- @ApiModelProperty("鍏ュ簱绫诲瀷 1: 閲囪喘鍏ュ簱锛�2: 璋冩嫧鍏ュ簱锛�3: 閿�鍞��璐у叆搴擄紝4: 濂楀寘鍏ュ簱")
+ @ApiModelProperty("鍏ュ簱绫诲瀷 1: 閲囪喘鍏ュ簱锛�2: 璋冩嫧鍏ュ簱锛�3: 閿�鍞��璐у叆搴擄紝4: 濂楀寘鍏ュ簱, 5:SO, 6:EO")
private String type;
@ApiModelProperty("绠卞彿")
@@ -38,6 +38,9 @@
@ApiModelProperty("鐩爣搴撳尯")
private String target_location;
+ @ApiModelProperty("婧愬簱鍖�")
+ private String source_location;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/src/main/java/com/zy/api/enums/OrderWkType.java b/src/main/java/com/zy/api/enums/OrderWkType.java
index 2b0efc2..8f410fd 100644
--- a/src/main/java/com/zy/api/enums/OrderWkType.java
+++ b/src/main/java/com/zy/api/enums/OrderWkType.java
@@ -7,6 +7,8 @@
ORDER_WK_TRANSFER_IN("2", "璋冩嫈鍏ュ簱"),
ORDER_WK_SALE_IN("锛�", "閿�鍞��璐у叆搴�"),
ORDER_WK_BAG_IN("锛�", "濂楀寘鍏ュ簱"),
+ ORDER_WK_ORDER_OUT_EO("EO", "澶囪揣鎸囩ず娲惧伐鍗曪紙EO锛�"),
+ ORDER_WK_ORDER_OUT_SO("SO", "澶囪揣鎸囩ず娲惧伐鍗曪紙SO锛�"),
ORDER_WK_ORDER_OUT("29", "澶囪揣鍗�");
OrderWkType(String val, String desc) {
@@ -26,7 +28,7 @@
return OrderType.ORDER_IN.type;
} else if (val.equals(OrderWkType.ORDER_WK_BAG_IN.val)) {
return OrderType.ORDER_IN.type;
- } else if (val.equals(OrderWkType.ORDER_WK_ORDER_OUT.val)) {
+ } else if (val.equals(OrderWkType.ORDER_WK_ORDER_OUT.val) || val.equals(OrderWkType.ORDER_WK_ORDER_OUT.val) || val.equals(OrderWkType.ORDER_WK_ORDER_OUT.val)) {
return OrderType.ORDER_OUT.type;
} else {
return OrderType.ORDER_OUT.type;
diff --git a/src/main/java/com/zy/api/service/KopenApiService.java b/src/main/java/com/zy/api/service/KopenApiService.java
index f6ea29c..e9305e3 100644
--- a/src/main/java/com/zy/api/service/KopenApiService.java
+++ b/src/main/java/com/zy/api/service/KopenApiService.java
@@ -40,4 +40,11 @@
* @return
*/
R getInDispatchResult(ReportOrderParam params);
+
+ /**
+ * 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
+ * @param params
+ * @return
+ */
+ R sendOutDispatch(PubOrderParams params);
}
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 6e881a9..b94b1fe 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -6,7 +6,6 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.api.entity.OrderParams;
-import com.zy.api.entity.ReportOrderParam;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
import com.zy.api.entity.SyncMatParmas;
@@ -31,9 +30,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Objects;
@@ -97,6 +93,73 @@
} catch (Exception e) {
return R.error(e.getMessage());
}
+ }
+
+ /* */
+ /**
+ * 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
+ * @author Ryan
+ * @date 2025/11/24 15:21
+ * @param params
+ * @return com.core.common.R
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R sendOutDispatch(PubOrderParams params) {
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getDispatch_no())) {
+ return R.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ return R.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ return R.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
+
+ addOrUpdateOrders(params, "add");
+
+ return R.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
+ /**
+ * 澶囪揣鎸囩ず娲惧伐鍗�
+ * @author Ryan
+ * @date 2025/12/16 9:15
+ * @param params
+ */
+ private void outOrderAddAndUpdate(PubOrderParams params, String type) {
+ if (Objects.isNull(params)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getType())) {
+ throw new CoolException("璁㈠崟绫诲瀷涓嶈兘涓虹┖锛侊紒");
+ }
+
+ OrderParams orderParams = JSONObject.parseObject(JSONObject.toJSONString(params), OrderParams.class);
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderParams.getInv_no()));
+ if (type.equals("add") && !Objects.isNull(order)) {
+ throw new CoolException("鍗曟嵁宸插瓨鍦�, 涓嶅彲閲嶅娣诲姞锛侊紒");
+ }
+ // 鍒ゆ柇璁㈠崟鏄惁瀛樺湪
+ if (Objects.isNull(order)) {
+ /** 涓嶅瓨鍦紝鏂板璁㈠崟 */
+ generateOrders(params);
+ } else {
+ /** 瀛樺湪锛屽垹闄よ�佽鍗曪紝鏇存柊鎻掑叆鏂拌鍗� */
+ // 鍒犻櫎鏃ц鍗曟槑缁�
+ if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
+ throw new CoolException("璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
+ };
+ if (!orderService.deleteById(order.getId())) {
+ throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
+ }
+ generateOrders(params);
+ }
+
}
/**
@@ -167,7 +230,6 @@
if (Objects.isNull(params.getType())) {
throw new CoolException("璁㈠崟绫诲瀷涓嶈兘涓虹┖锛侊紒");
}
-
OrderParams orderParams = JSONObject.parseObject(JSONObject.toJSONString(params), OrderParams.class);
Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderParams.getInv_no()));
if (type.equals("add") && !Objects.isNull(order)) {
@@ -182,7 +244,8 @@
// 鍒犻櫎鏃ц鍗曟槑缁�
if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
throw new CoolException("璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
- };
+ }
+
if (!orderService.deleteById(order.getId())) {
throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
}
@@ -206,12 +269,14 @@
if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍏ュ簱
newOrder.setPakinPakoutStatus(1);
+ newOrder.setDocType(Long.parseLong(params.getType()));
+ newOrder.setOrderNo(params.getInv_no());
} else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍑哄簱
newOrder.setPakinPakoutStatus(2);
+ newOrder.setDocType(5L);
+ newOrder.setOrderNo(params.getDispatch_no());
}
- newOrder.setDocType(Long.parseLong(params.getType()));
- newOrder.setOrderNo(params.getInv_no());
newOrder.setUuid(generateUUID(params));
// 娴佹按鍙凤紙鍞竴锛�
newOrder.setDefNumber(params.getKopen_id());
@@ -242,7 +307,15 @@
BeanUtils.copyProperties(matnr, orderItem);
orderItem.setOrderId(newOrder.getId());
orderItem.setOrderNo(newOrder.getOrderNo());
- orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+
+ if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
+ // 鍏ュ簱
+ orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+ } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
+ // 鍑哄簱
+ newOrder.setPakinPakoutStatus(2);
+ orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
+ }
orderItem.setMatnr(matnr.getMatnr());
orderItem.setMaktx(matnr.getMaktx());
orderItem.setBrand(matnr.getBrand());
--
Gitblit v1.9.1