update code

dev_xds
haha 2023-09-25 00:32:36 +08:00
parent eba10b7cb7
commit e0f32fb7df
14 changed files with 495 additions and 27 deletions

View File

@ -133,7 +133,7 @@ public class Constants
/** /**
* 访 * 访
*/ */
public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" }; public static final String[] JOB_WHITELIST_STR = { "com.ruoyi","com.yanzhu.jh"};
/** /**
* *

View File

@ -77,6 +77,15 @@ public class SurProjectAttendanceCfgController extends BaseController
@PostMapping @PostMapping
public AjaxResult add(@RequestBody SurProjectAttendanceCfg surProjectAttendanceCfg) public AjaxResult add(@RequestBody SurProjectAttendanceCfg surProjectAttendanceCfg)
{ {
SurProjectAttendanceCfg where=new SurProjectAttendanceCfg();
where.setProjectId(surProjectAttendanceCfg.getProjectId());
where.setSubDeptId(surProjectAttendanceCfg.getSubDeptId());
where.setVendorsCode(surProjectAttendanceCfg.getVendorsCode());
List<SurProjectAttendanceCfg> list=surProjectAttendanceCfgService.selectSurProjectAttendanceCfgList(where);
if(list.size()>0){
SurProjectAttendanceCfg it=list.get(0);
return AjaxResult.error("项目【"+it.getProjectName()+"】总包单位【"+it.getUnitName()+"】已添加过此厂商【"+it.getVendorName()+"】的配置了!");
}
return toAjax(surProjectAttendanceCfgService.insertSurProjectAttendanceCfg(surProjectAttendanceCfg)); return toAjax(surProjectAttendanceCfgService.insertSurProjectAttendanceCfg(surProjectAttendanceCfg));
} }

View File

@ -42,6 +42,36 @@ public class SurProjectAttendanceCfg extends BaseEntity
@Excel(name = "状态") @Excel(name = "状态")
private Long state; private Long state;
private String projectName;
private String unitName;
private String vendorName;
public String getVendorName() {
return vendorName;
}
public void setVendorName(String vendorName) {
this.vendorName = vendorName;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
/** $column.columnComment */ /** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDel; private Long isDel;

View File

@ -1,5 +1,6 @@
package com.yanzhu.jh.project.domain; package com.yanzhu.jh.project.domain;
import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@ -15,13 +16,21 @@ public class SurProjectAttendanceData extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /** */
private Long id; private Long id;
/** 配置项ID,可以获取项目ID和总包ID */
@Excel(name = "配置项ID,可以获取项目ID和总包ID")
private Long cfgid;
/** 厂商编号参考字典attendance_vendors */ /** 厂商编号参考字典attendance_vendors */
@Excel(name = "厂商编号参考字典attendance_vendors") @Excel(name = "厂商编号参考字典attendance_vendors")
private String vendorsCode; private String vendorsCode;
/** 服务端ID */
@Excel(name = "服务端ID")
private Long serverid;
/** 工人Id */ /** 工人Id */
@Excel(name = "工人Id") @Excel(name = "工人Id")
private Long workerId; private Long workerId;
@ -34,6 +43,30 @@ public class SurProjectAttendanceData extends BaseEntity
@Excel(name = "考勤时间yyyy-MM-dd HH:mm:ss") @Excel(name = "考勤时间yyyy-MM-dd HH:mm:ss")
private String attendanceTime; private String attendanceTime;
/** 身份证号 */
@Excel(name = "身份证号")
private String identification;
/** 队伍id */
@Excel(name = "队伍id")
private Long teamId;
/** 工种编码 */
@Excel(name = "工种编码")
private String workTypeCode;
/** 分包商id */
@Excel(name = "分包商id")
private Long companyId;
/** 平台对应分包商ID */
@Excel(name = "平台对应分包商ID")
private Long vendorId;
/** 新旧系统项目标识0新系统项目 1旧系统项目 */
@Excel(name = "新旧系统项目标识0新系统项目 1旧系统项目")
private Long projectType;
/** 设备编号 */ /** 设备编号 */
@Excel(name = "设备编号") @Excel(name = "设备编号")
private String deviceCode; private String deviceCode;
@ -42,18 +75,43 @@ public class SurProjectAttendanceData extends BaseEntity
@Excel(name = "作业面Id") @Excel(name = "作业面Id")
private String workPointId; private String workPointId;
/** 照片 */
@Excel(name = "照片")
private String scanPhoto;
/** 服务返回的JSON */ /** 服务返回的JSON */
@Excel(name = "服务返回的JSON") @Excel(name = "服务返回的JSON")
private String other; private String other;
/** $column.columnComment */ /** */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @Excel(name = "")
private Long state; private Long state;
/** $column.columnComment */ /** */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @Excel(name = "")
private Long isDel; private Long isDel;
public static SurProjectAttendanceData create(JSONObject json) {
SurProjectAttendanceData d=new SurProjectAttendanceData();
d.attendanceTime=json.getString("time");
d.attendanceType=json.getString("type");
d.serverid=json.getLong("id");
d.workerId=json.getLong("workerId");
d.identification=json.getString("identification");
d.teamId=json.getLong("teamId");
d.workTypeCode=json.getString("workTypeCode");
d.companyId=json.getLong("companyId");
d.vendorId=json.getLong("vendorId");
d.projectType=json.getLong("projectType");
d.deviceCode=json.getString("deviceCode");
d.workPointId=json.getString("workPointId");
d.scanPhoto=json.getString("scanPhoto");
//d.other=json.toJSONString();
d.state=0l;
d.isDel=0l;
return d;
}
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -63,6 +121,15 @@ public class SurProjectAttendanceData extends BaseEntity
{ {
return id; return id;
} }
public void setCfgid(Long cfgid)
{
this.cfgid = cfgid;
}
public Long getCfgid()
{
return cfgid;
}
public void setVendorsCode(String vendorsCode) public void setVendorsCode(String vendorsCode)
{ {
this.vendorsCode = vendorsCode; this.vendorsCode = vendorsCode;
@ -72,6 +139,15 @@ public class SurProjectAttendanceData extends BaseEntity
{ {
return vendorsCode; return vendorsCode;
} }
public void setServerid(Long serverid)
{
this.serverid = serverid;
}
public Long getServerid()
{
return serverid;
}
public void setWorkerId(Long workerId) public void setWorkerId(Long workerId)
{ {
this.workerId = workerId; this.workerId = workerId;
@ -99,6 +175,60 @@ public class SurProjectAttendanceData extends BaseEntity
{ {
return attendanceTime; return attendanceTime;
} }
public void setIdentification(String identification)
{
this.identification = identification;
}
public String getIdentification()
{
return identification;
}
public void setTeamId(Long teamId)
{
this.teamId = teamId;
}
public Long getTeamId()
{
return teamId;
}
public void setWorkTypeCode(String workTypeCode)
{
this.workTypeCode = workTypeCode;
}
public String getWorkTypeCode()
{
return workTypeCode;
}
public void setCompanyId(Long companyId)
{
this.companyId = companyId;
}
public Long getCompanyId()
{
return companyId;
}
public void setVendorId(Long vendorId)
{
this.vendorId = vendorId;
}
public Long getVendorId()
{
return vendorId;
}
public void setProjectType(Long projectType)
{
this.projectType = projectType;
}
public Long getProjectType()
{
return projectType;
}
public void setDeviceCode(String deviceCode) public void setDeviceCode(String deviceCode)
{ {
this.deviceCode = deviceCode; this.deviceCode = deviceCode;
@ -117,6 +247,15 @@ public class SurProjectAttendanceData extends BaseEntity
{ {
return workPointId; return workPointId;
} }
public void setScanPhoto(String scanPhoto)
{
this.scanPhoto = scanPhoto;
}
public String getScanPhoto()
{
return scanPhoto;
}
public void setOther(String other) public void setOther(String other)
{ {
this.other = other; this.other = other;
@ -149,12 +288,21 @@ public class SurProjectAttendanceData extends BaseEntity
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("id", getId())
.append("cfgid", getCfgid())
.append("vendorsCode", getVendorsCode()) .append("vendorsCode", getVendorsCode())
.append("serverid", getServerid())
.append("workerId", getWorkerId()) .append("workerId", getWorkerId())
.append("attendanceType", getAttendanceType()) .append("attendanceType", getAttendanceType())
.append("attendanceTime", getAttendanceTime()) .append("attendanceTime", getAttendanceTime())
.append("identification", getIdentification())
.append("teamId", getTeamId())
.append("workTypeCode", getWorkTypeCode())
.append("companyId", getCompanyId())
.append("vendorId", getVendorId())
.append("projectType", getProjectType())
.append("deviceCode", getDeviceCode()) .append("deviceCode", getDeviceCode())
.append("workPointId", getWorkPointId()) .append("workPointId", getWorkPointId())
.append("scanPhoto", getScanPhoto())
.append("other", getOther()) .append("other", getOther())
.append("state", getState()) .append("state", getState())
.append("remark", getRemark()) .append("remark", getRemark())

View File

@ -1,5 +1,6 @@
package com.yanzhu.jh.project.domain; package com.yanzhu.jh.project.domain;
import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@ -15,9 +16,17 @@ public class SurProjectAttendanceUser extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /** */
private Long id; private Long id;
/** 配置项ID,可以获取项目ID和总包ID */
@Excel(name = "配置项ID,可以获取项目ID和总包ID")
private Long cfgid;
/** 厂商编号参考字典attendance_vendors */
@Excel(name = "厂商编号参考字典attendance_vendors")
private String vendorsCode;
/** 工人id */ /** 工人id */
@Excel(name = "工人id") @Excel(name = "工人id")
private Long workerId; private Long workerId;
@ -138,10 +147,42 @@ public class SurProjectAttendanceUser extends BaseEntity
@Excel(name = "服务返回的JSON") @Excel(name = "服务返回的JSON")
private String other; private String other;
/** $column.columnComment */ /** */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @Excel(name = "")
private Long isDel; private Long isDel;
public static SurProjectAttendanceUser create(JSONObject json) {
SurProjectAttendanceUser u=new SurProjectAttendanceUser();
u.workerId=json.getLong("workerId");
u.laborWorkerId=json.getLong("laborWorkerId");
u.workerCategory=json.getLong("workerCategory");
u.qrCode=json.getLong("qrCode");
u.name=json.getString("name");
u.ethnic=json.getString("ethnic");
u.nativePlace=json.getString("nativePlace");
u.gender=json.getLong("gender");
u.birthDate=json.getLong("birthDate");
u.phone=json.getString("phone");
u.recentPhoto=json.getString("recentPhoto");
u.groupId=json.getLong("groupId");
u.groupName=json.getString("groupName");
u.leader=json.getBoolean("leader")?1:0;
u.workTypeCode=json.getString("workTypeCode");
u.workTypeName=json.getString("workTypeName");
u.specWorkType=json.getBoolean("specWorkType")?1:0;
u.hatCode=json.getString("hatCode");
u.state=json.getLong("state");
u.enterDate=json.getString("enterDate");
u.exitDate=json.getString("exitDate");
u.companyId=json.getLong("companyId");
u.companyName=json.getString("companyName");
u.vendorId=json.getLong("vendorId");
u.teamId=json.getInteger("teamId");
u.teamName=json.getString("teamName");
u.enterType=json.getString("enterType");
u.other=json.toJSONString();
u.isDel=0l;
return u;
}
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -151,6 +192,24 @@ public class SurProjectAttendanceUser extends BaseEntity
{ {
return id; return id;
} }
public void setCfgid(Long cfgid)
{
this.cfgid = cfgid;
}
public Long getCfgid()
{
return cfgid;
}
public void setVendorsCode(String vendorsCode)
{
this.vendorsCode = vendorsCode;
}
public String getVendorsCode()
{
return vendorsCode;
}
public void setWorkerId(Long workerId) public void setWorkerId(Long workerId)
{ {
this.workerId = workerId; this.workerId = workerId;
@ -435,6 +494,8 @@ public class SurProjectAttendanceUser extends BaseEntity
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("id", getId())
.append("cfgid", getCfgid())
.append("vendorsCode", getVendorsCode())
.append("workerId", getWorkerId()) .append("workerId", getWorkerId())
.append("laborWorkerId", getLaborWorkerId()) .append("laborWorkerId", getLaborWorkerId())
.append("workerCategory", getWorkerCategory()) .append("workerCategory", getWorkerCategory())

View File

@ -58,4 +58,6 @@ public interface SurProjectAttendanceDataMapper
* @return * @return
*/ */
public int deleteSurProjectAttendanceDataByIds(Long[] ids); public int deleteSurProjectAttendanceDataByIds(Long[] ids);
public long getLastServerId(SurProjectAttendanceData where);
} }

View File

@ -58,4 +58,8 @@ public interface ISurProjectAttendanceDataService
* @return * @return
*/ */
public int deleteSurProjectAttendanceDataById(Long id); public int deleteSurProjectAttendanceDataById(Long id);
public void add(SurProjectAttendanceData sdata);
public long getLastServerId(SurProjectAttendanceData where);
} }

View File

@ -58,4 +58,6 @@ public interface ISurProjectAttendanceUserService
* @return * @return
*/ */
public int deleteSurProjectAttendanceUserById(Long id); public int deleteSurProjectAttendanceUserById(Long id);
public void add(SurProjectAttendanceUser user);
} }

View File

@ -53,7 +53,8 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
@Override @Override
public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{ {
surProjectAttendanceData.setCreateBy(SecurityUtils.getUsername());
surProjectAttendanceData.setCreateBy("task");
surProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); surProjectAttendanceData.setCreateTime(DateUtils.getNowDate());
return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData); return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData);
} }
@ -67,7 +68,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
@Override @Override
public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{ {
surProjectAttendanceData.setUpdateBy(SecurityUtils.getUsername()); surProjectAttendanceData.setUpdateBy("task");
surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData); return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData);
} }
@ -95,4 +96,24 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
{ {
return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id); return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id);
} }
@Override
public void add(SurProjectAttendanceData sdata) {
SurProjectAttendanceData where=new SurProjectAttendanceData();
where.setVendorsCode(sdata.getVendorsCode());
where.setCfgid(sdata.getCfgid());
where.setServerid(sdata.getServerid());
List<SurProjectAttendanceData> list=selectSurProjectAttendanceDataList(where);
if(list.size()==0){
insertSurProjectAttendanceData(sdata);
}else{
sdata.setId(list.get(0).getId());
updateSurProjectAttendanceData(sdata);
}
}
@Override
public long getLastServerId(SurProjectAttendanceData where) {
return surProjectAttendanceDataMapper.getLastServerId(where);
}
} }

