From 2bbb655dcb98b9d54083286825f14bf8aff7143b Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期二, 20 一月 2026 17:22:36 +0800
Subject: [PATCH] 1. 查询库存接口调整优化

---
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java |  354 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 318 insertions(+), 36 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 bf35826..aa2ecac 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.api.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -14,6 +15,7 @@
 import com.zy.api.entity.StockAdjustParams;
 import com.zy.api.entity.StockUpOrderParams;
 import com.zy.api.entity.SyncMatParmas;
+import com.zy.api.entity.dto.LocDetlDto;
 import com.zy.api.entity.dto.XSR;
 import com.zy.api.enums.MatLocType;
 import com.zy.api.enums.OrderType;
@@ -37,17 +39,18 @@
 
 import com.zy.asrs.utils.Utils;
 import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 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;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
+@Slf4j
 @Service("kopenApiServiceImpl")
 public class KopenApiServiceImpl implements KopenApiService {
 
@@ -65,6 +68,13 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private CheckOrderDetlService checkOrderDetlService;
+    @Value("${kopen.url}")
+    private String url;
+    @Value("${kopen.port}")
+    private String port;
+    @Value("${kopen.prefix}")
+    private String prefix;
+
 
     /**
      * 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
@@ -75,12 +85,13 @@
      * @date 2025/11/24 14:49
      */
     @Override
-    public XSR receiveOrders(List<PubOrderParams> orderParams) {
+    public XSR receiveOrders(List<PubOrderParams> orderParams, String type) {
+        log.info("鎺ユ敹涓嬪彂璁㈠崟淇℃伅鍙傛暟:{}", JSONObject.toJSONString(orderParams));
         orderParams.forEach(params -> {
             if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
                 throw new CoolException("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
             }
-            addOrUpdateOrders(params, "add");
+            addOrUpdateOrders(params, type);
         });
 
         return XSR.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
@@ -94,15 +105,17 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public XSR getInDispatchResult(List<ReportOrderParam> params) {
+    public XSR getInDispatchResult(List<ReportOrderParam> params, Order order) {
+        log.info("涓婃灦娲惧伐鍗曞弽棣堣姹傚弬鏁�:{}", JSONObject.toJSONString(params));
         if (Objects.isNull(params)) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
         String response = null;
+
         try {
             response = new HttpHandler.Builder()
-                    .setUri("127.0.0.1:8081")
-                    .setPath("/wms/order/getInDispatchResult")
+                    .setUri(url + ":" + port)
+                    .setPath(prefix + "/getInDispatchResult")
                     .setJson(JSONObject.toJSONString(params))
                     .build()
                     .doPost();
@@ -111,15 +124,54 @@
             }
             JSONObject jsonObject = JSONObject.parseObject(response);
             Integer code = jsonObject.getInteger("code");
-            if (!Objects.isNull(code) && code.equals(1)) {
+            log.info("涓婃灦娲惧伐鍗曡繑鍥炵粨鏋�:{}", JSONObject.toJSONString(response));
+            if (!Objects.isNull(code) && code.equals(200)) {
+                if (!Objects.isNull(order)) {
+                    order.setReportOnce(5);
+                    orderService.updateById(order);
+                }
                 return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
             } else {
+                if (!Objects.isNull(order)) {
+                    int reportOnce = order.getReportOnce();
+                    reportOnce++;
+                    order.setReportOnce(reportOnce);
+                    orderService.updateById(order);
+                }
                 String msg = jsonObject.getString("message");
                 return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
             }
         } catch (Exception e) {
+            if (!Objects.isNull(order)) {
+                int reportOnce = order.getReportOnce();
+                reportOnce++;
+                order.setReportOnce(reportOnce);
+                orderService.updateById(order);
+            }
+            log.error(e.getMessage(), e);
             return XSR.error(e.getMessage());
         }
+    }
+
+    /**
+     * 鑾峰彇鑷畾涔夎姹傚ご
+     *
+     * @return java.util.Map<java.lang.String, java.lang.Object>
+     * @author Ryan
+     * @date 2025/12/29 9:11
+     */
+    private Map<String, Object> getHeaderParam() {
+        Map<String, Object> headerParam = new HashMap<>();
+//        headerParam.put("accept", "*/*");
+//        headerParam.put("connection", "Keep-Alive");
+        //璁剧疆璇锋眰杩炴帴鐨凾oken
+        headerParam.put("api_key", "WMS");
+        headerParam.put("charset", "UTF-8");
+        headerParam.put("timestamp", new Date());
+        headerParam.put("format", "xml");
+        headerParam.put("signature", "c56ced444ed772098ffeb59537bbfa59");
+
+        return headerParam;
     }
 
     /* */
@@ -134,7 +186,9 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) {
+    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams, String type) {
+        log.info("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戝弬鏁�:{}", JSONObject.toJSONString(pubOrderParams));
+
         if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -150,7 +204,7 @@
                 throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
             }
 
-            addOrUpdateOrders(params, "add");
+            addOrUpdateOrders(params, type);
         });
 
         return XSR.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
@@ -209,6 +263,8 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public synchronized XSR basMatupdate(List<SyncMatParmas> params) {
+        log.info("鍩虹闆朵欢鍙樻洿:{}", JSONArray.toJSONString(params));
+
         if (Objects.isNull(params) || params.isEmpty()) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -219,7 +275,12 @@
             if (Objects.isNull(mats.getPro_type())) {
                 throw new CoolException("闆朵欢绫诲瀷涓嶈兘涓虹┖锛侊紒");
             }
-            Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", mats.getPro_komcode()));
+            if (Objects.isNull(mats.getPro_id())) {
+                throw new CoolException("渚涘簲鍟嗕笉鑳戒负绌猴紒锛�");
+            }
+            Mat matnr = matService.selectOne(new EntityWrapper<Mat>()
+                    .eq("supp_code", mats.getPro_id())
+                    .eq("matnr", mats.getPro_komcode()));
             if (!Objects.isNull(matnr)) {
                 // 璁㈠崟鏃堕棿
                 if (Utils.isValidFormat(mats.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
@@ -309,8 +370,11 @@
         // 鍒ゆ柇璁㈠崟鏄惁瀛樺湪
         if (Objects.isNull(order)) {
             /** 涓嶅瓨鍦紝鏂板璁㈠崟 */
-            generateOrders(params);
+            generateOrders(params, type);
         } else {
+            if (order.getSettle() == 2) {
+                throw new CoolException("璁㈠崟宸插鐞嗭紝涓嶅彲鍐嶅彉鏇达紒锛�");
+            }
             /** 瀛樺湪锛屽垹闄よ�佽鍗曪紝鏇存柊鎻掑叆鏂拌鍗� */
             // 鍒犻櫎鏃ц鍗曟槑缁�
             if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
@@ -320,7 +384,7 @@
             if (!orderService.deleteById(order.getId())) {
                 throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
             }
-            generateOrders(params);
+            generateOrders(params, type);
         }
     }
 
@@ -332,9 +396,10 @@
      * 鐢熸垚璁㈠崟淇℃伅
      *
      * @param params
+     * @param type
      */
     @Transactional(rollbackFor = Exception.class)
-    public void generateOrders(PubOrderParams params) {
+    public void generateOrders(PubOrderParams params, String type) {
         // 灏嗘暟鎹綋鏂拌鍗曟彃鍏�
         Order newOrder = new Order();
         // 娲惧伐鍗曞彿
@@ -342,7 +407,8 @@
         if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
             // 鍏ュ簱
             newOrder.setPakinPakoutStatus(1);
-            newOrder.setDocType(Long.parseLong(params.getType()));
+            Integer docType = OrderWkType.getDocType(params.getType());
+            newOrder.setDocType(Long.parseLong(docType + ""));
             newOrder.setNumber(params.getInv_no());
         } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
             // 鍑哄簱
@@ -394,7 +460,11 @@
 
                 if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                     // 鍏ュ簱
-                    orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+                    if (type.equals("add")) {
+                        orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+                    } else {
+                        orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
+                    }
                 } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                     // 鍑哄簱
                     if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
@@ -403,7 +473,11 @@
                     } 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);
+                        if (type.equals("add")) {
+                            orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
+                        } else {
+                            orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
+                        }
                     }
                 }
                 orderItem.setMatnr(matnr.getMatnr());
