Commit 87a0a3c1 authored by cq990612's avatar cq990612

优化代码结构

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