dev-tmp1
luotaiqian 2026-08-18 16:35:25 +08:00
parent 32b586d13d
commit 23fa4f5963
4 changed files with 48 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package org.qinan.safetyeval.app.executor;
import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -51,6 +52,8 @@ import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -124,6 +127,8 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
@Override
@Transactional(rollbackFor = Exception.class)
public SingleResponse<OrgPersonnelCO> add(OrgPersonnelAddCmd cmd) {
cmd.setBirthDate(IdcardUtil.getBirthDate(cmd.getIdCardNo()).toLocalDateTime().toLocalDate());
cmd.setJoinWorkDate(resolveJoinWorkDate(cmd.getWorkDateAge(), cmd.getJoinWorkDate()));
OrgPersonnelEntity entity = orgPersonnelConvertor.toEntity(cmd);
OrgPersonnelEntity result = orgPersonnelDomainService.add(entity);
// 组织信息变更,清理该用户机构缓存
@ -162,6 +167,7 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
public SingleResponse<OrgPersonnelCO> get(Long id) {
OrgPersonnelEntity entity = orgPersonnelDomainService.get(id);
OrgPersonnelCO co = orgPersonnelConvertor.toCO(entity);
fillWorkDateAge(co);
enrich(co);
fillCerts(co, id);
return SingleResponse.success(co);
@ -171,6 +177,8 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
@Transactional(rollbackFor = Exception.class)
public SingleResponse<OrgPersonnelCO> modify(OrgPersonnelModifyCmd cmd) {
OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId());
cmd.setBirthDate(IdcardUtil.getBirthDate(cmd.getIdCardNo()).toLocalDateTime().toLocalDate());
cmd.setJoinWorkDate(resolveJoinWorkDate(cmd.getWorkDateAge(), cmd.getJoinWorkDate()));
OrgPersonnelEntity entity = orgPersonnelConvertor.toEntity(cmd);
entity.setId(cmd.getId());
OrgPersonnelEntity result = orgPersonnelDomainService.modify(entity);
@ -337,6 +345,26 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
}
}
/**
* /joinWorkDate = - workDateAge
*/
private LocalDate resolveJoinWorkDate(Integer workDateAge, LocalDate joinWorkDate) {
if (workDateAge != null) {
return LocalDate.now().minusYears(workDateAge);
}
return joinWorkDate;
}
/**
* workDateAge = - joinWorkDate
*/
private void fillWorkDateAge(OrgPersonnelCO co) {
if (co == null || co.getJoinWorkDate() == null) {
return;
}
co.setWorkDateAge((int) ChronoUnit.YEARS.between(co.getJoinWorkDate(), LocalDate.now()));
}
/**
*
*/

View File

@ -40,6 +40,9 @@ public class OrgPersonnelCO {
@ApiModelProperty(value = "出生日期")
private LocalDate birthDate;
@ApiModelProperty(value = "本行业工作年龄")
private Integer workDateAge;
@ApiModelProperty(value = "参加工作日期")
private LocalDate joinWorkDate;

View File

@ -5,6 +5,8 @@ import lombok.Data;
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.time.LocalDate;
@ -37,12 +39,17 @@ public class OrgPersonnelAddCmd {
@ApiModelProperty(value = "出生日期")
private LocalDate birthDate;
@ApiModelProperty(value = "本行业工作年龄")
@NotNull(message = "本行业工作年龄 不能为空")
private Integer workDateAge;
@ApiModelProperty(value = "参加工作日期")
private LocalDate joinWorkDate;
@Pattern(regexp = "^\\d{17}[\\dXx]$", message = "身份证号格式不正确")
@Size(max = 18, message = "身份证号长度不能超过18个字符")
@ApiModelProperty(value = "身份证号")
@NotBlank(message = "身份证号不能为空")
private String idCardNo;
@Size(max = 500, message = "现住地址长度不能超过500个字符")

View File

@ -1,14 +1,16 @@
package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import java.util.List;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import lombok.Data;
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.util.List;
/**
*
*
@ -39,12 +41,16 @@ public class OrgPersonnelModifyCmd {
@ApiModelProperty(value = "出生日期")
private LocalDate birthDate;
@ApiModelProperty(value = "本行业工作年龄")
private Integer workDateAge;
@ApiModelProperty(value = "参加工作日期")
private LocalDate joinWorkDate;
@Pattern(regexp = "^\\d{17}[\\dXx]$", message = "身份证号格式不正确")
@Size(max = 18, message = "身份证号长度不能超过18个字符")
@ApiModelProperty(value = "身份证号")
@NotBlank(message = "身份证号不能为空")
private String idCardNo;
@Size(max = 500, message = "现住地址长度不能超过500个字符")