Browse Source

退货换货对接erp功能更新

hu 2 years ago
parent
commit
a7117846ee

+ 28 - 4
src/custom/restcontroller/webmanage/sale/aftersalesmag/aftersalesmag.java

@@ -6,6 +6,7 @@ import beans.aftersalesmag.Aftersalesmag;
 import beans.data.BatchDeleteErr;
 import beans.datacontrllog.DataContrlLog;
 import beans.hr.Hr;
+import beans.parameter.Parameter;
 import beans.salesforecast.Salesforecast;
 
 import com.alibaba.fastjson.JSONArray;
@@ -20,6 +21,7 @@ import common.data.Rows;
 import common.data.RowsMap;
 import common.data.SQLFactory;
 import restcontroller.R;
+import utility.ERPDocking;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -299,9 +301,13 @@ public class aftersalesmag extends Controller {
     public String recheck() throws YosException {
         Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
         boolean ischeck = content.getBooleanValue("ischeck");
-        Rows rows = dbConnect
-                .runSqlQuery("select sa_aftersalesmagid,status,billno from sa_aftersalesmag where sa_aftersalesmagid ='"
-                        + sa_aftersalesmagid + "' and  siteid='" + siteid + "'");
+//        Rows rows = dbConnect
+//                .runSqlQuery("select sa_aftersalesmagid,status,billno from sa_aftersalesmag where sa_aftersalesmagid ='"
+//                        + sa_aftersalesmagid + "' and  siteid='" + siteid + "'");
+        Rows rows = dbConnect.runSqlQuery("select t1.*,t3.agentnum,t2.enterprisename from sa_aftersalesmag t1 left join sys_enterprise t2  on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t1.siteid=t3.siteid where t1.sa_aftersalesmagid ='"
+                + sa_aftersalesmagid + "' and  t1.siteid='" + siteid + "'");
+        Rows rowsdetail = dbConnect.runSqlQuery("select t4.itemno,t2.batchno,t1.qty,t1.price,t1.reason from sa_aftersalesmag_items t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid  left join plm_item t4 on t1.itemid=t4.itemid and t1.siteid=t4.siteid  where t1.sa_aftersalesmagid ='"
+                + sa_aftersalesmagid + "' and  t1.siteid='" + siteid + "'");
         for (Row row : rows) {
             if (ischeck) {
                 if (!row.getString("status").equals("提交")) {
@@ -331,7 +337,17 @@ public class aftersalesmag extends Controller {
         sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
         sqlFactoryupdate.addParameter("checkby", username);
         sqlList.add(sqlFactoryupdate.getSQL());
-
+        if (ischeck) {
+            //对接erp生成erp发货单
+            if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+                ERPDocking erpDocking =new ERPDocking();
+                String result =erpDocking.createErpSareturn(rows.get(0),rowsdetail);
+                if(!result.equals("true")){
+                    System.out.println(result);
+                    return getErrReturnObject().setErrMsg(result).toString();
+                }
+            }
+        }
         dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
     }
@@ -355,6 +371,14 @@ public class aftersalesmag extends Controller {
         }
 
         ArrayList<String> sqlList = new ArrayList<>();
+        if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+            ERPDocking erpDocking =new ERPDocking();
+            String billno = rows.get(0).getString("billno");
+            String result =erpDocking.recheckErpSareturn(billno,false);
+            if(!result.equals("true")){
+                return getErrReturnObject().setErrMsg(result).toString();
+            }
+        }
        if(rows.get(0).getString("type").equals("退货单")) {
            if( rows.get(0).getLong("sa_orderid") !=0){
                if (rows.get(0).getDouble("returnamount") != 0) {

+ 5 - 1
src/custom/restcontroller/webmanage/sale/dispatch/dispatchItems.java

@@ -1,6 +1,7 @@
 package restcontroller.webmanage.sale.dispatch;
 
 import beans.data.BatchDeleteErr;
+import beans.parameter.Parameter;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import common.Controller;
@@ -211,7 +212,10 @@ public class dispatchItems extends Controller {
         ERPDocking erpDocking =new ERPDocking();
         JSONArray jsonArray =new JSONArray();
         if(rows.toJsonArray("itemno").size()!=0){
-            jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+            if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+                jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+            }
+
         }
         if(!jsonArray.isEmpty()){
             for (Object object:jsonArray) {

+ 4 - 1
src/custom/restcontroller/webmanage/sale/invbal/invbal.java

@@ -6,6 +6,7 @@ import java.util.Calendar;
 import java.util.HashMap;
 
 import beans.itemclass.ItemClass;
+import beans.parameter.Parameter;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -164,7 +165,9 @@ public class invbal extends Controller {
 		ERPDocking erpDocking =new ERPDocking();
 		JSONArray jsonArray =new JSONArray();
 		if(rows.toJsonArray("itemno").size()!=0){
-			jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+			if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+				jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+			}
 		}
 
 		if(!jsonArray.isEmpty()){

+ 57 - 0
src/custom/service/AftersalesmagAutoRecheckService.java

@@ -0,0 +1,57 @@
+package service;
+
+import beans.datacontrllog.DataContrlLog;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.ServiceController;
+import common.YosException;
+import common.data.Row;
+import common.data.Rows;
+import common.data.RowsMap;
+import common.data.SQLFactory;
+import org.apache.log4j.Logger;
+import utility.ERPDocking;
+
+import java.util.ArrayList;
+
+
+/**
+ * 换货单自动复核任务
+ */
+public class AftersalesmagAutoRecheckService extends ServiceController {
+
+    private static Logger logger = Logger.getLogger(AftersalesmagAutoRecheckService.class);
+    @Override
+
+    public void serviceRun() throws YosException {
+    	 //
+        Rows rows = dbConnect.runSqlQuery("select * from sa_aftersalesmag where status='审核' and type='换货单' and siteid='ZZYOS'");
+        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");
+            String result =erpDocking.recheckErpSareturn(billno,false);
+            if(result.equals("true")){
+                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("换货单自动复核错误:"+result);
+            }
+
+        }
+        dbConnect.runSqlUpdate(sqlList);
+    }
+
+   
+
+
+}

+ 114 - 0
src/custom/utility/ERPDocking.java

@@ -217,6 +217,120 @@ public class ERPDocking {
             objectdetail.put("isManual",isManual);
             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);
+            JSONObject resultobject = JSONObject.parseObject(result);
+            if(resultobject.getString("errcode").equals("0")){
+                return "true";
+            }else {
+                return resultobject.getString("errmsg");
+            }
+        }
+    }
+    /**
+     * 创建Erp退/换货单
+     * @param aftersalesmagRow
+     * @param aftersalesmagItems
+     * @return
+     * @throws YosException
+     */
+    public String createErpSareturn(Row aftersalesmagRow, Rows aftersalesmagItems) throws YosException {
+        {
+
+            JSONObject object= new JSONObject();
+            JSONObject objectdetail= new JSONObject();
+            JSONArray jsonArray =new JSONArray();
+            object.put("access_token","basicDrp");
+            object.put("classname","Sareturn");
+            object.put("method","createSareturn");
+            objectdetail.put("freturnnum",aftersalesmagRow.getString("billno"));
+            objectdetail.put("fagentnum",aftersalesmagRow.getString("agentnum"));
+            objectdetail.put("fagentname",aftersalesmagRow.getString("enterprisename"));
+            objectdetail.put("faccclsnum","01");
+            objectdetail.put("fdate",aftersalesmagRow.getString("billdate"));
+            objectdetail.put("fnotes",aftersalesmagRow.getString("reason"));
+            if(aftersalesmagRow.getString("type").equals("退货单")){
+                objectdetail.put("freturntype","退货");
+            }else if(aftersalesmagRow.getString("type").equals("换货单")){
+                objectdetail.put("freturntype","换货");
+            }
+
+            if(aftersalesmagItems.isNotEmpty()){
+                for (Row row:aftersalesmagItems) {
+                    JSONObject jsonObject=new JSONObject();
+                    jsonObject.put("fprodnum", row.getString("itemno"));
+                    jsonObject.put("fbatchbnum", row.getString("batchno"));
+                    jsonObject.put("fqty", row.getString("qty"));
+                    jsonObject.put("fprice", row.getString("price"));
+                    jsonObject.put("fremarks", row.getString("reason"));
+                    jsonArray.add(jsonObject);
+                }
+            }
+            objectdetail.put("details",jsonArray);
+            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);
+            if(resultobject.getString("errcode").equals("0")){
+                return "true";
+            }else {
+                return resultobject.getString("errmsg");
+            }
+
+        }
+    }
+    /**
+     * 查询Erp退/换货单(单个)
+     * @param billno
+     * @return
+     * @throws YosException
+     */
+    public JSONArray queryErpSareturn(String billno) throws YosException {
+        {
+
+            JSONObject object= new JSONObject();
+            JSONObject objectdetail= new JSONObject();
+            object.put("access_token","basicDrp");
+            object.put("classname","Sareturn");
+            object.put("method","queryOne");
+            objectdetail.put("freturnnum",billno);
+            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);
+            JSONObject resultobject = JSONObject.parseObject(result);
+            System.out.println(resultobject);
+            if(resultobject.getString("errcode").equals("error")){
+                return new JSONArray();
+            }else {
+                return resultobject.getJSONObject("results").getJSONArray("details");
+            }
+        }
+    }
+    /**
+     * 复核Erp退/换货单
+     * @param billno
+     * @param isManual
+     * @return
+     * @throws YosException
+     */
+    public String recheckErpSareturn(String billno, boolean isManual) throws YosException {
+        {
+
+            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",isManual);
+            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);