update code
parent
1e59a862ef
commit
7ed645b5d4
|
@ -0,0 +1,880 @@
|
|||
package com.ruoyi.iot.task;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.security.Md5Utils;
|
||||
import okhttp3.*;
|
||||
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.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
//@Component("attendanceJgwTask")
|
||||
@RestController
|
||||
@RequestMapping("/jgw")
|
||||
public class AttendanceJgwTask {
|
||||
static String host="http://api.gongyoumishu.com:80/gomeetapi/";
|
||||
static String appId="6a6f24fe35b04ee0bcf31cfb46ed1051";
|
||||
static String secret="sxyzxx2024suc";
|
||||
static String projectId="6ffba4b6f18743f690b76b5b81d10052";
|
||||
static String phone="13572235102";
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("---1--");
|
||||
// asyncProContractor();
|
||||
}
|
||||
public static String getToken(){
|
||||
String grantType="client_credential";
|
||||
String path="/webapi/credential";
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("secret", Base64.encode(secret));
|
||||
params.put("grantType",grantType);
|
||||
Request request = new Request.Builder()
|
||||
.url(host+path)
|
||||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=getResult(request);
|
||||
JSONObject jo=JSON.parseObject(data);
|
||||
JSONObject joData= jo.getJSONObject("data");
|
||||
if(joData!=null){
|
||||
return joData.getString("token");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 参建单位同步
|
||||
*/
|
||||
@GetMapping("/asyncProContractor")
|
||||
public AjaxResult asyncProContractor(){
|
||||
String token=getToken();
|
||||
if(StrUtil.isBlank(token)){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
String path="/webapi/project/findProContractorByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String startId="0";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
String data=HttpUtil.get(url);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("proContractorList");
|
||||
JSONArray unitList=getUnitList();
|
||||
if(arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
callApiSaveParticipatings(json,unitList);
|
||||
}
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 队伍信息同步
|
||||
*/
|
||||
@GetMapping("/asyncGroup")
|
||||
public AjaxResult asyncGroup(){
|
||||
JSONArray unitList=getUnitList();
|
||||
JSONArray groupList=getGroupList();
|
||||
for(int i=0;i<unitList.size();i++){
|
||||
JSONObject unit=unitList.getJSONObject(i);
|
||||
if(!unitHasGroup(unit,groupList)){
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("unitId",unit.getString("id"));
|
||||
jo.put("uninName", unit.getString("enterpriseName"));
|
||||
jo.put("groupName","西电队伍");
|
||||
jo.put("projectId",mklPrjId);
|
||||
callSaveGroupInfo(jo);
|
||||
}
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 参建单位是否已有队伍
|
||||
* @param unit
|
||||
* @param groupList
|
||||
* @return
|
||||
*/
|
||||
private boolean unitHasGroup(JSONObject unit, JSONArray groupList) {
|
||||
for(int i=0;i<groupList.size();i++){
|
||||
JSONObject group=groupList.getJSONObject(i);
|
||||
if(group.getString("unitId").equals(unit.getString("id"))){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询参建单位
|
||||
*/
|
||||
private void doSyncProContractor(String token, long startId) {
|
||||
String path="/webapi/project/findProContractorByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
String data=HttpUtil.get(url);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("proContractorList");
|
||||
if(arr.size()>0){
|
||||
long rowId=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
rowId=json.getLong("id");
|
||||
}
|
||||
if(rowId>0){
|
||||
doSyncProContractor(token,rowId+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询班组直隶
|
||||
* @param token
|
||||
*/
|
||||
private void doSyncDirectlyUnderGroup(String token, long startId,JSONArray groupList,JSONArray unitList,JSONArray teamList) {
|
||||
String subcontractorId=getSubcontractor(token);
|
||||
String path="/webapi/project/findDirectlyUnderTeam";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("subcontractorId",subcontractorId);
|
||||
params.put("rowId",startId);
|
||||
String data= HttpRequest.post(host+path)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(params).execute().body();
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("teamList");
|
||||
if(arr.size()>0){
|
||||
long rowId=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
if(!hasAddTeam(json,teamList)){
|
||||
JSONObject group=getTeamGroup(json,groupList);
|
||||
if(group!=null){
|
||||
callSaveTeamInfoList(json,group,unitList);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(rowId>0){
|
||||
doSyncDirectlyUnderGroup(token,rowId+1,groupList,unitList,teamList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取负责人ID
|
||||
* @param token
|
||||
* @return
|
||||
*/
|
||||
private String getSubcontractor(String token) {
|
||||
String path="/webapi/project/querySubcontractorByPhone";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
System.out.println(url);
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
System.out.println(tokenSign);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("phone",phone);
|
||||
String data= HttpRequest.post(host+path)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(params).execute().body();
|
||||
System.out.println(data);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject jd=j.getJSONObject("data");
|
||||
JSONArray arr=jd.getJSONArray("subcontractorList");
|
||||
if(arr.size()>0){
|
||||
JSONObject jo=arr.getJSONObject(0);
|
||||
String tmp=jo.getString("subcontractorId");
|
||||
return tmp;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private String getWorkType(String leaderTeamId,String subcontractorId,String findWrokId){
|
||||
String token=getToken();
|
||||
if(StrUtil.isBlank(token)){
|
||||
return "";
|
||||
}
|
||||
String path="/webapi/project/findWorkerByLeader";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("leaderTeamId",leaderTeamId);
|
||||
params.put("subcontractorId",subcontractorId);
|
||||
String data= HttpRequest.post(host+path)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(params).execute().body();
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject jd=j.getJSONObject("data");
|
||||
JSONArray arr=jd.getJSONArray("recordList");
|
||||
if(arr!=null && arr.size()>0) {
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
String workerId = json.getString("workerId");
|
||||
if(workerId.equals(findWrokId)){
|
||||
return json.getString("jobType");
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 班组信息同步
|
||||
*/
|
||||
@GetMapping("/asyncTeam")
|
||||
public AjaxResult asyncTeam(){
|
||||
String token=getToken();
|
||||
if(StrUtil.isBlank(token)){
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
JSONArray teamList=getTeamList();
|
||||
|
||||
String path="webapi/project/findTeamByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String startId="0";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
String data=HttpUtil.get(url);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("teamList");
|
||||
JSONArray groupList=getGroupList();
|
||||
JSONArray unitList=getUnitList();
|
||||
if(arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
if(!hasAddTeam(json,teamList)){
|
||||
JSONObject group=getTeamGroup(json,groupList);
|
||||
if(group!=null){
|
||||
callSaveTeamInfoList(json,group,unitList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
doSyncDirectlyUnderGroup(token,0l,groupList,unitList,teamList);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private JSONObject getTeamGroup(JSONObject json,JSONArray groupList) {
|
||||
String unitName=json.getString("corpName");
|
||||
for(int i=0;i<groupList.size();i++){
|
||||
JSONObject group=groupList.getJSONObject(i);
|
||||
if(group.getString("uninName").equals(unitName)){
|
||||
return group;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否已增加班组信息
|
||||
*
|
||||
* @param json
|
||||
* @param teamList
|
||||
* @return
|
||||
*/
|
||||
private boolean hasAddTeam(JSONObject json, JSONArray teamList) {
|
||||
String unitName=json.getString("corpName");
|
||||
String teamName=json.getString("teamName");
|
||||
for(int i=0;i<teamList.size();i++){
|
||||
JSONObject j=teamList.getJSONObject(i);
|
||||
if(j.getString("uninName").equals(unitName) && j.getString("teamName").equals(teamName)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员信息同步
|
||||
*/
|
||||
@GetMapping("/asyncWorker")
|
||||
public AjaxResult asyncWorker(){
|
||||
String token=getToken();
|
||||
if(StrUtil.isBlank(token)){
|
||||
return AjaxResult.error();
|
||||
}
|
||||
JSONArray userList=getUserInfoList();
|
||||
JSONArray teamList=getTeamList();
|
||||
JSONArray wrokTypeList=getWorkTypeList();
|
||||
doSyncWorker(token,0l,userList,teamList,wrokTypeList);
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private void doSyncWorker(String token, long startId,JSONArray userList,JSONArray teamList,JSONArray wrokTypeList) {
|
||||
String path="/webapi/project/findAddWorkerByProject";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("startId",startId);
|
||||
String data= HttpRequest.post(host+path)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(params).execute().body();
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
long endId= joData.getLong("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerList");
|
||||
if(arr.size()>0) {
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
String idNumber=json.getString("idNumber");
|
||||
if(!existsIdNumberInList(idNumber,userList)){
|
||||
JSONObject joTeam=getWrokerTeam(json.getString("subcontractorId"),teamList);
|
||||
if(joTeam!=null){
|
||||
callApiPersonSync(json,joTeam,wrokTypeList);
|
||||
}
|
||||
}
|
||||
}
|
||||
doSyncWorker(token,endId,userList,teamList,wrokTypeList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private JSONObject getWrokerTeam(String subcontractorId, JSONArray teamList) {
|
||||
for(int i=0;i<teamList.size();i++){
|
||||
JSONObject j=teamList.getJSONObject(i);
|
||||
if(j.getString("captainIdcard").equals(subcontractorId)){
|
||||
return j;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询身份证是否已存在
|
||||
* @param idNumber
|
||||
* @param userList
|
||||
* @return
|
||||
*/
|
||||
private boolean existsIdNumberInList(String idNumber, JSONArray userList) {
|
||||
for(int i=0;i<userList.size();i++){
|
||||
JSONObject j=userList.getJSONObject(i);
|
||||
if(j.getString("idcardnum").equals(idNumber)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步当天数据
|
||||
*/
|
||||
@GetMapping("/asyncAttendanceData")
|
||||
public AjaxResult asyncAttendanceData(){
|
||||
String dtStart= DateUtil.format(new Date(),"yyyy-MM-dd");
|
||||
String dtEnd=dtStart;
|
||||
JSONArray userList=getUserInfoList();
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
/**
|
||||
* 同步7天之内数据
|
||||
*/
|
||||
@GetMapping("/syncLastWeekAttendanceData")
|
||||
public void syncLastWeekAttendanceData(){
|
||||
String dtEnd=DateUtil.format(new Date(),"yyyy-MM-dd");
|
||||
String dtStart=DateUtil.format(DateUtil.offsetDay(new Date(),-7),"yyyy-MM-dd");
|
||||
JSONArray userList=getUserInfoList();
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步30天内数据
|
||||
*/
|
||||
public void syncLast30DayAttendanceData(){
|
||||
String dtEnd=DateUtil.format(new Date(),"yyyy-MM-dd");
|
||||
String dtStart=DateUtil.format(DateUtil.offsetDay(new Date(),-300),"yyyy-MM-dd");
|
||||
JSONArray userList=getUserInfoList();
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
}
|
||||
|
||||
public void syncLast202406to202410DayAttendanceData(){
|
||||
String dtStart="2024-06-01";
|
||||
String dtEnd="2024-07-01";
|
||||
JSONArray userList=getUserInfoList();
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
dtStart="2024-07-01";
|
||||
dtEnd="2024-08-01";
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
dtStart="2024-08-01";
|
||||
dtEnd="2024-09-01";
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
dtStart="2024-09-01";
|
||||
dtEnd="2024-10-01";
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
dtStart="2024-10-01";
|
||||
dtEnd="2024-11-01";
|
||||
syncAttendanceData(dtStart,dtEnd,userList);
|
||||
}
|
||||
private void syncAttendanceData(String dtStart, String dtEnd, JSONArray userList) {
|
||||
String token=getToken();
|
||||
if(StrUtil.isBlank(token)){
|
||||
return;
|
||||
}
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("token",token);
|
||||
jo.put("startTime",dtStart);
|
||||
jo.put("endTime",dtEnd);
|
||||
doSyncAttendanceData(jo,"0",userList);
|
||||
}
|
||||
|
||||
private void doSyncAttendanceData(JSONObject jo, String startId, JSONArray userList) {
|
||||
String token=jo.getString("token");
|
||||
String startTime=jo.getString("startTime");
|
||||
String endTime=jo.getString("endTime");
|
||||
String path="/webapi/project/findAttendanceByProject";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("startId",startId);
|
||||
params.put("startTime",startTime);
|
||||
params.put("endTime",endTime);
|
||||
String data=HttpRequest.post(host+path)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(params).execute().body();
|
||||
System.out.println(data);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
String endId= joData.getString("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerAttList");
|
||||
if(arr!=null && arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
callApiclockData(json,userList);
|
||||
}
|
||||
doSyncAttendanceData(jo,endId,userList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static RequestBody toFormBody(Map<String, Object> params ){
|
||||
FormBody.Builder builder=new FormBody.Builder();
|
||||
for(String key :params.keySet()){
|
||||
builder.add(key,params.get(key).toString());
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
public static String getResult(Request request) {
|
||||
OkHttpClient client = new OkHttpClient();
|
||||
Response response;
|
||||
try {
|
||||
response = client.newCall(request).execute();
|
||||
if (response.body() != null) {
|
||||
return response.body().string();
|
||||
} else {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
private static String mklAppId="4465a89944f94397897ba897abc5607e";
|
||||
private static String mklAppsecret="BE6FC933B83C4BE78A3BD8F85E026E3B";
|
||||
private static long mklPrjId=229;
|
||||
public static String getMklSign(){
|
||||
String tmp=mklAppsecret+"appid"+mklAppId+mklAppsecret;
|
||||
return Md5Utils.hash(tmp).toUpperCase();
|
||||
}
|
||||
|
||||
public static String getMklSign2(){
|
||||
String tmp=mklAppsecret+"appid"+mklAppId+"projectId"+mklPrjId+mklAppsecret;
|
||||
return Md5Utils.hash(tmp).toUpperCase();
|
||||
}
|
||||
|
||||
private static String postJson(String url,JSONObject jo){
|
||||
return HttpUtil.createPost(url)
|
||||
.body(jo.toJSONString()) // 设置请求体为JSON字符串
|
||||
.contentType("application/json") // 设置Content-Type为application/json
|
||||
.execute() // 执行请求
|
||||
.body(); // 获取响应体
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取队伍信息
|
||||
* @return
|
||||
*/
|
||||
private JSONArray getGroupList(){
|
||||
String url="http://smz.makalu.cc/mkl/basic/getGroupList?appid="+mklAppId+"&sign="+getMklSign2()+"&projectId="+mklPrjId;
|
||||
String data= HttpUtil.get(url);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
return jo.getJSONArray("data");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取参建单位信息
|
||||
* @return
|
||||
*/
|
||||
private JSONArray getUnitList(){
|
||||
String url="http://smz.makalu.cc/mkl/basic/getUnitList?appid="+mklAppId+"&sign="+getMklSign2()+"&projectId="+mklPrjId;
|
||||
String data= HttpUtil.get(url);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
return jo.getJSONArray("data");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取人员信息
|
||||
* @return
|
||||
*/
|
||||
private JSONArray getUserInfoList(){
|
||||
String url="http://smz.makalu.cc/mkl/basic/getUserInfoList?appid="+mklAppId+"&sign="+getMklSign2()+"&projectId="+mklPrjId;
|
||||
String data= HttpUtil.get(url);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
return jo.getJSONArray("data");
|
||||
}
|
||||
/**
|
||||
* 获取班组信息
|
||||
* @return
|
||||
*/
|
||||
private JSONArray getTeamList(){
|
||||
String url="http://smz.makalu.cc/mkl/basic/getTeamList?appid="+mklAppId+"&sign="+getMklSign2()+"&projectId="+mklPrjId;
|
||||
String data= HttpUtil.get(url);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
return jo.getJSONArray("data");
|
||||
}
|
||||
private JSONArray getWorkTypeList(){
|
||||
String url="http://smz.makalu.cc/mkl/basic/getWorkTypeList?appid="+mklAppId+"&sign="+getMklSign2()+"&projectId="+mklPrjId;
|
||||
String data= HttpUtil.get(url);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
return jo.getJSONArray("data");
|
||||
}
|
||||
|
||||
/**
|
||||
* 参建单位已增加
|
||||
* @param jo
|
||||
* @param unitList
|
||||
* @return
|
||||
*/
|
||||
private boolean hasAddUnit(JSONObject jo,JSONArray unitList){
|
||||
String code=jo.getString("corpCode");
|
||||
for(int i=0;i<unitList.size();i++){
|
||||
JSONObject json=unitList.getJSONObject(i);
|
||||
if(json.getString("creditCode").equals(code)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 队伍信息同步
|
||||
* @param jo
|
||||
*/
|
||||
private void callSaveGroupInfo(JSONObject joPost) {
|
||||
String url="http://smz.makalu.cc/mkl/api/saveGroupInfo";
|
||||
joPost.put("sign",getMklSign());
|
||||
joPost.put("appid",mklAppId);
|
||||
String result= postJson(url,joPost);
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加参建单位
|
||||
* @param json
|
||||
* @param unitList
|
||||
*/
|
||||
private void callApiSaveParticipatings(JSONObject json,JSONArray unitList) {
|
||||
if(hasAddUnit(json,unitList)){
|
||||
return;
|
||||
}
|
||||
String url="http://smz.makalu.cc/mkl/api/saveParticipatings";
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("project_id",mklPrjId);
|
||||
jo.put("enterprise_name",json.getString("corpName"));
|
||||
jo.put("credit_code",json.getString("corpCode"));
|
||||
jo.put("unit_typeid",getMklUnitType(json.getString("corpType")));
|
||||
jo.put("business_scope","");
|
||||
jo.put("contact_name",json.getString("pmName"));
|
||||
jo.put("contact_phone",json.getString("pmPhone"));
|
||||
jo.put("regist_addr",json.getString("registerAddress"));
|
||||
jo.put("regist_date",json.getString("registeredTime"));
|
||||
jo.put("corporation_name",json.getString("pmName"));
|
||||
jo.put("corporation_cardnum",json.getString("pmIdcardNumber"));
|
||||
jo.put("corporation_phone",json.getString("pmPhone"));
|
||||
jo.put("entrusted_agent_name",json.getString("pmName"));
|
||||
jo.put("entrusted_agent_phone",json.getString("pmPhone"));
|
||||
jo.put("entrusted_agent_education_level","");
|
||||
jo.put("id_card_front","");
|
||||
jo.put("id_card_back","");
|
||||
jo.put("half_body_photo","");
|
||||
jo.put("entrusted_agent_cardnum",json.getString("pmIdcardNumber"));
|
||||
JSONArray data=new JSONArray();
|
||||
data.add(jo);
|
||||
JSONObject joPost=new JSONObject();
|
||||
joPost.put("data",data);
|
||||
joPost.put("sign",getMklSign());
|
||||
joPost.put("appid",mklAppId);
|
||||
String result= postJson(url,joPost);
|
||||
}
|
||||
|
||||
/**
|
||||
* 班组信息同步
|
||||
* @param json
|
||||
* @param groupList
|
||||
*/
|
||||
private void callSaveTeamInfoList(JSONObject json, JSONObject group,JSONArray unitList) {
|
||||
String url="http://smz.makalu.cc/mkl/api/saveTeamInfoList";
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("projectId",mklPrjId);
|
||||
jo.put("unitId",group.getIntValue("unitId"));
|
||||
jo.put("uninName",group.getString("uninName"));
|
||||
jo.put("groupId",group.getIntValue("id"));
|
||||
jo.put("teamName",json.getString("teamName"));
|
||||
String unitTypeid=getUnitTyeId(group.getString("unitId"),unitList);
|
||||
jo.put("teamType","1".equals(unitTypeid)||"8".equals(unitTypeid)?"2":"1");
|
||||
jo.put("captainName",json.getString("resPersonName"));
|
||||
jo.put("captainIdcard",json.getString("subcontractorId"));
|
||||
jo.put("captainPhone",json.getString("resPersonPhone"));
|
||||
jo.put("sign",getMklSign());
|
||||
jo.put("appid",mklAppId);
|
||||
JSONArray data=new JSONArray();
|
||||
data.add(jo);
|
||||
JSONObject joPost=new JSONObject();
|
||||
joPost.put("data",data);
|
||||
joPost.put("sign",getMklSign());
|
||||
joPost.put("appid",mklAppId);
|
||||
String result= postJson(url,joPost);
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员信息同步
|
||||
* @param json
|
||||
* @param joTeam
|
||||
*/
|
||||
private void callApiPersonSync(JSONObject json, JSONObject joTeam,JSONArray workTypeList) {
|
||||
String url="http://smz.makalu.cc/mkl/api/personSync";
|
||||
JSONObject jo=new JSONObject();
|
||||
String teamLeaderId=json.getString("teamLeaderId");
|
||||
String subcontractorId=joTeam.getString("captainIdcard");
|
||||
String workId=json.getString("workerId");
|
||||
//String jobType=getWorkType(teamLeaderId,subcontractorId,workId);
|
||||
String jobType=json.getString("jobtype");
|
||||
jo.put("projectId",mklPrjId);
|
||||
jo.put("idcardnum",json.getString("idNumber"));
|
||||
jo.put("name",json.getString("name"));
|
||||
jo.put("teamid",joTeam.getIntValue("id"));
|
||||
jo.put("userphone",json.getString("phone"));
|
||||
jo.put("userphoto",json.getString("headImage"));
|
||||
jo.put("enterdate",json.getString("scannerTime"));
|
||||
jo.put("worktypeid",getMKLWorkType(jobType,workTypeList));
|
||||
jo.put("sex","1".equals(json.getString("sex"))?"男":"女");
|
||||
jo.put("nation",json.getString("minor"));
|
||||
jo.put("birthday",json.getString("birthday"));
|
||||
jo.put("address",json.getString("address"));
|
||||
jo.put("organization",workId);
|
||||
jo.put("useStarttime",json.getString("expiryday"));
|
||||
jo.put("useEndtime",json.getString("expiryday"));
|
||||
jo.put("idcardimg",json.getString("idFront"));
|
||||
jo.put("idcardimg2",json.getString("idBack"));
|
||||
jo.put("information_path","");
|
||||
jo.put("signature","");
|
||||
jo.put("sign",getMklSign());
|
||||
jo.put("appid",mklAppId);
|
||||
String result= postJson(url,jo);
|
||||
|
||||
}
|
||||
|
||||
private void callApiclockData(JSONObject json, JSONArray userList) {
|
||||
String url="http://smz.makalu.cc/mkl/api/clockData";
|
||||
JSONObject jo=new JSONObject();
|
||||
String workerId=json.getString("workerId");
|
||||
JSONObject joUser=findUserByWorkId(workerId,userList);
|
||||
if(joUser==null){
|
||||
return;
|
||||
}
|
||||
jo.put("sign",getMklSign());
|
||||
jo.put("appid",mklAppId);
|
||||
jo.put("projectId",mklPrjId);
|
||||
jo.put("user_cardnum",joUser.getString("idcardnum"));
|
||||
jo.put("user_name",joUser.getString("name"));
|
||||
jo.put("ic_num","");
|
||||
jo.put("team_id",joUser.getIntValue("teamid"));
|
||||
jo.put("workscope","");
|
||||
jo.put("equipmentid",json.getString("deviceSerialNo"));
|
||||
jo.put("clockin_type",getSignType(json.getString("signType")));
|
||||
jo.put("clockinTime",json.getString("checkinTime"));
|
||||
jo.put("faceimg",json.getString("signimg"));
|
||||
jo.put("latitude",json.getString("latitude"));
|
||||
jo.put("longitude",json.getString("longitude"));
|
||||
jo.put("unionid",json.getString("attendanceId"));
|
||||
jo.put("address",json.getString("projectCoordinate"));
|
||||
jo.put("recommend","");
|
||||
jo.put("state",json.getString("machineType").equals("3")?"O":"E");
|
||||
|
||||
String result= postJson(url,jo);
|
||||
}
|
||||
|
||||
private String getSignType(String signType) {
|
||||
//01:定位 02:短信 03:NFC 签到 04:二维码;05:考勤机;06:WeChat;07:刷脸签到;08 非活体 00:没有
|
||||
if("01".equals(signType)){
|
||||
return "定位";
|
||||
}
|
||||
if("02".equals(signType)){
|
||||
return "短信";
|
||||
}
|
||||
if("03".equals(signType)){
|
||||
return "NFC 签到";
|
||||
}
|
||||
if("04".equals(signType)){
|
||||
return "二维码";
|
||||
}
|
||||
if("05".equals(signType)){
|
||||
return "考勤机";
|
||||
}
|
||||
if("06".equals(signType)){
|
||||
return "WeChat";
|
||||
}
|
||||
if("07".equals(signType)){
|
||||
return "刷脸签到";
|
||||
}
|
||||
if("08".equals(signType)){
|
||||
return "非活体";
|
||||
}
|
||||
|
||||
return "没有";
|
||||
}
|
||||
|
||||
private JSONObject findUserByWorkId(String workerId, JSONArray userList) {
|
||||
for(int i=0;i<userList.size();i++){
|
||||
JSONObject jo=userList.getJSONObject(i);
|
||||
if(jo.getString("organization").equals(workerId)){
|
||||
return jo;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private int getMKLWorkType(String jobtype, JSONArray workTypeList) {
|
||||
for(int i=0;i<workTypeList.size();i++){
|
||||
JSONObject jo=workTypeList.getJSONObject(i);
|
||||
String wk=jo.getString("workType");
|
||||
if(wk.contains(jobtype)||jobtype.contains(wk)){
|
||||
return jo.getIntValue("id");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
private String getUnitTyeId(String unitId, JSONArray unitList) {
|
||||
for(int i=0;i<unitList.size();i++){
|
||||
JSONObject json=unitList.getJSONObject(i);
|
||||
if(json.getString("id").equals(unitId)){
|
||||
return json.getString("unitTypeid");
|
||||
}
|
||||
}
|
||||
return "12";
|
||||
}
|
||||
|
||||
private int getMklUnitType(String corpType) {
|
||||
if(corpType.equals("001")){
|
||||
return 2;
|
||||
}
|
||||
if(corpType.equals("002")){
|
||||
return 4;
|
||||
}
|
||||
if(corpType.equals("003")){
|
||||
return 5;
|
||||
}
|
||||
if(corpType.equals("004")){
|
||||
return 6;
|
||||
}
|
||||
if(corpType.equals("005")){
|
||||
return 7;
|
||||
}
|
||||
if(corpType.equals("006")){
|
||||
return 3;
|
||||
}
|
||||
if(corpType.equals("007")){
|
||||
return 8;
|
||||
}
|
||||
if(corpType.equals("009")){
|
||||
return 1;
|
||||
}
|
||||
if(corpType.equals("010")){
|
||||
return 10;
|
||||
}
|
||||
if(corpType.equals("011")){
|
||||
return 11;
|
||||
}
|
||||
return 12;
|
||||
}
|
||||
}
|
|
@ -143,7 +143,7 @@ swagger:
|
|||
cas:
|
||||
client-name: CasClientTYPT
|
||||
server:
|
||||
url: http://localhost:8080/cas
|
||||
url: http://62.234.3.186/cas
|
||||
project:
|
||||
url: http://127.0.0.1:9004
|
||||
# helmet文件下载路径路径配置
|
||||
|
|
Loading…
Reference in New Issue