提交 d6b47b36 authored 作者: 黄夏豪's avatar 黄夏豪

项目完善

上级 52e47264
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>personnelmanager</artifactId>
<version>0.0.1</version>
<name>personnelmanager</name>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.github.wenhao</groupId>
<artifactId>jpa-spec</artifactId>
<version>3.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
......@@ -11,6 +11,8 @@ import javax.validation.Validator;
import javax.validation.ValidatorFactory;
/**
* 描述:用于存放被Spring管理的Bean
*
* @author HuangXiahao
* @version V1.0
* @class BeanConfig
......@@ -20,7 +22,9 @@ import javax.validation.ValidatorFactory;
@Configuration
public class BeanConfig {
/**
* Validtor配置
*/
@Bean
public Validator validator(){
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
......
......@@ -3,7 +3,15 @@ package com.example.personnelmanager.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 描述:跨域处理
*
* @author HuangXiahao
* @version V1.0
* @class CorsConfig
* @packageName com.example.demo.common.config
* @data 2020/4/21
**/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
......
package com.example.personnelmanager.common.config;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import com.example.personnelmanager.common.utils.DateFormatUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.DateSerializer;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
/**
* 描述:使jackson能够正确的接收时间格式
* @author HuangXiahao
* @version V1.0
* @class Java8TimeConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/5/20
**/
@Configuration
public class Java8TimeConfig {
@Value("${spring.jackson.date-format}")
private String formatValue;
@Bean(name = "format")
DateTimeFormatter format() {
return DateTimeFormatter.ofPattern(formatValue);
}
@Bean
public ObjectMapper serializingObjectMapper(@Qualifier("format") DateTimeFormatter format) {
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(format));
javaTimeModule.addSerializer(Instant.class, new InstantCustomSerializer(format));
javaTimeModule.addSerializer(Date.class, new DateSerializer(false, new SimpleDateFormat(formatValue)));
javaTimeModule.addDeserializer(Instant.class, new InstantCustomDeserializer());
javaTimeModule.addDeserializer(Date.class, new DateCustomDeserializer());
ObjectMapper mapper = new ObjectMapper()
.registerModule(new ParameterNamesModule())
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.registerModule(javaTimeModule);
return mapper;
}
class InstantCustomSerializer extends JsonSerializer<Instant> {
private DateTimeFormatter format;
private InstantCustomSerializer(DateTimeFormatter formatter) {
this.format = formatter;
}
@Override
public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (instant == null) {
return;
}
String jsonValue = format.format(instant.atZone(ZoneId.systemDefault()));
jsonGenerator.writeString(jsonValue);
}
}
class InstantCustomDeserializer extends JsonDeserializer<Instant>{
@Override
public Instant deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
String dateString = p.getText().trim();
if(StringUtils.isNotBlank(dateString)){
Date pareDate;
try {
pareDate = DateFormatUtil.pareDate(dateString);
if(null != pareDate){
return pareDate.toInstant();
}
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
}
class DateCustomDeserializer extends JsonDeserializer<Date>{
@Override
public Date deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
String dateString = p.getText().trim();
if(StringUtils.isNotBlank(dateString)){
try {
return DateFormatUtil.pareDate(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
}
/**
* Support for Java date and time API.
* @return the corresponding Jackson module.
*/
@Bean
public JavaTimeModule javaTimeModule() {
return new JavaTimeModule();
}
@Bean
public Jdk8Module jdk8TimeModule() {
return new Jdk8Module();
}
}
\ No newline at end of file
......@@ -34,6 +34,16 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* 描述:sprinSecurity安全框架配置类
* @author HuangXiahao
* @version V1.0
* @class Java8TimeConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/5/20
**/
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(jsr250Enabled = true)
......@@ -62,7 +72,6 @@ public class SecurityWebConfig extends WebSecurityConfigurerAdapter {
.and()
.logout()
.logoutUrl("/user/logout").permitAll()
.and()
.sessionManagement()
.and()
......
......@@ -11,6 +11,7 @@ import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* 描述:Swagger
* @author HuangXiahao
* @version V1.0
* @class SwaggerConfig
......@@ -23,7 +24,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
public class SwaggerConfig {
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("API接口文档")
.description("简易图书借阅系统")
.description("人员管理系统")
.termsOfServiceUrl("http://localhost:8080/")
.version("1.0.0")
.build();
......@@ -33,7 +34,7 @@ public class SwaggerConfig {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) //这里写的是API接口所在的包位置
.apis(RequestHandlerSelectors.basePackage("com.example.personnelmanager.controller")) //这里写的是API接口所在的包位置
.paths(PathSelectors.any())
.build();
}
......
package com.example.personnelmanager.common.exception;
/**
* 描述:全局错误处理类,用于处理一些不容易定义的错误
* @author HuangXiahao
* @version V1.0
* @class GlobalException
......
......@@ -34,8 +34,7 @@ import java.util.HashMap;
public class GlobalExceptionHandler {
/**
* 描述:所有的报错信息都会通过这个方法处理并通过统一的返回方式进行返回
*
* 描述:报错信息都会通过这个方法处理并通过统一的返回方式进行返回
* @param e 报错信息
* @Return : com.example.demo.entity.ResultObj
* @Author : HuangXiahao
......@@ -49,6 +48,13 @@ public class GlobalExceptionHandler {
return resultObj;
}
/**
* 描述:数据合法性验证报错会通过这个方法处理并通过统一的返回方式进行返回
* @param e 报错信息
* @Return : com.example.demo.entity.ResultObj
* @Author : HuangXiahao
* @Date : 2020/4/10 15:14
*/
@ResponseBody
@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(BindException.class)
......
package com.example.personnelmanager.common.utils;
import java.text.DecimalFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.temporal.ChronoField;
/**
* @author HuangXiahao
* @version V1.0
* @class DateCalculationController
* @packageName com.example.personnelmanager.common.utils
* @data 2020/5/27
**/
public class DateCalculationUtil {
/***
* 描述:计算两个Instant之间相差的年份
* @param startTime
* @param endTime
* @Return : double
* @Author : HuangXiahao
* @Date : 2020/6/1 10:33
*/
public static double twoTimeYearCalculation(Instant startTime,Instant endTime){
LocalDateTime startLocalDateTime = LocalDateTime.ofEpochSecond(startTime.getEpochSecond(), 0, OffsetDateTime.now().getOffset());
LocalDateTime endLocalDateTime = LocalDateTime.ofEpochSecond(endTime.getEpochSecond(), 0, OffsetDateTime.now().getOffset());
int result = startLocalDateTime.get(ChronoField.MONTH_OF_YEAR) - endLocalDateTime.get(ChronoField.MONTH_OF_YEAR)/12;
int month = (startLocalDateTime.get(ChronoField.YEAR) - endLocalDateTime.get(ChronoField.YEAR)) * 12;
return Double.parseDouble(new DecimalFormat("0.0").format(month+result));
}
}
package com.example.personnelmanager.common.utils;
import java.text.ParseException;
import java.time.Instant;
import java.util.Date;
import javax.validation.constraints.NotNull;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.FastDateFormat;
/**
* @author HuangXiahao
* @version V1.0
* @class DateFormatUtil
* @packageName com.example.personnelmanager.common.utils
* @data 2020/5/20
**/
public class DateFormatUtil {
public static final String SYMBOL_DOT = "\\.";
public static final String DATE_REGEX_YYYYMM = "^\\d{4}-\\d{1,2}$";//日期正则yyyy-MM
public static final String DATE_REGEX_YYYYMMDD = "^\\d{4}-\\d{1,2}-\\d{1,2}$";//日期正则yyyy-MM-dd
public static final String DATE_REGEX_YYYYMMDDHHMM = "^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$";//日期正则yyyy-MM-dd hh:mm
public static final String DATE_REGEX_YYYYMMDDHHMMSS = "^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$";//日期正则yyyy-MM-dd hh:mm:ss
public static final String DATE_REGEX_SECOND_DOT_NANOSECOND = "^[0-9]{1,}\\.[0-9]{1,9}$";//Instant日期秒+纳秒
public static final String DATE_REGEX_YYYYMMDD_T_HHMMSS_Z = "^\\d{4}-\\d{1,2}-\\d{1,2}T\\d{1,2}:\\d{1,2}:\\d{1,2}Z$";//日期正则yyyy-MM-dd'T'HH:mm:ssZ
public static final String DATE_REGEX_YYYYMMDD_T_HHMMSS_SSS_Z = "^\\d{4}-\\d{1,2}-\\d{1,2}T\\d{1,2}:\\d{1,2}:\\d{1,2}\\.\\d{1,3}Z$";//日期正则yyyy-MM-dd'T'HH:mm:ss.SSSZ
// 以T分隔日期和时间,并带时区信息,符合ISO8601规范
public static final String PATTERN_ISO = "yyyy-MM-dd'T'HH:mm:ss.SSSZZ";
public static final String PATTERN_ISO_ON_SECOND = "yyyy-MM-dd'T'HH:mm:ssZZ";
public static final String PATTERN_ISO_ON_DATE = "yyyy-MM-dd";
public static final String PATTERN_ISO_ON_MONTH = "yyyy-MM";
// 以空格分隔日期和时间,不带时区信息
public static final String PATTERN_DEFAULT = "yyyy-MM-dd HH:mm:ss.SSS";
public static final String PATTERN_DEFAULT_ON_SECOND = "yyyy-MM-dd HH:mm:ss";
public static final String PATTERN_DEFAULT_ON_MINUTE = "yyyy-MM-dd HH:mm";
// 使用工厂方法FastDateFormat.getInstance(), 从缓存中获取实例
// 以T分隔日期和时间,并带时区信息,符合ISO8601规范
public static final FastDateFormat ISO_FORMAT = FastDateFormat.getInstance(PATTERN_ISO);
public static final FastDateFormat ISO_ON_SECOND_FORMAT = FastDateFormat.getInstance(PATTERN_ISO_ON_SECOND);
public static final FastDateFormat ISO_ON_DATE_FORMAT = FastDateFormat.getInstance(PATTERN_ISO_ON_DATE);
public static final FastDateFormat ISO_ON_MONTH_FORMAT = FastDateFormat.getInstance(PATTERN_ISO_ON_MONTH);
// 以空格分隔日期和时间,不带时区信息
public static final FastDateFormat DEFAULT_FORMAT = FastDateFormat.getInstance(PATTERN_DEFAULT);
public static final FastDateFormat DEFAULT_ON_SECOND_FORMAT = FastDateFormat.getInstance(PATTERN_DEFAULT_ON_SECOND);
public static final FastDateFormat DEFAULT_ON_MINUTE_FORMAT = FastDateFormat.getInstance(PATTERN_DEFAULT_ON_MINUTE);
/**
* 将日期格式的字符串转换成指定格式的日期
* @param pattern 日期格式
* @param dateString 日期字符串
* @return
* @throws ParseException
*/
public static Date pareDate(@NotNull String pattern, @NotNull String dateString) throws ParseException {
return FastDateFormat.getInstance(pattern).parse(dateString);
}
/**
* 将日期格式的字符串根据正则转换成相应格式的日期
* @param dateString 日期字符串
* @return
* @throws ParseException
*/
public static Date pareDate(@NotNull String dateString) throws ParseException {
String source = dateString.trim();
if (StringUtils.isNotBlank(source)) {
if(source.matches(DATE_REGEX_YYYYMM)){
return ISO_ON_MONTH_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_YYYYMMDD)){
return ISO_ON_DATE_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_YYYYMMDDHHMM)){
return DEFAULT_ON_MINUTE_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_YYYYMMDDHHMMSS)){
return DEFAULT_ON_SECOND_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_YYYYMMDD_T_HHMMSS_Z)){
return ISO_ON_SECOND_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_YYYYMMDD_T_HHMMSS_SSS_Z)){
return ISO_FORMAT.parse(source);
}else if(source.matches(DATE_REGEX_SECOND_DOT_NANOSECOND)){
String[] split = source.split(SYMBOL_DOT);
return Date.from(Instant.ofEpochSecond(Long.parseLong(split[0]), Long.parseLong(split[1])));
}else {
throw new IllegalArgumentException("Invalid date value '" + source + "'");
}
}
return null;
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupSaveImage;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.Certificate;
import com.example.personnelmanager.entity.CertificateImage;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.CertificatePageableVo;
import com.example.personnelmanager.entity.vo.CertificateVo;
import com.example.personnelmanager.service.CertificateImageService;
import com.example.personnelmanager.service.CertificateService;
import com.example.personnelmanager.service.ContractImageService;
import com.example.personnelmanager.service.ContractService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.Objects;
import java.util.UUID;
/**
......@@ -36,32 +33,40 @@ import java.util.UUID;
@RequestMapping("/api/certificate")
public class CertificateController {
@Autowired
CertificateService certificateService;
final CertificateService certificateService;
final CertificateImageService certificateImageService;
@Autowired
CertificateImageService certificateImageService;
public CertificateController(CertificateService certificateService, CertificateImageService certificateImageService) {
this.certificateService = certificateService;
this.certificateImageService = certificateImageService;
}
/**
* 描述:新增证书
* @param certificate
* @return ResultObj<Certificate>
*/
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<Certificate> addContract(@Validated(GroupSave.class) @RequestBody Certificate certificate) {
public ResultObj addCertificate(@Validated(GroupSave.class) @RequestBody Certificate certificate) {
Certificate addCertificate = certificateService.addEntity(certificate);
ResultObj<Certificate> resultObj = new ResultObj(addCertificate, addCertificate != null ? "success" : "插入失败,出现未知的失败原因");
return resultObj;
return new ResultObj(addCertificate, addCertificate != null ? "success" : "插入失败,出现未知的失败原因");
}
@RequestMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getContractPage(@RequestBody CertificatePageableVo certificatePageableVo) {
return new ResultObj(certificateService.getList(certificatePageableVo.getCertificate(), certificatePageableVo.getPageable()), "success");
@RequestMapping(value = "/list",method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getCertificatePage(@RequestBody CertificateVo certificateVo) {
return new ResultObj(certificateService.getList(certificateVo.getCertificate(), certificateVo.getPageable()), "success");
}
@RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delContract(@Validated(GroupDelete.class) @RequestBody Certificate certificate) {
return new ResultObj(certificateService.delete(certificate.getCertificateId()), "success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delCertificate(@NotNull Long certificateId) {
return new ResultObj(certificateService.delete(certificateId), "success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getContract(@Validated(GroupDelete.class) Certificate certificate) {
return new ResultObj(certificateService.getOne(certificate.getCertificateId()), "success");
public ResultObj getContract(@NotNull Long certificateId) {
return new ResultObj(certificateService.getOne(certificateId), "success");
}
@RequestMapping(method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
......@@ -69,8 +74,13 @@ public class CertificateController {
return new ResultObj(certificateService.update(certificate), "success");
}
@RequestMapping(value = "/deleteImage",method = RequestMethod.DELETE)
public ResultObj delContractImage(@NotNull Long certificateImageId) {
return new ResultObj(certificateImageService.delete(certificateImageId), "success");
}
@RequestMapping(value = "/file",method = RequestMethod.POST)
public CertificateImage addContractImage(@RequestParam("file") MultipartFile file, @Validated(GroupSaveImage.class) Long certificateId) throws IOException {
public ResultObj addContractImage(@RequestParam("file") MultipartFile file, @Validated(GroupSaveImage.class) Long certificateId) throws IOException {
if (!file.isEmpty()) {
CertificateImage certificateImage = new CertificateImage();
//获取文件名
......@@ -80,17 +90,17 @@ public class CertificateController {
//重新生成文件名
fileName = UUID.randomUUID() + suffixName;
//指定本地存入路径
String path = ClassUtils.getDefaultClassLoader().getResource("static/images/").getPath();
String path = Objects.requireNonNull(ClassUtils.getDefaultClassLoader()).getResource("static/images/").getPath();
file.transferTo(new File(path + fileName));
Certificate certificate = new Certificate();
certificate.setCertificateId(certificateId);
certificateImage.setCertificate(certificate);
certificateImage.setUrl("/images/" + fileName);
certificateImageService.addEntity(certificateImage);
return new ResultObj(certificateImage, "success");
} else {
throw new GlobalException("文件是空的");
}
return null;
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupSaveImage;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.Contract;
import com.example.personnelmanager.entity.ContractImage;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.ContractPageableVo;
import com.example.personnelmanager.entity.vo.ContractVo;
import com.example.personnelmanager.service.ContractImageService;
import com.example.personnelmanager.service.ContractService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,8 +17,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.Objects;
import java.util.UUID;
/**
......@@ -42,23 +43,22 @@ public class ContractController {
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<Contract> addContract(@Validated(GroupSave.class) @RequestBody Contract contract) {
Contract addContract = contractService.addEntity(contract);
ResultObj<Contract> resultObj = new ResultObj(addContract, addContract != null ? "success" : "插入失败,出现未知的失败原因");
return resultObj;
return (ResultObj<Contract>) new ResultObj(addContract, addContract != null ? "success" : "插入失败,出现未知的失败原因");
}
@RequestMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getContractPage(@RequestBody ContractPageableVo contractVo) {
@RequestMapping(value = "/list", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getContractPage(@RequestBody ContractVo contractVo) {
return new ResultObj(contractService.getList(contractVo.getContract(), contractVo.getPageable()), "success");
}
@RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delContract(@Validated(GroupDelete.class) @RequestBody Contract contract) {
return new ResultObj(contractService.delete(contract.getContractId()), "success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delContract(@NotNull Long contractId) {
return new ResultObj(contractService.delete(contractId), "success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getContract(@Validated(GroupDelete.class) Contract contract) {
return new ResultObj(contractService.getOne(contract.getContractId()), "success");
public ResultObj getContract(@NotNull Long contractId) {
return new ResultObj(contractService.getOne(contractId), "success");
}
@RequestMapping(method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
......@@ -66,8 +66,13 @@ public class ContractController {
return new ResultObj(contractService.update(contract), "success");
}
@RequestMapping(value = "/file",method = RequestMethod.POST)
public ContractImage addContractImage(@RequestParam("file") MultipartFile file,@Validated(GroupSaveImage.class) Long contractId) throws IOException {
@RequestMapping(value = "/deleteImage",method = RequestMethod.DELETE)
public ResultObj delContractImage(@NotNull Long contractImageId) {
return new ResultObj(contractImageService.delete(contractImageId), "success");
}
@RequestMapping(value = "/file", method = RequestMethod.POST)
public ResultObj<ContractImage> addContractImage(@RequestParam("file") MultipartFile file, @Validated(GroupSaveImage.class) Long contractId) throws IOException {
if (!file.isEmpty()) {
ContractImage contractImage = new ContractImage();
//获取文件名
......@@ -77,17 +82,18 @@ public class ContractController {
//重新生成文件名
fileName = UUID.randomUUID() + suffixName;
//指定本地存入路径
String path = ClassUtils.getDefaultClassLoader().getResource("static/images/").getPath();
String path = Objects.requireNonNull(ClassUtils.getDefaultClassLoader()).getResource("static/images/").getPath();
// String path = "/www/"
file.transferTo(new File(path + fileName));
Contract contract = new Contract();
contract.setContractId(contractId);
contractImage.setContract(contract);
contractImage.setUrl("/images/" + fileName);
contractImageService.addEntity(contractImage);
return new ResultObj(contractImage, "success");
} else {
throw new GlobalException("文件是空的");
}
return null;
}
}
package com.example.personnelmanager.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.*;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.EducationalExperienceVo;
import com.example.personnelmanager.service.EducationImageService;
import com.example.personnelmanager.service.EducationalExperienceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
* @author HuangXiahao
......@@ -15,4 +32,65 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/api/educationalExperience")
public class EducationalExperienceController {
@Autowired
EducationalExperienceService educationalExperienceService;
@Autowired
EducationImageService educationImageService;
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<Certificate> addEducationalExperience(@Validated(GroupSave.class) @RequestBody EducationalExperience educationalExperience) {
EducationalExperience addEducationalExperience = educationalExperienceService.addEntity(educationalExperience);
ResultObj<Certificate> resultObj = new ResultObj(addEducationalExperience, addEducationalExperience != null ? "success" : "插入失败,出现未知的失败原因");
return resultObj;
}
@RequestMapping(value = "/list",method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getContractPage(@RequestBody EducationalExperienceVo educationalExperienceVo) {
return new ResultObj(educationalExperienceService.getList(educationalExperienceVo.getEducationalExperience(), educationalExperienceVo.getPageable()), "success");
}
@RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delContract(@NotNull Long educationalExperienceId) {
return new ResultObj(educationalExperienceService.delete(educationalExperienceId), "success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getContract(@NotNull Long educationalExperienceId) {
return new ResultObj(educationalExperienceService.getOne(educationalExperienceId), "success");
}
@RequestMapping(method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj updateContract(@Validated(GroupUpdate.class) @RequestBody EducationalExperience educationalExperience) {
return new ResultObj(educationalExperienceService.update(educationalExperience), "success");
}
@RequestMapping(value = "/deleteImage",method = RequestMethod.DELETE)
public ResultObj delContractImage(@NotNull Long educationalExperienceImageId) {
return new ResultObj(educationImageService.delete(educationalExperienceImageId), "success");
}
@RequestMapping(value = "/file",method = RequestMethod.POST)
public ResultObj<CertificateImage> addContractImage(@RequestParam("file") MultipartFile file, Long educationalExperienceImageId) throws IOException {
if (!file.isEmpty()) {
EducationImage educationImage = new EducationImage();
//获取文件名
String fileName = file.getOriginalFilename();
//获取文件后缀
String suffixName = fileName.substring(fileName.lastIndexOf("."));
//重新生成文件名
fileName = UUID.randomUUID() + suffixName;
//指定本地存入路径
String path = ClassUtils.getDefaultClassLoader().getResource("static/images/").getPath();
file.transferTo(new File(path + fileName));
EducationalExperience educationalExperience = new EducationalExperience();
educationalExperience.setEducationalId(educationalExperienceImageId);
educationImage.setEducationalExperience(educationalExperience);
educationImage.setUrl("/images/" + fileName);
educationImageService.addEntity(educationImage);
return new ResultObj(educationImage, "success");
} else {
throw new GlobalException("文件是空的");
}
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.LegalEntity;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.LegalEntityPageableVo;
import com.example.personnelmanager.entity.vo.LegalEntityVo;
import com.example.personnelmanager.service.LegalEntityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
......@@ -34,19 +35,19 @@ public class LegalEntityController {
return resultObj;
}
@RequestMapping(value = "/list",produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getLegalEntityPage(@RequestBody LegalEntityPageableVo legalEntityPageableVo){
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getLegalEntityPage(@RequestBody LegalEntityVo legalEntityPageableVo){
return new ResultObj(legalEntityService.getList(legalEntityPageableVo.getLegalEntity(), legalEntityPageableVo.getPageable()),"success");
}
@RequestMapping(method = RequestMethod.DELETE,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delLegalEntity(@Validated(GroupDelete.class) @RequestBody LegalEntity legalEntity){
return new ResultObj(legalEntityService.delete(legalEntity.getLegalEntityId()),"success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delLegalEntity(@NotNull Long legalEntityId){
return new ResultObj(legalEntityService.delete(legalEntityId),"success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getLegalEntity(@Validated(GroupDelete.class) LegalEntity legalEntity){
return new ResultObj(legalEntityService.getOne(legalEntity.getLegalEntityId()),"success");
public ResultObj getLegalEntity(@NotNull Long legalEntityId){
return new ResultObj(legalEntityService.getOne(legalEntityId),"success");
}
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
......
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
......@@ -46,12 +47,12 @@ public class OrganizationNodeController {
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getOrganizationNode(@Validated(GroupDelete.class) Long nodeId){
public ResultObj getOrganizationNode(@NotNull Long nodeId){
return new ResultObj(organizationNodeService.getOne(nodeId),"success");
}
@RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delOrganizationNode(@Validated(GroupDelete.class) @RequestBody Long nodeId) {
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delOrganizationNode(@NotNull Long nodeId) {
return new ResultObj(organizationNodeService.delete(nodeId), "success");
}
......
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupSaveImage;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.*;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.PeoplePageableVo;
import com.example.personnelmanager.entity.vo.PeopleVo;
import com.example.personnelmanager.service.PeopleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
* @author HuangXiahao
......@@ -36,19 +42,19 @@ public class PeopleController {
return resultObj;
}
@RequestMapping(value = "/list",produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getPeoplePage(@RequestBody PeoplePageableVo peoplePageableVo){
return new ResultObj(peopleService.getList(peoplePageableVo.getPeople(), peoplePageableVo.getPageable()),"success");
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getPeoplePage(@RequestBody PeopleVo peopleDto){
return new ResultObj(peopleService.getList(peopleDto),"success");
}
@RequestMapping(method = RequestMethod.DELETE,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delPeople(@Validated(GroupDelete.class) @RequestBody People people){
return new ResultObj(peopleService.delete(people.getPeopleId()),"success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delPeople(@NotNull Long peopleId){
return new ResultObj(peopleService.delete(peopleId),"success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getPeople(@Validated(GroupDelete.class) People people){
return new ResultObj(peopleService.getOne(people.getPeopleId()),"success");
public ResultObj getPeople(@NotNull Long peopleId){
return new ResultObj(peopleService.getOne(peopleId),"success");
}
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
......@@ -56,5 +62,56 @@ public class PeopleController {
return new ResultObj(peopleService.update(people),"success");
}
@RequestMapping(value = "/leave",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<People> leave(@Validated(GroupSave.class) @RequestBody LeaveInformation leaveInformation){
People leave = peopleService.leave(leaveInformation);
ResultObj<People> resultObj = new ResultObj(leave,"success");
return resultObj;
}
@RequestMapping(value = "/againEntry",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<People> againEntry(@Validated(GroupSave.class) @RequestBody AgainEntryInformation againEntryInformation){
People leave = peopleService.againEntry(againEntryInformation);
ResultObj<People> resultObj = new ResultObj(leave,"success");
return resultObj;
}
@RequestMapping(value = "/becomeRegularWorker",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<People> becomeRegularWorker(@Validated(GroupSave.class) @RequestBody BecomeRegularWorkerInformation becomeRegularWorkerInformation){
People leave = peopleService.becomeRegularWorker(becomeRegularWorkerInformation);
ResultObj<People> resultObj = new ResultObj(leave,"success");
return resultObj;
}
@RequestMapping(value = "/file",method = RequestMethod.POST)
public People addContractImage(@RequestParam("file") MultipartFile file, @Validated(GroupSaveImage.class) Long peopleId,String type) throws IOException {
if (!file.isEmpty()) {
//获取文件名
String fileName = file.getOriginalFilename();
//获取文件后缀
String suffixName = fileName.substring(fileName.lastIndexOf("."));
//重新生成文件名
fileName = UUID.randomUUID() + suffixName;
//指定本地存入路径
String path = ClassUtils.getDefaultClassLoader().getResource("static/images/").getPath();
file.transferTo(new File(path + fileName));
if (!StringUtils.isEmpty(type)){
People one = peopleService.getOne(peopleId);
if (type.equals("front")){
one.setIdCardFrontUrl("/images/" + fileName);
}else if (type.equals("back")){
one.setIdCardBackUrl("/images/"+fileName);
}else {
throw new GlobalException("请输入证件照片属于哪一面");
}
peopleService.update(one);
return one;
}else {
throw new GlobalException("请输入证件照片属于哪一面");
}
} else {
throw new GlobalException("文件是空的");
}
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.JobTransferInformation;
import com.example.personnelmanager.entity.PeoplePost;
import com.example.personnelmanager.entity.Post;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.JobTranferVo;
import com.example.personnelmanager.service.JobTransferInformationService;
import com.example.personnelmanager.service.PeoplePostService;
import com.example.personnelmanager.service.PostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @author HuangXiahao
* @version V1.0
* @class PeoplePostController
* @packageName com.example.personnelmanager.controller
* @data 2020/5/22
**/
@RestController
@RequestMapping("/api/peoplePost")
public class PeoplePostController {
@Autowired
PeoplePostService peoplePostService;
@Autowired
JobTransferInformationService jobTransferInformationService;
@Autowired
PostService postService;
//为人员新增岗位
@RequestMapping(method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj addPeoplePost(@Validated(GroupSave.class) @RequestBody PeoplePost peoplePost){
PeoplePost addPeoplePost = peoplePostService.addEntity(peoplePost);
ResultObj<PeoplePost> resultObj = new ResultObj(addPeoplePost,addPeoplePost!=null?"success":"插入失败,出现未知的失败原因");
return resultObj;
}
/***
* 描述:人员换岗接口
*
* @param jobTranferVo 换岗所必须得属性
* @Return : com.example.personnelmanager.entity.commnEntity.ResultObj
* @Author : HuangXiahao
* @Date : 2020/5/25 9:53
*/
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
@Transactional
public ResultObj updatePeoplePost(@Validated(GroupUpdate.class) @RequestBody JobTranferVo jobTranferVo){
PeoplePost befor = peoplePostService.getOne(jobTranferVo.getPeoplePostId());
if (befor==null){
throw new GlobalException("原岗位记录不存在");
}
JobTransferInformation jobTransferInformation = new JobTransferInformation();
jobTransferInformation.setBeforePost(befor.getPost());
jobTransferInformation.setRemark(jobTranferVo.getRemark());
jobTransferInformation.setPeople(befor.getPeople());
//如果AfterPostId存在则为调岗,如果不存在则为离岗
if (jobTranferVo.getAfterPostId()!=null){
Post after = postService.getOne(jobTranferVo.getAfterPostId());
if (after==null){
throw new GlobalException("目标的岗位不存在");
}
befor.setPost(after);
jobTransferInformation.setAfterPost(after);
jobTransferInformationService.addEntity(jobTransferInformation);
return new ResultObj(peoplePostService.update(befor),"success");
}else {
jobTransferInformationService.addEntity(jobTransferInformation);
return new ResultObj(peoplePostService.delete(befor.getId()),"success");
}
}
}
......@@ -36,14 +36,14 @@ public class PostController {
return resultObj;
}
@RequestMapping(value = "/list",produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getPostPage(@RequestBody PostPageableVo postPageableVo){
return new ResultObj(postService.getList(postPageableVo.getPost(),postPageableVo.getPageable()),"success");
}
@RequestMapping(method = RequestMethod.DELETE,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delPost(@Validated(GroupDelete.class) @RequestBody Post post){
return new ResultObj(postService.delete(post.getPostId()),"success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delPost(Long postId){
return new ResultObj(postService.delete(postId),"success");
}
@RequestMapping(method = RequestMethod.GET)
......
package com.example.personnelmanager.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.Title;
import com.example.personnelmanager.entity.TitleImage;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.TitleVo;
import com.example.personnelmanager.service.TitleImageService;
import com.example.personnelmanager.service.TitleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
* @author HuangXiahao
......@@ -14,4 +32,65 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/title")
public class TitleController {
@Autowired
TitleService titleService;
@Autowired
TitleImageService titleImageService;
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<Title> addTitle(@Validated(GroupSave.class) @RequestBody Title title) {
Title addTitle = titleService.addEntity(title);
return (ResultObj<Title>) new ResultObj(addTitle, addTitle != null ? "success" : "插入失败,出现未知的失败原因");
}
@RequestMapping(value = "/list",method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getTitlePage(@RequestBody TitleVo titleVo) {
return new ResultObj(titleService.getList(titleVo.getTitle(), titleVo.getPageable()), "success");
}
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delContract(@NotNull Long titleId) {
return new ResultObj(titleService.delete(titleId), "success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getTitle(@NotNull Long titleId) {
return new ResultObj(titleService.getOne(titleId), "success");
}
@RequestMapping(method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj updateTitle(@Validated(GroupUpdate.class) @RequestBody Title title) {
return new ResultObj(titleService.update(title), "success");
}
@RequestMapping(value = "/deleteImage",method = RequestMethod.DELETE)
public ResultObj delTitleImage(@NotNull Long titleImageId) {
return new ResultObj(titleImageService.delete(titleImageId), "success");
}
@RequestMapping(value = "/file",method = RequestMethod.POST)
public ResultObj<Title> addTitleImage(@RequestParam("file") MultipartFile file, @NotNull Long titleId) throws IOException {
if (!file.isEmpty()) {
TitleImage titleImage = new TitleImage();
//获取文件名
String fileName = file.getOriginalFilename();
//获取文件后缀
String suffixName = fileName.substring(fileName.lastIndexOf("."));
//重新生成文件名
fileName = UUID.randomUUID() + suffixName;
//指定本地存入路径
String path = ClassUtils.getDefaultClassLoader().getResource("static/images/").getPath();
file.transferTo(new File(path + fileName));
Title title = new Title();
title.setTitleId(titleId);
titleImage.setTitle(title);
titleImage.setUrl("/images/" + fileName);
titleImageService.addEntity(titleImage);
return new ResultObj(titleImageService, "success");
} else {
throw new GlobalException("文件是空的");
}
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.Urgent;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.UrgentPageableVo;
import com.example.personnelmanager.service.UrgentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
* @class UrgentController
* @packageName com.example.personnelmanager.controller
* @data 2020/5/27
**/
@RestController
@RequestMapping("/api/urgent")
public class UrgentController {
@Autowired
UrgentService urgentService;
@RequestMapping(method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<People> addUrgent(@Validated(GroupSave.class) @RequestBody Urgent urgent){
Urgent addUrgent = urgentService.addEntity(urgent);
ResultObj<People> resultObj = new ResultObj(addUrgent,addUrgent!=null?"success":"插入失败,出现未知的失败原因");
return resultObj;
}
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getUrgentPage(@RequestBody UrgentPageableVo urgentPageableVo){
return new ResultObj(urgentService.getList(urgentPageableVo.getUrgent(), urgentPageableVo.getPageable()),"success");
}
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delUrgent(@NotNull Long urgentId){
return new ResultObj(urgentService.delete(urgentId),"success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getUrgent(@NotNull Long urgentId){
return new ResultObj(urgentService.getOne(urgentId),"success");
}
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj updateUrgent(@Validated(GroupUpdate.class) @RequestBody Urgent urgent){
return new ResultObj(urgentService.update(urgent),"success");
}
}
......@@ -30,8 +30,7 @@ public class UserController {
@RequestMapping(method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<LegalEntity> addUser(@Validated(GroupSave.class) @RequestBody User user){
User addUser = userServer.addEntity(user);
ResultObj<LegalEntity> resultObj = new ResultObj(addUser,addUser!=null?"success":"插入失败,出现未知的失败原因");
return resultObj;
return (ResultObj<LegalEntity>) new ResultObj(addUser,addUser!=null?"success":"插入失败,出现未知的失败原因");
}
}
package com.example.personnelmanager.controller;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.Urgent;
import com.example.personnelmanager.entity.WorkExperience;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.vo.UrgentPageableVo;
import com.example.personnelmanager.entity.vo.WorkExperiencePageableVo;
import com.example.personnelmanager.service.WorkExperienceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkExperienceController
* @packageName com.example.personnelmanager.controller
* @data 2020/5/28
**/
@RestController
@RequestMapping("/api/workExperience")
public class WorkExperienceController {
@Autowired
WorkExperienceService workExperienceService;
@RequestMapping(method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<WorkExperience> addWorkExperience(@Validated(GroupSave.class) @RequestBody WorkExperience workExperience){
WorkExperience addWorkExperience = workExperienceService.addEntity(workExperience);
return (ResultObj<WorkExperience>) new ResultObj(addWorkExperience,addWorkExperience!=null?"success":"插入失败,出现未知的失败原因");
}
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getWorkExperiencePage(@RequestBody WorkExperiencePageableVo workExperiencePageableVo){
return new ResultObj(workExperienceService.getList(workExperiencePageableVo.getWorkExperience(), workExperiencePageableVo.getPageable()),"success");
}
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delUrgent(@NotNull Long workExperienceId){
return new ResultObj(workExperienceService.delete(workExperienceId),"success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getUrgent(@NotNull Long workExperienceId){
return new ResultObj(workExperienceService.getOne(workExperienceId),"success");
}
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj updateUrgent(@Validated(GroupUpdate.class) @RequestBody WorkExperience workExperience){
return new ResultObj(workExperienceService.update(workExperience),"success");
}
}
......@@ -6,7 +6,7 @@ import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.example.personnelmanager.entity.LegalEntity;
import com.example.personnelmanager.entity.WorkPlace;
import com.example.personnelmanager.entity.commnEntity.ResultObj;
import com.example.personnelmanager.entity.dto.WorkPlaceDto;
import com.example.personnelmanager.entity.vo.WorkPlaceVo;
import com.example.personnelmanager.entity.vo.WorkPlacePageableVo;
import com.example.personnelmanager.service.WorkPlaceService;
import org.springframework.beans.BeanUtils;
......@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
......@@ -33,31 +35,30 @@ public class WorkPlaceController {
WorkPlaceService workPlaceService;
@RequestMapping(method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj<LegalEntity> addLWorkPlace(@Validated(GroupSave.class) @RequestBody WorkPlaceDto workPlaceDto){
public ResultObj<LegalEntity> addLWorkPlace(@Validated(GroupSave.class) @RequestBody WorkPlaceVo workPlaceDto){
WorkPlace workPlace = new WorkPlace();
BeanUtils.copyProperties(workPlaceDto,workPlace);
WorkPlace addWork = workPlaceService.addEntity(workPlace);
ResultObj<LegalEntity> resultObj = new ResultObj(addWork,addWork!=null?"success":"插入失败,出现未知的失败原因");
return resultObj;
return (ResultObj<LegalEntity>) new ResultObj(addWork,addWork!=null?"success":"插入失败,出现未知的失败原因");
}
@RequestMapping(value = "/list",produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "/list",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj getWorkPlacePage(@RequestBody WorkPlacePageableVo workPlaceVo){
return new ResultObj(workPlaceService.getList(workPlaceVo.getWorkPlace(),workPlaceVo.getPageable()),"success");
}
@RequestMapping(method = RequestMethod.DELETE,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj delWorkPlace(@Validated(GroupDelete.class) @RequestBody WorkPlace workPlace){
return new ResultObj(workPlaceService.delete(workPlace.getWorkPlaceId()),"success");
@RequestMapping(method = RequestMethod.DELETE)
public ResultObj delWorkPlace(@NotNull Long workPlaceId){
return new ResultObj(workPlaceService.delete(workPlaceId),"success");
}
@RequestMapping(method = RequestMethod.GET)
public ResultObj getWorkPlace(@Validated(GroupDelete.class) WorkPlace workPlace){
return new ResultObj(workPlaceService.getOne(workPlace.getWorkPlaceId()),"success");
public ResultObj getWorkPlace(@NotNull Long workPlaceId){
return new ResultObj(workPlaceService.getOne(workPlaceId),"success");
}
@RequestMapping(method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
public ResultObj updateWorkPlace(@Validated(GroupUpdate.class) @RequestBody WorkPlaceDto workPlaceDto){
public ResultObj updateWorkPlace(@Validated(GroupUpdate.class) @RequestBody WorkPlaceVo workPlaceDto){
WorkPlace workPlace = new WorkPlace();
BeanUtils.copyProperties(workPlaceDto,workPlace);
return new ResultObj(workPlaceService.update(workPlace),"success");
......
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.AgainEntryInformation;
import com.example.personnelmanager.entity.CertificateImage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author HuangXiahao
* @version V1.0
* @class Again
* @packageName com.example.personnelmanager.dao
* @data 2020/5/29
**/
public interface AgainEntryInformationRepository extends JpaRepository<AgainEntryInformation, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.BecomeRegularWorkerInformation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface BecomeRegularWorkerRepository extends JpaRepository<BecomeRegularWorkerInformation, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.EducationImage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author HuangXiahao
* @version V1.0
* @class EducationImageRepository
* @packageName com.example.personnelmanager.dao
* @data 2020/5/22
**/
public interface EducationImageRepository extends JpaRepository<EducationImage, Long> , JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.EducationImage;
import com.example.personnelmanager.entity.JobTransferInformation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author HuangXiahao
* @version V1.0
* @class JobTransferInformationRepository
* @packageName com.example.personnelmanager.dao
* @data 2020/5/24
**/
public interface JobTransferInformationRepository extends JpaRepository<JobTransferInformation, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.LeaveInformation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface LeaveInformationRepository extends JpaRepository<LeaveInformation, Long>, JpaSpecificationExecutor {
}
......@@ -19,4 +19,6 @@ public interface OrganizationNodeRepository extends JpaRepository<OrganizationNo
@Query("update OrganizationNode o set o.deleteTag = 1 where o.nodeId=:nodeId or o.nodeLevel like concat('%.',:nodeId,'.%') ")
void deleteorganizationNode(Long nodeId);
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.OrganizationNode;
import com.example.personnelmanager.entity.PeoplePost;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface PeoplePostRepository extends JpaRepository<PeoplePost, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.Post;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface PeopleRepository extends JpaRepository<People, Long>, JpaSpecificationExecutor {
@Query("select p from People p where p.phone=:phone and p.enterprise.enterpriseId=:enterpriseId and p.peopleId<>:peopleId")
List<People> findByPeopleIdAndPhoneAndEnterprise(Long peopleId,String phone,Long enterpriseId);
@Query("select p from People p where p.phone=:phone and p.enterprise.enterpriseId=:enterpriseId ")
List<People> findByPhoneAndEnterprise(String phone,Long enterpriseId);
// @Query("select new com.example.personnelmanager.entity.vo.PeopleListVo(p.peopleId) from People p")
// Pageable<PeopleListVo> CustomfindAll();
}
......@@ -2,6 +2,9 @@ package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.Post;
import com.example.personnelmanager.entity.vo.PostVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
......@@ -18,11 +21,38 @@ import java.util.List;
**/
public interface PostRepository extends JpaRepository<Post, Long>, JpaSpecificationExecutor {
@Query("select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode.nodeId) from " +
"Post p where p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0")
List<PostVo> findPostListVoByEnterpriseId(Long enterpriseId);
@Query(value = "select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode,count(ps.people.peopleId)) from " +
"Post p left join PeoplePost ps on p.postId = ps.post.postId where " +
"p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0" +
"GROUP BY p.postId")
List<PostVo> findPostTreeVo(Long enterpriseId);
@Modifying
@Query("update Post o set o.deleteTag = 1 where o.organizationNode.nodeId=:nodeId or o.nodeLevel like concat('%.',:nodeId,'.%') ")
void deletePostByNodeId(Long nodeId);
@Query(value = "select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode,count(ps.people.peopleId)) from " +
"Post p left join PeoplePost ps on p.postId = ps.post.postId where " +
"p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0 and p.organizationNode.nodeId =:organizationNodeId " +
"GROUP BY p.postId")
Page<PostVo> findPostTreeVoPageableByEnterpriseIdAndOrganizationNode(Long enterpriseId,Long organizationNodeId, Pageable pageable);
@Query(value = "select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode,count(ps.people.peopleId)) from " +
"Post p left join PeoplePost ps on p.postId = ps.post.postId where " +
"p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0" +
"GROUP BY p.postId")
Page<PostVo> findPostTreeVoPageableByEnterpriseId(Long enterpriseId, Pageable pageable);
@Query(value = "select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode,count(ps.people.peopleId)) from " +
"Post p left join PeoplePost ps on p.postId = ps.post.postId where " +
"p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0 and p.postName like concat('%',:postName,'%') " +
"GROUP BY p.postId")
Page<PostVo> findPostTreeVoPageableByEnterpriseIdAndPostName(Long enterpriseId,String postName, Pageable pageable);
@Query(value = "select new com.example.personnelmanager.entity.vo.PostVo(p.postId,p.postName,p.postIntroduction,p.organizationNode,count(ps.people.peopleId)) from " +
"Post p left join PeoplePost ps on p.postId = ps.post.postId where " +
"p.enterprise.enterpriseId =:enterpriseId and p.deleteTag=0 and p.organizationNode.nodeId =:organizationNodeId and p.postName like concat('%',:postName,'%') " +
"GROUP BY p.postId")
Page<PostVo> findPostTreeVoPageableByEnterpriseIdAndOrganizationNodeAndPostName(Long enterpriseId,Long organizationNodeId,String postName, Pageable pageable);
}
......@@ -79,7 +79,7 @@ public class SimpleJpaRepositoryImpl<T, ID> extends SimpleJpaRepository<T, ID> {
for (PropertyDescriptor propertyDescriptor : pds) {
String propertyName = propertyDescriptor.getName();
Object propertyValue = srcBean.getPropertyValue(propertyName);
if (StringUtils.isEmpty(propertyValue)) {
if (propertyValue == null) {
srcBean.setPropertyValue(propertyName, null);
properties.add(propertyName);
}
......
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.Post;
import com.example.personnelmanager.entity.TitleContent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface TitleContentRepository extends JpaRepository<TitleContent, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.EducationImage;
import com.example.personnelmanager.entity.Urgent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author HuangXiahao
* @version V1.0
* @class EducationImageRepository
* @packageName com.example.personnelmanager.dao
* @data 2020/5/22
**/
public interface UrgentRepository extends JpaRepository<Urgent, Long> , JpaSpecificationExecutor {
}
package com.example.personnelmanager.dao;
import com.example.personnelmanager.entity.WorkExperience;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface WorkExperienceRepository extends JpaRepository<WorkExperience, Long>, JpaSpecificationExecutor {
}
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.time.Instant;
import java.util.List;
/**
* @author HuangXiahao
* @version V1.0
* @class AgainEntryInformation
* @packageName com.example.personnelmanager.entity
* @data 2020/5/29
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "again_entry_information")
@ToString(exclude = {"people"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
public class AgainEntryInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "again_entry_id" ,columnDefinition = "bigint comment '再入职记录编号'")
private Long againEntryId;
@Column(name = "again_entry_time" ,nullable = false, columnDefinition = "datetime comment '再入职时间'")
private Instant againEntryTime;
@Lob
@Column(name = "remarks",columnDefinition = "text comment '备注' ")
private String remarks;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional = false)
@JoinColumn(name = "people_id",columnDefinition = "bigint not null comment '人员编号'")
private People people;
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@Column(name = "delete_tag" ,nullable = false, columnDefinition = "int default 0 comment '删除标记'")
private int deleteTag;
}
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.time.Instant;
import java.util.List;
/**
* @author HuangXiahao
* @version V1.0
* @class BecomeRegularWorker
* @packageName com.example.personnelmanager.entity
* @data 2020/5/29
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "become_regular_worker_information")
@ToString(exclude = {"people"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
public class BecomeRegularWorkerInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "become_regular_worker_information_id" ,columnDefinition = "bigint comment '转正记录编号'")
private Long becomeRegularWorkerInformationId;
@Column(name = "become_regular_worker_time" , columnDefinition = "datetime comment '转正记录时间'")
private Instant becomeRegularWorkerTime;
@Lob
@Column(name = "remarks",columnDefinition = "text comment '备注' ")
private String remarks;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional = false)
@JoinColumn(name = "people_id",columnDefinition = "bigint not null comment '人员编号'")
private People people;
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@Column(name = "delete_tag" ,nullable = false, columnDefinition = "int default 0 comment '删除标记'")
private int deleteTag;
}
package com.example.personnelmanager.entity;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.time.Instant;
import java.util.List;
......@@ -21,10 +26,12 @@ import java.util.List;
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
public class Certificate {
@NotNull(groups = {GroupUpdate.class},message = "编辑时编号不能为空")
@Null(groups = {GroupSave.class},message = "新增时不能传入编号")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "certificate_id" ,columnDefinition = "bigint comment '合同编号'")
private long certificateId;
private Long certificateId;
@Column(name = "certificate_name" ,columnDefinition = "varchar(64) comment '证书名称'")
private String certificateName;
......@@ -35,12 +42,13 @@ public class Certificate {
@Column(name = "delete_tag",nullable = false,columnDefinition = "int default 0 comment '删除标记(0为正常,1为被删除)'")
private int deleteTag;
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@Column(name = "licensing_organization",columnDefinition = "varchar(64) comment '发证机关'")
private String licensingOrganization;
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@Where(clause = "delete_tag = 0")
@OneToMany(cascade = CascadeType.REFRESH,mappedBy = "certificate")
List<CertificateImage> certificateImages;
......
......@@ -22,7 +22,7 @@ public class CertificateImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "certificate_image_id" , columnDefinition = "bigint comment '证书图片编号'")
private long certificateImageId;
private Long certificateImageId;
@Lob
@Column(name = "url",columnDefinition="text comment '地址'")
......
......@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import javax.validation.constraints.Max;
......@@ -28,7 +29,7 @@ public class Contract {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "contract_id" ,columnDefinition = "bigint comment '合同编号' ")
@Min(value = 0,groups = {GroupSaveImage.class, GroupUpdate.class, GroupGetOne.class, GroupDelete.class},message = "此操作需要只能一个对象")
private long contractId;
private Long contractId;
@Column(name = "contract_company" , columnDefinition = "varchar(128) comment '合同公司' ")
private String contractCompany;
......@@ -51,13 +52,13 @@ public class Contract {
@Column(name = "remark", columnDefinition = "text comment '备注'")
private String remark;
@Column(name = "delete_tag" ,nullable = false, columnDefinition = "int default 0 comment '删除标记'")
private int deleteTag;
@Column(name = "create_time" ,nullable = false, columnDefinition = "datetime default CURRENT_TIMESTAMP comment '删除标记(0为正常,1为被删除)'")
private Instant createTime;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "contract")
private List<ContractImage> contractImages;
......
......@@ -22,7 +22,7 @@ public class ContractImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "contract_image_id",columnDefinition = "bigint comment '合同照片编号' ")
private long contractImageId;
private Long contractImageId;
@Lob
@Column(name = "url",columnDefinition = "text comment '照片地址'")
......
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -21,7 +22,7 @@ public class EducationImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "educational_image_id",columnDefinition = "bigint comment '教育经历照片编号' ")
private long educationalImageId;
private Long educationalImageId;
@Lob
@Column(name = "url",columnDefinition = " text comment '教育经历照片地址'")
......@@ -33,6 +34,7 @@ public class EducationImage {
@Column(name = "create_time",nullable = false,columnDefinition = " datetime default CURRENT_TIMESTAMP comment '创建时间'")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional = false)
@JoinColumn(name = "educational_id",nullable = false,columnDefinition = "bigint comment '教育经历编号'")
private EducationalExperience educationalExperience;
......
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.time.Instant;
......@@ -22,7 +24,7 @@ public class EducationalExperience {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "educational_id",columnDefinition = "bigint comment '合同照片编号' ")
private long educationalId;
private Long educationalId;
@Column(name = "qualifications",nullable = false,columnDefinition = "varchar(16) comment '学历(初中、高中、大专/高职、本科、硕士/MBA/EMBA、博士、其他)'")
private String qualifications;
......@@ -45,14 +47,16 @@ public class EducationalExperience {
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间'")
private Instant createTime;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL,mappedBy = "educationalExperience")
private List<EducationImage> educationImages;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional = false)
@JoinColumn(name = "people_id",columnDefinition = "bigint not null comment '人员编号'")
private People people;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name = "enterprise_id",columnDefinition = "bigint comment '所属企业'")
private Enterprise enterprise;
......
package com.example.personnelmanager.entity;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
......@@ -9,6 +10,7 @@ import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import javax.validation.constraints.Max;
import java.io.Serializable;
import java.time.Instant;
import java.util.List;
......@@ -24,10 +26,11 @@ public class Enterprise implements Serializable {
private static final long serialVersionUID = 1107313482047123539L;
@Max(value = 0,message = "所属企业不允许被修改",groups = {GroupUpdate.class})
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "enterprise_id",columnDefinition = "bigint comment '企业编号' ")
private long enterpriseId;
private Long enterpriseId;
@Column(name = "enterprise_name",nullable = false,columnDefinition = "varchar(128) comment '企业名称'")
private String enterpriseName;
......
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -15,16 +16,16 @@ import java.time.Instant;
@DynamicUpdate
@Table(name = "job_transfer_information")
@ToString(exclude = {"people"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler","people"})
public class JobTransferInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "transfer_id",columnDefinition = "bigint comment '调岗记录编号' ")
private long transferId;
@Column(name = "transfer_id",columnDefinition = "bigint comment '调岗记录编号' ")
private Long transferId;
@OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH)
@JoinColumn(name = "before_Post_id",columnDefinition = "bigint comment '换岗前岗位编号' ")
@JoinColumn(name = "before_Post_id",nullable = false,columnDefinition = "bigint comment '换岗前岗位编号' ")
private Post beforePost;
@OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH)
......@@ -32,8 +33,8 @@ public class JobTransferInformation {
private Post afterPost;
@Lob
@Column(name = "transfer_information",columnDefinition = "text comment '备注' ")
private String transferInformation;
@Column(name = "remark",columnDefinition = "text comment '备注' ")
private String remark;
@Column(name = "delete_tag",nullable = false,columnDefinition = "int default 0 comment '删除标记'")
private int deleteTag;
......@@ -41,8 +42,9 @@ public class JobTransferInformation {
@Column(name = "create_time",nullable = false,columnDefinition = " datetime default CURRENT_TIMESTAMP comment '删除标记(0为正常,1为被删除)'")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "people_id",columnDefinition = "bigint comment '所属人员'")
@JoinColumn(name = "people_id",nullable = false,columnDefinition = "bigint comment '所属人员'")
private People people;
}
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -20,8 +21,8 @@ public class LeaveInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "enterprise_id",columnDefinition = "bigint comment '企业编号' ")
private long leaveId;
@Column(name = "leave_id",columnDefinition = "bigint comment '企业编号' ")
private Long leaveId;
@Column(name = "leave_type",columnDefinition = "varchar(16) comment '离职类型(主动离职,被动离职,其他)' ")
private String leaveType;
......@@ -36,6 +37,9 @@ public class LeaveInformation {
@Column(name = "last_work_time",columnDefinition = "datetime comment '最后工作日期' ")
private Instant lastWorkTime;
@Column(name = "apply_time",columnDefinition = "datetime comment '申请日期' ")
private Instant applyTime;
@Column(name = "pay_time",columnDefinition = "datetime comment '薪酬结算日期' ")
private Instant payTime;
......@@ -49,6 +53,7 @@ public class LeaveInformation {
@Column(name = "create_time",nullable = false,columnDefinition = " datetime default CURRENT_TIMESTAMP comment '删除标记(0为正常,1为被删除)'")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "people_id",columnDefinition = "bigint comment '所属人员'")
private People people;
......
......@@ -33,7 +33,7 @@ public class LegalEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "legal_entity_id",columnDefinition = "bigint comment '企业编号' ")
private long legalEntityId;
private Long legalEntityId;
@NotNull(groups = {GroupSave.class,GroupUpdate.class},message = "法律实体名称不能为空")
@Column(name = "legal_entity_name",nullable = false,columnDefinition = "varchar(128) comment '法律实体名称' ")
......@@ -74,7 +74,7 @@ public class LegalEntity {
@JoinColumn(name = "enterprise_id",nullable = false,columnDefinition = "bigint comment '所属企业'")
private Enterprise enterprise;
@JsonIgnore
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "legalEntity")
private List<OrganizationNode> organizationNodes;
......
......@@ -32,7 +32,7 @@ public class OrganizationNode {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "node_id",columnDefinition = "bigint comment '节点编号' ")
private long nodeId;
private Long nodeId;
@NotNull(groups = {GroupSave.class},message = "节点名称不能为空")
@Column(name = "node_name",nullable = false,columnDefinition = "varchar(64) comment '节点名称' ")
......@@ -41,9 +41,8 @@ public class OrganizationNode {
@Min(value = 0,groups = {GroupUpdate.class})
@NotNull(groups = {GroupSave.class},message = "上级节点不能为空")
@Column(name = "parent_node",columnDefinition = "bigint comment '上级节点' ")
private long parentNode;
private Long parentNode;
@NotNull(groups = {GroupSave.class},message = "节点类型不能为空")
@Column(name = "node_type",columnDefinition = "varchar(32) comment '节点类型' ")
private String nodeType;
......
package com.example.personnelmanager.entity;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.validIGroup.GroupGetOne;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.time.Instant;
import java.util.ArrayList;
import java.time.temporal.ChronoField;
import java.util.Date;
import java.util.List;
......@@ -26,17 +23,16 @@ import java.util.List;
@DynamicUpdate
@Table(name = "people")
@ToString(exclude = {"enterprise"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler","enterprise","people"})
public class People {
@Id
@NotNull(groups = {GroupDelete.class, GroupGetOne.class, GroupUpdate.class})
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "people_id")
private long peopleId;
private Long peopleId;
@NotNull(groups = {GroupSave.class})
@Column(name = "name",nullable = false,columnDefinition = "varchar(16) comment '所属企业'")
@NotNull(groups = {GroupSave.class},message = "姓名不能为空")
@Column(name = "name",nullable = false,columnDefinition = "varchar(16) comment '姓名'")
private String name;
@Column(name = "sex",columnDefinition = "varchar(8) comment '性别'")
......@@ -45,17 +41,17 @@ public class People {
@Column(name = "age",columnDefinition = "int comment '年龄'")
private int age;
@NotNull(groups = {GroupSave.class})
@NotNull(groups = {GroupSave.class},message = "手机号码不能为空")
@Column(name = "phone",nullable = false,columnDefinition = "varchar(16) comment '手机号码'")
private String phone;
@Column(name = "working_number",columnDefinition = "varchar(16) comment '工号'")
private String workingNumber;
@Column(name = "working_age",columnDefinition = "decimal(8,1) comment '工龄'")
@Column(name = "working_age",columnDefinition = "decimal(8,1) default 0.0 comment '工龄'")
private double workingAge;
@Column(name = "history_working_age",columnDefinition = "decimal(8,1) comment '历史工龄'")
@Column(name = "history_working_age",columnDefinition = "decimal(8,1) default 0.0 comment '历史工龄'")
private double historyWorkingAge;
@Column(name = "politic_countenance",columnDefinition = "varchar(16) comment '政治面貌'")
......@@ -108,7 +104,7 @@ public class People {
@Column(name = "paycard_bank",columnDefinition = "varchar(32) comment '工资卡开户行'")
private String paycardBank;
@Column(name = "job_status",columnDefinition = "varchar(8) comment '在职状态具有以下几种:在职、离职、待入职、实习、试用、退休。其中实习、试用由用户填写的试用结束时间和实习结束时间决定,若用户填写实习结束时间并且时间晚于当前时间则人员处于实习状态,若用户填写试用结束时间并且时间晚于当前时间则人员处于试用状态。其余状态由用户手动变更'")
@Column(name = "job_status",nullable = false,columnDefinition = "varchar(8) comment '在职状态具有以下几种:在职、离职、待入职、实习、试用、退休。其中实习、试用由用户填写的试用结束时间和实习结束时间决定,若用户填写实习结束时间并且时间晚于当前时间则人员处于实习状态,若用户填写试用结束时间并且时间晚于当前时间则人员处于试用状态。其余状态由用户手动变更'")
private String jobStatus;
@Column(name = "highest_education",columnDefinition = "varchar(16) comment '最高学历(初中、高中、大专/高职、本科、硕士/MBA/EMBA、博士、其他)'")
......@@ -126,7 +122,7 @@ public class People {
@Column(name = "current_residence",columnDefinition = "varchar(255) comment '现居住地'")
private String currentResidence;
@NotNull(groups = {GroupSave.class})
@NotNull(groups = {GroupSave.class},message = "入职时间不能为空")
@Column(name = "entry_time",nullable = false,columnDefinition = "datetime comment '入职时间'")
private Instant entryTime;
......@@ -141,34 +137,57 @@ public class People {
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@Max(value = 0,message = "所属企业不允许被修改",groups = {GroupUpdate.class})
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name = "enterprise_id",columnDefinition = "bigint comment '所属企业'")
private Enterprise enterprise;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<Certificate> certificates ;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<Contract> contracts;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<EducationalExperience> educationalExperiences;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<Urgent> urgents;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<Title> titles;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<JobTransferInformation> jobTransferInformations;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<LeaveInformation> leaveInformations;
@Where(clause = "delete_tag = 0")
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<WorkExperience> workExperiences;
@JsonIgnoreProperties(value={"people"})
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<PeoplePost> peoplePosts;
@JsonIgnoreProperties(value={"people"})
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REFRESH,mappedBy = "people")
private List<BecomeRegularWorkerInformation> becomeRegularWorkerInformations;
public double getWorkingAge(){
if (entryTime!=null){
return (Instant.now().getLong(ChronoField.INSTANT_SECONDS) - entryTime.getLong(ChronoField.INSTANT_SECONDS))/(31536000);
}
return 0.00;
}
}
package com.example.personnelmanager.entity;
import com.example.personnelmanager.common.validIGroup.GroupDelete;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
......@@ -19,17 +27,29 @@ import java.io.Serializable;
@DynamicInsert
@Table(name = "people_post")
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@ToString(exclude = {"post"})
@Data
public class PeoplePost implements Serializable {
private static final long serialVersionUID = 1207408282047173539L;
@Id
@ManyToOne()
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id" ,columnDefinition = "bigint comment '编号'")
@Min(value = 1,groups = {GroupDelete.class,GroupUpdate.class})
private Long id;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@NotNull(groups = {GroupSave.class})
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name="people_id")
private People people;
@Id
@ManyToOne()
@NotNull(groups = {GroupSave.class})
@JsonIgnoreProperties(value = {"enterprise"})
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name="post_id")
private Post post;
}
package com.example.personnelmanager.entity;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.CollectionId;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.time.Instant;
import java.util.List;
......@@ -14,15 +20,15 @@ import java.util.List;
@Entity
@DynamicInsert
@DynamicUpdate
@ToString(exclude = {"organizationNode","enterprise","duty"})
@ToString(exclude = {"enterprise"})
@Table(name = "post")
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler","enterprise"})
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "post_id",columnDefinition = "bigint comment '岗位编号' ")
private long postId;
private Long postId;
@Column(name = "post_name",nullable = false,columnDefinition = "varchar(64) comment '岗位名称' ")
private String postName;
......@@ -44,15 +50,22 @@ public class Post {
@Column(name = "deleteTag",nullable = false,columnDefinition = "int default 0 comment '删除标记(0为正常,1为被删除)' ")
private int deleteTag;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "enterprise_id",columnDefinition = "bigint comment '所属企业'")
private Enterprise enterprise;
// @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@JsonIgnoreProperties(value = {"posts"}, allowSetters = true)
@NotNull(groups = {GroupSave.class, GroupUpdate.class},message = "无所属节点编号")
@ManyToOne(cascade={CascadeType.REFRESH})
@JoinColumn(name = "node_id",columnDefinition = "bigint comment '所属节点'")
private OrganizationNode organizationNode;
@Transient
private List<People> peoples;
// @Transient
// private List<People> people;
}
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.time.Instant;
......@@ -22,7 +24,7 @@ public class Title {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "title_id",columnDefinition = "bigint comment '职称编号'")
private long titleId;
private Long titleId;
@Column(name = "title_level",nullable = false,columnDefinition = "varchar(16) comment '职称等级具有以下几种:员级、助理级、中级、副高级、正高'")
private String titleLevel;
......@@ -36,16 +38,19 @@ public class Title {
@Column(name = "title_obtain_date",columnDefinition = "datetime comment '职称证书获得时间'")
private Instant titleObtainDate;
@Where(clause = "delete_tag = 0")
@Column(name = "deleteTag",nullable = false,columnDefinition = "int default 0 comment '删除标记(0为正常,1为被删除)' ")
private int deleteTag;
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "people_id",columnDefinition = "bigint comment '所属人员'")
private People people;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(fetch = FetchType.LAZY,cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
@JoinColumn(name = "enterprise_id",columnDefinition = "bigint comment '所属企业'")
private Enterprise enterprise;
......
//package com.example.personnelmanager.entity;
//
//import javax.persistence.*;
//
///**
// * @author HuangXiahao
// * @version V1.0
// * @class TitleContent
// * @packageName com.example.personnelmanager.entity
// * @data 2020/5/18
// **/
//@Entity
//public class TitleContent {
//
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// @Column(name = "title_content_id",columnDefinition = "bigint comment '职称内容编号'")
// private long titleId;
//
// private String titleLevel;
//
// private String titleType;
//}
package com.example.personnelmanager.entity;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
/**
* @author HuangXiahao
* @version V1.0
* @class TitleContent
* @packageName com.example.personnelmanager.entity
* @data 2020/5/18
**/
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "title_comtemt")
@Data
public class TitleContent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "title_content_id",columnDefinition = "bigint comment '职称内容编号'")
private Long titleId;
@Column(name = "title_level",columnDefinition = "varchar(16) comment '职称等级'")
private String titleLevel;
@Column(name = "title_type",columnDefinition = "varchar(32) comment '职称类型'")
private String titleType;
@Column(name = "title_name",columnDefinition = "varchar(64) comment '职称名称'")
private String titleName;
}
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -21,7 +22,7 @@ public class TitleImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "title_image_id",columnDefinition = "bigint comment '职称照片' ")
private long titleImageId;
private Long titleImageId;
@Lob
@Column(name = "url",columnDefinition = "text comment '图片地址' ")
......@@ -33,6 +34,7 @@ public class TitleImage {
@Column(name = "create_time",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间' ")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional = false)
@JoinColumn(name = "title_id",nullable = false,columnDefinition = "bigint comment '职称编号'")
private Title title;
......
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -21,7 +22,7 @@ public class Urgent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "urgent_id",columnDefinition = "bigint comment '紧急联系人编号'")
private long urgentId;
private Long urgentId;
@Column(name = "name",columnDefinition = "varchar(8) not null comment '姓名'")
private String name;
......@@ -41,6 +42,7 @@ public class Urgent {
@Column(name = "create_date",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间'")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "people_id",columnDefinition = "bigint comment '所属人员'")
private People people;
......
......@@ -25,7 +25,7 @@ public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id",columnDefinition = "bigint comment '用户编号'")
private long userId;
private Long userId;
@Column(name = "username",unique = true,columnDefinition = "varchar(64) comment '用户名' ")
private String username;
......
package com.example.personnelmanager.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
......@@ -21,7 +22,10 @@ public class WorkExperience {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "work_experience_id",columnDefinition = "bigint comment '工作经历编号'")
private long workExperienceId;
private Long workExperienceId;
@Column(name = "company_name",columnDefinition = "varchar(16) comment '公司名称'")
private String companyName;
@Column(name = "post",columnDefinition = "varchar(16) comment '职务'")
private String post;
......@@ -47,6 +51,7 @@ public class WorkExperience {
@Column(name = "create_date",nullable = false,columnDefinition = "datetime default CURRENT_TIMESTAMP comment '创建时间'")
private Instant createTime;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "people_id",columnDefinition = "bigint comment '所属人员'")
private People people;
......
......@@ -29,7 +29,7 @@ public class WorkPlace {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "work_place_id",columnDefinition = "bigint comment '工作地点编号'")
private long workPlaceId;
private Long workPlaceId;
@NotNull(groups = {GroupSave.class, GroupUpdate.class})
@Column(name = "work_place_name",nullable = false,columnDefinition = "varchar(64) comment '工作地点名称'")
......
package com.example.personnelmanager.entity.commnEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.util.Assert;
......@@ -10,12 +11,15 @@ import java.util.List;
public class CustomPage {
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Min(0)
private Integer page = 0;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Min(1)
private Integer size = 15;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private List<CustomOrder> orders = new ArrayList<>();
public Integer getPage() {
......
package com.example.personnelmanager.entity.dto;
/**
* @author HuangXiahao
* @version V1.0
* @class UserDto
* @packageName com.example.personnelmanager.entity.dto
* @data 2020/6/2
**/
public class UserDto {
}
package com.example.personnelmanager.entity.dto;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkExperienceDto
* @packageName com.example.personnelmanager.entity.dto
* @data 2020/6/2
**/
public class WorkExperienceDto {
}
package com.example.personnelmanager.entity.dto;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkPlaceRequestDto
* @class WorkPlaceDto
* @packageName com.example.personnelmanager.entity.dto
* @data 2020/5/20
* @data 2020/6/2
**/
@Data
public class WorkPlaceDto {
@Min(value = 1,groups = {GroupUpdate.class})
@Max(value = 0,groups = {GroupSave.class})
private long workPlaceId;
private Long workPlaceId;
@NotNull(groups = {GroupSave.class,GroupUpdate.class},message = "工作地点名称不能为空")
private String workPlaceName;
private String workPlaceArea;
private String workPlaceArea;
private String workPlaceAddress;
......@@ -33,5 +21,4 @@ public class WorkPlaceDto {
private String workPlaveDescript;
}
......@@ -12,7 +12,7 @@ import lombok.Data;
* @data 2020/5/18
**/
@Data
public class CertificatePageableVo extends CustomPage {
public class CertificateVo extends CustomPage {
private Certificate certificate;
......
......@@ -13,7 +13,7 @@ import lombok.Data;
* @data 2020/5/13
**/
@Data
public class ContractPageableVo extends CustomPage {
public class ContractVo extends CustomPage {
private Contract contract;
......
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.EducationalExperience;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
* @author HuangXiahao
* @version V1.0
* @class EducationalExperienceVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/22
**/
@Data
public class EducationalExperienceVo extends CustomPage {
private EducationalExperience educationalExperience;
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.PeoplePost;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
* @author HuangXiahao
* @version V1.0
* @class JobTranferVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/24
**/
@Data
public class JobTranferVo extends CustomPage {
private Long peoplePostId;
private Long afterPostId;
private String remark;
}
......@@ -12,7 +12,7 @@ import lombok.Data;
* @data 2020/5/13
**/
@Data
public class LegalEntityPageableVo extends CustomPage {
public class LegalEntityVo extends CustomPage {
private LegalEntity legalEntity;
......
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
import java.util.List;
/**
* 描述:节点树状结构VO
* @author HuangXiahao
* @version V1.0
* @class OrganizationNodeResponesListVo
......@@ -12,7 +14,7 @@ import java.util.List;
* @data 2020/5/18
**/
@Data
public class OrganizationNodeListVo {
public class OrganizationNodeListVo {
public OrganizationNodeListVo(long nodeId, String nodeName, long parentNode, String nodeType) {
this.nodeId = nodeId;
......@@ -21,11 +23,11 @@ public class OrganizationNodeListVo {
this.nodeType = nodeType;
}
private long nodeId;
private Long nodeId;
private String nodeName;
private long parentNode;
private Long parentNode;
private String nodeType;
......
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.time.Instant;
/**
* @author HuangXiahao
* @version V1.0
* @class PeopleListVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/21
**/
@Data
@AllArgsConstructor
public class PeopleVo extends CustomPage {
/**
* 人员编号
*/
private Long peopleId;
/**
* 人员姓名
*/
private String name;
/**
* 人员性别
*/
private String sex;
/**
* 人员身份证号码
*/
private String idCardNumber;
/**
* 人员工作状态
*/
private String jobStatus;
/**
* 年龄区间开始
*/
private Integer startAge;
/**
* 年龄区间结束
*/
private Integer endAge;
/**
* 手机号码
*/
private String phone;
/**
* 工龄区间开始
*/
private Double startWorkAge;
/**
* 工龄区间结束
*/
private Double endWorkAge;
/**
* 政治面貌
*/
private String politicCountenance;
/**
* 出生日期区间开始
*/
private Instant startBirthday;
/**
* 出生日期区间结束
*/
private Instant endBirthday;
/**
* 最高学历
*/
private String highestEducation;
/**
* 入职时间区间开始
*/
private Instant startEntryTime;
/**
* 入职时间区间结束
*/
private Instant endEntryTime;
/**
* 职称等级
*/
private String titleLevel;
/**
* 职称名称
*/
private String titleName;
/**
* 证书名称
*/
private String certificateName;
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.OrganizationNode;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
......@@ -11,20 +12,45 @@ import lombok.Data;
* @data 2020/5/19
**/
@Data
public class PostVo {
public class PostVo extends CustomPage {
public PostVo(Long postId, String postName, String postIntroduction, Long nodeId) {
public PostVo(Long postId, String postName, String postIntroduction, OrganizationNode organizationNode, Long peopleAmount) {
this.postId = postId;
this.postName = postName;
this.postIntroduction = postIntroduction;
this.nodeId = nodeId;
this.organizationNode = organizationNode;
this.peopleAmount = peopleAmount;
}
public PostVo(Long postId, String postName, String postIntroduction, OrganizationNode organizationNode) {
this.postId = postId;
this.postName = postName;
this.postIntroduction = postIntroduction;
this.organizationNode = organizationNode;
}
/**
* 职位编号
*/
private Long postId;
/**
* 职位名称
*/
private String postName;
/**
* 职务简介
*/
private String postIntroduction;
private Long nodeId;
/**
* 所属节点ID
*/
private OrganizationNode organizationNode;
/**
* 该岗位所拥有人数
*/
private Long peopleAmount;
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.Title;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
* @author HuangXiahao
* @version V1.0
* @class PeopleVo
* @class TitleVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/15
* @data 2020/5/22
**/
@Data
public class PeoplePageableVo extends CustomPage {
public class TitleVo extends CustomPage {
private People people;
private Title title;
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.Urgent;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
* @author HuangXiahao
* @version V1.0
* @class UrgentPageableVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/27
**/
@Data
public class UrgentPageableVo extends CustomPage {
private Urgent urgent;
}
package com.example.personnelmanager.entity.vo;
/**
* @author HuangXiahao
* @version V1.0
* @class UserVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/6/2
**/
public class UserVo {
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.entity.WorkExperience;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import lombok.Data;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkExperiencePageableVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/5/28
**/
@Data
public class WorkExperiencePageableVo extends CustomPage {
WorkExperience workExperience;
}
package com.example.personnelmanager.entity.vo;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkExperienceVo
* @packageName com.example.personnelmanager.entity.vo
* @data 2020/6/2
**/
public class WorkExperienceVo {
}
package com.example.personnelmanager.entity.vo;
import com.example.personnelmanager.common.validIGroup.GroupSave;
import com.example.personnelmanager.common.validIGroup.GroupUpdate;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author HuangXiahao
* @version V1.0
* @class WorkPlaceRequestDto
* @packageName com.example.personnelmanager.entity.dto
* @data 2020/5/20
**/
@Data
public class WorkPlaceVo {
private Long workPlaceId;
private String workPlaceName;
private String workPlaceArea;
private String workPlaceAddress;
private String workPlaceType;
private String workPlaveDescript;
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.AgainEntryInformation;
/**
* @author HuangXiahao
* @version V1.0
* @class AgainEntryInformationService
* @packageName com.example.personnelmanager.service
* @data 2020/5/29
**/
public interface AgainEntryInformationService extends BasicEntityService<AgainEntryInformation,Long>{
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.dao.AgainEntryInformationRepository;
import com.example.personnelmanager.entity.AgainEntryInformation;
import com.example.personnelmanager.entity.CertificateImage;
import com.example.personnelmanager.entity.LeaveInformation;
import com.example.personnelmanager.entity.People;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* @author HuangXiahao
* @version V1.0
* @class AgainEntryInformationServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/29
**/
@Service
public class AgainEntryInformationServiceImpl implements AgainEntryInformationService{
@Autowired
AgainEntryInformationRepository againEntryInformationRepository;
@Override
public AgainEntryInformation addEntity(AgainEntryInformation againEntryInformation) {
AgainEntryInformation save = againEntryInformationRepository.save(againEntryInformation);
return save;
}
@Override
public Page getList(AgainEntryInformation againEntryInformation, Pageable pageable) {
PredicateBuilder and = Specifications.and();
and.eq("deleteTag", 0);
Specification<AgainEntryInformation> specification = and.build();
Page<AgainEntryInformation> all = againEntryInformationRepository.findAll(specification, pageable);
return all;
}
@Override
public AgainEntryInformation update(AgainEntryInformation againEntryInformation) {
AgainEntryInformation after = againEntryInformationRepository.save(againEntryInformation);
return after;
}
@Override
public AgainEntryInformation getOne(Long id) {
Optional<AgainEntryInformation> byId = againEntryInformationRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("所要查询的再入职记录不存在");
}
return byId.get();
}
@Override
public Boolean delete(Long id) {
Optional<AgainEntryInformation> byId = againEntryInformationRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("不存在需要被删除的再入职记录");
}
AgainEntryInformation againEntryInformation = byId.get();
againEntryInformation.setDeleteTag(1);
againEntryInformationRepository.save(againEntryInformation);
return true;
}
}
......@@ -6,12 +6,14 @@ import org.springframework.data.domain.Pageable;
/*
* 对于实体类进行操作的相关接口需要先实现该类获取增删改查等方法
* @param T 为服务层需要操作的实体
* @param S 为主键
* */
public interface BasicEntityService<T,S> {
T addEntity(T t);
Page<T> getList(T t, Pageable pageable);
Page getList(T t, Pageable pageable);
T update(T t);
......
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.BecomeRegularWorkerInformation;
/**
* @author HuangXiahao
* @version V1.0
* @class BecomeRegularWorkerService
* @packageName com.example.personnelmanager.service
* @data 2020/5/29
**/
public interface BecomeRegularWorkerService extends BasicEntityService<BecomeRegularWorkerInformation,Long> {
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.dao.BecomeRegularWorkerRepository;
import com.example.personnelmanager.entity.AgainEntryInformation;
import com.example.personnelmanager.entity.BecomeRegularWorkerInformation;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.*;
import java.util.Optional;
/**
* @author HuangXiahao
* @version V1.0
* @class BecomeRegularWorkerServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/29
**/
@Service
public class BecomeRegularWorkerServiceImpl implements BecomeRegularWorkerService {
@Autowired
BecomeRegularWorkerRepository becomeRegularWorkerRepository;
@Override
public BecomeRegularWorkerInformation addEntity(BecomeRegularWorkerInformation becomeRegularWorkerInformation) {
BecomeRegularWorkerInformation save = becomeRegularWorkerRepository.save(becomeRegularWorkerInformation);
return save;
}
@Override
public Page getList(BecomeRegularWorkerInformation becomeRegularWorkerInformation, Pageable pageable) {
PredicateBuilder and = Specifications.and();
and.eq("deleteTag", 0);
Specification<AgainEntryInformation> specification = and.build();
Page<AgainEntryInformation> all = becomeRegularWorkerRepository.findAll(specification, pageable);
return all;
}
@Override
public BecomeRegularWorkerInformation update(BecomeRegularWorkerInformation becomeRegularWorkerInformation) {
BecomeRegularWorkerInformation after = becomeRegularWorkerRepository.save(becomeRegularWorkerInformation);
return after;
}
@Override
public BecomeRegularWorkerInformation getOne(Long id) {
Optional<BecomeRegularWorkerInformation> byId = becomeRegularWorkerRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("所要查询的转正记录不存在");
}
return byId.get();
}
@Override
public Boolean delete(Long id) {
Optional<BecomeRegularWorkerInformation> byId = becomeRegularWorkerRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("不存在需要被删除的转正记录记录");
}
BecomeRegularWorkerInformation becomeRegularWorkerInformation = byId.get();
becomeRegularWorkerInformation.setDeleteTag(1);
becomeRegularWorkerRepository.save(becomeRegularWorkerInformation);
return true;
}
}
......@@ -28,11 +28,11 @@ public class CertificateImageServiceImpl implements CertificateImageService {
}
@Override
public Page<CertificateImage> getList(CertificateImage certificateImage, Pageable pageable) {
PredicateBuilder and = Specifications.<Certificate>and();
and.eq("ContractId",certificateImage.getCertificate().getCertificateId());
public Page getList(CertificateImage certificateImage, Pageable pageable) {
PredicateBuilder and = Specifications.<CertificateImage>and();
and.eq("certificate",certificateImage.getCertificate().getCertificateId());
and.eq("deleteTag", 0);
Specification<Certificate> specification = and.build();
Specification<CertificateImage> specification = and.build();
Page<CertificateImage> all = certificateImageRepository.findAll(specification, pageable);
return all;
}
......@@ -59,7 +59,7 @@ public class CertificateImageServiceImpl implements CertificateImageService {
}
CertificateImage certificateImage = byId.get();
certificateImage.setDeleteTag(1);
certificateImageRepository.saveAndFlush(certificateImage);
certificateImageRepository.save(certificateImage);
return true;
}
}
......@@ -32,21 +32,15 @@ public class CertificateServiceImpl implements CertificateService {
@Override
public Certificate addEntity(Certificate certificate) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
UserDetail userDetails = AuthenticationUtils.getAuthentication();
certificate.setEnterprise(userDetails.getEnterprise());
Certificate save = certificateRepository.save(certificate);
return save;
}
@Override
public Page<Certificate> getList(Certificate certificate, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (userDetails==null){
throw new UsernameNotFoundException("当前无登录用户");
}
if (userDetails.getEnterprise()==null){
throw new UsernameNotFoundException("当前登录用户无权限查看该单位信息");
}
public Page getList(Certificate certificate, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder and = Specifications.<Certificate>and();
and.eq("peopleId",certificate.getPeople().getPeopleId());
and.eq("enterprise", userDetails.getEnterprise().getEnterpriseId());
......@@ -58,7 +52,7 @@ public class CertificateServiceImpl implements CertificateService {
@Override
public Certificate update(Certificate certificate) {
Certificate after = certificateRepository.saveAndFlush(certificate);
Certificate after = certificateRepository.save(certificate);
return after;
}
......@@ -79,7 +73,7 @@ public class CertificateServiceImpl implements CertificateService {
}
Certificate certificate = byId.get();
certificate.setDeleteTag(1);
certificateRepository.saveAndFlush(certificate);
certificateRepository.save(certificate);
return true;
}
}
......@@ -35,11 +35,11 @@ public class ContractImageServiceImpl implements ContractImageService {
}
@Override
public Page<ContractImage> getList(ContractImage contractImage, Pageable pageable) {
PredicateBuilder and = Specifications.<Certificate>and();
and.eq("ContractId",contractImage.getContract().getContractId());
public Page getList(ContractImage contractImage, Pageable pageable) {
PredicateBuilder and = Specifications.<ContractImage>and();
and.eq("contract",contractImage.getContract().getContractId());
and.eq("deleteTag", 0);
Specification<Certificate> specification = and.build();
Specification<ContractImage> specification = and.build();
Page<ContractImage> all = contractImageRepository.findAll(specification, pageable);
return all;
}
......@@ -66,7 +66,7 @@ public class ContractImageServiceImpl implements ContractImageService {
}
ContractImage contractImage = byId.get();
contractImage.setDeleteTag(1);
contractImageRepository.saveAndFlush(contractImage);
contractImageRepository.save(contractImage);
return true;
}
}
......@@ -32,22 +32,16 @@ public class ContractServiceImpl implements ContractService{
@Override
public Contract addEntity(Contract contract) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
UserDetail userDetails = AuthenticationUtils.getAuthentication();
contract.setEnterprise(userDetails.getEnterprise());
Contract save = contractRepository.save(contract);
return save;
}
@Override
public Page<Contract> getList(Contract contract, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (userDetails==null){
throw new UsernameNotFoundException("当前无登录用户");
}
if (userDetails.getEnterprise()==null){
throw new UsernameNotFoundException("当前登录用户无权限查看该单位信息");
}
PredicateBuilder and = Specifications.<People>and();
public Page getList(Contract contract, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder and = Specifications.<Contract>and();
and.eq("peopleId",contract.getPeople().getPeopleId());
and.eq("enterprise", userDetails.getEnterprise().getEnterpriseId());
and.eq("deleteTag", 0);
......@@ -58,7 +52,7 @@ public class ContractServiceImpl implements ContractService{
@Override
public Contract update(Contract contract) {
Contract after = contractRepository.saveAndFlush(contract);
Contract after = contractRepository.save(contract);
return after;
}
......@@ -79,7 +73,7 @@ public class ContractServiceImpl implements ContractService{
}
Contract contract = byId.get();
contract.setDeleteTag(1);
contractRepository.saveAndFlush(contract);
contractRepository.save(contract);
return true;
}
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.EducationImage;
/**
* @author HuangXiahao
* @version V1.0
* @class EducationImageService
* @packageName com.example.personnelmanager.service
* @data 2020/5/22
**/
public interface EducationImageService extends BasicEntityService<EducationImage,Long>{
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.dao.EducationImageRepository;
import com.example.personnelmanager.entity.ContractImage;
import com.example.personnelmanager.entity.EducationImage;
import com.example.personnelmanager.entity.EducationalExperience;
import com.example.personnelmanager.entity.TitleImage;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* @author HuangXiahao
* @version V1.0
* @class EducationImageServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/22
**/
@Service
public class EducationImageServiceImpl implements EducationImageService{
@Autowired
EducationImageRepository educationImageRepository;
@Override
public EducationImage addEntity(EducationImage educationImage) {
EducationImage save = educationImageRepository.save(educationImage);
return save;
}
@Override
public Page getList(EducationImage educationImage, Pageable pageable) {
PredicateBuilder and = Specifications.<EducationImage>and();
and.eq("educationalExperience",educationImage.getEducationalExperience().getEducationalId());
and.eq("deleteTag", 0);
Specification<EducationImage> specification = and.build();
Page<EducationImage> all = educationImageRepository.findAll(specification, pageable);
return all;
}
@Override
public EducationImage update(EducationImage educationImage) {
EducationImage after = educationImageRepository.save(educationImage);
return after;
}
@Override
public EducationImage getOne(Long id) {
Optional<EducationImage> byId = educationImageRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("所要查询的教育经历照片不存在");
}
return byId.get();
}
@Override
public Boolean delete(Long id) {
Optional<EducationImage> byId = educationImageRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("不存在需要被删除的教育经历照片");
}
EducationImage educationImage = byId.get();
educationImage.setDeleteTag(1);
educationImageRepository.save(educationImage);
return true;
}
}
......@@ -12,6 +12,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.Optional;
......@@ -22,6 +23,8 @@ import java.util.Optional;
* @packageName com.example.personnelmanager.service
* @data 2020/5/20
**/
@Service
public class EducationalExperienceServiceImpl implements EducationalExperienceService{
@Autowired
......@@ -29,27 +32,16 @@ public class EducationalExperienceServiceImpl implements EducationalExperienceSe
@Override
public EducationalExperience addEntity(EducationalExperience educationalExperience) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
UserDetail userDetails = AuthenticationUtils.getAuthentication();
educationalExperience.setEnterprise(userDetails.getEnterprise());
EducationalExperience save = educationalExperienceRepository.save(educationalExperience);
return save;
}
@Override
public Page<EducationalExperience> getList(EducationalExperience educationalExperience, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (userDetails==null){
throw new UsernameNotFoundException("当前无登录用户");
}
if (userDetails.getEnterprise()==null){
throw new UsernameNotFoundException("当前登录用户无权限查看该单位信息");
}
public Page getList(EducationalExperience educationalExperience, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder<EducationalExperience> and = Specifications.and();
// if (educationalExperience!=null){
// if (!StringUtils.isEmpty(workPlace.getWorkPlaceName())){
// and.like("workPlaceName","%"+workPlace.getWorkPlaceName()+"%");
// }
// }
and.eq("enterprise", userDetails.getEnterprise().getEnterpriseId());
and.eq("deleteTag", 0);
Specification<EducationalExperience> specification = and.build();
......@@ -59,7 +51,7 @@ public class EducationalExperienceServiceImpl implements EducationalExperienceSe
@Override
public EducationalExperience update(EducationalExperience educationalExperience) {
EducationalExperience after = educationalExperienceRepository.saveAndFlush(educationalExperience);
EducationalExperience after = educationalExperienceRepository.save(educationalExperience);
return after;
}
......@@ -80,7 +72,7 @@ public class EducationalExperienceServiceImpl implements EducationalExperienceSe
}
EducationalExperience educationalExperience = byId.get();
educationalExperience.setDeleteTag(1);
educationalExperienceRepository.saveAndFlush(educationalExperience);
educationalExperienceRepository.save(educationalExperience);
return true;
}
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.JobTransferInformation;
public interface JobTransferInformationService extends BasicEntityService<JobTransferInformation,Long>{
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.dao.JobTransferInformationRepository;
import com.example.personnelmanager.entity.JobTransferInformation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
/**
* @author HuangXiahao
* @version V1.0
* @class JobTransgerInformationServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/24
**/
@Service
public class JobTransferInformationServiceImpl implements JobTransferInformationService {
@Autowired
JobTransferInformationRepository jobTransferInformationRepository;
@Override
public JobTransferInformation addEntity(JobTransferInformation jobTransferInformation) {
JobTransferInformation save = jobTransferInformationRepository.save(jobTransferInformation);
return save;
}
@Override
public Page getList(JobTransferInformation jobTransferInformation, Pageable pageable) {
return null;
}
@Override
public JobTransferInformation update(JobTransferInformation jobTransferInformation) {
return null;
}
@Override
public JobTransferInformation getOne(Long id) {
return null;
}
@Override
public Boolean delete(Long id) {
return null;
}
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.LeaveInformation;
/**
* @author HuangXiahao
* @version V1.0
* @class LeaveInformationService
* @packageName com.example.personnelmanager.service
* @data 2020/5/28
**/
public interface LeaveInformationService extends BasicEntityService<LeaveInformation,Long> {
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.dao.LeaveInformationRepository;
import com.example.personnelmanager.entity.LeaveInformation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* @author HuangXiahao
* @version V1.0
* @class LeaveInformationServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/28
**/
@Service
public class LeaveInformationServiceImpl implements LeaveInformationService{
@Autowired
LeaveInformationRepository leaveInformationRepository;
@Override
public LeaveInformation addEntity(LeaveInformation leaveInformation) {
LeaveInformation save = leaveInformationRepository.save(leaveInformation);
return save;
}
@Override
public Page getList(LeaveInformation leaveInformation, Pageable pageable) {
return null;
}
@Override
public LeaveInformation update(LeaveInformation leaveInformation) {
LeaveInformation after = leaveInformationRepository.save(leaveInformation);
return after;
}
@Override
public LeaveInformation getOne(Long id) {
Optional<LeaveInformation> byId = leaveInformationRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("所要查询的离职记录不存在");
}
return byId.get();
}
@Override
public Boolean delete(Long id) {
Optional<LeaveInformation> byId = leaveInformationRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("不存在需要被删除的教育经历照片");
}
LeaveInformation leaveInformation = byId.get();
leaveInformation.setDeleteTag(1);
leaveInformationRepository.save(leaveInformation);
return true;
}
}
......@@ -30,27 +30,18 @@ public class LegalEntityServiceImpl implements LegalEntityService {
@Autowired
LegalEntityRepository legalEntityRepository;
@Override
public LegalEntity addEntity(LegalEntity legalEntity) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
UserDetail userDetails = AuthenticationUtils.getAuthentication();
legalEntity.setEnterprise(userDetails.getEnterprise());
LegalEntity save = legalEntityRepository.saveAndFlush(legalEntity);
LegalEntity save = legalEntityRepository.save(legalEntity);
return save;
}
@Override
public Page<LegalEntity> getList(LegalEntity legalEntity, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (userDetails==null){
throw new UsernameNotFoundException("当前无登录用户");
}
if (userDetails.getEnterprise()==null){
throw new UsernameNotFoundException("当前登录用户无权限查看该单位信息");
}
PredicateBuilder<LegalEntity> and = Specifications.<LegalEntity>and();
public Page getList(LegalEntity legalEntity, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder<LegalEntity> and = Specifications.and();
if (legalEntity!=null){
if (!StringUtils.isEmpty(legalEntity.getLegalEntityName())){
and.like("legalEntityName","%"+legalEntity.getLegalEntityName()+"%");
......@@ -80,7 +71,7 @@ public class LegalEntityServiceImpl implements LegalEntityService {
@Override
public LegalEntity update(LegalEntity legalEntity) {
LegalEntity after = legalEntityRepository.saveAndFlush(legalEntity);
LegalEntity after = legalEntityRepository.save(legalEntity);
return after;
}
......@@ -101,7 +92,7 @@ public class LegalEntityServiceImpl implements LegalEntityService {
}
LegalEntity legalEntity = byId.get();
legalEntity.setDeleteTag(1);
legalEntityRepository.saveAndFlush(legalEntity);
legalEntityRepository.save(legalEntity);
return true;
}
......
......@@ -43,10 +43,10 @@ public class OrganizationNodeServiceImpl implements OrganizationNodeService {
@Override
public OrganizationNode addEntity(OrganizationNode organizationNode) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (organizationNode.getParentNode()!=0l){
UserDetail userDetails = AuthenticationUtils.getAuthentication();
if (organizationNode.getParentNode()!=null){
OrganizationNode one = getOne(organizationNode.getParentNode());
if (one.getEnterprise().getEnterpriseId()!=userDetails.getEnterprise().getEnterpriseId()){
if (!one.getEnterprise().getEnterpriseId().equals(userDetails.getEnterprise().getEnterpriseId())){
throw new UsernameNotFoundException("当前登录用户无权限操作该父节点");
}
organizationNode.setNodeLevel(one.getNodeLevel()+one.getNodeId()+".");
......@@ -54,13 +54,13 @@ public class OrganizationNodeServiceImpl implements OrganizationNodeService {
organizationNode.setNodeLevel("0.");
}
organizationNode.setEnterprise(userDetails.getEnterprise());
OrganizationNode save = organizationNodeRepository.saveAndFlush(organizationNode);
OrganizationNode save = organizationNodeRepository.save(organizationNode);
return save;
}
@Override
public Page<OrganizationNode> getList(OrganizationNode organizationNode, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
public Page getList(OrganizationNode organizationNode, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder and = Specifications.<OrganizationNode>and();
and.eq("enterprise", userDetails.getEnterprise().getEnterpriseId());
and.eq("deleteTag", 0);
......@@ -69,30 +69,31 @@ public class OrganizationNodeServiceImpl implements OrganizationNodeService {
return all;
}
@Override
public List<OrganizationNodeListVo> getTree(){
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
List<PostVo> postResponseListVoList = postRepository.findPostListVoByEnterpriseId(userDetails.getEnterprise().getEnterpriseId());
UserDetail userDetails = AuthenticationUtils.getAuthentication();
List<PostVo> postResponseListVoList = postRepository.findPostTreeVo(userDetails.getEnterprise().getEnterpriseId());
List<OrganizationNodeListVo> organizationNodeListVos = organizationNodeRepository.findTreeNode(userDetails.getEnterprise().getEnterpriseId());
Map<Long, List<OrganizationNodeListVo>> nodeCollect =
organizationNodeListVos.stream().collect(Collectors.groupingBy(OrganizationNodeListVo::getParentNode));
Map<Long, List<PostVo>> postCollect =
postResponseListVoList.stream().collect(Collectors.groupingBy(PostVo::getNodeId));
List<OrganizationNodeListVo> result = nodeCollect.get(0l);
getChild(organizationNodeListVos, nodeCollect,postCollect);
List<OrganizationNodeListVo> result = nodeCollect.get(0L);
getChild(organizationNodeListVos, nodeCollect);
return result;
}
public void getChild(List<OrganizationNodeListVo> all, Map<Long, List<OrganizationNodeListVo>> nodeCollect, Map<Long, List<PostVo>> postCollect){
public void getChild(List<OrganizationNodeListVo> all, Map<Long, List<OrganizationNodeListVo>> nodeCollect){
for (OrganizationNodeListVo parentNode: all) {
parentNode.setPosts(postCollect.get(parentNode.getNodeId()));
List<OrganizationNodeListVo> childNodeList = nodeCollect.get(parentNode.getNodeId());
parentNode.setChildeNodes(childNodeList);
if (childNodeList!=null&&childNodeList.size()>0){
getChild(childNodeList,nodeCollect,postCollect);
getChild(childNodeList,nodeCollect);
}
}
}
@Override
public OrganizationNode update(OrganizationNode organizationNode) {
Optional<OrganizationNode> byId = organizationNodeRepository.findById(organizationNode.getNodeId());
......@@ -100,12 +101,12 @@ public class OrganizationNodeServiceImpl implements OrganizationNodeService {
throw new GlobalException("所要修改的节点不存在");
}
OrganizationNode one = byId.get();
if (one.getParentNode()==0l){
if (organizationNode.getParentNode()!=0l){
if (one.getParentNode()== 0L){
if (organizationNode.getParentNode()!= 0L){
throw new GlobalException("根节点不能被移动");
}
}
OrganizationNode after = organizationNodeRepository.saveAndFlush(organizationNode);
OrganizationNode after = organizationNodeRepository.save(organizationNode);
return after;
}
......@@ -122,15 +123,16 @@ public class OrganizationNodeServiceImpl implements OrganizationNodeService {
public Boolean delete(Long id) {
Optional<OrganizationNode> byId = organizationNodeRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("不存在需要被删除的法律实体");
throw new GlobalException("不存在需要被删除的节点");
}
OrganizationNode one = byId.get();
if (one.getParentNode()==0l){
if (one.getParentNode()== 0L){
throw new GlobalException("根结点不能被删除");
}
//删除节点以及所有子节点
organizationNodeRepository.deleteorganizationNode(id);
//删除所有被删除节点下的岗位
postRepository.deletePostByNodeId(id);
return true;
}
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.PeoplePost;
import com.example.personnelmanager.entity.vo.PostVo;
import org.springframework.data.domain.Page;
/**
* @author HuangXiahao
* @version V1.0
* @class PeoplePostService
* @packageName com.example.personnelmanager.service
* @data 2020/5/21
**/
public interface PeoplePostService extends BasicEntityService<PeoplePost,Long> {
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.common.exception.GlobalException;
import com.example.personnelmanager.common.utils.AuthenticationUtils;
import com.example.personnelmanager.dao.PeoplePostRepository;
import com.example.personnelmanager.entity.*;
import com.example.personnelmanager.entity.commnEntity.CustomPage;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.beans.Transient;
import java.util.Optional;
/**
* @author HuangXiahao
* @version V1.0
* @class PeoplePostServiceImpl
* @packageName com.example.personnelmanager.service
* @data 2020/5/21
**/
@Service
public class PeoplePostServiceImpl implements PeoplePostService {
@Autowired
PeoplePostRepository peoplePostRepository;
@Autowired
JobTransferInformationService jobTransferInformationService;
@Override
public PeoplePost addEntity(PeoplePost peoplePost) {
Page list = getList(peoplePost, new CustomPage().getPageable());
if (list.getContent().size()>0){
throw new GlobalException("该人员已经在该岗位上");
}
PeoplePost save = peoplePostRepository.save(peoplePost);
return save;
}
@Override
public Page getList(PeoplePost peoplePost, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
PredicateBuilder and = Specifications.and();
and.eq("people",peoplePost.getPeople().getPeopleId());
and.eq("post",peoplePost.getPost().getPostId());
Specification<Contract> specification = and.build();
Page<PeoplePost> all = peoplePostRepository.findAll(specification, pageable);
return all;
}
@Override
@Transactional
public PeoplePost update(PeoplePost peoplePost) {
PeoplePost save = peoplePostRepository.save(peoplePost);
return save;
}
@Override
public PeoplePost getOne(Long id) {
Optional<PeoplePost> byId = peoplePostRepository.findById(id);
if (!byId.isPresent()) {
throw new GlobalException("所要查询的人员不存在");
}
return byId.get();
}
@Override
public Boolean delete(Long id) {
try {
peoplePostRepository.deleteById(id);
}catch (Exception e){
return false;
}
return true;
}
}
package com.example.personnelmanager.service;
import com.example.personnelmanager.entity.LegalEntity;
import com.example.personnelmanager.entity.People;
import com.example.personnelmanager.entity.*;
import com.example.personnelmanager.entity.vo.PeopleVo;
import org.springframework.data.domain.Page;
/**
* @author HuangXiahao
......@@ -11,4 +12,13 @@ import com.example.personnelmanager.entity.People;
* @data 2020/5/13
**/
public interface PeopleService extends BasicEntityService<People, Long> {
People leave(LeaveInformation leaveInformation);
People againEntry(AgainEntryInformation againEntryInformation);
People becomeRegularWorker(BecomeRegularWorkerInformation becomeRegularWorkerInformation);
Page getList(PeopleVo peopleDto);
}
......@@ -6,6 +6,7 @@ import com.example.personnelmanager.dao.PostRepository;
import com.example.personnelmanager.entity.OrganizationNode;
import com.example.personnelmanager.entity.Post;
import com.example.personnelmanager.entity.UserDetail;
import com.example.personnelmanager.entity.vo.PostVo;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -37,45 +38,37 @@ public class PostServiceImpl implements PostService {
@Override
public Post addEntity(Post post) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
UserDetail userDetails = AuthenticationUtils.getAuthentication();
OrganizationNode one = organizationNodeService.getOne(post.getOrganizationNode().getNodeId());
if (one.getEnterprise().getEnterpriseId() != userDetails.getEnterprise().getEnterpriseId()) {
if (!one.getEnterprise().getEnterpriseId().equals(userDetails.getEnterprise().getEnterpriseId())) {
throw new UsernameNotFoundException("当前登录用户无权限操作该父节点");
}
post.setNodeLevel(one.getNodeLevel());
post.setEnterprise(userDetails.getEnterprise());
Post save = postRepository.saveAndFlush(post);
Post save = postRepository.save(post);
return save;
}
@Override
public Page<Post> getList(Post post, Pageable pageable) {
UserDetail userDetails = (UserDetail) AuthenticationUtils.getAuthentication();
if (userDetails == null) {
throw new UsernameNotFoundException("当前无登录用户");
}
if (userDetails.getEnterprise() == null) {
throw new UsernameNotFoundException("当前登录用户无权限查看该单位信息");
}
PredicateBuilder and = Specifications.<Post>and();
public Page getList(Post post, Pageable pageable) {
UserDetail userDetails = AuthenticationUtils.getAuthentication();
if (post != null) {
if (!StringUtils.isEmpty(post.getPostName())&&post.getOrganizationNode()!=null&&post.getOrganizationNode().getNodeId()>0){
return postRepository.findPostTreeVoPageableByEnterpriseIdAndOrganizationNodeAndPostName(userDetails.getEnterprise().getEnterpriseId(),post.getOrganizationNode().getNodeId(),post.getPostName(), pageable);
}
if (!StringUtils.isEmpty(post.getPostName())){
and.like("postName","%"+post.getPostName()+"%");
return postRepository.findPostTreeVoPageableByEnterpriseIdAndPostName(userDetails.getEnterprise().getEnterpriseId(),post.getPostName(), pageable);
}
if (post.getOrganizationNode()!=null&&post.getOrganizationNode().getNodeId()>0){
and.eq("organizationNode",post.getOrganizationNode().getNodeId());
return postRepository.findPostTreeVoPageableByEnterpriseIdAndOrganizationNode(userDetails.getEnterprise().getEnterpriseId(),post.getOrganizationNode().getNodeId(), pageable);
}
}
and.eq("enterprise", userDetails.getEnterprise().getEnterpriseId());
and.eq("deleteTag", 0);
Specification<Post> specification = and.build();
Page<Post> all = postRepository.findAll(specification, pageable);
return all;
return postRepository.findPostTreeVoPageableByEnterpriseId(userDetails.getEnterprise().getEnterpriseId(), pageable);
}
@Override
public Post update(Post post) {
Post after = postRepository.saveAndFlush(post);
Post after = postRepository.save(post);
return after;
}
......@@ -96,7 +89,7 @@ public class PostServiceImpl implements PostService {
}
Post post = byId.get();
post.setDeleteTag(1);
postRepository.saveAndFlush(post);
postRepository.save(post);
return true;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论