View File

@ -53,7 +53,7 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override @Override
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{ {
surProjectAttendanceUser.setCreateBy(SecurityUtils.getUsername()); surProjectAttendanceUser.setCreateBy("task");
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser); return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser);
} }
@ -67,7 +67,8 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override @Override
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{ {
surProjectAttendanceUser.setUpdateBy(SecurityUtils.getUsername());
surProjectAttendanceUser.setUpdateBy("task");
surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser); return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser);
} }
@ -95,4 +96,18 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
{ {
return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id); return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id);
} }
@Override
public void add(SurProjectAttendanceUser user) {
SurProjectAttendanceUser where=new SurProjectAttendanceUser();
where.setWorkerId(user.getWorkerId());
where.setCfgid(user.getCfgid());
List<SurProjectAttendanceUser> list=selectSurProjectAttendanceUserList(where);
if(list.size()==0){
insertSurProjectAttendanceUser(user);
}else{
user.setId(list.get(0).getId());
updateSurProjectAttendanceUser(user);
}
}
} }

View File

@ -1,12 +1,21 @@
package com.yanzhu.jh.project.task; package com.yanzhu.jh.project.task;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
import com.yanzhu.jh.project.service.ISurProjectAttendanceCfgService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
@ -15,21 +24,47 @@ import java.util.stream.Collectors;
@Component("attendanceTask") @Component("attendanceTask")
public class AttendanceTask { public class AttendanceTask {
//private static final String APP_ID_PARAM_NAME="appid";
//private static final String SIGN_PARAM_NAME="sign";
//private static String appId = "8fba899a21c64be4aa25bf0f3314ad5c";
//private static String appSecret = "426b3d8280620176d80a826eebef3579";
public static void syncWorker(String appid,String secret,String projectld,int page){ @Autowired
ISurProjectAttendanceUserService attendanceUserService;
@Autowired
ISurProjectAttendanceCfgService attendanceCfgService;
@Autowired
ISurProjectAttendanceDataService attendanceDataService;
public void syncWorker(){
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
where.setEnabled(1l);
where.setIsDel(0l);
where.setVendorsCode("gld");
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");
String projectId=jo.getString("projectId");
doSyncWorker(appId,secret,projectId,1,it);
}catch (Exception ex){
ex.printStackTrace();
}
}
}
}
private void doSyncWorker(String appid,String secret,String projectld,int page,SurProjectAttendanceCfg it){
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("projectId", projectld); params.put("projectId", projectld);
params.put("start", "2000-01-01 00:00:00"); params.put("start", "2000-01-01 00:00:00");
params.put("end", "2099-01-01 00:00:00"); params.put("end", "2099-01-01 00:00:00");
params.put("pageNo",""+page); params.put("pageNo",""+page);
params.put("pageSize", "1000"); params.put("pageSize", "1000");
params.put("appid","8fba899a21c64be4aa25bf0f3314ad5c"); params.put("appid",appid);
String sign = getSign(params,secret); String sign = getSign(params,secret);
String host="https://glm.glodon.com/api/open"; String host="https://glm.glodon.com/api/open";
params.put("sign",sign);
String path="/worker/new/allWorkerInfo"; String path="/worker/new/allWorkerInfo";
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(host + path)).newBuilder(); HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(host + path)).newBuilder();
params.forEach((s, o) -> { params.forEach((s, o) -> {
@ -39,14 +74,87 @@ public class AttendanceTask {
.url(urlBuilder.build()) .url(urlBuilder.build())
.build(); .build();
String data=getResult(request); String data=getResult(request);
System.out.println("data:"+data);
JSONObject jo= JSON.parseObject(data); JSONObject jo= JSON.parseObject(data);
JSONArray arr=jo.getJSONArray("data");
if(arr!=null && arr.size()>0){
for(int i=0;i<arr.size();i++){
JSONObject json=arr.getJSONObject(i);
SurProjectAttendanceUser user=SurProjectAttendanceUser.create(json);
user.setVendorsCode(it.getVendorsCode());
user.setCfgid(it.getId());
attendanceUserService.add(user);
}
}
if(arr.size()==1000){
doSyncWorker(appid,secret,projectld,page+1,it);
}
} }
public static void main2(String[] args) { public static void main(String[] args) {
syncWorker("8fba899a21c64be4aa25bf0f3314ad5c","426b3d8280620176d80a826eebef3579","719148569880576",1); //syncWorker("8fba899a21c64be4aa25bf0f3314ad5c","426b3d8280620176d80a826eebef3579","719148569880576",1);
//doSyncAttendanceData("8fba899a21c64be4aa25bf0f3314ad5c","426b3d8280620176d80a826eebef3579","719148569880576",0,null);
} }
public static void main(String[] args){ public void syncAttendanceData(){
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
where.setEnabled(1l);
where.setIsDel(0l);
where.setVendorsCode("gld");
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");
String projectId=jo.getString("projectId");
SurProjectAttendanceData dwhere=new SurProjectAttendanceData();
dwhere.setCfgid(it.getId());
long startId=attendanceDataService.getLastServerId(dwhere);
doSyncAttendanceData(appId,secret,projectId,startId,it);
}catch (Exception ex){
ex.printStackTrace();
}
}
}
}
private void doSyncAttendanceData(String appid,String secret,String projectld,long id,SurProjectAttendanceCfg it){
Map<String, Object> params = new HashMap<>();
params.put("projectId", projectld);
params.put("startId",""+id);
params.put("pageSize", "500");
params.put("appid",appid);
String sign = getSign(params,secret);
String host="https://glm.glodon.com/api/open";
params.put("sign",sign);
String path="/attendance/card";
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(host + path)).newBuilder();
params.forEach((s, o) -> {
urlBuilder.addQueryParameter(s, (String) o);
});
Request request = new Request.Builder()
.url(urlBuilder.build())
.build();
String data=getResult(request);
JSONObject jo= JSON.parseObject(data);
JSONArray arr=jo.getJSONArray("data");
long lastId=0;
if(arr!=null && arr.size()>0){
for(int i=0;i<arr.size();i++){
JSONObject json=arr.getJSONObject(i);
SurProjectAttendanceData sdata=SurProjectAttendanceData.create(json);
lastId=sdata.getServerid();
sdata.setCfgid(it.getId());
sdata.setVendorsCode(it.getVendorsCode());
attendanceDataService.add(sdata);
}
}
System.out.println("-------->"+id+","+lastId);
if(arr.size()==500){
doSyncAttendanceData(appid,secret,projectld,lastId,it);
}
}
public static void main3(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", "719148569880576"); params.put("projectId", "719148569880576");
@ -70,6 +178,7 @@ public class AttendanceTask {
String data=getResult(request); String data=getResult(request);
System.out.println("data:"+data); System.out.println("data:"+data);
JSONObject jo= JSON.parseObject(data); JSONObject jo= JSON.parseObject(data);
} }

