feat:填报工时添加删除功能
parent
ecc2b56c6f
commit
f9b4b3d49d
|
@ -24,8 +24,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/business/project")
|
@RequestMapping("/business/project")
|
||||||
public class ProjectController extends BaseController
|
public class ProjectController extends BaseController {
|
||||||
{
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProjectService service;
|
private IProjectService service;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -36,8 +35,7 @@ public class ProjectController extends BaseController
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(Project project)
|
public TableDataInfo list(Project project) {
|
||||||
{
|
|
||||||
startPage();
|
startPage();
|
||||||
List<Project> projectList = service.permissisonList(project);
|
List<Project> projectList = service.permissisonList(project);
|
||||||
return getDataTable(projectList);
|
return getDataTable(projectList);
|
||||||
|
@ -49,41 +47,40 @@ public class ProjectController extends BaseController
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@Log(title = "项目管理", businessType = BusinessType.INSERT)
|
@Log(title = "项目管理", businessType = BusinessType.INSERT)
|
||||||
public AjaxResult addData(@RequestBody Project project)
|
public AjaxResult addData(@RequestBody Project project) {
|
||||||
{
|
|
||||||
service.insert(project);
|
service.insert(project);
|
||||||
return success(project);
|
return success(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增数据
|
* 新增数据
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
@PostMapping("/updateCheck")
|
@PostMapping("/updateCheck")
|
||||||
public AjaxResult updateCheck(@RequestBody Project project)
|
public AjaxResult updateCheck(@RequestBody Project project) {
|
||||||
{
|
|
||||||
|
|
||||||
return AjaxResult.success(service.updateCheck(project));
|
return AjaxResult.success(service.updateCheck(project));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增数据
|
* 新增数据
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
|
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
|
||||||
public AjaxResult updateDate(@RequestBody Project project)
|
public AjaxResult updateDate(@RequestBody Project project) {
|
||||||
{
|
|
||||||
service.update(project);
|
service.update(project);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取项目编号
|
* 获取项目编号
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getCode")
|
@GetMapping("/getCode")
|
||||||
public AjaxResult getCode(){
|
public AjaxResult getCode() {
|
||||||
return AjaxResult.success("",IdUtils.fastUUID());
|
return AjaxResult.success("", IdUtils.fastUUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -92,65 +89,64 @@ public class ProjectController extends BaseController
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@Log(title = "项目人员管理", businessType = BusinessType.DELETE)
|
@Log(title = "项目人员管理", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/team/{teamId}")
|
@DeleteMapping("/team/{teamId}")
|
||||||
public AjaxResult teamRemove(@PathVariable Integer teamId)
|
public AjaxResult teamRemove(@PathVariable Integer teamId) {
|
||||||
{
|
|
||||||
return toAjax(teamService.deleteById(teamId));
|
return toAjax(teamService.deleteById(teamId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新项目
|
* 更新项目
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@Log(title = "项目人员管理", businessType = BusinessType.UPDATE)
|
@Log(title = "项目人员管理", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping("/team")
|
@PostMapping("/team")
|
||||||
public AjaxResult personnelChanges(@RequestBody ProjectTeam team)
|
public AjaxResult personnelChanges(@RequestBody ProjectTeam team) {
|
||||||
{
|
|
||||||
return success(teamService.personnelChanges(team));
|
return success(teamService.personnelChanges(team));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除项目
|
* 删除项目
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@Log(title = "项目管理", businessType = BusinessType.DELETE)
|
@Log(title = "项目管理", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{projectId}")
|
@DeleteMapping("/{projectId}")
|
||||||
public AjaxResult remove(@PathVariable Integer projectId)
|
public AjaxResult remove(@PathVariable Integer projectId) {
|
||||||
{
|
|
||||||
return toAjax(service.deleteById(projectId));
|
return toAjax(service.deleteById(projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据项目获取人员信息
|
* 根据项目获取人员信息
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@GetMapping("/{projectId}")
|
@GetMapping("/{projectId}")
|
||||||
public AjaxResult getTeamInfo(@PathVariable Integer projectId)
|
public AjaxResult getTeamInfo(@PathVariable Integer projectId) {
|
||||||
{
|
|
||||||
|
|
||||||
return success(service.getTeamInfo(projectId));
|
return success(service.getTeamInfo(projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据项目获取人员信息
|
* 根据项目获取人员信息
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@GetMapping("/info/{projectId}")
|
@GetMapping("/info/{projectId}")
|
||||||
public AjaxResult getProject(@PathVariable Integer projectId)
|
public AjaxResult getProject(@PathVariable Integer projectId) {
|
||||||
{
|
|
||||||
return success(service.queryById(projectId));
|
return success(service.queryById(projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目执行表
|
* 项目执行表
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@PostMapping("/executionInfo")
|
@PostMapping("/executionInfo")
|
||||||
public AjaxResult executionInfo(@RequestBody WorkLogger workLogger)
|
public AjaxResult executionInfo(@RequestBody WorkLogger workLogger) {
|
||||||
{
|
|
||||||
return success(service.executionInfo(workLogger));
|
return success(service.executionInfo(workLogger));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目人员表
|
* 项目人员表
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
||||||
@PostMapping("/workInfo")
|
@PostMapping("/workInfo")
|
||||||
public AjaxResult workInfo(@RequestBody ProjectQueryDto dto)
|
public AjaxResult workInfo(@RequestBody ProjectQueryDto dto) {
|
||||||
{
|
|
||||||
return success(service.workInfo(dto));
|
return success(service.workInfo(dto));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,16 @@ public class WorkHourController extends BaseController {
|
||||||
* 新增数据
|
* 新增数据
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
@Log(title = "工作日志", businessType = BusinessType.INSERT)
|
||||||
|
public AjaxResult deleteData(@PathVariable Integer id) {
|
||||||
|
service.deleteById(id);
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 新增数据
|
||||||
|
*/
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:dept:list')")
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Log(title = "工作日志", businessType = BusinessType.UPDATE)
|
@Log(title = "工作日志", businessType = BusinessType.UPDATE)
|
||||||
public AjaxResult updateData(@RequestBody WorkLogger workLogger) {
|
public AjaxResult updateData(@RequestBody WorkLogger workLogger) {
|
||||||
|
|
|
@ -12,7 +12,6 @@ import tech.unissense.pms.business.project.vo.ProjectExecutionVo;
|
||||||
import tech.unissense.pms.business.project.vo.ProjectWorkInfoVo;
|
import tech.unissense.pms.business.project.vo.ProjectWorkInfoVo;
|
||||||
import tech.unissense.pms.business.projectteam.domain.ProjectTeam;
|
import tech.unissense.pms.business.projectteam.domain.ProjectTeam;
|
||||||
import tech.unissense.pms.business.projectteam.service.IProjectTeamService;
|
import tech.unissense.pms.business.projectteam.service.IProjectTeamService;
|
||||||
|
|
||||||
import tech.unissense.pms.business.projectteam.vo.TeamStaticsVo;
|
import tech.unissense.pms.business.projectteam.vo.TeamStaticsVo;
|
||||||
import tech.unissense.pms.business.work.logger.domain.WorkLogger;
|
import tech.unissense.pms.business.work.logger.domain.WorkLogger;
|
||||||
import tech.unissense.pms.business.work.logger.service.IWorkLoggerService;
|
import tech.unissense.pms.business.work.logger.service.IWorkLoggerService;
|
||||||
|
@ -57,7 +56,6 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过ID查询单条数据
|
* 通过ID查询单条数据
|
||||||
*
|
*
|
||||||
|
@ -98,20 +96,23 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
private void dataPermissions(Project project) {
|
private void dataPermissions(Project project) {
|
||||||
SysUser user = SecurityUtils.getLoginUser().getUser();
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
if (user.isAdmin()){
|
if (user.isAdmin()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (CollUtil.isEmpty(user.getRoles())){
|
if (CollUtil.isEmpty(user.getRoles())) {
|
||||||
sql.append(" and 1=2");
|
sql.append(" and 1=2");
|
||||||
project.getParams().put("dataScope",sql);
|
project.getParams().put("dataScope", sql);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (user.getRoles().stream().anyMatch(item-> "企业管理员".equals(item.getRoleName())|| "公司领导".equals(item.getRoleName()))){
|
if (user.getRoles().stream()
|
||||||
|
.anyMatch(item -> "企业管理员".equals(item.getRoleName()) || "公司领导".equals(item.getRoleName()))) {
|
||||||
|
|
||||||
}else if (user.getRoles().stream().anyMatch(item -> "项目经理".equals(item.getRoleName()))){
|
} else if (user.getRoles().stream().anyMatch(item -> "项目经理".equals(item.getRoleName()))) {
|
||||||
sql.append("and (t1.project_id in (select project_id from pms_project_team where user_id={} ) or t1.project_leader={} or t1.create_by={})");
|
sql.append(
|
||||||
project.getParams().put("dataScope", StringUtils.format(sql.toString(), user.getUserId(), user.getUserId(), user.getUserId()));
|
"and (t1.project_id in (select project_id from pms_project_team where user_id={} ) or t1.project_leader={} or t1.create_by={})");
|
||||||
}else{
|
project.getParams().put("dataScope",
|
||||||
|
StringUtils.format(sql.toString(), user.getUserId(), user.getUserId(), user.getUserId()));
|
||||||
|
} else {
|
||||||
sql.append("and (t1.project_id in (select project_id from pms_project_team where user_id={} ))");
|
sql.append("and (t1.project_id in (select project_id from pms_project_team where user_id={} ))");
|
||||||
project.getParams().put("dataScope", StringUtils.format(sql.toString(), user.getUserId()));
|
project.getParams().put("dataScope", StringUtils.format(sql.toString(), user.getUserId()));
|
||||||
}
|
}
|
||||||
|
@ -126,6 +127,7 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增数据
|
* 新增数据
|
||||||
*
|
*
|
||||||
|
@ -138,7 +140,7 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
if (StringUtils.isNotEmpty(errorMsg)) {
|
if (StringUtils.isNotEmpty(errorMsg)) {
|
||||||
throw new ServiceException(errorMsg);
|
throw new ServiceException(errorMsg);
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(project.getState())){
|
if (StringUtils.isEmpty(project.getState())) {
|
||||||
project.setState("0");
|
project.setState("0");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(project.getProjectCode())) {
|
if (StringUtils.isEmpty(project.getProjectCode())) {
|
||||||
|
@ -153,9 +155,11 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
String existProjectCode = projectMapper.selectProjectCode(DateUtils.toDate(currentDate));
|
String existProjectCode = projectMapper.selectProjectCode(DateUtils.toDate(currentDate));
|
||||||
int initValue = 1;
|
int initValue = 1;
|
||||||
try {
|
try {
|
||||||
initValue = StringUtils.isNotEmpty(existProjectCode) ? Integer.parseInt(existProjectCode.substring(existProjectCode.length() - 4)) + 1 : 1;
|
initValue = StringUtils.isNotEmpty(existProjectCode)
|
||||||
|
? Integer.parseInt(existProjectCode.substring(existProjectCode.length() - 4)) + 1
|
||||||
|
: 1;
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
log.error("项目编码格式化错误,项目编码为:{}",existProjectCode);
|
log.error("项目编码格式化错误,项目编码为:{}", existProjectCode);
|
||||||
}
|
}
|
||||||
return new AtomicInteger(initValue);
|
return new AtomicInteger(initValue);
|
||||||
} else {
|
} else {
|
||||||
|
@ -172,7 +176,8 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
}
|
}
|
||||||
// 新增项目
|
// 新增项目
|
||||||
this.projectMapper.insert(project);
|
this.projectMapper.insert(project);
|
||||||
// project.getProjectTeamList().forEach(item -> item.setProjectId(project.getProjectId()));
|
// project.getProjectTeamList().forEach(item ->
|
||||||
|
// item.setProjectId(project.getProjectId()));
|
||||||
// // 新增项目人员
|
// // 新增项目人员
|
||||||
// teamService.insertBatch(project.getProjectTeamList());
|
// teamService.insertBatch(project.getProjectTeamList());
|
||||||
return project;
|
return project;
|
||||||
|
@ -226,7 +231,7 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
return projectTeamList.stream().map(item -> {
|
return projectTeamList.stream().map(item -> {
|
||||||
String userIdStr = String.valueOf(item.getUserId());
|
String userIdStr = String.valueOf(item.getUserId());
|
||||||
BigDecimal workTime = workHourVo.getOrDefault(userIdStr, BigDecimal.ZERO);
|
BigDecimal workTime = workHourVo.getOrDefault(userIdStr, BigDecimal.ZERO);
|
||||||
|
|
||||||
TeamStaticsVo teamStaticsVo = new TeamStaticsVo();
|
TeamStaticsVo teamStaticsVo = new TeamStaticsVo();
|
||||||
teamStaticsVo.setTeamId(item.getTeamId());
|
teamStaticsVo.setTeamId(item.getTeamId());
|
||||||
teamStaticsVo.setUserName(item.getUserName());
|
teamStaticsVo.setUserName(item.getUserName());
|
||||||
|
@ -259,7 +264,8 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
Map<String, BigDecimal> workTimeMap = workLoggerService.list(workLogger).stream()
|
Map<String, BigDecimal> workTimeMap = workLoggerService.list(workLogger).stream()
|
||||||
.filter(item -> teamSet.contains(item.getProjectId() + "_" + item.getUserId()))
|
.filter(item -> teamSet.contains(item.getProjectId() + "_" + item.getUserId()))
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
item -> item.getProjectId() + "_" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, item.getLoggerDate()),
|
item -> item.getProjectId() + "_"
|
||||||
|
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, item.getLoggerDate()),
|
||||||
item -> new BigDecimal(item.getWorkTime()),
|
item -> new BigDecimal(item.getWorkTime()),
|
||||||
BigDecimal::add));
|
BigDecimal::add));
|
||||||
|
|
||||||
|
@ -270,8 +276,10 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
List<BigDecimal> tempList = Stream.iterate(startDate, date -> date.plusDays(1))
|
List<BigDecimal> tempList = Stream.iterate(startDate, date -> date.plusDays(1))
|
||||||
.limit(ChronoUnit.DAYS.between(startDate, endDate) + 1)
|
.limit(ChronoUnit.DAYS.between(startDate, endDate) + 1)
|
||||||
.map(localDate -> {
|
.map(localDate -> {
|
||||||
if (localDate.isAfter(project.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()) ||
|
if (localDate.isAfter(
|
||||||
localDate.isBefore(project.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate())) {
|
project.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()) ||
|
||||||
|
localDate.isBefore(project.getStartDate().toInstant().atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDate())) {
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
return workTimeMap.getOrDefault(project.getProjectId() + "_" + localDate, BigDecimal.ZERO);
|
return workTimeMap.getOrDefault(project.getProjectId() + "_" + localDate, BigDecimal.ZERO);
|
||||||
|
@ -297,20 +305,21 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
List<WorkLogger> workLoggerList = workLoggerService.listUser(workLogger);
|
List<WorkLogger> workLoggerList = workLoggerService.listUser(workLogger);
|
||||||
ProjectTeam projectTeam = new ProjectTeam();
|
ProjectTeam projectTeam = new ProjectTeam();
|
||||||
projectTeam.setProjectId(projectQueryDto.getProjectId());
|
projectTeam.setProjectId(projectQueryDto.getProjectId());
|
||||||
Set<Integer> projectTeamSet = teamService.list(projectTeam).stream().map(ProjectTeam::getUserId).collect(Collectors.toSet());
|
Set<Integer> projectTeamSet = teamService.list(projectTeam).stream().map(ProjectTeam::getUserId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
// 使用流按日期分组,并对每个日期的工人按用户ID去重,保留最后一次记录
|
// 使用流按日期分组,并对每个日期的工人按用户ID去重,保留最后一次记录
|
||||||
Map<String, List<WorkLogger>> workersByDateMap = workLoggerList.stream().filter(item->projectTeamSet.contains(item.getUserId()))
|
Map<String, List<WorkLogger>> workersByDateMap = workLoggerList.stream()
|
||||||
|
.filter(item -> projectTeamSet.contains(item.getUserId()))
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
logger -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, logger.getLoggerDate()),
|
logger -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, logger.getLoggerDate()),
|
||||||
Collectors.collectingAndThen(
|
Collectors.collectingAndThen(
|
||||||
Collectors.toMap(
|
Collectors.toMap(
|
||||||
WorkLogger::getUserId,
|
WorkLogger::getUserId,
|
||||||
logger -> logger,
|
logger -> logger,
|
||||||
(existing, replacement) -> existing.getCreateTime().after(replacement.getCreateTime()) ? existing : replacement
|
(existing,
|
||||||
),
|
replacement) -> existing.getCreateTime()
|
||||||
map -> new ArrayList<>(map.values())
|
.after(replacement.getCreateTime()) ? existing : replacement),
|
||||||
)
|
map -> new ArrayList<>(map.values()))));
|
||||||
));
|
|
||||||
|
|
||||||
LocalDate startDate = projectQueryDto.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
LocalDate startDate = projectQueryDto.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
LocalDate endDate = projectQueryDto.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
LocalDate endDate = projectQueryDto.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
|
@ -332,7 +341,8 @@ public class ProjectServiceImpl implements IProjectService {
|
||||||
WorkLogger workLogger = new WorkLogger();
|
WorkLogger workLogger = new WorkLogger();
|
||||||
workLogger.setProjectId(project.getProjectId());
|
workLogger.setProjectId(project.getProjectId());
|
||||||
List<WorkLogger> list = workLoggerService.list(workLogger);
|
List<WorkLogger> list = workLoggerService.list(workLogger);
|
||||||
if (list.stream().anyMatch(item -> item.getLoggerDate().before(project.getStartDate()) || item.getLoggerDate().after(project.getEndDate()))) {
|
if (list.stream().anyMatch(item -> item.getLoggerDate().before(project.getStartDate())
|
||||||
|
|| item.getLoggerDate().after(project.getEndDate()))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue