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

birt报表管理优化 部分crm对接代码更新

shenjingwei 7 месяцев назад
Родитель
Сommit
f950ea9f39

+ 32 - 1
pom.xml

@@ -33,6 +33,37 @@
     </repositories>
 
     <dependencies>
+<!--        本地jar引入-->
+        <dependency>
+            <groupId>aws</groupId>
+            <artifactId>aws</artifactId>
+            <version>1</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/(SDK)aws-api-client.jar</systemPath>
+        </dependency>
+
+        <dependency>
+            <groupId>ojdbc6</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>1</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>rt</groupId>
+            <artifactId>rt</artifactId>
+            <version>1</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/rt.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>tools</groupId>
+            <artifactId>tools</artifactId>
+            <version>1</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/tools.jar</systemPath>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
@@ -61,7 +92,7 @@
         <dependency>
             <groupId>com.yunlian.yos</groupId>
             <artifactId>yos-core</artifactId>
-            <version>3.2.21</version>
+            <version>3.2.22</version>
         </dependency>
         <dependency>
             <groupId>com.microsoft.sqlserver</groupId>

+ 199 - 0
src/custom/common/crm/bean/agent.java

@@ -0,0 +1,199 @@
+package common.crm.bean;
+
+import beans.countryarea.CountryArea;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.YosLogger;
+import common.data.QuerySQL;
+import common.data.Row;
+import common.data.Rows;
+import common.data.SQLFactory;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+import common.crm.bean.core.CrmBase;
+
+import java.util.ArrayList;
+
+public class agent extends CrmBase {
+
+
+    public agent(Logger logger) {
+        super(logger);
+    }
+
+
+    @Override
+    public void autoAction() throws YosException {
+        ArrayList<crm_datasync> datasyncList = get("经销商档案", "sa_agents", 100);
+        for (crm_datasync datasync : datasyncList) {
+            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "sa_agents", "agentnum").setTableAlias("t1");
+            querySQL.setWhere("t1.sa_agentsid", datasync.ownerid);
+            Rows agentRows = querySQL.query();
+            if (agentRows.isNotEmpty() && !agentRows.get(0).getString("agentnum").isEmpty() && agentRows.get(0).getString("status").equals("启用")) {
+                String agentnum = agentRows.get(0).getString("agentnum");
+                if (oneAction(agentnum)) {
+                    datasync.suc();
+                } else {
+                    datasync.fail();
+                }
+            } else {
+                datasync.del();
+            }
+        }
+    }
+
+    public boolean oneAction(String agentnum) {
+        try {
+            String crm_agentsResult = getCRM("/ext/bragent/getAnyAgents?fbrandId=" + fbrandId + "&fagentNums=" + agentnum);
+            JSONObject crm_agentsResultObject = JSONObject.parseObject(crm_agentsResult);
+            boolean isNew = crm_agentsResultObject.getJSONArray("data").isEmpty();
+            JSONArray crm_agentsResultObjectDataArray = crm_agentsResultObject.getJSONArray("data");
+            JSONObject crm_agentObject = !crm_agentsResultObjectDataArray.isEmpty() ? crm_agentsResultObjectDataArray.getJSONObject(0) : new JSONObject();
+
+            JSONObject agentObject = getAgent(isNew, agentnum, crm_agentObject);
+            if (!agentObject.isEmpty()) {
+                String result = postCRM(agentObject.toJSONString(), isNew ? "/ext/bragent/addAgent" : "/ext/bragent/updateAgent");
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                if (jsonObject.getInteger("code") == 1) {
+                    logger.info("经销商档案同步成功! request:" + agentObject + " response:" + result);
+                    logger.info("尝试更新CRM!");
+
+                    return true;
+                } else {
+                    logger.error("经销商档案同步失败! request:" + agentObject + " response:" + result);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    public JSONObject getAgent(boolean isNew, String agentnum, JSONObject crm_agentObject) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "sa_agents");
+        querySQL.setSiteid("MD").setWhere("agentnum", agentnum);
+        Rows agentRows = querySQL.query();
+        if (agentRows.isEmpty()) {
+            return new JSONObject();
+        }
+        Row agentRow = agentRows.get(0);
+        Row enterpriseRow = agentRow.getRow("sys_enterprise", "sys_enterpriseid=:sys_enterpriseid");
+        if (isNew) {
+            crm_agentObject.put("fbrandId", fbrandId);
+            crm_agentObject.put("fagentNum", agentnum);
+
+            switch (agentRow.getString("type")) {
+                case "普通": {
+                    crm_agentObject.put("ftype", "1");
+                    crm_agentObject.put("fisonline", false);
+                    crm_agentObject.put("fisonlineJoin", false);
+                    crm_agentObject.put("fisonlineRemodel", false);
+                    break;
+                }
+                case "电商": {
+                    crm_agentObject.put("ftype", "2");
+                    crm_agentObject.put("fisonline", true);
+                    crm_agentObject.put("fisonlineJoin", false);
+                    crm_agentObject.put("fisonlineRemodel", false);
+                    break;
+                }
+                case "网销": {
+                    crm_agentObject.put("ftype", "1");
+                    crm_agentObject.put("fisonline", true);
+                    crm_agentObject.put("fisonlineJoin", true);
+                    crm_agentObject.put("fisonlineRemodel", false);
+                    break;
+                }
+                case "家装": {
+                    crm_agentObject.put("ftype", "1");
+                    crm_agentObject.put("fisonline", true);
+                    crm_agentObject.put("fisonlineJoin", false);
+                    crm_agentObject.put("fisonlineRemodel", true);
+                    break;
+                }
+            }
+            if (enterpriseRow.getString("phonenumber").isEmpty()) {
+                crm_agentObject.put("principalPhone", "123456");
+            } else {
+                crm_agentObject.put("principalPhone", enterpriseRow.getString("phonenumber"));
+            }
+            crm_agentObject.put("faftersaleNum", agentnum);//faftersaleNum 售后服务经销商编码.统一为自己;
+            crm_agentObject.put("usernameOfBoss", agentnum);
+            crm_agentObject.put("passwordOfBoss", "w123456");//e-订单密码不可逆
+        }
+        crm_agentObject.put("fagentName", enterpriseRow.getString("enterprisename"));
+        crm_agentObject.put("fagentShortName", enterpriseRow.getString("abbreviation"));
+        crm_agentObject.put("principalName", enterpriseRow.getString("contact").isEmpty() ? "__" : enterpriseRow.getString("contact"));
+        crm_agentObject.put("principalUname", agentnum);
+
+//        crm_agentObject.put("fsalePhone", "");//售前电话
+//        crm_agentObject.put("faftersalePhone", "");//售后电话
+        crm_agentObject.put("fisused", agentRow.getString("status").equals("启用"));
+        Rows sysEnterpriseTradefieldRows = agentRow.getRows("sys_enterprise_tradefield", "sa_agentsid=:sa_agentsid");
+        if (sysEnterpriseTradefieldRows.isNotEmpty() && sysEnterpriseTradefieldRows.get(0).getLong("sa_saleareaid") > 0) {
+            crm_agentObject.put("fareaNum", sysEnterpriseTradefieldRows.get(0).getRow("sa_salearea", "sa_saleareaid=:sa_saleareaid").getString("areanum"));
+        }
+
+        CountryArea countryArea = CountryArea.getByName(enterpriseRow.getString("province"), enterpriseRow.getString("city"), enterpriseRow.getString("county"));
+        if (countryArea != null) {
+            crm_agentObject.put("fprovince", countryArea.provincenum);
+            crm_agentObject.put("fcity", countryArea.citynum);
+            crm_agentObject.put("fcounty", countryArea.countynum);
+        }
+        if (!enterpriseRow.getString("address").isEmpty()) {
+            crm_agentObject.put("faddress", enterpriseRow.getString("address"));
+        }
+
+        if (enterpriseRow.getBoolean("saleclassauth")) {
+            crm_agentObject.put("fagentauthors", true);
+            crm_agentObject.put("brAgentAuthorsList", new JSONArray());
+        } else {
+            crm_agentObject.put("fagentauthors", false);
+            JSONArray authArray = new JSONArray();
+            QuerySQL saleclassQuery = SQLFactory.createQuerySQL(dbConnect, "sys_enterprise_saleclass", "sys_enterpriseid").setTableAlias("t1");
+            saleclassQuery.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t2.itemid = t1.itemid and t2.siteid = t1.siteid", "itemno");
+            saleclassQuery.addJoinTable(JOINTYPE.left, "plm_itemclass", "t3", "t1.itemclassid = t3.itemclassid and t1.siteid = t3.siteid", "itemclassnum");
+            saleclassQuery.setSiteid("MD").setWhere("sys_enterpriseid", enterpriseRow.getLong("sys_enterpriseid"));
+            Rows authRows = saleclassQuery.query();
+            for (Row authRow : authRows) {
+                JSONObject authObject = new JSONObject();
+                authObject.put("brandId", fbrandId);
+                authObject.put("fagentNum", agentnum);
+                if (!authRow.getString("itemclassnum").isEmpty()) {
+                    authObject.put("fsaleclsNum", authRow.getString("itemclassnum"));
+                }
+                if (!authRow.getString("itemno").isEmpty()) {
+                    authObject.put("fsaleprodNum", authRow.getString("itemno"));
+                }
+                authArray.add(authObject);
+            }
+
+            crm_agentObject.put("brAgentAuthorsList", authArray);
+        }
+
+        // crm_agentObject.put("ftopareaNum","");//区域大类
+
+        return crm_agentObject;
+    }
+
+
+    public Rows getUndeliqty(String agentnum) {
+        try {
+            return dbConnect.runSqlQuery("select t2.itemno as fitemno,sum(t2.undeliqty) as fundeliqty from sa_order t1 " +
+                    "inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid and t2.isclose=0 " +
+                    "inner join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t3.agentnum='" + agentnum + "' " +
+                    "where t1.status in ('审核','提交') " +
+                    "group by t2.itemno having sum(t2.undeliqty)>0");
+        } catch (Exception e) {
+            logger.error("CRM查询订单未发货数量失败");
+        }
+        return new Rows();
+    }
+
+    public static void main(String[] args) throws YosException {
+        agent item = new agent(YosLogger.logger);
+        boolean b = item.oneAction("010001");
+        System.err.println(b);
+    }
+}

+ 27 - 16
src/custom/utility/mdcrmasync/core/CrmBase.java → src/custom/common/crm/bean/core/CrmBase.java

@@ -1,14 +1,18 @@
-package utility.mdcrmasync.core;
+package common.crm.bean.core;
 
 import com.alibaba.fastjson.JSONObject;
 import common.BaseClass;
 import common.YosException;
 import common.data.Row;
 import common.data.Rows;
+import common.data.db.DBConnect;
 import org.apache.logging.log4j.Logger;
 
 import javax.net.ssl.HttpsURLConnection;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
 import java.net.HttpURLConnection;
 import java.net.URI;
 import java.net.URL;
@@ -26,8 +30,10 @@ import java.util.Calendar;
 //4:同步CRM数据到DRP(序列号+保修卡+报货入库)
 
 public abstract class CrmBase extends BaseClass {
-    public HttpClient client;
-    private long sessionExpiresTime = 0L;
+    public DBConnect crmDBConnect = new DBConnect("CRM");
+    public static HttpClient client;
+    private static long sessionExpiresTime = 0L;
+    public static int fbrandId = 1;
 
     public static String baseurl = "http://192.168.3.16:8082/dmsService";
     public static String clienturl = "http://192.168.3.16:8081/yos/";
@@ -39,15 +45,11 @@ public abstract class CrmBase extends BaseClass {
         this.logger = logger;
     }
 
-    public CrmBase() {
-        super();
-    }
-
     public void login() throws YosException {
         try {
-            client = HttpClient.newHttpClient();
             if (sessionExpiresTime < Calendar.getInstance().getTimeInMillis()) {
-                String formData = "username=" + URLEncoder.encode("meidaDrpSyncAdmin", StandardCharsets.UTF_8) + "&password=" + URLEncoder.encode("w123456", StandardCharsets.UTF_8) + "&fbrandId=" + URLEncoder.encode("1", StandardCharsets.UTF_8) + "&tokenParam=" + URLEncoder.encode("token=123456", StandardCharsets.UTF_8) + "&clientUrl=" + URLEncoder.encode(clienturl, StandardCharsets.UTF_8);
+                client = HttpClient.newHttpClient();
+                String formData = "username=" + URLEncoder.encode("meidaDrpSyncAdmin", StandardCharsets.UTF_8) + "&password=" + URLEncoder.encode("w123456", StandardCharsets.UTF_8) + "&fbrandId=" + fbrandId + "&tokenParam=" + URLEncoder.encode("token=123456", StandardCharsets.UTF_8) + "&clientUrl=" + URLEncoder.encode(clienturl, StandardCharsets.UTF_8);
 
                 HttpRequest request = HttpRequest.newBuilder().uri(URI.create(baseurl + "/ext/login")).header("Content-Type", "application/x-www-form-urlencoded").POST(HttpRequest.BodyPublishers.ofString(formData)).build();
                 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
@@ -65,7 +67,7 @@ public abstract class CrmBase extends BaseClass {
                     isSuccess = false;
                 }
                 if (isSuccess) {
-                    sessionExpiresTime = System.currentTimeMillis() + 1000 * 60 * 10;
+                    sessionExpiresTime = Calendar.getInstance().getTimeInMillis() + 1000 * 60 * 10;
                 }
             }
         } catch (Exception e) {
@@ -74,6 +76,17 @@ public abstract class CrmBase extends BaseClass {
     }
 
     public String postCRM(String content, String url) throws YosException {
+        login();
+        try {
+            HttpRequest request = HttpRequest.newBuilder().uri(URI.create(baseurl + url)).header("Content-Type", "application/json").header("Cookie", cookie).POST(HttpRequest.BodyPublishers.ofString(content)).build();
+            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
+            return response.body();
+        } catch (Exception e) {
+            throw new YosException(e);
+        }
+    }
+
+    public String getCRM(String url) throws YosException {
         login();
         url = url.startsWith("/") ? url : ("/" + url);
         PrintWriter writer = null;
@@ -98,9 +111,7 @@ public abstract class CrmBase extends BaseClass {
             conn.setConnectTimeout(3000);
             conn.setDoOutput(true);
             conn.setDoInput(true);
-            writer = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
-            writer.print(content);
-            writer.flush();
+
             reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
 
             String line;
@@ -178,8 +189,8 @@ public abstract class CrmBase extends BaseClass {
             logger.error(title + " ownertable=" + ownertable + " ownerid=" + ownerid + " 数据已不存在!");
         }
 
-        public void fail(Object request, Object response) {
-            logger.error(title + " ownertable=" + ownertable + " ownerid=" + ownerid + " id:" + id + "同步失败! request:" + request + " response:" + response);
+        public void fail() {
+            logger.error(title + " ownertable=" + ownertable + " ownerid=" + ownerid + " id:" + id + "同步失败! ");
         }
 
     }

+ 63 - 8
src/custom/utility/mdcrmasync/methods/icstockbill.java → src/custom/common/crm/bean/icstockbill.java

@@ -1,5 +1,6 @@
-package utility.mdcrmasync.methods;
+package common.crm.bean;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import common.YosException;
 import common.YosLogger;
@@ -7,7 +8,7 @@ import common.data.*;
 import common.data.db.DBConnect;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import utility.mdcrmasync.core.CrmBase;
+import common.crm.bean.core.CrmBase;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -17,10 +18,6 @@ public class icstockbill extends CrmBase {
         super(logger);
     }
 
-    public icstockbill() {
-        super();
-    }
-
     /**
      * 超过30天的销售出库单自动收货
      *
@@ -37,7 +34,7 @@ public class icstockbill extends CrmBase {
                 "inner join st_stockbill_items_sku t2 on t1.st_stockbillid=t2.st_stockbillid\n" +
                 "inner join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t3.type='普通'\n" +
                 "where t1.siteid='MD' and t1.type='销售出库'and t1.rb = 1 and t1.isreceiver = 0 and t1.status = '审核' and t1.iswx=0 and t1.checkdate>='2022-01-01' and t1.checkdate<'" + enddate + "' \n" +
-                "group by t1.st_stockbillid,t1.billno,t1.remarks,t1.checkdate,t3.agentnum\n" +
+                "group by t1.st_stockbillid\n" +
                 "order by t1.st_stockbillid desc\n" +
                 "limit 100");
 
@@ -94,7 +91,7 @@ public class icstockbill extends CrmBase {
     }
 
     /**
-     * 到货确认反馈
+     * crm到货确认反馈
      *
      * @param fagentnum
      * @param fcrmbillnum
@@ -168,6 +165,64 @@ public class icstockbill extends CrmBase {
         return resultObject;
     }
 
+    /**
+     * crm查询未到货确认单
+     *
+     * @param fagentnum
+     * @param fbegdate
+     * @param fenddate
+     * @param returnMaxCount
+     * @return
+     */
+    public JSONArray getDRPReceiveBill(String fagentnum, String fbegdate, String fenddate, int returnMaxCount) {
+        try {
+            Rows billRows = dbConnect.runSqlQuery("select t1.st_stockbillid,count(t2.sku) mcodeqty from st_stockbill t1 \n" +
+                    "inner join st_stockbill_items_sku t2 on t1.st_stockbillid=t2.st_stockbillid\n" +
+                    "inner join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t3.type='普通' and t3.agentnum='" + fagentnum + "' \n" +
+                    "where t1.siteid='MD' and t1.type='销售出库'and t1.rb = 1 and t1.isreceiver = 0 and t1.status = '审核' and t1.iswx=0 and t1.checkdate>='" + fbegdate + "' and t1.checkdate<='" + fenddate + "' \n" +
+                    "group by t1.st_stockbillid\n" +
+                    "order by t1.st_stockbillid\n" +
+                    "limit " + returnMaxCount);
+
+            QuerySQL itemQuery = SQLFactory.createQuerySQL(dbConnect, "st_stockbill_items", "st_stockbillid");
+            itemQuery.addQueryFields("itemqty", "sum(qty)");
+            itemQuery.addGroupBy("st_stockbillid");
+            itemQuery.setSiteid("MD").setWhere("skucontrol", true).setWhere("st_stockbillid", billRows.toArrayList("st_stockbillid"));
+            RowsMap itemRowsMap = itemQuery.query().toRowsMap("st_stockbillid");
+
+            JSONArray array = new JSONArray();
+            for (Row billRow : billRows) {
+                long st_stockbillid = billRow.getLong("st_stockbillid");
+                if (itemRowsMap.containsKey(String.valueOf(st_stockbillid)) && itemRowsMap.get(String.valueOf(st_stockbillid)).get(0).getInteger("itemqty") == billRow.getInteger("mcodeqty")) {
+
+                    Row bill = new DBConnect().runSqlQuery("select * from st_stockbill where st_stockbillid=" + st_stockbillid).get(0);
+
+                    String billno = bill.getString("billno");
+                    String remarks = bill.getString("remarks");
+                    String checkdate = bill.getString("checkdate");
+                    String agentnum = bill.getRow("sa_agents", "sys_enterpriseid=:sys_enterpriseid").getString("agentnum");
+
+                    Rows detailRows = dbConnect.runSqlQuery("select itemno as fitemno,itemname as fitemname,model as fmodel,sum(qty)fqty from st_stockbill_items where st_stockbillid=" + st_stockbillid + " group by itemno,itemname,model");
+                    Rows codeRows = dbConnect.runSqlQuery("select t2.itemno as fitemno,t1.sku as fmachinecode from st_stockbill_items_sku t1 inner join plm_item t2 on t1.itemid=t2.itemid where st_stockbillid=" + st_stockbillid);
+
+                    JSONObject dataObject = new JSONObject();
+                    dataObject.put("icstockbillid", st_stockbillid);
+                    dataObject.put("fbillnum", billno);
+                    dataObject.put("fnotes", remarks);
+                    dataObject.put("fagentnum", agentnum);
+                    dataObject.put("checkdate", checkdate);
+                    dataObject.put("details", detailRows.toJsonArray());
+                    dataObject.put("machinecodes", codeRows.toJsonArray());
+                    array.add(dataObject);
+                }
+            }
+            return array;
+        } catch (Exception e) {
+
+        }
+        return new JSONArray();
+    }
+
     public static void main(String[] args) throws YosException {
         new icstockbill(LogManager.getLogger(YosLogger.class)).oneAction(2973233);
     }

+ 49 - 0
src/custom/common/crm/bean/icstockbill_crm.java

@@ -0,0 +1,49 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.crm.bean.core.CrmBase;
+import common.data.Rows;
+import org.apache.logging.log4j.Logger;
+
+public class icstockbill_crm extends CrmBase {
+    public icstockbill_crm(Logger logger) {
+        super(logger);
+    }
+
+    /**
+     * 定时从DMS查找审核失败的到货入库单,并调用DRP的到货确认单的明细接口(销售出库单), 对这些失败的到货入库单进行审核或删除操作
+     *
+     * @throws YosException
+     */
+    @Override
+    public void autoAction() throws YosException {
+        String result = getCRM("/ext/whicstockbill/queryIcstockbills?needDetail=true&needWrc=true&fbrandId=" + fbrandId + "&fdomain=入库&ftype=报货入库单&fisuploadflag=-1");
+        JSONArray jsonArray = JSONArray.parseArray(result);
+
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            String fstatus = jsonObject.getString("fstatus");
+            String fagentNum = jsonObject.getString("fagentNum");
+            String fbillNum_crm = jsonObject.getString("fbillNum");
+            String billno = jsonObject.getString("fextNo1");
+
+            if (billno != null && !billno.isEmpty()) {
+                Rows billRows = dbConnect.runSqlQuery("select * from st_stockbill where billno='" + billno + "' and crmbillno='" + fbillNum_crm + "' and isreceiver=1");
+                if ("审核".equals(fstatus) && billRows.isNotEmpty()) {
+                    logger.info("销售出库单" + billno + "已收货确认,更新crm单据同步状态为1");
+                    getCRM("/ext/whicstockbill/editUploadflag?fbrandId=" + fbrandId + "&fbillnum=" + fbillNum_crm + "&fisuploadflag=1&fisuploadnote=DRP反馈已到货确认,更新状态变为1");
+                } else if ("新建".equals(fstatus)) {
+                    if (billRows.isNotEmpty()) {
+                        logger.info("销售出库单" + billno + "已收货确认,审核crm报货入库单" + fbillNum_crm);
+                        getCRM("/ext/whicstockbill/checkInbBillAfterConfirm?fbrandId=" + fbrandId + "&fbillnum=" + fbillNum_crm);
+                    } else {
+                        logger.error("销售出库单" + billno + "未收货确认,删除crm报货入库单" + fbillNum_crm);
+                        getCRM("/ext/whicstockbill/removeInbBillAfterConfirm?fbrandId=" + fbrandId + "&fbillnum=" + fbillNum_crm);
+                    }
+                }
+            }
+        }
+    }
+}

+ 122 - 0
src/custom/common/crm/bean/item.java

@@ -0,0 +1,122 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.YosLogger;
+import common.data.*;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+import common.crm.bean.core.CrmBase;
+
+import java.util.ArrayList;
+
+public class item extends CrmBase {
+
+
+    public item(Logger logger) {
+        super(logger);
+    }
+
+
+    @Override
+    public void autoAction() throws YosException {
+        ArrayList<crm_datasync> datasyncList = get("商品档案", "plm_item", 100);
+        for (crm_datasync datasync : datasyncList) {
+            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "plm_item", "itemno").setTableAlias("t1");
+            querySQL.setWhere("t1.itemid", datasync.ownerid);
+            Rows itemRows = querySQL.query();
+            if (itemRows.isNotEmpty() && !itemRows.get(0).getString("itemno").isEmpty()) {
+                String itemno = itemRows.get(0).getString("itemno");
+                if (oneAction(itemno, false)) {
+                    datasync.suc();
+                } else {
+                    datasync.fail();
+                }
+            } else {
+                datasync.del();
+            }
+        }
+    }
+
+    public boolean oneAction(String itemno, boolean isAllFields) {
+        try {
+            String crm_productsResult = getCRM("/ext/brproduct/getAnyProducts?fbrandId=" + fbrandId + "&fprodNums=" + itemno);
+            JSONObject crm_productsResultObject = JSONObject.parseObject(crm_productsResult);
+            boolean isNew = crm_productsResultObject.getJSONArray("data").isEmpty();
+            JSONArray crm_productsResultObjectDataArray = crm_productsResultObject.getJSONArray("data");
+            JSONObject crm_productsObject = !crm_productsResultObjectDataArray.isEmpty() ? crm_productsResultObjectDataArray.getJSONObject(0) : new JSONObject();
+
+            JSONObject itemObject = getItem(isNew, isAllFields, itemno, crm_productsObject);
+            if (!itemObject.isEmpty()) {
+                String result = postCRM(itemObject.toJSONString(), isNew ? "/ext/brproduct/addProduct" : "/ext/brproduct/updateProduct");
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                if (jsonObject.getInteger("code") == 1) {
+                    logger.error("商品档案同步成功! request:" + itemObject + " response:" + result);
+                    return true;
+                } else {
+                    logger.error("商品档案同步失败! request:" + itemObject + " response:" + result);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    public JSONObject getItem(boolean isNew, boolean isAllFields, String itemno, JSONObject crm_productsObject) throws YosException {
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "plm_item");
+        querySQL.setSiteid("MD").setWhere("itemno", itemno);
+        Rows itemRows = querySQL.query();
+        if (itemRows.isEmpty()) {
+            return new JSONObject();
+        }
+        Row itemRow = itemRows.get(0);
+        if (isNew) {
+            crm_productsObject.put("fbrandId", fbrandId);
+            crm_productsObject.put("fprodNumCus", "");
+            crm_productsObject.put("fprodType", 0);
+            crm_productsObject.put("fprodNum", itemno);
+            crm_productsObject.put("fissingle", itemRow.getBoolean("skucontrol"));
+            crm_productsObject.put("funit", itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname"));
+        } else if (isAllFields) {
+            crm_productsObject.put("fissingle", itemRow.getBoolean("skucontrol"));
+            crm_productsObject.put("funit", itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname"));
+        } else {
+            boolean crmfissingle = crm_productsObject.getBoolean("fissingle");
+            String crmunit = crm_productsObject.getString("funit");
+
+            boolean drpskucontrol = itemRow.getBoolean("skucontrol");
+            String drpunit = itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname");
+            if (drpskucontrol != crmfissingle || !drpunit.equals(crmunit)) {
+                logger.error("从DRP更新商品[ {} / {} ]异常: 核心字段不一致; CRM系统商品[ 计量单位: {} ;单品管理: {} ] ; DRP系统商品[ 计量单位: {} ;单品管理: {} ]", itemno, crm_productsObject.getString("fprodName"), crmunit, crmfissingle, drpunit, drpskucontrol);
+            }
+        }
+        crm_productsObject.put("fprodName", itemRow.getString("itemname"));
+        crm_productsObject.put("fmodel", itemRow.getString("model"));
+        crm_productsObject.put("fspec", itemRow.getString("spec"));
+
+        RowsMap classtypeMap = dbConnect.runSqlQuery("select t1.classtype,t2.itemclassnum from sa_itemsaleclass t1 inner join plm_itemclass t2 on t1.itemclassid=t2.itemclassid where t1.siteid='MD' and t1.itemid=" + itemRow.getLong("itemid")).toRowsMap("classtype");
+        crm_productsObject.put("fclsNum", classtypeMap.containsKey("存货") ? classtypeMap.get("存货").getRow(0).getString("itemclassnum") : "");
+        crm_productsObject.put("fsaleclsNum", classtypeMap.containsKey("营销") ? classtypeMap.get("营销").getRow(0).getString("itemclassnum") : "");
+        crm_productsObject.put("fisonsale", itemRow.getBoolean("isonsale"));
+        crm_productsObject.put("fbarcode", itemRow.getString("barcode"));
+        crm_productsObject.put("fisabstract", false);//是否虚拟件
+        crm_productsObject.put("fispart", itemRow.getBoolean("ismodule"));
+        crm_productsObject.put("fisbatch", itemRow.getBoolean("batchcontrol"));
+        crm_productsObject.put("fsafeqty", itemRow.getDouble("safeqty"));
+        crm_productsObject.put("fpackingQty", itemRow.getDouble("packageqty"));
+        crm_productsObject.put("fnotes", itemRow.getString("remarks"));
+        crm_productsObject.put("fwarrantyYear", itemRow.getInteger("warrantyday"));
+        crm_productsObject.put("fgrossWeight", itemRow.getInteger("grossweight") / 1000);
+        crm_productsObject.put("fnetWeight", itemRow.getInteger("weight") / 1000);
+        return crm_productsObject;
+    }
+
+    public static void main(String[] args) throws YosException {
+        item item = new item(YosLogger.logger);
+        boolean b = item.oneAction("101010001228", false);
+        System.err.println(b);
+    }
+}

+ 101 - 0
src/custom/common/crm/bean/itemclass.java

@@ -0,0 +1,101 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.YosLogger;
+import common.data.QuerySQL;
+import common.data.Row;
+import common.data.Rows;
+import common.data.SQLFactory;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+import common.crm.bean.core.CrmBase;
+
+import java.util.ArrayList;
+
+public class itemclass extends CrmBase {
+
+
+    public itemclass(Logger logger) {
+        super(logger);
+    }
+
+
+    @Override
+    public void autoAction() throws YosException {
+        ArrayList<crm_datasync> datasyncList = get("商品分类", "plm_itemclass", 100);
+        for (crm_datasync datasync : datasyncList) {
+            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "plm_itemclass", "itemno").setTableAlias("t1");
+            querySQL.setWhere("t1.itemclassid", datasync.ownerid);
+            Rows itemRows = querySQL.query();
+            if (itemRows.isNotEmpty() && itemRows.get(0).getString("classtype").equals("存货") && !itemRows.get(0).getString("itemclassnum").isEmpty()) {
+                String itemclassnum = itemRows.get(0).getString("itemclassnum");
+                if (oneAction(itemclassnum)) {
+                    datasync.suc();
+                } else {
+                    datasync.fail();
+                }
+            } else {
+                datasync.del();
+            }
+        }
+    }
+
+    public boolean oneAction(String itemclassnum) {
+        try {
+            String crm_productclassResult = getCRM("/ext/brproduct/queryAnyClass?fbrandId="+fbrandId+"&fclsNums=" + itemclassnum);
+            JSONObject crm_productsclassResultObject = JSONObject.parseObject(crm_productclassResult);
+            boolean isNew = crm_productsclassResultObject.getJSONArray("data").isEmpty();
+            if (isNew) {
+                JSONObject itemClassObject = getItemClass(itemclassnum);
+                if (!itemClassObject.isEmpty()) {
+                    String result = postCRM(itemClassObject.toJSONString(), "/ext/brproduct/addClass");
+                    JSONObject jsonObject = JSONObject.parseObject(result);
+                    if (jsonObject.getInteger("code") == 1) {
+                        logger.error("商品存货类别同步成功! request:" + itemClassObject + " response:" + result);
+                        return true;
+                    } else {
+                        logger.error("商品存货类别同步失败! request:" + itemClassObject + " response:" + result);
+                    }
+                }
+            } else {
+                logger.error("商品存货类别" + itemclassnum + "已存在");
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    public JSONObject getItemClass(String itemclassnum) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "plm_itemclass");
+        querySQL.setSiteid("MD").setWhere("classtype", "存货").setWhere("itemclassnum", itemclassnum);
+        Rows itemclassRows = querySQL.query();
+        if (itemclassRows.isEmpty()) {
+            return new JSONObject();
+        }
+        Row itemClassRow = itemclassRows.get(0);
+        JSONObject crm_productclassObject = new JSONObject();
+        crm_productclassObject.put("fbrandId", fbrandId);
+        crm_productclassObject.put("fclsNum", itemClassRow.getString("itemclassnum"));
+        crm_productclassObject.put("fclsShortName", itemClassRow.getString("itemclassname"));
+        crm_productclassObject.put("fclsName", itemClassRow.getString("itemclassfullname"));
+        crm_productclassObject.put("fisdeep", itemClassRow.getBoolean("isdeep"));
+
+        String num = itemClassRow.getString("itemclassnum");
+        if (itemClassRow.getLong("parentid") > 0) {
+            String fupclass = itemClassRow.getRow("plm_itemclass", "itemclassid=:parentid").getString("itemclassnum");
+            crm_productclassObject.put("fupclass", fupclass);
+            num = num.replaceFirst(fupclass, "");
+        }
+        crm_productclassObject.put("fnum", num);
+        return crm_productclassObject;
+    }
+
+    public static void main(String[] args) throws YosException {
+        itemclass item = new itemclass(YosLogger.logger);
+        boolean b = item.oneAction("101011");
+        System.err.println(b);
+    }
+}

+ 5 - 5
src/custom/utility/mdcrmasync/methods/saleArea.java → src/custom/common/crm/bean/saleArea.java

@@ -1,4 +1,4 @@
-package utility.mdcrmasync.methods;
+package common.crm.bean;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -7,7 +7,7 @@ import common.data.QuerySQL;
 import common.data.Rows;
 import common.data.SQLFactory;
 import org.apache.logging.log4j.Logger;
-import utility.mdcrmasync.core.CrmBase;
+import common.crm.bean.core.CrmBase;
 
 import java.util.ArrayList;
 
@@ -26,7 +26,7 @@ public class saleArea extends CrmBase {
             querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t2", "t1.parentid = t2.sa_saleareaid", "areanum as upareanum");
             querySQL.setWhere("t1.sa_saleareaid", datasync.ownerid);
             Rows areaRows = querySQL.query();
-            if (areaRows.isNotEmpty()) {
+            if (areaRows.isNotEmpty()&&!areaRows.get(0).getString("areanum").isEmpty()) {
                 JSONObject dataObject = new JSONObject();
                 dataObject.put("fareaNum", areaRows.get(0).getString("areanum"));
                 dataObject.put("fareaName", areaRows.get(0).getString("areaname"));
@@ -42,14 +42,14 @@ public class saleArea extends CrmBase {
                     dataObject.put("fsalerName", salerrows.get(0).getString("name"));
                     dataObject.put("status", salerrows.get(0).getString("status"));
                 }
-                dataObject.put("fbrandId", 1);
+                dataObject.put("fbrandId", fbrandId);
                 dataArray.add(dataObject);
                 String result = postCRM(dataArray.toJSONString(), "/ext/brSaleArea/batchSaveBrSaleAreas/1");
                 JSONObject jsonObject = JSONObject.parseObject(result);
                 if (jsonObject.getBooleanValue("success")) {
                     datasync.suc();
                 } else {
-                    datasync.fail(dataObject, jsonObject);
+                    datasync.fail();
                 }
             } else {
                 datasync.del();

+ 26 - 0
src/custom/common/crm/bean/saorder.java

@@ -0,0 +1,26 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.data.*;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+import common.crm.bean.core.CrmBase;
+
+public class saorder extends CrmBase {
+    public saorder(Logger logger) {
+        super(logger);
+    }
+
+    @Override
+    public void autoAction() throws YosException {
+
+    }
+
+    //根据订单号,查询网销订单
+    public JSONArray querySaorderList(String fagentnum, String[] fsonums) {
+
+        return new JSONArray();
+    }
+}

+ 107 - 0
src/custom/common/crm/bean/sku.java

@@ -0,0 +1,107 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.data.QuerySQL;
+import common.data.Row;
+import common.data.Rows;
+import common.data.SQLFactory;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+import common.crm.bean.core.CrmBase;
+
+import java.util.ArrayList;
+
+public class sku extends CrmBase {
+    public sku(Logger logger) {
+        super(logger);
+    }
+
+
+    @Override
+    public void autoAction() throws YosException {
+        //同步E-订单序列号至CRM
+        ArrayList<crm_datasync> datasyncList = get("序列号", "sa_itemsku", 100);
+        for (crm_datasync datasync : datasyncList) {
+            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "sa_itemsku", "sku").setTableAlias("t1");
+            querySQL.setWhere("t1.sa_itemskuid", datasync.ownerid);
+            Rows skuRows = querySQL.query();
+            if (skuRows.isNotEmpty() && !skuRows.get(0).getString("sku").isEmpty()) {
+                if (oneAction(skuRows.get(0).getString("sku"))) {
+                    datasync.suc();
+                } else {
+                    datasync.fail();
+                }
+            } else {
+                datasync.del();
+            }
+        }
+    }
+
+    public boolean oneAction(String sku) {
+        try {
+            JSONObject dataObject = getSku(sku);
+            if (!dataObject.isEmpty()) {
+                JSONArray dataArray = new JSONArray();
+                dataArray.add(dataObject);
+                String result = postCRM(dataArray.toJSONString(), "/ext/brproduct/batchSaveBrMachinecodes/1");
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                if (jsonObject.getInteger("code") == 1) {
+                    logger.info("序列号同步成功! request:" + dataArray.toJSONString() + " response:" + result);
+                    return true;
+                } else {
+                    logger.error("序列号同步失败! request:" + dataArray.toJSONString() + " response:" + result);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    /**
+     * crm拉取序列号
+     *
+     * @param fmachinecode 序列号
+     * @return
+     */
+    public JSONObject getSku(String fmachinecode) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "sa_itemsku");
+        querySQL.setSiteid("MD").setWhere("sku", fmachinecode);
+        Rows skuRows = querySQL.query();
+        if (skuRows.isEmpty()) {
+            logger.error("DRP未找到此序列号" + fmachinecode);
+            return new JSONObject();
+        }
+        Row skuRow = skuRows.get(0);
+
+        Rows agentRows = SQLFactory.createQuerySQL(new DBConnect(), "sa_agents").setWhere("sa_agentsid", skuRow.getLong("sa_agentsid")).query();
+        Rows itemRows = SQLFactory.createQuerySQL(new DBConnect(), "plm_item").setWhere("itemid", skuRow.getLong("itemid")).query();
+
+        JSONObject object = new JSONObject();
+        object.put("fmechineCode", skuRow.getString("sku"));
+        object.put("fbrandId", fbrandId);
+
+        if (agentRows.isNotEmpty()) {
+            object.put("fagentNum", agentRows.get(0).getString("agentnum"));
+        }
+        if (itemRows.isNotEmpty()) {
+            Row itemRow = itemRows.get(0);
+            object.put("fprodNum", itemRow.getString("itemno"));
+            object.put("fprodName", itemRow.getString("itemname"));
+            object.put("fmodel", itemRow.getString("model"));
+            object.put("funit", itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname"));
+        }
+        if (skuRow.getLong("stockid") > 0) {
+            object.put("fstockNoDrp", skuRow.getRow("st_stock", "stockid=:stockid").getString("stockno"));
+        } else {
+            object.put("fstockNoDrp", null);
+        }
+        object.put("fisvoid", skuRow.getString("status").equals("报废"));
+        object.put("fisyj", skuRow.getBoolean("fisyj"));
+        object.put("fisreturn", skuRow.getBoolean("isreturn"));
+        return object;
+    }
+}
+

+ 93 - 0
src/custom/common/crm/bean/sku_crm.java

@@ -0,0 +1,93 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.crm.bean.core.CrmBase;
+import common.data.*;
+import org.apache.logging.log4j.Logger;
+
+public class sku_crm extends CrmBase {
+    public sku_crm(Logger logger) {
+        super(logger);
+    }
+
+
+    @Override
+    public void autoAction() throws YosException {
+        String result = getCRM("/ext/brproduct/machinecode/queryMachinecodePages?fbrandId=" + fbrandId + "&fisuploadflag=-1");
+        JSONArray jsonArray = JSONArray.parseArray(result);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            String fmechineCode = jsonObject.getString("fmechineCode");
+            if (oneAction(jsonObject)) {
+                getCRM("/ext/brproduct/machinecode/editUploadflag?fbrandId=" + fbrandId + "&fmechineCode=" + fmechineCode + "&fisuploadflag=1&fisuploadnote=成功");
+            } else {
+                getCRM("/ext/brproduct/machinecode/editUploadflag?fbrandId=" + fbrandId + "&fmechineCode=" + fmechineCode + "&fisuploadflag=-1&fisuploadnote=失败");
+            }
+        }
+    }
+
+    public boolean oneAction(JSONObject skuObject) {
+        try {
+            String fmechineCode = skuObject.getString("fmechineCode");
+            String fagentnum = skuObject.getString("fagentNum");
+            String fstockno = fagentnum != null && !fagentnum.isEmpty() ? "00" : "";
+            String changeby = skuObject.getString("changeby");
+            String changedate = skuObject.getString("changetime");
+            String fnotes = "CRM更新[fstocknoOfCrm: " + fstockno + "]";
+
+            Rows codeRows = dbConnect.runSqlQuery("select * from sa_itemsku where siteid='MD' and sku='" + fmechineCode + "'");
+            if (codeRows.isEmpty()) {
+                logger.error("crm更新序列号,序列号不存在" + fmechineCode);
+                return false;
+            }
+
+            Rows agentRows = dbConnect.runSqlQuery("select * from sa_agents where siteid='MD' and agentnum='" + fagentnum + "'");
+            if (agentRows.isEmpty()) {
+                logger.error("crm更新序列号,未找到经销商" + fagentnum);
+                return false;
+            }
+
+            Rows stockRows = dbConnect.runSqlQuery("select * from st_stock where siteid='MD' and stockno='00'");
+            if (stockRows.isEmpty()) {
+                return false;
+            }
+
+            SQLDump sqlDump = new SQLDump();
+
+            UpdateSQL saItemsku = SQLFactory.createUpdateSQL(dbConnect, "sa_itemsku");
+            saItemsku.setValue("sa_agentsid", agentRows.get(0).getLong("sa_agentsid"));
+            saItemsku.setValue("sys_enterpriseid", agentRows.get(0).getLong("sys_enterpriseid"));
+            saItemsku.setValue("stockid", fstockno.isEmpty() ? "null" : stockRows.get(0).getLong("stockid"));
+            saItemsku.setValue("changeby", changeby);
+            saItemsku.setValue("changedate", changedate);
+            saItemsku.setWhere("sa_itemskuid", codeRows.get(0).getLong("sa_itemskuid"));
+            saItemsku.setSiteid("MD");
+            sqlDump.add(saItemsku);
+
+            InsertSQL saItemskuChange = SQLFactory.createInsertSQL(dbConnect, "sa_itemsku_change");
+            saItemskuChange.setValue("siteid", "MD");
+            saItemskuChange.setValue("sa_agentsid", codeRows.get(0).getLong("sa_agentsid"));
+            saItemskuChange.setValue("sa_agentsidnew", agentRows.get(0).getLong("sa_agentsid"));
+            saItemskuChange.setValue("stockid", codeRows.get(0).getLong("stockid"));
+            saItemskuChange.setValue("stockidnew", fstockno.isEmpty() ? "null" : stockRows.get(0).getLong("stockid"));
+            saItemskuChange.setValue("changenotes", fnotes);
+            saItemskuChange.setValue("sa_itemskuid", codeRows.get(0).getLong("sa_itemskuid"));
+            saItemskuChange.setValue("createby", changeby);
+            saItemskuChange.setValue("createdate", changedate);
+            saItemskuChange.setValue("changeby", changeby);
+            saItemskuChange.setValue("changedate", changedate);
+
+            sqlDump.add(saItemskuChange);
+
+            sqlDump.commit();
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+}
+

+ 4 - 4
src/custom/utility/mdcrmasync/methods/user.java → src/custom/common/crm/bean/user.java

@@ -1,4 +1,4 @@
-package utility.mdcrmasync.methods;
+package common.crm.bean;
 
 import com.alibaba.fastjson.JSONObject;
 import common.YosException;
@@ -6,7 +6,7 @@ import common.data.QuerySQL;
 import common.data.Rows;
 import common.data.SQLFactory;
 import org.apache.logging.log4j.Logger;
-import utility.mdcrmasync.core.CrmBase;
+import common.crm.bean.core.CrmBase;
 
 import java.util.ArrayList;
 
@@ -32,7 +32,7 @@ public class user extends CrmBase {
                 dataObject.put("password", "654321");
                 dataObject.put("state", 1);//人员状态:-2:异常,-1:已删除,0:停用,1:正常
                 dataObject.put("fagentNum", "meida");
-                dataObject.put("fbrandId", 1);
+                dataObject.put("fbrandId", fbrandId);
                 dataObject.put("userType", 16);
                 dataObject.put("fnotes", "根据E-订单账号表自动生成");
                 String result = postCRM(dataObject.toJSONString(), "/ext/bragent/registerAgentHr/regionalManager");
@@ -40,7 +40,7 @@ public class user extends CrmBase {
                 if (jsonObject.getBooleanValue("success")) {
                     datasync.suc();
                 } else {
-                    datasync.fail(dataObject, jsonObject);
+                    datasync.fail();
                 }
             } else {
                 datasync.del();

+ 75 - 0
src/custom/common/crm/bean/warrantycard.java

@@ -0,0 +1,75 @@
+package common.crm.bean;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import common.crm.bean.core.CrmBase;
+import common.data.*;
+import common.data.db.DBConnect;
+import org.apache.logging.log4j.Logger;
+
+import java.util.ArrayList;
+
+public class warrantycard extends CrmBase {
+    public warrantycard(Logger logger) {
+        super(logger);
+    }
+
+    @Override
+    public void autoAction() throws YosException {
+        ArrayList<crm_datasync> datasyncList = get("保修卡", "sa_warrantycard", 100);
+        for (crm_datasync datasync : datasyncList) {
+            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "sa_warrantycard", "cardno").setTableAlias("t1");
+            querySQL.setWhere("t1.sa_warrantycardid", datasync.ownerid);
+            Rows cardRows = querySQL.query();
+            if (cardRows.isNotEmpty() && !cardRows.get(0).getString("cardno").isEmpty()) {
+                String cardno = cardRows.get(0).getString("cardno");
+                if (oneAction(cardno)) {
+                    datasync.suc();
+                } else {
+                    datasync.fail();
+                }
+            } else {
+                datasync.del();
+            }
+        }
+    }
+
+    public boolean oneAction(String cardno) {
+        try {
+            JSONObject cardObject = getCard(cardno);
+            if (!cardObject.isEmpty()) {
+                JSONArray dataArray = new JSONArray();
+                dataArray.add(cardObject);
+                String result = postCRM(dataArray.toJSONString(), "/ext/site/warrantycard/batchSaveStWarrantyCard");
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                if (jsonObject.getInteger("code") == 1) {
+                    logger.error("保修卡同步成功! request:" + dataArray + " response:" + result);
+                    return true;
+                } else {
+                    logger.error("保修卡同步失败! request:" + dataArray + " response:" + result);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    public JSONObject getCard(String cardno) throws YosException {
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "sa_warrantycard");
+        querySQL.setSiteid("MD").setWhere("cardno", cardno);
+        Rows cardRows = querySQL.query();
+        if (cardRows.isEmpty()) {
+            return new JSONObject();
+        }
+        Row cardRow = cardRows.get(0);
+        JSONObject crm_cardObject = new JSONObject();
+
+        crm_cardObject.put("fbrandId", fbrandId);
+        crm_cardObject.put("fcardNum", cardno);
+
+        return crm_cardObject;
+    }
+}

+ 83 - 0
src/custom/common/crm/crm_get.java

@@ -0,0 +1,83 @@
+package common.crm;
+
+import com.alibaba.fastjson.JSONObject;
+import common.BaseClass;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import common.crm.bean.agent;
+import common.crm.bean.icstockbill;
+import common.crm.bean.saorder;
+
+@Controller
+@RequestMapping("/rest/get")
+public class crm_get extends BaseClass {
+
+    @GetMapping("/getUndeliqty")
+    @ResponseBody
+    public String getUndeliqty(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("token") String token) {
+        return getSuccessResult(new agent(logger).getUndeliqty(fagentnum)).toString();
+    }
+
+    @GetMapping("/getDRPReceiveBill")
+    @ResponseBody
+    public String getDRPReceiveBill(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("fbegdate") String fbegdate, @RequestParam("fenddate") String fenddate, @RequestParam("returnMaxCount") String returnMaxCount, @RequestParam("token") String token) {
+        int returnMaxCountInt = 30;
+        if (fbegdate == null || fbegdate.isEmpty()) {
+            return getErrResult("param[fbegdate] is can not null").toString();
+        } else if (fenddate == null || fenddate.isEmpty()) {
+            return getErrResult("param[fenddate] is can not null").toString();
+        }
+        if (returnMaxCount != null && !returnMaxCount.isEmpty()) {
+            returnMaxCountInt = Integer.parseInt(returnMaxCount);
+        }
+        if (returnMaxCountInt <= 0 || returnMaxCountInt >= 5000) {
+            return getErrResult("param[returnMaxCount] must between  1 to 5000 , can not be: " + returnMaxCount).toString();
+        }
+        JSONObject successResult = getSuccessResult();
+        successResult.put("data", new icstockbill(logger).getDRPReceiveBill(fagentnum, fbegdate, fenddate, returnMaxCountInt));
+        return successResult.toString();
+    }
+
+
+    //从DRP接口中查询若干个“网销类型”的订单列表。
+    @GetMapping("/querySaorderList")
+    @ResponseBody
+    public String querySaorderList(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("fsonums") String[] fsonums, @RequestParam("token") String token) {
+        JSONObject successResult = getSuccessResult();
+        successResult.put("data", new saorder(logger).querySaorderList(fagentnum, fsonums));
+        return successResult.toString();
+    }
+
+
+    public JSONObject getSuccessResult() {
+        JSONObject object = new JSONObject();
+        object.put("code", 1);
+        object.put("msg", "");
+        object.put("data", "");
+        object.put("uri", "");
+        return object;
+    }
+
+    public JSONObject getSuccessResult(Object data) {
+        JSONObject object = new JSONObject();
+        object.put("code", 1);
+        object.put("msg", "");
+        object.put("data", data);
+        object.put("uri", "");
+        return object;
+    }
+
+    public JSONObject getErrResult(String msg) {
+        JSONObject object = new JSONObject();
+        object.put("code", 0);
+        object.put("msg", msg);
+        object.put("data", null);
+        object.put("uri", "");
+        return object;
+    }
+}

+ 48 - 33
src/custom/common/crm/crm_pull.java

@@ -1,6 +1,16 @@
 package common.crm;
 
 import com.alibaba.fastjson.JSONObject;
+import common.BaseClass;
+import common.YosException;
+import common.YosLogger;
+import common.crm.bean.item;
+import common.crm.bean.sku;
+import common.crm.bean.warrantycard;
+import common.data.QuerySQL;
+import common.data.Row;
+import common.data.SQLFactory;
+import common.data.db.QueryCallBack;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.stereotype.Controller;
@@ -8,53 +18,58 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
-import utility.mdcrmasync.methods.item;
-import utility.mdcrmasync.methods.sku;
 
 @Controller
 @RequestMapping("/rest/pull")
-public class crm_pull {
-
-//    @GetMapping("/pullMachinecodes")
-//    @ResponseBody
-//    public String pullMachinecodes(HttpServletRequest request, HttpServletResponse response, @RequestParam("fmachinecodes") String[] fmachinecodes, @RequestParam("returnMaxCount") String returnMaxCount, @RequestParam("token") String token) {
-//        if (fmachinecodes != null && fmachinecodes.length > 0) {
-//            return new utility.mdcrmasync.methods.sku().getSku(fmachinecodes).toString();
-//        } else {
-//            return new utility.mdcrmasync.methods.sku().getSku(returnMaxCount).toString();
-//        }
-//
-//    }
+public class crm_pull extends BaseClass {
 
     @GetMapping("/pullMachinecodes")
     @ResponseBody
     public String pullMachinecodes(HttpServletRequest request, HttpServletResponse response, @RequestParam("fmachinecodes") String[] fmachinecodes, @RequestParam("token") String token) {
-//        sku sku = new sku();
-//        JSONObject result = sku.getSku(fmachinecodes);
-//        try {
-//            sku.oneAction(fmachinecodes);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//
-//        return result.toString();
-        new sku().oneAction(fmachinecodes);
+        runTask("CRM请求同步序列号", () -> {
+            sku sku = new sku(YosLogger.logger);
+            for (String fmachinecode : fmachinecodes) {
+                if (!fmachinecode.isEmpty()) {
+                    sku.oneAction(fmachinecode);
+                }
+            }
+        });
         return getSuccessResult().toString();
     }
 
     @GetMapping("/pullAnyProducts")
     @ResponseBody
     public String pullAnyProducts(HttpServletRequest request, HttpServletResponse response, @RequestParam("fprodNums") String[] fprodNums, @RequestParam("isAllFields") String isAllFields, @RequestParam("token") String token) {
-//        item item = new item();
-//        JSONObject result = item.getItem(true, isAllFields.equals("true"), fprodNums);
-//        try {
-//            item.oneAction(fprodNums);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-        //  return result.toString();
+        runTask("CRM请求同步商品档案", () -> {
+            item item = new item(YosLogger.logger);
+            for (String fprodNum : fprodNums) {
+                if (!fprodNum.isEmpty()) {
+                    item.oneAction(fprodNum, isAllFields.equals("true"));
+                }
+            }
+        });
+        return getSuccessResult().toString();
+    }
+
+    @GetMapping("/pullWarrantycards")
+    @ResponseBody
+    public String pullWarrantycards(HttpServletRequest request, HttpServletResponse response, @RequestParam("fcustomnum") String fcustomnum, @RequestParam("fmachinecodes") String[] fmachinecodes, @RequestParam("token") String token) {
+        runTask("CRM请求同步客户保修卡", () -> {
+            try {
+                warrantycard warrantycard = new warrantycard(YosLogger.logger);
+                QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "sa_warrantycard", "cardno");
+                querySQL.setSiteid("MD").setWhere("sku", fmachinecodes);
+                querySQL.query(new QueryCallBack() {
+                    @Override
+                    public void onRowLoaded(long rowindex, Row row) throws YosException {
+                        warrantycard.oneAction(row.getString("cardno"));
+                    }
+                });
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
 
-        new item().oneAction(fprodNums);
+        });
         return getSuccessResult().toString();
     }
 

+ 47 - 6
src/custom/common/crm/crm_put.java

@@ -1,13 +1,15 @@
 package common.crm;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosLogger;
+import common.crm.bean.icstockbill;
+import common.crm.bean.sku_crm;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import utility.mdcrmasync.methods.icstockbill;
+import org.springframework.web.bind.annotation.*;
 
 @Controller
 @RequestMapping("/rest/put")
@@ -16,6 +18,45 @@ public class crm_put {
     @GetMapping("/confirmReceiveBill")
     @ResponseBody
     public String confirmReceiveBill(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("fcrmbillnum") String fcrmbillnum, @RequestParam("icstockbillids") String[] icstockbillids, @RequestParam("token") String token) {
-        return new icstockbill().confirmReceiveBill(fagentnum, fcrmbillnum, icstockbillids).toString();
+        return new icstockbill(YosLogger.logger).confirmReceiveBill(fagentnum, fcrmbillnum, icstockbillids).toString();
     }
+
+    @GetMapping("/modifyTmachinecodes")
+    @ResponseBody
+    public String modifyTmachinecodes(HttpServletRequest request, HttpServletResponse response, @RequestBody String body, @RequestParam("token") String token) {
+        JSONArray result = new JSONArray();
+        JSONArray jsonArray = JSON.parseArray(body);
+        sku_crm skuCrm = new sku_crm(YosLogger.logger);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject skuObject = jsonArray.getJSONObject(i);
+            if (skuCrm.oneAction(skuObject)) {
+                result.add(skuObject);
+            }
+        }
+        return result.toJSONString();
+    }
+
+    @GetMapping("/updateDRPWarrantycard")
+    @ResponseBody
+    public String updateDRPWarrantycard(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("fcrmbillnum") String fcrmbillnum, @RequestParam("icstockbillids") String[] icstockbillids, @RequestParam("token") String token) {
+        return "";
+    }
+
+
+    @GetMapping("/insertSaorder")
+    @ResponseBody
+    public String insertSaorder(HttpServletRequest request, HttpServletResponse response, @RequestParam("fagentnum") String fagentnum, @RequestParam("fcrmbillnum") String fcrmbillnum, @RequestParam("icstockbillids") String[] icstockbillids, @RequestParam("token") String token) {
+        return "";
+    }
+
+
+    public JSONObject getSuccessResult() {
+        JSONObject object = new JSONObject();
+        object.put("code", 1);
+        object.put("msg", "");
+        object.put("data", "");
+        object.put("uri", "");
+        return object;
+    }
+
 }

+ 0 - 17
src/custom/utility/mdcrmasync/CRM.java

@@ -1,17 +0,0 @@
-package utility.mdcrmasync;
-
-public class CRM {
-    /**
-     * 查询类
-     */
-    public static class query {
-
-    }
-
-    /**
-     * 更新类
-     */
-    public static class update {
-
-    }
-}

+ 0 - 134
src/custom/utility/mdcrmasync/methods/item.java

@@ -1,134 +0,0 @@
-package utility.mdcrmasync.methods;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import common.YosException;
-import common.data.*;
-import common.data.db.DBConnect;
-import org.apache.logging.log4j.Logger;
-import utility.mdcrmasync.core.CrmBase;
-
-import java.util.ArrayList;
-
-public class item extends CrmBase {
-    DBConnect CRMDB = new DBConnect("CRM");
-
-    public item(Logger logger) {
-        super(logger);
-    }
-
-    public item() {
-        super();
-    }
-
-    @Override
-    public void autoAction() throws YosException {
-        ArrayList<crm_datasync> datasyncList = get("商品档案", "plm_item", 100);
-        for (crm_datasync datasync : datasyncList) {
-            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "plm_item", "itemno").setTableAlias("t1");
-            querySQL.setWhere("t1.itemid", datasync.ownerid);
-            Rows itemRows = querySQL.query();
-            if (itemRows.isNotEmpty()) {
-                String itemno = itemRows.get(0).getString("itemno");
-                //判断crm是否已经存在该商品,如果存在则更新,不存在则新增
-                boolean isNew = false;
-                if (SQLFactory.createQuerySQL(CRMDB, "br_product").setWhere("fbrand_id", 1).setWhere("fprod_num", itemno).query().isEmpty()) {
-                    isNew = true;
-                }
-                JSONObject itemObject = getItem(isNew, false, itemno).getJSONArray("data").getJSONObject(0);
-
-                if (!itemObject.isEmpty()) {
-                    String result = postCRM(itemObject.toJSONString(), isNew ? "/ext/brproduct/addProduct" : "/ext/brproduct/updateProduct");
-                    JSONObject jsonObject = JSONObject.parseObject(result);
-                    if (jsonObject.getBooleanValue("success")) {
-                        datasync.suc();
-                    } else {
-                        datasync.fail(itemObject, jsonObject);
-                    }
-                }
-            } else {
-                datasync.del();
-            }
-        }
-    }
-
-    public void oneAction(String... itemnos) {
-        runTask("crm商品缺失,临时同步商品档案", () -> {
-            for (String itemno : itemnos) {
-                try {
-                    boolean isadd = false;
-                    if (SQLFactory.createQuerySQL(CRMDB, "br_product").setWhere("fbrand_id", 1).setWhere("fprod_num", itemnos).query().isEmpty()) {
-                        isadd = true;
-                    }
-
-                    JSONArray dataArray = getItem(isadd, false, itemno).getJSONArray("data");
-                    for (int i = 0; i < dataArray.size(); i++) {
-                        String itemObject = dataArray.getString(i);
-
-
-                        if (!dataArray.isEmpty()) {
-                            postCRM(dataArray.toJSONString(), "/ext/brproduct/batchSaveBrMachinecodes/1");
-                        }
-                    }
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-    }
-
-    public JSONObject getItem(boolean isNew, boolean isAllFields, String itemno) {
-        try {
-            QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "sa_itemsku");
-            querySQL.setSiteid("MD").setWhere("sku", itemno);
-            Rows skurows = querySQL.query();
-
-            RowsMap agentRowsMap = SQLFactory.createQuerySQL(new DBConnect(), "sa_agents").setWhere("sa_agentsid", skurows.toArrayList("sa_agentsid")).query().toRowsMap("sa_agentsid");
-
-            RowsMap itemRowsMap = SQLFactory.createQuerySQL(new DBConnect(), "plm_item").setWhere("itemid", skurows.toArrayList("itemid")).query().toRowsMap("itemid");
-            JSONArray array = new JSONArray();
-            for (Row skuRow : skurows) {
-                JSONObject object = new JSONObject();
-                object.put("fmechineCode", skuRow.getString("sku"));
-                object.put("fbrandId", 1);
-
-                if (agentRowsMap.containsKey(skuRow.getString("sa_agentsid"))) {
-                    object.put("fagentNum", agentRowsMap.get(skuRow.getString("sa_agentsid")).get(0).getString("agentnum"));
-                }
-                if (itemRowsMap.containsKey(skuRow.getString("itemid"))) {
-                    Row itemRow = itemRowsMap.get(skuRow.getString("itemid")).get(0);
-                    object.put("fprodNum", itemRow.getString("itemno"));
-                    object.put("fprodName", itemRow.getString("itemname"));
-                    object.put("fmodel", itemRow.getString("model"));
-                    object.put("funit", itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname"));
-                }
-                if (skuRow.getLong("stockid") > 0) {
-                    object.put("fstockNoDrp", skuRow.getRow("st_stock", "stockid=:stockid").getString("stockno"));
-                } else {
-                    object.put("fstockNoDrp", null);
-                }
-                object.put("fisvoid", skuRow.getString("status").equals("报废"));
-                object.put("fisyj", skuRow.getBoolean("fisyj"));
-                object.put("fisreturn", skuRow.getBoolean("isreturn"));
-                array.add(object);
-            }
-            JSONObject resultObject = new JSONObject();
-            resultObject.put("code", 1);
-            resultObject.put("msg", 1);
-            resultObject.put("data", array);
-            return resultObject;
-        } catch (Exception e) {
-            JSONObject resultObject = new JSONObject();
-            resultObject.put("code", 0);
-            resultObject.put("msg", e.getMessage());
-            resultObject.put("data", new JSONArray());
-            return resultObject;
-        }
-    }
-
-    public static void main(String[] args) throws YosException {
-        DBConnect crm = new DBConnect("CRM");
-        Rows rows1 = crm.runSqlQuery("select * from br_product");
-        System.err.println(rows1.toJsonArray());
-    }
-}

+ 0 - 115
src/custom/utility/mdcrmasync/methods/sku.java

@@ -1,115 +0,0 @@
-package utility.mdcrmasync.methods;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import common.YosException;
-import common.data.*;
-import common.data.db.DBConnect;
-import org.apache.logging.log4j.Logger;
-import utility.mdcrmasync.core.CrmBase;
-
-import java.util.ArrayList;
-
-public class sku extends CrmBase {
-    public sku(Logger logger) {
-        super(logger);
-    }
-
-    public sku() {
-        super();
-    }
-
-    @Override
-    public void autoAction() throws YosException {
-        //同步E-订单序列号至CRM
-        ArrayList<crm_datasync> datasyncList = get("序列号", "sa_itemsku", 100);
-        for (crm_datasync datasync : datasyncList) {
-            QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "sa_itemsku", "sku").setTableAlias("t1");
-            querySQL.setWhere("t1.sa_itemskuid", datasync.ownerid);
-            Rows skuRows = querySQL.query();
-            if (skuRows.isNotEmpty()) {
-                JSONArray dataArray = getSku(skuRows.get(0).getString("sku")).getJSONArray("data");
-                if (!dataArray.isEmpty()) {
-                    String result = postCRM(dataArray.toJSONString(), "/ext/brproduct/batchSaveBrMachinecodes/1");
-                    JSONObject jsonObject = JSONObject.parseObject(result);
-                    if (jsonObject.getBooleanValue("success")) {
-                        datasync.suc();
-                    } else {
-                        datasync.fail(dataArray, jsonObject);
-                    }
-                }
-            } else {
-                datasync.del();
-            }
-        }
-    }
-
-    public void oneAction(String... skus) {
-        runTask("crm序列号缺失,临时同步序列号", () -> {
-            try {
-                JSONArray dataArray = getSku(skus).getJSONArray("data");
-                if (!dataArray.isEmpty()) {
-                    postCRM(dataArray.toJSONString(), "/ext/brproduct/batchSaveBrMachinecodes/1");
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        });
-    }
-
-    /**
-     * crm拉取序列号
-     *
-     * @param fmachinecodes
-     * @return
-     */
-    public JSONObject getSku(String... fmachinecodes) {
-        try {
-            QuerySQL querySQL = SQLFactory.createQuerySQL(new DBConnect(), "sa_itemsku");
-            querySQL.setSiteid("MD").setWhere("sku", fmachinecodes);
-            Rows skurows = querySQL.query();
-
-            RowsMap agentRowsMap = SQLFactory.createQuerySQL(new DBConnect(), "sa_agents").setWhere("sa_agentsid", skurows.toArrayList("sa_agentsid")).query().toRowsMap("sa_agentsid");
-
-            RowsMap itemRowsMap = SQLFactory.createQuerySQL(new DBConnect(), "plm_item").setWhere("itemid", skurows.toArrayList("itemid")).query().toRowsMap("itemid");
-            JSONArray array = new JSONArray();
-            for (Row skuRow : skurows) {
-                JSONObject object = new JSONObject();
-                object.put("fmechineCode", skuRow.getString("sku"));
-                object.put("fbrandId", 1);
-
-                if (agentRowsMap.containsKey(skuRow.getString("sa_agentsid"))) {
-                    object.put("fagentNum", agentRowsMap.get(skuRow.getString("sa_agentsid")).get(0).getString("agentnum"));
-                }
-                if (itemRowsMap.containsKey(skuRow.getString("itemid"))) {
-                    Row itemRow = itemRowsMap.get(skuRow.getString("itemid")).get(0);
-                    object.put("fprodNum", itemRow.getString("itemno"));
-                    object.put("fprodName", itemRow.getString("itemname"));
-                    object.put("fmodel", itemRow.getString("model"));
-                    object.put("funit", itemRow.getRow("plm_unit", "unitid=:unitid").getString("unitname"));
-                }
-                if (skuRow.getLong("stockid") > 0) {
-                    object.put("fstockNoDrp", skuRow.getRow("st_stock", "stockid=:stockid").getString("stockno"));
-                } else {
-                    object.put("fstockNoDrp", null);
-                }
-                object.put("fisvoid", skuRow.getString("status").equals("报废"));
-                object.put("fisyj", skuRow.getBoolean("fisyj"));
-                object.put("fisreturn", skuRow.getBoolean("isreturn"));
-                array.add(object);
-            }
-            JSONObject resultObject = new JSONObject();
-            resultObject.put("code", 1);
-            resultObject.put("msg", 1);
-            resultObject.put("data", array);
-            return resultObject;
-        } catch (Exception e) {
-            JSONObject resultObject = new JSONObject();
-            resultObject.put("code", 0);
-            resultObject.put("msg", e.getMessage());
-            resultObject.put("data", new JSONArray());
-            return resultObject;
-        }
-    }
-}
-