View File

@ -18,10 +18,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="projectName" column="projectName"/>
<result property="unitName" column="unitName"/>
<result property="vendorName" column="vendorName"/>
</resultMap> </resultMap>
<sql id="selectSurProjectAttendanceCfgVo"> <sql id="selectSurProjectAttendanceCfgVo">
select id, project_id, sub_dept_id, vendors_code, vendors_parameter, enabled, state, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_cfg select *
from (
SELECT a.*,sp.projectName,pu.unitName,sdd1.dict_label vendorName FROM sur_project_attendance_cfg a
LEFT JOIN sur_project sp ON a.project_id = sp.id
LEFT JOIN sur_project_unit_info pu ON a.sub_dept_id=pu.unitId AND a.project_id=pu.projectId
LEFT JOIN sys_dict_data sdd1 ON sdd1.dict_type = 'attendance_vendors' AND sdd1.dict_value = a.vendors_code
) sur_project_attendance_cfg
</sql> </sql>
<select id="selectSurProjectAttendanceCfgList" parameterType="SurProjectAttendanceCfg" resultMap="SurProjectAttendanceCfgResult"> <select id="selectSurProjectAttendanceCfgList" parameterType="SurProjectAttendanceCfg" resultMap="SurProjectAttendanceCfgResult">

View File

