109 lines
4.3 KiB
Java
109 lines
4.3 KiB
Java
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);
|
||
}
|
||
}
|
||
|
||
}
|