| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |