wisdomisite-java/src/main/java/com/zhgd/xmgl/async/AsyncSendAttendance.java
2024-04-14 21:05:01 +08:00

109 lines
4.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.govtapi.GovtOpenApiService;
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 com.zhgd.xmgl.util.EnvironmentUtil;
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;
@Autowired
private EnvironmentUtil environmentUtil;
@Autowired
private GovtOpenApiService govtOpenApiService;
@Async("sendAttendanceExecutor")
public void saveAndSendAttendance(WorkerAttendance workerAttendance, WorkerInfo info){
try {
if (environmentUtil.isJlwProd()) {
// 向政务平台发送数据
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
//计算在场
workerAttendancePresenceService.addWorkerAttendancePresence(workerAttendance);
//上传住建
housingDataCall.sendAddWorkerAttendance(workerAttendance.getProjectSn(),info,workerAttendance);
//向前台发送考勤数据
sendFrontEndNewAttendance(workerAttendance,info);
//判断是否向万科发送考勤
wkServiceuCall.sendAddPassRecord(info,workerAttendance);
}catch (Exception e){
log.error("error", e);
}
}
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){
log.error("error", e);
}
}
}