From 680c4484aebd032289a7a5ab1bad5c6c357ffee9 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 25 十二月 2025 09:52:29 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java |  284 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 214 insertions(+), 70 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 3e3634b..c401f48 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,9 +208,9 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public synchronized R basMatupdate(List<SyncMatParmas> params) {
+    public synchronized XSR basMatupdate(List<SyncMatParmas> params) {
         if (Objects.isNull(params) || params.isEmpty()) {
-            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
         params.forEach(mats -> {
             if (Objects.isNull(mats)) {
@@ -232,7 +256,7 @@
             }
         });
 
-        return R.ok("淇濆瓨鎴愬姛锛侊紒");
+        return XSR.ok("淇濆瓨鎴愬姛锛侊紒");
     }
 
     /**
@@ -253,7 +277,7 @@
         OrderParams orderParams = JSONObject.parseObject(JSONObject.toJSONString(params), OrderParams.class);
         // Order order = orderService.selectOne(new
         // EntityWrapper<Order>().eq("order_no", orderParams.getDispatch_no()));
-        Order order = new Order();
+        Order order = null;
         if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
             // 鍏ュ簱
             order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",
@@ -272,7 +296,6 @@
             }
         }
         // 鍑哄簱
-
         if (type.equals("add") && !Objects.isNull(order)) {
             throw new CoolException("鍗曟嵁宸插瓨鍦�, 涓嶅彲閲嶅娣诲姞锛侊紒");
         }
@@ -320,6 +343,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 + ""));
@@ -334,6 +358,7 @@
         newOrder.setUuid(generateUUID(params));
         // 娴佹按鍙凤紙鍞竴锛�
         newOrder.setDefNumber(params.getKopen_id());
+        newOrder.setTargetLocation(params.getTarget_location());
         // 绠卞彿
         newOrder.setItemName(params.getPm_tktid());
         newOrder.setSettle(OrderSettle.ORDER_SETTLE_HOLDING.type);
@@ -395,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