199 lines
6.6 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.async;
import com.zhgd.xmgl.call.HousingDataCall;
import com.zhgd.xmgl.call.WkServiceuCall;
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @program: wisdomSite
* @description: 异步人员任务
* @author: Mr.Peng
* @create: 2021-07-05 11:50
**/
@Slf4j
@Component
public class AsyncWorker {
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Autowired
private HousingDataCall housingDataCall;
@Autowired
private INoticeService noticeService;
@Autowired
private IProjectUfaceConfigService projectUfaceConfigService;
@Autowired
private WkServiceuCall wkServiceuCall;
/**
* 批量数据发送任务
* @param map
*/
@Async("sendWorkerExecutor")
public void sendBatchWorkerInfo(Map<String,Object> map) {
try {
List<WorkerInfo> list=workerInfoMapper.selectSendWorkerList(map);
if(list.size()>0){
for (WorkerInfo info:list){
housingDataCall.sendAddWork(info.getProjectSn(),info);
}
}
log.info("--------------------------------批量发送人员信息执行完成-------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 批量数据发送任务
* @param
*/
@Async("sendWorkerExecutor")
public void sendBatchWokerDev(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig,List<UfaceDev> devList) {
try {
List<WorkerInfo> list=workerInfoMapper.selectProjectWorkerInfoList(map);
if(list.size()>0){
for (WorkerInfo info:list){
projectUfaceConfigService.sendBatchWorkerInfo(info,projectUfaceConfig,devList);
}
}
Long userId=MapUtils.getLong(map,"userId");
if(userId!=null) {
java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Notice notice = new Notice();
notice.setAccountId(userId);
notice.setMsg("已经完成批量向设备下发" + list.size() + "个人");
notice.setTitle("人员批量下发设备提醒");
notice.setSendTime(format1.format(new Date()));
notice.setType("1");
noticeService.addNotice(notice, true);
}
log.info("--------------------------------批量向设备下发人员执行完成-------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 单个人员数据发送任务
* @param info
*/
@Async("sendWorkerExecutor")
public void sendWorkerInfoById(WorkerInfo info) {
try {
housingDataCall.sendAddWork(info.getProjectSn(),info);
log.info("--------------------------------单个发送人员信息执行完成-------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 人员退场异步任务
* @param info 1 删除2退场
*/
@Async("sendExitWorkerExecutor")
public void sendExitWorkById(WorkerInfo info,Integer type) {
try {
housingDataCall.sendExitWork(info.getProjectSn(),info);
log.info("--------------------------------单个发送人员退场执行完成-------------------------------");
if(type==1) {
//万科退场
wkServiceuCall.removeWork(info.getProjectSn(), info);
}else{
wkServiceuCall.sendAddWork(info.getProjectSn(), info);
}
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 班组编辑或修改
* @param
*/
@Async("sendWorkerExecutor")
public void sendAddOrUpdateTeam(TeamInfo teamInfo, DepartmentInfo departmentInfo,Integer type) {
try {
if(type==1) {
housingDataCall.sendAddOrUpdateTeam(teamInfo.getProjectSn(), teamInfo.getId());
//向万科平台发送数据
wkServiceuCall.sendAddDepartmentGroup(teamInfo,null,1,teamInfo.getProjectSn());
}else{
//向万科平台发送数据
wkServiceuCall.sendAddDepartmentGroup(null,departmentInfo,2,teamInfo.getProjectSn());
}
//log.info("--------------------------------单个发送班组执行完成-------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 向外部上传设备
* @param
*/
@Async("sendWorkerExecutor")
public void saveUfaceDev(UfaceDev ufaceDev) {
try {
//向万科上传人脸设备
wkServiceuCall.sentAddUfaceDev(ufaceDev);
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 单个人员数据发送任务
* @param info
*/
@Async("sendWorkerExecutor")
public void sendAndOrEditWorkerInfo(WorkerInfo info) {
try {
wkServiceuCall.sendAddWork(info.getProjectSn(),info);
log.info("--------------------------------单个发送人员信息执行完成-------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 添加企业
* @param enterpriseInfo
*/
@Async("sendWorkerExecutor")
public void addEnterpriseInfo(EnterpriseInfo enterpriseInfo) {
try {
wkServiceuCall.addEnterpriseInfo(enterpriseInfo);
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 解除企业绑定
* @param projectEnterprise
*/
@Async("sendWorkerExecutor")
public void removeEnterpriseInfo(ProjectEnterprise projectEnterprise) {
try {
wkServiceuCall.removeEnterpriseInfo(projectEnterprise);
}catch (Exception e){
e.printStackTrace();
}
}
}