diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 466096f2..dd2254b4 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,26 +2,19 @@ + - - - - - - - + + + + - - - - - - - - - - - + + + + + + @@ -224,7 +217,7 @@ file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java - 79 + 80 @@ -237,6 +230,16 @@ 80 + + file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/controller/StaffController.java + 156 + + + file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/controller/StaffController.java + 157 + diff --git a/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java b/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java new file mode 100644 index 00000000..1f457741 --- /dev/null +++ b/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java @@ -0,0 +1,24 @@ +package com.lz.modules.app.Dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class StaffStatisticalDto { + + //总人数 + private int totalStaffCount; + //管理人员人数 + private int managementCount; + //管理人员占比 + private BigDecimal managementRate; + //新入职员工人数 + private int newStaffCount; + //离职人员人数 + private int leaveStaffCount; + //离职率 + private BigDecimal leaveRate; + + +} diff --git a/src/main/java/com/lz/modules/app/controller/StaffController.java b/src/main/java/com/lz/modules/app/controller/StaffController.java index 00018107..8e346a7d 100644 --- a/src/main/java/com/lz/modules/app/controller/StaffController.java +++ b/src/main/java/com/lz/modules/app/controller/StaffController.java @@ -6,8 +6,12 @@ import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.lz.common.utils.DateUtils; import com.lz.modules.app.Dto.*; +import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.service.*; +import com.lz.modules.sys.entity.SysCaptchaEntity; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; @@ -34,6 +38,9 @@ public class StaffController { @Autowired private StaffService staffService; + @Autowired + private DepartmentsService departmentsService; + @Autowired private StaffEducationService staffEducationService; @@ -127,13 +134,13 @@ public class StaffController { @RequestMapping("/statistical") // @RequiresPermissions("staff:info:statistical") public R statistical(@RequestParam Map params) { - + Map data = new HashMap(); //部门Id String departmentId = ""; //统计时间起 - String beginDate = ""; + String beginDate = "2017-01-01"; //统计时间止 - String endDate = ""; + String endDate = DateUtils.format(DateUtils.getCurrentDate(), DateUtils.DATE_PATTERN); if (params.containsKey("departmentId")) { departmentId = params.get("departmentId").toString(); @@ -146,14 +153,24 @@ public class StaffController { if (params.containsKey("endDate")) { endDate = params.get("endDate").toString(); } -// -// List staffInfos = staffService.getStaffInfos(currentPage, limit, departmentId, name, staffStatus); + + StaffStatisticalDto staffStatisticals = staffService.getStatisticalData(departmentId, beginDate, endDate); + data = JSON.parseObject(JSON.toJSONString(staffStatisticals), Map.class); + + data.put("beginDate", beginDate); + data.put("endDate", endDate); + if (departmentId != "") { + DepartmentsEntity department = departmentsService.getOne(new QueryWrapper().eq("department_id", departmentId)); + if (department != null) { + data.put("departmentName", department.getDepartmentName()); + } + } + // //总页码 // int maxCount = staffService.getStaffInfoCount(departmentId, name, staffStatus); -// + R ret = R.ok(); -// PageUtils pageInfo = new PageUtils(staffInfos, maxCount, limit, currentPage); -// ret.put("page", pageInfo); + ret.put("data", data); return ret; } diff --git a/src/main/java/com/lz/modules/app/dao/StaffDao.java b/src/main/java/com/lz/modules/app/dao/StaffDao.java index 9760f2a0..0adeea53 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -2,6 +2,7 @@ package com.lz.modules.app.dao; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -33,5 +34,7 @@ public interface StaffDao extends BaseMapper { StaffBaseInfoDto getBaseInfo(@Param("staffId") Long staffId); + StaffStatisticalDto getStatisticalData(@Param("departmentId") String departmentId, @Param("beginDate") String beginDate, @Param("endDate") String endDate); + } diff --git a/src/main/java/com/lz/modules/app/service/StaffService.java b/src/main/java/com/lz/modules/app/service/StaffService.java index f0d98636..a643004f 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.PageUtils; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; @@ -33,5 +34,7 @@ public interface StaffService extends IService { StaffBaseInfoDto getBaseInfo(Long staffId); + StaffStatisticalDto getStatisticalData(String departmentId, String beginDate, String endDate); + } diff --git a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java index fe0657e0..5ed8e906 100644 --- a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java @@ -8,6 +8,7 @@ import com.lz.common.utils.PageUtils; import com.lz.common.utils.Query; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.dao.StaffDao; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.service.StaffService; @@ -100,6 +101,11 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffDao.getBaseInfo(staffId); } + @Override + public StaffStatisticalDto getStatisticalData(String departmentId, String beginDate, String endDate) { + return staffDao.getStatisticalData(departmentId, beginDate, endDate); + } + private StaffEntity convertStaffEntity(DepartmentStaffBo staffBo) { StaffEntity staffEntity = new StaffEntity(); staffEntity.setName(staffBo.getName());//员工姓名 diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index 33c85b8d..99e38f11 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -130,5 +130,32 @@ select name staffName,gender,birthday,marital_status,national,political_landscape,mobile,current_address from lz_staff where id=#{staffId} + + diff --git a/target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class b/target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class new file mode 100644 index 00000000..0560af53 Binary files /dev/null and b/target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class differ diff --git a/target/classes/com/lz/modules/app/controller/StaffController.class b/target/classes/com/lz/modules/app/controller/StaffController.class index 8756a764..3c51edde 100644 Binary files a/target/classes/com/lz/modules/app/controller/StaffController.class and b/target/classes/com/lz/modules/app/controller/StaffController.class differ diff --git a/target/classes/com/lz/modules/app/dao/StaffDao.class b/target/classes/com/lz/modules/app/dao/StaffDao.class index 06e87d38..41f7ecfb 100644 Binary files a/target/classes/com/lz/modules/app/dao/StaffDao.class and b/target/classes/com/lz/modules/app/dao/StaffDao.class differ diff --git a/target/classes/com/lz/modules/app/service/StaffService.class b/target/classes/com/lz/modules/app/service/StaffService.class index 04d1de4d..60239145 100644 Binary files a/target/classes/com/lz/modules/app/service/StaffService.class and b/target/classes/com/lz/modules/app/service/StaffService.class differ diff --git a/target/classes/com/lz/modules/app/service/impl/StaffServiceImpl.class b/target/classes/com/lz/modules/app/service/impl/StaffServiceImpl.class index 8440cc57..ff152809 100644 Binary files a/target/classes/com/lz/modules/app/service/impl/StaffServiceImpl.class and b/target/classes/com/lz/modules/app/service/impl/StaffServiceImpl.class differ diff --git a/target/classes/mapper/generator/StaffDao.xml b/target/classes/mapper/generator/StaffDao.xml index 33c85b8d..99e38f11 100644 --- a/target/classes/mapper/generator/StaffDao.xml +++ b/target/classes/mapper/generator/StaffDao.xml @@ -130,5 +130,32 @@ select name staffName,gender,birthday,marital_status,national,political_landscape,mobile,current_address from lz_staff where id=#{staffId} + +