update code
parent
9c7a500916
commit
936d499927
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="attendance-config-dialog">
|
<div class="attendance-config-dialog">
|
||||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
|
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="项目名称" prop="projectId">
|
<el-form-item label="项目名称" prop="projectId">
|
||||||
<el-select v-if="mode != 'edit'" v-model="form.projectId" placeholder="请选择项目" clearable
|
<el-select v-if="mode != 'edit'" v-model="form.projectId" placeholder="请选择项目" clearable
|
||||||
@change="doQueryFormSub">
|
@change="doQueryFormSub">
|
||||||
|
@ -62,6 +62,11 @@
|
||||||
<el-form-item label="租户ID" prop="appTenantId">
|
<el-form-item label="租户ID" prop="appTenantId">
|
||||||
<el-input v-model="form.appTenantId" placeholder="请输租户ID" clearable />
|
<el-input v-model="form.appTenantId" placeholder="请输租户ID" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</template>
|
||||||
|
<template v-if="form.vendorsCode=='jgw'">
|
||||||
|
<el-form-item label="项目经理手机" prop="phone">
|
||||||
|
<el-input v-model="form.phone" placeholder="项目经理手机" clearable />
|
||||||
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<el-form-item label="是否启用" prop="enabled">
|
<el-form-item label="是否启用" prop="enabled">
|
||||||
<el-radio-group v-model="form.enabled">
|
<el-radio-group v-model="form.enabled">
|
||||||
|
@ -96,6 +101,7 @@ export default {
|
||||||
vendorsCode:'gld',
|
vendorsCode:'gld',
|
||||||
appProjectId: '',
|
appProjectId: '',
|
||||||
appTenantId:'',
|
appTenantId:'',
|
||||||
|
phone:'',
|
||||||
enabled: 0
|
enabled: 0
|
||||||
},
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
|
@ -135,6 +141,7 @@ export default {
|
||||||
this.form.secret="";
|
this.form.secret="";
|
||||||
this.form.appProjectId="";
|
this.form.appProjectId="";
|
||||||
this.form.appTenantId="";
|
this.form.appTenantId="";
|
||||||
|
this.form.phone="";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -145,6 +152,7 @@ export default {
|
||||||
this.form.secret="";
|
this.form.secret="";
|
||||||
this.form.appProjectId="";
|
this.form.appProjectId="";
|
||||||
this.form.appTenantId="";
|
this.form.appTenantId="";
|
||||||
|
this.form.phone="";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
|
@ -156,6 +164,7 @@ export default {
|
||||||
secret: this.form.secret,
|
secret: this.form.secret,
|
||||||
projectId: this.form.appProjectId,
|
projectId: this.form.appProjectId,
|
||||||
tenantId:this.form.appTenantId,
|
tenantId:this.form.appTenantId,
|
||||||
|
phone:this.form.phone
|
||||||
};
|
};
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: this.form.projectId,
|
projectId: this.form.projectId,
|
||||||
|
@ -230,6 +239,7 @@ export default {
|
||||||
vendorsCode:'gld',
|
vendorsCode:'gld',
|
||||||
appProjectId: '',
|
appProjectId: '',
|
||||||
appTenantId:'',
|
appTenantId:'',
|
||||||
|
phone:'',
|
||||||
enabled: 0
|
enabled: 0
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
|
@ -244,6 +254,16 @@ export default {
|
||||||
appProjectId: [{ required: true, trigger: "blur", message: "请输入" }],
|
appProjectId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
enabled: [{ required: true, trigger: "blur", message: "请选择" }]
|
enabled: [{ required: true, trigger: "blur", message: "请选择" }]
|
||||||
}
|
}
|
||||||
|
}else if(this.form.vendorsCode=='jgw'){
|
||||||
|
this.rules = {
|
||||||
|
projectId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
subDeptId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
appId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
secret: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
appProjectId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
enabled: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
phone: [{ required: true, trigger: "blur", message: "输入" }]
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
this.rules = {
|
this.rules = {
|
||||||
projectId: [{ required: true, trigger: "blur", message: "请选择" }],
|
projectId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
@ -292,6 +312,7 @@ export default {
|
||||||
obj.secret = p.secret || '',
|
obj.secret = p.secret || '',
|
||||||
obj.appProjectId = p.projectId || '';
|
obj.appProjectId = p.projectId || '';
|
||||||
obj.appTenantId=p.tenantId||'';
|
obj.appTenantId=p.tenantId||'';
|
||||||
|
obj.phone=p.phone||'';
|
||||||
this.form = obj;
|
this.form = obj;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改劳务实名制配置";
|
this.title = "修改劳务实名制配置";
|
||||||
|
|
|
@ -123,16 +123,22 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
||||||
return g;
|
return g;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SurProjectAttendanceGroup createJgw(JSONObject j) {
|
public static SurProjectAttendanceGroup createJgw(JSONObject j,boolean isDirectlyUnder) {
|
||||||
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
|
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
|
||||||
g.serverid=j.getString("id");
|
g.serverid=j.getString("id");
|
||||||
g.companyId=j.getString("subcontractorId");
|
if(isDirectlyUnder) {
|
||||||
|
g.companyId = j.getString("leaderTeamId");
|
||||||
|
g.leaderPhone="directly";
|
||||||
|
}else{
|
||||||
|
g.companyId=j.getString("subcontractorId");
|
||||||
|
}
|
||||||
g.companyName=j.getString("corpName");
|
g.companyName=j.getString("corpName");
|
||||||
g.teamName=j.getString("teamName");
|
g.teamName=j.getString("teamName");
|
||||||
|
|
||||||
g.bizLicense=j.getString("corpCode");
|
g.bizLicense=j.getString("corpCode");
|
||||||
g.companyCode=j.getString("teamJobtype");
|
g.companyCode=j.getString("teamJobtype");
|
||||||
|
|
||||||
g.companyTypeId="";
|
g.companyTypeId="0";
|
||||||
g.enterDate=0l;
|
g.enterDate=0l;
|
||||||
g.exitDate=0l;
|
g.exitDate=0l;
|
||||||
g.isDel=0l;
|
g.isDel=0l;
|
||||||
|
|
|
@ -196,7 +196,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
||||||
u.companyId=""+j.getLongValue("unitId",0);
|
u.companyId=""+j.getLongValue("unitId",0);
|
||||||
u.companyName=j.getString("unitName");
|
u.companyName=j.getString("unitName");
|
||||||
u.teamName=j.getString("teamName");
|
u.teamName=j.getString("teamName");
|
||||||
u.other=j.toJSONString();
|
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,7 +231,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
||||||
u.companyId=j.getString("subcontractorId");
|
u.companyId=j.getString("subcontractorId");
|
||||||
u.companyName="";
|
u.companyName="";
|
||||||
u.teamName="";
|
u.teamName="";
|
||||||
u.other=j.toJSONString();
|
|
||||||
u.isDel=0l;
|
u.isDel=0l;
|
||||||
JSONArray ja=j.getJSONArray("corpName");
|
JSONArray ja=j.getJSONArray("corpName");
|
||||||
if(ja!=null && ja.size()>0){
|
if(ja!=null && ja.size()>0){
|
||||||
|
@ -348,7 +346,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
||||||
u.teamId=json.getInteger("teamId");
|
u.teamId=json.getInteger("teamId");
|
||||||
u.teamName=json.getString("teamName");
|
u.teamName=json.getString("teamName");
|
||||||
u.enterType=json.getString("enterType");
|
u.enterType=json.getString("enterType");
|
||||||
u.other=json.toJSONString();
|
|
||||||
u.isDel=0l;
|
u.isDel=0l;
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
@ -188,6 +189,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
||||||
if(StrUtil.isEmpty(photo)){
|
if(StrUtil.isEmpty(photo)){
|
||||||
photo=user.getRecentPhoto();
|
photo=user.getRecentPhoto();
|
||||||
}
|
}
|
||||||
|
|
||||||
sdata.setWorkerPhoto(photo);
|
sdata.setWorkerPhoto(photo);
|
||||||
sdata.setWorkerGender(user.getGender());;
|
sdata.setWorkerGender(user.getGender());;
|
||||||
sdata.setGroupName(user.getGroupName());
|
sdata.setGroupName(user.getGroupName());
|
||||||
|
@ -196,6 +198,9 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
||||||
sdata.setNativePlace(user.getNativePlace());
|
sdata.setNativePlace(user.getNativePlace());
|
||||||
sdata.setPhone(user.getPhone());
|
sdata.setPhone(user.getPhone());
|
||||||
sdata.setSpecWorkType(user.getSpecWorkType());
|
sdata.setSpecWorkType(user.getSpecWorkType());
|
||||||
|
if("jgw".equals(sdata.getVendorsCode())) {
|
||||||
|
sdata.setCompanyId(user.getCompanyId());
|
||||||
|
}
|
||||||
//查询分组信息
|
//查询分组信息
|
||||||
SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup();
|
SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup();
|
||||||
groupWhere.setCfgid(sdata.getCfgid());
|
groupWhere.setCfgid(sdata.getCfgid());
|
||||||
|
@ -215,6 +220,8 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
||||||
if("jgw".equals(sdata.getVendorsCode())){
|
if("jgw".equals(sdata.getVendorsCode())){
|
||||||
//sdata.setWorkTypeName(group.getCompanyCode());
|
//sdata.setWorkTypeName(group.getCompanyCode());
|
||||||
sdata.setCompanyName(user.getCompanyName());
|
sdata.setCompanyName(user.getCompanyName());
|
||||||
|
sdata.setWorkTypeName(user.getWorkTypeName());
|
||||||
|
//sdata.setCompanyName(group.getCompanyName());
|
||||||
sdata.setGroupName(group.getTeamName());
|
sdata.setGroupName(group.getTeamName());
|
||||||
}
|
}
|
||||||
//查询项目部门信息
|
//查询项目部门信息
|
||||||
|
@ -236,7 +243,35 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
||||||
}else{
|
}else{
|
||||||
sdata.setId(list.get(0).getId());
|
sdata.setId(list.get(0).getId());
|
||||||
SurProjectAttendanceData upData=list.get(0);
|
SurProjectAttendanceData upData=list.get(0);
|
||||||
upData.setAttendanceOutTime(sdata.getAttendanceTime());
|
String dt1=upData.getAttendanceTime(); //
|
||||||
|
String dt2=upData.getAttendanceOutTime();
|
||||||
|
String dt3=sdata.getAttendanceTime();
|
||||||
|
if (StrUtil.isEmpty(dt3)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
long time3=DateUtil.parse(dt3).getTime();
|
||||||
|
if(StrUtil.isEmpty(dt2)){
|
||||||
|
upData.setAttendanceOutTime(dt3);
|
||||||
|
//比较 dt1,dt2 进行交换
|
||||||
|
long time2=DateUtil.parse(dt3).getTime();
|
||||||
|
long time1=DateUtil.parse(dt1).getTime();
|
||||||
|
if(time1>time2){
|
||||||
|
upData.setAttendanceTime(dt3);
|
||||||
|
upData.setAttendanceOutTime(dt1);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
long time2=DateUtil.parse(dt2).getTime();
|
||||||
|
long time1=DateUtil.parse(dt1).getTime();
|
||||||
|
//比较 dt3<dt1 in->dt3
|
||||||
|
if(time3<time1){
|
||||||
|
upData.setAttendanceTime(dt3);
|
||||||
|
}
|
||||||
|
//比较 dt3>dt2 out->dt3
|
||||||
|
if(time3>time2){
|
||||||
|
upData.setAttendanceOutTime(dt3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//upData.setAttendanceOutTime(sdata.getAttendanceTime());
|
||||||
updateSurProjectAttendanceData(upData);
|
updateSurProjectAttendanceData(upData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,7 @@ import org.apache.logging.log4j.util.Strings;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Component("attendanceJgwTask")
|
@Component("attendanceJgwTask")
|
||||||
|
@ -111,18 +108,128 @@ public class AttendanceJgwTask {
|
||||||
String appid="6a6f24fe35b04ee0bcf31cfb46ed1051";
|
String appid="6a6f24fe35b04ee0bcf31cfb46ed1051";
|
||||||
String secret="c3h5enh4MjAyNHN1Yw==";
|
String secret="c3h5enh4MjAyNHN1Yw==";
|
||||||
String prjId="db955e11ef774e63968a47c3dc2acc15";//"b67f1baa6dca4558a16bf90a4681b82e";//
|
String prjId="db955e11ef774e63968a47c3dc2acc15";//"b67f1baa6dca4558a16bf90a4681b82e";//
|
||||||
|
String phone="18171295380";
|
||||||
String token= getToken(appid,secret);
|
String token= getToken(appid,secret);
|
||||||
if(token==null || token.length()==0){
|
if(token==null || token.length()==0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
System.out.println(token);
|
System.out.println(token);
|
||||||
System.out.println(DateUtil.format(DateTime.now(),"yyyy-MM-dd"));
|
System.out.println(DateUtil.format(DateTime.now(),"yyyy-MM-dd"));
|
||||||
findAddWorkerByProject(appid,token,prjId,0);
|
String subcontractorId=new AttendanceJgwTask().getSubcontractor(appid,token,phone);
|
||||||
|
String leaderTeamId="a643aaf5fdeb4c8fb0d8c7307881ce97";
|
||||||
|
System.out.println(subcontractorId);
|
||||||
|
findWorkerByLeader(appid,token,leaderTeamId);
|
||||||
|
//findDirectlyUnderTeam(appid,token,prjId,subcontractorId,0);
|
||||||
|
//queryProject(appid,token,phone,0);;
|
||||||
|
//findAddWorkerByProject(appid,token,prjId,0);
|
||||||
//findAttendanceByProject(appid,token,prjId);
|
//findAttendanceByProject(appid,token,prjId);
|
||||||
//findTeamByProjectId(appid,token,prjId);
|
//findTeamByProjectId(appid,token,prjId);
|
||||||
//findProContractorByProjectId(appid,token,prjId);
|
//findProContractorByProjectId(appid,token,prjId);
|
||||||
//getJobTypeData(appid,token,"0");
|
//getJobTypeData(appid,token,"0");
|
||||||
}
|
}
|
||||||
|
public static void findDirectlyUnderTeam(String appId,String token,String projectId,String subcontractorId,int rowId){
|
||||||
|
String path="/webapi/project/findDirectlyUnderTeam";
|
||||||
|
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("projectId",projectId);
|
||||||
|
params.put("subcontractorId",subcontractorId);
|
||||||
|
params.put("rowId",rowId);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
System.out.println(data);
|
||||||
|
JSONObject j= JSON.parseObject(data);
|
||||||
|
JSONObject jd=j.getJSONObject("data");
|
||||||
|
JSONArray arr=jd.getJSONArray("teamList");
|
||||||
|
if(arr.size()>0){
|
||||||
|
for(int i=0;i<arr.size();i++){
|
||||||
|
JSONObject jo=arr.getJSONObject(i);
|
||||||
|
System.out.println("-->"+jo.getString("teamName"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void queryProject(String appId,String token,String phone,int rowId){
|
||||||
|
|
||||||
|
String path="/webapi/project/queryProject";
|
||||||
|
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("account",phone);
|
||||||
|
params.put("rowId",rowId);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
System.out.println(data);
|
||||||
|
JSONObject j= JSON.parseObject(data);
|
||||||
|
JSONObject jd=j.getJSONObject("data");
|
||||||
|
JSONArray arr=jd.getJSONArray("projectList");
|
||||||
|
if(arr.size()>0){
|
||||||
|
JSONObject jo=arr.getJSONObject(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public String getSubcontractor(String appId,String token,String phone){
|
||||||
|
String ckey = "attendance_jgw_Subcontractor_" + phone;
|
||||||
|
if(redisCache!=null) {
|
||||||
|
Object obj = redisCache.getCacheObject(ckey);
|
||||||
|
if(obj!=null){
|
||||||
|
String str=(String)obj;
|
||||||
|
if(StrUtil.isNotEmpty(str)){
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
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");
|
||||||
|
if(StrUtil.isNotEmpty(tmp) && redisCache!=null){
|
||||||
|
redisCache.setCacheObject(ckey, tmp, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.DAYS);
|
||||||
|
return tmp;
|
||||||
|
}else{
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
public static HashMap<String,String> getJobTypeData(String appId,String token,String type){
|
public static HashMap<String,String> getJobTypeData(String appId,String token,String type){
|
||||||
String path="/webapi/dictInfo/getJobTypeData";
|
String path="/webapi/dictInfo/getJobTypeData";
|
||||||
String time = System.currentTimeMillis() + "";
|
String time = System.currentTimeMillis() + "";
|
||||||
|
@ -218,6 +325,30 @@ public class AttendanceJgwTask {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void findWorkerByLeader(String appId,String token,String leaderTeamId){
|
||||||
|
String path="/webapi/project/findWorkerByLeader";
|
||||||
|
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("leaderTeamId",leaderTeamId);
|
||||||
|
url=host+path;
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
JSONObject j= JSON.parseObject(data);
|
||||||
|
JSONObject jd=j.getJSONObject("data");
|
||||||
|
JSONArray arr=jd.getJSONArray("recordList");
|
||||||
|
JSONObject jo=arr.getJSONObject(0);
|
||||||
|
}
|
||||||
public static void findProContractorByProjectId(String appId,String token,String projectId){
|
public static void findProContractorByProjectId(String appId,String token,String projectId){
|
||||||
String path="/webapi/project/findProContractorByProjectId";
|
String path="/webapi/project/findProContractorByProjectId";
|
||||||
String time = System.currentTimeMillis() + "";
|
String time = System.currentTimeMillis() + "";
|
||||||
|
@ -244,7 +375,7 @@ public class AttendanceJgwTask {
|
||||||
if(arr.size()>0){
|
if(arr.size()>0){
|
||||||
for(int i=0;i<arr.size();i++){
|
for(int i=0;i<arr.size();i++){
|
||||||
JSONObject json=arr.getJSONObject(i);
|
JSONObject json=arr.getJSONObject(i);
|
||||||
SurProjectAttendanceGroup group=new SurProjectAttendanceGroup();
|
System.out.println("-->"+json.getString("teamName"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -274,7 +405,7 @@ public class AttendanceJgwTask {
|
||||||
if(arr.size()>0){
|
if(arr.size()>0){
|
||||||
for(int i=0;i<arr.size();i++){
|
for(int i=0;i<arr.size();i++){
|
||||||
JSONObject json=arr.getJSONObject(i);
|
JSONObject json=arr.getJSONObject(i);
|
||||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,false);
|
||||||
group.setBizLicense(json.getString("corpCode"));
|
group.setBizLicense(json.getString("corpCode"));
|
||||||
String type=json.getString("corpType");
|
String type=json.getString("corpType");
|
||||||
if("009".equals(type)){ //总包人员
|
if("009".equals(type)){ //总包人员
|
||||||
|
@ -322,7 +453,7 @@ public class AttendanceJgwTask {
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||||
if(user.getWorkerId().equals("5bdc967decea43a3a894c0a15fde8d46")){
|
if(user.getName().equals("李文国")){
|
||||||
String k=user.getName();
|
String k=user.getName();
|
||||||
JSONArray arr2= json.getJSONArray("corpName");
|
JSONArray arr2= json.getJSONArray("corpName");
|
||||||
Object o=arr2.get(0);
|
Object o=arr2.get(0);
|
||||||
|
@ -361,6 +492,80 @@ public class AttendanceJgwTask {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步群组和人的关系
|
||||||
|
*/
|
||||||
|
public void syncWorkerByLeader(){
|
||||||
|
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
|
||||||
|
where.setEnabled(1l);
|
||||||
|
where.setIsDel(0l);
|
||||||
|
where.setVendorsCode("jgw");
|
||||||
|
List<SurProjectAttendanceCfg> list=attendanceCfgService.selectSurProjectAttendanceCfgList(where);
|
||||||
|
for(SurProjectAttendanceCfg it :list){
|
||||||
|
String param= it.getVendorsParameter();
|
||||||
|
if(Strings.isNotEmpty(param)){
|
||||||
|
try{
|
||||||
|
JSONObject jo=JSON.parseObject(param);
|
||||||
|
String appId=jo.getString("appId");
|
||||||
|
String secret=jo.getString("secret");
|
||||||
|
secret=Base64.encode(secret);
|
||||||
|
jo.put("secret",secret);
|
||||||
|
String token= getToken(appId,secret);
|
||||||
|
jo.put("token",token);
|
||||||
|
SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup();
|
||||||
|
groupWhere.setCfgid(it.getId());
|
||||||
|
groupWhere.setLeaderPhone("directly");
|
||||||
|
List<SurProjectAttendanceGroup> groupList=attendanceGroupService.selectSurProjectAttendanceGroupList(groupWhere);
|
||||||
|
for(SurProjectAttendanceGroup g:groupList) {
|
||||||
|
jo.put("leaderTeamId",g.getCompanyId());
|
||||||
|
dosyncWorkerByLeader(jo, 0l, it);
|
||||||
|
}
|
||||||
|
}catch (Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dosyncWorkerByLeader(JSONObject jo, long startId, SurProjectAttendanceCfg it){
|
||||||
|
String appId=jo.getString("appId");
|
||||||
|
String token=jo.getString("token");
|
||||||
|
String path="/webapi/project/findWorkerByLeader";
|
||||||
|
String time = System.currentTimeMillis() + "";
|
||||||
|
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||||
|
String leaderTeamId=jo.getString("leaderTeamId");
|
||||||
|
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);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
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");
|
||||||
|
SurProjectAttendanceUser userWhere=new SurProjectAttendanceUser();
|
||||||
|
userWhere.setWorkerId(workerId);
|
||||||
|
userWhere.setCfgid(it.getId());
|
||||||
|
List<SurProjectAttendanceUser> userList=attendanceUserService.selectSurProjectAttendanceUserList(userWhere);
|
||||||
|
if(userList.size()>0){
|
||||||
|
SurProjectAttendanceUser upUser=userList.get(0);
|
||||||
|
upUser.setCompanyId(json.getString("leaderTeamId"));
|
||||||
|
upUser.setWorkTypeName(json.getString("jobType"));
|
||||||
|
attendanceUserService.updateSurProjectAttendanceUser(upUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
private void doSyncWorker(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
private void doSyncWorker(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
||||||
String appId=jo.getString("appId");
|
String appId=jo.getString("appId");
|
||||||
String token=jo.getString("token");
|
String token=jo.getString("token");
|
||||||
|
@ -391,7 +596,6 @@ public class AttendanceJgwTask {
|
||||||
JSONObject json=arr.getJSONObject(i);
|
JSONObject json=arr.getJSONObject(i);
|
||||||
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||||
user.setVendorsCode(it.getVendorsCode());
|
user.setVendorsCode(it.getVendorsCode());
|
||||||
|
|
||||||
user.setCfgid(it.getId());
|
user.setCfgid(it.getId());
|
||||||
user.setAppId(appId);
|
user.setAppId(appId);
|
||||||
attendanceUserService.add(user);
|
attendanceUserService.add(user);
|
||||||
|
@ -421,6 +625,7 @@ public class AttendanceJgwTask {
|
||||||
String token= getToken(appId,secret);
|
String token= getToken(appId,secret);
|
||||||
jo.put("token",token);
|
jo.put("token",token);
|
||||||
doSyncGroup(jo,0l,it);
|
doSyncGroup(jo,0l,it);
|
||||||
|
doSyncDirectlyUnderGroup(jo,0l,it);
|
||||||
doSyncProContractor(jo,0l,it);
|
doSyncProContractor(jo,0l,it);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
@ -465,7 +670,7 @@ public class AttendanceJgwTask {
|
||||||
for(int i=0;i<arr.size();i++){
|
for(int i=0;i<arr.size();i++){
|
||||||
JSONObject json=arr.getJSONObject(i);
|
JSONObject json=arr.getJSONObject(i);
|
||||||
rowId=json.getLong("id");
|
rowId=json.getLong("id");
|
||||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,true);
|
||||||
group.setBizLicense(json.getString("corpCode"));
|
group.setBizLicense(json.getString("corpCode"));
|
||||||
String type=json.getString("corpType");
|
String type=json.getString("corpType");
|
||||||
if("009".equals(type)){ //总包人员
|
if("009".equals(type)){ //总包人员
|
||||||
|
@ -474,6 +679,8 @@ public class AttendanceJgwTask {
|
||||||
group.setCompanyTypeId("8");
|
group.setCompanyTypeId("8");
|
||||||
}else if("006".equals(type)){//劳务人员
|
}else if("006".equals(type)){//劳务人员
|
||||||
group.setCompanyTypeId("2");
|
group.setCompanyTypeId("2");
|
||||||
|
}else{
|
||||||
|
group.setCompanyTypeId("0");
|
||||||
}
|
}
|
||||||
if(StrUtil.isNotEmpty(group.getCompanyTypeId())){
|
if(StrUtil.isNotEmpty(group.getCompanyTypeId())){
|
||||||
attendanceGroupService.updateJgw(group);
|
attendanceGroupService.updateJgw(group);
|
||||||
|
@ -485,6 +692,61 @@ public class AttendanceJgwTask {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询班组直隶
|
||||||
|
* @param jo
|
||||||
|
* @param startId
|
||||||
|
* @param it
|
||||||
|
*/
|
||||||
|
private void doSyncDirectlyUnderGroup(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
||||||
|
String appId=jo.getString("appId");
|
||||||
|
String token=jo.getString("token");
|
||||||
|
String projectId=jo.getString("projectId");
|
||||||
|
String phone=jo.getString("phone");
|
||||||
|
String subcontractorId=getSubcontractor(appId,token,phone);
|
||||||
|
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);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(host+path)
|
||||||
|
.post(toFormBody(params))
|
||||||
|
.build();
|
||||||
|
String data=AttendanceTask.getResult(request);
|
||||||
|
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);
|
||||||
|
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,true);
|
||||||
|
group.setCfgid(it.getId());
|
||||||
|
group.setAppId(appId);
|
||||||
|
rowId=json.getLong("id");
|
||||||
|
SurProjectAttendanceGroup where=new SurProjectAttendanceGroup();
|
||||||
|
where.setCompanyId(group.getCompanyId());
|
||||||
|
where.setCfgid(group.getCfgid());
|
||||||
|
List<SurProjectAttendanceGroup> list=attendanceGroupService.selectSurProjectAttendanceGroupList(where);
|
||||||
|
if(list.size()==0){
|
||||||
|
attendanceGroupService.add(group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(rowId>0){
|
||||||
|
doSyncGroup(jo,rowId+1,it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询班组
|
* 查询班组
|
||||||
* @param jo
|
* @param jo
|
||||||
|
@ -520,11 +782,17 @@ public class AttendanceJgwTask {
|
||||||
long rowId=0;
|
long rowId=0;
|
||||||
for(int i=0;i<arr.size();i++){
|
for(int i=0;i<arr.size();i++){
|
||||||
JSONObject json=arr.getJSONObject(i);
|
JSONObject json=arr.getJSONObject(i);
|
||||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,false);
|
||||||
group.setCfgid(it.getId());
|
group.setCfgid(it.getId());
|
||||||
group.setAppId(appId);
|
group.setAppId(appId);
|
||||||
rowId=json.getLong("id");
|
rowId=json.getLong("id");
|
||||||
attendanceGroupService.add(group);
|
SurProjectAttendanceGroup where=new SurProjectAttendanceGroup();
|
||||||
|
where.setCompanyId(group.getCompanyId());
|
||||||
|
where.setCfgid(group.getCfgid());
|
||||||
|
List<SurProjectAttendanceGroup> list=attendanceGroupService.selectSurProjectAttendanceGroupList(where);
|
||||||
|
if(list.size()==0){
|
||||||
|
attendanceGroupService.add(group);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(rowId>0){
|
if(rowId>0){
|
||||||
doSyncGroup(jo,rowId+1,it);
|
doSyncGroup(jo,rowId+1,it);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.yanzhu.jh.project.task;
|
package com.yanzhu.jh.project.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
@ -214,6 +215,7 @@ public class AttendanceTask {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void main(String[] args){
|
public static void main(String[] args){
|
||||||
|
|
||||||
System.out.println("-------1--------->AttendanceUserTask.syncWorker");
|
System.out.println("-------1--------->AttendanceUserTask.syncWorker");
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("projectId", "824959117494784");
|
params.put("projectId", "824959117494784");
|
||||||
|
|
Loading…
Reference in New Issue