From 290e5fd2e74efe19326f56e38c3391aaae23ffc5 Mon Sep 17 00:00:00 2001
From: IZCD4L12RTSW0VZ\Administrator <skyouc>
Date: 星期三, 24 十二月 2025 17:14:09 +0800
Subject: [PATCH] Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms
---
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 361 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 256 insertions(+), 105 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 ed6ff98..0c96d13 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -2,25 +2,35 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.R;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
+import com.zy.api.controller.params.PageRequestParams;
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.StockAdjustParams;
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.OrderType;
import com.zy.api.enums.OrderWkType;
import com.zy.api.service.KopenApiService;
+import com.zy.asrs.entity.CheckOrder;
+import com.zy.asrs.entity.CheckOrderDetl;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Order;
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.CheckOrderDetlService;
+import com.zy.asrs.service.CheckOrderService;
+import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
@@ -32,6 +42,7 @@
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;
@@ -46,22 +57,33 @@
private OrderDetlService orderDetlService;
@Autowired
private MatService matService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private CheckOrderService checkOrderService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private CheckOrderDetlService checkOrderDetlService;
/**
* 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
*
- * @param params
+ * @param orderParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 14:49
*/
@Override
- public R receiveOrders(PubOrderParams params) {
- if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
- return R.error("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
- }
- addOrUpdateOrders(params, "add");
- return R.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
+ public XSR receiveOrders(List<PubOrderParams> orderParams) {
+ orderParams.forEach(params -> {
+ if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
+ throw new CoolException("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
+ }
+ addOrUpdateOrders(params, "add");
+ });
+
+ return XSR.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
}
/**
@@ -72,9 +94,9 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R getInDispatchResult(ReportOrderParam params) {
+ public XSR getInDispatchResult(List<ReportOrderParam> params) {
if (Objects.isNull(params)) {
- return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
String response = null;
try {
@@ -85,18 +107,18 @@
.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());
}
}
@@ -105,31 +127,33 @@
/**
* 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
*
- * @param params
+ * @param pubOrderParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 15:21
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R sendOutDispatch(PubOrderParams params) {
- if (Objects.isNull(params)) {
- return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) {
+ if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
+ return XSR.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涓嶈兘涓虹┖锛侊紒");
- }
+ pubOrderParams.forEach(params -> {
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getDispatch_no())) {
+ throw new CoolException("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ throw new CoolException("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
- addOrUpdateOrders(params, "add");
+ addOrUpdateOrders(params, "add");
+ });
- return R.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
+ return XSR.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
}
// /**
@@ -184,47 +208,55 @@
*/
@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("淇濆瓨鎴愬姛锛侊紒");
}
/**
@@ -250,8 +282,7 @@
// 鍏ュ簱
order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
orderParams.getDispatch_no()));
- } else if
- (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
+ } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
// 鍑哄簱
if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
// 澶囪揣鍗曞嚭搴�
@@ -313,6 +344,7 @@
// 澶囪揣鍗曞嚭搴�
newOrder.setOrderNo(params.getPick_no());
newOrder.setNumber(params.getDispatch_no());
+ newOrder.setShipCode(params.getOrder_no());
newOrder.setCstmrName(params.getCus_id());
newOrder.setTel(params.getCus_address());
newOrder.setDocType(Long.parseLong(OrderTypeEnum.STOCK.type + ""));
@@ -388,53 +420,172 @@
/**
* 澶囪揣鍗曚笅鍙�
*
- * @param params
+ * @param stockUpParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 15:40
*/
@Override
- public R getOutDetails(StockUpOrderParams params) {
- if (Objects.isNull(params)) {
- return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ public XSR getOutDetails(List<StockUpOrderParams> stockUpParams) {
+ if (Objects.isNull(stockUpParams)) {
+ return XSR.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涓嶈兘涓虹┖锛侊紒");
- }
- if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
- return R.error("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
- }
-
- List<OrderItemsParam> items = new ArrayList<>();
- if (params.getDetails() != null) {
- for (OutOrderParams detail : params.getDetails()) {
- if (detail.getPartList() != null) {
- items.addAll(detail.getPartList());
+ stockUpParams.forEach(params -> {
+ if (Objects.isNull(params.getDispatch_no())) {
+ throw new CoolException("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ throw new CoolException("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+ 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("澶囪揣鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
+ /**
+ * 鏌ヨWMS搴撳瓨淇℃伅
+ *
+ * @param params
+ * @return com.core.common.R
+ */
+ @Override
+ public XSR getStockInfo(PageRequestParams params) {
+ 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());
+ }
+
+ Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), wrapper);
+
+ return XSR.ok(locDetls.getRecords());
+ }
+
+ /**
+ * 闆朵欢鎹熸孩鍗曚笅鍙�
+ *
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public XSR sendStockAdjust(List<StockAdjustParams> params, Long userId) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ params.forEach(param -> {
+ gentCheckOrders(param, userId);
+ });
+
+ return XSR.ok("闆朵欢鎹熸孩鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
+ /** 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
+ * @param userId */
+ @Transactional(rollbackFor = Exception.class)
+ public void gentCheckOrders(StockAdjustParams params, Long userId) {
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getBsby_no())) {
+ throw new CoolException("鎹熸孩鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+
+ CheckOrder checkOrder = checkOrderService
+ .selectOne(new EntityWrapper<CheckOrder>().eq("order_no", params.getBsby_no()));
+ if (!Objects.isNull(checkOrder)) {
+ throw new CoolException("鎹熸孩鍗曞凡瀛樺湪锛侊紒");
+ }
+
+ CheckOrder order = new CheckOrder();
+ order.setOrderNo(params.getBsby_no());
+ order.setCstmrName(params.getCompany_id());
+ order.setDefNumber(params.getKopen_id());
+ order.setDocType(4L);
+ order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ 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.setShipName(params.getReason_name());
+ order.setCreateTime(new Date());
+ order.setUpdateTime(new Date());
+
+ if (!checkOrderService.insert(order)) {
+ throw new CoolException("鎹熸孩鍗曟柊澧炲け璐ワ紒锛�");
+ }
+
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
}
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");
- });
+ CheckOrderDetl checkOrderDetl = new CheckOrderDetl();
+ //閫氳繃鎵樼洏锛� 鐗╂枡缂栫爜锛� 渚涘簲鍟嗙紪鐮佹煡璇㈠簱瀛樻槑缁�
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+ .eq("matnr", item.getPro_komcode())
+ .eq("zpallet", item.getLocation_no())
+ .eq("supp_code", item.getPro_id()));
+ if (Objects.isNull(locDetl)) {
+ throw new CoolException("搴撳瓨涓嶅瓨鍦紒锛�");
+ }
+ BeanUtils.copyProperties(locDetl, checkOrderDetl);
+ checkOrderDetl.setLocDetlId(locDetl.getId());
+ checkOrderDetl.setOrderId(order.getId());
+ checkOrderDetl.setOrderNo(order.getOrderNo());
+ checkOrderDetl.setMatnr(locDetl.getMatnr());
+ checkOrderDetl.setMaktx(locDetl.getMaktx());
+ checkOrderDetl.setBatch(locDetl.getBatch());
+ checkOrderDetl.setSpecs(locDetl.getSpecs());
+ checkOrderDetl.setThreeCode(locDetl.getThreeCode());
+ checkOrderDetl.setSuppCode(locDetl.getSuppCode());
+ checkOrderDetl.setStandby1(locDetl.getSuppCode());
+ checkOrderDetl.setAnfme(new BigDecimal(locDetl.getAnfme().toString()));
+ checkOrderDetl.setDiffQty(BigDecimal.ZERO);
+ checkOrderDetl.setWorkQty(BigDecimal.ZERO);
+ checkOrderDetl.setStatus(1);
+ checkOrderDetl.setZpallet(locDetl.getZpallet());
+ checkOrderDetl.setCreateBy(userId);
+ checkOrderDetl.setCreateTime(new Date());
+ checkOrderDetl.setUpdateBy(userId);
+ checkOrderDetl.setUpdateTime(new Date());
- return R.ok("澶囪揣鍗曚笅鍙戞垚鍔燂紒锛�");
+ if (!checkOrderDetlService.insert(checkOrderDetl)) {
+ throw new CoolException("淇濆瓨鐩樼偣鍗曟槑缁嗗け璐�");
+ }
+ });
}
}
--
Gitblit v1.9.1