Commit 444ef558 authored by zhangsen's avatar zhangsen

赋码等业务开发

parent b82fd2bc
......@@ -67,7 +67,8 @@ public class PersonYardTimeTask {
@Scheduled(cron = "0 0 0 1/1 * ? ")
// @Scheduled(cron = "0 0 0 1/1 * ? ")
@Scheduled(cron = "0 0/3 * * * ?")
public void timeYardTimeTask() {
if (!redisUtils.hasKey(Constants.JXIOP_DICT_POST) || !redisUtils.hasKey(Constants.JXIOP_DICT_CERTIFICATES)) {
personBasicService.addRedisPostAndCerInfo();
......@@ -135,7 +136,7 @@ public class PersonYardTimeTask {
personBasic.setQrcodeDesc("证书临期");
}
if (!qrcodeDescOld.equals(personBasic.getQrcodeDesc())) {
if (StringUtils.isEmpty(qrcodeDescOld) || !qrcodeDescOld.equals(personBasic.getQrcodeDesc())) {
personBasic.setRecDate(new Date());
personBasicService.updateById(personBasic);
if (("证书不全".equals(personBasic.getQrcodeDesc()) ||
......
spring.application.name=AMOS-JXIOP-BIGSCREEN
spring.application.name=AMOS-JXIOP-BIGSCREEN-ZS
server.servlet.context-path=/jxiop-bigscreen
server.port=33300
server.uri-encoding=UTF-8
......
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodeColorEnum;
import com.yeejoin.amos.boot.module.jxiop.api.dto.BizMessage;
import com.yeejoin.amos.boot.module.jxiop.api.dto.RiskBizInfoVo;
import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonAccount;
import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonBasic;
import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonCertificate;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationQrCodeStatistics;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonAccountMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonCertificateMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationQrCodeStatisticsMapper;
import com.yeejoin.amos.boot.module.jxiop.api.util.Constants;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Component
public class PersonYardTimeTask {
@Autowired
PersonBasicMapper personBasicMapper;
@Autowired
PersonBasicServiceImpl personBasicService;
//人员资质信息service
@Autowired
PersonCertificateMapper personCertificateMapper;
@Autowired
private AmosFeignService amosFeignService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private PersonAccountMapper personAccountMapper;
@Autowired
protected EmqKeeper emqKeeper;
@Autowired
private StationQrCodeStatisticsMapper stationQrCodeStatisticsMapper;
@Autowired
private StationQrCodeStatisticsServiceImpl stationQrCodeStatisticsService;
// @Scheduled(cron = "0 0 0 1/1 * ? ")
// 已迁移至大屏服务
public void timeYardTimeTask() {
if (!redisUtils.hasKey(Constants.JXIOP_DICT_POST) || !redisUtils.hasKey(Constants.JXIOP_DICT_CERTIFICATES)) {
personBasicService.addRedisPostAndCerInfo();
}
// 岗位所需证书信息
Map<String, String> postNameMap = (Map<String, String>) redisUtils.get(Constants.JXIOP_DICT_POST);
// 证书临期信息
Map<String, String> certificatesMap = (Map<String, String>) redisUtils.get(Constants.JXIOP_DICT_CERTIFICATES);
List<PersonBasic> personBasicList = personBasicMapper.selectList(null);
List<PersonCertificate> personCertificates = personCertificateMapper.selectList(null);
List<PersonAccount> personAccounts = personAccountMapper.selectList(null);
Map<Long, PersonAccount> personAccountMap = personAccounts.stream().collect(Collectors.toMap(PersonAccount::getPersonId, t -> t));
Map<Long, List<PersonCertificate>> perCertificateMap = personCertificates.stream().filter(item -> ObjectUtils.isNotEmpty(item.getPersonId())).collect(Collectors.groupingBy(PersonCertificate::getPersonId));
List<PersonBasic> personBasics = new ArrayList<>();
personBasicList.forEach(personBasic -> {
PersonAccount personAccount = personAccountMap.get(personBasic.getSequenceNbr());
List<PersonCertificate> personCertificateList = perCertificateMap.get(personBasic.getSequenceNbr());
//默认红码
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// 该岗位应获得的证书
List<String> list2 = new ArrayList<>();
if (StringUtils.isNotEmpty(personBasic.getPostName())) {
String certificates = String.valueOf(postNameMap.get(personBasic.getPostName()));
if (!StringUtils.isEmpty(certificates)) {
list2 = Arrays.asList(certificates.split(","));
}
}
List<String> list = new ArrayList(list2);
//人员资质信息
Integer isInMonth = 0;
Integer isOver = 0;
if (CollectionUtils.isNotEmpty(personCertificateList)) {
for (PersonCertificate item : personCertificateList) {
int validPeriod = StringUtils.isEmpty(item.getValidPeriod()) ? 3 : Integer.parseInt(item.getValidPeriod());
Date date = DateUtils.dateAddYears(item.getCertificateTime(), validPeriod);
if (list.contains(item.getCertificateName()) &&
DateUtils.dateCompare(date, new Date()) == -1) {
isOver = 1;
}
try {
if (list.contains(item.getCertificateName()) &&
DateUtils.dateBetweenIncludeToday(new Date(), date) < Integer.valueOf(certificatesMap.get(item.getCertificateName())) &&
DateUtils.dateCompare(date, new Date()) == 1) {
isInMonth = 1;
}
} catch (ParseException e) {
e.printStackTrace();
}
list.remove(item.getCertificateName());
}
}
String qrcodeDescOld = personBasic.getQrcodeDesc();
String qrcodeColorOld = personBasic.getQrcodeColor();
if (CollectionUtils.isEmpty(list) && isInMonth == 0 && isOver == 0) {
personBasic.setQrcodeColor(QrcodeColorEnum.GREEN.getCode());
personBasic.setQrcodeDesc("证书齐全");
} else if (CollectionUtils.isEmpty(list) && isOver == 1) {
personBasic.setQrcodeDesc("证书不全");
} else if (CollectionUtils.isEmpty(list) && isOver == 0 && isInMonth == 1) {
personBasic.setQrcodeDesc("证书临期");
}
if (!qrcodeDescOld.equals(personBasic.getQrcodeDesc())) {
personBasic.setRecDate(new Date());
personBasicService.updateById(personBasic);
if (("证书不全".equals(personBasic.getQrcodeDesc()) ||
"证书临期".equals(personBasic.getQrcodeDesc()))) {
BizMessage bizMessage = new BizMessage();
bizMessage.setIndexKey("RYFM");
bizMessage.setIndexValue(personBasic.getPostName() + personBasic.getQrcodeDesc());
RiskBizInfoVo riskBizInfoVo = personBasicService.fetchData(personBasic, personAccount);
bizMessage.setBizInfo(riskBizInfoVo);
try {
emqKeeper.getMqttClient().publish(PersonBasicServiceImpl.RYFM_DATA_MQTT_TOPIC, JSON.toJSONString(bizMessage).getBytes(StandardCharsets.UTF_8), 2, false);
} catch (MqttException e) {
e.printStackTrace();
}
}
} else if ("证书齐全".equals(personBasic.getQrcodeDesc())) {
HashMap<String, String> personMap = new HashMap<>();
personMap.put("objectId", String.valueOf(personBasic.getSequenceNbr()));
personMap.put("qrCodeColor", qrcodeColorOld);
personMap.put("warningObjectType", "RYFM");
personMap.put("sourceAttribution", personBasic.getProjectOrgCode());
personMap.put("sourceAttributionDesc", personAccount.getProjectName());
try {
emqKeeper.getMqttClient().publish(PersonBasicServiceImpl.RYFM_GREEN, JSON.toJSONString(personMap).getBytes(StandardCharsets.UTF_8), 2, false);
} catch (MqttException e) {
e.printStackTrace();
}
}
});
}
// @Scheduled(cron = "0 55 23 1/1 * ? ")
// @Scheduled(cron = "0 0/30 * * * ? ")
// 已迁移至大屏服务
public void stationQrCodeStatisticsData() {
LambdaQueryWrapper<StationQrCodeStatistics> qw = new LambdaQueryWrapper<>();
qw.eq(StationQrCodeStatistics::getRecordDate, DateUtils.getDateNowShortStr());
Integer integer = stationQrCodeStatisticsMapper.selectCount(qw);
if (integer <= 0) {
List<StationQrCodeStatistics> personStatistics = personBasicMapper.getPersonStatistics();
stationQrCodeStatisticsService.saveBatch(personStatistics);
}
}
}
//package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
//
//import com.alibaba.fastjson.JSON;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
//import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
//import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
//import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
//import com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodeColorEnum;
//import com.yeejoin.amos.boot.module.jxiop.api.dto.BizMessage;
//import com.yeejoin.amos.boot.module.jxiop.api.dto.RiskBizInfoVo;
//import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonAccount;
//import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonBasic;
//import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonCertificate;
//import com.yeejoin.amos.boot.module.jxiop.api.entity.StationQrCodeStatistics;
//import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonAccountMapper;
//import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonBasicMapper;
//import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonCertificateMapper;
//import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationQrCodeStatisticsMapper;
//import com.yeejoin.amos.boot.module.jxiop.api.util.Constants;
//import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.eclipse.paho.client.mqttv3.MqttException;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqKeeper;
//
//import java.nio.charset.StandardCharsets;
//import java.text.ParseException;
//import java.util.*;
//import java.util.stream.Collectors;
//
//@Slf4j
//@Component
//public class PersonYardTimeTask {
//
// @Autowired
// PersonBasicMapper personBasicMapper;
//
// @Autowired
// PersonBasicServiceImpl personBasicService;
//
// //人员资质信息service
// @Autowired
// PersonCertificateMapper personCertificateMapper;
//
// @Autowired
// private AmosFeignService amosFeignService;
//
// @Autowired
// private RedisUtils redisUtils;
//
// @Autowired
// private PersonAccountMapper personAccountMapper;
//
// @Autowired
// protected EmqKeeper emqKeeper;
//
// @Autowired
// private StationQrCodeStatisticsMapper stationQrCodeStatisticsMapper;
//
// @Autowired
// private StationQrCodeStatisticsServiceImpl stationQrCodeStatisticsService;
//
//
//
//// @Scheduled(cron = "0 0 0 1/1 * ? ")
//// 已迁移至大屏服务
// public void timeYardTimeTask() {
// if (!redisUtils.hasKey(Constants.JXIOP_DICT_POST) || !redisUtils.hasKey(Constants.JXIOP_DICT_CERTIFICATES)) {
// personBasicService.addRedisPostAndCerInfo();
// }
// // 岗位所需证书信息
// Map<String, String> postNameMap = (Map<String, String>) redisUtils.get(Constants.JXIOP_DICT_POST);
// // 证书临期信息
// Map<String, String> certificatesMap = (Map<String, String>) redisUtils.get(Constants.JXIOP_DICT_CERTIFICATES);
// List<PersonBasic> personBasicList = personBasicMapper.selectList(null);
//
// List<PersonCertificate> personCertificates = personCertificateMapper.selectList(null);
//
// List<PersonAccount> personAccounts = personAccountMapper.selectList(null);
// Map<Long, PersonAccount> personAccountMap = personAccounts.stream().collect(Collectors.toMap(PersonAccount::getPersonId, t -> t));
// Map<Long, List<PersonCertificate>> perCertificateMap = personCertificates.stream().filter(item -> ObjectUtils.isNotEmpty(item.getPersonId())).collect(Collectors.groupingBy(PersonCertificate::getPersonId));
//
// List<PersonBasic> personBasics = new ArrayList<>();
// personBasicList.forEach(personBasic -> {
// PersonAccount personAccount = personAccountMap.get(personBasic.getSequenceNbr());
//
// List<PersonCertificate> personCertificateList = perCertificateMap.get(personBasic.getSequenceNbr());
// //默认红码
// personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// // 该岗位应获得的证书
// List<String> list2 = new ArrayList<>();
// if (StringUtils.isNotEmpty(personBasic.getPostName())) {
// String certificates = String.valueOf(postNameMap.get(personBasic.getPostName()));
// if (!StringUtils.isEmpty(certificates)) {
// list2 = Arrays.asList(certificates.split(","));
// }
// }
// List<String> list = new ArrayList(list2);
// //人员资质信息
// Integer isInMonth = 0;
// Integer isOver = 0;
//
// if (CollectionUtils.isNotEmpty(personCertificateList)) {
// for (PersonCertificate item : personCertificateList) {
// int validPeriod = StringUtils.isEmpty(item.getValidPeriod()) ? 3 : Integer.parseInt(item.getValidPeriod());
// Date date = DateUtils.dateAddYears(item.getCertificateTime(), validPeriod);
// if (list.contains(item.getCertificateName()) &&
// DateUtils.dateCompare(date, new Date()) == -1) {
// isOver = 1;
// }
// try {
// if (list.contains(item.getCertificateName()) &&
// DateUtils.dateBetweenIncludeToday(new Date(), date) < Integer.valueOf(certificatesMap.get(item.getCertificateName())) &&
// DateUtils.dateCompare(date, new Date()) == 1) {
// isInMonth = 1;
// }
// } catch (ParseException e) {
// e.printStackTrace();
// }
// list.remove(item.getCertificateName());
// }
// }
// String qrcodeDescOld = personBasic.getQrcodeDesc();
// String qrcodeColorOld = personBasic.getQrcodeColor();
// if (CollectionUtils.isEmpty(list) && isInMonth == 0 && isOver == 0) {
// personBasic.setQrcodeColor(QrcodeColorEnum.GREEN.getCode());
// personBasic.setQrcodeDesc("证书齐全");
// } else if (CollectionUtils.isEmpty(list) && isOver == 1) {
// personBasic.setQrcodeDesc("证书不全");
// } else if (CollectionUtils.isEmpty(list) && isOver == 0 && isInMonth == 1) {
// personBasic.setQrcodeDesc("证书临期");
// }
//
// if (!qrcodeDescOld.equals(personBasic.getQrcodeDesc())) {
// personBasic.setRecDate(new Date());
// personBasicService.updateById(personBasic);
// if (("证书不全".equals(personBasic.getQrcodeDesc()) ||
// "证书临期".equals(personBasic.getQrcodeDesc()))) {
// BizMessage bizMessage = new BizMessage();
// bizMessage.setIndexKey("RYFM");
// bizMessage.setIndexValue(personBasic.getPostName() + personBasic.getQrcodeDesc());
// RiskBizInfoVo riskBizInfoVo = personBasicService.fetchData(personBasic, personAccount);
// bizMessage.setBizInfo(riskBizInfoVo);
// try {
// emqKeeper.getMqttClient().publish(PersonBasicServiceImpl.RYFM_DATA_MQTT_TOPIC, JSON.toJSONString(bizMessage).getBytes(StandardCharsets.UTF_8), 2, false);
// } catch (MqttException e) {
// e.printStackTrace();
// }
// }
// } else if ("证书齐全".equals(personBasic.getQrcodeDesc())) {
// HashMap<String, String> personMap = new HashMap<>();
// personMap.put("objectId", String.valueOf(personBasic.getSequenceNbr()));
// personMap.put("qrCodeColor", qrcodeColorOld);
// personMap.put("warningObjectType", "RYFM");
// personMap.put("sourceAttribution", personBasic.getProjectOrgCode());
// personMap.put("sourceAttributionDesc", personAccount.getProjectName());
// try {
// emqKeeper.getMqttClient().publish(PersonBasicServiceImpl.RYFM_GREEN, JSON.toJSONString(personMap).getBytes(StandardCharsets.UTF_8), 2, false);
// } catch (MqttException e) {
// e.printStackTrace();
// }
// }
// });
// }
//
//
//// @Scheduled(cron = "0 55 23 1/1 * ? ")
//// @Scheduled(cron = "0 0/30 * * * ? ")
// // 已迁移至大屏服务
// public void stationQrCodeStatisticsData() {
// LambdaQueryWrapper<StationQrCodeStatistics> qw = new LambdaQueryWrapper<>();
// qw.eq(StationQrCodeStatistics::getRecordDate, DateUtils.getDateNowShortStr());
// Integer integer = stationQrCodeStatisticsMapper.selectCount(qw);
// if (integer <= 0) {
// List<StationQrCodeStatistics> personStatistics = personBasicMapper.getPersonStatistics();
// stationQrCodeStatisticsService.saveBatch(personStatistics);
// }
// }
//
//
//}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment