微人事——员工管理后端

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));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值