package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.ProjectMainMapper; import com.ruoyi.system.model.ContractTemplate; import com.ruoyi.system.model.ProjectMain; import com.ruoyi.system.query.ProjectMainListQuery; import com.ruoyi.system.query.ProjectPhaseListQuery; import com.ruoyi.system.service.ProjectMainService; import com.ruoyi.system.vo.ProjectMainListVO; import com.ruoyi.system.vo.ProjectPhaseListVO; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.List; /** *

* 项目主表 服务实现类 *

* * @author WuGuanFengYue * @since 2025-10-16 */ @Service public class ProjectMainServiceImpl extends ServiceImpl implements ProjectMainService { @Override public PageInfo pageList(ProjectMainListQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageList(query, pageInfo); pageInfo.setRecords(list); return pageInfo; } public static void main(String[] args) { LocalDate date1 = LocalDate.of(2023, 1, 10); LocalDate date2 = LocalDate.of(2023, 1, 1); long daysBetween = ChronoUnit.DAYS.between(date1, date2); System.out.println(daysBetween); // 输出: 9 } @Override public PageInfo pageListPhase(ProjectPhaseListQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageListPhase(query, pageInfo); for (ProjectPhaseListVO projectPhaseListVO : list) { LocalDate createTime = projectPhaseListVO.getCreateTime().toLocalDate(); LocalDate settleTime = projectPhaseListVO.getSettleTime(); if (createTime.isAfter(settleTime)){ projectPhaseListVO.setSettleTimeRange(0); }else{ long daysBetween = ChronoUnit.DAYS.between(createTime, settleTime)+1; projectPhaseListVO.setSettleTimeRange((int) daysBetween); } // 根据settleTime 赋值warningStatus,红灯:办结时限前一周橙灯:办结时限前15天 黄灯:办结时限前30天 绿灯:正常状态,未到办结事项预警时限或已办结 if (StringUtils.hasLength(projectPhaseListVO.getFileUrl())){ projectPhaseListVO.setWarningStatus(1); }else{ if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(7))) { projectPhaseListVO.setWarningStatus(4); } else if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(15))) { projectPhaseListVO.setWarningStatus(3); } else if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(30))) { projectPhaseListVO.setWarningStatus(2); } else { projectPhaseListVO.setWarningStatus(1); } } } pageInfo.setRecords(list); return pageInfo; } }