1、Dao层
public interface EmployeeRepository extends JpaRepository<Employee,Integer> {
boolean existsById(Integer id);
Employee findByName(String name);
Employee findAllById(Integer id);
//寻找最大值
@Query("SELECT max(i.workid) FROM Employee as i ")
public Integer findMaxWorkId();
}
2、Service层
多表联查要是需要删除,需要先删除关联表
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
EmployeeRepository employeeRepository;
SimpleDateFormat YearFormat = new SimpleDateFormat("yyyy");
SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
DecimalFormat decimalFormat = new DecimalFormat("##.00");
//分页
@Override
public RespPageBean getEmployeeByPage(Integer page, Integer size) {
if (page != null && size != null) {
page= (page-1)*size;
}
Pageable pageable = PageRequest.of(page,size, Sort.Direction.DESC,"id");
Page<Employee> allPage = employeeRepository.findAll(pageable);
List<Employee> data = allPage.getContent();
long total = allPage.getTotalElements();
RespPageBean respPageBean = new RespPageBean();
respPageBean.setData(data);
respPageBean.setTotal(total);
return respPageBean;
}
@Override
public boolean addEmp(Employee employee) {
//自动计算合同期限
Date begincontract = employee.getBegincontract();
Date endcontract = employee.getEndcontract();
double month = (Double.parseDouble(YearFormat.format(endcontract))
- Double.parseDouble(YearFormat.format(begincontract))) * 12
- (Double.parseDouble(monthFormat.format(endcontract))
- Double.parseDouble(monthFormat.format(begincontract)));
employee.setContractterm(Double.parseDouble(decimalFormat.format(month/12)));
Employee employee1 = employeeRepository.save(employee);
return employeeRepository.existsById(employee1.getId());
}
@Override
public Integer maxWorkID() {
return employeeRepository.findMaxWorkId();
}
//有问题
@Override
public boolean deleteEmpById(Integer id) {
Employee employee = employeeRepository.findAllById(id);
employee.setNationid(null);
employee.setPoliticid(null);
employee.setDepartmentid(null);
employee.setJoblevelid(null);
employee.setPosid(null);
employeeRepository.flush();
employeeRepository.save(employee);
employeeRepository.flush();
employeeRepository.deleteById(id);
return employeeRepository.existsById(id);
}
@Override
public boolean updateEmp(Employee employee) {
Employee employee1 = employeeRepository.findByName(employee.getName());
if (employee.getGender() != null){
employee1.setPhone(employee.getPhone());
}
if (employee.getAddress() != null){
employee1.setAddress(employee.getAddress());
}
if (employee.getBirthday() != null){
employee1.setBirthday(employee.getBirthday());
}
if (employee.getIdcard() != null){
employee1.setIdcard(employee.getIdcard());
}
if (employee.getWedlock() != null){
employee1.setWedlock(employee.getWedlock());
}
if (employee.getNationid() != null){
employee1.setNationid(employee.getNationid());
}
if (employee.getNativeplace() != null){
employee1.setNativeplace(employee.getNativeplace());
}
if (employee.getPoliticid() != null){
employee1.setPoliticid(employee.getPoliticid());
}
if (employee.getEmail() != null){
employee1.setEmail(employee.getEmail());
}
if (employee.getPhone() != null){
employee1.setPhone(employee.getPhone());
}
if (employee.getDepartmentid() != null){
employee1.setDepartmentid(employee.getDepartmentid());
}
if (employee.getJoblevelid()!= null){
employee1.setJoblevelid(employee.getJoblevelid());
}
if (employee.getPosid()!= null){
employee1.setPosid(employee.getPosid());
}
if (employee.getEngageform()!= null){
employee1.setEngageform(employee.getEngageform());
}
if (employee.getTiptopdegree()!= null){
employee1.setTiptopdegree(employee.getTiptopdegree());
}
if (employee.getSpecialty()!= null){
employee1.setSpecialty(employee.getSpecialty());
}
if (employee.getSchool()!= null){
employee1.setSchool(employee.getSchool());
}
if (employee.getBegindate()!= null){
employee1.setBegindate(employee.getBegindate());
}
if (employee.getWorkstate()!= null){
employee1.setWorkstate(employee.getWorkstate());
}
if (employee.getWorkid()!= null){
employee1.setWorkid(employee.getWorkid());
}
if (employee.getConversiontime()!= null){
employee1.setConversiontime(employee.getConversiontime());
}
if (employee.getNotworkdate()!= null){
employee1.setNotworkdate(employee.getNotworkdate());
}
if (employee.getBegincontract()!= null){
employee1.setBegincontract(employee.getBegincontract());
}
if (employee.getEndcontract()!= null){
employee1.setEndcontract(employee.getEndcontract());
}
Date begincontract = employee1.getBegincontract();
Date endcontract = employee1.getEndcontract();
double month = (Double.parseDouble(YearFormat.format(endcontract))
- Double.parseDouble(YearFormat.format(begincontract))) * 12
- (Double.parseDouble(monthFormat.format(endcontract))
- Double.parseDouble(monthFormat.format(begincontract)));
employee1.setContractterm(Double.parseDouble(decimalFormat.format(month/12)));
employeeRepository.save(employee1);
return employeeRepository.existsById(employee1.getId());
}
}
3、Controller层
@RestController
@RequestMapping("/system/emp")
public class EmployeeController {
@Autowired
EmployeeService employeeService;
@Autowired
NationService nationService;
@Autowired
PoliticsstatusService politicsstatusService;
@Autowired
DepartmentService departmentService;
@Autowired
JobLevelService jobLevelService;
@Autowired
PositionService positionService;
//数据分页
@GetMapping("/")
public RespPageBean getEmployeeByPage(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size){
return employeeService.getEmployeeByPage(page,size);
}
//插入数据
@PostMapping("/")
public RespBean addEmp(@RequestBody Employee employee){
if (employeeService.addEmp(employee) == true){
return RespBean.ok("插入成功");
}
return RespBean.error("插入失败");
}
//删除数据
@DeleteMapping("/{id}")
public RespBean deleteEmpById(@PathVariable("id") Integer id){
if (employeeService.deleteEmpById(id) == false){
return RespBean.ok("删除成功");
}
return RespBean.error("删除失败");
}
//修改数据
@PutMapping("/")
public RespBean updateEmp(@RequestBody Employee employee){
if (employeeService.updateEmp(employee) == true){
return RespBean.ok("更新成功");
}
return RespBean.error("更新失败");
}
@GetMapping("/nations")
public List<Nation> getAllNation(){
return nationService.getAllNation();
}
@GetMapping("/politicsstatus")
public List<Politicsstatus> getAllPliticsstatus(){
return politicsstatusService.getAllPoliticsstatus();
}
@GetMapping("/departments")
public List<Department> getAllDepartments(){
return departmentService.getAllDepartment();
}
@GetMapping("/joblevels")
public List<Joblevel> getAllJoblevels(){
return jobLevelService.getAllJoblevels();
}
@GetMapping("/positions")
public List<Position> getAllPosition(){
return positionService.getAllPosition();
}
//数据库中最大的工号+1
@GetMapping("/maxWorkID")
public RespBean getMaxWorkID(){
return RespBean.build().setStatus(200).setObj(String.format("%08d",employeeService.maxWorkID()+1));
}
}