From e400c6f84ad6e777ae32597d01eb2d0fd79f5e56 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期四, 21 十一月 2024 15:58:17 +0800
Subject: [PATCH] 完善

---
 zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java |  200 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 192 insertions(+), 8 deletions(-)

diff --git a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
index c2e9ada..8da98f7 100644
--- a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
+++ b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
@@ -4,18 +4,32 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.common.openapi.entity.HostKey;
-import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam;
+import com.zy.asrs.common.openapi.entity.dto.OrderListDto;
+import com.zy.asrs.common.openapi.entity.param.*;
+import com.zy.asrs.common.openapi.service.ApiService;
 import com.zy.asrs.common.openapi.service.HostKeyService;
+import com.zy.asrs.common.sys.entity.OperateLog;
+import com.zy.asrs.common.sys.service.OperateLogService;
+import com.zy.asrs.common.utils.Utils;
 import com.zy.asrs.common.web.BaseController;
+import com.zy.asrs.common.wms.entity.DocType;
+import com.zy.asrs.common.wms.entity.OrderSettle;
+import com.zy.asrs.framework.annotations.AppAuth;
 import com.zy.asrs.framework.common.BaseRes;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.openapi.param.MatParam;
+import com.zy.asrs.openapi.param.OrderParam;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -25,11 +39,22 @@
 
     @Autowired
     private HostKeyService hostKeyService;
+    @Autowired
+    private ApiService apiService;
 
+    @PostMapping("/test")
+    public R test() {
+        return R.ok();
+    }
+
+    /**
+     * 鐢熸垚鍏ュ簱璁㈠崟
+     */
     @PostMapping("/generateOrderPakIn")
