209 lines
6.9 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;
2024-02-29 09:53:33 +08:00
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
2023-02-16 15:28:15 +08:00
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;
/**
* 批量数据发送任务
2024-02-27 12:53:37 +08:00
*
2023-02-16 15:28:15 +08:00
* @param map
*/
@Async("sendWorkerExecutor")
2024-02-27 12:53:37 +08:00
public void sendBatchWorkerInfo(Map<String, Object> map) {
2023-02-16 15:28:15 +08:00
try {
2024-02-27 12:53:37 +08:00
List<WorkerInfo> list = workerInfoMapper.selectSendWorkerList(map);
if (list.size() > 0) {
for (WorkerInfo info : list) {
housingDataCall.sendAddWork(info.getProjectSn(), info);
2023-02-16 15:28:15 +08:00
}
}
log.info("--------------------------------批量发送人员信息执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 批量数据发送任务
2024-02-27 12:53:37 +08:00
*
2023-02-16 15:28:15 +08:00
* @param
*/
@Async("sendWorkerExecutor")
2024-02-27 12:53:37 +08:00
public void sendBatchWokerDev(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> devList) {
2023-02-16 15:28:15 +08:00
try {
2024-02-27 12:53:37 +08:00
List<WorkerInfo> list = workerInfoMapper.selectProjectWorkerInfoList(map);
if (list.size() > 0) {
for (WorkerInfo info : list) {
2024-03-12 11:26:41 +08:00
try {
projectUfaceConfigService.sendBatchWorkerInfo(info, projectUfaceConfig, devList);
} catch (Exception e) {
log.error("下发人员异常:人员名称:{}", info.getWorkerName());
e.printStackTrace();
}
2023-02-16 15:28:15 +08:00
}
}
2024-02-27 12:53:37 +08:00
Long userId = MapUtils.getLong(map, "userId");
if (userId != null) {
2023-02-16 15:28:15 +08:00
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("--------------------------------批量向设备下发人员执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 单个人员数据发送任务
* @param info
*/
@Async("sendWorkerExecutor")
public void sendWorkerInfoById(WorkerInfo info) {
try {
2024-02-27 12:53:37 +08:00
housingDataCall.sendAddWork(info.getProjectSn(), info);
2023-02-16 15:28:15 +08:00
log.info("--------------------------------单个发送人员信息执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 人员退场异步任务
2024-02-27 12:53:37 +08:00
*
2023-02-16 15:28:15 +08:00
* @param info 1 删除2退场
*/
@Async("sendExitWorkerExecutor")
2024-02-27 12:53:37 +08:00
public void sendExitWorkById(WorkerInfo info, Integer type) {
2023-02-16 15:28:15 +08:00
try {
2024-02-27 12:53:37 +08:00
housingDataCall.sendExitWork(info.getProjectSn(), info);
2023-02-16 15:28:15 +08:00
log.info("--------------------------------单个发送人员退场执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
if (type == 1) {
2023-02-16 15:28:15 +08:00
//万科退场
wkServiceuCall.removeWork(info.getProjectSn(), info);
2024-02-27 12:53:37 +08:00
} else {
2023-02-16 15:28:15 +08:00
wkServiceuCall.sendAddWork(info.getProjectSn(), info);
}
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
2024-02-27 12:53:37 +08:00
2023-02-16 15:28:15 +08:00
/**
* 班组编辑或修改
2024-02-27 12:53:37 +08:00
*
2023-02-16 15:28:15 +08:00
* @param
*/
@Async("sendWorkerExecutor")
2024-02-27 12:53:37 +08:00
public void sendAddOrUpdateTeam(TeamInfo teamInfo, DepartmentInfo departmentInfo, Integer type) {
2023-02-16 15:28:15 +08:00
try {
2024-02-27 12:53:37 +08:00
if (type == 1) {
2023-02-16 15:28:15 +08:00
housingDataCall.sendAddOrUpdateTeam(teamInfo.getProjectSn(), teamInfo.getId());
//向万科平台发送数据
2024-02-27 12:53:37 +08:00
wkServiceuCall.sendAddDepartmentGroup(teamInfo, null, 1, teamInfo.getProjectSn());
} else {
2023-02-16 15:28:15 +08:00
//向万科平台发送数据
2024-02-27 12:53:37 +08:00
wkServiceuCall.sendAddDepartmentGroup(null, departmentInfo, 2, teamInfo.getProjectSn());
2023-02-16 15:28:15 +08:00
}
//log.info("--------------------------------单个发送班组执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 向外部上传设备
* @param
*/
@Async("sendWorkerExecutor")
public void saveUfaceDev(UfaceDev ufaceDev) {
try {
//向万科上传人脸设备
wkServiceuCall.sentAddUfaceDev(ufaceDev);
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 单个人员数据发送任务
* @param info
*/
@Async("sendWorkerExecutor")
public void sendAndOrEditWorkerInfo(WorkerInfo info) {
try {
2024-02-27 12:53:37 +08:00
wkServiceuCall.sendAddWork(info.getProjectSn(), info);
2023-02-16 15:28:15 +08:00
log.info("--------------------------------单个发送人员信息执行完成-------------------------------");
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 添加企业
* @param enterpriseInfo
*/
@Async("sendWorkerExecutor")
public void addEnterpriseInfo(EnterpriseInfo enterpriseInfo) {
try {
wkServiceuCall.addEnterpriseInfo(enterpriseInfo);
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
/**
* 解除企业绑定
* @param projectEnterprise
*/
@Async("sendWorkerExecutor")
public void removeEnterpriseInfo(ProjectEnterprise projectEnterprise) {
try {
wkServiceuCall.removeEnterpriseInfo(projectEnterprise);
2024-02-27 12:53:37 +08:00
} catch (Exception e) {
2023-02-16 15:28:15 +08:00
e.printStackTrace();
}
}
}