update code

dev
lijun 2024-11-02 22:00:18 +08:00
parent 1e59a862ef
commit 7ed645b5d4
2 changed files with 881 additions and 1 deletions

View File

@ -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 +"&timestamp=" + 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+"&timestamp="+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 +"&timestamp=" + 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+"&timestamp="+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 +"&timestamp=" + 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 +"&timestamp=" + 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 +"&timestamp=" + 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 +"&timestamp=" + 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+"&timestamp="+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 +"&timestamp=" + 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 +"&timestamp=" + 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:短信 03NFC 签到 04:二维码05考勤机06WeChat07刷脸签到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;
}
}

View File

@ -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文件下载路径路径配置