diff --git a/src/main/java/com/ydool/staff/controller/PersonnelController.java b/src/main/java/com/ydool/staff/controller/PersonnelController.java index 88a1a86..25211c3 100644 --- a/src/main/java/com/ydool/staff/controller/PersonnelController.java +++ b/src/main/java/com/ydool/staff/controller/PersonnelController.java @@ -88,7 +88,7 @@ public class PersonnelController extends BaseController { @PostMapping(value = "updateChange") @ApiOperation(value = "人员变更") - public AjaxResult updateChange(@RequestBody ChangeRequest request){ + public AjaxResult updateChange(@RequestBody PersonnelUpdateRequest request){ return personnelService.updateChange(request); } diff --git a/src/main/java/com/ydool/staff/dto/ExchangeOneDto.java b/src/main/java/com/ydool/staff/dto/ExchangeOneDto.java index e3ae020..c50b0a4 100644 --- a/src/main/java/com/ydool/staff/dto/ExchangeOneDto.java +++ b/src/main/java/com/ydool/staff/dto/ExchangeOneDto.java @@ -64,5 +64,8 @@ public class ExchangeOneDto { @ApiModelProperty(value = "终审意见") private String finalTrialRemark; + @ApiModelProperty(value = "审批按钮") + private boolean auditBtn = false; + } diff --git a/src/main/java/com/ydool/staff/entity/Audit.java b/src/main/java/com/ydool/staff/entity/Audit.java index 8d79718..670b9c2 100644 --- a/src/main/java/com/ydool/staff/entity/Audit.java +++ b/src/main/java/com/ydool/staff/entity/Audit.java @@ -29,7 +29,7 @@ public class Audit extends BaseEntity{ @ApiModelProperty(value = "人员id") private String personnelId; - @ApiModelProperty(value = "审批类型 :personnel:一般人员 change:变更人员") + @ApiModelProperty(value = "审批类型 :personnel:一般人员 change:变更人员, exchange :人员选调") private String perType; @ApiModelProperty(value = "审批状态:submit:提交 pass:通过 reject:拒绝") diff --git a/src/main/java/com/ydool/staff/entity/SelectRequest.java b/src/main/java/com/ydool/staff/entity/SelectRequest.java index 82a5575..9fb0475 100644 --- a/src/main/java/com/ydool/staff/entity/SelectRequest.java +++ b/src/main/java/com/ydool/staff/entity/SelectRequest.java @@ -74,5 +74,8 @@ public class SelectRequest { @ApiModelProperty(value = "变更表变更标志") private String changeAlterationSign; + @ApiModelProperty(value = "类型:personnel 人员申报,change 变更") + private String type; + } diff --git a/src/main/java/com/ydool/staff/request/ChangeRequest.java b/src/main/java/com/ydool/staff/request/ChangeRequest.java index 5834a61..86b52b3 100644 --- a/src/main/java/com/ydool/staff/request/ChangeRequest.java +++ b/src/main/java/com/ydool/staff/request/ChangeRequest.java @@ -7,6 +7,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; import java.util.List; @@ -51,7 +52,7 @@ public class ChangeRequest { @ApiModelProperty(value = "退休时间") @NotNull(message = "退休时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date retirementTime; + private LocalDate retirementTime; @ApiModelProperty(value = "人员招聘单号") private String recruitNumber; @@ -70,4 +71,8 @@ public class ChangeRequest { @ApiModelProperty(value = "审批资料附件") private List auditFiles; + + @ApiModelProperty(value = "类型:save 保存 ,audit 保存并送审") + private String type; + } diff --git a/src/main/java/com/ydool/staff/request/ExchangeRequest.java b/src/main/java/com/ydool/staff/request/ExchangeRequest.java index 7aa4bde..f8cca15 100644 --- a/src/main/java/com/ydool/staff/request/ExchangeRequest.java +++ b/src/main/java/com/ydool/staff/request/ExchangeRequest.java @@ -39,4 +39,7 @@ public class ExchangeRequest { @ApiModelProperty(value = "选调相关附件") private List attachmentList; + @ApiModelProperty(value = "类型:save 保存 ,audit 保存并送审") + private String type; + } diff --git a/src/main/java/com/ydool/staff/request/PersonnelRequest.java b/src/main/java/com/ydool/staff/request/PersonnelRequest.java index 20ba623..13e61c3 100644 --- a/src/main/java/com/ydool/staff/request/PersonnelRequest.java +++ b/src/main/java/com/ydool/staff/request/PersonnelRequest.java @@ -7,6 +7,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; import java.util.List; @@ -108,6 +109,13 @@ public class PersonnelRequest { @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date hireDate; + @ApiModelProperty(value = "离职时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate resignationTime; + + @ApiModelProperty(value = "退休时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date retirementTime; @ApiModelProperty(value = "退休返聘开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") diff --git a/src/main/java/com/ydool/staff/request/PersonnelUpdateRequest.java b/src/main/java/com/ydool/staff/request/PersonnelUpdateRequest.java index 3daa5b3..e784192 100644 --- a/src/main/java/com/ydool/staff/request/PersonnelUpdateRequest.java +++ b/src/main/java/com/ydool/staff/request/PersonnelUpdateRequest.java @@ -25,9 +25,6 @@ public class PersonnelUpdateRequest { @ApiModelProperty(value = "姓名") private String userName; - @ApiModelProperty(value = "企业名称") - private String companyName; - @ApiModelProperty(value = "性别") private String gender; @@ -65,12 +62,6 @@ public class PersonnelUpdateRequest { @ApiModelProperty(value = "专业技术职称") private String jobTitle; - @ApiModelProperty(value = "所在部门") - private String presentDept; - - @ApiModelProperty(value = "岗位职务") - private String position; - @ApiModelProperty(value = "合同形式") private String contractModality; @@ -113,17 +104,21 @@ public class PersonnelUpdateRequest { private String remark; @ApiModelProperty(value = "身份证附件") - private List cardFile; + private List cardFileList; @ApiModelProperty(value = "聘任证书附件") - private List engageFile; + private List engageFileList; @ApiModelProperty(value = "职称证书附件") - private List jobTitleFile; + private List jobTitleFileList; @ApiModelProperty(value = "学历证书附件") - private List educationFile; + private List educationFileList; @ApiModelProperty(value = "审批资料附件") - private List auditFile; + private List auditFileList; + + @ApiModelProperty(value = "类型:save 保存 ,audit 保存并送审") + private String type; + } diff --git a/src/main/java/com/ydool/staff/service/IPersonnelService.java b/src/main/java/com/ydool/staff/service/IPersonnelService.java index 6cb20ef..f0f557d 100644 --- a/src/main/java/com/ydool/staff/service/IPersonnelService.java +++ b/src/main/java/com/ydool/staff/service/IPersonnelService.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydool.common.data.dto.AjaxResult; import com.ydool.staff.dto.AttachmentDto; import com.ydool.staff.entity.SelectRequest; -import com.ydool.staff.request.ChangeRequest; import com.ydool.staff.request.GiveAuditRequest; import com.ydool.staff.request.PersonnelDeleteRequest; import com.ydool.staff.request.PersonnelRequest; @@ -59,7 +58,7 @@ public interface IPersonnelService { * @param request * @return */ - AjaxResult updateChange(ChangeRequest request); + AjaxResult updateChange(PersonnelUpdateRequest request); void export(PersonnelDeleteRequest param,HttpServletResponse response); diff --git a/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java b/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java index 517600d..77c6e28 100644 --- a/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java +++ b/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java @@ -92,12 +92,14 @@ public class AuditServiceImpl extends BaseService implements @Transactional(rollbackFor = Exception.class) public AjaxResult audit(AuditRequest auditRequest) { String loginId = (String) StpUtil.getLoginId(); + System.out.println("loginId = " + loginId); User loginUser = userMapper.selectById(loginId); Audit one = getOne(new LambdaQueryWrapper() .eq(Audit::getPersonnelId, auditRequest.getPersonnelId()) .eq(Audit::getPerType, auditRequest.getType()) .eq(Audit::getAuditOrder, ArgsConst.WAITING) .eq(Audit::getApprover, loginId)); + System.out.println("one = " + one); if (ObjectUtil.isEmpty(one)) { return AjaxResult.fail().msg("该用户不能审批!"); } @@ -108,38 +110,6 @@ public class AuditServiceImpl extends BaseService implements one.setApproverTime(new Date()); // 同意 if ("2".equals(auditRequest.getStatus())) { - Config director = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_PERSONNEL_DIRECTOR)); - if (loginUser.getLoginName().equals(director.getParamValue())) { - one.setAuditOrder(ArgsConst.FIRST); - one.setAuditState(ArgsConst.PASS); - boolean update = updateById(one); - if (update) { - User user = userMapper.selectOne(new LambdaQueryWrapper() - .eq(User::getLoginName, configMapper.selectOne(new LambdaQueryWrapper() - .eq(Config::getParamKey, ConfigCache.SYS_USER_LEADERSHIP)).getParamValue())); - Audit auditOne = getOne(new LambdaQueryWrapper().eq(Audit::getApprover, user.getId()).eq(Audit::getPerType, auditRequest.getType()).eq(Audit::getPersonnelId, auditRequest.getPersonnelId())); - auditOne.setAuditOrder(ArgsConst.WAITING); - updateById(auditOne); - if (ArgsConst.PERSONNEL.equals(auditRequest.getType()) || ArgsConst.CHANGE.equals(auditRequest.getType())) { - Personnel personnel = personnelMapper.selectById(auditOne.getPersonnelId()); - if (ArgsConst.PERSONNEL.equals(auditRequest.getType())) { - personnel.setAuditState(2); - personnel.setFirstTrialRemark(auditRequest.getAuditOpinion()); - } else if (ArgsConst.CHANGE.equals(auditRequest.getType())) { - personnel.setChangeAuditState(2); - personnel.setFirstTrialRemark(auditRequest.getAuditOpinion()); - } - personnelMapper.updateById(personnel); - } else if (ArgsConst.EXCHANGE.equals(auditRequest.getType())) { - Exchange exchange = exchangeMapper.selectById(auditOne.getPersonnelId()); - exchange.setFirstTrialRemark(auditRequest.getAuditOpinion()); - exchange.setAuditState(2); - exchangeMapper.updateById(exchange); - } - saveAuditLog(auditRequest.getPersonnelId(), loginId, auditRequest.getType(), "一般初审通过", auditRequest.getAuditOpinion()); - } - return update ? AjaxResult.ok().msg("审批成功!") : AjaxResult.fail().msg("审批成功!"); - } Config leadership = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_LEADERSHIP)); if (leadership.getParamValue().equals(loginUser.getLoginName())) { one.setAuditOrder(ArgsConst.LAST); @@ -147,38 +117,57 @@ public class AuditServiceImpl extends BaseService implements boolean update = updateById(one); if (update) { saveAuditLog(auditRequest.getPersonnelId(), loginId, auditRequest.getType(), "一般终审通过", auditRequest.getAuditOpinion()); - - if (ArgsConst.PERSONNEL.equals(auditRequest.getType()) || ArgsConst.CHANGE.equals(auditRequest.getType())) { Personnel personnel = personnelMapper.selectById(auditRequest.getPersonnelId()); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(PersonnelMiddle::getBeforeId, personnel.getId()).eq(PersonnelMiddle::getState, "1"); - if (ArgsConst.PERSONNEL.equals(auditRequest.getType())) { - wrapper.eq(PersonnelMiddle::getType, ArgsConst.PERSONNEL); - } else if (ArgsConst.CHANGE.equals(auditRequest.getType())) { - wrapper.eq(PersonnelMiddle::getType, ArgsConst.CHANGE); - } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(PersonnelMiddle::getBeforeId, personnel.getId()).eq(PersonnelMiddle::getType,auditRequest.getType()) + .eq(PersonnelMiddle::getState, "1"); PersonnelMiddle middle = personnelMiddleMapper.selectOne(wrapper); - Personnel personnelOne = personnelMapper.selectById(middle.getAfterId()); - String id = personnelOne.getId(); - personnelOne.setState("2"); - if (ArgsConst.PERSONNEL.equals(auditRequest.getType())) { - personnelOne.setFinalTrialRemark(auditRequest.getAuditOpinion()); - personnelOne.setWorkState("在职"); - personnelOne.setAlterationSign("2"); - personnelOne.setAuditState(3); + System.out.println("middle = " + middle); + if (ObjectUtil.isNotEmpty(middle)){ + Personnel personnelOne = personnelMapper.selectById(middle.getAfterId()); + personnelOne.setState("2"); + System.out.println("personnelOne = " + personnelOne); + if (ArgsConst.PERSONNEL.equals(auditRequest.getType())) { + + personnelOne.setFinalTrialRemark(auditRequest.getAuditOpinion()); + personnelOne.setAlterationSign("2"); + personnelOne.setAuditState(3); + workFlow(personnel.getCreatedId(),ArgsConst.PERSONNEL,auditRequest.getPersonnelId(),"企业人员申报",true); + } + if (ArgsConst.CHANGE.equals(auditRequest.getType())) { + System.out.println(" =11111111111111 "); + personnelOne.setFinalTrialRemark(auditRequest.getAuditOpinion()); + personnelOne.setChangeAlterationSign("2"); + personnelOne.setChangeAuditState(3); + workFlow(personnel.getCreatedId(),ArgsConst.CHANGE,auditRequest.getPersonnelId(),"人员变更申报",true); + } + String id = personnel.getId(); + String idOne = personnelOne.getId(); + personnelOne.setId(id); + personnel.setId(idOne); + personnel.setState("0"); + middle.setState("0"); + personnelMapper.updateById(personnelOne); + personnelMapper.updateById(personnel); + personnelMiddleMapper.updateById(middle); + }else { + if (ArgsConst.PERSONNEL.equals(auditRequest.getType())) { + personnel.setFinalTrialRemark(auditRequest.getAuditOpinion()); + personnel.setAlterationSign("2"); + personnel.setAuditState(3); + workFlow(personnel.getCreatedId(),ArgsConst.PERSONNEL,auditRequest.getPersonnelId(),"企业人员申报",true); + } + if (ArgsConst.CHANGE.equals(auditRequest.getType())) { + personnel.setFinalTrialRemark(auditRequest.getAuditOpinion()); + personnel.setChangeAlterationSign("2"); + personnel.setChangeAuditState(3); + workFlow(personnel.getCreatedId(),ArgsConst.CHANGE,auditRequest.getPersonnelId(),"人员变更申报",true); + } + personnel.setState("2"); + personnelMapper.updateById(personnel); } - if (ArgsConst.CHANGE.equals(auditRequest.getType())) { - personnelOne.setFinalTrialRemark(auditRequest.getAuditOpinion()); - personnelOne.setChangeAlterationSign("2"); - personnelOne.setChangeAuditState(3); - } - personnelOne.setId(personnel.getId()); - personnel.setId(id); - personnel.setState("0"); - middle.setState("0"); - personnelMapper.updateById(personnelOne); - personnelMapper.updateById(personnel); - personnelMiddleMapper.updateById(middle); + } else if (ArgsConst.EXCHANGE.equals(auditRequest.getType())) { Exchange exchange = exchangeMapper.selectOne(new LambdaQueryWrapper().eq(Exchange::getState, "1").eq(Exchange::getId, auditRequest.getPersonnelId())); Personnel personnel = personnelMapper.selectById(exchange.getPersonnelId()); @@ -190,6 +179,7 @@ public class AuditServiceImpl extends BaseService implements personnel.setPosition(exchange.getWillPosition()); exchangeMapper.updateById(exchange); personnelMapper.updateById(personnel); + workFlow(exchange.getCreatedId(),ArgsConst.EXCHANGE,auditRequest.getPersonnelId(),"人员选调申报",true); } } return update ? AjaxResult.ok().msg("审批成功!") : AjaxResult.fail().msg("审批成功!"); @@ -198,40 +188,21 @@ public class AuditServiceImpl extends BaseService implements // 拒绝 List auditList = list(new LambdaQueryWrapper().eq(Audit::getPersonnelId, auditRequest.getPersonnelId())); - Config director = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_PERSONNEL_DIRECTOR)); PersonnelMiddle middle = personnelMiddleMapper.selectOne(new LambdaQueryWrapper().eq(PersonnelMiddle::getBeforeId, auditRequest.getPersonnelId()).eq(PersonnelMiddle::getState, "1")); - Personnel afterPersonnel = personnelMapper.selectById(middle.getAfterId()); + System.out.println("middle = " + middle); + Personnel afterPersonnel = new Personnel(); + if (ObjectUtil.isNotEmpty(middle)) { + afterPersonnel = personnelMapper.selectById(middle.getAfterId()); + } Personnel personnel = personnelMapper.selectById(auditRequest.getPersonnelId()); Exchange exchange = exchangeMapper.selectById(auditRequest.getPersonnelId()); - if (loginUser.getLoginName().equals(director.getParamValue())) { - - one.setAuditOrder(ArgsConst.REJECT); - one.setOpinion(auditRequest.getAuditOpinion()); - boolean update = updateById(one); - if (update) { - saveAuditLog(auditRequest.getPersonnelId(), loginId, auditRequest.getType(), "一般初审拒绝", auditRequest.getAuditOpinion()); - if (ArgsConst.PERSONNEL.equals(auditRequest.getType()) || ArgsConst.CHANGE.equals(auditRequest.getType())) { - updateByPer(1, afterPersonnel.getId(), personnel, auditRequest.getType(), auditRequest.getAuditOpinion()); - } - if (ArgsConst.EXCHANGE.equals(auditRequest.getType())) { - exchange.setAuditState(4); - exchange.setState("0"); - exchange.setFirstTrialRemark(auditRequest.getAuditOpinion()); - exchangeMapper.updateById(exchange); - } - for (Audit auditOne : auditList) { - delete(auditOne.getId()); - } - } - return update ? AjaxResult.ok().msg("审批成功!") : AjaxResult.fail().msg("审批成功!"); - } Config leadership = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_LEADERSHIP)); if (leadership.getParamValue().equals(loginUser.getLoginName())) { one.setAuditOrder(ArgsConst.REJECT); one.setOpinion(auditRequest.getAuditOpinion()); boolean update = updateById(one); if (update) { - saveAuditLog(auditRequest.getPersonnelId(), loginId, auditRequest.getType(), "一般终审拒绝", auditRequest.getAuditOpinion()); + saveAuditLog(auditRequest.getPersonnelId(), loginId, auditRequest.getType(), "终审拒绝", auditRequest.getAuditOpinion()); if (ArgsConst.PERSONNEL.equals(auditRequest.getType()) || ArgsConst.CHANGE.equals(auditRequest.getType())) { updateByPer(2, afterPersonnel.getId(), personnel, auditRequest.getType(), auditRequest.getAuditOpinion()); } else if (ArgsConst.EXCHANGE.equals(auditRequest.getType())) { @@ -239,6 +210,7 @@ public class AuditServiceImpl extends BaseService implements exchange.setState("0"); exchange.setFinalTrialRemark(auditRequest.getAuditOpinion()); exchangeMapper.updateById(exchange); + workFlow(exchange.getCreatedId(),ArgsConst.EXCHANGE,exchange.getId(),"人员选调申报",false); } for (Audit auditOne : auditList) { delete(auditOne.getId()); @@ -249,7 +221,20 @@ public class AuditServiceImpl extends BaseService implements return null; } + public void workFlow(String createdId,String type,String personnelId,String args,Boolean flag ){ + WorkFlowNotice workFlowNotice = new WorkFlowNotice(); + workFlowNotice.setStatus(Boolean.FALSE); + workFlowNotice.setFlowType(type); + workFlowNotice.setUserId(createdId); + if (flag){ + workFlowNotice.setTitle("您的"+args+"已通过"); + }else { + workFlowNotice.setTitle("您的"+args+"未通过"); + } + workFlowNotice.setFlowId(personnelId); + workFlowNoticeService.save(workFlowNotice); + } public Integer saveAuditLog(String personnelId, String approverId, String type, String auditSate, String opinion) { AuditLog auditLog = new AuditLog(); auditLog.setPersonnelId(personnelId); @@ -270,9 +255,14 @@ public class AuditServiceImpl extends BaseService implements if (ArgsConst.PERSONNEL.equals(type)) { personnel.setAuditState(4); personnel.setAlterationSign("2"); + Places places = placesMapper.selectOne(new LambdaQueryWrapper().eq(Places::getOdd, personnel.getRecruitNumber())); + places.setStatus(false); + placesMapper.updateById(places); + workFlow(personnel.getCreatedId(),ArgsConst.PERSONNEL,personnel.getId(),"企业人员申报",false); } else if (ArgsConst.CHANGE.equals(type)) { personnel.setChangeAuditState(4); personnel.setChangeAlterationSign("2"); + workFlow(personnel.getCreatedId(),ArgsConst.CHANGE,personnel.getId(),"人员变更申报",false); } personnelMapper.updateById(personnel); diff --git a/src/main/java/com/ydool/staff/service/impl/ExchangeServiceImpl.java b/src/main/java/com/ydool/staff/service/impl/ExchangeServiceImpl.java index 34e4068..3803fd5 100644 --- a/src/main/java/com/ydool/staff/service/impl/ExchangeServiceImpl.java +++ b/src/main/java/com/ydool/staff/service/impl/ExchangeServiceImpl.java @@ -21,6 +21,7 @@ import com.ydool.staff.entity.CompanyName; import com.ydool.staff.entity.Exchange; import com.ydool.staff.entity.Personnel; import com.ydool.staff.mapper.AttachmentMapper; +import com.ydool.staff.mapper.AuditMapper; import com.ydool.staff.mapper.CompanyNameMapper; import com.ydool.staff.mapper.ExchangeMapper; import com.ydool.staff.mapper.PersonnelMapper; @@ -28,6 +29,7 @@ import com.ydool.staff.request.ExchangeRequest; import com.ydool.staff.request.GiveAuditRequest; import com.ydool.staff.request.PersonnelDeleteRequest; import com.ydool.staff.service.IExchangeService; +import com.ydool.staff.service.IPersonnelService; import com.ydool.system.entity.Config; import com.ydool.system.entity.Dept; import com.ydool.system.entity.User; @@ -59,13 +61,15 @@ public class ExchangeServiceImpl extends BaseService i @Resource private PersonnelMapper personnelMapper; @Resource + private IPersonnelService personnelService; + @Resource private AttachmentMapper attachmentMapper; @Resource private ExchangeMapper exchangeMapper; @Resource - private DeptMapper deptMapper; + private AuditMapper auditMapper; @Resource private CompanyNameMapper companyNameMapper; @Resource @@ -89,17 +93,26 @@ public class ExchangeServiceImpl extends BaseService i Page exchangePage = page(page,wrapper); List list = exchangePage.getRecords(); exchangePage.setRecords(list.stream().map(e->{ + System.out.println("e = " + e); ExchangePageDto dto = BeanUtil.copyProperties(e, ExchangePageDto.class); - Personnel personnel = personnelMapper.selectById(dto.getPersonnelId()); - CompanyName original = companyNameMapper.selectById(personnel.getCompanyName()); - CompanyName will = companyNameMapper.selectById(e.getWillCompanyId()); - Dept originalDept = deptMapper.selectById(personnel.getPresentDept()); - Dept willDept = deptMapper.selectById(e.getWillDept()); + Personnel personnel = new Personnel(); + if (StrUtil.isNotBlank(e.getPersonnelId())){ + personnel = personnelMapper.selectById(dto.getPersonnelId()); + } + CompanyName original = new CompanyName(); + if (ObjectUtil.isNotEmpty(personnel)){ + original = companyNameMapper.selectById(personnel.getCompanyName()); + } + CompanyName will = new CompanyName(); + if (StrUtil.isNotBlank(e.getWillCompanyId())){ + will = companyNameMapper.selectById(e.getWillCompanyId()); + } User user = userMapper.selectById((String)StpUtil.getLoginId()); if(ObjectUtil.isNotEmpty(personnel)){ dto.setUserName(personnel.getUserName()); dto.setCardId(personnel.getNumberId()); dto.setNowPosition(personnel.getPosition()); + dto.setNowDept(personnel.getPresentDept()); } if (ObjectUtil.isNotEmpty(original)){ dto.setOriginalCompanyName(original.getCompanyName()); @@ -107,12 +120,6 @@ public class ExchangeServiceImpl extends BaseService i if (ObjectUtil.isNotEmpty(will)){ dto.setWillCompanyName(will.getCompanyName()); } - if (ObjectUtil.isNotEmpty(originalDept)){ - dto.setNowDept(originalDept.getName()); - } - if (ObjectUtil.isNotEmpty(willDept)){ - dto.setWillDept(willDept.getName()); - } if (ObjectUtil.isNotEmpty(user)){ dto.setWritten(user.getUserName()); } @@ -138,6 +145,14 @@ public class ExchangeServiceImpl extends BaseService i attachment.setTargetType(ArgsConst.EXCHANGE); attachmentMapper.insert(attachment); } + if("audit".equals(exchangeRequest.getType())){ + GiveAuditRequest req = new GiveAuditRequest(); + String[] ids = new String[]{exchange.getId()}; + req.setIds(ids); + req.setType(ArgsConst.EXCHANGE); + personnelService.giveAudit(req); + } + return save ?AjaxResult.ok().msg("保存成功!"):AjaxResult.fail().msg("保存失败!"); } @@ -163,6 +178,7 @@ public class ExchangeServiceImpl extends BaseService i @Override public AjaxResult selectById(String id) { Exchange exchange = getById(id); + String loginId = (String) StpUtil.getLoginId(); Personnel personnel = personnelMapper.selectById(exchange.getPersonnelId()); if (ObjectUtil.isEmpty(personnel)){ return AjaxResult.fail().msg("该人员不存在!"); @@ -171,19 +187,19 @@ public class ExchangeServiceImpl extends BaseService i if (ObjectUtil.isEmpty(nowCompany)){ return AjaxResult.fail().msg("该企业不存在!"); } - Dept nowDept = deptMapper.selectById(personnel.getPresentDept()); + /*Dept nowDept = deptMapper.selectById(personnel.getPresentDept()); if (ObjectUtil.isEmpty(nowDept)){ return AjaxResult.fail().msg("该部门不存在!"); - } + }*/ CompanyName willCompany = companyNameMapper.selectById(exchange.getWillCompanyId()); if (ObjectUtil.isEmpty(willCompany)){ return AjaxResult.fail().msg("该企业不存在!"); } - Dept dept = deptMapper.selectById(exchange.getWillDept()); + /* Dept dept = deptMapper.selectById(exchange.getWillDept()); if (ObjectUtil.isEmpty(dept)){ return AjaxResult.fail().msg("该部门不存在!"); - } + }*/ List attachments = attachmentMapper.selectList(new LambdaQueryWrapper().eq(Attachment::getTargetId, exchange.getId())); List attachmentDtos = BeanUtil.copyToList(attachments, AttachmentDto.class); @@ -194,10 +210,20 @@ public class ExchangeServiceImpl extends BaseService i exchangeOneDto.setOriginalCode(nowCompany.getCreditCode()); exchangeOneDto.setUserName(personnel.getUserName()); exchangeOneDto.setCardId(personnel.getNumberId()); - exchangeOneDto.setNowDept(nowDept.getName()); - exchangeOneDto.setWillDept(dept.getName()); + /*exchangeOneDto.setNowDept(nowDept.getName()); + exchangeOneDto.setWillDept(dept.getName());*/ exchangeOneDto.setNowPosition(personnel.getPosition()); exchangeOneDto.setExcFiles(attachmentDtos); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(Audit::getPersonnelId, id) + .eq(Audit::getPerType,ArgsConst.EXCHANGE) + .eq(Audit::getApprover, StpUtil.getLoginIdAsString()) + .eq(Audit::getAuditOrder, ArgsConst.WAITING); + Audit audit = auditMapper.selectOne(wrapper); + if (ObjectUtil.isNotEmpty(audit)){ + exchangeOneDto.setAuditBtn(true); + } return AjaxResult.ok().data(exchangeOneDto); } diff --git a/src/main/java/com/ydool/staff/service/impl/PersonnelServiceImpl.java b/src/main/java/com/ydool/staff/service/impl/PersonnelServiceImpl.java index 28291a4..9f324e7 100644 --- a/src/main/java/com/ydool/staff/service/impl/PersonnelServiceImpl.java +++ b/src/main/java/com/ydool/staff/service/impl/PersonnelServiceImpl.java @@ -16,6 +16,8 @@ import com.ydool.common.constant.ArgsConst; import com.ydool.common.data.dto.AjaxResult; import com.ydool.common.utils.ColumnUtil; import com.ydool.common.utils.EasyExcelAlibabaUtil; +import com.ydool.oa.workFlow.data.entity.WorkFlowNotice; +import com.ydool.oa.workFlow.service.WorkFlowNoticeService; import com.ydool.staff.dto.AttachmentDto; import com.ydool.staff.dto.PersonnelByExchangeDto; import com.ydool.staff.dto.PersonnelDto; @@ -27,6 +29,7 @@ import com.ydool.staff.entity.CompanyName; import com.ydool.staff.entity.Exchange; import com.ydool.staff.entity.Personnel; import com.ydool.staff.entity.PersonnelMiddle; +import com.ydool.staff.entity.Places; import com.ydool.staff.entity.SelectRequest; import com.ydool.staff.excel.ExcelPersonnel; import com.ydool.staff.excel.PersonnelExportVO; @@ -38,8 +41,8 @@ import com.ydool.staff.mapper.CompanyNameMapper; import com.ydool.staff.mapper.ExchangeMapper; import com.ydool.staff.mapper.PersonnelMapper; import com.ydool.staff.mapper.PersonnelMiddleMapper; +import com.ydool.staff.mapper.PlacesMapper; import com.ydool.staff.request.AttachmentRequest; -import com.ydool.staff.request.ChangeRequest; import com.ydool.staff.request.GiveAuditRequest; import com.ydool.staff.request.PersonnelDeleteRequest; import com.ydool.staff.request.PersonnelRequest; @@ -54,11 +57,11 @@ import com.ydool.system.entity.User; import com.ydool.system.mapper.ConfigMapper; import com.ydool.system.mapper.DeptMapper; import com.ydool.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import org.thymeleaf.util.StringUtils; - import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Field; @@ -114,6 +117,11 @@ public class PersonnelServiceImpl extends BaseService wrapper = new LambdaQueryWrapper() .eq(PersonnelMiddle::getBeforeId, id).eq(PersonnelMiddle::getState, "1") .eq(PersonnelMiddle::getType, personnelType); PersonnelMiddle middle = personnelMiddleMapper.selectOne(wrapper); - BeanUtil.copyProperties(personnelMapper.selectById(middle.getAfterId()),personnel); + if (ObjectUtil.isNotEmpty(middle)){ + BeanUtil.copyProperties(personnelMapper.selectById(middle.getAfterId()),personnel); + }else { + BeanUtil.copyProperties(personnelMapper.selectById(id),personnel); + } + } if (ObjectUtil.isEmpty(personnel))return AjaxResult.fail().msg("该人员不存在!"); PersonnelUpdateDto personnelUpdateDto = BeanUtil.copyProperties(personnel, PersonnelUpdateDto.class); @@ -170,7 +183,6 @@ public class PersonnelServiceImpl extends BaseService list = list(new LambdaQueryWrapper().eq(Personnel::getState,"2").eq(Personnel::getWorkState,"在职")); + List list = list(new LambdaQueryWrapper().eq(Personnel::getState,"2").eq(Personnel::getAuditState,3).eq(Personnel::getWorkState,"在职")); List dtos = BeanUtil.copyToList(list, PersonnelByExchangeDto.class); for (PersonnelByExchangeDto dto : dtos) { CompanyName companyName = companyNameMapper.selectById(dto.getCompanyName()); dto.setCompanyName(companyName.getCompanyName()); - Dept dept = deptMapper.selectById(dto.getPresentDept()); - dto.setPresentDept(dept.getName()); + //Dept dept = deptMapper.selectById(dto.getPresentDept()); + //dto.setPresentDept(dept.getName()); } return AjaxResult.ok().data(dtos); } @@ -219,16 +231,21 @@ public class PersonnelServiceImpl extends BaseService().eq(Places::getOdd, personnel.getRecruitNumber())); + places.setStatus(true); + placesMapper.updateById(places); saveAttachment(personnelRequest.getCardFile(), ArgsConst.CARD_FILE, personnel.getId(), ArgsConst.SAVE); saveAttachment(personnelRequest.getEngageFile(), ArgsConst.ENGAGE_FILE, personnel.getId(), ArgsConst.SAVE); saveAttachment(personnelRequest.getEducationFile(), ArgsConst.EDUCATION_FILE, personnel.getId(), ArgsConst.SAVE); saveAttachment(personnelRequest.getJobTitleFile(), ArgsConst.JOBTITLE_FILE, personnel.getId(), ArgsConst.SAVE); saveAttachment(personnelRequest.getAuditFile(), ArgsConst.AUDIT_FILE, personnel.getId(), ArgsConst.SAVE); if("audit".equals(personnelRequest.getType())){ + personnel.setAlterationSign("1"); + updateById(personnel); GiveAuditRequest request = new GiveAuditRequest(); String[] ids = new String[]{personnel.getId()}; request.setIds(ids); - request.setType("personnel"); + request.setType(ArgsConst.PERSONNEL); return giveAudit(request); } @@ -257,80 +274,82 @@ public class PersonnelServiceImpl extends BaseService cardFile = updateRequest.getCardFile(); - List educationFile = updateRequest.getEducationFile(); - List auditFile = updateRequest.getAuditFile(); - List engageFile = updateRequest.getEngageFile(); - List jobTitleFile = updateRequest.getJobTitleFile(); + Personnel personnel = get(updateRequest.getId()); + if (!personnel.getRecruitNumber().equals(updateRequest.getRecruitNumber())){ + Places places = placesMapper.selectOne(new LambdaQueryWrapper().eq(Places::getOdd, personnel.getRecruitNumber())); + places.setStatus(false); + placesMapper.updateById(places); + } + Personnel per = BeanUtil.copyProperties(updateRequest, Personnel.class); + List cardFile = updateRequest.getCardFileList(); + List educationFile = updateRequest.getEducationFileList(); + List auditFile = updateRequest.getAuditFileList(); + List engageFile = updateRequest.getEngageFileList(); + List jobTitleFile = updateRequest.getJobTitleFileList(); String card = StringUtils.join(saveFilePath(cardFile, ArgsConst.CARD_FILE, ArgsConst.UPDATE, updateRequest.getId()), ','); String education = StringUtils.join(saveFilePath(educationFile, ArgsConst.EDUCATION_FILE, ArgsConst.UPDATE, updateRequest.getId()), ','); String audit = StringUtils.join(saveFilePath(auditFile, ArgsConst.AUDIT_FILE, ArgsConst.UPDATE, updateRequest.getId()), ','); String engage = StringUtils.join(saveFilePath(engageFile, ArgsConst.ENGAGE_FILE, ArgsConst.UPDATE, updateRequest.getId()), ','); String job = StringUtils.join(saveFilePath(jobTitleFile, ArgsConst.JOBTITLE_FILE, ArgsConst.UPDATE, updateRequest.getId()), ','); - if ("1".equals(per.getAlterationSign())) { - return AjaxResult.fail().msg("该人员修改的资料未审批完成,请联系管理员!"); - } - if ("1".equals(per.getChangeAlterationSign())) { - return AjaxResult.fail().msg("该人员在变更中,资料未完成审批,请等待领导审批!"); - } - String type = ArgsConst.PERSONNEL; - per.setAlterationSign("1"); - boolean update = updateById(per); - middle.setBeforeId(per.getId()); - per.setNation(saveAlteration("民族更改", per.getNation(), updateRequest.getNation(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getNation)).toString()); - per.setPoliticsStatus(saveAlteration("政治面貌更改", per.getPoliticsStatus(), updateRequest.getPoliticsStatus(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getPoliticsStatus)).toString()); - per.setEducation(saveAlteration("学历更改", per.getEducation(), updateRequest.getEducation(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getEducation)).toString()); - per.setFreshGraduate(saveAlteration("是否应届毕业生更改", per.getFreshGraduate(), updateRequest.getFreshGraduate(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getFreshGraduate)).toString()); - per.setAcademy(saveAlteration("毕业院校更改", per.getAcademy(), updateRequest.getAcademy(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getAcademy)).toString()); - per.setSpecialty(saveAlteration("专业更改", per.getSpecialty(), updateRequest.getSpecialty(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getSpecialty)).toString()); - per.setPresentDept(saveAlteration("所在部门更改", per.getPresentDept(), updateRequest.getPresentDept(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getPresentDept)).toString()); - per.setContractModality(saveAlteration("合同形式更改", per.getContractModality(), updateRequest.getContractModality(), type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getContractModality)).toString()); if (StrUtil.isNotBlank(card)){ - per.setCardFile(saveAlteration("身份证附件更改", per.getCardFile(), card, type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getCardFile)).toString()); + per.setCardFile(card); } if (StrUtil.isNotBlank(education)){ - per.setEducationFile(saveAlteration("学历证书附件更改", per.getEducationFile(), education, type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getEducationFile)).toString()); + per.setEducationFile(education); } if (StrUtil.isNotBlank(audit)){ - per.setAuditFile(saveAlteration("审批资料附件更改", per.getAuditFile(), audit, type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getAuditFile)).toString()); + per.setAuditFile(audit); } if (StrUtil.isNotBlank(engage)){ - per.setEngageFile(saveAlteration("审批资料附件更改", per.getAuditFile(), engage, type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getEngageFile)).toString()); + per.setEngageFile(engage); } if (StrUtil.isNotBlank(job)){ - per.setJobTitleFile(saveAlteration("审批资料附件更改", per.getAuditFile(), job, type, updateRequest.getId(), ColumnUtil.getFieldName(Personnel::getJobTitleFile)).toString()); + per.setJobTitleFile(job); } - per.setId(""); - per.setState("1"); - per.setAlterationSign("1"); - save(per); - middle.setAfterId(per.getId()); - middle.setType(ArgsConst.PERSONNEL); - personnelMiddleService.savePer(middle); saveAttachment(cardFile, ArgsConst.CARD_FILE, updateRequest.getId(), ArgsConst.UPDATE); saveAttachment(educationFile, ArgsConst.EDUCATION_FILE, updateRequest.getId(), ArgsConst.UPDATE); saveAttachment(auditFile, ArgsConst.AUDIT_FILE, updateRequest.getId(), ArgsConst.UPDATE); + saveAttachment(jobTitleFile, ArgsConst.JOBTITLE_FILE, updateRequest.getId(), ArgsConst.UPDATE); + saveAttachment(engageFile, ArgsConst.ENGAGE_FILE, updateRequest.getId(), ArgsConst.UPDATE); + per.setState("2"); + per.setAlterationSign("1"); + boolean update = updateById(per); + if (update){ + Places places = placesMapper.selectOne(new LambdaQueryWrapper().eq(Places::getOdd, updateRequest.getRecruitNumber())); + places.setStatus(true); + placesMapper.updateById(places); + } + if("audit".equals(updateRequest.getType())){ + GiveAuditRequest request = new GiveAuditRequest(); + String[] ids = new String[]{per.getId()}; + request.setIds(ids); + request.setType("personnel"); + return giveAudit(request); + } return update ? AjaxResult.ok().msg("修改成功!") : AjaxResult.fail().msg("修改失败!"); } @Override @Transactional(rollbackFor = Exception.class) - public AjaxResult updateChange(ChangeRequest request) { - Personnel per = get(request.getId()); + public AjaxResult updateChange(PersonnelUpdateRequest request) { PersonnelMiddle middle = new PersonnelMiddle(); - List cardFiles = request.getCardFiles(); - List jobTitleFiles = request.getJobTitleFiles(); - List engageFiles = request.getEngageFiles(); - List educationFiles = request.getEducationFiles(); - List auditFiles = request.getAuditFiles(); - if ("入职".equals(per.getWorkState())) { - return AjaxResult.fail().msg("该人员未在职,不能变更数据"); + String id = null; + PersonnelMiddle personnelMiddle = personnelMiddleMapper.selectOne(new LambdaQueryWrapper().eq(PersonnelMiddle::getAfterId, request.getId()).eq(PersonnelMiddle::getState,"1")); + if (ObjectUtil.isNotNull(personnelMiddle)){ + id = personnelMiddle.getBeforeId(); + }else { + id = request.getId(); } - if ("1".equals(per.getAlterationSign())) { - return AjaxResult.fail().msg("该人员在申报中,资料未完成审批,请等待领导审批!"); + Personnel per = get(id); + List cardFiles = request.getCardFileList(); + List jobTitleFiles = request.getJobTitleFileList(); + List engageFiles = request.getEngageFileList(); + List educationFiles = request.getEducationFileList(); + List auditFiles = request.getAuditFileList(); + if (per.getChangeAuditState()==2) { + return AjaxResult.fail().msg("待领导审批,不能变更数据"); } + String type = ArgsConst.CHANGE; String card = StringUtils.join(saveFilePath(cardFiles, ArgsConst.CARD_FILE, type, request.getId()), ','); String jobTitle = StringUtils.join(saveFilePath(jobTitleFiles, ArgsConst.JOBTITLE_FILE, type, request.getId()), ','); @@ -340,44 +359,84 @@ public class PersonnelServiceImpl extends BaseService().eq(Alteration::getRelevancyId, id).eq(Alteration::getFieldName, fieldName)); + if (ObjectUtil.isNotEmpty(one)){ + one.setDetails(details); + one.setFieldName(fieldName); + one.setType(type); + one.setRelevancyId(id); + if (ObjectUtil.isNotNull(before)) { + one.setBeforeChange(before.toString()); + } else { + one.setBeforeChange("无"); + } + one.setAfterChange(after.toString()); + alterationMapper.updateById(one); + }else { + Alteration alteration = new Alteration(); + alteration.setDetails(details); + alteration.setFieldName(fieldName); + alteration.setType(type); + alteration.setRelevancyId(id); + if (ObjectUtil.isNotNull(before)) { + alteration.setBeforeChange(before.toString()); + } else { + alteration.setBeforeChange("无"); + } + alteration.setAfterChange(after.toString()); + alterationMapper.insert(alteration); + } } return after; } @@ -472,6 +546,13 @@ public class PersonnelServiceImpl extends BaseService wrapper = new QueryWrapper<>(); + if(ArgsConst.PERSONNEL.equals(request.getType())){ + wrapper.lambda().ne(Personnel::getAuditState,"3"); + }else{ + wrapper.lambda().eq(Personnel::getAuditState,"3").ne(Personnel::getState,1).ne(Personnel::getState,0); + + + } wrapper.lambda().eq(StrUtil.isNotBlank(request.getPersonnelType()),Personnel::getPersonnelType,request.getPersonnelType()) .eq(StrUtil.isNotBlank(request.getPresentDept()),Personnel::getPresentDept,request.getPresentDept()) .eq(StrUtil.isNotBlank(request.getPoliticsStatus()),Personnel::getPoliticsStatus,request.getPoliticsStatus()) @@ -484,7 +565,6 @@ public class PersonnelServiceImpl extends BaseService().eq(Config::getParamKey, ConfigCache.SYS_USER_PERSONNEL_DIRECTOR)); - audit.setAuditOrder(ArgsConst.WAITING); - User user = userMapper.selectOne(new LambdaQueryWrapper().eq(User::getLoginName, config.getParamValue())); - audit.setApprover(user.getId()); }else { audit.setAuditOrder(ArgsConst.LAST); Config config = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_LEADERSHIP)); + audit.setAuditOrder(ArgsConst.WAITING); User user = userMapper.selectOne(new LambdaQueryWrapper().eq(User::getLoginName, config.getParamValue())); audit.setApprover(user.getId()); + //通知 + User loginUser = userMapper.selectById(loginId); + WorkFlowNotice workFlowNotice = new WorkFlowNotice(); + workFlowNotice.setStatus(Boolean.FALSE); + workFlowNotice.setUserId(user.getId()); + if (request.getType().equals(ArgsConst.PERSONNEL)){ + workFlowNotice.setTitle(loginUser.getUserName() + "的企业人员申报待你审批"); + workFlowNotice.setFlowType(ArgsConst.PERSONNEL); + }else if(request.getType().equals(ArgsConst.CHANGE)){ + workFlowNotice.setTitle(loginUser.getUserName() + "的人员变更申报待你审批"); + workFlowNotice.setFlowType(ArgsConst.CHANGE); + }else { + workFlowNotice.setTitle(loginUser.getUserName() + "的人员选调申报待你审批"); + workFlowNotice.setFlowType(ArgsConst.EXCHANGE); + } + workFlowNotice.setFlowId(id); + workFlowNoticeService.save(workFlowNotice); } auditMapper.insert(audit); } if (ArgsConst.PERSONNEL.equals(request.getType())){ Personnel personnel = get(id); - personnel.setAuditState(1); + personnel.setAuditState(2); updateById(personnel); } if (ArgsConst.CHANGE.equals(request.getType())){ - Personnel personnel = get(id); - personnel.setChangeAuditState(1); - updateById(personnel); + PersonnelMiddle one = personnelMiddleMapper.selectOne(new LambdaQueryWrapper().eq(PersonnelMiddle::getAfterId, id)); + if (ObjectUtil.isNotEmpty(one)){ + Personnel personnel = get(one.getBeforeId()); + Personnel personnel1 = get(id); + personnel.setChangeAuditState(2); + personnel1.setChangeAuditState(2); + updateById(personnel); + updateById(personnel1); + }else { + Personnel personnel = get(id); + personnel.setChangeAuditState(2); + updateById(personnel); + + } + } if (ArgsConst.EXCHANGE.equals(request.getType())){ Exchange exchange = exchangeMapper.selectById(id); - exchange.setAuditState(1); + exchange.setAuditState(2); exchangeMapper.updateById(exchange); } auditService.saveAuditLog(id, loginId,request.getType(), "一般送审提交",""); - } if (ids.length==1){ return AjaxResult.ok().msg("送审成功!");