diff --git a/src/main/java/com/lz/modules/app/controller/ReportResultController.java b/src/main/java/com/lz/modules/app/controller/ReportResultController.java index 945296e5..bd7b7e62 100644 --- a/src/main/java/com/lz/modules/app/controller/ReportResultController.java +++ b/src/main/java/com/lz/modules/app/controller/ReportResultController.java @@ -1,9 +1,10 @@ package com.lz.modules.app.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.common.collect.Maps; import com.lz.common.utils.R; -import com.lz.modules.app.dto.DepartmentsDto; -import com.lz.modules.app.dto.ResultProgressDto; +import com.lz.common.utils.StringUtil; +import com.lz.modules.app.dto.*; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.enums.ResultRecordStatusEnum; @@ -22,10 +23,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.time.LocalDate; +import java.util.*; /** * @Author: djc @@ -46,26 +45,55 @@ public class ReportResultController extends AbstractController{ @Autowired private ChartService chartService; + static final String[] levels = new String[]{"3.25","3.5-","3.5","3.5+","3.75-","3.75","3.75+","4"}; @RequestMapping("chart") public R reportChart(String monthTime){ + if(StringUtil.isBlank(monthTime)){ + String time = LocalDate.now().toString(); + monthTime = time.substring(0,time.length()-3); + } ReportChartResp data = new ReportChartResp(); - ResultProgressDto target = chartService.resultProgress(ResultRecordTypeEnum.TARGET.getType(),monthTime); - ResultProgressDto result = chartService.resultProgress(ResultRecordTypeEnum.RESULT.getType(),monthTime); - + //月初目标 + List start = chartService.resultProgressDistribution(ResultRecordTypeEnum.TARGET.getType(),monthTime); + //月末结果 + List end = chartService.resultProgressDistribution(ResultRecordTypeEnum.RESULT.getType(),monthTime); //人员等级分布 + List staffLevels = resultRecordService.staffDistribution(monthTime); + + List sortStaffLevels = new ArrayList<>(); + // 0人是否需要展示 + Map map = Maps.newHashMap(); + for (GraphicsStatisticalDto staffLevel : staffLevels) { + map.put(staffLevel.getCategory(),staffLevel.getNumber()); + } + // 默认等级赋予默认值并排序 + for (String level : levels) { + GraphicsStatisticalDto dto = new GraphicsStatisticalDto(); + dto.setCategory(level); + if(!map.containsKey(level)){ + dto.setNumber(0); + }else { + dto.setNumber(map.get(level)); + } + sortStaffLevels.add(dto); + } //部门等级占比 - - - data.setTarget(target); - data.setResult(result); + GraphicsDto dto = new GraphicsDto(); + dto.setRows(start); + data.setTargetDistribution(dto); + dto = new GraphicsDto(); + dto.setRows(end); + data.setResultDistribution(dto); + dto = new GraphicsDto(); + dto.setRows(sortStaffLevels); + data.setStaffDistribution(dto); return R.ok().put("data",data); } - @RequestMapping("/own/result") public R ownResult(Long userId){ if(userId == null){ @@ -101,14 +129,6 @@ public class ReportResultController extends AbstractController{ } - public static void main(String[] args) { - List list = getMonthBetween("2018-01","2018-07"); - for(String s : list){ - System.out.println("日期:"+s); - } - } - - //获取日期之内的月份 private static List getMonthBetween(String minDate, String maxDate){ @@ -135,4 +155,5 @@ public class ReportResultController extends AbstractController{ return result; } + } diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java index b792bb26..d191c00e 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java @@ -42,4 +42,7 @@ public interface DepartmentsDao extends BaseMapper { int addDepartment(@Param("departments") DepartmentsEntity departments); DepartmentInfos selectUserAllDepartmentIds(@Param("departmentId") String departmentId); + + List selectDepartmentIdsByparentIds(@Param("parentIds") List parentIds); + } diff --git a/src/main/java/com/lz/modules/app/dto/ChartDto.java b/src/main/java/com/lz/modules/app/dto/ChartDto.java new file mode 100644 index 00000000..06a4ce30 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/ChartDto.java @@ -0,0 +1,16 @@ +package com.lz.modules.app.dto; + +import lombok.Data; + +/** + * @Author: djc + * @Desc: + * @Date: 2020/9/16 16:39 + */ +@Data +public class ChartDto { + //属性名 + private String name; + //属性值 + private String value; +} diff --git a/src/main/java/com/lz/modules/app/dto/ResultProgressDto.java b/src/main/java/com/lz/modules/app/dto/ResultProgressDto.java deleted file mode 100644 index 6260552c..00000000 --- a/src/main/java/com/lz/modules/app/dto/ResultProgressDto.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.lz.modules.app.dto; - -import lombok.Data; - -/** - * @Author: djc - * @Desc: - * @Date: 2020/9/14 16:34 - */ -@Data -public class ResultProgressDto { - //未提交 - private int noCommit; - //完成 - private int finished; - //审核中 - private int review; -} diff --git a/src/main/java/com/lz/modules/app/resp/ReportChartResp.java b/src/main/java/com/lz/modules/app/resp/ReportChartResp.java index 88f257bb..b157bbc3 100644 --- a/src/main/java/com/lz/modules/app/resp/ReportChartResp.java +++ b/src/main/java/com/lz/modules/app/resp/ReportChartResp.java @@ -1,8 +1,12 @@ package com.lz.modules.app.resp; -import com.lz.modules.app.dto.ResultProgressDto; +import com.lz.modules.app.dto.ChartDto; +import com.lz.modules.app.dto.GraphicsDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import lombok.Data; +import java.util.List; + /** * @Author: djc * @Desc: @@ -11,8 +15,12 @@ import lombok.Data; @Data public class ReportChartResp { //月初目标 - private ResultProgressDto target; + private GraphicsDto targetDistribution; //月末结果 - private ResultProgressDto result; + private GraphicsDto resultDistribution; + //个人等级占比 + private GraphicsDto staffDistribution; + //部门等级占比 + private GraphicsDto departmentDistribution; } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsService.java b/src/main/java/com/lz/modules/app/service/DepartmentsService.java index 629ad2c2..5cf45307 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java @@ -44,5 +44,6 @@ public interface DepartmentsService extends IService { Map selectUserAllDepartmentInFo(String departmentId); + } 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 76d08298..8d5dc578 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -77,5 +77,8 @@ public interface StaffService extends IService { List selectBySearchName(IPage page, FindByNameModel nameModel); SysUserEntity getUser(String userName); + + //查询部门下的所有人员 包括子部门下人员 + List selectAllStaffByDepartmentId(String departmentId); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java index 8906ad77..5dcf7bca 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java @@ -200,5 +200,4 @@ public class DepartmentsServiceImpl extends ServiceImpl impleme DepartmentsService departmentsService; @Resource DepartmentsStaffRelateService departmentsStaffRelateService; + @Autowired + private DepartmentsDao departmentsDao; @@ -379,4 +381,32 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffEntity; } + + @Override + public List selectAllStaffByDepartmentId(String departmentId) { + //154344269,154322459,154274609,154254673 + List parentsIds = Lists.newArrayList("154344269","154322459","154274609","154254673"); + List departmentsList = new ArrayList<>(); + return null; + } + + /** + * + * @param departmentsList 最终的存储集合 + * @param parentIds 本次查询的父id集合 + * @return + */ + private List getAllChilds(List departmentsList,List parentIds){ + List childs = departmentsDao.selectDepartmentIdsByparentIds(parentIds); + /* while (childs!=null){ + + }*/ + return null; + + + + } + + + } diff --git a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java index 67ee0e97..e94a9c5a 100644 --- a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java +++ b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java @@ -10,6 +10,8 @@ package com.lz.modules.sys.dao.app; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.lz.modules.app.dto.ChartDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.OwnResultResp; import com.lz.modules.flow.model.ResultRecordDto; @@ -52,4 +54,12 @@ public interface ResultRecordMapper extends BaseMapper { List selectResultRecordByIds(@Param("recordIds") List recordIds); List ownResult(@Param("userId") Long userId, @Param("status") int status); + + List staffDistribution(@Param("monthTime") String monthTime); + + List departmentDistribution(@Param("monthTime") String monthTime); + + + + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/sys/service/app/ChartService.java b/src/main/java/com/lz/modules/sys/service/app/ChartService.java index bbc6251f..945e82ca 100644 --- a/src/main/java/com/lz/modules/sys/service/app/ChartService.java +++ b/src/main/java/com/lz/modules/sys/service/app/ChartService.java @@ -1,6 +1,7 @@ package com.lz.modules.sys.service.app; -import com.lz.modules.app.dto.ResultProgressDto; +import com.lz.modules.app.dto.ChartDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import java.util.List; @@ -11,7 +12,14 @@ import java.util.List; */ public interface ChartService { - ResultProgressDto resultProgress(int type,String monthTime); + /** + * 查询当月绩效提交情况 + * @param type + * @param monthTime + * @return + */ + List resultProgressDistribution(int type, String monthTime); + } diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java index 6620d2fd..e4b7e918 100644 --- a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java +++ b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.emun.WorkMsgTypeEnum; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.app.dto.ChartDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.OwnResultResp; @@ -70,5 +72,18 @@ public interface ResultRecordService extends IService { List ownResult(Long userId, int status); + /** + * 人员等级排布 + * @param monthTime + * @return + */ + List staffDistribution(String monthTime); + + /** + * 部门等级占比 + * @param monthTime + * @return + */ + List departmentDistribution(String monthTime); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ChartServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ChartServiceImpl.java index 94d960f2..8ffd7307 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ChartServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ChartServiceImpl.java @@ -1,16 +1,22 @@ package com.lz.modules.sys.service.app.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.lz.modules.app.dto.ResultProgressDto; +import com.lz.common.utils.StringUtil; +import com.lz.modules.app.dto.ChartDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.enums.ResultRecordStatusEnum; import com.lz.modules.app.service.StaffService; import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ChartService; import com.lz.modules.sys.service.app.ResultRecordService; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Author: djc * @Desc: @@ -23,8 +29,8 @@ public class ChartServiceImpl implements ChartService { @Autowired private StaffService staffService; @Override - public ResultProgressDto resultProgress(int type, String monthTime) { - ResultProgressDto resultProgressDto = new ResultProgressDto(); + public List resultProgressDistribution(int type, String monthTime) { + List dtos = new ArrayList<>(); int total = staffService.count(new QueryWrapper().eq("is_delete", 0)); int commit = resultRecordService.count(new QueryWrapper() @@ -38,9 +44,19 @@ public class ChartServiceImpl implements ChartService { .like("month_time",monthTime) .in("status", ResultRecordStatusEnum.REFUSE.getStatus(),ResultRecordStatusEnum.AGREE.getStatus())); - resultProgressDto.setNoCommit(total-commit); - resultProgressDto.setFinished(finished); - resultProgressDto.setReview(commit-finished); - return resultProgressDto; + GraphicsStatisticalDto dto = new GraphicsStatisticalDto(); + dto.setCategory("未提交"); + dto.setNumber(total-commit); + dtos.add(dto); + dto = new GraphicsStatisticalDto(); + dto.setCategory("已完成"); + dto.setNumber(finished); + dtos.add(dto); + dto = new GraphicsStatisticalDto(); + dto.setCategory("审核中"); + dto.setNumber(commit-finished); + dtos.add(dto); + return dtos; } + } diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 89de75cb..00f12a56 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -7,7 +7,9 @@ import com.lz.common.emun.WorkMsgTypeEnum; import com.lz.common.utils.*; import com.lz.modules.app.dao.DepartmentsDao; import com.lz.modules.app.dao.DepartmentsStaffRelateDao; +import com.lz.modules.app.dto.ChartDto; import com.lz.modules.app.dto.EmployeesDto; +import com.lz.modules.app.dto.GraphicsStatisticalDto; import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; @@ -615,4 +617,14 @@ public class ResultRecordServiceImpl extends ServiceImpl ownResult(Long userId, int status) { return resultRecordMapper.ownResult(userId,status); } + + @Override + public List staffDistribution(String monthTime) { + return resultRecordMapper.staffDistribution(monthTime); + } + + @Override + public List departmentDistribution(String monthTime) { + return resultRecordMapper.departmentDistribution(monthTime); + } } diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 266d4ca8..75c542fd 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -257,5 +257,15 @@ + + + + + + diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml index 90528e90..45e0dee8 100644 --- a/src/main/resources/mapper/generator/DepartmentsDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsDao.xml @@ -116,4 +116,13 @@ where d1.department_id = #{departmentId} + + +