diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b186295..03942d0 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -11,6 +11,7 @@
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6f5230a..010c400 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,3 +1,4 @@
+
@@ -10,4 +11,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/ydool/YdoolApplication.java b/src/main/java/com/ydool/YdoolApplication.java
index b60d8f3..cea117d 100644
--- a/src/main/java/com/ydool/YdoolApplication.java
+++ b/src/main/java/com/ydool/YdoolApplication.java
@@ -5,8 +5,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
+@EnableScheduling//开启定时任务
@EnableCaching
@EnableAsync
public class YdoolApplication {
diff --git a/src/main/java/com/ydool/common/constant/ArgsConst.java b/src/main/java/com/ydool/common/constant/ArgsConst.java
index baac861..f59d73e 100644
--- a/src/main/java/com/ydool/common/constant/ArgsConst.java
+++ b/src/main/java/com/ydool/common/constant/ArgsConst.java
@@ -39,6 +39,11 @@ public class ArgsConst {
* 附件所属:变更
*/
public static final String CHANGE = "change";
+
+ /**
+ * 附件所属:变更
+ */
+ public static final String RETIRE = "retire";
/**
* 附件所属:人员
*/
diff --git a/src/main/java/com/ydool/platform/saToken/config/SaTokenConfig.java b/src/main/java/com/ydool/platform/saToken/config/SaTokenConfig.java
index 399f9b0..cda4c0f 100644
--- a/src/main/java/com/ydool/platform/saToken/config/SaTokenConfig.java
+++ b/src/main/java/com/ydool/platform/saToken/config/SaTokenConfig.java
@@ -14,7 +14,7 @@ public class SaTokenConfig implements WebMvcConfigurer {
// 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
.addPathPatterns(UrlConstant.API + "/**")
- .excludePathPatterns(UrlConstant.AUTH+"/login");
+ .excludePathPatterns(UrlConstant.AUTH+"/login",UrlConstant.PERSON+"/getPersonnelRetire");
}
@Override
diff --git a/src/main/java/com/ydool/staff/controller/PersonnelController.java b/src/main/java/com/ydool/staff/controller/PersonnelController.java
index 25211c3..3c61b92 100644
--- a/src/main/java/com/ydool/staff/controller/PersonnelController.java
+++ b/src/main/java/com/ydool/staff/controller/PersonnelController.java
@@ -20,6 +20,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -54,9 +55,10 @@ public class PersonnelController extends BaseController {
@ApiImplicitParam(name = "orderBy", value = "排序顺序 降序:desc,升序:asc"),
@ApiImplicitParam(name = "column", value = "排序字段 字段名"),
@ApiImplicitParam(name = "current", value = "当前页"),
- @ApiImplicitParam(name = "size", value = "每页条数")})
- public AjaxResult personnelList(@RequestBody SelectRequest request, String orderBy,String column){
- return personnelService.personnelList(getPage(),request,orderBy,column);
+ @ApiImplicitParam(name = "size", value = "每页条数"),
+ @ApiImplicitParam(name = "isInfo", value = "是否退休列表")})
+ public AjaxResult personnelList(@RequestBody SelectRequest request, String orderBy,String column,Boolean isInfo){
+ return personnelService.personnelList(getPage(),request,orderBy,column,isInfo);
}
@GetMapping("getById")
@@ -123,6 +125,19 @@ public class PersonnelController extends BaseController {
return personnelService.giveAudit(request);
}
+ @GetMapping("getPersonnelRetire")
+ @ApiOperation(value = "查看近两月是否有人退休")
+ //@Scheduled(cron = "0 0 7 * * ?") /*每天7点更新一次*/
+ //@Scheduled(cron = "0 */1 * * * ?") /*每天7点更新一次*/
+ public void getPersonnelRetire(){
+ personnelService.getPersonnelRetire();
+ }
+ @GetMapping("updatePersonnelRetire")
+ @ApiOperation(value = "处理退休事件")
+ @ApiImplicitParam(name = "id",value = "人员id")
+ public AjaxResult updatePersonnelRetire(String id){
+ return personnelService.updatePersonnelRetire(id);
+ }
}
diff --git a/src/main/java/com/ydool/staff/dto/PersonnelDto.java b/src/main/java/com/ydool/staff/dto/PersonnelDto.java
index 4328a88..ef44fad 100644
--- a/src/main/java/com/ydool/staff/dto/PersonnelDto.java
+++ b/src/main/java/com/ydool/staff/dto/PersonnelDto.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@@ -39,6 +40,10 @@ public class PersonnelDto {
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
+ @ApiModelProperty(value = "退休时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDate retirementTime;
+
@ApiModelProperty(value = "审批状态 0 未审批 1 待审批,2已通过,3已拒绝")
private Integer auditState;
@@ -52,5 +57,4 @@ public class PersonnelDto {
private String workState;
-
}
diff --git a/src/main/java/com/ydool/staff/entity/Personnel.java b/src/main/java/com/ydool/staff/entity/Personnel.java
index b9687eb..1ed6a4d 100644
--- a/src/main/java/com/ydool/staff/entity/Personnel.java
+++ b/src/main/java/com/ydool/staff/entity/Personnel.java
@@ -162,4 +162,9 @@ public class Personnel extends BaseEntity {
@ApiModelProperty(value = "数据状态:0:历史数据 ,1:暂存数据,2:当前数据")
private String state;
+ @ApiModelProperty(value = "是否退休列表")
+ private Boolean isInfo;
+
+
+
}
diff --git a/src/main/java/com/ydool/staff/service/IPersonnelService.java b/src/main/java/com/ydool/staff/service/IPersonnelService.java
index f0f557d..ee1c6ad 100644
--- a/src/main/java/com/ydool/staff/service/IPersonnelService.java
+++ b/src/main/java/com/ydool/staff/service/IPersonnelService.java
@@ -26,7 +26,7 @@ public interface IPersonnelService {
* 人员列表
* @return
*/
- AjaxResult personnelList(Page page , SelectRequest request, String orderBy,String column);
+ AjaxResult personnelList(Page page , SelectRequest request, String orderBy, String column, Boolean isInfo);
AjaxResult getById(String id,String type,String personnelType);
AjaxResult personnelByExchangeList();
@@ -70,5 +70,8 @@ public interface IPersonnelService {
List nameAndPath(String file, String id);
+ void getPersonnelRetire();
+
+ AjaxResult updatePersonnelRetire(String id);
}
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 56e47f6..61712e3 100644
--- a/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java
+++ b/src/main/java/com/ydool/staff/service/impl/AuditServiceImpl.java
@@ -252,16 +252,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);
+ personnel.setRecruitNumber("0");
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);
}
-
+ System.out.println("personnel = " + personnel);
personnelMapper.updateById(personnel);
}
diff --git a/src/main/java/com/ydool/staff/service/impl/OrganizationServiceImpl.java b/src/main/java/com/ydool/staff/service/impl/OrganizationServiceImpl.java
index 9806a34..ef34b50 100644
--- a/src/main/java/com/ydool/staff/service/impl/OrganizationServiceImpl.java
+++ b/src/main/java/com/ydool/staff/service/impl/OrganizationServiceImpl.java
@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -62,6 +63,9 @@ public class OrganizationServiceImpl extends BaseService page, OrganizationSearch organizationSearch) {
LambdaQueryWrapper organizationLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -162,11 +166,19 @@ public class OrganizationServiceImpl extends BaseService dtoList = new ArrayList<>();
List places = placesMapper.selectList(Wrappers.lambdaQuery(Places.class)
.eq(Places::getCompanyId, id)
.eq(Places::getStatus, Boolean.FALSE)
.orderByAsc(Places::getOdd));
- return AjaxResult.ok().data(BeanUtil.copyToList(places, PlacesDto.class));
+ for (Places place : places) {
+ int count = personnelService.count(new LambdaQueryWrapper().eq(Personnel::getRecruitNumber, place.getOdd()));
+ if (count list = personnelPage.getRecords();
personnelPage.setRecords(list.stream().map(e -> {
@@ -231,9 +234,6 @@ 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);
@@ -274,12 +274,6 @@ public class PersonnelServiceImpl extends BaseService().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();
@@ -314,11 +308,6 @@ public class PersonnelServiceImpl extends BaseService().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()};
@@ -553,14 +542,12 @@ 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(isInfo,Personnel::getIsInfo,true).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())
@@ -803,6 +790,46 @@ public class PersonnelServiceImpl extends BaseService list = list(new LambdaQueryWrapper()
+ .ne(Personnel::getAlterationSign,1).eq(Personnel::getAuditState,3).eq(Personnel::getState,2)
+ .eq(Personnel::getWorkState,"在职").between(Personnel::getRetirementTime, nowDate, starTime).eq(Personnel::getIsInfo,false).orderByDesc(Personnel::getRetirementTime));
+ if (CollectionUtil.isNotEmpty(list)){
+ Config config = configMapper.selectOne(new LambdaQueryWrapper().eq(Config::getParamKey, ConfigCache.SYS_USER_LEADERSHIP));
+ User user = userMapper.selectOne(new LambdaQueryWrapper().eq(User::getLoginName, config.getParamValue()));
+ for (Personnel personnel : list) {
+ if (!personnel.getIsInfo()) {
+ WorkFlowNotice workFlowNotice = new WorkFlowNotice();
+ workFlowNotice.setStatus(Boolean.FALSE);
+ workFlowNotice.setUserId(user.getId());
+ workFlowNotice.setTitle("企业人员"+personnel.getUserName()+"待退休");
+ workFlowNotice.setFlowType(ArgsConst.RETIRE);
+ workFlowNotice.setFlowId(personnel.getId());
+ boolean save = workFlowNoticeService.save(workFlowNotice);
+ if (save) {
+ personnel.setIsInfo(true);
+ updateById(personnel);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public AjaxResult updatePersonnelRetire(String id) {
+ Personnel personnel = getById(id);
+ if (!"退休".equals(personnel.getWorkState())){
+ return AjaxResult.fail("该人员未办理退休变更,请先办理退休变更!");
+ }
+ personnel.setIsInfo(false);
+ boolean b = updateById(personnel);
+ return b ?AjaxResult.ok().msg("处理成功!"):AjaxResult.fail("处理失败!");
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 880b11a..1662874 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -16,9 +16,9 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
- url: jdbc:mysql://192.168.2.24:3306/lc_oa?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+ url: jdbc:mysql://localhost:3306/lc_oa?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
- password: Wang09211108
+ password: root
druid:
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大