@ -6,12 +6,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SurProjectAttendanceData" id="SurProjectAttendanceDataResult"> <resultMap type="SurProjectAttendanceData" id="SurProjectAttendanceDataResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="cfgid" column="cfgid" />
<result property="vendorsCode" column="vendors_code" /> <result property="vendorsCode" column="vendors_code" />
<result property="serverid" column="serverid" />
<result property="workerId" column="workerId" /> <result property="workerId" column="workerId" />
<result property="attendanceType" column="attendance_type" /> <result property="attendanceType" column="attendance_type" />
<result property="attendanceTime" column="attendance_time" /> <result property="attendanceTime" column="attendance_time" />
<result property="identification" column="identification" />
<result property="teamId" column="teamId" />
<result property="workTypeCode" column="workTypeCode" />
<result property="companyId" column="companyId" />
<result property="vendorId" column="vendorId" />
<result property="projectType" column="projectType" />
<result property="deviceCode" column="device_code" /> <result property="deviceCode" column="device_code" />
<result property="workPointId" column="work_point_id" /> <result property="workPointId" column="work_point_id" />
<result property="scanPhoto" column="scanPhoto" />
<result property="other" column="other" /> <result property="other" column="other" />
<result property="state" column="state" /> <result property="state" column="state" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
@ -23,18 +32,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSurProjectAttendanceDataVo"> <sql id="selectSurProjectAttendanceDataVo">
select id, vendors_code, workerId, attendance_type, attendance_time, device_code, work_point_id, other, state, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_data select id, cfgid, vendors_code, serverid, workerId, attendance_type, attendance_time, identification, teamId, workTypeCode, companyId, vendorId, projectType, device_code, work_point_id, scanPhoto, other, state, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_data
</sql> </sql>
<select id="selectSurProjectAttendanceDataList" parameterType="SurProjectAttendanceData" resultMap="SurProjectAttendanceDataResult"> <select id="selectSurProjectAttendanceDataList" parameterType="SurProjectAttendanceData" resultMap="SurProjectAttendanceDataResult">
<include refid="selectSurProjectAttendanceDataVo"/> <include refid="selectSurProjectAttendanceDataVo"/>
<where> <where>
<if test="cfgid != null "> and cfgid = #{cfgid}</if>
<if test="vendorsCode != null and vendorsCode != ''"> and vendors_code = #{vendorsCode}</if> <if test="vendorsCode != null and vendorsCode != ''"> and vendors_code = #{vendorsCode}</if>
<if test="serverid != null "> and serverid = #{serverid}</if>
<if test="workerId != null "> and workerId = #{workerId}</if> <if test="workerId != null "> and workerId = #{workerId}</if>
<if test="attendanceType != null and attendanceType != ''"> and attendance_type = #{attendanceType}</if> <if test="attendanceType != null and attendanceType != ''"> and attendance_type = #{attendanceType}</if>
<if test="attendanceTime != null and attendanceTime != ''"> and attendance_time = #{attendanceTime}</if> <if test="attendanceTime != null and attendanceTime != ''"> and attendance_time = #{attendanceTime}</if>
<if test="identification != null and identification != ''"> and identification = #{identification}</if>
<if test="teamId != null "> and teamId = #{teamId}</if>
<if test="workTypeCode != null and workTypeCode != ''"> and workTypeCode = #{workTypeCode}</if>
<if test="companyId != null "> and companyId = #{companyId}</if>
<if test="vendorId != null "> and vendorId = #{vendorId}</if>
<if test="projectType != null "> and projectType = #{projectType}</if>
<if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if> <if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if>
<if test="workPointId != null and workPointId != ''"> and work_point_id = #{workPointId}</if> <if test="workPointId != null and workPointId != ''"> and work_point_id = #{workPointId}</if>
<if test="scanPhoto != null and scanPhoto != ''"> and scanPhoto = #{scanPhoto}</if>
<if test="other != null and other != ''"> and other = #{other}</if> <if test="other != null and other != ''"> and other = #{other}</if>
<if test="state != null "> and state = #{state}</if> <if test="state != null "> and state = #{state}</if>
<if test="isDel != null "> and is_del = #{isDel}</if> <if test="isDel != null "> and is_del = #{isDel}</if>
@ -49,12 +67,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertSurProjectAttendanceData" parameterType="SurProjectAttendanceData" useGeneratedKeys="true" keyProperty="id"> <insert id="insertSurProjectAttendanceData" parameterType="SurProjectAttendanceData" useGeneratedKeys="true" keyProperty="id">
insert into sur_project_attendance_data insert into sur_project_attendance_data
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="cfgid != null">cfgid,</if>
<if test="vendorsCode != null">vendors_code,</if> <if test="vendorsCode != null">vendors_code,</if>
<if test="serverid != null">serverid,</if>
<if test="workerId != null">workerId,</if> <if test="workerId != null">workerId,</if>
<if test="attendanceType != null">attendance_type,</if> <if test="attendanceType != null">attendance_type,</if>
<if test="attendanceTime != null">attendance_time,</if> <if test="attendanceTime != null">attendance_time,</if>
<if test="identification != null">identification,</if>
<if test="teamId != null">teamId,</if>
<if test="workTypeCode != null">workTypeCode,</if>
<if test="companyId != null">companyId,</if>
<if test="vendorId != null">vendorId,</if>
<if test="projectType != null">projectType,</if>
<if test="deviceCode != null">device_code,</if> <if test="deviceCode != null">device_code,</if>
<if test="workPointId != null">work_point_id,</if> <if test="workPointId != null">work_point_id,</if>
<if test="scanPhoto != null">scanPhoto,</if>
<if test="other != null">other,</if> <if test="other != null">other,</if>
<if test="state != null">state,</if> <if test="state != null">state,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
@ -65,12 +92,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="cfgid != null">#{cfgid},</if>
<if test="vendorsCode != null">#{vendorsCode},</if> <if test="vendorsCode != null">#{vendorsCode},</if>
<if test="serverid != null">#{serverid},</if>
<if test="workerId != null">#{workerId},</if> <if test="workerId != null">#{workerId},</if>
<if test="attendanceType != null">#{attendanceType},</if> <if test="attendanceType != null">#{attendanceType},</if>
<if test="attendanceTime != null">#{attendanceTime},</if> <if test="attendanceTime != null">#{attendanceTime},</if>
<if test="identification != null">#{identification},</if>
<if test="teamId != null">#{teamId},</if>
<if test="workTypeCode != null">#{workTypeCode},</if>
<if test="companyId != null">#{companyId},</if>
<if test="vendorId != null">#{vendorId},</if>
<if test="projectType != null">#{projectType},</if>
<if test="deviceCode != null">#{deviceCode},</if> <if test="deviceCode != null">#{deviceCode},</if>
<if test="workPointId != null">#{workPointId},</if> <if test="workPointId != null">#{workPointId},</if>
<if test="scanPhoto != null">#{scanPhoto},</if>
<if test="other != null">#{other},</if> <if test="other != null">#{other},</if>
<if test="state != null">#{state},</if> <if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
@ -85,12 +121,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateSurProjectAttendanceData" parameterType="SurProjectAttendanceData"> <update id="updateSurProjectAttendanceData" parameterType="SurProjectAttendanceData">
update sur_project_attendance_data update sur_project_attendance_data
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="cfgid != null">cfgid = #{cfgid},</if>
<if test="vendorsCode != null">vendors_code = #{vendorsCode},</if> <if test="vendorsCode != null">vendors_code = #{vendorsCode},</if>
<if test="serverid != null">serverid = #{serverid},</if>
<if test="workerId != null">workerId = #{workerId},</if> <if test="workerId != null">workerId = #{workerId},</if>
<if test="attendanceType != null">attendance_type = #{attendanceType},</if> <if test="attendanceType != null">attendance_type = #{attendanceType},</if>
<if test="attendanceTime != null">attendance_time = #{attendanceTime},</if> <if test="attendanceTime != null">attendance_time = #{attendanceTime},</if>
<if test="identification != null">identification = #{identification},</if>
<if test="teamId != null">teamId = #{teamId},</if>
<if test="workTypeCode != null">workTypeCode = #{workTypeCode},</if>
<if test="companyId != null">companyId = #{companyId},</if>
<if test="vendorId != null">vendorId = #{vendorId},</if>
<if test="projectType != null">projectType = #{projectType},</if>
<if test="deviceCode != null">device_code = #{deviceCode},</if> <if test="deviceCode != null">device_code = #{deviceCode},</if>
<if test="workPointId != null">work_point_id = #{workPointId},</if> <if test="workPointId != null">work_point_id = #{workPointId},</if>
<if test="scanPhoto != null">scanPhoto = #{scanPhoto},</if>
<if test="other != null">other = #{other},</if> <if test="other != null">other = #{other},</if>
<if test="state != null">state = #{state},</if> <if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
@ -113,4 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="getLastServerId" parameterType="SurProjectAttendanceData" resultType="Long">
SELECT IF(MAX(serverid),MAX(serverid),0) serverid FROM sur_project_attendance_data WHERE cfgid=#{cfgid}
</select>
</mapper> </mapper>

