update code
parent
9c7a500916
commit
936d499927
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<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-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-select v-if="mode != 'edit'" v-model="form.projectId" placeholder="请选择项目" clearable
|
||||
@change="doQueryFormSub">
|
||||
|
@ -62,6 +62,11 @@
|
|||
<el-form-item label="租户ID" prop="appTenantId">
|
||||
<el-input v-model="form.appTenantId" placeholder="请输租户ID" clearable />
|
||||
</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>
|
||||
<el-form-item label="是否启用" prop="enabled">
|
||||
<el-radio-group v-model="form.enabled">
|
||||
|
@ -96,6 +101,7 @@ export default {
|
|||
vendorsCode:'gld',
|
||||
appProjectId: '',
|
||||
appTenantId:'',
|
||||
phone:'',
|
||||
enabled: 0
|
||||
},
|
||||
// 表单校验
|
||||
|
@ -135,6 +141,7 @@ export default {
|
|||
this.form.secret="";
|
||||
this.form.appProjectId="";
|
||||
this.form.appTenantId="";
|
||||
this.form.phone="";
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -145,6 +152,7 @@ export default {
|
|||
this.form.secret="";
|
||||
this.form.appProjectId="";
|
||||
this.form.appTenantId="";
|
||||
this.form.phone="";
|
||||
}
|
||||
},
|
||||
/** 提交按钮 */
|
||||
|
@ -156,6 +164,7 @@ export default {
|
|||
secret: this.form.secret,
|
||||
projectId: this.form.appProjectId,
|
||||
tenantId:this.form.appTenantId,
|
||||
phone:this.form.phone
|
||||
};
|
||||
let obj = {
|
||||
projectId: this.form.projectId,
|
||||
|
@ -230,6 +239,7 @@ export default {
|
|||
vendorsCode:'gld',
|
||||
appProjectId: '',
|
||||
appTenantId:'',
|
||||
phone:'',
|
||||
enabled: 0
|
||||
};
|
||||
this.resetForm("form");
|
||||
|
@ -244,6 +254,16 @@ export default {
|
|||
appProjectId: [{ 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{
|
||||
this.rules = {
|
||||
projectId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||
|
@ -292,6 +312,7 @@ export default {
|
|||
obj.secret = p.secret || '',
|
||||
obj.appProjectId = p.projectId || '';
|
||||
obj.appTenantId=p.tenantId||'';
|
||||
obj.phone=p.phone||'';
|
||||
this.form = obj;
|
||||
this.open = true;
|
||||
this.title = "修改劳务实名制配置";
|
||||
|
|
|
@ -123,16 +123,22 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
|||
return g;
|
||||
}
|
||||
|
||||
public static SurProjectAttendanceGroup createJgw(JSONObject j) {
|
||||
public static SurProjectAttendanceGroup createJgw(JSONObject j,boolean isDirectlyUnder) {
|
||||
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
|
||||
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.teamName=j.getString("teamName");
|
||||
|
||||
g.bizLicense=j.getString("corpCode");
|
||||
g.companyCode=j.getString("teamJobtype");
|
||||
|
||||
g.companyTypeId="";
|
||||
g.companyTypeId="0";
|
||||
g.enterDate=0l;
|
||||
g.exitDate=0l;
|
||||
g.isDel=0l;
|
||||
|
|
|
@ -196,7 +196,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
u.companyId=""+j.getLongValue("unitId",0);
|
||||
u.companyName=j.getString("unitName");
|
||||
u.teamName=j.getString("teamName");
|
||||
u.other=j.toJSONString();
|
||||
return u;
|
||||
}
|
||||
|
||||
|
@ -232,7 +231,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
u.companyId=j.getString("subcontractorId");
|
||||
u.companyName="";
|
||||
u.teamName="";
|
||||
u.other=j.toJSONString();
|
||||
u.isDel=0l;
|
||||
JSONArray ja=j.getJSONArray("corpName");
|
||||
if(ja!=null && ja.size()>0){
|
||||
|
@ -348,7 +346,6 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
u.teamId=json.getInteger("teamId");
|
||||
u.teamName=json.getString("teamName");
|
||||
u.enterType=json.getString("enterType");
|
||||
u.other=json.toJSONString();
|
||||
u.isDel=0l;
|
||||
return u;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
|||
import cn.hutool.core.date.DateTime;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
|
@ -188,6 +189,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
if(StrUtil.isEmpty(photo)){
|
||||
photo=user.getRecentPhoto();
|
||||
}
|
||||
|
||||
sdata.setWorkerPhoto(photo);
|
||||
sdata.setWorkerGender(user.getGender());;
|
||||
sdata.setGroupName(user.getGroupName());
|
||||
|
@ -196,6 +198,9 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
sdata.setNativePlace(user.getNativePlace());
|
||||
sdata.setPhone(user.getPhone());
|
||||
sdata.setSpecWorkType(user.getSpecWorkType());
|
||||
if("jgw".equals(sdata.getVendorsCode())) {
|
||||
sdata.setCompanyId(user.getCompanyId());
|
||||
}
|
||||
//查询分组信息
|
||||
SurProjectAttendanceGroup groupWhere=new SurProjectAttendanceGroup();
|
||||
groupWhere.setCfgid(sdata.getCfgid());
|
||||
|
@ -215,6 +220,8 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
if("jgw".equals(sdata.getVendorsCode())){
|
||||
//sdata.setWorkTypeName(group.getCompanyCode());
|
||||
sdata.setCompanyName(user.getCompanyName());
|
||||
sdata.setWorkTypeName(user.getWorkTypeName());
|
||||
//sdata.setCompanyName(group.getCompanyName());
|
||||
sdata.setGroupName(group.getTeamName());
|
||||
}
|
||||
//查询项目部门信息
|
||||
|
@ -236,7 +243,35 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
}else{
|
||||
sdata.setId(list.get(0).getId());
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,10 +30,7 @@ import org.apache.logging.log4j.util.Strings;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component("attendanceJgwTask")
|
||||
|
@ -111,18 +108,128 @@ public class AttendanceJgwTask {
|
|||
String appid="6a6f24fe35b04ee0bcf31cfb46ed1051";
|
||||
String secret="c3h5enh4MjAyNHN1Yw==";
|
||||
String prjId="db955e11ef774e63968a47c3dc2acc15";//"b67f1baa6dca4558a16bf90a4681b82e";//
|
||||
String phone="18171295380";
|
||||
String token= getToken(appid,secret);
|
||||
if(token==null || token.length()==0){
|
||||
return;
|
||||
}
|
||||
System.out.println(token);
|
||||
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);
|
||||
//findTeamByProjectId(appid,token,prjId);
|
||||
//findProContractorByProjectId(appid,token,prjId);
|
||||
//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){
|
||||
String path="/webapi/dictInfo/getJobTypeData";
|
||||
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){
|
||||
String path="/webapi/project/findProContractorByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
|
@ -244,7 +375,7 @@ public class AttendanceJgwTask {
|
|||
if(arr.size()>0){
|
||||
for(int i=0;i<arr.size();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){
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,false);
|
||||
group.setBizLicense(json.getString("corpCode"));
|
||||
String type=json.getString("corpType");
|
||||
if("009".equals(type)){ //总包人员
|
||||
|
@ -322,7 +453,7 @@ public class AttendanceJgwTask {
|
|||
cnt++;
|
||||
}
|
||||
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||
if(user.getWorkerId().equals("5bdc967decea43a3a894c0a15fde8d46")){
|
||||
if(user.getName().equals("李文国")){
|
||||
String k=user.getName();
|
||||
JSONArray arr2= json.getJSONArray("corpName");
|
||||
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) {
|
||||
String appId=jo.getString("appId");
|
||||
String token=jo.getString("token");
|
||||
|
@ -391,7 +596,6 @@ public class AttendanceJgwTask {
|
|||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||
user.setVendorsCode(it.getVendorsCode());
|
||||
|
||||
user.setCfgid(it.getId());
|
||||
user.setAppId(appId);
|
||||
attendanceUserService.add(user);
|
||||
|
@ -421,6 +625,7 @@ public class AttendanceJgwTask {
|
|||
String token= getToken(appId,secret);
|
||||
jo.put("token",token);
|
||||
doSyncGroup(jo,0l,it);
|
||||
doSyncDirectlyUnderGroup(jo,0l,it);
|
||||
doSyncProContractor(jo,0l,it);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
|
@ -465,7 +670,7 @@ public class AttendanceJgwTask {
|
|||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
rowId=json.getLong("id");
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,true);
|
||||
group.setBizLicense(json.getString("corpCode"));
|
||||
String type=json.getString("corpType");
|
||||
if("009".equals(type)){ //总包人员
|
||||
|
@ -474,6 +679,8 @@ public class AttendanceJgwTask {
|
|||
group.setCompanyTypeId("8");
|
||||
}else if("006".equals(type)){//劳务人员
|
||||
group.setCompanyTypeId("2");
|
||||
}else{
|
||||
group.setCompanyTypeId("0");
|
||||
}
|
||||
if(StrUtil.isNotEmpty(group.getCompanyTypeId())){
|
||||
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
|
||||
|
@ -520,11 +782,17 @@ public class AttendanceJgwTask {
|
|||
long rowId=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json,false);
|
||||
group.setCfgid(it.getId());
|
||||
group.setAppId(appId);
|
||||
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){
|
||||
doSyncGroup(jo,rowId+1,it);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.jh.project.task;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
|
@ -214,6 +215,7 @@ public class AttendanceTask {
|
|||
}
|
||||
}
|
||||
public static void main(String[] args){
|
||||
|
||||
System.out.println("-------1--------->AttendanceUserTask.syncWorker");
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("projectId", "824959117494784");
|
||||
|
|
Loading…
Reference in New Issue