提交 f21501de authored 作者: 任建宇's avatar 任建宇
package com.zrqx.olive.personnel.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
......@@ -9,11 +13,14 @@ import org.springframework.web.bind.annotation.RestController;
import com.common.CommonPage;
import com.common.CommonResult;
import com.common.PageParamRequest;
import com.zrqx.olive.personnel.request.CompleteQueryForm;
import com.zrqx.olive.personnel.request.PersonnelRequest;
import com.zrqx.olive.personnel.request.StatisticsTaskTime;
import com.zrqx.olive.ttask.request.TaskRequest;
import com.zrqx.olive.personnel.request.SaveOrUpdateLevelForm;
import com.zrqx.olive.personnel.request.StatisticsTaskTimeForm;
import com.zrqx.olive.personnel.service.UserTaskLevelService;
import com.zrqx.olive.personnel.vo.StatisticsTaskTime;
import com.zrqx.olive.ttask.service.TaskService;
import com.zrqx.olive.ttask.vo.TaskVo;
import com.zrqx.statistics.entity.StatisticsTask;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -28,12 +35,30 @@ public class PersonnelController {
@Autowired
private TaskService taskService;
@Autowired
private UserTaskLevelService service;
@ApiOperation(value = "人员-工时统计修改/添加基础工时")
@PostMapping("/saveOrUpdate/taskLevel")
public CommonResult<Boolean> saveOrUpdate(@RequestBody SaveOrUpdateLevelForm form){
return CommonResult.success(service.saveOrUpdate(form));
}
@ApiOperation(value = "在职人员列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<StatisticsTaskTime>> getPersonnelList(@Validated PersonnelRequest taskRequest,
public CommonResult<CommonPage<StatisticsTaskTime>> getPersonnelList(PersonnelRequest taskRequest,
@Validated PageParamRequest pageParamRequest) {
return CommonResult.success(CommonPage.restPage(taskService.getPersonnelList(taskRequest, pageParamRequest)));
}
@ApiOperation(value = "人员-工时统计详情页")
@RequestMapping(value = "/expect_man_hours_info/page", method = RequestMethod.GET)
public CommonResult<CommonPage<StatisticsTask>> tasksPage(PageParamRequest pageParamRequest, CompleteQueryForm form) {
return CommonResult.success(CommonPage.restPage(taskService.queryTaskPage(pageParamRequest, form)));
}
@ApiOperation(value = "人员-工时统计拆分页")
@RequestMapping(value = "/project_split_data", method = RequestMethod.GET)
public CommonResult<List<StatisticsTaskTime>> projectSplitData(CompleteQueryForm form){
return CommonResult.success(taskService.queryProjectSplitData(form));
}
}
......@@ -21,19 +21,15 @@ import com.zrqx.olive.personnel.request.QueryLevelForm;
*/
public interface UserTaskLevelDao extends BaseMapper<UserTaskLevel> {
@Select("<script>"
+ " select id from zt_user where realname = #{name} "
+ "</script>")
Integer selectUserId(@Param("name") String name);
@Select("<script>"
+ " select sum(level) from user_info where 1=1 "
+ " eq(name,form.name) "
+ " select sum(level) from user_task_level where 1=1 "
+ " and user_id = #{form.userId} "
+ "<if test = 'form.startTime!=null'>"
+ " AND createTime &gt;= concat(#{form.startTime}) "
+ " AND create_time &gt;= concat(#{form.startTime}) "
+ "</if>"
+ "<if test = 'form.endTime!=null'>"
+ " AND createTime &lt;= concat(#{form.endTime}) "
+ " AND create_time &lt;= concat(#{form.endTime}) "
+ "</if>"
+ "</script>")
Integer getSumLevel(@Param("form") QueryLevelForm form);
......
......@@ -22,6 +22,9 @@ public class PersonnelRequest implements Serializable {
@ApiModelProperty(value = "部门名称")
private String departmentName;
@ApiModelProperty(value = "成员id")
private Integer userId;
@ApiModelProperty(value = "成员名称")
private String userName;
......
......@@ -12,6 +12,6 @@ public class QueryLevelForm {
private String startTime;
@ApiModelProperty("结束时间")
private String endTime;
@ApiModelProperty("用户名称")
private String name;
@ApiModelProperty("userId")
private Integer userId;
}
......@@ -9,7 +9,7 @@ import lombok.Data;
public class SaveOrUpdateLevelForm {
@ApiModelProperty("用户名")
private String name;
private Integer userId;
@ApiModelProperty("标准工时")
private Integer level;
......
......@@ -19,10 +19,10 @@ public class StatisticsTaskTime {
private Integer id;
@ApiModelProperty(value = "部门id")
private Integer departmentId;
private String realName;
@ApiModelProperty(value = "部门名称")
private Integer departmentName;
private String departmentName;
@ApiModelProperty("最终工时")
private BigDecimal totalTime;
......
......@@ -6,6 +6,7 @@ import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -16,6 +17,8 @@ import com.zrqx.olive.personnel.model.UserTaskLevel;
import com.zrqx.olive.personnel.request.QueryLevelForm;
import com.zrqx.olive.personnel.request.SaveOrUpdateLevelForm;
import com.zrqx.olive.personnel.service.UserTaskLevelService;
import com.zrqx.olive.system.dao.SystemAdminDao;
import com.zrqx.olive.system.model.SystemAdmin;
/**
* SystemAdminServiceImpl 接口实现
......@@ -34,24 +37,25 @@ public class UserTaskLevelServiceImpl extends ServiceImpl<UserTaskLevelDao, User
@Resource
private UserTaskLevelDao mapper;
@Autowired
private SystemAdminDao systemAdminDao;
@Override
public Boolean saveOrUpdate(SaveOrUpdateLevelForm form) {
// 查看该用户在基准工时表中是否存在 添加或修改
QueryWrapper<UserTaskLevel> qw = new QueryWrapper<UserTaskLevel>();
if(StringUtils.isNoneBlank(form.getName())) {
qw.eq("name", form.getName());
if(form.getUserId()!=null) {
qw.eq("user_id", form.getUserId());
}
if(StringUtils.isNoneBlank(form.getCreateTime())) {
qw.eq("create_time", form.getCreateTime());
}
List<UserTaskLevel> list = mapper.selectList(qw);
if (ArrayUtils.empty(list)) {//不存在,添加
Integer userId = mapper.selectUserId(form.getName());
UserTaskLevel ul = new UserTaskLevel();
BeanUtils.copyProperties(form, ul);
ul.setUserId(userId);
ul.setUserId(form.getUserId());
mapper.insert(ul);
}else {//存在,修改(不考虑同名同姓)
UserTaskLevel ul = mapper.selectOne(qw);
......
......@@ -13,7 +13,7 @@ import com.zrqx.olive.project.vo.ProjectListVo1;
public interface StatisticsProjectDao extends BaseMapper<StatisticsProject> {
@Select("<script>"
+ "select id,project,customer,customer_id,name,status,DATE_FORMAT(start_time,'%Y-%m-%d') start_time,total_apply_time total,"
+ "select id,project,customer,customer_id,name,status,DATE_FORMAT(start_time,'%Y-%m-%d') start_time,"
+ "DATE_FORMAT(end_time,'%Y-%m-%d') end_time,px,presale,to_be_allocated FROM t_statistics_project where 1=1 "
// 项目负责人
+ "<if test = 'form.name !=null'> "
......
......@@ -76,6 +76,8 @@ public class StatisticsProjectServiceImpl extends ServiceImpl<StatisticsProjectD
List<ProjectListVo> list = mapper.queryProjectPage(form);
for (ProjectListVo projectListVo : list) {
projectListVo.setStatus_Name(ProjectStatusEnum.getName(projectListVo.getStatus()));
Double designApplyTimeChange = timeApplyChangeMapper.timeApplyChangeMapper(projectListVo.getId(),null) == null ? 0.0 : timeApplyChangeMapper.timeApplyChangeMapper(projectListVo.getId(),null);
projectListVo.setTotal(new BigDecimal(designApplyTimeChange));
//项目的消耗总工时
BigDecimal consume=taskService.queryConsume(projectListVo.getId(),null,null,projectListVo.getPresale());
if(consume!=null) {
......
......@@ -51,7 +51,14 @@ public interface TimeApplyChangeDao extends BaseMapper<TimeApplyChange>{
Double selectforTime(String id);
@Select("<script>"
+ " select sum(change_time) from time_apply_change where project_id = #{id} and department_id = #{departmentId} and status1 = '1' and status2 = '4'"
+ " select sum(change_time) from time_apply_change where 1=1 "
+ "<if test = 'departmentId != null and departmentId!= \"\"'>"
+ " AND department_id =#{departmentId} "
+ "</if>"
+ "<if test = 'id != null and id!= \"\"'>"
+ " AND project_id = #{id} "
+ "</if>"
+ " and status1 = '1' and status2 = '4'"
+ "</script>")
Double timeApplyChangeMapper(@Param("id")String id,@Param("departmentId")String departmentId);
......
......@@ -8,15 +8,15 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zrqx.olive.article.model.Article;
import com.zrqx.olive.personnel.request.CompleteQueryForm;
import com.zrqx.olive.personnel.request.PersonnelRequest;
import com.zrqx.olive.personnel.request.StatisticsTaskTime;
import com.zrqx.olive.project.model.Customer;
import com.zrqx.olive.project.request.QueryCustomerRequest;
import com.zrqx.olive.personnel.request.StatisticsTaskTimeForm;
import com.zrqx.olive.personnel.vo.StatisticsTaskTime;
import com.zrqx.olive.ttask.model.Task;
import com.zrqx.olive.ttask.request.TaskRequest;
import com.zrqx.olive.ttask.vo.TaskExcelVo;
import com.zrqx.olive.ttask.vo.TaskVo;
import com.zrqx.statistics.entity.StatisticsTask;
/**
* 任务管理表 Mapper 接口
......@@ -275,12 +275,12 @@ public interface TaskDao extends BaseMapper<Task> {
BigDecimal totalTime(@Param("request")TaskRequest request);
@Select("<script>"
+ " SELECT b.id,b.real_name,c.department_name,SUM(working_hours) from t_task a INNER JOIN eb_system_admin b on a.user_id=b.id "
+ " SELECT b.id,b.real_name,c.department_name,SUM(working_hours) totalTime from t_task a INNER JOIN eb_system_admin b on a.user_id=b.id "
+ " INNER JOIN sys_department c on b.department_id=c.id where 1=1 and a.task_status=3 "
+ "<if test = 'taskRequest.departmentName!=null'> "
+ " and c.department_name like concat('%',#{taskRequest.departmentName},'%') "
+ "</if>"
+ "<if test = 'request.userName!=null'> "
+ "<if test = 'taskRequest.userName!=null'> "
+ " and b.real_name like concat('%',#{taskRequest.userName},'%') "
+ "</if>"
+ "<if test = 'taskRequest.startTime!=null'>"
......@@ -290,9 +290,42 @@ public interface TaskDao extends BaseMapper<Task> {
+ " AND a.complete_Time &lt;= concat(#{taskRequest.endTime}, ' 23:59:59' ) "
+ "</if>"
+ "<if test = 'taskRequest.isType!=null'>"
+ " AND a.is_type = #{taskRequest.isType} "
+ " AND b.is_type = #{taskRequest.isType} "
+ "</if>"
+ " and a.user_id is not null GROUP BY b.real_name ORDER BY department_name DESC"
+ "</script>")
List<StatisticsTaskTime> getPersonnelList(PersonnelRequest taskRequest);
List<StatisticsTaskTime> getPersonnelList(@Param("taskRequest") PersonnelRequest taskRequest);
@Select("<script>"
+ " SELECT a.id,a.task_name,a.task_description,b.real_name finishedBy,c.project,a.working_hours from t_task a INNER JOIN eb_system_admin b on a.user_id=b.id INNER JOIN t_statistics_project c on a.project_id=c.id where 1=1 and a.task_status=3 "
+ "<if test = 'form.userName!=null'> "
+ " and b.real_name like concat('%',#{form.userName},'%') "
+ "</if>"
+ "<if test = 'form.startTime!=null'>"
+ " AND a.complete_Time &gt;= concat(#{form.startTime}, ' 00:00:00' ) "
+ "</if>"
+ "<if test = 'form.endTime!=null'>"
+ " AND a.complete_Time &lt;= concat(#{form.endTime}, ' 23:59:59' ) "
+ "</if>"
+ "<if test = 'form.isType!=null'>"
+ " AND b.is_type = #{taskRequest.isType} "
+ "</if>"
+ "</script>")
List<StatisticsTask> queryTaskPage(@Param("form") CompleteQueryForm form);
@Select("<script>"
+"SELECT a.id,c.project,SUM(working_hours),c.customer from t_task a INNER JOIN eb_system_admin b on a.user_id=b.id INNER JOIN t_statistics_project c on a.project_id=c.id where 1=1 and a.task_status=3 "
+ "<if test = 'form.userName!=null'> "
+ " and b.real_name like concat('%',#{form.userName},'%') "
+ "</if>"
+ "<if test = 'form.startTime!=null'>"
+ " AND a.complete_Time &gt;= concat(#{form.startTime}, ' 00:00:00' ) "
+ "</if>"
+ "<if test = 'form.endTime!=null'>"
+ " AND a.complete_Time &lt;= concat(#{form.endTime}, ' 23:59:59' ) "
+ "</if>"
+ "<if test = 'form.isType!=null'>"
+ " AND b.is_type = #{taskRequest.isType} "
+ "</if>"
+ "</script>")
List<StatisticsTaskTime> queryProjectSplitData(@Param("form") CompleteQueryForm form);
}
......@@ -11,13 +11,15 @@ import com.common.CommonResult;
import com.common.PageParamRequest;
import com.github.pagehelper.PageInfo;
import com.utils.excelutil.BaseException;
import com.zrqx.olive.personnel.request.CompleteQueryForm;
import com.zrqx.olive.personnel.request.PersonnelRequest;
import com.zrqx.olive.personnel.request.StatisticsTaskTime;
import com.zrqx.olive.personnel.vo.StatisticsTaskTime;
import com.zrqx.olive.ttask.model.Task;
import com.zrqx.olive.ttask.request.TaskForm;
import com.zrqx.olive.ttask.request.TaskRequest;
import com.zrqx.olive.ttask.vo.TaskExcelVo;
import com.zrqx.olive.ttask.vo.TaskVo;
import com.zrqx.statistics.entity.StatisticsTask;
/**
* TaskService 接口
......@@ -55,4 +57,8 @@ public interface TaskService extends IService<Task> {
* @date 2021年9月16日
*/
PageInfo<StatisticsTaskTime> getPersonnelList(PersonnelRequest taskRequest, PageParamRequest pageParamRequest);
PageInfo<StatisticsTask> queryTaskPage(PageParamRequest pageParamRequest, CompleteQueryForm form);
List<StatisticsTaskTime> queryProjectSplitData(CompleteQueryForm form);
}
package com.zrqx.olive.ttask.service.imp;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.common.CommonPage;
import com.common.CommonResult;
import com.common.PageParamRequest;
import com.exception.CrmebException;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.utils.CrmebUtil;
import com.utils.ImportExcelUtil;
import com.utils.UUIDUtil;
import com.utils.excelutil.BaseException;
import com.zrqx.olive.article.dao.ArticleDao;
import com.zrqx.olive.article.model.Article;
import com.zrqx.olive.article.request.ArticleSearchRequest;
import com.zrqx.olive.article.service.ArticleService;
import com.zrqx.olive.article.vo.ArticleVo;
import com.zrqx.olive.category.model.Category;
import com.zrqx.olive.category.service.CategoryService;
import com.zrqx.olive.personnel.dao.UserTaskLevelDao;
import com.zrqx.olive.personnel.model.UserTaskLevel;
import com.zrqx.olive.personnel.request.CompleteQueryForm;
import com.zrqx.olive.personnel.request.PersonnelRequest;
import com.zrqx.olive.personnel.request.QueryLevelForm;
import com.zrqx.olive.personnel.request.StatisticsTaskTime;
import com.zrqx.olive.personnel.request.StatisticsTaskTimeForm;
import com.zrqx.olive.personnel.vo.StatisticsTaskTime;
import com.zrqx.olive.project.model.DiyType;
import com.zrqx.olive.project.model.Team;
import com.zrqx.olive.project.service.DiyTypeService;
import com.zrqx.olive.project.service.TeamService;
import com.zrqx.olive.system.service.SystemConfigService;
import com.zrqx.olive.ttask.dao.TaskDao;
import com.zrqx.olive.ttask.model.Task;
import com.zrqx.olive.ttask.request.TaskForm;
......@@ -42,28 +46,7 @@ import com.zrqx.olive.ttask.service.TaskService;
import com.zrqx.olive.ttask.vo.ExcelTaskVo;
import com.zrqx.olive.ttask.vo.TaskExcelVo;
import com.zrqx.olive.ttask.vo.TaskVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static com.constants.Constants.ARTICLE_BANNER_LIMIT;
import com.zrqx.statistics.entity.StatisticsTask;
/**
* TaskServiceImpl 接口实现
......@@ -296,15 +279,20 @@ public class TaskServiceImpl extends ServiceImpl<TaskDao, Task> implements TaskS
public PageInfo<StatisticsTaskTime> getPersonnelList(PersonnelRequest taskRequest,
PageParamRequest pageParamRequest) {
if(pageParamRequest.getOrderBy()==null) {
pageParamRequest.setOrderBy("create_time desc");
pageParamRequest.setOrderBy("a.create_time desc");
}
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit(),
pageParamRequest.getOrderBy());
List<StatisticsTaskTime> list = dao.getPersonnelList(taskRequest);
for (StatisticsTaskTime statisticsTaskTime : list) {
if(taskRequest.getStartTime()!=null && taskRequest.getEndTime()!=null) {
taskRequest.setUserId(statisticsTaskTime.getId());
Integer level = getLevel(taskRequest);
statisticsTaskTime.setTaskLevel(level);
}
}
return new PageInfo<StatisticsTaskTime>(list);
}
......@@ -317,8 +305,26 @@ public class TaskServiceImpl extends ServiceImpl<TaskDao, Task> implements TaskS
DateTimeFormatter ff = DateTimeFormatter.ofPattern("yyyy-MM");
query1.setStartTime(start.format(ff));
query1.setEndTime(end.format(ff));
query1.setName(taskRequest.getUserName());
query1.setUserId(taskRequest.getUserId());
Integer sumLevel = userTaskLevelDao.getSumLevel(query1);
return sumLevel;
}
@Override
public PageInfo<StatisticsTask> queryTaskPage(PageParamRequest pageParamRequest, CompleteQueryForm form) {
if(pageParamRequest.getOrderBy()==null) {
pageParamRequest.setOrderBy("complete_time desc");
}
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit(),
pageParamRequest.getOrderBy());
List<StatisticsTask> list = dao.queryTaskPage(form);
return new PageInfo<StatisticsTask>(list);
}
@Override
public List<StatisticsTaskTime> queryProjectSplitData(CompleteQueryForm form) {
// TODO Auto-generated method stub
List<StatisticsTaskTime> list=dao.queryProjectSplitData(form);
return list;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论