152 lines
7.5 KiB
Java
152 lines
7.5 KiB
Java
|
|
package com.zhgd.xmgl.task;
|
|||
|
|
|
|||
|
|
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
|||
|
|
import com.zhgd.xmgl.modules.project.entity.ProjectExternalSystemService;
|
|||
|
|
import com.zhgd.xmgl.modules.project.mapper.ProjectExternalSystemServiceMapper;
|
|||
|
|
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
|
|||
|
|
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
|||
|
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
|||
|
|
import com.zhgd.xmgl.util.ElecardUtil;
|
|||
|
|
import lombok.extern.log4j.Log4j;
|
|||
|
|
import net.javacrumbs.shedlock.core.SchedulerLock;
|
|||
|
|
import org.apache.commons.lang3.StringUtils;
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|||
|
|
import org.springframework.stereotype.Component;
|
|||
|
|
|
|||
|
|
import java.util.List;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @program: wisdomSite
|
|||
|
|
* @description: 劳务人员定时任务
|
|||
|
|
* @author: Mr.Peng
|
|||
|
|
* @create: 2021-09-10 17:31
|
|||
|
|
**/
|
|||
|
|
@Log4j
|
|||
|
|
@Component
|
|||
|
|
public class WorkerTask {
|
|||
|
|
@Autowired
|
|||
|
|
private ProjectExternalSystemServiceMapper projectExternalSystemServiceMapper;
|
|||
|
|
@Autowired
|
|||
|
|
private WorkerInfoMapper workerInfoMapper;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private INoticeService noticeService;
|
|||
|
|
@Autowired
|
|||
|
|
private IProjectUfaceConfigService projectUfaceConfigService;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 定时修改用户码状态
|
|||
|
|
*/
|
|||
|
|
@SchedulerLock(name = "updateWorkerCode", lockAtMostFor = 1000*60*60, lockAtLeastFor = 1000*60*5)
|
|||
|
|
//@Scheduled(cron = "0 0 4 * * ?")
|
|||
|
|
@Scheduled(cron = "0 0 1 * * ?")
|
|||
|
|
public void updateWorkerCode(){
|
|||
|
|
log.info("------------------------------健康码同步开始-----------------------------------------");
|
|||
|
|
try{
|
|||
|
|
List<ProjectExternalSystemService> list= projectExternalSystemServiceMapper.getChangtongCodeSystemList();
|
|||
|
|
if(list!=null&&list.size()>0){
|
|||
|
|
for (ProjectExternalSystemService projectExternalSystemService:list){
|
|||
|
|
getWorkerCodeState(projectExternalSystemService);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}catch (Exception e){
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
log.info("------------------------------健康码同步结束-----------------------------------------");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void getWorkerCodeState(ProjectExternalSystemService projectExternalSystemService){
|
|||
|
|
try{
|
|||
|
|
List<WorkerInfo> list= workerInfoMapper.selectAllWorkerInfoList(projectExternalSystemService.getProjectSn());
|
|||
|
|
if(list!=null&&list.size()>0){
|
|||
|
|
String token= ElecardUtil.getToken(projectExternalSystemService.getSystemUrl(),projectExternalSystemService.getAppId(),projectExternalSystemService.getAppSecert(),
|
|||
|
|
projectExternalSystemService.getPublicKey(),projectExternalSystemService.getPrivateKey());
|
|||
|
|
if(StringUtils.isNotEmpty(token)){
|
|||
|
|
int redNum=0;
|
|||
|
|
int orangeNum=0;
|
|||
|
|
StringBuilder redWorkerName=new StringBuilder();
|
|||
|
|
StringBuilder orangeWorkerName=new StringBuilder();
|
|||
|
|
for (WorkerInfo workerInfo:list){
|
|||
|
|
log.info("---------------"+workerInfo.getWorkerName());
|
|||
|
|
String enterStatus=ElecardUtil.getCardInfo(projectExternalSystemService.getSystemUrl(),projectExternalSystemService.getAppId(),projectExternalSystemService.getAppSecert(),
|
|||
|
|
projectExternalSystemService.getPublicKey(),projectExternalSystemService.getPrivateKey(),token,workerInfo.getIdCard());
|
|||
|
|
//0 :绿色, 1:黄色 ,2:红色
|
|||
|
|
//红黄码需设备取消授权不允许通行
|
|||
|
|
if(StringUtils.isNotEmpty(enterStatus)){
|
|||
|
|
if("2".equals(enterStatus)){
|
|||
|
|
redNum++;
|
|||
|
|
if(redWorkerName.length()>0){
|
|||
|
|
redWorkerName.append("、");
|
|||
|
|
}
|
|||
|
|
redWorkerName.append(workerInfo.getWorkerName());
|
|||
|
|
//码状态,0无码,1红,2黄,3绿
|
|||
|
|
workerInfo.setCodeState(1);
|
|||
|
|
workerInfo.setUfaceDevId("0");
|
|||
|
|
projectUfaceConfigService.deleteWorkerInfo(workerInfo);
|
|||
|
|
}else if("1".equals(enterStatus)){
|
|||
|
|
orangeNum++;
|
|||
|
|
if(orangeWorkerName.length()>0){
|
|||
|
|
orangeWorkerName.append("、");
|
|||
|
|
}
|
|||
|
|
orangeWorkerName.append(workerInfo.getWorkerName());
|
|||
|
|
workerInfo.setCodeState(2);
|
|||
|
|
workerInfo.setUfaceDevId("0");
|
|||
|
|
projectUfaceConfigService.deleteWorkerInfo(workerInfo);
|
|||
|
|
}else{
|
|||
|
|
workerInfo.setCodeState(3);
|
|||
|
|
}
|
|||
|
|
workerInfoMapper.updateById(workerInfo);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(redNum>0||orangeNum>0){
|
|||
|
|
//String title="今日昌通码核验黄码"+orangeNum+"人,红码"+redNum+"人";
|
|||
|
|
StringBuilder title=new StringBuilder();
|
|||
|
|
title.append("今日昌通码核验黄码").append(orangeNum).append("人,");
|
|||
|
|
if(orangeWorkerName.length()>0){
|
|||
|
|
title.append("分别为:").append(orangeWorkerName.toString()).append(",");
|
|||
|
|
}
|
|||
|
|
title.append("红码").append(redNum).append("人");
|
|||
|
|
if(redWorkerName.length()>0){
|
|||
|
|
title.append("分别为:").append(redWorkerName.toString()).append("。");
|
|||
|
|
}
|
|||
|
|
StringBuilder title2=new StringBuilder();
|
|||
|
|
if(orangeWorkerName.length()>0){
|
|||
|
|
title2.append("黄码人员:").append(orangeWorkerName.toString()).append(",");
|
|||
|
|
}
|
|||
|
|
if(redWorkerName.length()>0){
|
|||
|
|
title2.append("红码人员:").append(redWorkerName.toString()).append("。");
|
|||
|
|
}
|
|||
|
|
title2.append("已销权");
|
|||
|
|
noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(),"红黄码核验",title.toString(),"17");
|
|||
|
|
noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(),"红黄码销权",title2.toString(),"17");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}catch (Exception e){
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*private void sendNoicte(String projectSn,String title,String msg,String type){
|
|||
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
List<SystemUser> systemUserList=systemUserMapper.selectProjectSystemUserList(projectSn);
|
|||
|
|
//向项目管理员和子账号推送通知
|
|||
|
|
if(systemUserList.size()>0){
|
|||
|
|
for (SystemUser systemUser:systemUserList){
|
|||
|
|
addNotice(systemUser.getUserId(),msg,title,sdf.format(new Date()),type);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
private void addNotice(Integer accountId,String msg,String title,String time,String type){
|
|||
|
|
Notice notice = new Notice();
|
|||
|
|
notice.setAccountId(accountId);
|
|||
|
|
notice.setMsg(msg);
|
|||
|
|
notice.setTitle(title);
|
|||
|
|
notice.setSendTime(time);
|
|||
|
|
notice.setType(type);
|
|||
|
|
noticeService.addNotice(notice,true);
|
|||
|
|
}*/
|
|||
|
|
}
|