wisdomisite-java/src/main/java/com/zhgd/xmgl/util/PostToVankeUtils.java
2024-04-14 21:05:01 +08:00

368 lines
15 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<CompanyTypeBean> getVankeComapnyTypeList(String url,String key){
List<CompanyTypeBean> 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<jsonArray.size();i++){
JSONObject copanytypebean = (JSONObject) jsonArray.get(i);
CompanyTypeBean companyTypeBean = new CompanyTypeBean();
companyTypeBean.setCompanyTypeId(Integer.parseInt(copanytypebean.get("id").toString()));
companyTypeBean.setCompanyType(copanytypebean.get("companyTypeName").toString());
companyTypeLists.add(companyTypeBean);
}
return companyTypeLists;
}
/**
* 添加万科企业
* @param socialCode 企业信用代码
* @param projectCode 项目编码
* @param companyTypeName 企业类型
* @param companyName 企业名称
* @param companyLegalPerson 企业法人
*/
public static void sendAddComapny(String socialCode,String projectCode,String companyTypeName,String companyName,String companyLegalPerson,String serverUrl,String key){
List<CompanyTypeBean> 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<CompanyTypeBean> 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<WorkTypeBean> 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<jsonArray.size();i++){
JSONObject copanytypebean = (JSONObject) jsonArray.get(i);
WorkTypeBean workTypeBean = new WorkTypeBean();
workTypeBean.setTypeId(Integer.parseInt(copanytypebean.get("typeId").toString()));
workTypeBean.setTypeName(copanytypebean.get("typeName").toString());
workTypeBeanList.add(workTypeBean);
}
logger.info("获取万科工种返回----"+getWorkerType);
}
/**
* 上传人员照片
* @param imageurl 照片URL
* @param type 类型 1人脸照片 2抓拍照片
*/
private static String sendVankePhoto(String imageurl,String type,String serverUrl,String key){
String url = "";
try {
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("type",type);
jsonparamObject.put("imgData",Base64Util.getFileToBase64(imageurl));
String comapnyTypeList = getVnakeDataUtil(serverUrl+"/itbgp/api/uploadImg",jsonparamObject.toString(),key);
JSONObject jsonObject = new JSONObject(comapnyTypeList);
url = jsonObject.get("url").toString();
logger.info("上传照片返回----"+url);
}catch (Exception e){
log.error("error", e);
}
return url;
}
/**
* 新增人员信息
*/
public static String sentAddPerson(PersonBean personBean ,String serverUrl,String key){
String result=null;
try {
personBean.setPhotoUrl(sendVankePhoto(personBean.getPhotoUrl(),"1",serverUrl,key));
personBean.setIdCardUpPhotoUrl(sendVankePhoto(personBean.getIdCardUpPhotoUrl(),"1",serverUrl,key));
personBean.setIdCardDownPhotoUrl(sendVankePhoto(personBean.getIdCardDownPhotoUrl(),"1",serverUrl,key));
personBean.setIdCardBigPhotoUrl(sendVankePhoto(personBean.getIdCardBigPhotoUrl(),"1",serverUrl,key));
String str = JSONUtil.toJsonStr(personBean);
String modWorker = getVnakeDataUtil(serverUrl+"/itbgp/api/modWorker",str,key);
logger.info("----万科人员添加--"+personBean.getName()+"--"+personBean.getIdCard()+"--返回----"+modWorker);
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("idCards",personBean.getIdCard());
jsonparamObject.put("projectCode",personBean.getProjectCode());
result = getVnakeDataUtil(serverUrl+"/itbgp/api/addRealName",jsonparamObject.toString(),key);
logger.info("----万科人员实名认证--"+personBean.getName()+"--"+personBean.getIdCard()+"--返回----"+result);
}catch (Exception e){
log.error("error", e);
}
return result;
}
/**
* 删除人员信息
* @param idCard 身份证号
* @param projectCode 项目编码
* @return
*/
public static String sentDeletePerson(String idCard,String projectCode ,String serverUrl,String key){
String delWorker=null;
try {
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("idCard",idCard);
jsonparamObject.put("projectCode",projectCode);
delWorker = getVnakeDataUtil(serverUrl + "/itbgp/api/delWorker", jsonparamObject.toString(), key);
log.info("----万科人员删除返回----" + delWorker);
}catch (Exception e){
log.error("error", e);
}
return delWorker;
}
/**
* 添加人脸识别设备
* @param devCode 设备SN
* @param devName 设备名称
* @param direction 设备通行方向 1:进 2 出
* @param projectCode 项目编码
* @return
*/
public static void sentAddPassDev(String devCode,String devName,String direction,String projectCode ,String serverUrl,String key){
try {
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("devCode",devCode);
jsonparamObject.put("devName",devName);
jsonparamObject.put("direction",direction);
jsonparamObject.put("projectCode",projectCode);
jsonparamObject.put("isOnline",1);
String uploadPassDev = getVnakeDataUtil(serverUrl+"/itbgp/api/uploadPassDev",jsonparamObject.toString(),key);
log.info("-----添加万科平台通行设备返回------" + uploadPassDev);
}catch (Exception e){
log.error("error", e);
}
}
/**
* 添加安全培训
* @param idCards 设备SN
* @param projectCode 项目编码
* @param eduCoursename 课程名称
* @param eduType 1 入场安全教育
* @return
*/
public static void sentAddSafeEducation(String idCards,String projectCode,String eduCoursename,String eduType ,String serverUrl,String key){
try {
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("idCards",idCards);
jsonparamObject.put("projectCode",projectCode);
jsonparamObject.put("eduCoursename",eduCoursename);
jsonparamObject.put("eduType",eduType);
String uploadPassDev = getVnakeDataUtil(serverUrl+"/itbgp/api/modSafeEducation",jsonparamObject.toString(),key);
log.info("-----添加万科安全培训----" + uploadPassDev);
}catch (Exception e){
log.error("error", e);
}
}
/**
* 添加通行记录
* @param devCode 设备SN
* @param passType 通行方式 1 IC卡 2 人脸识别 3 指纹识别 5 二维码 6 蓝牙
* @param direction 通行方向 1:进 2 出
* @param projectCode 项目编码
* @param passTime 通行时间 格式2019-06-06 09:53:12
* @param idCard 人员身份证号码
* @return
*/
public static String sentAddPassRecord(String devCode,String passType,String direction,String projectCode,String passTime,String idCard ,String serverUrl,String key){
String uploadPassDev=null;
try {
JSONObject jsonparamObject = new JSONObject();
jsonparamObject.put("idCard",idCard);
jsonparamObject.put("projectCode",projectCode);
jsonparamObject.put("passTime",passTime);
jsonparamObject.put("direction",direction);
jsonparamObject.put("passType",passType);
jsonparamObject.put("devCode",devCode);
uploadPassDev = getVnakeDataUtil(serverUrl + "/itbgp/api/passRecord", jsonparamObject.toString(), key);
log.info("-----项目编号:" + projectCode + "-----idCard:" + idCard + "---添加万科平台通行记录返回" + uploadPassDev);
}catch (Exception e){
log.error("error", e);
}
return uploadPassDev;
}
public static void main(String[] args) {
//添加企业
getVankeComapnyTypeList("http://stg-gongdi.vanrui.com","866aa746b11f42b887ba51babbb2aa7b");
//sendAddComapny("91330783147520019P","20223137296","建设单位","中天建设集团有限公司","未知");
//添加班组
// addvankegroup("测试班组","20194184386","91440300MA5DF14Q0W");
//获取工种
// getvankeworktype("20194184386");
//上传照片
}
}