Commit 444ef558 authored by zhangsen's avatar zhangsen

赋码等业务开发

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