Browse Source

SAP供应商同步

wanghaiwu 1 day ago
parent
commit
62c9525cef

+ 66 - 12
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/task/SynSupplierFromSAPTask.java

@@ -25,6 +25,7 @@ import kd.bos.util.StringUtils;
 import nckd.base.helper.CommonHelperUtils;
 
 import java.io.IOException;
+import java.io.Serializable;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -38,7 +39,8 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
     private static final Log logger = LogFactory.getLog(SynSupplierFromSAPTask.class);
     protected static final Long DEFAULT_ORG_ID = 100000L;
     private static final String ENTITY_SUPPLIER = "bd_supplier";
-    private static String param_suppliertype = "";
+    private static String param_suppliertype_5 = "";
+    private static String param_suppliertype_ee = "";
     private static String param_supplierurl = "";
     private static String param_username = "";
     private static String param_password = "";
@@ -50,17 +52,18 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
             return;
         }
 
-        param_suppliertype = mapentity.get("suppliertype");
+        param_suppliertype_5 = mapentity.get("suppliertype_5");
+        param_suppliertype_ee = mapentity.get("suppliertype_EE");
         param_supplierurl = mapentity.get("supplier_url");
         param_username = mapentity.get("username");
         param_password = mapentity.get("password");
 
-        if(StringUtils.isEmpty(param_suppliertype) || StringUtils.isEmpty(param_supplierurl)
+        if(StringUtils.isEmpty(param_suppliertype_5) || StringUtils.isEmpty(param_suppliertype_ee) || StringUtils.isEmpty(param_supplierurl)
                 || StringUtils.isEmpty(param_username) || StringUtils.isEmpty(param_password)){
             return;
         }
 
-        Map<String, String> supplierNameMap = new HashMap<String, String>();
+        Map<String, SupplierModel> supplierNameMap = new HashMap<String, SupplierModel>();
         Map<String, List<String>> supplierOrgMap = new HashMap<String, List<String>>();
 
 
@@ -87,13 +90,14 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
         }
 
         if(supplierNameMap.size() > 0){
-            for (Map.Entry<String, String> frameOrgMap : supplierNameMap.entrySet()) {
+            for (Map.Entry<String, SupplierModel> frameOrgMap : supplierNameMap.entrySet()) {
                 String number = frameOrgMap.getKey();
-                String name = frameOrgMap.getValue();
+                SupplierModel sModel = frameOrgMap.getValue();
 
                 JSONObject jsonData = new JSONObject();
                 jsonData.put("number", number);
-                jsonData.put("name", name);
+                jsonData.put("name", sModel.getName());
+                jsonData.put("group", sModel.getGroup());
 
                 List<String> orgList = supplierOrgMap.get(number);
                 jsonData.put("orgList", orgList);
@@ -111,7 +115,7 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
      * @param header
      * @param orgNumber
      */
-    private void buildSupplier(Map<String, String> supplierNameMap, Map<String, List<String>> supplierOrgMap
+    private void buildSupplier(Map<String, SupplierModel> supplierNameMap, Map<String, List<String>> supplierOrgMap
                                 , String url, Map<String, String> header, String orgNumber, Map<String, Object> map){
         try {
 
@@ -163,11 +167,13 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
                 maxSize = Integer.parseInt(map.get("maxCount").toString());
             }
 
+            String groupNumber = "";
             for(int i = 0; i < rItemArray.size(); ++i) {
                 JSONObject item = rItemArray.getJSONObject(i);
                 String number = item.getString("LIFNR");
 
-                if(StringUtils.isNotEmpty(number) && "5".equals(number.substring(0, 1))){
+                if(StringUtils.isNotEmpty(number)
+                        && ("5".equals(number.substring(0, 1)) || "EE".equals(number.substring(0, 2))) ){
                     size++;
 
                     if(maxSize > 0 && size > maxSize){
@@ -177,7 +183,17 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
                     String name = item.getString("NAME1");
 
                     if(!supplierNameMap.containsKey(number)){
-                        supplierNameMap.put(number, name);
+                        SupplierModel smodel = new SupplierModel();
+
+                        smodel.setNumber(number);
+                        smodel.setName(name);
+                        if("5".equals(number.substring(0, 1))){
+                            smodel.setGroup(param_suppliertype_5);
+                        } else if("EE".equals(number.substring(0, 2))){
+                            smodel.setGroup(param_suppliertype_ee);
+                        }
+
+                        supplierNameMap.put(number, smodel);
                     }
 
                     List<String> orgList = null;
@@ -208,8 +224,10 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
         String supplierNumber = jsonData.getString("number");
         //供应商名称
         String supplierName = jsonData.getString("name");
-        //供应商类型:法人企业1,非法人企业2,非企业单位3,个人4,个体户5
+        //供应商分组
+        String supplierGroup = jsonData.getString("group");
 
+        //供应商类型:法人企业1,非法人企业2,非企业单位3,个人4,个体户5
         if(StringUtils.isEmpty(supplierNumber)){
             returnMap.put("code", "500");
             returnMap.put("msg", "供应商编码为空!");
@@ -283,7 +301,7 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
         supplier.set("createorg", defaultOrg);
         supplier.set("org", defaultOrg);
 
-        qFilter = new QFilter("number", QCP.equals, param_suppliertype);
+        qFilter = new QFilter("number", QCP.equals, supplierGroup);
         qFilter.and(new QFilter("enable", QCP.equals, "1"));
         qFilter.and(new QFilter("status", QCP.equals, "C"));
         DynamicObject suppliergroup = BusinessDataServiceHelper.loadSingleFromCache("bd_suppliergroup", "id, number, name, standard", qFilter.toArray());
@@ -445,4 +463,40 @@ public class SynSupplierFromSAPTask extends AbstractTask implements StopTask {
         unite.addAll(b);
         return unite;
     }
+
+    public class SupplierModel implements Serializable{
+        private String number;
+        private String name;
+        private String group;
+
+        public String getNumber()
+        {
+            return number;
+        }
+
+        public void setNumber(String number)
+        {
+            this.number = number;
+        }
+
+        public String getName()
+        {
+            return name;
+        }
+
+        public void setName(String name)
+        {
+            this.name = name;
+        }
+
+        public String getGroup()
+        {
+            return group;
+        }
+
+        public void setGroup(String group)
+        {
+            this.group = group;
+        }
+    }
 }