From 66e452d698b2fda9d3be730907fb37054f109f5a Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期日, 17 九月 2023 18:37:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java |  121 ++++++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java           |   14 +-
 src/main/java/com/zy/asrs/controller/MobileController.java         |    4 
 src/main/java/com/zy/asrs/entity/param/TrussCombParam.java         |    2 
 src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java         |    2 
 src/main/java/com/zy/asrs/entity/param/BalconyWrkMastParam.java    |   66 +++++++++++++
 src/main/java/com/zy/asrs/task/BareBoardScheduler.java             |    2 
 src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java   |    4 
 src/main/java/com/zy/asrs/task/RailwayPlatformScheduler.java       |   30 ++++++
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java      |    5 
 src/main/java/com/zy/asrs/entity/LocMast.java                      |    3 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java        |    5 
 src/main/resources/application.yml                                 |    1 
 13 files changed, 241 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index cd34e8e..59d2898 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -195,14 +195,14 @@
     }
 
     @RequestMapping("/truss/auth")
-    @ManagerAuth(memo = "閫�搴�")
+    @ManagerAuth(memo = "閫�搴擄紝1妤兼鏋堕��搴�")
     public R trussComb(@RequestBody TrussCombParam combParam){
         mobileService.trussComb(combParam, getUserId());
         return R.ok("缁勬墭鎴愬姛");
     }
 
     @RequestMapping("/truss/comd/auth")
