Commit 7c3fe4bc authored by cq990612's avatar cq990612

优化代码结构

parent 9e111695
package cn.wisenergy.mapper; package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkOrderChange; import cn.wisenergy.model.app.WorkOrderChange;
import cn.wisenergy.model.dto.OrderChangeLogMapperDto;
import cn.wisenergy.model.dto.WorkOrderChangeLogDto; import cn.wisenergy.model.dto.WorkOrderChangeLogDto;
import cn.wisenergy.model.vo.OrderChangeLogVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List; import java.util.List;
...@@ -10,5 +10,5 @@ import java.util.List; ...@@ -10,5 +10,5 @@ import java.util.List;
public interface WorkOrderChangeMapper extends BaseMapper<WorkOrderChange> { public interface WorkOrderChangeMapper extends BaseMapper<WorkOrderChange> {
List<WorkOrderChangeLogDto> getWorkOrderChangeLogDto(OrderChangeLogVo vo); List<WorkOrderChangeLogDto> getWorkOrderChangeLogDto(OrderChangeLogMapperDto vo);
} }
...@@ -5,33 +5,56 @@ ...@@ -5,33 +5,56 @@
<select id="getWorkOrderChangeLogDto" resultType="cn.wisenergy.model.dto.WorkOrderChangeLogDto"> <select id="getWorkOrderChangeLogDto" resultType="cn.wisenergy.model.dto.WorkOrderChangeLogDto">
select oc.change_date,CASE oc.content when 1 THEN '新增工单' when 2 THEN '删除工单' when 3 then '修改工单' end as 'content' select oc.change_date,CASE oc.content when 1 THEN '新增工单' when 2 THEN '删除工单' when 3 then '修改工单' end as 'content'
,oc.u1.name 'operator',d.dept_name,if(oc.project_id is null,t.name,p.project_name) 'project_name', ,oc.u1.name 'operator',d.dept_name,if(oc.project_id is null,t.name,p.project_name) 'project_name',
oc.work_day,u2.name 'user_name',oc.work_time,oc.des,oc.change_reason oc.work_day,u2.name 'user_name',oc.work_time,oc.des,oc.change_reason
from work_order_change oc LEFT JOIN work_dept d ON oc.dept_id = d.id from work_order_change oc LEFT JOIN work_dept d ON oc.dept_id = d.id
LEFT JOIN work_project p ON oc.project_id = p.id LEFT JOIN work_project p ON oc.project_id = p.id
LEFT JOIN work_type t ON oc.type = t.id LEFT JOIN work_type t ON oc.type = t.id
LEFT JOIN (SELECT id,name FROM work_user ) u1 ON u1.id =oc.operator_id LEFT JOIN (SELECT id,name FROM work_user ) u1 ON u1.id =oc.operator_id
LEFT JOIN (SELECT id,name FROM work_user ) u2 ON u2.id =oc.user_id LEFT JOIN (SELECT id,name FROM work_user ) u2 ON u2.id =oc.user_id
<where> <where>
<if test="startDate !=null"> <if test="startDate !=null">
AND oc.change_date >= #{startDate} AND oc.change_date >= #{startDate}
</if> </if>
<if test="endDate !=null"> <if test="endDate !=null">
AND oc.change_date &lt;= #{endDate} AND oc.change_date &lt;= #{endDate}
</if> </if>
<if test="userName !=null"> <if test="userName !=null">
AND (u2.name like concat('%',#{userName},'%') AND (u2.name like concat('%',#{userName},'%')
OR u1.name like concat('%',#{userName},'%')) OR u1.name like concat('%',#{userName},'%'))
</if> </if>
<if test="deptId !=null"> <if test="projectIds !=null and projectIds.size>0">
AND oc.dept_id = #{deptId} AND oc.project_id IN
</if> <foreach collection="projectIds" item="projectId" separator="," open="(" close=")">
<if test="projectId !=null"> #{projectId}
AND oc.projectId = #{projetId} </foreach>
</if> </if>
<if test="type !=null">
AND oc.type = #{type} <if test="types !=null and types.size>0">
OR (oc.type IN
<foreach collection="types" item="type" separator="," open="(" close=")">
#{type}
</foreach>
<if test="deptIds !=null and deptIds.size>0">
AND oc.dept_id IN
<foreach collection="deptIds" item="deptId" separator="," open="(" close=")">
#{deptId}
</foreach>
</if>
<if test="startDate !=null">
AND oc.change_date >= #{startDate}
</if>
<if test="endDate !=null">
AND oc.change_date &lt;= #{endDate}
</if>
<if test="userName !=null">
AND (u2.name like concat('%',#{userName},'%')
OR u1.name like concat('%',#{userName},'%'))
</if>
)
</if> </if>
</where> </where>
</select> </select>
......
...@@ -3,6 +3,9 @@ package cn.wisenergy.service.impl; ...@@ -3,6 +3,9 @@ package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM; import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException; import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkOrderChangeMapper; import cn.wisenergy.mapper.WorkOrderChangeMapper;
import cn.wisenergy.model.dto.DeptOfProjectAndOrderType;
import cn.wisenergy.model.dto.OrderChangeLogMapperDto;
import cn.wisenergy.model.dto.ProjectManagerDto;
import cn.wisenergy.model.dto.WorkOrderChangeLogDto; import cn.wisenergy.model.dto.WorkOrderChangeLogDto;
import cn.wisenergy.model.enums.LevelEnum; import cn.wisenergy.model.enums.LevelEnum;
import cn.wisenergy.model.vo.OrderChangeLogVo; import cn.wisenergy.model.vo.OrderChangeLogVo;
...@@ -12,10 +15,15 @@ import cn.wisenergy.service.utils.UserRoleLevelUtils; ...@@ -12,10 +15,15 @@ import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
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.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @Authotr:陈奇 * @Authotr:陈奇
...@@ -39,16 +47,58 @@ public class WorkOrderChangeImpl implements WorkOrderChangeService { ...@@ -39,16 +47,58 @@ public class WorkOrderChangeImpl implements WorkOrderChangeService {
if (null == vo || null == vo.getUserId()) { if (null == vo || null == vo.getUserId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
UserRoleLevelUtils.getRankByUserAndLevelName(vo.getUserId(), LevelEnum.WORKORDER_CHANGERECORD.getLevelName()); List<Integer> ranks = UserRoleLevelUtils.getRankByUserAndLevelName(vo.getUserId(), LevelEnum.WORKORDER_CHANGERECORD.getLevelName());
if (null == vo.getDeptId()) { List<Integer> projectIds = new ArrayList<>();
throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASESELECTADEPARTMENT); Set<Integer> deptIds = new HashSet<>();
Set<Integer> types = new HashSet<>();
OrderChangeLogMapperDto mapperDto = new OrderChangeLogMapperDto();
List<DeptOfProjectAndOrderType> projectsAndTypes = workProjectService.getProjectOfFind(vo.getUserId());
if (CollectionUtils.isEmpty(projectsAndTypes)) {
return null;
} }
// 分权限查询 TODO if (null == vo.getDeptId()) {
if (null ==vo.getProjectId() && null == vo.getType()) { for (DeptOfProjectAndOrderType projectsAndType : projectsAndTypes) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASESELECTANITEM); if (!CollectionUtils.isEmpty(projectsAndType.getProjectManagerDtos())) {
for (ProjectManagerDto projectManagerDto : projectsAndType.getProjectManagerDtos()) {
if (null != projectManagerDto.getId()) {
projectIds.add(projectManagerDto.getId());
}else{
types.add(projectManagerDto.getType());
deptIds.add(projectsAndType.getDeptId());
}
}
}
}
} else if (null == vo.getProjectId() && null == vo.getType()) {
for (DeptOfProjectAndOrderType projectsAndType : projectsAndTypes) {
if (projectsAndType.getDeptId().equals(vo.getDeptId())) {
if (!CollectionUtils.isEmpty(projectsAndType.getProjectManagerDtos())) {
for (ProjectManagerDto projectManagerDto : projectsAndType.getProjectManagerDtos()) {
if (null == projectManagerDto.getId()) {
types.add(projectManagerDto.getType());
deptIds.add(projectsAndType.getDeptId());
}else{
projectIds.add(projectManagerDto.getId());
}
}
}
}
}
}else{
if (null != vo.getProjectId()) {
projectIds.add(vo.getProjectId());
}else{
types.add(vo.getType());
deptIds.add(vo.getDeptId());
}
} }
BeanUtils.copyProperties(mapperDto,vo);
mapperDto.setProjectIds(projectIds);
mapperDto.setDeptIds(new ArrayList<>(deptIds));
mapperDto.setTypes(new ArrayList<>(types));
PageHelper.startPage(vo.getPage(), vo.getPageSize()); PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<WorkOrderChangeLogDto> workOrderChangeLogDto = workOrderChangeMapper.getWorkOrderChangeLogDto(vo); List<WorkOrderChangeLogDto> workOrderChangeLogDto = workOrderChangeMapper.getWorkOrderChangeLogDto(mapperDto);
PageInfo<WorkOrderChangeLogDto> pageInfo = new PageInfo<>(workOrderChangeLogDto); PageInfo<WorkOrderChangeLogDto> pageInfo = new PageInfo<>(workOrderChangeLogDto);
pageInfo.setList(workOrderChangeLogDto); pageInfo.setList(workOrderChangeLogDto);
return pageInfo; return pageInfo;
......
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