package com.zhgd.xmgl.util; import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import com.zhgd.xmgl.entity.vo.CompanyTypeBean; import com.zhgd.xmgl.entity.vo.PersonBean; import com.zhgd.xmgl.entity.vo.WorkTypeBean; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; /** * 从沃尔获取项目数据 */ @Slf4j public class PostToVankeUtils { private static Log logger = LogFactory.getLog(PostToVankeUtils.class); //public static String vkUrl="http://stg-gongdi.vanrui.com/"; //public static String key="866aa746b11f42b887ba51babbb2aa7b"; //public static String vkUrl="https://gongdi.vanke.com/"; //public static String key="bf2395ea4e5e452f851aba53c3c4a855"; /** * 获取万科数据工具类 * @param url * @param jsondata * @return */ private static String getVnakeDataUtil(String url ,String jsondata,String key){ String res = ""; try { String jsonBase64 = java.util.Base64.getEncoder().encodeToString(jsondata.getBytes("UTF-8")); String sign = org.apache.commons.codec.digest.DigestUtils.md5Hex(jsonBase64 + ",key="+key); HttpPost post = new HttpPost(url+"?sign=" + sign); StringEntity entity = new StringEntity(jsondata, "UTF-8"); entity.setContentType("application/json"); post.setEntity(entity); HttpResponse response = HttpClients.createDefault().execute(post); res = EntityUtils.toString(response.getEntity(), "UTF-8"); } catch (Exception throwables) { throwables.printStackTrace(); } return res; } /** * 获取万科企业类型 */ private static List getVankeComapnyTypeList(String url,String key){ List companyTypeLists = new ArrayList<>(); String comapnyTypeList = getVnakeDataUtil(url+"/itbgp/api/getCompanyType","{}",key); logger.info("获取万科企业类型返回----"+comapnyTypeList); JSONObject jsonObject = new JSONObject(comapnyTypeList); JSONArray jsonArray = (JSONArray) jsonObject.get("data"); companyTypeLists.clear(); for (int i =0 ;i companyTypeLists =getVankeComapnyTypeList(serverUrl,key); int companyTypeId =-1,laowutype= -1; for (CompanyTypeBean companytype : companyTypeLists){ if(companytype.getCompanyType().equals(companyTypeName)) { companyTypeId = companytype.getCompanyTypeId(); } if(companytype.getCompanyType().contains("施工单位")){ laowutype = companytype.getCompanyTypeId(); } } if (companyTypeId == -1){ companyTypeId = laowutype; } JSONObject jsonparam1Object = new JSONObject(); jsonparam1Object.put("socialCode",socialCode); jsonparam1Object.put("companyName",companyName); jsonparam1Object.put("companyLegalPerson",companyLegalPerson); String modCompany = getVnakeDataUtil(serverUrl+"/itbgp/api/modCompany",jsonparam1Object.toString(),key); logger.info("添加万科企业返回----"+modCompany); JSONObject jsonparamObject = new JSONObject(); jsonparamObject.put("socialCode",socialCode); jsonparamObject.put("projectCode",projectCode); jsonparamObject.put("companyTypeId",companyTypeId); jsonparamObject.put("isBind","1"); String bindCompany = getVnakeDataUtil(serverUrl+"/itbgp/api/bindCompany",jsonparamObject.toString(),key); logger.info("万科绑定企业返回----"+bindCompany); } /** * 删除万科企业 * @param socialCode 企业信用代码 * @param projectCode 项目编码 * @param companyTypeName 企业类型 */ public static void sendDeleteComapny(String socialCode,String projectCode,String companyTypeName,String serverUrl,String key){ List companyTypeLists = getVankeComapnyTypeList(serverUrl,key); int companyTypeId =-1,laowutype= -1; for (CompanyTypeBean companytype : companyTypeLists){ if(companytype.getCompanyType().equals(companyTypeName)) { companyTypeId = companytype.getCompanyTypeId(); } if(companytype.getCompanyType().contains("施工单位")){ laowutype = companytype.getCompanyTypeId(); } } if (companyTypeId == -1){ companyTypeId = laowutype; } JSONObject jsonparamObject = new JSONObject(); jsonparamObject.put("socialCode",socialCode); jsonparamObject.put("projectCode",projectCode); jsonparamObject.put("companyTypeId",companyTypeId); jsonparamObject.put("isBind","0"); String bindCompany = getVnakeDataUtil(serverUrl+"/itbgp/api/bindCompany",jsonparamObject.toString(),key); logger.info("删除万科企业返回----"+bindCompany); } /** * 添加万科班组 * @param groupName 班组名称 * @param projectCode 项目编码 * @param socialCode 班组所属的劳务公司统一社会信用代码 */ public static void sendAddGroup(String groupName,String newGroupName,String projectCode,String socialCode,String serverUrl,String key){ JSONObject jsonparamObject = new JSONObject(); jsonparamObject.put("groupName",groupName); if(StringUtils.isNotEmpty(newGroupName)){ jsonparamObject.put("newGroupName",newGroupName); } jsonparamObject.put("projectCode",projectCode); jsonparamObject.put("socialCode",socialCode); String modGroup = getVnakeDataUtil(serverUrl+"/itbgp/api/modGroup",jsonparamObject.toString(),key); logger.info("-----添加万科班组返回----"+modGroup); } /** * 添加万科班组 * @param groupName 班组名称 * @param projectCode 项目编码 */ public static void sendDeleteGroup(String groupName,String projectCode,String serverUrl,String key){ JSONObject jsonparamObject = new JSONObject(); jsonparamObject.put("groupName",groupName); jsonparamObject.put("projectCode",projectCode); String modGroup = getVnakeDataUtil(serverUrl+"/itbgp/api/delGroup",jsonparamObject.toString(),key); logger.info("删除万科班组返回----"+modGroup); } /** * 获取万科工种 * @param projectCode 项目编码 */ private static void getVankeWorkType(String projectCode,String serverUrl,String key){ List workTypeBeanList = new ArrayList<>(); JSONObject jsonparamObject = new JSONObject(); jsonparamObject.put("projectCode",projectCode); String getWorkerType = getVnakeDataUtil(serverUrl+"/itbgp/api/getWorkerType",jsonparamObject.toString(),key); JSONObject jsonObject = new JSONObject(getWorkerType); JSONArray jsonArray = (JSONArray) jsonObject.get("data"); workTypeBeanList.clear(); for (int i =0 ;i