Просмотр исходного кода

换货单自动复核功能优化

hu 3 лет назад
Родитель
Сommit
5bdcc6bdf9

+ 74 - 59
src/custom/service/AftersalesmagAutoRecheckService.java

@@ -29,72 +29,87 @@ public class AftersalesmagAutoRecheckService extends ServiceController {
     public void serviceRun() throws YosException {
     	 //
         Rows rows = dbConnect.runSqlQuery("select * from sa_aftersalesmag where status='审核' and type='换货单' and siteid='ZZYOS'");
+        RowsMap rowsMap1 = rows.toRowsMap("billno");
         ArrayList<String> sqlList = new ArrayList<>();
         ERPDocking erpDocking =new ERPDocking();
-        for (Row row : rows) {
-            String sa_aftersalesmagid = row.getString("sa_aftersalesmagid");
-            String billno = row.getString("billno");
-            JSONObject object= new JSONObject();
-            JSONObject objectdetail= new JSONObject();
-            object.put("access_token","basicDrp");
-            object.put("classname","Sareturn");
-            object.put("method","closeSareturn");
-            objectdetail.put("freturnnum",billno);
-            objectdetail.put("isManual",false);
-            object.put("content",objectdetail);
+        JSONArray ErpSareturns = erpDocking.queryErpSareturns(10000, 1, new JSONArray(), "", "", "换货", "",true);
+        if(!ErpSareturns.isEmpty()){
+            for (Object ErpSareturn:ErpSareturns) {
+                JSONObject erpSareturn = (JSONObject) ErpSareturn;
+                String billno = erpSareturn.getString("freturnnum");
+                long sa_aftersalesmagid=0;
+                if(rowsMap1.containsKey(billno)){
+                    if(rowsMap1.get(billno).isNotEmpty()){
+                        sa_aftersalesmagid=rowsMap1.get(billno).get(0).getLong("sa_aftersalesmagid");
+                    }else{
+                        logger.info("退货单【"+billno+"】不存在:");
+                        continue;
+                    }
+                }else {
+                    logger.info("退货单【"+billno+"】不存在:");
+                    continue;
+                }
+                JSONObject object= new JSONObject();
+                JSONObject objectdetail= new JSONObject();
+                object.put("access_token","basicDrp");
+                object.put("classname","Sareturn");
+                object.put("method","closeSareturn");
+                objectdetail.put("freturnnum",billno);
+                objectdetail.put("isManual",false);
+                object.put("content",objectdetail);
 
-            HashMap<String, String> map = new HashMap<>();
-            map.put("content-Type", "application/json");
-            String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
+                HashMap<String, String> map = new HashMap<>();
+                map.put("content-Type", "application/json");
+                String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
 
-            JSONObject resultobject = JSONObject.parseObject(result);
-            try {
-                Rows erpupdatelogRows = dbConnect.runSqlQuery(
-                        "select * from sys_erpupdatelog where ownertable='sa_aftersalesmag' and type='复核erp退/换货单' and ownerid=" + sa_aftersalesmagid);
-                SQLFactory sqlFactory;
-                if (!rows.isEmpty()) {
-                    sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
-                    sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid"));
-                } else {
-                    sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
-                    sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog"));
-                }
-                sqlFactory.addParameter("siteid", "ZZYOS");
-                sqlFactory.addParameter("userid", 1);
-                sqlFactory.addParameter("username","admin");
-                sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
-                sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
-                sqlFactory.addParameter("type", "复核erp退/换货单");
-                sqlFactory.addParameter("request", object.toString());
-                sqlFactory.addParameter("response", resultobject.toJSONString());
+                JSONObject resultobject = JSONObject.parseObject(result);
+                try {
+                    Rows erpupdatelogRows = dbConnect.runSqlQuery(
+                            "select * from sys_erpupdatelog where ownertable='sa_aftersalesmag' and type='复核erp退/换货单' and ownerid=" + sa_aftersalesmagid);
+                    SQLFactory sqlFactory;
+                    if (!erpupdatelogRows.isEmpty()) {
+                        sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
+                        sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid"));
+                    } else {
+                        sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
+                        sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog"));
+                    }
+                    sqlFactory.addParameter("siteid", "ZZYOS");
+                    sqlFactory.addParameter("userid", 1);
+                    sqlFactory.addParameter("username","admin");
+                    sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
+                    sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
+                    sqlFactory.addParameter("type", "复核erp退/换货单");
+                    sqlFactory.addParameter("request", object.toString());
+                    sqlFactory.addParameter("response", resultobject.toJSONString());
 
-                if ("0".equals(resultobject.getString("errcode"))) {
-                    sqlFactory.addParameter("erpbillno", billno);
-                    sqlFactory.addParameter("errmsg", "");
-                } else {
-                    sqlFactory.addParameter("erpbillno", "");
-                    sqlFactory.addParameter("errmsg", resultobject.getString("errmsg"));
+                    if ("0".equals(resultobject.getString("errcode"))) {
+                        sqlFactory.addParameter("erpbillno", billno);
+                        sqlFactory.addParameter("errmsg", "");
+                    } else {
+                        sqlFactory.addParameter("erpbillno", "");
+                        sqlFactory.addParameter("errmsg", resultobject.getString("errmsg"));
+                    }
+                    sqlFactory.addParameter("status", resultobject.getString("errcode"));
+                    sqlList.add(sqlFactory.getSQL());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                if(resultobject.getString("errcode").equals("0")){
+                    sqlList.add("update sa_aftersalesmag set status='复核' where sa_aftersalesmagid='"+sa_aftersalesmagid+"' and siteid='ZZYOS'");
+                    SQLFactory sqlFactory = new SQLFactory(new DataContrlLog(), "数据操作日志新增");
+                    sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
+                    sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
+                    sqlFactory.addParameter("action", "自动复核");
+                    sqlFactory.addParameter("remarks", "换货单自动复核成功");
+                    sqlFactory.addParameter("actionuserid", "1");
+                    sqlFactory.addParameter("actionby", "admin");
+                    sqlFactory.addParameter("siteid", "ZZYOS");
+                    sqlList.add(sqlFactory.getSQL());
+                }else {
+                    logger.info("换货单自动复核错误:"+resultobject.getString("errmsg"));
                 }
-                sqlFactory.addParameter("status", resultobject.getString("errcode"));
-                sqlList.add(sqlFactory.getSQL());
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-            if(resultobject.getString("errcode").equals("0")){
-                sqlList.add("update sa_aftersalesmag set status='复核' where sa_aftersalesmagid='"+sa_aftersalesmagid+"' and siteid='ZZYOS'");
-                SQLFactory sqlFactory = new SQLFactory(new DataContrlLog(), "数据操作日志新增");
-                sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
-                sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
-                sqlFactory.addParameter("action", "自动复核");
-                sqlFactory.addParameter("remarks", "换货单自动复核成功");
-                sqlFactory.addParameter("actionuserid", "1");
-                sqlFactory.addParameter("actionby", "admin");
-                sqlFactory.addParameter("siteid", "ZZYOS");
-                sqlList.add(sqlFactory.getSQL());
-            }else {
-                logger.info("换货单自动复核错误:"+resultobject.getString("errmsg"));
             }
-
         }
         dbConnect.runSqlUpdate(sqlList);
     }

+ 50 - 1
src/custom/utility/ERPDocking.java

@@ -216,7 +216,13 @@ public class ERPDocking {
 
     /**
      * 查询Erp发货单(批量)
-     * @param billno
+     * @param pagerows
+     * @param pagenum
+     * @param finvonums
+     * @param fagentnum
+     * @param fsonum
+     * @param fstatus
+     * @param onlyNeedClosed
      * @return
      * @throws YosException
      */
@@ -371,6 +377,49 @@ public class ERPDocking {
             }
         }
     }
+    /**
+     * 查询Erpt退/换货单(批量)
+     * @param pagerows
+     * @param pagenum
+     * @param freturnnums
+     * @param fagentnum
+     * @param fsonum
+     * @param fstatus
+     * @param onlyNeedClosed
+     * @return
+     * @throws YosException
+     */
+    public JSONArray queryErpSareturns(int pagerows, int pagenum,JSONArray freturnnums,String fagentnum,String fsonum,String freturntype,String fstatus,boolean onlyNeedClosed) throws YosException {
+        {
+
+            JSONObject object= new JSONObject();
+            JSONObject objectdetail= new JSONObject();
+            object.put("access_token","basicDrp");
+            object.put("classname","Sareturn");
+            object.put("method","queryPage");
+            objectdetail.put("pagenum",pagenum);
+            objectdetail.put("pagerows",pagerows);
+            objectdetail.put("freturnnums",freturnnums);
+            objectdetail.put("fagentnum",fagentnum);
+            objectdetail.put("fsonum",fsonum);
+            objectdetail.put("freturntype",freturntype);
+            objectdetail.put("fstatus",fstatus);
+            objectdetail.put("onlyNeedClosed",onlyNeedClosed);
+            object.put("content",objectdetail);
+
+            HashMap<String, String> map = new HashMap<>();
+            map.put("content-Type", "application/json");
+            System.out.println(object.toString());
+            String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
+            JSONObject resultobject = JSONObject.parseObject(result);
+            System.out.println(resultobject);
+            if(resultobject.getString("errcode").equals("error")){
+                return new JSONArray();
+            }else {
+                return resultobject.getJSONObject("results").getJSONArray("list");
+            }
+        }
+    }
     /**
      * 复核Erp退/换货单
      * @param billno