-    @ManagerAuth(memo = "鎵嬪姩鍏ュ簱")
+    @ManagerAuth(memo = "鎵嬪姩鍏ュ簱锛�2妤兼棤闇�妗佹灦鎵嬪姩鍏ュ簱")
     public R trussComb2(@RequestBody PalletizingCompleteParam combParam){
         mobileService.trussComb2(combParam, getUserId());
         return R.ok("缁勬墭鎴愬姛");
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index efc1528..9b67ecc 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -222,7 +222,7 @@
      * 涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�
      */
     @PostMapping("/palletizing/complete/auth/v1")
-    @AppAuth(memo = "涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�")
+    @AppAuth(memo = "涓帶(妗佹灦)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�")
     public synchronized R palletizingComplete(@RequestHeader(required = false) String appkey,
                                            @RequestBody PalletizingCompleteParam param,
                                            HttpServletRequest request) {
@@ -260,10 +260,10 @@
 
 
     /**
-     * 涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�  娴嬭瘯1
+     *  娴嬭瘯1  鍏ュ簱鍓嶈緭閫佺嚎鍐欏叆鎵樼洏鐮侊紝216绔欐祴璇曠敤
      */
     @PostMapping("/cs1/auth/v1")
-    @AppAuth(memo = "涓帶锛氱爜鍨涘墠涓婃姤鏉$爜,鐢熸垚娴嬭瘯宸ヤ綔妗�")
+    @AppAuth(memo = "")
     public synchronized R cs1(@RequestHeader(required = false) String appkey,
                                               @RequestBody PalletizingCompleteParam param,
                                               HttpServletRequest request) {
@@ -273,10 +273,10 @@
     }
 
     /**
-     * 涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�  娴嬭瘯2
+     *  娴嬭瘯2  娓呴櫎鎵樼洏鐮侊紝216绔欐祴璇曠敤 Copy
      */
     @PostMapping("/cs2/auth/v1")
-    @AppAuth(memo = "涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�,鐢熸垚娴嬭瘯宸ヤ綔妗�")
+    @AppAuth(memo = "")
     public synchronized R cs2(@RequestHeader(required = false) String appkey,
                                                 @RequestBody PalletizingCompleteParam param,
                                                 HttpServletRequest request) {
@@ -286,10 +286,10 @@
     }
 
     /**
-     * 涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�  娴嬭瘯3
+     * 娴嬭瘯3
      */
     @PostMapping("/cs3/auth/v1")
-    @AppAuth(memo = "涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�,鐢熸垚娴嬭瘯宸ヤ綔妗�")
+    @AppAuth(memo = "")
     public synchronized R cs3(@RequestHeader(required = false) String appkey,
                                                 @RequestBody PalletizingCompleteParam param,
                                                 HttpServletRequest request) {
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index 23d8301..38da56c 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -50,6 +50,9 @@
     @TableField("loc_sts")
     private String locSts;
 
+    /**
+     * 寰愬伐姹変簯鎷嗗灈鏍囪  0: 鏈媶  1: 宸叉媶  2:宸插鐞嗗彲涓嬩竴姝ワ紙杞巻鍙叉。锛�
+     */
     @ApiModelProperty(value= "")
     @TableField("sheet_no")
     private String sheetNo;
diff --git a/src/main/java/com/zy/asrs/entity/param/BalconyWrkMastParam.java b/src/main/java/com/zy/asrs/entity/param/BalconyWrkMastParam.java
new file mode 100644
index 0000000..b3659dd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/BalconyWrkMastParam.java
@@ -0,0 +1,66 @@
+package com.zy.asrs.entity.param;
+
+import com.core.common.DateUtils;
+import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkMast;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/28
+ */
+@Data
+public class BalconyWrkMastParam {
+
+    private Integer balcony;//		瀛楃涓�	鏈堝彴
+    private String boxType;//	鏄�	瀛楃涓�	鏈ㄧ绫诲瀷
+    private String uuid;//		瀛楃涓�	鏃堕棿鎴�
+    private String createTime;//		瀛楃涓�	鍒涘缓鏃堕棿yyyy-MM-dd HH:mm:ss
+
+    private List<MatList> matLists;//		鏄�	鍒楄〃	鎷嗗灈璐х墿淇℃伅锛�2绠憋紝灏剧鍙兘1绠憋級
+
+    @Data
+    public static class MatList{
+        private String matnr;//	鏄�	瀛楃涓�	鐗╂枡缂栫爜
+        private String maktx;//		瀛楃涓�	鐗╂枡鍚嶇О
+        private String boxNo;//	鏄�	瀛楃涓�	鏈ㄧ缂栧彿锛堝敮涓�瀛楁锛屽嚭搴撲緷鎹紝鍑哄簱鏃舵寜鐓ф湪绠辩紪鍙峰嚭搴擄級
+        private String position;//	鏄�	瀛楃涓�	鏈ㄧ浣嶇疆锛堟媶鍨涙椂闇�瑕侊級
+        private Double weight;//	鏄�	灏忔暟鍨�	閲嶉噺
+        private Integer anfme;//		鏁板瓧鍨�	鏈ㄧ涓摐绠旀暟閲�
+        private String batch;//		瀛楃涓�	鎵规鍙�
+        private String specs;//		瀛楃涓�	瑙勬牸
+        private List<MatDetlList> matDetlList;//		鏄�	鍒楄〃	鏈ㄧ涓摐绠斾俊鎭�
+    }
+
+    @Data
+    public static class MatDetlList{
+        private String boxNoDetl;//	鏄�	瀛楃涓�	閾滅當缂栧彿锛堝敮涓�瀛楁锛�
+        private String positionDetl;//	鏄�	瀛楃涓�	閾滅當浣嶇疆锛堟媶鍨涙椂闇�瑕侊級
+        private Double weightDetl;//	鏄�	灏忔暟鍨�	閲嶉噺
+        private String batchDetl;//		瀛楃涓�	鎵规鍙�
+        private String specsDetl;//		瀛楃涓�	瑙勬牸
+    }
+
+    public BalconyWrkMastParam(){};
+
+    public BalconyWrkMastParam(WrkMast wrkMast, List<WrkDetl> wrkDetls){
+        this.uuid= String.valueOf(System.currentTimeMillis());
+        this.createTime = DateUtils.convert(new Date());
+        for (WrkDetl wrkDetl : wrkDetls){
+            this.boxType = wrkDetl.getBrand();
+            MatList matList = new MatList();
+            matList.setMatnr(wrkDetl.getMatnr());
+            matList.setMaktx(wrkDetl.getMaktx());
+            matList.setBoxNo(wrkDetl.getBatch());
+            matList.setPosition(wrkDetl.getOrigin());
+            matList.setWeight(wrkDetl.getWeight());
+            matList.setAnfme(wrkDetl.getAnfme().intValue());
+            matList.setSpecs(wrkDetl.getSpecs());
+            matList.setBatch(wrkDetl.getModel());
+            this.matLists.add(matList);
+        }
+    };
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java b/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
index 9fda3b3..1c49418 100644
--- a/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
@@ -11,7 +11,9 @@
 
     private String barcode;//		瀛楃涓�	鎵樼洏鐮�
     private String palletizingNo;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�
+    private String palletizingNo2;//	鏄�	瀛楃涓�	鐩爣鐮佸灈浣嶇紪鍙�
     private String boxType;//	鏄�	瀛楃涓�	鏈ㄧ绫诲瀷
+    private String uuid;//		瀛楃涓�	鏃堕棿鎴�
     private String createTime;//		瀛楃涓�	鍒涘缓鏃堕棿
 
     private List<MatList> matLists;//		鏄�	鍒楄〃	鎷嗗灈璐х墿淇℃伅锛�2绠憋紝灏剧鍙兘1绠憋級
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 ff3bf4a..86e82cb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -79,9 +79,8 @@
     @Override
     @Transactional
     public void trussComb(TrussCombParam param, Long userId) {
-//        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
-//            throw new CoolException(BaseRes.PARAM);
-//        }
+        param.setUuid(String.valueOf(new Date().getTime()));
+
     }
     @Override
     @Transactional
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2b64deb..83658c3 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -654,11 +654,12 @@
 
         if (param.getLabResult().equals("OK")){
             wrkMast.setWrkSts(54L);
+            wrkMast.setStaNo(144);
             if (!wrkMastService.updateById(wrkMast)){
                 throw new CoolException("寮傚父锛岃閲嶆柊鐢宠");
             }
         }else if (param.getLabResult().equals("NG")){
-            wrkMast.setWrkSts(52L);
+            wrkMast.setWrkSts(52L);//閲嶆柊璐存爣
             if (!wrkMastService.updateById(wrkMast)){
                 throw new CoolException("寮傚父锛岃閲嶆柊鐢宠");
             }
@@ -819,7 +820,7 @@
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
         wrkMast.setIoType(202); // 鍏ュ嚭搴撶姸鎬侊細202.鎷嗗灈鍚庡嚭搴�
-        wrkMast.setIoPri(13D); // 浼樺厛绾�
+        wrkMast.setIoPri(99D); // 浼樺厛绾�
         wrkMast.setSourceStaNo(param.getDevNo$());
         wrkMast.setStaNo(140); //璐存爣绔欑偣
         // 鎿嶄綔浜哄憳鏁版嵁
diff --git a/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java b/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java
index f0d4c9b..617ff6e 100644
--- a/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java
+++ b/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java
@@ -17,7 +17,7 @@
     private BarcodeUploadHandler barcodeUploadHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    private void execute(){//鏉$爜涓婁紶涓帶
         int[] staNos =new int[]{216,220};
         for (int staNo : staNos){
             ReturnT<String> result = barcodeUploadHandler.start(staNo);
diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
index b16e89c..79283e4 100644
--- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
+++ b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
@@ -28,7 +28,7 @@
     private ConfigService configService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    private void execute(){//鑷姩璋冪┖鏉垮嚭搴�
         Config config = configService.selectById(10468);
         if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
             bareBoardHandler.start();
diff --git a/src/main/java/com/zy/asrs/task/RailwayPlatformScheduler.java b/src/main/java/com/zy/asrs/task/RailwayPlatformScheduler.java
new file mode 100644
index 0000000..ccf3e81
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/RailwayPlatformScheduler.java
@@ -0,0 +1,30 @@
+package com.zy.asrs.task;
+
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.RailwayPlatformHandler;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by Monkey D. Luffy on 2023.09.17
+ * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鑷姩琛ョ┖鏉�
+ */
+@Component
+public class RailwayPlatformScheduler {
+
+    @Autowired
+    private RailwayPlatformHandler railwayPlatformHandler;
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute(){//涓婃姤鏈堝彴
+        int[] staNos =new int[]{144};
+        for (int staNo : staNos){
+            ReturnT<String> result = railwayPlatformHandler.start(staNo);
+            if (result.getCode()==200){
+                break;
+            }
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java b/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java
index 2aa7ee6..14fe7d7 100644
--- a/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java
@@ -53,7 +53,7 @@
     public ReturnT<String> start(int staNo) {
         try {
             BasDevp basDevp = basDevpService.selectById(staNo);
-            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getBarcode()) && basDevp.getWrkNo()==9992){
+            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getBarcode()) && basDevp.getWrkNo()==9992){ //涓婁紶鍓嶅伐浣滃彿璺熺數鎺х害瀹氫负9992锛堜綘鍙互鑷畾涔夛級
                 WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()));
                 if (Cools.isEmpty(waitPakin)){
                     ReturnT<String> result = null;
@@ -102,7 +102,7 @@
                             "涓婃姤erp绯荤粺",
                             erpUrl + erpPath,
                             null,
-                            "127.0.0.1",
+                            erpUrl,
                             JSON.toJSONString(combParam),
                             response,
                             success
diff --git a/src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java b/src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java
new file mode 100644
index 0000000..4933811
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java
@@ -0,0 +1,121 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.BalconyWrkMastParam;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+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.util.List;
+
+/**
+ * Created by Monkey D. Luffy on 2023.09.17
+ * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鑷姩涓婃姤鏈堝彴
+ */
+@Slf4j
+@Service
+@Transactional
+public class RailwayPlatformHandler extends AbstractHandler<String> {
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Autowired
+    private BasDevpService basDevpService;
+    @Autowired
+    private OrderService orderService;
+
+    @Value("${srXghyErp.url}")
+    private String erpUrl;
+    @Value("${srXghyErp.railwayPlatformpath}")
+    private String railwayPlatformpath;
+
+    public ReturnT<String> start(int staNo) {
+        try {
+            BasDevp basDevp = basDevpService.selectById(staNo);
+            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()<9990){
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()).eq("sta_no", staNo).eq("wrk_sts", 55L));
+                if (!Cools.isEmpty(wrkMast)){
+                    List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+                    BalconyWrkMastParam balconyWrkMastParam = new BalconyWrkMastParam(wrkMast, wrkDetls);
+
+                    ReturnT<String> result = null;
+                    for (int i=1;i<7;i++){
+                        balconyWrkMastParam.setBalcony(i);
+                        result = postMesData(railwayPlatformpath,balconyWrkMastParam);
+//                        System.out.println(result);
+                        if (result.getCode()==200){
+                            return SUCCESS;
+                        }else {
+                            log.error("鍑哄簱淇℃伅涓婁紶涓帶澶辫触,鏈堝彴缂栧彿{}",i);
+                        }
+                    }
+
+                }
+            }
+        }catch (Exception e){
+            log.error("寮傚父锛侊紒锛�"+e);
+            return FAIL;
+        }
+        return FAIL;
+    }
+
+    private ReturnT<String> postMesData(String erpPath,Object combParam){
+        if(combParam != null){
+            String response = "";
+            boolean success = false;
+            try {
+                response = new HttpHandler.Builder()
+                        .setUri(erpUrl)
+                        .setPath(erpPath)
+                        .setJson(JSON.toJSONString(combParam))
+                        .build()
+                        .doPost();
+                JSONObject jsonObject = JSON.parseObject(response);
+                if (jsonObject.getString("result").equals("Y")) {
+                    success = true;
+                } else {
+                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}"+erpUrl+erpPath, JSON.toJSONString(combParam), response);
+                    throw new CoolException("涓婃姤erp绯荤粺澶辫触");
+                }
+            } catch (Exception e) {
+                log.error("fail", e);
+//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg(e.getMessage());
+            } finally {
+                try {
+                    // 淇濆瓨鎺ュ彛鏃ュ織
+                    apiLogService.save(
+                            "涓婃姤erp绯荤粺",
+                            erpUrl + erpPath,
+                            null,
+                            erpUrl,
+                            JSON.toJSONString(combParam),
+                            response,
+                            success
+                    );
+                } catch (Exception e) { log.error("", e); }
+            }
+        }
+        return SUCCESS;
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 485aabb..d88b5cd 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -62,6 +62,7 @@
   url: 192.168.101.250:1082
   # 鐮佸灈浣嶆潯鐮佷笂鎶�
   barcodeUploadPath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cprkwc
+  railwayPlatformpath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cprkwc
   # 鍏ュ簱涓婃姤
   inPath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cprkwc
   # 鍑哄簱涓婃姤

--
Gitblit v1.9.1