Commit a24bcc7e authored by cq990612's avatar cq990612

优化代码结构

parent 604a7266
......@@ -54,7 +54,10 @@ public enum BASE_RESP_CODE_ENUM {
MANAGER_NOT_PROJECT("632","该管理没有可管理的项目"),
DEPT_NOT_FOUND("633", "部门信息未找到"),
DATE_IS_ERROR("634","时间不匹配"),
CENTRE_NOT_FOUND("635","中心信息未找到");
CENTRE_NOT_FOUND("635","中心信息未找到"),
TIME_NOT_IS_NULL("636","工时不能为0")
;
/**
* 错误编码
*/
......
......@@ -17,6 +17,8 @@ import lombok.experimental.Accessors;
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ProjectDto", description="项目id和项目名实体类")
public class ProjectDto {
@ApiModelProperty(name = "id",value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
......@@ -24,15 +26,15 @@ public class ProjectDto {
@ApiModelProperty(name = "projectName",value = "项目名称")
private String projectName;
@ApiModelProperty(name = "type",value = "1:项目,2:商机")
private Integer type;
@ApiModelProperty(name = "managerId", value = "项目经理id")
private Integer managerId;
@ApiModelProperty(name = "managerName", value = "项目经理")
@ApiModelProperty(name = "managerName", value = "项目经理姓名")
private String managerName;
@ApiModelProperty
private String deptManagerName;
}
package cn.wisenergy.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ProjectInfoDto", description="可填报的项目")
public class ProjectInfoDto {
@ApiModelProperty(name = "type",value = "1:项目,2:商机")
private Integer type;
@ApiModelProperty(name = "typeName",value = "类型名称")
private String typeName;
@ApiModelProperty(name = "deptManagerName",value = "部门经理姓名")
private String deptManagerName;
private List<ProjectDto> projectDto;
}
package cn.wisenergy.model.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ProjectManagerDto", description="可审批的项目")
public class ProjectManagerDto {
@ApiModelProperty(name = "id",value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(name = "projectName",value = "项目名称")
private String projectName;
@ApiModelProperty(name = "type",value = "1:项目,2:商机")
private Integer type;
@ApiModelProperty(name = "typeName",value = "类型名称")
private String typeName;
}
package cn.wisenergy.model.dto;
import lombok.Data;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class ProjectsDto {
private List<ProjectInfoDto> projectInfoDto;
private List<ProjectManagerDto> projectManagerDto;
}
......@@ -42,7 +42,7 @@ public interface WorkTimeOrderService {
* @param workDay 工作日
* @return dto
*/
List<WorkTimeOrderDto> getByDayToDto(Integer userId, Date workDay);
List<WorkTimeOrder> getByDayToDto(Integer userId, Date workDay);
/**
* 功能:工时填报
......@@ -114,5 +114,9 @@ public interface WorkTimeOrderService {
* @param userId
* @return
*/
List<ProjectDto> getProjectDto(Integer userId);
ProjectsDto getProjectDto(Integer userId);
List<WorkTimeOrderDto> wtoToWtod(List<WorkTimeOrder> workTimeOrders);
}
......@@ -68,7 +68,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
/**
* 功能; 获取某日被驳回说明
* 功能; 获取某日填报情况
*
* @param userId 用户id
* @param workDay 某日
......@@ -76,7 +76,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
*/
@Override
public List<WorkTimeOrder> getByDay(Integer userId, Date workDay) {
log.info("WorkTimeOrderServiceImpl[]getDayRejectReason[]input.param.userId:{},workDay:{}" + userId, workDay);
log.info("WorkTimeOrderServiceImpl[]getByDay[]input.param.userId:{},workDay:{}" + userId, workDay);
if (null == userId || null == workDay) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
......@@ -137,13 +137,13 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
* @return dto
*/
@Override
public List<WorkTimeOrderDto> getByDayToDto(Integer userId, Date workDay) {
public List<WorkTimeOrder> getByDayToDto(Integer userId, Date workDay) {
log.info("WorkTimeOrderServiceImpl[]getByDayToDto[]input.param.userId:{},workDay:{}" + userId, workDay);
List<WorkTimeOrder> workTimeOrders = getByDay(userId, workDay);
if (CollectionUtils.isEmpty(workTimeOrders)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL);
}
return wtoToWtod(workTimeOrders);
return workTimeOrders;
}
/**
......@@ -185,13 +185,15 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
List<WorkTimeOrderDto> workTimeOrders = dto.getWorkTimeOrders();
// 判断是否超过8小时
int count = 0;
List<WorkTimeOrderDto> byDayToDto = getByDayToDto(workTimeOrders.get(0).getUserId(), workTimeOrders.get(0).getWorkDay());
for (WorkTimeOrderDto orderDto : byDayToDto) {
List<WorkTimeOrder> byDayToDto = getByDayToDto(workTimeOrders.get(0).getUserId(), workTimeOrders.get(0).getWorkDay());
for (WorkTimeOrder orderDto : byDayToDto) {
if (2 == orderDto.getStatus() || 5 == orderDto.getStatus())
count += orderDto.getWorkTime();
}
timeNotEight(count, workTimeOrders);
// 判断是否超过8小时
timeNotEight(count, workTimeOrders);
// 更新数据
reSubmit(workTimeOrders);
......@@ -239,10 +241,15 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if (1 == user.getLevel()) {
QueryWrapper<WorkTimeOrder> wrapper = new QueryWrapper<>();
projectId = projectId == null ? workProjectService.getByManagerId(userId).get(0).getId() : projectId;
// wrapper.eq("dept_id", user.getDeptId());
wrapper.in("status", 1, 4);
wrapper.eq("project_id", projectId);
wrapper.orderByDesc("work_day");
List<WorkTimeOrder> workTimeOrders = workTimeOrderMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(workTimeOrders)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_END);
}
return getDto(workTimeOrders);
}
// 部门经理
......@@ -391,28 +398,87 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
* @return
*/
@Override
public List<ProjectDto> getProjectDto(Integer userId) {
public ProjectsDto getProjectDto(Integer userId) {
log.info("WorkOrderServiceImpl[]getProjectDto[]input.param.id:{}" + userId);
if (null == userId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<Integer> ids = workUserProjectService.getProjectIdByUserId(userId);
List<ProjectDto> list = workProjectService.getNameById(ids);
for (ProjectDto projectDto : list) {
projectDto.setManagerName(workUserService.getById(projectDto.getManagerId()).getName());
}
Integer deptId = workUserDeptService.getDeptIdByUserId(userId);
List<Integer> idsByDeptId = workUserDeptService.getUserIdsByDeptId(deptId);
WorkUser workUser = workUserService.getDeptManagerByIds(idsByDeptId);
list.add(new ProjectDto().setType(5).setProjectName(getTypeName(5)));
list.add(new ProjectDto().setType(6).setProjectName(getTypeName(6)));
list.add(new ProjectDto().setType(7).setProjectName(getTypeName(7)));
list.forEach(index -> index.setDeptManagerName(workUser.getName()));
return list;
ProjectsDto projectsDto = new ProjectsDto();
WorkUser user = workUserService.getById(userId);
// 1.获取可填报的项目
projectsDto.setProjectInfoDto(getProjectInfoDto(userId));
// 2.获取可审批的项目
List<ProjectManagerDto> projectManagerDtos = new ArrayList<>();
if (1 == user.getLevel()) {
List<ProjectDto> projectDtos = workProjectService.getByManagerId(userId);
ProjectManagerDto projectManagerDto ;
for (ProjectDto projectDto : projectDtos) {
projectManagerDto = new ProjectManagerDto();
BeanUtils.copyProperties(projectDto, projectManagerDto);
projectManagerDtos.add(projectManagerDto);
}
}
if (2 == user.getLevel()) {
ProjectManagerDto projectManagerDto = new ProjectManagerDto();
for (int i = 5; i <8 ; i++) {
projectManagerDto.setType(i).setTypeName(getTypeName(i));
projectManagerDtos.add(projectManagerDto);
}
}
projectsDto.setProjectManagerDto(projectManagerDtos);
return projectsDto;
}
// 获取可以填报的数据
private List<ProjectInfoDto> getProjectInfoDto(Integer userId) {
List<Integer> projectIds = workUserProjectService.getProjectIdByUserId(userId);
// 1.获取当前用户的部门管理
String deptManagerName = workUserService.getById(workDeptService.getById(workUserService.getById(userId).getDeptId()).getDeptManagerId()).getName();
// 2.获取可填报的类型
List<ProjectInfoDto> projectList = new ArrayList<>();
ProjectInfoDto projectInfoDto1 = new ProjectInfoDto().setType(1).setTypeName(getTypeName(1)).setDeptManagerName(deptManagerName);
ProjectInfoDto projectInfoDto2 = new ProjectInfoDto().setType(2).setTypeName(getTypeName(2)).setDeptManagerName(deptManagerName);
List<ProjectDto> projectDto1 = new ArrayList<>();
List<ProjectDto> projectDto2 = new ArrayList<>();
WorkProject workProject ;
for (Integer projectId : projectIds) {
workProject = workProjectService.getById(projectId);
if (1 == workProject.getType()) {
projectDto1.add(projectToProjectDto(workProject));
}
if (2 == workProject.getType()) {
projectDto2.add(projectToProjectDto(workProject));
}
}
projectInfoDto1.setProjectDto(projectDto1);
projectInfoDto2.setProjectDto(projectDto2);
projectList.add(projectInfoDto1);
projectList.add(projectInfoDto2);
projectList.add(new ProjectInfoDto().setType(3).setTypeName(getTypeName(3)).setDeptManagerName(deptManagerName));
projectList.add(new ProjectInfoDto().setType(4).setTypeName(getTypeName(4)).setDeptManagerName(deptManagerName));
projectList.add(new ProjectInfoDto().setType(5).setTypeName(getTypeName(5)).setDeptManagerName(deptManagerName));
projectList.add(new ProjectInfoDto().setType(6).setTypeName(getTypeName(6)).setDeptManagerName(deptManagerName));
projectList.add(new ProjectInfoDto().setType(7).setTypeName(getTypeName(7)).setDeptManagerName(deptManagerName));
return projectList;
}
// project转ProjectDto
private ProjectDto projectToProjectDto(WorkProject workProject) {
ProjectDto projectDto = new ProjectDto();
BeanUtils.copyProperties(workProject,projectDto);
// 获取项目管理
projectDto.setManagerName(workUserService.getById(workProject.getManagerId()).getName());
return projectDto;
}
// workTimeOrder TO WorkTimeOrderDto
private List<WorkTimeOrderDto> wtoToWtod(List<WorkTimeOrder> workTimeOrders) {
public List<WorkTimeOrderDto> wtoToWtod(List<WorkTimeOrder> workTimeOrders) {
List<WorkTimeOrderDto> dtos = new ArrayList<>();
for (WorkTimeOrder workTimeOrder : workTimeOrders) {
WorkTimeOrderDto dto = new WorkTimeOrderDto();
......@@ -458,12 +524,17 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if (null == dto.getDes()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DES_NOT_NULL);
}
if (null == dto.getWorkDay()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (thanDate(dto.getWorkDay())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_TIME_OVER_NOW_DAY);
}
if (null == dto.getWorkDay() || null == dto.getWorkTime()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
if (0 == dto.getWorkTime()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.TIME_NOT_IS_NULL);
}
// 2、默认设置超过系统默认3天(包括驳回3天)未填报的工时将不能填报
if (date.getTime() - dto.getWorkDay().getTime() > submitTime * 24 * 60 * 60 * 1000) {
......@@ -485,6 +556,12 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
//3.每天工时累加不得超过八小时
private void timeNotEight(int count, List<WorkTimeOrderDto> list) {
for (WorkTimeOrderDto workOrder : list) {
if (null == workOrder.getWorkDay() ) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (0 == workOrder.getWorkTime()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.TIME_NOT_IS_NULL);
}
count = count + workOrder.getWorkTime();
if (count > 8) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_TIME_NOT_OVER_EIGHT);
......
......@@ -56,7 +56,4 @@ public class WorkCollectController extends BaseController {
}
}
......@@ -5,10 +5,7 @@ import cn.wisenergy.common.utils.exception.CustomException;
import cn.wisenergy.common.utils.exception.RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.Result;
import cn.wisenergy.model.app.WorkTimeOrder;
import cn.wisenergy.model.dto.AppletsPendApprovalDto;
import cn.wisenergy.model.dto.CreateWorkOrderDto;
import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.dto.WorkTimeOrderDto;
import cn.wisenergy.model.dto.*;
import cn.wisenergy.service.*;
import cn.wisenergy.web.admin.controller.common.BaseController;
import com.github.pagehelper.PageInfo;
......@@ -61,8 +58,8 @@ public class WorkTimeOrderController extends BaseController {
throw new CustomException(RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
Date date = DateUtil.convertStrToDate(workDay, "yyyy-MM-dd");
List<WorkTimeOrderDto> dtos = workTimeOrderService.getByDayToDto(userId, date);
return getResult(dtos);
List<WorkTimeOrder> dtos = workTimeOrderService.getByDayToDto(userId, date);
return getResult(workTimeOrderService.wtoToWtod(dtos));
}
@ApiOperation(value = "工时填报", notes = "工时填报", httpMethod = "POST")
......@@ -125,16 +122,16 @@ public class WorkTimeOrderController extends BaseController {
}
@ApiOperation(value = "查询用户的所有项目和部门经理", notes = "查询用户的所有项目和部门经理", httpMethod = "GET")
@ApiOperation(value = "查询当前用户可填报和可审批的项目", notes = "查询当前用户可填报和可审批的项目", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "int", required = true)
@GetMapping(value = "/getProject")
public Result<List<ProjectDto>> getProjectByUserId(Integer userId) {
public Result<ProjectsDto> getProjectByUserId(Integer userId) {
log.info("WorkTimeOrderController[]getProjectByUserId[]input.param.userId:{}" + userId);
if (null == userId) {
throw new CustomException(RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<ProjectDto> list = workTimeOrderService.getProjectDto(userId);
return getResult(list);
ProjectsDto projectDto = workTimeOrderService.getProjectDto(userId);
return getResult(projectDto);
}
@ApiOperation(value = "单个或批量审批", notes = "单个或批量审批", httpMethod = "GET")
......@@ -154,7 +151,7 @@ public class WorkTimeOrderController extends BaseController {
System.out.println(lists);
Boolean aBoolean = workTimeOrderService.examineByIds(reviewerId, lists);
return getResult(aBoolean);
// return null;
}
@ApiOperation(value = "工单驳回", notes = "工单驳回", httpMethod = "PUT")
......@@ -185,4 +182,6 @@ public class WorkTimeOrderController extends BaseController {
return getResult(workTimeOrderDtos);
}
}
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