View File

@ -6,6 +6,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SurProjectAttendanceUser" id="SurProjectAttendanceUserResult"> <resultMap type="SurProjectAttendanceUser" id="SurProjectAttendanceUserResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="cfgid" column="cfgid" />
<result property="vendorsCode" column="vendors_code" />
<result property="workerId" column="workerId" /> <result property="workerId" column="workerId" />
<result property="laborWorkerId" column="laborWorkerId" /> <result property="laborWorkerId" column="laborWorkerId" />
<result property="workerCategory" column="workerCategory" /> <result property="workerCategory" column="workerCategory" />
@ -45,12 +47,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSurProjectAttendanceUserVo"> <sql id="selectSurProjectAttendanceUserVo">
select id, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_user select id, cfgid, vendors_code, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_user
</sql> </sql>
<select id="selectSurProjectAttendanceUserList" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult"> <select id="selectSurProjectAttendanceUserList" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult">
<include refid="selectSurProjectAttendanceUserVo"/> <include refid="selectSurProjectAttendanceUserVo"/>
<where> <where>
<if test="cfgid != null "> and cfgid = #{cfgid}</if>
<if test="vendorsCode != null and vendorsCode != ''"> and vendors_code = #{vendorsCode}</if>
<if test="workerId != null "> and workerId = #{workerId}</if> <if test="workerId != null "> and workerId = #{workerId}</if>
<if test="laborWorkerId != null "> and laborWorkerId = #{laborWorkerId}</if> <if test="laborWorkerId != null "> and laborWorkerId = #{laborWorkerId}</if>
<if test="workerCategory != null "> and workerCategory = #{workerCategory}</if> <if test="workerCategory != null "> and workerCategory = #{workerCategory}</if>
@ -93,6 +97,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser" useGeneratedKeys="true" keyProperty="id"> <insert id="insertSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser" useGeneratedKeys="true" keyProperty="id">
insert into sur_project_attendance_user insert into sur_project_attendance_user
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="cfgid != null">cfgid,</if>
<if test="vendorsCode != null">vendors_code,</if>
<if test="workerId != null">workerId,</if> <if test="workerId != null">workerId,</if>
<if test="laborWorkerId != null">laborWorkerId,</if> <if test="laborWorkerId != null">laborWorkerId,</if>
<if test="workerCategory != null">workerCategory,</if> <if test="workerCategory != null">workerCategory,</if>
@ -131,6 +137,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="cfgid != null">#{cfgid},</if>
<if test="vendorsCode != null">#{vendorsCode},</if>
<if test="workerId != null">#{workerId},</if> <if test="workerId != null">#{workerId},</if>
<if test="laborWorkerId != null">#{laborWorkerId},</if> <if test="laborWorkerId != null">#{laborWorkerId},</if>
<if test="workerCategory != null">#{workerCategory},</if> <if test="workerCategory != null">#{workerCategory},</if>
@ -173,6 +181,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser"> <update id="updateSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser">
update sur_project_attendance_user update sur_project_attendance_user
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="cfgid != null">cfgid = #{cfgid},</if>
<if test="vendorsCode != null">vendors_code = #{vendorsCode},</if>
<if test="workerId != null">workerId = #{workerId},</if> <if test="workerId != null">workerId = #{workerId},</if>
<if test="laborWorkerId != null">laborWorkerId = #{laborWorkerId},</if> <if test="laborWorkerId != null">laborWorkerId = #{laborWorkerId},</if>
<if test="workerCategory != null">workerCategory = #{workerCategory},</if> <if test="workerCategory != null">workerCategory = #{workerCategory},</if>