From 05466547c913ad2cd29944e5444dd387ce64b25f Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 18 十二月 2025 16:07:48 +0800
Subject: [PATCH] bug修复
---
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 336 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 223 insertions(+), 113 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 b94b1fe..4678106 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -2,15 +2,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.DateUtils;
-import com.core.common.R;
import com.core.exception.CoolException;
+import com.zy.api.entity.OrderItemsParam;
import com.zy.api.entity.OrderParams;
+import com.zy.api.entity.OutOrderParams;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
+import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
+import com.zy.api.entity.dto.XSR;
import com.zy.api.enums.MatLocType;
-import com.zy.api.enums.MatType;
import com.zy.api.enums.OrderType;
import com.zy.api.enums.OrderWkType;
import com.zy.api.service.KopenApiService;
@@ -19,6 +20,7 @@
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.enums.CommonEnum;
import com.zy.asrs.enums.OrderSettle;
+import com.zy.asrs.enums.OrderTypeEnum;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
@@ -30,7 +32,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import java.util.Objects;
@Service("kopenApiServiceImpl")
@@ -46,30 +50,31 @@
/**
* 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
*
- * @author Ryan
- * @date 2025/11/24 14:49
* @param params
* @return com.core.common.R
+ * @author Ryan
+ * @date 2025/11/24 14:49
*/
@Override
- public R receiveOrders(PubOrderParams params) {
+ public XSR receiveOrders(PubOrderParams params) {
if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
- return R.error("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
+ return XSR.error("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
}
addOrUpdateOrders(params, "add");
- return R.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
+ return XSR.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
}
/**
* 涓婃灦娲惧伐鍗曞弽棣�
+ *
* @author Ryan
* @date 2025/11/24 15:33
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R getInDispatchResult(ReportOrderParam params) {
+ public XSR getInDispatchResult(ReportOrderParam params) {
if (Objects.isNull(params)) {
- return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
String response = null;
try {
@@ -80,139 +85,154 @@
.build()
.doPost();
if (Objects.isNull(response) || response.trim().isEmpty()) {
- return R.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+ return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
}
JSONObject jsonObject = JSONObject.parseObject(response);
Integer code = jsonObject.getInteger("code");
if (!Objects.isNull(code) && code.equals(1)) {
- return R.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+ return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
} else {
String msg = jsonObject.getString("message");
- return R.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+ return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
}
} catch (Exception e) {
- return R.error(e.getMessage());
+ return XSR.error(e.getMessage());
}
}
- /* */
- /**
- * 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
- * @author Ryan
- * @date 2025/11/24 15:21
- * @param params
- * @return com.core.common.R
- */
+ /* */
+
+ /**
+ * 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
+ *
+ * @param params
+ * @return com.core.common.R
+ * @author Ryan
+ * @date 2025/11/24 15:21
+ */
@Override
@Transactional(rollbackFor = Exception.class)
- public R sendOutDispatch(PubOrderParams params) {
+ public XSR sendOutDispatch(PubOrderParams params) {
if (Objects.isNull(params)) {
- return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
// 鏍¢獙鍙傛暟
if (Objects.isNull(params.getDispatch_no())) {
- return R.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ return XSR.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
}
if (Objects.isNull(params.getKopen_id())) {
- return R.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ return XSR.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
}
if (Objects.isNull(params.getCompany_id())) {
- return R.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ return XSR.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
}
addOrUpdateOrders(params, "add");
-
- return R.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
+
+ return XSR.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("璁㈠崟绫诲瀷涓嶈兘涓虹┖锛侊紒");
- }
+ // /**
+ // * 澶囪揣鎸囩ず娲惧伐鍗�
+ // *
+ // * @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);
- }
+ // 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);
+ // }
- }
+ // }
/**
* 鍩虹闆朵欢鍙樻洿
*
- * @author Ryan
- * @date 2025/11/24 15:05
* @param params
* @return com.core.common.R
+ * @author Ryan
+ * @date 2025/11/24 15:05
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public synchronized R basMatupdate(SyncMatParmas params) {
- if (Objects.isNull(params.getPro_komcode())) {
- return R.error("闆朵欢缂栫爜涓嶈兘涓虹┖锛侊紒");
+ public synchronized XSR basMatupdate(List<SyncMatParmas> params) {
+ if (Objects.isNull(params) || params.isEmpty()) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", params.getPro_komcode()));
- if (!Objects.isNull(matnr)) {
- // 璁㈠崟鏃堕棿
- if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
- Date date1 = Utils.getFormateDate(params.getUpdate_time());
- matnr.setUpdateTime(date1);
+ params.forEach(mats -> {
+ if (Objects.isNull(mats)) {
+ throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛侊紒");
}
- matnr.setMaktx(params.getPro_name());
- matnr.setSpecs(params.getPro_size());
- matnr.setWeight(Double.parseDouble(params.getPro_wet()));
- matnr.setSuppCode(params.getPro_id());
- matnr.setTagId(MatLocType.getTag(params.getPro_type()));
- matnr.setManu(params.getCompany_id());
- if (!matService.updateById(matnr)) {
- throw new CoolException("鐗╂枡鏇存柊澶辫触鎴栨棤闇�鏇存柊锛侊紒");
+ Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", mats.getPro_komcode()));
+ if (!Objects.isNull(matnr)) {
+ // 璁㈠崟鏃堕棿
+ if (Utils.isValidFormat(mats.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
+ Date date1 = Utils.getFormateDate(mats.getUpdate_time());
+ matnr.setUpdateTime(date1);
+ }
+ matnr.setMaktx(mats.getPro_name());
+ matnr.setSpecs(mats.getPro_size());
+ matnr.setWeight(Double.parseDouble(mats.getPro_wet()));
+ matnr.setSuppCode(mats.getPro_id());
+ matnr.setTagId(MatLocType.getTag(mats.getPro_type()));
+ matnr.setLocType(MatLocType.getTag(mats.getPro_type()));
+ matnr.setManu(mats.getCompany_id());
+ if (!matService.updateById(matnr)) {
+ throw new CoolException("鐗╂枡鏇存柊澶辫触鎴栨棤闇�鏇存柊锛侊紒");
+ }
+ } else {
+ if (Objects.isNull(matnr)) {
+ matnr = new Mat();
+ }
+ // 璁㈠崟鏃堕棿
+ if (Utils.isValidFormat(mats.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
+ Date date1 = Utils.getFormateDate(mats.getUpdate_time());
+ matnr.setUpdateTime(date1);
+ }
+ matnr.setMaktx(mats.getPro_name());
+ matnr.setMatnr(mats.getPro_komcode());
+ matnr.setSpecs(mats.getPro_size());
+ matnr.setWeight(Double.parseDouble(mats.getPro_wet()));
+ matnr.setSuppCode(mats.getPro_id());
+ matnr.setTagId(MatLocType.getTag(mats.getPro_type()));
+ matnr.setLocType(MatLocType.getTag(mats.getPro_type()));
+ matnr.setManu(mats.getCompany_id());
+ if (!matService.insert(matnr)) {
+ throw new CoolException("鐗╂枡鏇存柊澶辫触锛侊紒");
+ }
}
- } else {
- if (Objects.isNull(matnr)) {
- matnr = new Mat();
- }
- // 璁㈠崟鏃堕棿
- if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
- Date date1 = Utils.getFormateDate(params.getUpdate_time());
- matnr.setUpdateTime(date1);
- }
- matnr.setMaktx(params.getPro_name());
- matnr.setMatnr(params.getPro_komcode());
- matnr.setSpecs(params.getPro_size());
- matnr.setWeight(Double.parseDouble(params.getPro_wet()));
- matnr.setSuppCode(params.getPro_id());
- matnr.setTagId(MatLocType.getTag(params.getPro_type()));
- matnr.setManu(params.getCompany_id());
- if (!matService.insert(matnr)) {
- throw new CoolException("鐗╂枡鏇存柊澶辫触锛侊紒");
- }
- }
- return R.ok("淇濆瓨鎴愬姛锛侊紒");
+ });
+
+ return XSR.ok("淇濆瓨鎴愬姛锛侊紒");
}
/**
@@ -231,7 +251,28 @@
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()));
+ // Order order = orderService.selectOne(new
+ // EntityWrapper<Order>().eq("order_no", orderParams.getDispatch_no()));
+ Order order = new Order();
+ if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
+ // 鍏ュ簱
+ order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
+ orderParams.getDispatch_no()));
+ } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
+ // 鍑哄簱
+ if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
+ // 澶囪揣鍗曞嚭搴�
+ order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
+ orderParams.getPick_no()));
+ } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType())
+ || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) {
+ // 澶囪揣鎸囩ず娲惧伐鍗曪紙EO/SO锛夊嚭搴�
+ order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
+ orderParams.getDispatch_no()));
+ }
+ }
+ // 鍑哄簱
+
if (type.equals("add") && !Objects.isNull(order)) {
throw new CoolException("鍗曟嵁宸插瓨鍦�, 涓嶅彲閲嶅娣诲姞锛侊紒");
}
@@ -256,32 +297,43 @@
public static String generateUUID(OrderParams params) {
return java.util.UUID.randomUUID().toString();
}
-
/**
* 鐢熸垚璁㈠崟淇℃伅
+ *
* @param params
*/
@Transactional(rollbackFor = Exception.class)
public void generateOrders(PubOrderParams params) {
// 灏嗘暟鎹綋鏂拌鍗曟彃鍏�
Order newOrder = new Order();
+ // 娲惧伐鍗曞彿
+ newOrder.setOrderNo(params.getDispatch_no());
if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍏ュ簱
newOrder.setPakinPakoutStatus(1);
newOrder.setDocType(Long.parseLong(params.getType()));
- newOrder.setOrderNo(params.getInv_no());
+ newOrder.setNumber(params.getInv_no());
} else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍑哄簱
+ if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
+ // 澶囪揣鍗曞嚭搴�
+ newOrder.setOrderNo(params.getPick_no());
+ newOrder.setNumber(params.getDispatch_no());
+ newOrder.setCstmrName(params.getCus_id());
+ newOrder.setTel(params.getCus_address());
+ newOrder.setDocType(Long.parseLong(OrderTypeEnum.STOCK.type + ""));
+ } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType())
+ || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) {
+ // 澶囪揣鎸囩ず娲惧伐鍗曪紙EO/SO锛夊嚭搴�
+ newOrder.setDocType(Long.parseLong(OrderTypeEnum.TRANSFER.type + ""));
+ }
newOrder.setPakinPakoutStatus(2);
- newOrder.setDocType(5L);
- newOrder.setOrderNo(params.getDispatch_no());
}
+
newOrder.setUuid(generateUUID(params));
// 娴佹按鍙凤紙鍞竴锛�
newOrder.setDefNumber(params.getKopen_id());
- // 娲惧伐鍗曞彿
- newOrder.setNumber(params.getDispatch_no());
// 绠卞彿
newOrder.setItemName(params.getPm_tktid());
newOrder.setSettle(OrderSettle.ORDER_SETTLE_HOLDING.type);
@@ -313,15 +365,21 @@
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);
+ if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
+ // 澶囪揣鍗曞嚭搴�
+ orderItem.setAnfme(Math.round(item.getPick_qty() * 10000) / 10000.0);
+ } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType())
+ || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) {
+ // 澶囪揣鎸囩ず娲惧伐鍗曪紙EO/SO锛夊嚭搴�
+ orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
+ }
}
orderItem.setMatnr(matnr.getMatnr());
orderItem.setMaktx(matnr.getMaktx());
orderItem.setBrand(matnr.getBrand());
orderItem.setBatch(1 + "");
orderItem.setStandby1(item.getPro_id());
- //鍏宠仈涓婂姞娲惧伐鍗曞彿+闆朵欢浠g爜+渚涘簲鍟嗕唬鐮�
+ // 鍏宠仈涓婂姞娲惧伐鍗曞彿+闆朵欢浠g爜+渚涘簲鍟嗕唬鐮�
orderItem.setThreeCode(item.getTotal_serial());
// 渚涘簲鍟嗕唬鐮�
orderItem.setSuppCode(item.getPro_id());
@@ -334,4 +392,56 @@
}
}
+ /**
+ * 澶囪揣鍗曚笅鍙�
+ *
+ * @param params
+ * @return com.core.common.R
+ * @author Ryan
+ * @date 2025/11/24 15:40
+ */
+ @Override
+ public XSR getOutDetails(StockUpOrderParams params) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getDispatch_no())) {
+ return XSR.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ return XSR.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ return XSR.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ return XSR.error("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+
+ List<OrderItemsParam> items = new ArrayList<>();
+ if (params.getDetails() != null) {
+ for (OutOrderParams detail : params.getDetails()) {
+ if (detail.getPartList() != null) {
+ items.addAll(detail.getPartList());
+ }
+ }
+ }
+
+ params.getDetails().forEach(item -> {
+ PubOrderParams pubOrderParams = new PubOrderParams();
+ BeanUtils.copyProperties(params, pubOrderParams);
+ pubOrderParams.setType(item.getType())
+ .setPick_no(item.getPick_no())
+ .setCus_address(item.getCus_address())
+ .setOrder_no(item.getOrder_no())
+ .setUpdate_time(params.getUpdate_time())
+ .setCus_id(item.getCus_id());
+ pubOrderParams.setDetails(item.getPartList());
+ addOrUpdateOrders(pubOrderParams, "add");
+ });
+
+ return XSR.ok("澶囪揣鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
}
--
Gitblit v1.9.1