package com.zhgd.xmgl.async; import com.zhgd.xmgl.call.HikvisionCall; 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.basicdata.service.INoticeService; import com.zhgd.xmgl.modules.car.entity.CarInfo; 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 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; @Autowired HikvisionCall hikvisionCall; /** * 批量数据发送任务 * * @param map */ @Async("sendWorkerExecutor") public void sendBatchWorkerInfo(Map map) { try { List 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 map, ProjectUfaceConfig projectUfaceConfig, List devList) { try { List 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(); } } }