From 0b0ac0117ada5f59d2558a710e6ae0b0817e3d49 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期二, 23 十二月 2025 16:47:00 +0800
Subject: [PATCH] 损溢单下发
---
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 113 insertions(+), 3 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 5004c49..05586a0 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
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;
@@ -10,6 +11,7 @@
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;
@@ -17,6 +19,8 @@
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;
@@ -24,6 +28,8 @@
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;
@@ -36,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;
@@ -52,6 +59,12 @@
private MatService matService;
@Autowired
private LocDetlService locDetlService;
+ @Autowired
+ private CheckOrderService checkOrderService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private CheckOrderDetlService checkOrderDetlService;
/**
* 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
@@ -459,11 +472,108 @@
*/
@Override
public XSR getStockInfo(PageRequestParams params) {
- Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), new EntityWrapper<LocDetl>()
- .eq(!Objects.isNull(params.getPro_komcode()), "matnr", params.getPro_komcode())
- .eq(Objects.isNull(params.getPro_id()),"supp_code", params.getPro_id()));
+ Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()),
+ new EntityWrapper<LocDetl>()
+ .eq(!Objects.isNull(params.getPro_komcode()), "matnr", params.getPro_komcode())
+ .eq(Objects.isNull(params.getPro_id()), "supp_code", params.getPro_id()));
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(StockAdjustParams params, Long userId) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ return XSR.error("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getBsby_no())) {
+ return XSR.error("鎹熸孩鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+
+ CheckOrder checkOrder = checkOrderService
+ .selectOne(new EntityWrapper<CheckOrder>().eq("order_no", params.getBsby_no()));
+ if (!Objects.isNull(checkOrder)) {
+ return XSR.error("鎹熸孩鍗曞凡瀛樺湪锛侊紒");
+ }
+
+ gentCheckOrders(params, userId);
+
+ return XSR.ok("闆朵欢鎹熸孩鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
+ /** 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
+ * @param userId */
+ @Transactional(rollbackFor = Exception.class)
+ public void gentCheckOrders(StockAdjustParams checkOrder, Long userId) {
+ CheckOrder order = new CheckOrder();
+ order.setOrderNo(checkOrder.getBsby_no());
+ order.setCstmrName(checkOrder.getCompany_id());
+ order.setDefNumber(checkOrder.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(checkOrder.getUpdate_time());
+ order.setMemo(checkOrder.getResason());
+ order.setShipName(checkOrder.getReason_name());
+ order.setCreateTime(new Date());
+ order.setUpdateTime(new Date());
+
+ if (!checkOrderService.insert(order)) {
+ throw new CoolException("鎹熸孩鍗曟柊澧炲け璐ワ紒锛�");
+ }
+
+ if (Objects.isNull(checkOrder.getDetails()) || checkOrder.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+
+ checkOrder.getDetails().forEach(item -> {
+ 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());
+
+ if (!checkOrderDetlService.insert(checkOrderDetl)) {
+ throw new CoolException("淇濆瓨鐩樼偣鍗曟槑缁嗗け璐�");
+ }
+ });
+ }
+
}
--
Gitblit v1.9.1