Commit 87a0a3c1 authored by cq990612's avatar cq990612

优化代码结构

parent 776cace3
...@@ -74,6 +74,8 @@ public enum BASE_RESP_CODE_ENUM { ...@@ -74,6 +74,8 @@ public enum BASE_RESP_CODE_ENUM {
HOLIDAY_NOT_IS_NULL("652", "该节假日已经不存在,请刷新页面!"), HOLIDAY_NOT_IS_NULL("652", "该节假日已经不存在,请刷新页面!"),
ORDINARY_MEMBERS_ARE_MANAGEMENT("653", "普通成员不能有管理角色,请取消普通成员选项"), ORDINARY_MEMBERS_ARE_MANAGEMENT("653", "普通成员不能有管理角色,请取消普通成员选项"),
REPEAT_WITH_OLDTIME("654", "日期与旧时间冲突"), REPEAT_WITH_OLDTIME("654", "日期与旧时间冲突"),
BUDGET_CANNOT_BELESSTHAN_ZERO("655", "预算不能小于0"),
ITEMOADUPLICATE("656", "项目OA重复"),
; ;
......
...@@ -8,4 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -8,4 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @QQ1799796883 * @QQ1799796883
*/ */
public interface WorkLevelMapper extends BaseMapper<WorkLevel> { public interface WorkLevelMapper extends BaseMapper<WorkLevel> {
} }
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkTypeManager;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface WorkTypeManagerMapper extends BaseMapper<WorkTypeManager> {
List<Integer> getTypeByGroup();
}
...@@ -3,7 +3,15 @@ package cn.wisenergy.mapper; ...@@ -3,7 +3,15 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkType; import cn.wisenergy.model.app.WorkType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
public interface WorkTypeMapper extends BaseMapper<WorkType> { public interface WorkTypeMapper extends BaseMapper<WorkType> {
List<WorkType> getAll();
List<Integer> getIdByReviewer(Integer reviewer);
} }
package cn.wisenergy.mapper; package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkUserRole; import cn.wisenergy.model.app.WorkUserRole;
import cn.wisenergy.model.dto.UserRoleLevelDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -14,4 +15,6 @@ public interface WorkUserRoleMapper extends BaseMapper<WorkUserRole> { ...@@ -14,4 +15,6 @@ public interface WorkUserRoleMapper extends BaseMapper<WorkUserRole> {
int deleteByUserId(Integer userId); int deleteByUserId(Integer userId);
int insertBatch(@Param("userId") Integer userId,@Param("roleIds") List<Integer> roleIds); int insertBatch(@Param("userId") Integer userId,@Param("roleIds") List<Integer> roleIds);
List<UserRoleLevelDto> getRoleUserLevel(Integer userId);
} }
<?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.WorkTypeManagerMapper">
<select id="getTypeByGroup" resultType="java.lang.Integer">
SELECT `type`
FROM work_type_manager
GROUP BY `type`
</select>
</mapper>
\ No newline at end of file
<?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.WorkTypeMapper">
<select id="getAll" resultType="cn.wisenergy.model.app.WorkType">
SELECT id,name,reviewer
FROM work_type
</select>
<select id="getIdByReviewer" resultType="java.lang.Integer">
SELECT id
FROM work_type
WHERE reviewer = #{reviewer}
</select>
</mapper>
\ No newline at end of file
...@@ -23,4 +23,13 @@ ...@@ -23,4 +23,13 @@
FROM work_user_role FROM work_user_role
WHERE user_id = #{userId} WHERE user_id = #{userId}
</select> </select>
<select id="getRoleUserLevel" resultType="cn.wisenergy.model.dto.UserRoleLevelDto">
select ur.user_id as 'user_id',r.id as 'role_id',l.name as 'level_name',l.rank as 'rank'
from work_user_role ur join work_role r on ur.role_id = r.id
join work_role_level rl on rl.role_id = r.id JOIN work_level l on l.id = rl.level_id
WHERE ur.user_id = #{userId}
ORDER BY rank desc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -2,6 +2,7 @@ package cn.wisenergy.model.app; ...@@ -2,6 +2,7 @@ package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -54,9 +55,11 @@ public class WorkProject implements Serializable { ...@@ -54,9 +55,11 @@ public class WorkProject implements Serializable {
@ApiModelProperty(name = "isConclusion",value = "是否结项 :0:项目已结束、1:项目未结束") @ApiModelProperty(name = "isConclusion",value = "是否结项 :0:项目已结束、1:项目未结束")
private Integer isConclusion; private Integer isConclusion;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "startTime",value = "项目开始时间") @ApiModelProperty(name = "startTime",value = "项目开始时间")
private Date startTime; private Date startTime;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "endTime",value = "项目结束时间") @ApiModelProperty(name = "endTime",value = "项目结束时间")
private Date endTime; private Date endTime;
...@@ -67,4 +70,6 @@ public class WorkProject implements Serializable { ...@@ -67,4 +70,6 @@ public class WorkProject implements Serializable {
private Date modifyTime; private Date modifyTime;
} }
...@@ -7,13 +7,14 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -7,13 +7,14 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ApiModel(value="WorkType", description="其他项目类型类") @ApiModel(value="WorkType", description="项目类型类")
public class WorkType { public class WorkType {
@ApiModelProperty(name = "id",value = "主键id") @ApiModelProperty(name = "id",value = "主键id")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
...@@ -21,13 +22,6 @@ public class WorkType { ...@@ -21,13 +22,6 @@ public class WorkType {
@ApiModelProperty(name = "name",value = "类型名") @ApiModelProperty(name = "name",value = "类型名")
private String name; private String name;
@ApiModelProperty(name = "deptId",value = "部门id") @ApiModelProperty(name = "reviewer",value = "检查者:1:该项目负责人 2:系统自动 3:部门或中心负责人")
private Integer deptId; private Integer reviewer;
@ApiModelProperty(name = "managerId",value = "manager_id")
private Integer managerId;
@ApiModelProperty(name = "type",value = "5:外部商务、技术交流 6:内部培训、技术准备、管理 7:其他非项目/商机工作")
private Integer type;
} }
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;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="WorkTypeManager", description="其他类型对应管理类")
public class WorkTypeManager {
@ApiModelProperty(name = "id",value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(name = "name",value = "类型名")
private String name;
@ApiModelProperty(name = "deptId",value = "部门id")
private Integer deptId;
@ApiModelProperty(name = "managerId",value = "manager_id")
private Integer managerId;
@ApiModelProperty(name = "type",value = "5:外部商务、技术交流 6:内部培训、技术准备、管理 7:其他非项目/商机工作")
private Integer type;
}
package cn.wisenergy.model.app; package cn.wisenergy.model.dto;
import cn.wisenergy.model.app.WorkLevel;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
......
package cn.wisenergy.model.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class UserRoleLevelDto implements Serializable {
private static final long serialVersionUID = -7689347911723244999L;
private Integer userId;
private Integer roleId;
private String levelName;
private Integer rank;
}
package cn.wisenergy.model.enums;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
public enum LevelEnum {
EXAMINE("审批"),
STATISTICS("统计"),
PROJECT_MANAGER( "项目/商机管理"),
;
private String LevelName;
LevelEnum(String LevelName) {
this.LevelName = LevelName;
}
public String getLevelName() {
return LevelName;
}}
package cn.wisenergy.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="CreateProjectVo", description="添加项目/商机Vo类")
public class CreateProjectVo {
@ApiModelProperty(name = "type",value = "1:项目,2:商机")
private Integer type;
@ApiModelProperty(name = "oaProjectId",value = "OA中的项目编号")
private String oaProjectId;
@ApiModelProperty(name = "projectName",value = "项目名称")
private String projectName;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "startTime",value = "项目开始时间")
private Date startTime;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "endTime",value = "项目结束时间")
private Date endTime;
@ApiModelProperty(name = "workTime",value = "工时预算")
private BigDecimal workTime;
@ApiModelProperty(name = "costBudget",value = "成本预算,以万为单位")
private BigDecimal costBudget;
@ApiModelProperty(name = "managerId",value = "项目经理userId")
private Integer managerId;
@ApiModelProperty(name = "userIds",value = "参与人员id")
private List<Integer> userIds;
@ApiModelProperty(name = "deptId",value = "部门id")
private Integer deptId;
}
...@@ -2,6 +2,7 @@ package cn.wisenergy.service; ...@@ -2,6 +2,7 @@ package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkProject; import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.dto.ProjectDto; import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.vo.CreateProjectVo;
import cn.wisenergy.model.vo.GetManagerProjectsVo; import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo; import cn.wisenergy.model.vo.ModifyProjectVo;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
...@@ -67,4 +68,6 @@ public interface WorkProjectService { ...@@ -67,4 +68,6 @@ public interface WorkProjectService {
Boolean endProject(Integer userId,Integer projectId); Boolean endProject(Integer userId,Integer projectId);
Boolean modifyProject(ModifyProjectVo modifyProjectVo); Boolean modifyProject(ModifyProjectVo modifyProjectVo);
Boolean addProject(CreateProjectVo createProjectVo);
} }
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkTypeManager;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
public interface WorkTypeManagerService {
/**
* 功能:根据审核人id获取
* @param userId
* @return
*/
List<WorkTypeManager> getByManagerId(Integer userId);
/**
* 功能:根据部门id获取
* @param deptId
* @return
*/
List<WorkTypeManager> getByDeptId(Integer deptId);
/**
* 功能: 根据类型获取
* @param type
* @return
*/
List<WorkTypeManager> getByType(Integer type);
/**
* 功能:查看有哪些其他Type
* @return
*/
List<WorkTypeManager> getType();
List<Integer> getTypeByGroup();
}
...@@ -10,30 +10,7 @@ import java.util.List; ...@@ -10,30 +10,7 @@ import java.util.List;
*/ */
public interface WorkTypeService { public interface WorkTypeService {
/** List<WorkType> getAll();
* 功能:根据审核人id获取
* @param userId
* @return
*/
List<WorkType> getByManagerId(Integer userId);
/** List<Integer> getIdByReviewer(Integer reviewer);
* 功能:根据部门id获取
* @param deptId
* @return
*/
List<WorkType> getByDeptId(Integer deptId);
/**
* 功能: 根据类型获取
* @param type
* @return
*/
List<WorkType> getByType(Integer type);
/**
* 功能:查看有哪些其他Type
* @return
*/
List<WorkType> getType();
} }
...@@ -58,4 +58,6 @@ public interface WorkUserService { ...@@ -58,4 +58,6 @@ public interface WorkUserService {
AllRoleAndUserRoleDto getUserRoleDto(Integer page, Integer pageSize); AllRoleAndUserRoleDto getUserRoleDto(Integer page, Integer pageSize);
Boolean modifyRole(Integer userId, List<Integer> roleIds); Boolean modifyRole(Integer userId, List<Integer> roleIds);
} }
...@@ -12,12 +12,10 @@ import cn.wisenergy.model.dto.ProjectDto; ...@@ -12,12 +12,10 @@ import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.dto.UserProjectDto; import cn.wisenergy.model.dto.UserProjectDto;
import cn.wisenergy.model.enums.LevelRankEnum; import cn.wisenergy.model.enums.LevelRankEnum;
import cn.wisenergy.model.enums.ManagerEnum; import cn.wisenergy.model.enums.ManagerEnum;
import cn.wisenergy.model.vo.CreateProjectVo;
import cn.wisenergy.model.vo.GetManagerProjectsVo; import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo; import cn.wisenergy.model.vo.ModifyProjectVo;
import cn.wisenergy.service.WorkProjectChangeService; import cn.wisenergy.service.*;
import cn.wisenergy.service.WorkProjectService;
import cn.wisenergy.service.WorkUserProjectService;
import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.service.utils.UserRoleLevelUtils; import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
...@@ -29,6 +27,7 @@ import org.springframework.stereotype.Service; ...@@ -29,6 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
...@@ -65,6 +64,9 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -65,6 +64,9 @@ public class WorkProjectServiceImpl implements WorkProjectService {
@Autowired @Autowired
private WorkProjectChangeService workProjectChangeService; private WorkProjectChangeService workProjectChangeService;
@Autowired
private WorkUserDeptService workUserDeptService;
/** /**
* 功能:根据项目id获取项目 * 功能:根据项目id获取项目
* *
...@@ -365,6 +367,51 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -365,6 +367,51 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return true; return true;
} }
@Transactional
@Override
public Boolean addProject(CreateProjectVo createProjectVo) {
log.info("WorkProjectServiceImpl[]addProject[]input.param.createProjectVo:{}" + createProjectVo);
// 1.验证工单
if (null == createProjectVo) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (null == createProjectVo.getManagerId()||null == createProjectVo.getStartTime()||null == createProjectVo.getEndTime() || null ==createProjectVo.getOaProjectId() ||null== createProjectVo.getWorkTime() || null == createProjectVo.getCostBudget() ||
null == createProjectVo.getProjectName() || CollectionUtils.isEmpty(createProjectVo.getUserIds()) || null == createProjectVo.getDeptId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (createProjectVo.getStartTime().compareTo(createProjectVo.getEndTime()) > 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.START_NOT_THAN_END_DATE);
}
if (BigDecimal.ZERO.compareTo(createProjectVo.getWorkTime())>0 ||BigDecimal.ZERO.compareTo(createProjectVo.getCostBudget())>0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.BUDGET_CANNOT_BELESSTHAN_ZERO);
}
// 判断oa编号是否重复 TODO
List<WorkProject> workProjects = workProjectMapper.selectList(new QueryWrapper<>());
if (CollectionUtils.isEmpty(workProjects)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
}
for (WorkProject workProject : workProjects) {
if (workProject.getOaProjectId().equals(createProjectVo.getOaProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.ITEMOADUPLICATE);
}
}
// 插入项目信息
Date date = new Date();
WorkProject workProject = new WorkProject();
workProject.setIsConclusion(1);
workProject.setCreateTime(date);
workProject.setModifyTime(date);
BeanUtils.copyProperties(createProjectVo, workProject);
int insert = workProjectMapper.insert(workProject);
if (insert == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL);
}
// 插入参与人员信息
return workUserProjectService.insertBatch(createProjectVo.getUserIds(), workProject.getId());
}
private PageInfo returnPageInfo(List<ManagerProjectsDto> managerProjectsDto) { private PageInfo returnPageInfo(List<ManagerProjectsDto> managerProjectsDto) {
if (CollectionUtils.isEmpty(managerProjectsDto)) { if (CollectionUtils.isEmpty(managerProjectsDto)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
......
...@@ -8,9 +8,12 @@ import cn.wisenergy.mapper.WorkTimeOrderMapper; ...@@ -8,9 +8,12 @@ import cn.wisenergy.mapper.WorkTimeOrderMapper;
import cn.wisenergy.mapper.WorkUserMapper; import cn.wisenergy.mapper.WorkUserMapper;
import cn.wisenergy.model.app.*; import cn.wisenergy.model.app.*;
import cn.wisenergy.model.dto.*; import cn.wisenergy.model.dto.*;
import cn.wisenergy.model.enums.ProjectTypeEnum; import cn.wisenergy.model.enums.LevelEnum;
import cn.wisenergy.model.enums.LevelRankEnum;
import cn.wisenergy.model.enums.ManagerEnum;
import cn.wisenergy.model.enums.StatusEnum; import cn.wisenergy.model.enums.StatusEnum;
import cn.wisenergy.service.*; import cn.wisenergy.service.*;
import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
...@@ -24,10 +27,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -24,10 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.*;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/** /**
* <p> * <p>
...@@ -47,6 +47,9 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -47,6 +47,9 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
@Autowired @Autowired
private WorkUserMapper workUserMapper; private WorkUserMapper workUserMapper;
@Autowired
private WorkTypeService workTypeService;
@Autowired @Autowired
private WorkProjectService workProjectService; private WorkProjectService workProjectService;
...@@ -75,16 +78,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -75,16 +78,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
private WorkUserProjectService workUserProjectService; private WorkUserProjectService workUserProjectService;
@Autowired @Autowired
private WorkTypeService workTypeService; private WorkTypeManagerService workTypeManagerService;
//填报类型
private final static Integer PROJECT = ProjectTypeEnum.PROJECT.getType();
private final static Integer BUSINESS_OPPORTUNITY = ProjectTypeEnum.BUSINESS_OPPORTUNITY.getType();
private final static Integer LEAVE = ProjectTypeEnum.LEAVE.getType();
private final static Integer COMPENSATORY_LEAVE = ProjectTypeEnum.COMPENSATORY_LEAVE.getType();
private final static Integer EXTERNAL_BUSINESS = ProjectTypeEnum.EXTERNAL_BUSINESS.getType();
private final static Integer INTERNAL_TRAINING = ProjectTypeEnum.INTERNAL_TRAINING.getType();
private final static Integer OTHER_NON_PROJECTS = ProjectTypeEnum.OTHER_NON_PROJECTS.getType();
// 工单状态 // 工单状态
private final static Integer COMPLETED = StatusEnum.COMPLETED.getCode(); private final static Integer COMPLETED = StatusEnum.COMPLETED.getCode();
private final static Integer APPROVED = StatusEnum.APPROVED.getCode(); private final static Integer APPROVED = StatusEnum.APPROVED.getCode();
...@@ -142,19 +136,27 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -142,19 +136,27 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
int rejectMonth = 0; int rejectMonth = 0;
subtotalDto.setUserId(userId); subtotalDto.setUserId(userId);
subtotalDto.setWorkDay(workDay); subtotalDto.setWorkDay(workDay);
List<Integer> typeIds = workTypeService.getIdByReviewer(1);
for (WorkTimeOrder wto : workTimeOrders) { for (WorkTimeOrder wto : workTimeOrders) {
totalTime += wto.getWorkTime(); totalTime += wto.getWorkTime();
if (null != wto.getReason() && REJECTED.equals(wto.getStatus()) && reason.toString().equals("")) { if (null != wto.getReason() && REJECTED.equals(wto.getStatus()) && reason.toString().equals("")) {
if (PROJECT.equals(wto.getType()) || BUSINESS_OPPORTUNITY.equals(wto.getType())) { if (!CollectionUtils.isEmpty(typeIds)) {
reason.append(workProjectService.getById(wto.getProjectId()).getProjectName()).append(":").append(wto.getReason()).append(";"); if (typeIds.contains(wto.getType())) {
} reason.append(workProjectService.getById(wto.getProjectId()).getProjectName()).append(":").append(wto.getReason()).append(";");
if (!PROJECT.equals(wto.getType()) && !BUSINESS_OPPORTUNITY.equals(wto.getType())) { }
for (ProjectTypeEnum value : ProjectTypeEnum.values()) { if (!typeIds.contains(wto.getType())) {
if (value.getType().equals(wto.getType())) { List<WorkType> workTypes = workTypeService.getAll();
reason.append(value.getTypeName()).append(":").append(wto.getReason()).append(";"); if (!CollectionUtils.isEmpty(workTimeOrders)) {
for (WorkType value : workTypes) {
if (value.getId().equals(wto.getType())) {
reason.append(value.getName()).append(":").append(wto.getReason()).append(";");
}
}
} }
} }
} }
} }
} }
...@@ -212,6 +214,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -212,6 +214,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
timeNotEight(workTimeOrders); timeNotEight(workTimeOrders);
int totalTime = 0; int totalTime = 0;
List<WorkTimeOrder> addList = new ArrayList<>(); List<WorkTimeOrder> addList = new ArrayList<>();
List<Integer> typeIds = workTypeService.getIdByReviewer(1);
for (WorkTimeOrderDto dto : workTimeOrders) { for (WorkTimeOrderDto dto : workTimeOrders) {
// 3.判断工单是否合法 // 3.判断工单是否合法
isEmpty(dto); isEmpty(dto);
...@@ -220,12 +223,14 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -220,12 +223,14 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
Integer type = dto.getType(); Integer type = dto.getType();
dto.setUserName(workUserService.getById(dto.getUserId()).getName()); dto.setUserName(workUserService.getById(dto.getUserId()).getName());
dto.setTypeName(getTypeName(type)); dto.setTypeName(getTypeName(type));
if (PROJECT.equals(type) || BUSINESS_OPPORTUNITY.equals(type)) { if (!CollectionUtils.isEmpty(typeIds)) {
dto.setProjectName(workProjectService.getById(dto.getProjectId()).getProjectName()); if (typeIds.contains(type)) {
dto.setManagerName(workUserService.getById(workProjectService.getById(dto.getProjectId()).getManagerId()).getName()); dto.setProjectName(workProjectService.getById(dto.getProjectId()).getProjectName());
} dto.setManagerName(workUserService.getById(workProjectService.getById(dto.getProjectId()).getManagerId()).getName());
if (!PROJECT.equals(type) && !BUSINESS_OPPORTUNITY.equals(type)) { }
dto.setManagerName(workUserService.getById(workTypeService.getByDeptId(workUserService.getById(dto.getUserId()).getDeptId()).get(0).getManagerId()).getName()); if (!typeIds.contains(type)) {
dto.setManagerName(workUserService.getById(workTypeManagerService.getByDeptId(workUserService.getById(dto.getUserId()).getDeptId()).get(0).getManagerId()).getName());
}
} }
// 设置状态 // 设置状态
if (null == dto.getStatus() || 0 == dto.getStatus()) { if (null == dto.getStatus() || 0 == dto.getStatus()) {
...@@ -260,18 +265,18 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -260,18 +265,18 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
for (WorkTimeOrder dto : addList) { for (WorkTimeOrder dto : addList) {
WorkCollect byUserIdAndWorkDay = workCollectService.getByUserIdAndWorkDay(dto.getUserId(), dto.getWorkDay()); WorkCollect byUserIdAndWorkDay = workCollectService.getByUserIdAndWorkDay(dto.getUserId(), dto.getWorkDay());
if (null !=byUserIdAndWorkDay && null != byUserIdAndWorkDay.getRejectTime()) { if (null != byUserIdAndWorkDay && null != byUserIdAndWorkDay.getRejectTime()) {
Date rejectTime1 = byUserIdAndWorkDay.getRejectTime(); Date rejectTime1 = byUserIdAndWorkDay.getRejectTime();
dto.setStatus(RE_SUBMIT); dto.setStatus(RE_SUBMIT);
Date rejectTime = DateUtil.convertStrToDate(DateUtil.convertDateToStr(rejectTime1, "yyyy-MM-dd"), "yyyy-MM-dd"); Date rejectTime = DateUtil.convertStrToDate(DateUtil.convertDateToStr(rejectTime1, "yyyy-MM-dd"), "yyyy-MM-dd");
if (date.getTime() - rejectTime.getTime() > submitTime * 24 * 60 * 60 * 1000) { if (date.getTime() - rejectTime.getTime() > submitTime * 24 * 60 * 60 * 1000) {
throw new BaseCustomException("627","超过"+submitTime+"天的不能填报"); throw new BaseCustomException("627", "超过" + submitTime + "天的不能填报");
} }
} }
// 4、默认设置超过系统默认3天(包括驳回3天)未填报的工时将不能填报 // 4、默认设置超过系统默认3天(包括驳回3天)未填报的工时将不能填报
if (!REJECTED.equals(dto.getStatus()) && !RE_SUBMIT.equals(dto.getStatus())) { if (!REJECTED.equals(dto.getStatus()) && !RE_SUBMIT.equals(dto.getStatus())) {
if (date.getTime() - dto.getWorkDay().getTime() > submitTime * 24 * 60 * 60 * 1000) { if (date.getTime() - dto.getWorkDay().getTime() > submitTime * 24 * 60 * 60 * 1000) {
throw new BaseCustomException("627","超过"+submitTime+"天的不能填报"); throw new BaseCustomException("627", "超过" + submitTime + "天的不能填报");
} }
} }
...@@ -313,27 +318,23 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -313,27 +318,23 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
List<Integer> typeIds = workTypeService.getIdByReviewer(1);
int size = list.size(); int size = list.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
for (int j = i + 1; j < size; j++) { for (int j = i + 1; j < size; j++) {
if (PROJECT.equals(list.get(i).getType()) || BUSINESS_OPPORTUNITY.equals(list.get(i).getType())) { if (!CollectionUtils.isEmpty(typeIds)) {
if (list.get(j).getType().equals(list.get(i).getType())) { if (typeIds.contains(list.get(i).getType())) {
if (null == list.get(i).getProjectId() || null == list.get(j).getProjectId()) { if (list.get(j).getType().equals(list.get(i).getType())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_JOIN_EVERY_PROJECT_PLASE_JION); if (null == list.get(i).getProjectId() || null == list.get(j).getProjectId()) {
}else if(list.get(i).getProjectId().equals(list.get(j).getProjectId())){ throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_JOIN_EVERY_PROJECT_PLASE_JION);
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT); } else if (list.get(i).getProjectId().equals(list.get(j).getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
}
} }
}else if (list.get(i).getType().equals(list.get(j).getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
} }
} else if (list.get(i).getType().equals(list.get(j).getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
} }
/* if (list.get(i).getType().equals(list.get(j).getType())) {
if (null != list.get(i).getProjectId() && null != list.get(j).getProjectId() && !list.get(i).getProjectId().equals(list.get(j).getProjectId())) {
continue;
}
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
}*/
} }
} }
} }
...@@ -373,8 +374,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -373,8 +374,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if (null == projectId && null == type) { if (null == projectId && null == type) {
return null; return null;
} }
if (UserRoleLevelUtils.isManagerLevel(userId, LevelEnum.EXAMINE.getLevelName())) {
if (0 != user.getLevel()) {
QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>(); QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>();
wrapper.in("status", COMPLETED, RE_SUBMIT); wrapper.in("status", COMPLETED, RE_SUBMIT);
wrapper.eq(type != null, "type", type); wrapper.eq(type != null, "type", type);
...@@ -387,6 +387,8 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -387,6 +387,8 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
return getDto(workTimeOrders); return getDto(workTimeOrders);
} }
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_END); throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_END);
} }
...@@ -408,17 +410,20 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -408,17 +410,20 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
for (WorkTimeOrder workTimeOrder : workTimeOrders) { for (WorkTimeOrder workTimeOrder : workTimeOrders) {
System.out.println(workTimeOrder); System.out.println(workTimeOrder);
} }
List<Integer> typeIds = workTypeService.getIdByReviewer(1);
for (AppletsPendApprovalDto approvalDto : appletsPendApprovalDtos) { for (AppletsPendApprovalDto approvalDto : appletsPendApprovalDtos) {
List<WorkTimeOrderDto> workTimeOrderList = new ArrayList<>(); List<WorkTimeOrderDto> workTimeOrderList = new ArrayList<>();
for (WorkTimeOrder workTimeOrder : workTimeOrders) { for (WorkTimeOrder workTimeOrder : workTimeOrders) {
if (approvalDto.getWorkDay().compareTo(workTimeOrder.getWorkDay()) == 0) { if (approvalDto.getWorkDay().compareTo(workTimeOrder.getWorkDay()) == 0) {
WorkTimeOrderDto workTimeOrderDto = new WorkTimeOrderDto(); WorkTimeOrderDto workTimeOrderDto = new WorkTimeOrderDto();
BeanUtils.copyProperties(workTimeOrder, workTimeOrderDto); BeanUtils.copyProperties(workTimeOrder, workTimeOrderDto);
workTimeOrderDto.setManagerName(workUserService.getById(workTypeService.getByDeptId(workTimeOrder.getDeptId()).get(0).getManagerId()).getName()); workTimeOrderDto.setManagerName(workUserService.getById(workTypeManagerService.getByDeptId(workTimeOrder.getDeptId()).get(0).getManagerId()).getName());
workTimeOrderDto.setUserName(workUserService.getById(workTimeOrderDto.getUserId()).getName()); workTimeOrderDto.setUserName(workUserService.getById(workTimeOrderDto.getUserId()).getName());
if (PROJECT.equals(workTimeOrder.getType()) || BUSINESS_OPPORTUNITY.equals(workTimeOrder.getType())) { if (!CollectionUtils.isEmpty(typeIds)) {
workTimeOrderDto.setProjectName(workProjectService.getById(workTimeOrderDto.getProjectId()).getProjectName()); if (typeIds.contains(workTimeOrder.getType())) {
workTimeOrderDto.setManagerName(workUserService.getById(workProjectService.getById(workTimeOrderDto.getProjectId()).getManagerId()).getName()); workTimeOrderDto.setProjectName(workProjectService.getById(workTimeOrderDto.getProjectId()).getProjectName());
workTimeOrderDto.setManagerName(workUserService.getById(workProjectService.getById(workTimeOrderDto.getProjectId()).getManagerId()).getName());
}
} }
workTimeOrderDto.setTypeName(getTypeName(workTimeOrderDto.getType())); workTimeOrderDto.setTypeName(getTypeName(workTimeOrderDto.getType()));
workTimeOrderList.add(workTimeOrderDto); workTimeOrderList.add(workTimeOrderDto);
...@@ -444,11 +449,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -444,11 +449,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
Integer level = workUserService.getById(reviewerId).getLevel(); isManager(reviewerId);
if (level == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
int i = workTimeOrderMapper.updateByIds(reviewerId, ids); int i = workTimeOrderMapper.updateByIds(reviewerId, ids);
if (i == 0) { if (i == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.UPDATE_DATA_FAIL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.UPDATE_DATA_FAIL);
...@@ -479,6 +480,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -479,6 +480,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if (null == reviewerId || null == id || StringUtils.isEmpty(reason)) { if (null == reviewerId || null == id || StringUtils.isEmpty(reason)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
isManager(reviewerId);
Integer level = workUserService.getById(reviewerId).getLevel(); Integer level = workUserService.getById(reviewerId).getLevel();
if (level == 0) { if (level == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN); throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
...@@ -538,54 +540,66 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -538,54 +540,66 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
// 1.获取可填报的项目 // 1.获取可填报的项目
projectsDto.setProjectInfoDto(getProjectInfoDto(userId)); projectsDto.setProjectInfoDto(getProjectInfoDto(userId));
// 2.获取可审批的项目 // 2.获取可审批的项目
if (0 != user.getLevel()) { List<UserRoleLevelDto> roleUserLevel = UserRoleLevelUtils.getRoleUserLevel(userId);
List<ProjectManagerDto> projectManagerDtos = new ArrayList<>(); if (CollectionUtils.isEmpty(roleUserLevel)) {
List<ProjectDto> projectDtos = workProjectService.getByManagerId(userId,1); return projectsDto;
if (!CollectionUtils.isEmpty(projectDtos)) { }
QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>(); for (UserRoleLevelDto userRoleLevelDto : roleUserLevel) {
List<Integer> projectIds = new ArrayList<>(); // 如果有审批权限
for (ProjectDto projectDto : projectDtos) { if (LevelEnum.EXAMINE.getLevelName().equals(userRoleLevelDto.getLevelName())) {
projectIds.add(projectDto.getId()); List<ProjectManagerDto> projectManagerDtos = new ArrayList<>();
} List<ProjectDto> projectDtos = workProjectService.getByManagerId(userId, 1);
wrapper.in("project_id", projectIds); if (!CollectionUtils.isEmpty(projectDtos)) {
wrapper.in("status", COMPLETED, RE_SUBMIT); QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>();
List<WorkTimeOrder> timeOrders = workTimeOrderMapper.selectList(wrapper); List<Integer> projectIds = new ArrayList<>();
ProjectManagerDto projectManagerDto; for (ProjectDto projectDto : projectDtos) {
for (ProjectDto projectDto : projectDtos) { projectIds.add(projectDto.getId());
projectManagerDto = new ProjectManagerDto(); }
Integer pendingApprovalTimes = 0; wrapper.in("project_id", projectIds);
for (WorkTimeOrder timeOrder : timeOrders) { wrapper.in("status", COMPLETED, RE_SUBMIT);
if (timeOrder.getProjectId().equals(projectDto.getId())) { List<WorkTimeOrder> timeOrders = workTimeOrderMapper.selectList(wrapper);
pendingApprovalTimes++; ProjectManagerDto projectManagerDto;
for (ProjectDto projectDto : projectDtos) {
projectManagerDto = new ProjectManagerDto();
Integer pendingApprovalTimes = 0;
for (WorkTimeOrder timeOrder : timeOrders) {
if (timeOrder.getProjectId().equals(projectDto.getId())) {
pendingApprovalTimes++;
}
} }
projectManagerDto.setPendingApprovalTimes(pendingApprovalTimes);
BeanUtils.copyProperties(projectDto, projectManagerDto);
projectManagerDtos.add(projectManagerDto);
} }
projectManagerDto.setPendingApprovalTimes(pendingApprovalTimes);
BeanUtils.copyProperties(projectDto, projectManagerDto);
projectManagerDtos.add(projectManagerDto);
} }
} if (LevelRankEnum.DEPARTMENT_LEVEL.getRank().equals(userRoleLevelDto.getRank()) || LevelRankEnum.CENTRAL_LEVEL.getRank().equals(userRoleLevelDto.getRank())) {
List<WorkType> workTypes = workTypeService.getByManagerId(userId); List<WorkTypeManager> workTypeManagers = workTypeManagerService.getByManagerId(userId);
QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>(); Set<Integer> set = new TreeSet<>();
wrapper.in("type", EXTERNAL_BUSINESS, INTERNAL_TRAINING, OTHER_NON_PROJECTS); workTypeManagers.forEach(type -> set.add(type.getType()));
wrapper.eq("dept_id", user.getDeptId()); QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>();
wrapper.in("status", COMPLETED, RE_SUBMIT); wrapper.in("type", set);
List<WorkTimeOrder> timeOrders = workTimeOrderMapper.selectList(wrapper); wrapper.eq("dept_id", user.getDeptId());
ProjectManagerDto projectManagerDto1; wrapper.in("status", COMPLETED, RE_SUBMIT);
for (WorkType workType : workTypes) { List<WorkTimeOrder> timeOrders = workTimeOrderMapper.selectList(wrapper);
projectManagerDto1 = new ProjectManagerDto(); ProjectManagerDto projectManagerDto1;
Integer pendingApprovalTimes = 0; for (WorkTypeManager workTypeManager : workTypeManagers) {
for (WorkTimeOrder timeOrder : timeOrders) { projectManagerDto1 = new ProjectManagerDto();
if (workType.getType().equals(timeOrder.getType())) { Integer pendingApprovalTimes = 0;
pendingApprovalTimes++; for (WorkTimeOrder timeOrder : timeOrders) {
if (workTypeManager.getType().equals(timeOrder.getType())) {
pendingApprovalTimes++;
}
}
projectManagerDto1.setPendingApprovalTimes(pendingApprovalTimes);
projectManagerDto1.setType(workTypeManager.getType()).setTypeName(workTypeManager.getName());
projectManagerDtos.add(projectManagerDto1);
} }
} }
projectManagerDto1.setPendingApprovalTimes(pendingApprovalTimes); Collections.sort(projectManagerDtos);
projectManagerDto1.setType(workType.getType()).setTypeName(workType.getName()); projectsDto.setProjectManagerDto(projectManagerDtos);
projectManagerDtos.add(projectManagerDto1); return projectsDto;
} }
Collections.sort(projectManagerDtos);
projectsDto.setProjectManagerDto(projectManagerDtos);
} }
return projectsDto; return projectsDto;
} }
...@@ -602,28 +616,30 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -602,28 +616,30 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
// 2.获取可填报的类型 // 2.获取可填报的类型
List<ProjectInfoDto> projectList = new ArrayList<>(); List<ProjectInfoDto> projectList = new ArrayList<>();
// 3.获取正在进行中的项目/商机 // 3.获取正在进行中的项目/商机
List<WorkProject> projects = workProjectService.getNameByIds(projectIds,1); List<WorkProject> projects = workProjectService.getNameByIds(projectIds, 1);
ProjectInfoDto projectInfoDto; ProjectInfoDto projectInfoDto;
for (ProjectTypeEnum value : ProjectTypeEnum.values()) { List<WorkType> workTypes = workTypeService.getAll();
projectInfoDto = new ProjectInfoDto().setType(value.getType()).setTypeName(value.getTypeName()).setDeptManagerName(deptManagerName); if (!CollectionUtils.isEmpty(workTypes)) {
if (1 == value.getReviewer()) { for (WorkType value : workTypes) {
if (!CollectionUtils.isEmpty(projectIds)) { projectInfoDto = new ProjectInfoDto().setType(value.getId()).setTypeName(value.getName()).setDeptManagerName(deptManagerName);
List<ProjectDto> projectDtos = new ArrayList<>(); if (1 == value.getReviewer()) {
for (WorkProject project : projects) { if (!CollectionUtils.isEmpty(projectIds)) {
if (project.getType().equals(value.getType())) { List<ProjectDto> projectDtos = new ArrayList<>();
ProjectDto projectDto = new ProjectDto(); for (WorkProject project : projects) {
BeanUtils.copyProperties(project, projectDto); if (project.getType().equals(value.getId())) {
projectDto.setManagerName(workUserService.getById(project.getManagerId()).getName()); ProjectDto projectDto = new ProjectDto();
projectDtos.add(projectDto); BeanUtils.copyProperties(project, projectDto);
projectDto.setManagerName(workUserService.getById(project.getManagerId()).getName());
projectDtos.add(projectDto);
}
} }
projectInfoDto.setProjectDto(projectDtos);
} }
projectInfoDto.setProjectDto(projectDtos);
}
}
projectList.add(projectInfoDto);
} }
projectList.add(projectInfoDto);
} }
return projectList; return projectList;
} }
...@@ -632,14 +648,17 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -632,14 +648,17 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
@Override @Override
public List<WorkTimeOrderDto> wtoToWtod(List<WorkTimeOrder> workTimeOrders) { public List<WorkTimeOrderDto> wtoToWtod(List<WorkTimeOrder> workTimeOrders) {
List<WorkTimeOrderDto> dtos = new ArrayList<>(); List<WorkTimeOrderDto> dtos = new ArrayList<>();
List<Integer> typeIds = workTypeService.getIdByReviewer(1);
for (WorkTimeOrder workTimeOrder : workTimeOrders) { for (WorkTimeOrder workTimeOrder : workTimeOrders) {
WorkTimeOrderDto dto = new WorkTimeOrderDto(); WorkTimeOrderDto dto = new WorkTimeOrderDto();
BeanUtils.copyProperties(workTimeOrder, dto); BeanUtils.copyProperties(workTimeOrder, dto);
dto.setUserName(workUserService.getById(workTimeOrder.getUserId()).getName()); dto.setUserName(workUserService.getById(workTimeOrder.getUserId()).getName());
dto.setManagerName(workUserService.getById(workTypeService.getByDeptId(workTimeOrder.getDeptId()).get(0).getManagerId()).getName()); dto.setManagerName(workUserService.getById(workTypeManagerService.getByDeptId(workTimeOrder.getDeptId()).get(0).getManagerId()).getName());
if (PROJECT.equals(workTimeOrder.getType()) || BUSINESS_OPPORTUNITY.equals(workTimeOrder.getType())) { if (!CollectionUtils.isEmpty(typeIds)) {
dto.setProjectName(workProjectService.getById(workTimeOrder.getProjectId()).getProjectName()); if (typeIds.contains(workTimeOrder.getType())) {
dto.setManagerName(getManagerNameByOrder(workTimeOrder)); dto.setProjectName(workProjectService.getById(workTimeOrder.getProjectId()).getProjectName());
dto.setManagerName(getManagerNameByOrder(workTimeOrder));
}
} }
dto.setTypeName(getTypeName(dto.getType())); dto.setTypeName(getTypeName(dto.getType()));
dtos.add(dto); dtos.add(dto);
...@@ -695,10 +714,13 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -695,10 +714,13 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_JOIN_EVERY_PROJECT_PLASE_JION); throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_JOIN_EVERY_PROJECT_PLASE_JION);
} }
} }
for (ProjectTypeEnum value : ProjectTypeEnum.values()) { List<WorkType> workTypes = workTypeService.getAll();
if (value.getReviewer() == 2) { if (!CollectionUtils.isEmpty(workTypes)) {
if (dto.getType().equals(value.getType())) { for (WorkType value : workTypes) {
return; if (value.getReviewer() == 2) {
if (dto.getType().equals(value.getId())) {
return;
}
} }
} }
} }
...@@ -708,7 +730,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -708,7 +730,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
//3.每天工时累加不得超过八小时 //3.每天工时累加不得超过八小时
private void timeNotEight( List<WorkTimeOrderDto> list) { private void timeNotEight(List<WorkTimeOrderDto> list) {
int count = 0; int count = 0;
for (WorkTimeOrderDto workOrder : list) { for (WorkTimeOrderDto workOrder : list) {
isEmpty(workOrder); isEmpty(workOrder);
...@@ -740,8 +762,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -740,8 +762,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
Page<WorkTimeOrderDto> pageHelper = PageHelper.startPage(page, size); Page<WorkTimeOrderDto> pageHelper = PageHelper.startPage(page, size);
List<WorkTimeOrder> workTimeOrders = null; List<WorkTimeOrder> workTimeOrders = null;
Integer level = user.getLevel(); if (UserRoleLevelUtils.isManagerLevel(user.getId(), LevelEnum.EXAMINE.getLevelName())) {
if (0 != level) {
Integer deptId = user.getDeptId(); Integer deptId = user.getDeptId();
workTimeOrders = workTimeOrderMapper.queryByPage(status, projectId, type, deptId); workTimeOrders = workTimeOrderMapper.queryByPage(status, projectId, type, deptId);
} }
...@@ -773,14 +794,16 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -773,14 +794,16 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
// 根据工单获取管理员 // 根据工单获取管理员
private String getManagerNameByOrder(WorkTimeOrder wto) { private String getManagerNameByOrder(WorkTimeOrder wto) {
if (PROJECT.equals(wto.getType()) || BUSINESS_OPPORTUNITY.equals(wto.getType())) { List<Integer> typeIds = workTypeService.getIdByReviewer(1);
WorkProject workProject = workProjectService.getById(wto.getProjectId()); if (!CollectionUtils.isEmpty(typeIds)) {
return workProject != null ? workUserService.getById(workProject.getManagerId()).getName() : ""; if (typeIds.contains(wto.getType())) {
} WorkProject workProject = workProjectService.getById(wto.getProjectId());
if (!PROJECT.equals(wto.getType()) && !PROJECT.equals(wto.getType())) { return workProject != null ? workUserService.getById(workProject.getManagerId()).getName() : "";
return workUserService.getById( }else{
workDeptService.getById(wto.getDeptId()).getDeptManagerId()) return workUserService.getById(
.getName(); workDeptService.getById(wto.getDeptId()).getDeptManagerId())
.getName();
}
} }
return null; return null;
} }
...@@ -791,25 +814,30 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -791,25 +814,30 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
// 判断当前用户是否为管理 // 判断当前用户是否为管理
WorkUser user = workUserService.getById(userId); List<Integer> roles = UserRoleLevelUtils.getRole(userId);
if (0 == user.getLevel()) { if (1 == roles.size() && ManagerEnum.NOT_MANAGER.getCode().equals(roles.get(0))) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN); throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
} }
} }
private String getTypeName(Integer type) { private String getTypeName(Integer type) {
for (ProjectTypeEnum value : ProjectTypeEnum.values()) { List<WorkType> workTypes = workTypeService.getAll();
if (value.getType().equals(type)) { if (!CollectionUtils.isEmpty(workTypes)) {
return value.getTypeName(); for (WorkType value : workTypes) {
if (value.getId().equals(type)) {
return value.getName();
}
} }
} }
return null; return null;
} }
/** 判断当天是否全部审批通过*/ /**
* 判断当天是否全部审批通过
*/
@Override @Override
public int statusYes(Integer userId, Date workDay) { public int statusYes(Integer userId, Date workDay) {
int status = PROJECT; int status = COMPLETED;
int size = 0; int size = 0;
List<WorkTimeOrder> workTimeOrderDtos = workTimeOrderMapper.getByDay(userId, workDay); List<WorkTimeOrder> workTimeOrderDtos = workTimeOrderMapper.getByDay(userId, workDay);
for (WorkTimeOrder dto : workTimeOrderDtos) { for (WorkTimeOrder dto : workTimeOrderDtos) {
......
package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkTypeManagerMapper;
import cn.wisenergy.model.app.WorkTypeManager;
import cn.wisenergy.service.WorkTypeManagerService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Slf4j
@Service
public class WorkTypeManagerServiceImpl implements WorkTypeManagerService {
@Autowired
private WorkTypeManagerMapper workTypeManagerMapper;
/**
* 功能:根据审核人id获取
*
* @param userId
* @return
*/
@Override
public List<WorkTypeManager> getByManagerId(Integer userId) {
log.info("WorkTypeManagerServiceImpl[]getByManagerId[]input.param.userId:{}" + userId);
return getWorkTypes(userId, "manager_id");
}
/**
* 功能:根据部门id获取
*
* @param deptId
* @return
*/
@Override
public List<WorkTypeManager> getByDeptId(Integer deptId) {
log.info("WorkTypeManagerServiceImpl[]getByDeptId[]input.param.deptId:{}" + deptId);
return getWorkTypes(deptId, "dept_id");
}
/**
* 功能: 根据类型获取
*
* @param type
* @return
*/
@Override
public List<WorkTypeManager> getByType(Integer type) {
log.info("WorkTypeManagerServiceImpl[]getByType[]input.param.type:{}" + type);
return getWorkTypes(type, "type");
}
/**
* 功能:查看有哪些其他Type
*
* @return
*/
@Override
public List<WorkTypeManager> getType() {
log.info("WorkTypeManagerServiceImpl[]getType");
QueryWrapper<WorkTypeManager> wrapper = new QueryWrapper<>();
wrapper.groupBy("type");
wrapper.orderByAsc("type");
return workTypeManagerMapper.selectList(wrapper);
}
@Override
public List<Integer> getTypeByGroup() {
log.info("WorkTypeManagerServiceImpl[]getTypeByGroup[]");
List<Integer> typeByGroup = workTypeManagerMapper.getTypeByGroup();
if (CollectionUtils.isEmpty(typeByGroup)) {
return null;
}
return typeByGroup;
}
private List<WorkTypeManager> getWorkTypes(Integer userId, String column) {
if (null == userId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
QueryWrapper<WorkTypeManager> wrapper = new QueryWrapper<>();
wrapper.eq(column, userId);
List<WorkTypeManager> workTypeManagers = workTypeManagerMapper.selectList(wrapper);
return workTypeManagers;
}
}
...@@ -5,78 +5,44 @@ import cn.wisenergy.common.utils.exception.BaseCustomException; ...@@ -5,78 +5,44 @@ import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkTypeMapper; import cn.wisenergy.mapper.WorkTypeMapper;
import cn.wisenergy.model.app.WorkType; import cn.wisenergy.model.app.WorkType;
import cn.wisenergy.service.WorkTypeService; import cn.wisenergy.service.WorkTypeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List; import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Slf4j @Slf4j
@Service @Service
public class WorkTypeServiceImpl implements WorkTypeService { public class WorkTypeServiceImpl implements WorkTypeService {
@Autowired @Autowired
private WorkTypeMapper workTypeMapper; private WorkTypeMapper workTypeMapper;
/**
* 功能:根据审核人id获取
*
* @param userId
* @return
*/
@Override
public List<WorkType> getByManagerId(Integer userId) {
log.info("WorkTypeServiceImpl[]getByManagerId[]input.param.userId:{}" + userId);
return getWorkTypes(userId, "manager_id");
}
/**
* 功能:根据部门id获取
*
* @param deptId
* @return
*/
@Override
public List<WorkType> getByDeptId(Integer deptId) {
log.info("WorkTypeServiceImpl[]getByDeptId[]input.param.deptId:{}" + deptId);
return getWorkTypes(deptId, "dept_id");
}
/**
* 功能: 根据类型获取
*
* @param type
* @return
*/
@Override @Override
public List<WorkType> getByType(Integer type) { public List<WorkType> getAll() {
log.info("WorkTypeServiceImpl[]getByType[]input.param.type:{}" + type); log.info("WorkTypeServiceImpl[]getAll[]");
return getWorkTypes(type, "type"); List<WorkType> workTypes = workTypeMapper.getAll();
if (CollectionUtils.isEmpty(workTypes)) {
return null;
}
return workTypes;
} }
/**
* 功能:查看有哪些其他Type
*
* @return
*/
@Override @Override
public List<WorkType> getType() { public List<Integer> getIdByReviewer(Integer reviewer) {
log.info("WorkTypeServiceImpl[]getType"); log.info("WorkTypeServiceImpl[]getIdByReviewer[]input.param.reviewer:{}" + reviewer);
QueryWrapper<WorkType> wrapper = new QueryWrapper<>(); if (null == reviewer) {
wrapper.groupBy("type");
wrapper.orderByAsc("type");
return workTypeMapper.selectList(wrapper);
}
private List<WorkType> getWorkTypes(Integer userId, String column) {
if (null == userId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
QueryWrapper<WorkType> wrapper = new QueryWrapper<>(); List<Integer> ids = workTypeMapper.getIdByReviewer(reviewer);
wrapper.eq(column, userId); if (CollectionUtils.isEmpty(ids)) {
List<WorkType> workTypes = workTypeMapper.selectList(wrapper); return null;
return workTypes; }
return ids;
} }
} }
...@@ -8,7 +8,9 @@ import cn.wisenergy.mapper.WorkRoleMapper; ...@@ -8,7 +8,9 @@ import cn.wisenergy.mapper.WorkRoleMapper;
import cn.wisenergy.mapper.WorkUserRoleMapper; import cn.wisenergy.mapper.WorkUserRoleMapper;
import cn.wisenergy.model.app.WorkLevel; import cn.wisenergy.model.app.WorkLevel;
import cn.wisenergy.model.app.WorkRole; import cn.wisenergy.model.app.WorkRole;
import cn.wisenergy.model.dto.UserRoleLevelDto;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -55,9 +57,6 @@ public class UserRoleLevelUtils { ...@@ -55,9 +57,6 @@ public class UserRoleLevelUtils {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
List<Integer> roleIds = utils.workUserRoleMapper.getRole(userId); List<Integer> roleIds = utils.workUserRoleMapper.getRole(userId);
for (Integer roleId : roleIds) {
System.out.println(roleId);
}
if (CollectionUtils.isEmpty(roleIds)) { if (CollectionUtils.isEmpty(roleIds)) {
roleIds.add(0); roleIds.add(0);
return roleIds; return roleIds;
...@@ -128,8 +127,36 @@ public class UserRoleLevelUtils { ...@@ -128,8 +127,36 @@ public class UserRoleLevelUtils {
return null; return null;
} }
return workLevels; return workLevels;
}
public static List<UserRoleLevelDto> getRoleUserLevel(Integer userId) {
if (null == userId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<UserRoleLevelDto> roleUserLevels = utils.workUserRoleMapper.getRoleUserLevel(userId);
if (CollectionUtils.isEmpty(roleUserLevels)) {
return null;
}
return roleUserLevels;
} }
/** 是否有管理某方案权限*/
public static Boolean isManagerLevel(Integer userId, String levelEnum) {
if (null == userId || StringUtils.isEmpty(levelEnum)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<UserRoleLevelDto> roleUserLevel = UserRoleLevelUtils.getRoleUserLevel(userId);
if (CollectionUtils.isEmpty(roleUserLevel)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
for (UserRoleLevelDto userRoleLevelDto : roleUserLevel) {
if (levelEnum.equals(userRoleLevelDto.getLevelName())) {
return true;
}
}
return false;
}
} }
...@@ -3,6 +3,7 @@ package cn.wisenergy.web.admin.controller.app; ...@@ -3,6 +3,7 @@ package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.Result; import cn.wisenergy.common.utils.exception.Result;
import cn.wisenergy.model.app.WorkProjectChange; import cn.wisenergy.model.app.WorkProjectChange;
import cn.wisenergy.model.dto.ManagerProjectsDto; import cn.wisenergy.model.dto.ManagerProjectsDto;
import cn.wisenergy.model.vo.CreateProjectVo;
import cn.wisenergy.model.vo.GetManagerProjectsVo; import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo; import cn.wisenergy.model.vo.ModifyProjectVo;
import cn.wisenergy.service.WorkProjectChangeService; import cn.wisenergy.service.WorkProjectChangeService;
...@@ -76,5 +77,15 @@ public class WorkProjectController extends BaseController { ...@@ -76,5 +77,15 @@ public class WorkProjectController extends BaseController {
return getResult(workProjectChanges); return getResult(workProjectChanges);
} }
@ApiOperation(value = "新增项目/商机", notes = "新增项目/商机", httpMethod = "POST")
@ApiImplicitParam(name = "createProjectVo",value = "添加项目Vo类",dataType = "CreateProjectVo",required = true)
@PostMapping(value = "/addProject")
public Result<Boolean> addProject(@RequestBody CreateProjectVo createProjectVo) {
log.info("WorkProjectController[]addProject[]input.param.createProjectVo:{}" + createProjectVo);
Boolean aBoolean = workProjectService.addProject(createProjectVo);
return getResult(aBoolean);
}
} }
package cn.wisenergy.web.admin.controller.app; package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.*; import cn.wisenergy.common.utils.exception.*;
import cn.wisenergy.model.app.UserLevelDto;
import cn.wisenergy.model.app.WorkLevel;
import cn.wisenergy.model.dto.OrganizationStructureDto; import cn.wisenergy.model.dto.OrganizationStructureDto;
import cn.wisenergy.model.dto.ResultUser; import cn.wisenergy.model.dto.ResultUser;
import cn.wisenergy.model.dto.UserRoleLevelDto;
import cn.wisenergy.service.WorkUserService; import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.service.utils.UserRoleLevelUtils; import cn.wisenergy.service.utils.UserRoleLevelUtils;
import cn.wisenergy.web.admin.controller.common.BaseController; import cn.wisenergy.web.admin.controller.common.BaseController;
...@@ -89,14 +88,9 @@ public class WorkUserController extends BaseController { ...@@ -89,14 +88,9 @@ public class WorkUserController extends BaseController {
@ApiOperation(value = "权限", notes = "权限", httpMethod = "GET") @ApiOperation(value = "权限", notes = "权限", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "int") @ApiImplicitParam(name = "userId", value = "用户id", dataType = "int")
@GetMapping(value = "/getLevel") @GetMapping(value = "/getLevel")
public Result<UserLevelDto> getLevel(Integer userId) { public Result<UserRoleLevelDto> getLevel(Integer userId) {
List<Integer> roles = UserRoleLevelUtils.getRole(userId); List<UserRoleLevelDto> roleUserLevel = UserRoleLevelUtils.getRoleUserLevel(userId);
UserLevelDto userLevelDto = new UserLevelDto(); return getResult(roleUserLevel);
List<Integer> levelIds = UserRoleLevelUtils.getlevelIds(roles);
List<WorkLevel> workLevels = UserRoleLevelUtils.getlevelByIds(levelIds);
userLevelDto.setUserId(userId);
userLevelDto.setWorkLevels(workLevels);
return getResult(userLevelDto);
} }
} }
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