-    public synchronized R pakinOrderCreate(@RequestHeader(required = false) String appkey,
+    @AppAuth(memo = "鐢熸垚鍏ュ簱璁㈠崟")
+    public synchronized R generateOrderPakIn(@RequestHeader(required = true) String appkey,
                                            @RequestBody GenerateOrderPakInParam param) {
-        auth(appkey, param);
+        HostKey hostKey = auth(appkey, param, true);
         if (Cools.isEmpty(param)) {
             return R.parse(BaseRes.PARAM);
         }
@@ -39,14 +64,84 @@
         if (Cools.isEmpty(param.getOrderType())) {
             return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
         }
-        if (Cools.isEmpty(param.getOrderDetails())) {
-            return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖");
+        if (Cools.isEmpty(param.getMats())) {
+            return R.error("鐗╂枡[mats]涓嶈兘涓虹┖");
         }
-//        openService.pakinOrderCreate(param);
+        param.setHostId(hostKey.getHostId());
+        apiService.generateOrderPakIn(param);
         return R.ok();
     }
 
-    private void auth(String appkey, Object obj) {
+    /**
+     * 鐢熸垚鍑哄簱璁㈠崟
+     */
+    @PostMapping("generateOrderPakOut")
+    @AppAuth(memo = "鐢熸垚鍑哄簱璁㈠崟")
+    public synchronized R generateOrderPakOut(@RequestHeader(required = false) String appkey,
+                                            @RequestBody GenerateOrderPakOutParam param) {
+        HostKey hostKey = auth(appkey, param, true);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        if (Cools.isEmpty(param.getOrderNo())) {
+            return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖");
+        }
+        if (Cools.isEmpty(param.getOrderType())) {
+            return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
+        }
+        if (Cools.isEmpty(param.getMats())) {
+            return R.error("鐗╂枡[mats]涓嶈兘涓虹┖");
+        }
+        param.setHostId(hostKey.getHostId());
+        apiService.generateOrderPakOut(param);
+        return R.ok();
+    }
+
+    /**
+     * 鑾峰彇璁㈠崟绫诲瀷
+     */
+    @PostMapping("/getOrderType")
+    public synchronized R getOrderType(@RequestHeader(required = true) String appkey) {
+        auth(appkey, null, false);
+        List<DocType> list = apiService.getOrderType();
+        return R.ok().add(list);
+    }
+
+    /**
+     * 鑾峰彇璁㈠崟鐘舵�佸垪琛�
+     */
+    @PostMapping("/getOrderStatus")
+    public synchronized R getOrderStatus(@RequestHeader(required = true) String appkey) {
+        auth(appkey, null, false);
+        List<OrderSettle> list = apiService.getOrderStatus();
+        return R.ok().add(list);
+    }
+
+    /**
+     * 鑾峰彇璁㈠崟鍒楄〃
+     */
+    @PostMapping("/getOrderList")
+    public synchronized R getOrderList(@RequestHeader(required = true) String appkey,
+                                       @RequestBody(required = false) OrderListParam param) {
+        HostKey hostKey = auth(appkey, null, false);
+        List<OrderListDto> orderList = apiService.getOrderList(param, hostKey.getHostId());
+        return R.ok().add(orderList);
+    }
+
+    /**
+     * 鍒涘缓鐗╂枡淇℃伅
+     */
+    @PostMapping("/createMat")
+    public synchronized R createMat(@RequestHeader(required = true) String appkey,
+                                    @RequestBody(required = false) CreateMatParam param) {
+        HostKey hostKey = auth(appkey, param, true);
+        param.setHostId(hostKey.getHostId());
+        int result = apiService.createMat(param);
+        return R.ok().add(result);
+    }
+
+    private HostKey auth(String appkey, Object obj, boolean signCheck) {
+        request.setAttribute("cache", obj);
         if (Cools.isEmpty(appkey)) {
             throw new CoolException("璁よ瘉澶辫触锛岃纭appKey鏃犺锛�");
         }
@@ -56,7 +151,7 @@
             throw new CoolException("璁よ瘉澶辫触锛岃纭appKey鏃犺锛�");
         }
 
-        if (hostKey.getSignStatus() == 1) {
+        if (hostKey.getSignStatus() == 1 && signCheck) {
             //闇�瑕佽繘琛岀鍚嶆牎楠�
             //鍒涘缓鑷劧鎺掑簭map
             JSONObject param = new JSONObject(true);
@@ -72,6 +167,95 @@
                 throw new CoolException("绛惧悕鏍¢獙澶辫触");
             }
         }
+
+        return hostKey;
+    }
+
+    @PostMapping("order/execute/auth/v1")
+    public R wms1(@RequestBody Map<String, Object> map) {
+        try {
+//            System.out.println(map.toString());
+            log.info("order/execute/auth/v1锛�" + JSON.toJSONString(map));
+            OrderParam orderParam = JSON.parseObject(JSON.toJSONString(map), OrderParam.class);
+
+            OperateLogService operateLogService = SpringUtils.getBean(OperateLogService.class);
+            //璁板綍涓婃姤鏁版嵁
+            OperateLog operateLog = new OperateLog();
+            operateLog.setAction("ERP鎺ㄩ�佽鍗�");
+            operateLog.setRequest(orderParam.toString());
+            operateLog.setResponse("");
+            operateLog.setCreateTime(new Date());
+            operateLog.setSystem("WMS");
+            operateLog.setUserId(9527L);
+            operateLog.setIp("127.0.0.1");
+            operateLogService.save(operateLog);
+
+            List<DocType> list = apiService.getOrderType();
+            DocType type = null;
+            for (DocType docType : list) {
+                if (docType.getDocName().equals(orderParam.getOrderType())) {
+                    type = docType;
+                    break;
+                }
+            }
+            if (type == null) {
+                return R.error("鍗曟嵁绫诲瀷涓嶅瓨鍦�");
+            }
+
+            ArrayList<GenerateOrderMatParam> mats = new ArrayList<>();
+            String matnr=null;
+            for (MatParam matParam : orderParam.getList()) {
+                GenerateOrderMatParam mat = new GenerateOrderMatParam();
+                mat.setMatnr(matParam.getMatnr());
+                mat.setBatch(matParam.getBatch());
+                mat.setAnfme(matParam.getCount());
+                mat.setUnit(matParam.getUnit());
+                mat.setWarehouse(matParam.getWarehouse());
+                mat.setOrigin(matParam.getOrigin());
+                mat.setOriginNo(matParam.getOriginNo());
+                if(Cools.isEmpty(mats)){
+                    mats.add(mat);
+                }else{
+                    boolean boo=true;
+                    for (GenerateOrderMatParam m:mats
+                         ) {
+                        if(m.getMatnr().equals(matParam.getMatnr())){
+                            m.setAnfme(m.getAnfme()+mat.getAnfme());
+                            boo=false;
+                            break;
+                        }
+                    }
+                    if(boo){
+                        mats.add(mat);
+                    }
+                }
+            }
+
+            if (orderParam.getInOut() == 1) {
+                //鍏ュ簱
+                GenerateOrderPakInParam param = new GenerateOrderPakInParam();
+                param.setHostId(1L);
+                param.setOrderType(type.getDocId().intValue());
+                param.setOrderNo(orderParam.getOrderNo());
+                param.setMats(mats);
+                apiService.generateOrderPakIn(param);
+            } else if (orderParam.getInOut() == 2) {
+                //鍑哄簱
+                GenerateOrderPakOutParam param = new GenerateOrderPakOutParam();
+                param.setHostId(1L);
+                param.setOrderType(type.getDocId().intValue());
+                param.setOrderNo(orderParam.getOrderNo());
+                param.setMats(mats);
+                apiService.generateOrderPakOut(param);
+            } else {
+                //鍏朵粬
+                return R.error("鍑哄叆搴撶被鍨嬮敊璇�");
+            }
+
+            return R.ok();
+        } catch (Exception e) {
+            return R.error(e.getMessage());
+        }
     }
 
 }

--
Gitblit v1.9.1