Commit 583d2966 authored by nie'hong's avatar nie'hong

工时统计初成

parent 641f02bd
......@@ -53,7 +53,8 @@ public enum BASE_RESP_CODE_ENUM {
DEPT_IS_NULL("631","该部门不存在"),
MANAGER_NOT_PROJECT("632","该管理没有可管理的项目"),
DEPT_NOT_FOUND("633", "部门信息未找到"),
DATE_IS_ERROR("634","时间不匹配");
DATE_IS_ERROR("634","时间不匹配"),
CENTRE_NOT_FOUND("635","中心信息未找到");
/**
* 错误编码
*/
......
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkCentre;
import cn.wisenergy.model.app.WorkCollect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface WorkCentreMapper extends BaseMapper<WorkCollect> {
WorkCentre getByManagerId(Integer userId);
}
......@@ -4,10 +4,11 @@ import cn.wisenergy.model.app.WorkDept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
* <p>
* Mapper 接口
* Mapper 接口
* </p>
*
* @author chenqi
......@@ -15,5 +16,5 @@ import java.util.List;
*/
public interface WorkDeptMapper extends BaseMapper<WorkDept> {
List<WorkDept> getDeptById(Integer deptId);
List<WorkDept> getDeptByCondition(Map<String, Object> map);
}
......@@ -3,12 +3,13 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkTimeOrder;
import cn.wisenergy.model.dto.DayWorkTimeAndType;
import cn.wisenergy.model.dto.MonthlyWorkingHoursStatistics;
import cn.wisenergy.model.dto.WorkTimeAndCostCollect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -35,7 +36,7 @@ public interface WorkTimeOrderMapper extends BaseMapper<WorkTimeOrder> {
* @param userId
* @return
*/
MonthlyWorkingHoursStatistics collectByProjectType(Integer userId, Integer projectType, String currentMonthFirstDay);
MonthlyWorkingHoursStatistics statisticsByProjectType(Integer userId, Integer projectType, String currentMonthFirstDay);
/**
*
......@@ -52,5 +53,7 @@ public interface WorkTimeOrderMapper extends BaseMapper<WorkTimeOrder> {
* @param map
* @return
*/
Integer getCountByCondition(HashMap<String, Object> map);
Integer getCountByCondition(Map<String, Object> map);
List<WorkTimeAndCostCollect> getWorkTimeAndCostCollect(List<Integer> projectIds, Date firstDayOfMonth);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wisenergy.mapper.WorkCentreMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.wisenergy.model.app.WorkCentre">
<id column="id" property="id" />
<result column="centreName" property="centreName" />
<result column="centreManagerId" property="centre_manager_id" />
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
</resultMap>
<sql id="vals">
id, centre_name, centre_manager_id, create_time, modify_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="integer">
select <include refid="vals"/>
from work_centre
where centre_manager_id = #{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -7,6 +7,8 @@
<id column="id" property="id" />
<result column="dept_name" property="deptName" />
<result column="oa_dept_id" property="oaDeptId"/>
<result column="centre_id" property="centreId"/>
<result column="dept_manager_id" property="deptManagerId"/>
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
</resultMap>
......@@ -27,6 +29,8 @@
<!-- 通用查询结果列 -->
<sql id="criteria">
<if test="deptName != null">AND dept_name = #{deptName}</if>
<if test="centreId != null">AND centre_id = #{centreId}</if>
<if test="managerId != null">AND manager_id = #{managerId}</if>
<if test="createTime != null">AND create_time = #{createTime}</if>
<if test="modifyTime != null">AND modify_time = #{modifyTime}</if>
</sql>
......@@ -36,12 +40,12 @@
id, oa_dept_id, dept_name, create_time, modify_time
</sql>
<select id="getDeptById" resultMap="BaseResultMap" parameterType="integer">
<select id="getDeptByCondition" resultMap="BaseResultMap" parameterType="integer">
select <include refid="cols_all"/>
from <include refid="table"/>
<if test="deptId != null">
where id = #{deptId}
</if>
<where>
<include refid="criteria"/>
</where>
</select>
</mapper>
......@@ -52,6 +52,12 @@
<where>
<include refid="criteria"/>
</where>
<if test="deptIds != null">
AND dept_id IN
<foreach collection="deptIds" item="deptId" separator="," open="(" close=")">
#{deptId}
</foreach>
</if>
</select>
</mapper>
......@@ -22,6 +22,7 @@
<result column="modify_time" property="modifyTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="vals">
#{userId},#{userName},#{projectId},#{projectName},#{deptId},#{workTime},#{workDay},#{status},#{reviewerId},#{des},#{reason},#{type},#{isOvertime},now(),now()
......@@ -56,7 +57,6 @@
</resultMap>
<resultMap id="monthlyWorkHourStatistics" type="cn.wisenergy.model.dto.MonthlyWorkingHoursStatistics">
<result property="projectType" column="type"/>
<result property="count" column="count(1)"/>
<result property="workTime" column="sum(work_time)"/>
</resultMap>
......@@ -83,6 +83,7 @@
#{id}
</foreach>
</update>
<update id="updateStatusById">
UPDATE
<include refid="table"/>
......@@ -133,8 +134,8 @@
work_id, user_id, user_name, project_id, project_name, dept_id, work_time, work_day, status, reviewer_id, des, reason, type, is_overtime, create_time, modify_time
</sql>
<select id="collectByProjectType" resultMap="monthlyWorkHourStatistics">
select type,count(1),sum(work_time)
<select id="statisticsByProjectType" resultMap="monthlyWorkHourStatistics">
select count(1),sum(work_time)
from <include refid="table"/>
where user_id = #{userId} AND type = #{projectType} AND work_day >=#{currentMonthFirstDay}
......@@ -174,4 +175,18 @@
</if>
</where>
</select>
<select id="getWorkTimeAndCostCollect" resultType="cn.wisenergy.model.dto.WorkTimeAndCostCollect" parameterType="integer">
select case when `type`= 1 then '商机' when `type`= 0 then '项目' end AS type,dept_id, project_name,MIN(work_day) AS firstTime,MAX(work_day) AS lastTime,SUM(work_time)/8 AS totalTime,(SUM(work_time))/8*10 AS cost
from <include refid="table"/>
where status in (2,5) and project_id in
<foreach collection="projectIds" item="projectId" open="(" close=")" separator=",">
#{projectId}
</foreach>
<if test="firstDayOfMonth != null">
work_day >= #{firstDayOfMonth}
</if>
group by `type`,dept_id, project_name
</select>
</mapper>
package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* @description:
* @author: nh
* @create: 2021-01-22 16:06
**/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="WorkCentre", description="中心实体类")
public class WorkCentre implements Serializable {
private static final long serialVersionUID = 5645379064487638244L;
@ApiModelProperty(name = "id",value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(name = "centreName",value = "中心名称")
private String centreName;
@ApiModelProperty(name = "centre_manager_id", value = "中心管理员主键")
private Integer centre_manager_id;
@ApiModelProperty(name = "createTime",value = "创建时间")
private Date createTime;
@ApiModelProperty(name = "modifyTime",value = "修改时间")
private Date modifyTime;
}
......@@ -35,6 +35,9 @@ public class WorkDept implements Serializable {
@ApiModelProperty(name = "oaDeptId", value = "oa中的部门编号")
private String oaDeptId;
@ApiModelProperty(name = "centreId", value = "部门所属中心的主键")
private String centreId;
@ApiModelProperty(name = "createTime",value = "创建时间")
private Date createTime;
......
......@@ -14,9 +14,9 @@ public class MonthlyWorkingHoursStatistics implements Serializable {
private static final long serialVersionUID = -8216457470821285624L;
/**
* 商机/项目
* 工单类型:商机/项目
*/
private Integer projectType;
private String projectType;
/**
* 填报次数
......
package cn.wisenergy.model.dto;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description: 项目工时和工时成本
* @author: nh
* @create: 2021-01-22 11:57
**/
@Data
public class WorkTimeAndCostCollect implements Serializable {
private static final long serialVersionUID = 7207732278277982917L;
/**
* 类型:项目/商机
*/
private String type;
/**
* 部门名称
*/
private String deptName;
/**
* 部门主键
*/
private Integer deptId;
/**
* 项目名称
*/
private String projectName;
/**
* 开始统计日期
*/
private String firstTime;
/**
*最后统计日期
*/
private String lastTime;
/**
* 工时总计:人/天
*/
private BigDecimal totalTime;
/**
* 工时成本
*/
private Integer cost;
}
package cn.wisenergy.model.enums;
public enum ProjectTypeEnum {
PROJECT(0, "该项目类型是项目"),
BUSINESS_OPPORTUNITY(1,"该项目类型是商机");
PROJECT(0, "项目"),
BUSINESS_OPPORTUNITY(1,"商机");
private Integer code;
private String msg;
......
package cn.wisenergy.service;
import cn.wisenergy.model.dto.GetMonthlyCollectParam;
import cn.wisenergy.model.dto.WorkTimeAndCostCollect;
import com.github.pagehelper.PageInfo;
import java.util.Date;
import java.util.List;
public interface StatisticsService {
......@@ -12,7 +14,7 @@ public interface StatisticsService {
* @param param 参数对象
* @return
*/
PageInfo getMonthlyCollect(GetMonthlyCollectParam param);
PageInfo getDayWorkTimeOfMonth(GetMonthlyCollectParam param);
/**
* 获取用户本月填报和审批情况,权限为填报时只有填报情况
......@@ -20,4 +22,10 @@ public interface StatisticsService {
* @return
*/
List<Object> getMonthlyStatistics(Integer userId);
/**
* 获取负责项目在本月的工时汇总:花费工时,工时成本
* @param userId
*/
List<WorkTimeAndCostCollect> getCurrentMonthWorkTimeCollect(Integer userId, Date startTime);
}
......@@ -31,10 +31,13 @@ public interface WorkProjectService {
* @param id
* @return
*/
List<ProjectDto> getByManagerId(Integer id);
/**
* 获取用户管理的项目
* @param userId
* @return
*/
List<WorkProject> getUserManageProjects(Integer userId);
}
......@@ -25,7 +25,7 @@ public interface WorkUserService {
ResultUser login(String loginName, String password, String source);
/**
* 获取用户信息
* 获取用户基础信息
* @param id 用户主键
* @return
*/
......
......@@ -24,10 +24,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
......@@ -57,14 +55,14 @@ public class StatisticsServiceImpl implements StatisticsService {
private final static Integer DEFAULT_DEPT_ID = 1;
@Override
public PageInfo getMonthlyCollect(GetMonthlyCollectParam param) {
public PageInfo getDayWorkTimeOfMonth(GetMonthlyCollectParam param) {
log.info("StatisticsServiceImpl[]getMonthlyCollect[]input.param" + param);
if (param == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
//管理员用户
WorkUser user = workUserService.getById(param.getUserId());
if (user.getLevel() != ManagerEnum.IS_SYSTEM_MANAGER.getCode()) {
if (!user.getLevel().equals(ManagerEnum.IS_SYSTEM_MANAGER.getCode())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
//默认时间为当月
......@@ -93,7 +91,7 @@ public class StatisticsServiceImpl implements StatisticsService {
List<Integer> userIdList = workUserDeptMapper.listByDeptId(deptId);
PageInfo pageInfo = new PageInfo(userIdList);
//获取员工一个月中已审核、自动审核的工单单日汇总汇总
ArrayList<StatisticsTableDto> statisticsTableDtos = new ArrayList<>();
List<StatisticsTableDto> statisticsTableDtos = new ArrayList<>();
for (Integer id : userIdList) {
WorkUser workUser = workUserService.getById(id);
//获取当月每天工时信息
......@@ -114,17 +112,17 @@ public class StatisticsServiceImpl implements StatisticsService {
}
@Override
public ArrayList<Object> getMonthlyStatistics(Integer userId) {
public List<Object> getMonthlyStatistics(Integer userId) {
log.info("WorkTimeOrderServiceImpl[]getMonthlyStatistics[]input.param" + userId);
WorkUser user = workUserService.getById(userId);
//本月第一天
Date firstDayOfMonth = DateUtil.getCurrentFirstDayOfMonth();
//返回数据对象
ArrayList<Object> objects = new ArrayList<>();
List<Object> objects = new ArrayList<>();
//用户是项目或部门级别
if (user.getLevel() == ManagerEnum.IS_PROJECT_DIRECTOR.getCode() ||
user.getLevel() == ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode()) {
HashMap<String, Object> map = new HashMap<>();
if (user.getLevel().equals(ManagerEnum.IS_PROJECT_DIRECTOR.getCode()) ||
user.getLevel().equals(ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode())) {
Map<String, Object> map = new HashMap<>();
//以审批人、审核状态、开始时间查询本月审批数量
map.put("reviewerId", userId);
map.put("status", WorkOrderStatus.ALREADY_AUDIT.getCode());
......@@ -134,7 +132,7 @@ public class StatisticsServiceImpl implements StatisticsService {
map.replace("status", WorkOrderStatus.TURN_DOWN.getCode());
Integer rejectAndNotResubmit = workTimeOrderMapper.getCountByCondition(map);
//项目级别,获取所管理项目,
if (user.getLevel() == ManagerEnum.IS_PROJECT_DIRECTOR.getCode()) {
if (user.getLevel().equals(ManagerEnum.IS_PROJECT_DIRECTOR.getCode())) {
List<WorkProject> projects = workProjectService.getUserManageProjects(userId);
ArrayList<Integer> projectIds = new ArrayList<>();
for (WorkProject project : projects) {
......@@ -145,14 +143,14 @@ public class StatisticsServiceImpl implements StatisticsService {
}
}
//部门级别
if (user.getLevel() == ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode()) {
if (user.getLevel().equals(ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode())) {
map.put("deptId", user.getDeptId());
//填报项目类型编码
int[] workOrderTypeArray = {WorkOrderType.EXTERNAL_WORK.getCode(), WorkOrderType.INTERNAL_WORK.getCode(), WorkOrderType.OTHER_NOT_PROJECT_BUSINESS.getCode()};
map.put("typeArray", workOrderTypeArray);
}
//待审核包括:新提交和重新提交的
ArrayList<Integer> statusArray = new ArrayList<>();
List<Integer> statusArray = new ArrayList<>();
statusArray.add(WorkOrderStatus.WAIT_AUDIT.getCode());
statusArray.add(WorkOrderStatus.RE_SUBMIT.getCode());
map.remove("reviewerId");
......@@ -169,18 +167,43 @@ public class StatisticsServiceImpl implements StatisticsService {
}
//用户是普通用户或项目级别用户
ArrayList<MonthlyWorkingHoursStatistics> statisticsArrayList = new ArrayList<>();
if (user.getLevel() == ManagerEnum.NOT_MANAGER.getCode() ||
user.getLevel() == ManagerEnum.IS_PROJECT_DIRECTOR.getCode()) {
if (user.getLevel().equals(ManagerEnum.NOT_MANAGER.getCode()) ||
user.getLevel().equals(ManagerEnum.IS_PROJECT_DIRECTOR.getCode())) {
String currentDayOfMonth = DateUtil.convertDateToYMDStr(DateUtil.getCurrentFirstDayOfMonth());
//统计项目类型工单填报次数、总工时
MonthlyWorkingHoursStatistics statistics1 = workTimeOrderMapper.collectByProjectType(userId, ProjectTypeEnum.PROJECT.getCode(), currentDayOfMonth);
MonthlyWorkingHoursStatistics statistics1 = workTimeOrderMapper.statisticsByProjectType(userId, ProjectTypeEnum.PROJECT.getCode(), currentDayOfMonth);
statistics1.setProjectType( ProjectTypeEnum.PROJECT.getMsg());
statisticsArrayList.add(statistics1);
//统计商机类型工单填报次数、总工时
MonthlyWorkingHoursStatistics statistics2 = workTimeOrderMapper.collectByProjectType(userId, ProjectTypeEnum.BUSINESS_OPPORTUNITY.getCode(), currentDayOfMonth);
MonthlyWorkingHoursStatistics statistics2 = workTimeOrderMapper.statisticsByProjectType(userId, ProjectTypeEnum.BUSINESS_OPPORTUNITY.getCode(), currentDayOfMonth);
statistics2.setProjectType(ProjectTypeEnum.BUSINESS_OPPORTUNITY.getMsg());
statisticsArrayList.add(statistics2);
objects.add(statisticsArrayList);
}
return objects;
}
@Override
public List<WorkTimeAndCostCollect> getCurrentMonthWorkTimeCollect(Integer userId,Date startTime) {
log.info("StatisticsServiceImpl[]getCurrentMonthWorkTimeCollect[]input.param" + userId + startTime);
if (userId == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkUser user = workUserService.getById(userId);
if (user.getLevel().equals(ManagerEnum.NOT_MANAGER.getCode())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
//查询用户管理的项目
List<WorkProject> userManageProjects = workProjectService.getUserManageProjects(userId);
//获取项目集合中所有项目的项目主键
List<Integer> projectIds = userManageProjects.stream().map(WorkProject::getId).collect(Collectors.toList());
List<WorkTimeAndCostCollect> collect = workTimeOrderMapper.getWorkTimeAndCostCollect(projectIds, startTime);
for (WorkTimeAndCostCollect timeAndCostCollect : collect) {
//复制部门名称
timeAndCostCollect.setDeptName(workDeptService.getById(timeAndCostCollect.getDeptId()).getDeptName());
}
return collect;
}
}
......@@ -10,7 +10,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -40,14 +42,17 @@ public class WorkDeptServiceImpl implements WorkDeptService {
return workDept;
}
@Override
public List<WorkDept> getDeptInfo(Integer deptId) {
log.info("WorkDeptServiceImpl[]getAllDeptInfo" + deptId);
//获取部门信息
List<WorkDept> workDept = workDeptMapper.getDeptById(deptId);
if (CollectionUtil.isEmpty(workDept)) {
Map<String, Object> map = new HashMap<>();
map.put("id", deptId);
List<WorkDept> workDepts = workDeptMapper.getDeptByCondition(map);
if (CollectionUtil.isEmpty(workDepts)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DEPT_NOT_FOUND);
}
return workDept;
return workDepts;
}
}
package cn.wisenergy.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkCentreMapper;
import cn.wisenergy.mapper.WorkDeptMapper;
import cn.wisenergy.mapper.WorkProjectMapper;
import cn.wisenergy.model.app.WorkCentre;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.app.WorkUser;
import cn.wisenergy.model.dto.ProjectDto;
......@@ -19,6 +24,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
......@@ -38,6 +44,12 @@ public class WorkProjectServiceImpl implements WorkProjectService {
@Autowired
private WorkUserService workUserService;
@Autowired
private WorkDeptMapper workDeptMapper;
@Autowired
private WorkCentreMapper workCentreMapper;
/**
* 功能:根据项目id获取项目
*
......@@ -105,6 +117,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return projectDtos;
}
@Override
public List<WorkProject> getUserManageProjects(Integer userId) {
log.info("WorkProjectServiceImpl[]getUserManageProjects[]input.param" + userId);
......@@ -112,20 +125,42 @@ public class WorkProjectServiceImpl implements WorkProjectService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkUser user = workUserService.getById(userId);
//存放项目列表
List<WorkProject> workProjects = new ArrayList<>();
//存放查询条件
HashMap<String, Object> map = new HashMap<>();
Integer level = user.getLevel();
if (level.equals(ManagerEnum.IS_PROJECT_DIRECTOR.getCode())) {
//项目级别查询项目管理员为用户的项目
if (user.getLevel() == ManagerEnum.IS_PROJECT_DIRECTOR.getCode()) {
map.put("managerId", userId);
workProjects = workProjectMapper.getProjectsByCriteria(map);
}
//用户是部门级别,查询该部门下的所有项目
if (level.equals(ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode())) {
if (user.getLevel() == ManagerEnum.IS_DEPARTMENT_DIRECTOR.getCode()) {
map.put("deptId", user.getDeptId());
workProjects = workProjectMapper.getProjectsByCriteria(map);
}
//中心级别的用户查看中心下所有部门的所有项目
if (user.getLevel().equals(ManagerEnum.IS_CENTRE_DIRECTOR.getCode())) {
//获取中心信息
WorkCentre workCentre = workCentreMapper.getByManagerId(user.getId());
if (workCentre == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.CENTRE_NOT_FOUND);
}
map.put("centre_id",workCentre.getId());
//获取中心下的部门信息
List<WorkDept> workDepts = workDeptMapper.getDeptByCondition(map);
if (CollectionUtils.isEmpty(workDepts)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DEPT_NOT_FOUND);
}
//获取这些部门的主键
List<Integer> deptIds = workDepts.stream().map(workDept -> workDept.getId()).collect(Collectors.toList());
map.clear();
map.put("deptIds", deptIds);
workProjects = workProjectMapper.getProjectsByCriteria(map);
}
if (CollectionUtil.isEmpty(workProjects)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.MANAGER_NOT_PROJECT);
}
return workProjects;
}
}
package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.dto.GetMonthlyCollectParam;
import cn.wisenergy.model.dto.WorkTimeAndCostCollect;
import cn.wisenergy.service.StatisticsService;
import cn.wisenergy.service.WorkDeptService;
import cn.wisenergy.web.admin.controller.common.BaseController;
......@@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
/**
......@@ -37,7 +41,7 @@ public class StatisticsController extends BaseController {
@GetMapping("/getMonthlyCollect")
public PageInfo getMonthlyCollect(GetMonthlyCollectParam param) {
log.info("StatisticsController[]getMonthlyCollect[]input.param" + param);
PageInfo monthlyCollect = statisticsService.getMonthlyCollect(param);
PageInfo monthlyCollect = statisticsService.getDayWorkTimeOfMonth(param);
return monthlyCollect;
}
......@@ -50,4 +54,15 @@ public class StatisticsController extends BaseController {
return workDepts;
}
@ApiOperation(value = "获取负责项目工时汇总", notes = "获取负责项目工时汇总")
@GetMapping("/getCurrentMonthWorkTimeCollect")
public List<WorkTimeAndCostCollect> getWorkTimeCollect(Integer userId, Date startTime) {
log.info("WorkUserController[]getCurrentMonthWorkTimeCollect[]input.param" + userId,startTime);
if (userId == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<WorkTimeAndCostCollect> currentMonthWorkTimeCollect = statisticsService.getCurrentMonthWorkTimeCollect(userId,startTime);
return currentMonthWorkTimeCollect;
}
}
......@@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -62,6 +61,12 @@ public class WorkUserController extends BaseController {
return getResult(resultUser);
}
@ApiOperation(value = "修改密码", notes = "修改用户登录密码", httpMethod = "PUT")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户主键", dataType = "integer"),
@ApiImplicitParam(name = "oldPassword", value = "原密码", dataType = "string"),
@ApiImplicitParam(name = "newPassword", value = "新密码", dataType = "string"),
})
@PutMapping(value = "/changePassword")
public Result<ResultUser> changePassword(Integer userId, String oldPassword, String newPassword) {
log.info("WorkUserController[]changePassword[]input.param{}" + userId + oldPassword + newPassword);
......@@ -73,10 +78,10 @@ public class WorkUserController extends BaseController {
}
@ApiOperation(value = "获取本月工时统计", notes = "获取本月",httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户主键",dataType = "integer", required = true)
@ApiOperation(value = "获取本月工时统计和审核统计", notes = "获取本月",httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户主键",dataType = "int", required = true)
@GetMapping("/getMonthlyWorkingHours")
public Result<ArrayList<Object>> getMonthlyWorkingHours(Integer userId){
public Result<List<Object>> getMonthlyWorkingHours(Integer userId){
log.info("WorkOrderController[]getMonthlyWorkingHours[]input.param" + userId);
if (userId == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
......@@ -84,4 +89,6 @@ public class WorkUserController extends BaseController {
List<Object> monthlyStatistics = statisticsService.getMonthlyStatistics(userId);
return getResult(monthlyStatistics);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment