Commit 9e111695 authored by cq990612's avatar cq990612

优化代码结构

parent 185fbb16
......@@ -85,7 +85,8 @@ public enum BASE_RESP_CODE_ENUM {
DOWNLOAD_ERROR("668", "下载出错"),
PLEASE_CANCELTHE_MANAGEMENTROLE("669", "注销账号,请取消管理角色"),
ATLEASTONEADMINISTRATORISREQUIRED("670", "至少需要一个系统管理员!"),
PLEASESELECTANITEM("671", "请至少选择一个项目"),
PLEASESELECTANITEM("671", "请选择一个项目"),
PLEASESELECTADEPARTMENT("672","请选择一个部门")
;
......
......@@ -4,6 +4,7 @@ import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.dto.DeptOfProjectAndOrderType;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
......@@ -28,5 +29,5 @@ public interface WorkDeptMapper extends BaseMapper<WorkDept> {
List<WorkDept> getDeptByManagerId(Integer userId);
List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(Integer userId);
List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(@Param("userId") Integer userId, @Param("deptId") Integer deptId);
}
......@@ -105,11 +105,14 @@ ORDER BY c.id,d.sort
select d.id 'dept_id',d.dept_name,p.id 'project_id',p.project_name
from work_dept d LEFT JOIN work_project p on d.id = p.dept_id
<where>
<if test="userId !=null">
p.manager_id = #{userId}
</if>
<if test="userId !=null">
AND p.manager_id = #{userId}
</if>
<if test="deptId !=null">
OR p.dept_id = #{deptId}
</if>
</where>
ORDER BY d.sort
ORDER BY d.sort,p.id
</select>
......
......@@ -20,11 +20,18 @@ LEFT JOIN (SELECT id,name FROM work_user ) u2 ON u2.id =oc.user_id
AND oc.change_date &lt;= #{endDate}
</if>
<if test="userName !=null">
AND u2.name like concat('%',#{userName},'%')
AND (u2.name like concat('%',#{userName},'%')
OR u1.name like concat('%',#{userName},'%'))
</if>
<if test="deptId !=null">
AND oc.dept_id = #{deptId}
</if>
<if test="projectId !=null">
AND oc.projectId = #{projetId}
</if>
<if test="type !=null">
AND oc.type = #{type}
</if>
</where>
</select>
......
......@@ -474,9 +474,12 @@
<if test="projectId !=null">
AND o.project_id = #{projectId}
</if>
<if test="type !=null and type>2">
<if test="type !=null ">
AND o.type = #{type}
</if>
<if test="deptId !=null">
AND o.dept_id = #{deptId}
</if>
<if test="startDate !=null">
AND o.work_day >= #{startDate}
</if>
......
package cn.wisenergy.model.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class OrderChangeLogMapperDto {
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date startDate;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date endDate;
private String userName;
private List<Integer> deptIds;
private List<Integer> projectIds;
private List<Integer> types;
}
package cn.wisenergy.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -15,13 +16,19 @@ public class OrderChangeLogVo {
private Integer pageSize;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date startDate;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date endDate;
private String userName;
private Integer deptId;
private Integer projectId;
private Integer type;
private Integer userId;
}
......@@ -12,6 +12,8 @@ import java.util.Date;
@Data
public class OrderChangeManagerVo {
private Integer deptId;
private Integer projectId;
private Integer type;
......
......@@ -40,5 +40,5 @@ public interface WorkDeptService {
*/
List<WorkDept> getDeptOfProjectOfManager(Integer userId);
List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(Integer userId);
List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(Integer userId,Integer deptId);
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.dto.DeptOfProjectAndOrderType;
import cn.wisenergy.model.dto.OrderChangeDto;
import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.vo.CreateProjectVo;
......@@ -77,4 +78,6 @@ public interface WorkProjectService {
* @param userId 管理员id
*/
OrderChangeDto getProjectAndOrderTypeAndDept(Integer userId);
List<DeptOfProjectAndOrderType> getProjectOfFind(Integer userId);
}
......@@ -182,8 +182,8 @@ public class WorkDeptServiceImpl implements WorkDeptService {
}
@Override
public List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(Integer userId) {
log.info("WorkDeptServiceImpl[]getDeptOfProjectAndOrderType[]input.param.userId:{}" + userId);
return workDeptMapper.getDeptOfProjectAndOrderType(userId);
public List<DeptOfProjectAndOrderType> getDeptOfProjectAndOrderType(Integer userId,Integer deptId) {
log.info("WorkDeptServiceImpl[]getDeptOfProjectAndOrderType[]input.param.userId:{},deptId:{}" + userId,deptId);
return workDeptMapper.getDeptOfProjectAndOrderType(userId,deptId);
}
}
......@@ -7,6 +7,7 @@ import cn.wisenergy.model.dto.WorkOrderChangeLogDto;
import cn.wisenergy.model.enums.LevelEnum;
import cn.wisenergy.model.vo.OrderChangeLogVo;
import cn.wisenergy.service.WorkOrderChangeService;
import cn.wisenergy.service.WorkProjectService;
import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -27,6 +28,9 @@ public class WorkOrderChangeImpl implements WorkOrderChangeService {
@Autowired
private WorkOrderChangeMapper workOrderChangeMapper;
@Autowired
private WorkProjectService workProjectService;
@Override
public PageInfo getOrderChangeLogPage(OrderChangeLogVo vo) {
log.info("WorkOrderChangeImpl[]getOrderChangeLogPage[]input.param.OrderChangeLogVo:{}", vo);
......@@ -35,10 +39,14 @@ public class WorkOrderChangeImpl implements WorkOrderChangeService {
if (null == vo || null == vo.getUserId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<Integer> ranks = UserRoleLevelUtils.getRankByUserAndLevelName(vo.getUserId(), LevelEnum.WORKORDER_CHANGERECORD.getLevelName());
UserRoleLevelUtils.getRankByUserAndLevelName(vo.getUserId(), LevelEnum.WORKORDER_CHANGERECORD.getLevelName());
if (null == vo.getDeptId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASESELECTADEPARTMENT);
}
// 分权限查询 TODO
if (null ==vo.getProjectId() && null == vo.getType()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASESELECTANITEM);
}
PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<WorkOrderChangeLogDto> workOrderChangeLogDto = workOrderChangeMapper.getWorkOrderChangeLogDto(vo);
PageInfo<WorkOrderChangeLogDto> pageInfo = new PageInfo<>(workOrderChangeLogDto);
......
......@@ -563,14 +563,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return true;
}
/**
* 获取管理员所管理的项目+后五种类型/所属部门(工单变更)
*
* @param userId 管理员id
*/
@Override
public OrderChangeDto getProjectAndOrderTypeAndDept(Integer userId) {
log.info("WorkProjectServiceImpl[]getProjectAndOrderTypeAndDept[]input.param.userId:{}" + userId);
private OrderChangeDto getProjevtAndTypeOfDept(Integer userId, Boolean isFillIn, Boolean addProjectOfDept) {
if (null == userId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
......@@ -599,7 +592,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
// 中心级(系统管理员)
for (Integer rank : ranks) {
if (LevelRankEnum.CENTRAL_LEVEL.getRank().equals(rank)) {
projectAndOrderTypes = workDeptService.getDeptOfProjectAndOrderType(null);
projectAndOrderTypes = workDeptService.getDeptOfProjectAndOrderType(null, null);
if (!CollectionUtils.isEmpty(projectAndOrderTypes)) {
for (DeptOfProjectAndOrderType projectAndOrderType : projectAndOrderTypes) {
projectAndOrderType.getProjectManagerDtos().addAll(projectManagerDtos);
......@@ -607,45 +600,63 @@ public class WorkProjectServiceImpl implements WorkProjectService {
}
orderChangeDto.setProjectAndOrderTypes(projectAndOrderTypes);
// 组织架构
List<OrderChangeTypeDto> orderChangeTypeDtos = workProjectMapper.getOrderChangeTypeDtos(null);
List<DeptUserDto> deptUserDtos = workUserService.getOrganizationStructureDtos().get(0).getDeptUserDtos();
List<WorkType> workTypeServiceAll1 = workTypeService.getAll(1);
for (WorkType workType : workTypeServiceAll1) {
// 不是项目和商机
if (1 != workType.getReviewer()) {
OrderChangeTypeDto orderChangeTypeDto = new OrderChangeTypeDto();
orderChangeTypeDto.setType(workType.getId());
orderChangeTypeDto.setTypeName(workType.getName());
orderChangeTypeDto.setDeptUserDtos(deptUserDtos);
orderChangeTypeDtos.add(orderChangeTypeDto);
System.out.println(orderChangeTypeDto);
if (isFillIn) {
List<OrderChangeTypeDto> orderChangeTypeDtos = workProjectMapper.getOrderChangeTypeDtos(null);
List<DeptUserDto> deptUserDtos = workUserService.getOrganizationStructureDtos().get(0).getDeptUserDtos();
List<WorkType> workTypeServiceAll1 = workTypeService.getAll(1);
for (WorkType workType : workTypeServiceAll1) {
// 不是项目和商机
if (1 != workType.getReviewer()) {
OrderChangeTypeDto orderChangeTypeDto = new OrderChangeTypeDto();
orderChangeTypeDto.setType(workType.getId());
orderChangeTypeDto.setTypeName(workType.getName());
orderChangeTypeDto.setDeptUserDtos(deptUserDtos);
orderChangeTypeDtos.add(orderChangeTypeDto);
}
}
orderChangeDto.setOrderChangeTypeDtos(orderChangeTypeDtos);
}
orderChangeDto.setOrderChangeTypeDtos(orderChangeTypeDtos);
return orderChangeDto;
}
}
Integer projectOfUserId = null;
Integer projectOfDeptId = null;
for (Integer rank : ranks) {
if (LevelRankEnum.PROJECT_LEVEL.getRank().equals(rank)) {
projectOfUserId = userId;
}
if (addProjectOfDept) {
if (LevelRankEnum.DEPARTMENT_LEVEL.getRank().equals(rank)) {
projectOfDeptId = user.getDeptId();
}
}
}
List<OrderChangeTypeDto> orderChangeTypeDtos = new ArrayList<>();
for (Integer rank : ranks) {
// 项目级
if (LevelRankEnum.PROJECT_LEVEL.getRank().equals(rank)) {
projectAndOrderTypes = workDeptService.getDeptOfProjectAndOrderType(userId);
// 组织架构
orderChangeTypeDtos = workProjectMapper.getOrderChangeTypeDtos(userId);
projectAndOrderTypes = workDeptService.getDeptOfProjectAndOrderType(projectOfUserId, projectOfDeptId);
if (isFillIn) {
// 组织架构
orderChangeTypeDtos = workProjectMapper.getOrderChangeTypeDtos(userId);
}
break;
}
}
for (Integer rank : ranks) {
// 部门级
if (LevelRankEnum.DEPARTMENT_LEVEL.getRank().equals(rank)) {
boolean isAdd = false;
if (!CollectionUtils.isEmpty(projectAndOrderTypes)) {
for (DeptOfProjectAndOrderType projectAndOrderType : projectAndOrderTypes) {
if (projectAndOrderType.getDeptId().equals(user.getDeptId())) {
projectAndOrderType.getProjectManagerDtos().addAll(projectManagerDtos);
isAdd = true;
}
}
} else {
}
if (!isAdd) {
DeptOfProjectAndOrderType projectAndOrderType = new DeptOfProjectAndOrderType();
projectAndOrderType.setDeptId(user.getDeptId());
projectAndOrderType.setDeptName(dept.getDeptName());
......@@ -653,25 +664,26 @@ public class WorkProjectServiceImpl implements WorkProjectService {
projectAndOrderTypes.add(projectAndOrderType);
}
// 组织架构
List<DeptUserDto> deptUserDtos = workUserService.getOrganizationStructureDtos().get(0).getDeptUserDtos();
List<WorkType> workTypeServiceAll1 = workTypeService.getAll(1);
List<DeptUserDto> deptUserDtoList = new ArrayList<>();
for (DeptUserDto deptUserDto : deptUserDtos) {
if (deptUserDto.getDeptId().equals(user.getDeptId())) {
deptUserDtoList.add(deptUserDto);
if (isFillIn) {
List<DeptUserDto> deptUserDtos = workUserService.getOrganizationStructureDtos().get(0).getDeptUserDtos();
List<WorkType> workTypeServiceAll1 = workTypeService.getAll(1);
List<DeptUserDto> deptUserDtoList = new ArrayList<>();
for (DeptUserDto deptUserDto : deptUserDtos) {
if (deptUserDto.getDeptId().equals(user.getDeptId())) {
deptUserDtoList.add(deptUserDto);
}
}
}
for (WorkType workType : workTypeServiceAll1) {
// 不是项目和商机
if (1 != workType.getReviewer()) {
OrderChangeTypeDto orderChangeTypeDto = new OrderChangeTypeDto();
orderChangeTypeDto.setTypeName(workType.getName());
orderChangeTypeDto.setType(workType.getId());
orderChangeTypeDto.setDeptUserDtos(deptUserDtoList);
orderChangeTypeDtos.add(orderChangeTypeDto);
for (WorkType workType : workTypeServiceAll1) {
// 不是项目和商机
if (1 != workType.getReviewer()) {
OrderChangeTypeDto orderChangeTypeDto = new OrderChangeTypeDto();
orderChangeTypeDto.setTypeName(workType.getName());
orderChangeTypeDto.setType(workType.getId());
orderChangeTypeDto.setDeptUserDtos(deptUserDtoList);
orderChangeTypeDtos.add(orderChangeTypeDto);
}
}
}
break;
}
}
......@@ -680,6 +692,25 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return orderChangeDto;
}
/**
* 获取管理员所管理的项目+后五种类型/所属部门(工单变更)
*
* @param userId 管理员id
*/
@Override
public OrderChangeDto getProjectAndOrderTypeAndDept(Integer userId) {
log.info("WorkProjectServiceImpl[]getProjectAndOrderTypeAndDept[]input.param.userId:{}" + userId);
return getProjevtAndTypeOfDept(userId, true, false);
}
@Override
public List<DeptOfProjectAndOrderType> getProjectOfFind(Integer userId) {
log.info("WorkProjectServiceImpl[]getProjectAndOrderTypeAndDept[]input.param.userId:{}" + userId);
OrderChangeDto orderChangeDto = getProjevtAndTypeOfDept(userId, false, true);
return orderChangeDto.getProjectAndOrderTypes();
}
private PageInfo<ManagerProjectsDto> returnPageInfo(List<ManagerProjectsDto> managerProjectsDto) {
if (CollectionUtils.isEmpty(managerProjectsDto)) {
return null;
......
......@@ -1212,13 +1212,14 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
private void addWorkOrderChange(Integer content, OrderChangeVo vo) {
WorkOrderChange workOrderChange = new WorkOrderChange();
WorkUser operator = workUserService.getById(vo.getOperatorId());
workOrderChange.setChangeDate(new Date()).setContent(content).setOperatorId(vo.getOperatorId()).setDeptId(operator.getDeptId()).setWorkDay(vo.getWorkDay()).setUserId(vo.getUserId()).setWorkTime(vo.getWorkTime()).setDes(vo.getDes()).setChangeReason(vo.getChangeReason());
workOrderChange.setChangeDate(new Date()).setContent(content).setOperatorId(vo.getOperatorId()).setWorkDay(vo.getWorkDay()).setUserId(vo.getUserId()).setWorkTime(vo.getWorkTime()).setDes(vo.getDes()).setChangeReason(vo.getChangeReason());
if (null == vo.getProjectId()) {
workOrderChange.setType(vo.getType());
WorkUser operator = workUserService.getById(vo.getOperatorId());
workOrderChange.setType(vo.getType()).setDeptId(operator.getDeptId());
} else {
workOrderChange.setProjectId(vo.getProjectId());
workOrderChange.setType(vo.getType());
WorkProject workProject = workProjectService.getById(vo.getProjectId());
workOrderChange.setProjectId(vo.getProjectId()).setType(vo.getType());
workOrderChange.setDeptId(workProject.getDeptId());
}
int insert = workOrderChangeMapper.insert(workOrderChange);
if (insert == 0) {
......@@ -1277,7 +1278,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
|| null == vo.getWorkDay() || null == vo.getWorkTime() || StringUtils.isBlank(vo.getDes()) || StringUtils.isBlank(vo.getChangeReason())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (!UserRoleLevelUtils.isManagerLevel(vo.getUserId(), LevelEnum.WORKORDER_CHANGEMANAGEMENT.getLevelName())) {
if (!UserRoleLevelUtils.isManagerLevel(vo.getOperatorId(), LevelEnum.WORKORDER_CHANGEMANAGEMENT.getLevelName())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
if (workIdIsNeed && null == vo.getWorkId()) {
......
......@@ -3,6 +3,7 @@ package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.Result;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.app.WorkProjectChange;
import cn.wisenergy.model.dto.DeptOfProjectAndOrderType;
import cn.wisenergy.model.dto.OrderChangeDto;
import cn.wisenergy.model.vo.CreateProjectVo;
import cn.wisenergy.model.vo.GetManagerProjectsVo;
......@@ -109,5 +110,14 @@ public class WorkProjectController extends BaseController {
return getResult(orderChangeDto);
}
@ApiOperation(value = "查询所管理的项目和所属部门(工单变更管理记录)", notes = "查询所管理的项目和所属部门(工单变更管理记录)", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "管理员Id", dataType = "int", required = true)
@GetMapping("/getProjectOfFind")
public Result getProjectOfFind(Integer userId) {
log.info("WorkProjectController[]getProjectAndOrderTypeAndDept[]input.param.userId" + userId);
List<DeptOfProjectAndOrderType> projectOfFind = workProjectService.getProjectOfFind(userId);
return getResult(projectOfFind);
}
}
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