添加了按照时间段查询工时记录的接口
This commit is contained in:
		| @@ -99,19 +99,22 @@ public class WorkHourRecordController { | ||||
|  | ||||
|     /** | ||||
|      * 查询我参与的当前项目的提交的工时记录 | ||||
|      * @param projectNumber | ||||
|      * @param map | ||||
|      * @param token | ||||
|      * @return | ||||
|      */ | ||||
|     @GetMapping("/findRecord") | ||||
|     @PostMapping("/findRecord") | ||||
|     @PreAuthorize("hasAnyAuthority('auth_administor','auth_general_user')") | ||||
|     public String findRecord(@RequestParam("projectNumber") String projectNumber,@RequestHeader(value="Authorization") String token){ | ||||
|     public String findRecord(@RequestBody Map map,@RequestHeader(value="Authorization") String token){ | ||||
|         // 获取区域信息 | ||||
|         Locale locale = LocaleContextHolder.getLocale(); | ||||
|         String projectNumber = (String) map.get("projectNumber"); | ||||
|         String startTime = (String) map.get("startTime"); | ||||
|         String endTime = (String) map.get("endTime"); | ||||
|         // 验证token | ||||
|         String tokenUserName = TokenUtil.getTokenUserName(token); | ||||
|         SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName); | ||||
|         List<WorkHourRecord> workHourRecords = workHourRecordService.findRecord(projectNumber, sysUserEntity.getId()); | ||||
|         List<WorkHourRecord> workHourRecords = workHourRecordService.findRecord(projectNumber, sysUserEntity.getId(),startTime,endTime); | ||||
|         if(workHourRecords == null || workHourRecords.size() == 0){ | ||||
|             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有该项目的工时记录",locale); | ||||
|         } | ||||
|   | ||||
| @@ -5,6 +5,7 @@ import com.xkrs.model.vo.MemberWorkRecordVo; | ||||
| import com.xkrs.model.vo.OutExcelVo; | ||||
| import com.xkrs.model.vo.OutMemberVo; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.data.jpa.repository.JpaSpecificationExecutor; | ||||
| import org.springframework.data.jpa.repository.Modifying; | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.data.repository.query.Param; | ||||
| @@ -17,7 +18,7 @@ import java.util.Map; | ||||
|  * @author XinYi Song | ||||
|  */ | ||||
| @Component | ||||
| public interface WorkHourRecordDao extends JpaRepository<WorkHourRecord,Long> { | ||||
| public interface WorkHourRecordDao extends JpaRepository<WorkHourRecord,Long>, JpaSpecificationExecutor<WorkHourRecord> { | ||||
|  | ||||
|     /** | ||||
|      * 查询我参与的 | ||||
|   | ||||
| @@ -47,9 +47,11 @@ public interface WorkHourRecordService { | ||||
|      * 查询我参与的当前项目的提交的工时记录 | ||||
|      * @param projectNumber | ||||
|      * @param userId | ||||
|      * @param startTime | ||||
|      * @param endTime | ||||
|      * @return | ||||
|      */ | ||||
|     List<WorkHourRecord> findRecord(String projectNumber,Integer userId); | ||||
|     List<WorkHourRecord> findRecord(String projectNumber,Integer userId,String startTime, String endTime); | ||||
|  | ||||
|     /** | ||||
|      * 修改工时记录 | ||||
|   | ||||
| @@ -12,6 +12,7 @@ import com.xkrs.model.vo.OutExcelVo; | ||||
| import com.xkrs.model.vo.OutMemberVo; | ||||
| import com.xkrs.service.WorkHourRecordService; | ||||
| import com.xkrs.utils.DateTimeUtil; | ||||
| import com.xkrs.utils.Query; | ||||
| import org.apache.poi.hssf.usermodel.*; | ||||
| import org.apache.poi.ss.usermodel.*; | ||||
| import org.springframework.context.i18n.LocaleContextHolder; | ||||
| @@ -40,6 +41,9 @@ public class WorkHourRecordServiceImpl implements WorkHourRecordService { | ||||
|     @Resource | ||||
|     private SysUserDao sysUserDao; | ||||
|  | ||||
|     @Resource | ||||
|     private Query query; | ||||
|  | ||||
|     /** | ||||
|      * 提交工时记录 | ||||
|      * @param workRecordQo | ||||
| @@ -101,11 +105,13 @@ public class WorkHourRecordServiceImpl implements WorkHourRecordService { | ||||
|      * 查询我参与的当前项目的提交的工时记录 | ||||
|      * @param projectNumber | ||||
|      * @param userId | ||||
|      * @param startTime | ||||
|      * @param endTime | ||||
|      * @return | ||||
|      */ | ||||
|     @Override | ||||
|     public List<WorkHourRecord> findRecord(String projectNumber, Integer userId) { | ||||
|         return workHourRecordDao.findRecord(projectNumber,userId); | ||||
|     public List<WorkHourRecord> findRecord(String projectNumber, Integer userId, String startTime, String endTime) { | ||||
|         return query.selectWorkRecord(projectNumber,userId,startTime,endTime); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -1,7 +1,9 @@ | ||||
| package com.xkrs.utils; | ||||
|  | ||||
| import com.xkrs.dao.ProjectOverviewDao; | ||||
| import com.xkrs.dao.WorkHourRecordDao; | ||||
| import com.xkrs.model.entity.ProjectOverview; | ||||
| import com.xkrs.model.entity.WorkHourRecord; | ||||
| import org.springframework.data.jpa.domain.Specification; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| @@ -23,6 +25,9 @@ public class Query { | ||||
|     @Resource | ||||
|     private ProjectOverviewDao projectOverviewDao; | ||||
|  | ||||
|     @Resource | ||||
|     private WorkHourRecordDao workHourRecordDao; | ||||
|  | ||||
|     /** | ||||
|      * 动态多条件查询项目信息 | ||||
|      * @param | ||||
| @@ -47,4 +52,37 @@ public class Query { | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 查询工时记录 | ||||
|      * @param projectNumber | ||||
|      * @param userId | ||||
|      * @param startTime | ||||
|      * @param endTime | ||||
|      * @return | ||||
|      */ | ||||
|     public List<WorkHourRecord> selectWorkRecord(String projectNumber, Integer userId, String startTime, String endTime) { | ||||
|         Specification<WorkHourRecord> specification = new Specification<WorkHourRecord>() { | ||||
|             @Override | ||||
|             public Predicate toPredicate(Root<WorkHourRecord> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { | ||||
|                 List<Predicate> list = new ArrayList<>(); | ||||
|                 if (projectNumber != null && !"".equals(projectNumber)) { | ||||
|                     list.add(criteriaBuilder.equal(root.get("projectNumber").as(String.class), projectNumber)); | ||||
|                 } | ||||
|                 if (userId != null && !"".equals(userId)) { | ||||
|                     list.add(criteriaBuilder.equal(root.get("userId").as(Integer.class), userId)); | ||||
|                 } | ||||
|                 if(startTime != null && !"".equals(startTime)){ | ||||
|                     list.add(criteriaBuilder.greaterThanOrEqualTo(root.get("submitTime").as(String.class), startTime)); | ||||
|                 } | ||||
|                 if(endTime != null && !"".equals(endTime)){ | ||||
|                     list.add(criteriaBuilder.lessThanOrEqualTo(root.get("submitTime").as(String.class), endTime)); | ||||
|                 } | ||||
|                 Predicate[] predicates = new Predicate[list.size()]; | ||||
|                 return criteriaBuilder.and(list.toArray(predicates)); | ||||
|             } | ||||
|         }; | ||||
|         return workHourRecordDao.findAll(specification); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -29,7 +29,7 @@ spring.datasource.hikari.validation-timeout = 3000 | ||||
| ## Spring Data JPA 配置 | ||||
| spring.jpa.database = POSTGRESQL | ||||
| spring.jpa.database-platform = org.hibernate.dialect.PostgreSQLDialect | ||||
| spring.jpa.show-sql = true | ||||
| spring.jpa.show-sql = false | ||||
| # 指定 ddl mode (none, validate, create, create-drop, update) | ||||
| spring.jpa.hibernate.ddl-auto = update | ||||
| # 命名策略 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user