Commit 751e700f authored by zhangsen's avatar zhangsen

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

parent 07e00d0d
package com.yeejoin.amos.boot.module.jxiop.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum QrcodeColorEnum {
GREEN("绿码", "green"),
RED("红码", "red"),
YELLOW("黄码", "yellow");
private String name;
private String code;
public static String getCode(String name) {
for (QrcodeColorEnum qrcodeColorEnum : QrcodeColorEnum.values()) {
if (qrcodeColorEnum.getName().equals(name)) {
return qrcodeColorEnum.getCode();
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jxiop.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum QrcodePostEnum {
ZZ("站长", "登高证,调度证,高压电工证"),
FZZ("副站长", "登高证,调度证,高压电工证"),
JXBZ("检修班长", "登高证,高压电工证"),
JXY("检修员", "登高证,高压电工证"),
YWZZ("运维值长", "登高证,调度证,高压电工证"),
YWY("运维员", "登高证,调度证,高压电工证"),
CS("厨师", "健康证"),
AQY("安全员", "安全员证"),
SJ("司机", "驾照"),
XFY("消防员", "消防设施操作证");
private String name;
private String code;
public static String getCode(String name) {
for (QrcodePostEnum qrcodePostEnum : QrcodePostEnum.values()) {
if (qrcodePostEnum.getName().equals(name)) {
return qrcodePostEnum.getCode();
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jxiop.api.dto;
import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonCertificate;
import lombok.Data;
import java.util.List;
@Data
public class CertificationInfo {
private List<PersonCertificate> certificationInfo;
}
...@@ -17,7 +17,8 @@ public class PersonDto { ...@@ -17,7 +17,8 @@ public class PersonDto {
private PersonUser personUser; private PersonUser personUser;
//资质信息 //资质信息
private PersonCertificate personCertificate; // private CertificationInfo personCertificate;
private CertificationInfo personCertificate;
//账户信息 //账户信息
private PersonAccount personAccount; private PersonAccount personAccount;
......
...@@ -150,4 +150,9 @@ public class PersonBasic extends BaseEntity { ...@@ -150,4 +150,9 @@ public class PersonBasic extends BaseEntity {
@TableField("post_name") @TableField("post_name")
private String postName; private String postName;
/**
* 岗位
*/
@TableField("qrcode_color")
private String qrcodeColor;
} }
...@@ -11,6 +11,8 @@ import io.swagger.annotations.ApiOperation; ...@@ -11,6 +11,8 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.text.ParseException;
import java.util.List; import java.util.List;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.PersonBasicServiceImpl; import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.PersonBasicServiceImpl;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
...@@ -50,10 +52,9 @@ public class PersonBasicController extends BaseController { ...@@ -50,10 +52,9 @@ public class PersonBasicController extends BaseController {
@ApiOperation(httpMethod = "POST", value = "新增人员基本信息", notes = "新增人员基本信息") @ApiOperation(httpMethod = "POST", value = "新增人员基本信息", notes = "新增人员基本信息")
public ResponseModel<Object> save(@RequestBody PersonDto model,HttpServletRequest httpServletRequest) { public ResponseModel<Object> save(@RequestBody PersonDto model,HttpServletRequest httpServletRequest) {
try { try {
personBasicServiceImpl.addPerson(model,httpServletRequest); personBasicServiceImpl.addPerson(model, httpServletRequest);
}catch (InnerInvokException e){ }catch (InnerInvokException | ParseException e){
e.printStackTrace(); e.printStackTrace();
return this.buildResponseFalse(e.getMessage()); return this.buildResponseFalse(e.getMessage());
} }
...@@ -76,7 +77,7 @@ public class PersonBasicController extends BaseController { ...@@ -76,7 +77,7 @@ public class PersonBasicController extends BaseController {
public ResponseModel<PersonDto> updateBySequenceNbrPersonBasic(@RequestBody PersonDto model,@RequestParam(value = "sequenceNbr") Long sequenceNbr,HttpServletRequest httpServletRequest) { public ResponseModel<PersonDto> updateBySequenceNbrPersonBasic(@RequestBody PersonDto model,@RequestParam(value = "sequenceNbr") Long sequenceNbr,HttpServletRequest httpServletRequest) {
try { try {
personBasicServiceImpl.updatePerson(model,httpServletRequest,sequenceNbr); personBasicServiceImpl.updatePerson(model,httpServletRequest,sequenceNbr);
}catch (InnerInvokException e){ }catch (InnerInvokException | ParseException e){
e.printStackTrace(); e.printStackTrace();
return this.buildResponseFalse(e.getMessage()); return this.buildResponseFalse(e.getMessage());
} }
......
...@@ -2,7 +2,13 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; ...@@ -2,7 +2,13 @@ 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.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.dto.*; import com.yeejoin.amos.boot.module.jxiop.api.dto.*;
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.*; import com.yeejoin.amos.boot.module.jxiop.api.entity.*;
...@@ -17,7 +23,9 @@ import com.yeejoin.amos.feign.privilege.model.CompanyModel; ...@@ -17,7 +23,9 @@ import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel; import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.LoginInfoModel; import com.yeejoin.amos.feign.privilege.model.LoginInfoModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil; import com.yeejoin.amos.feign.privilege.util.DesUtil;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -28,6 +36,7 @@ import org.springframework.stereotype.Service; ...@@ -28,6 +36,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -83,30 +92,68 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -83,30 +92,68 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
* 新增 * 新增
*/ */
@Transactional @Transactional
public void addPerson(PersonDto model, HttpServletRequest httpServletRequest) { public void addPerson(PersonDto model
, HttpServletRequest httpServletRequest
) throws ParseException {
//获取人员基本信息数据 //获取人员基本信息数据
PersonUser personUser = model.getPersonUser(); PersonUser personUser = model.getPersonUser();
//获取人员资质信息
PersonCertificate personCertificate = model.getPersonCertificate();
//获取人员账号信息 //获取人员账号信息
PersonAccount personAccount = model.getPersonAccount(); PersonAccount personAccount = model.getPersonAccount();
personUser.setPhone(personAccount.getPhoneNum()); personUser.setPhone(personAccount.getPhoneNum());
//人员基础信息 //人员基础信息
PersonBasic personBasic = new PersonBasic(); PersonBasic personBasic = new PersonBasic();
BeanUtils.copyProperties(personUser, personBasic); BeanUtils.copyProperties(personUser, personBasic);
//默认红码
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// 该岗位应获得的证书
List<String> list2 = new ArrayList<>();
if (StringUtils.isNotEmpty(personUser.getPostName())) {
String certificates = QrcodePostEnum.getCode(personUser.getPostName());
list2 = Arrays.asList(certificates.split(","));
}
List<String> list = new ArrayList(list2);
//人员资质信息
Integer isInMonth = 0;
Integer isOver = 0;
CertificationInfo personCertificate = model.getPersonCertificate();
for (PersonCertificate item : personCertificate.getCertificationInfo()) {
Date date = DateUtils.dateAddYears(item.getCertificateTime(), Integer.parseInt(item.getValidPeriod()));
if (list.contains(item.getCertificateName()) &&
DateUtils.dateCompare(date, new Date()) == -1) {
isOver = 1;
}
if (list.contains(item.getCertificateName()) &&
DateUtils.dateBetweenIncludeToday(date, new Date()) < 30 &&
DateUtils.dateCompare(date, new Date()) == 1) {
isInMonth = 1;
}
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());
}
this.baseMapper.insert(personBasic); this.baseMapper.insert(personBasic);
personCertificate.getCertificationInfo().forEach(item -> {
item.setPersonId(personBasic.getSequenceNbr());
personCertificateService.save(item);
});
//人员技能学历信息 //人员技能学历信息
PersonSkillEducation personSkillEducation = new PersonSkillEducation(); PersonSkillEducation personSkillEducation = new PersonSkillEducation();
BeanUtils.copyProperties(personUser, personSkillEducation); BeanUtils.copyProperties(personUser, personSkillEducation);
personSkillEducation.setPersonId(personBasic.getSequenceNbr()); personSkillEducation.setPersonId(personBasic.getSequenceNbr());
personSkillEducationService.save(personSkillEducation); personSkillEducationService.save(personSkillEducation);
//人员资质信息
personCertificate.setPersonId(personBasic.getSequenceNbr());
personCertificateService.save(personCertificate);
//人员账号信息 //人员账号信息
personAccount.setPersonId(personBasic.getSequenceNbr()); personAccount.setPersonId(personBasic.getSequenceNbr());
personAccount.setPassword(DesUtil.encode(personAccount.getPassword(), secretKey)); personAccount.setPassword(DesUtil.encode(personAccount.getPassword(), secretKey));
...@@ -184,13 +231,11 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -184,13 +231,11 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
@Transactional @Transactional
public PersonDto updatePerson(PersonDto model, HttpServletRequest httpServletRequest, Long sequenceNbr) { public PersonDto updatePerson(PersonDto model, HttpServletRequest httpServletRequest, Long sequenceNbr) throws ParseException {
//获取人员基本信息数据 //获取人员基本信息数据
PersonUser personUser = model.getPersonUser(); PersonUser personUser = model.getPersonUser();
//获取人员资质信息
PersonCertificate personCertificate = model.getPersonCertificate();
//获取人员账号信息 //获取人员账号信息
PersonAccount personAccount = model.getPersonAccount(); PersonAccount personAccount = model.getPersonAccount();
PersonAccount oldpersonAccount = new PersonAccount(); PersonAccount oldpersonAccount = new PersonAccount();
...@@ -201,7 +246,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -201,7 +246,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
personBasic.setSequenceNbr(sequenceNbr); personBasic.setSequenceNbr(sequenceNbr);
personAccount.setPassword(DesUtil.encode(personAccount.getPassword(), secretKey)); personAccount.setPassword(DesUtil.encode(personAccount.getPassword(), secretKey));
personAccount.setSecondaryPassword(DesUtil.encode(personAccount.getSecondaryPassword(), secretKey)); personAccount.setSecondaryPassword(DesUtil.encode(personAccount.getSecondaryPassword(), secretKey));
this.personBasicMapper.updateById(personBasic);
//人员归属信息 //人员归属信息
PersonSkillEducation personSkillEducation = new PersonSkillEducation(); PersonSkillEducation personSkillEducation = new PersonSkillEducation();
BeanUtils.copyProperties(personUser, personSkillEducation); BeanUtils.copyProperties(personUser, personSkillEducation);
...@@ -209,8 +254,54 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -209,8 +254,54 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
PersonSkillEducation personSkillEducationd = personSkillEducationService.getOne(new QueryWrapper<PersonSkillEducation>().eq("person_id", personBasic.getSequenceNbr())); PersonSkillEducation personSkillEducationd = personSkillEducationService.getOne(new QueryWrapper<PersonSkillEducation>().eq("person_id", personBasic.getSequenceNbr()));
personSkillEducation.setSequenceNbr(personSkillEducationd.getSequenceNbr()); personSkillEducation.setSequenceNbr(personSkillEducationd.getSequenceNbr());
personSkillEducationService.updateById(personSkillEducation); personSkillEducationService.updateById(personSkillEducation);
//获取人员资质信息
CertificationInfo personCertificate = model.getPersonCertificate();
LambdaUpdateWrapper<PersonCertificate> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(PersonCertificate::getPersonId, personBasic.getSequenceNbr());
personCertificateService.remove(wrapper);
//默认红码
personBasic.setQrcodeColor(QrcodeColorEnum.RED.getCode());
// 该岗位应获得的证书
List<String> list2 = new ArrayList<>();
if (StringUtils.isNotEmpty(personUser.getPostName())) {
String certificates = QrcodePostEnum.getCode(personUser.getPostName());
list2 = Arrays.asList(certificates.split(","));
}
List<String> list = new ArrayList(list2);
//人员资质信息 //人员资质信息
personCertificateService.updateById(personCertificate); Integer isInMonth = 0;
Integer isOver = 0;
for (PersonCertificate item : personCertificate.getCertificationInfo()) {
Date date = DateUtils.dateAddYears(item.getCertificateTime(), Integer.parseInt(item.getValidPeriod()));
if (list.contains(item.getCertificateName()) &&
DateUtils.dateCompare(date, new Date()) == -1) {
isOver = 1;
}
if (list.contains(item.getCertificateName()) &&
DateUtils.dateBetweenIncludeToday(date, new Date()) < 30 &&
DateUtils.dateCompare(date, new Date()) == 1) {
isInMonth = 1;
}
item.setPersonId(personBasic.getSequenceNbr());
personCertificateService.save(item);
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());
}
this.personBasicMapper.updateById(personBasic);
//人员账号信息 //人员账号信息
personAccount.setPersonId(sequenceNbr); personAccount.setPersonId(sequenceNbr);
oldpersonAccount=personAccountService.getById(personAccount.getSequenceNbr()); oldpersonAccount=personAccountService.getById(personAccount.getSequenceNbr());
...@@ -293,6 +384,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -293,6 +384,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
QueryWrapper<PersonBasic> wrapper1 = new QueryWrapper(); QueryWrapper<PersonBasic> wrapper1 = new QueryWrapper();
wrapper1.eq("sequence_nbr", sequenceNbr); wrapper1.eq("sequence_nbr", sequenceNbr);
wrapper1.eq("is_delete", 0); wrapper1.eq("is_delete", 0);
//人员基础信息 //人员基础信息
PersonBasic personBasic = this.getOne(wrapper1); PersonBasic personBasic = this.getOne(wrapper1);
BeanUtils.copyProperties(personBasic, personUser); BeanUtils.copyProperties(personBasic, personUser);
...@@ -302,12 +394,12 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -302,12 +394,12 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
PersonSkillEducation personSkillEducation = personSkillEducationService.getOne(wrapper2); PersonSkillEducation personSkillEducation = personSkillEducationService.getOne(wrapper2);
BeanUtils.copyProperties(personSkillEducation, personUser); BeanUtils.copyProperties(personSkillEducation, personUser);
QueryWrapper<PersonCertificate> wrapper3 = new QueryWrapper();
wrapper3.eq("person_id", sequenceNbr);
//人员资质信息 //人员资质信息
PersonCertificate personCertificate = personCertificateService.getOne(wrapper3); LambdaQueryWrapper<PersonCertificate> personCertificateLambdaQueryWrapper = new LambdaQueryWrapper<>();
personCertificateLambdaQueryWrapper.eq(PersonCertificate::getPersonId, sequenceNbr);
List<PersonCertificate> list = personCertificateService.list(personCertificateLambdaQueryWrapper);
CertificationInfo certificationInfo = new CertificationInfo();
certificationInfo.setCertificationInfo(list);
QueryWrapper<PersonAccount> wrapper4 = new QueryWrapper(); QueryWrapper<PersonAccount> wrapper4 = new QueryWrapper();
wrapper4.eq("person_id", sequenceNbr); wrapper4.eq("person_id", sequenceNbr);
...@@ -321,7 +413,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -321,7 +413,7 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
personUser.setNativePlace(JSON.parseArray(personBasic.getNativePlace(), Integer.class)); personUser.setNativePlace(JSON.parseArray(personBasic.getNativePlace(), Integer.class));
} }
personDto.setPersonUser(personUser); personDto.setPersonUser(personUser);
personDto.setPersonCertificate(personCertificate); personDto.setPersonCertificate(certificationInfo);
personDto.setPersonAccount(personAccount); personDto.setPersonAccount(personAccount);
return personDto; return personDto;
} }
......
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