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 +++++++++++++++++++++++++++++++++++++-
 src/main/java/com/zy/api/service/KopenApiService.java          |   10 +++
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java  |    6 +-
 src/main/java/com/zy/api/controller/KopenApiController.java    |   25 +++++++-
 src/main/java/com/zy/api/entity/OrderItemsParam.java           |    7 ++
 src/main/webapp/static/js/adjustOrder/adjustOrder.js           |   11 ++-
 6 files changed, 161 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/api/controller/KopenApiController.java b/src/main/java/com/zy/api/controller/KopenApiController.java
index 9079749..a504ae8 100644
--- a/src/main/java/com/zy/api/controller/KopenApiController.java
+++ b/src/main/java/com/zy/api/controller/KopenApiController.java
@@ -2,13 +2,15 @@
 
 
 import com.zy.api.controller.params.PageRequestParams;
-import com.zy.api.entity.OrderItemsParam;
 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.service.KopenApiService;
+import com.zy.common.web.BaseController;
+
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 
@@ -26,7 +28,7 @@
 @Slf4j
 @RestController
 @RequestMapping("/kopen")
-public class KopenApiController {
+public class KopenApiController  extends BaseController{
 
     @Autowired
     private KopenApiService kopenApiService;
@@ -161,6 +163,23 @@
     }
 
 
-    
+    /**
+     * 闆朵欢鎹熸孩鍗曚笅鍙�
+     * @author Ryan
+     * @date 2025/11/24 15:22
+     * @param params
+     * @return com.core.common.R
+     */
+    @ApiOperation("闆朵欢鎹熸孩鍗曚笅鍙�")
+    @PostMapping("/sendBSBYDetails")
+    public XSR sendStockAdjust(@RequestBody StockAdjustParams params) {
+        if (Objects.isNull(params)) {
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+            return XSR.error("涓婃姤璁㈠崟鍒楄〃涓嶈兘涓虹┖锛侊紒");
+        }
+        return kopenApiService.sendStockAdjust(params, 1L);
+    }
 
 }
diff --git a/src/main/java/com/zy/api/entity/OrderItemsParam.java b/src/main/java/com/zy/api/entity/OrderItemsParam.java
index 11d1e63..30f3613 100644
--- a/src/main/java/com/zy/api/entity/OrderItemsParam.java
+++ b/src/main/java/com/zy/api/entity/OrderItemsParam.java
@@ -6,7 +6,6 @@
 import lombok.experimental.Accessors;
 import java.io.Serializable;
 
-
 @Data
 @Accessors(chain = true)
 @ApiModel(value = "OrderItemsParam", description = "璁㈠崟鏄庣粏鍙傛暟")
@@ -42,4 +41,10 @@
     @ApiModelProperty("鎹嗙粦/鍙枡/鏁伴噺鏁伴噺")
     private Integer pick_qty;
 
+    @ApiModelProperty("鎹熸孩鏁伴噺")
+    private Integer bsby_qty;
+
+    @ApiModelProperty("鎵樼洏缂栧彿")
+    private String location_no;
+
 }
diff --git a/src/main/java/com/zy/api/service/KopenApiService.java b/src/main/java/com/zy/api/service/KopenApiService.java
index 9ade614..f209638 100644
--- a/src/main/java/com/zy/api/service/KopenApiService.java
+++ b/src/main/java/com/zy/api/service/KopenApiService.java
@@ -6,6 +6,7 @@
 import com.zy.api.entity.OrderItemsParam;
 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;
@@ -70,4 +71,13 @@
      * @return com.core.common.R
      */
     XSR getStockInfo(PageRequestParams params);
+
+    /**
+     * 闆朵欢鎹熸孩鍗曚笅鍙�
+     * @author Ryan
+     * @date 2025/11/24 15:22
+     * @param params
+     * @return com.core.common.R
+     */
+	XSR sendStockAdjust(StockAdjustParams params, Long userId);
 }
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("淇濆瓨鐩樼偣鍗曟槑缁嗗け璐�");
+            }
+        });
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index db179b3..b07baec 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -999,11 +999,11 @@
                     if (jsonObject.getInteger("code").equals(200)) {
                         success = true;
                     } else if (jsonObject.getInteger("code").equals(500)) {
-                        log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PACK_DOWN_URL,
+                        log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
                                 JSON.toJSONString(mesCombParam), response);
                         throw new CoolException(jsonObject.getString("msg"));
                     } else {
-                        log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PACK_DOWN_URL,
+                        log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
                                 JSON.toJSONString(mesCombParam), response);
                         throw new CoolException("涓婃姤mes绯荤粺澶辫触");
                     }
@@ -1015,7 +1015,7 @@
                         // 淇濆瓨鎺ュ彛鏃ュ織
                         apiLogService.save(
                                 "鎵撳寘涓嬬嚎甯墭涓婃姤",
-                                MesConstant.URL + MesConstant.PACK_DOWN_URL,
+                                MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
                                 null,
                                 "127.0.0.1",
                                 JSON.toJSONString(mesCombParam),
diff --git a/src/main/webapp/static/js/adjustOrder/adjustOrder.js b/src/main/webapp/static/js/adjustOrder/adjustOrder.js
index a5936e9..b454a73 100644
--- a/src/main/webapp/static/js/adjustOrder/adjustOrder.js
+++ b/src/main/webapp/static/js/adjustOrder/adjustOrder.js
@@ -47,11 +47,14 @@
         cols: [[
             {type: 'numbers'},
             {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
-            {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160},
+            {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 120, width: 120},
+            {field: 'defNumber', align: 'center', title: '娴佹按鍙�',  minWidth: 160, width: 160},
+            {field: 'cstmrName', align: 'center', title: '鍏徃',  minWidth: 160, width: 160},
+            {field: 'orderTime', title: '璁㈠崟鏃堕棿', minWidth: 200, width: 200},
+            {field: 'shipName', align: 'center',title: '璋冩暣鍘熷洜'},
+            {field: 'memo', align: 'center',title: '鍘熷洜鎻忚堪'},
+            {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl',  minWidth: 120, width: 120},
             {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
-            {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
-            {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl',  minWidth: 160, width: 160},
-            {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
             {align: 'center', title: '鎿嶄綔', toolbar: '#operate',}
         ]],
         request: {

--
Gitblit v1.9.1