wisdomisite-java/src/main/java/com/zhgd/xmgl/async/AsyncSendAttendance.java

99 lines
3.9 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.async;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.zhgd.mqtt.bean.PushPayload;
import com.zhgd.mqtt.server.IMqttSender;
import com.zhgd.xmgl.call.HousingDataCall;
import com.zhgd.xmgl.call.WkServiceuCall;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper;
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
/**
* @program: wisdomSite
* @description: 异步发送考勤操作
* @author: Mr.Peng
* @create: 2021-06-30 14:51
**/
@Slf4j
@Component
public class AsyncSendAttendance {
@Autowired
private HousingDataCall housingDataCall;
@Autowired
private EnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
private TeamInfoMapper teamInfoMapper;
@Autowired
private DepartmentInfoMapper departmentInfoMapper;
@Autowired
private IMqttSender mqttPushClient;
@Autowired
private IWorkerAttendancePresenceService workerAttendancePresenceService;
@Autowired
private WkServiceuCall wkServiceuCall;
@Async("sendAttendanceExecutor")
public void saveAndSendAttendance(WorkerAttendance workerAttendance, WorkerInfo info){
try {
//计算在场
workerAttendancePresenceService.addWorkerAttendancePresence(workerAttendance);
//上传住建
housingDataCall.sendAddWorkerAttendance(workerAttendance.getProjectSn(),info,workerAttendance);
//向前台发送考勤数据
sendFrontEndNewAttendance(workerAttendance,info);
//判断是否向万科发送考勤
wkServiceuCall.sendAddPassRecord(info,workerAttendance);
}catch (Exception e){
e.printStackTrace();
}
}
private void sendFrontEndNewAttendance(WorkerAttendance workerAttendance, WorkerInfo info) {
try {
JSONObject object= (JSONObject) JSONObject.toJSON(workerAttendance);
object.put("idCard",info.getIdCard());
object.put("workerName",info.getWorkerName());
object.put("fieldAcquisitionUrl",info.getFieldAcquisitionUrl());
EnterpriseInfo enterpriseInfo=enterpriseInfoMapper.selectById(info.getEnterpriseId());
if(enterpriseInfo!=null) {
object.put("enterpriseName", enterpriseInfo.getEnterpriseName());
}else{
object.put("enterpriseName", "");
}
TeamInfo teamInfo=teamInfoMapper.selectById(info.getTeamId());
if(teamInfo!=null) {
object.put("teamName", teamInfo.getTeamName());
}else{
object.put("teamName", "");
}
DepartmentInfo departmentInfo=departmentInfoMapper.selectById(info.getTeamId());
if(departmentInfo!=null) {
object.put("departmentName", departmentInfo.getDepartmentName());
}else{
object.put("departmentName", "");
}
PushPayload pushMessage = PushPayload.getPushPayloadBuider().setAccountId(workerAttendance.getProjectSn())
.setTitle("考勤")
.setContent(JSON.toJSONString(object, SerializerFeature.WriteMapNullValue))
.setType("1")
.setItemType("0")
.bulid();
String kdTopic = "attendance"+workerAttendance.getProjectSn();
mqttPushClient.sendToMqtt(kdTopic, pushMessage.toString());
}catch (Exception e){
e.printStackTrace();
}
}
}