Commit b6be8447 authored by zhangsen's avatar zhangsen

人员红黄码规则部分代码提交

parent bc045e47
package com.yeejoin.amos.boot.module.jxiop.api.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class CertificateDto implements Serializable {
/**
* 证书集合 【逗号隔开】
*/
private String certificates;
/**
* 距过期还有多少天 【已过期的不会出现在这里】
*/
private Integer expirationDays;
}
package com.yeejoin.amos.boot.module.jxiop.api.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PersonYardDto implements Serializable {
/**
* 岗位
*/
private String postName;
/**
* 人员表主键ID
*/
private Long personId;
/**
* 证书信息
*/
private List<CertificateDto> certificateDtoList;
}
......@@ -119,6 +119,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
Integer isOver = 0;
CertificationInfo personCertificate = model.getPersonCertificate();
if (CollectionUtils.isNotEmpty(personCertificate.getCertificationInfo())) {
for (PersonCertificate item : personCertificate.getCertificationInfo()) {
Date date = DateUtils.dateAddYears(item.getCertificateTime(), Integer.parseInt(item.getValidPeriod()));
if (list.contains(item.getCertificateName()) &&
......@@ -132,7 +133,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
}
list.remove(item.getCertificateName());
}
}
if (CollectionUtils.isEmpty(list) && isInMonth == 0 && isOver == 0) {
personBasic.setQrcodeColor(QrcodeColorEnum.GREEN.getCode());
} else if (CollectionUtils.isEmpty(list) && isOver == 1) {
......@@ -274,7 +275,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
//人员资质信息
Integer isInMonth = 0;
Integer isOver = 0;
if (CollectionUtils.isNotEmpty(personCertificate.getCertificationInfo())) {
for (PersonCertificate item : personCertificate.getCertificationInfo()) {
Date date = DateUtils.dateAddYears(item.getCertificateTime(), Integer.parseInt(item.getValidPeriod()));
if (list.contains(item.getCertificateName()) &&
......@@ -291,6 +292,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
personCertificateService.save(item);
list.remove(item.getCertificateName());
}
}
if (CollectionUtils.isEmpty(list) && isInMonth == 0 && isOver == 0) {
personBasic.setQrcodeColor(QrcodeColorEnum.GREEN.getCode());
......
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodeColorEnum;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.QrcodePostEnum;
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.mapper.PersonBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.PersonCertificateMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
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;
@Scheduled(cron = "0 0 0 1/1 * ? ")
public void timeYardTimeTask() {
List<PersonBasic> personBasicList = personBasicMapper.selectList(null);
List<PersonCertificate> personCertificates = personCertificateMapper.selectList(null);
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 -> {
List<PersonCertificate> personCertificateList = perCertificateMap.get(personBasic.getSequenceNbr());
//默认红码
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// 该岗位应获得的证书
List<String> list2 = new ArrayList<>();
if (StringUtils.isNotEmpty(personBasic.getPostName())) {
String certificates = QrcodePostEnum.getCode(personBasic.getPostName());
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) {
Date date = DateUtils.dateAddYears(item.getCertificateTime(), Integer.parseInt(item.getValidPeriod()));
if (list.contains(item.getCertificateName()) &&
DateUtils.dateCompare(date, new Date()) == -1) {
isOver = 1;
}
try {
if (list.contains(item.getCertificateName()) &&
DateUtils.dateBetweenIncludeToday(date, new Date()) < 30 &&
DateUtils.dateCompare(date, new Date()) == 1) {
isInMonth = 1;
}
} catch (ParseException e) {
e.printStackTrace();
}
list.remove(item.getCertificateName());
}
}
if (CollectionUtils.isEmpty(list) && isInMonth == 0 && isOver == 0) {
personBasic.setQrcodeColor(QrcodeColorEnum.GREEN.getCode());
} else if (CollectionUtils.isEmpty(list) && isOver == 1) {
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
} else if (CollectionUtils.isEmpty(list) && isOver == 0 && isInMonth == 1) {
personBasic.setQrcodeColor(QrcodeColorEnum.YELLOW.getCode());
}
personBasics.add(personBasic);
});
personBasicService.updateBatchById(personBasics);
}
}
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