@@ -434,6 +508,8 @@
      */
     @Override
     public XSR getOutDetails(List<StockUpOrderParams> stockUpParams) {
+        log.info("澶囪揣鍗曚笅鍙戝弬鏁�:{}", JSONArray.toJSONString(stockUpParams));
+
         if (Objects.isNull(stockUpParams)) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -483,31 +559,58 @@
      * @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());
+    public XSR getStockInfo(List<PageRequestParams> params) {
+        if (Objects.isNull(params) || params.isEmpty()) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        if (!Objects.isNull(params.getPro_komcode())) {
-            wrapper.eq("matnr", params.getPro_komcode());
+        List<LocDetl> detls = new ArrayList<>();
+        params.forEach(param -> {
+            List<LocDetl> selectList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("supp_code", param.getPro_id()).eq("matnr", param.getPro_komcode()));
+            if (selectList != null && !selectList.isEmpty()) {
+                detls.addAll(selectList);
+            }
+        });
+
+        if (detls == null || detls.isEmpty()) {
+            return XSR.ok();
         }
+        List<LocDetlDto> dtos = new ArrayList<>();
+        detls.forEach(item -> {
+            LocDetlDto locDetlDto = new LocDetlDto();
+            if (item.getDiffQty().compareTo(BigDecimal.ZERO) == 0) {
+                locDetlDto.setLock_qty(0);
+            } else {
+                locDetlDto.setLock_qty(Integer.parseInt(item.getDiffQty().toString()));
+            }
 
-        Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()),  wrapper);
-
-        return XSR.ok(locDetls.getRecords());
+            if (item.getBookQty().compareTo(BigDecimal.ZERO) == 0) {
+                locDetlDto.setStock_qty(0);
+            } else {
+                locDetlDto.setStock_qty(Integer.parseInt(item.getBookQty().toString()));
+            }
+            locDetlDto
+                    .setPro_komcode(item.getMatnr())
+                    .setPro_id(item.getStandby1())
+                    .setLocation_no(item.getZpallet())
+                    .setTarget_location("");
+            dtos.add(locDetlDto);
+        });
+        return XSR.ok(dtos);
     }
 
     /**
      * 闆朵欢鎹熸孩鍗曚笅鍙�
-     * 
-     * @author Ryan
-     * @date 2025/11/24 15:22
+     *
      * @param params
      * @return com.core.common.R
+     * @author Ryan
+     * @date 2025/11/24 15:22
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public XSR sendStockAdjust(List<StockAdjustParams> params, Long userId) {
+        log.info("闆朵欢鎹熸孩鍗曚笅鍙戝弬鏁�:{}", JSONArray.toJSONString(params));
+
         if (Objects.isNull(params)) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -518,9 +621,183 @@
         return XSR.ok("闆朵欢鎹熸孩鍗曚笅鍙戞垚鍔燂紒锛�");
     }
 
-    /** 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗� 
-     * @param userId */
-    @Transactional(rollbackFor = Exception.class)   
+    /**
+     * 鎹熸孩鍗曞畬缁撲笂鎶�
+     *
+     * @param params
+     * @param order
+     * @return com.zy.api.entity.dto.XSR
+     * @author Ryan
+     * @date 2025/12/30 16:57
+     */
+    @Override
+    public XSR reportCheckOrder(List<StockAdjustParams> params, CheckOrder order) {
+        if (Objects.isNull(params)) {
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        String response = null;
+
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url + ":" + port)
+                    .setPath(prefix + "/getBSBYResult")
+                    .setJson(JSONObject.toJSONString(params))
+                    .build()
+                    .doPost();
+            if (Objects.isNull(response) || response.trim().isEmpty()) {
+                return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+            }
+            XSR jsonObject = JSONObject.parseObject(response, XSR.class);
+            if (jsonObject.getSuccess()) {
+                if (!Objects.isNull(order)) {
+                    order.setReportOnce(5);
+                    order.setSettle(5L);
+                    checkOrderService.updateById(order);
+                }
+                return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+            } else {
+                if (!Objects.isNull(order)) {
+                    int reportOnce = order.getReportOnce();
+                    reportOnce++;
+                    order.setReportOnce(reportOnce);
+                    checkOrderService.updateById(order);
+                }
+                String msg = jsonObject.getMessage();
+                return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+            }
+        } catch (Exception e) {
+//            if (!Objects.isNull(order)) {
+//                int reportOnce = order.getReportOnce();
+//                reportOnce ++;
+//                order.setReportOnce(reportOnce);
+//                orderService.updateById(order);
+//            }
+            log.error(e.getMessage(), e);
+            return XSR.error(e.getMessage());
+        }
+//        return null;
+    }
+
+    /**
+     * 澶囪揣鍗曞弽棣�
+     *
+     * @param params
+     * @param order
+     * @return
+     */
+    @Override
+    public XSR getOutDetailsResult(List<StockUpOrderParams> params, Order order) {
+        if (Objects.isNull(params)) {
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        String response = null;
+
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url + ":" + port)
+                    .setPath(prefix + "/getOutDetailsResult")
+                    .setJson(JSONObject.toJSONString(params))
+                    .build()
+                    .doPost();
+            if (Objects.isNull(response) || response.trim().isEmpty()) {
+                return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            if (!Objects.isNull(code) && code.equals(200)) {
+                if (!Objects.isNull(order)) {
+                    order.setReportOnce(5);
+                    orderService.updateById(order);
+                }
+                return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+            } else {
+                if (!Objects.isNull(order)) {
+                    int reportOnce = order.getReportOnce();
+                    reportOnce++;
+                    order.setReportOnce(reportOnce);
+                    orderService.updateById(order);
+                }
+                String msg = jsonObject.getString("message");
+                return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+            }
+        } catch (Exception e) {
+            if (!Objects.isNull(order)) {
+                int reportOnce = order.getReportOnce();
+                reportOnce++;
+                order.setReportOnce(reportOnce);
+                orderService.updateById(order);
+            }
+            log.error(e.getMessage(), e);
+            return XSR.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 澶囪揣鎸囩ず娲惧伐鍗曞弽棣�
+     * @author Ryan
+     * @date 2026/1/15 15:20
+     * @param orderParams
+     * @param order
+     * @return com.zy.api.entity.dto.XSR
+     */
+    @Override
+    public XSR reportOutDetailsResult(List<ReportOrderParam> orderParams, Order order) {
+        if (Objects.isNull(orderParams)) {
+            return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        String response = null;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url + ":" + port)
+                    .setPath(prefix + "/getOutDispatchResult")
+                    .setJson(JSONObject.toJSONString(orderParams))
+                    .build()
+                    .doPost();
+             if (Objects.isNull(response) || response.trim().isEmpty()) {
+                 if (!Objects.isNull(order)) {
+                     int reportOnce = order.getReportOnce();
+                     reportOnce++;
+                     order.setReportOnce(reportOnce);
+                     orderService.updateById(order);
+                 }
+                return XSR.error("澶栫綉鎺ュ彛鏃犲搷搴旓紒锛�");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            if (!Objects.isNull(code) && code.equals(200)) {
+                if (!Objects.isNull(order)) {
+                    order.setReportOnce(5);
+                    orderService.updateById(order);
+                }
+                return XSR.ok("鍏ュ簱鍗曚笂鎶ュ畬鎴愶紒锛�");
+            } else {
+                if (!Objects.isNull(order)) {
+                    int reportOnce = order.getReportOnce();
+                    reportOnce++;
+                    order.setReportOnce(reportOnce);
+                    orderService.updateById(order);
+                }
+                String msg = jsonObject.getString("message");
+                return XSR.error(Objects.isNull(msg) ? "涓婃姤澶辫触锛侊紒" : msg);
+            }
+        } catch (Exception e) {
+            if (!Objects.isNull(order)) {
+                int reportOnce = order.getReportOnce();
+                reportOnce++;
+                order.setReportOnce(reportOnce);
+                orderService.updateById(order);
+            }
+            log.error(e.getMessage(), e);
+            return XSR.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
+     *
+     * @param userId
+     */
+    @Transactional(rollbackFor = Exception.class)
     public void gentCheckOrders(StockAdjustParams params, Long userId) {
         if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
             throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
@@ -545,7 +822,7 @@
         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.setMemo(params.getReason());
         order.setShipName(params.getReason_name());
         order.setCreateTime(new Date());
         order.setUpdateTime(new Date());
@@ -568,6 +845,7 @@
             if (Objects.isNull(locDetl)) {
                 throw new CoolException("搴撳瓨涓嶅瓨鍦紒锛�");
             }
+
             BeanUtils.copyProperties(locDetl, checkOrderDetl);
             checkOrderDetl.setLocDetlId(locDetl.getId());
             checkOrderDetl.setOrderId(order.getId());
@@ -580,7 +858,7 @@
             checkOrderDetl.setSuppCode(locDetl.getSuppCode());
             checkOrderDetl.setStandby1(locDetl.getSuppCode());
             checkOrderDetl.setAnfme(new BigDecimal(locDetl.getAnfme().toString()));
-            checkOrderDetl.setDiffQty(BigDecimal.ZERO);
+            checkOrderDetl.setDiffQty(new BigDecimal(item.getBsby_qty() + ""));
             checkOrderDetl.setWorkQty(BigDecimal.ZERO);
             checkOrderDetl.setStatus(1);
             checkOrderDetl.setZpallet(locDetl.getZpallet());
@@ -595,4 +873,8 @@
         });
     }
 
+    private String kopen() {
+        return url + ":" + port + prefix;
+    }
+
 }

--
Gitblit v1.9.1