package com.usky.iot.service; import com.usky.common.core.bean.CommonPage; import com.usky.iot.domain.PmProject; import com.usky.common.mybatis.core.CrudService; import com.usky.iot.service.vo.PmProjectWorkTimeTwoVo; import com.usky.iot.service.vo.PmUsersProjectWorkTimeVO; import com.usky.system.domain.SysUser; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; import java.util.Map; /** *

* 项目表 服务类 *

* * @author fu * @since 2024-05-20 */ public interface PmProjectService extends CrudService { /** * 新增、编辑项目 * * @param project */ void addProject(PmProject project); /** * 删除 * * @param projectId 项目id */ void delProject(Integer projectId); /** * 查询当前租户所有项目 * * @return */ List queryProject(); /** * 分页 * * @param projectName 项目名 * @param projectType 类型 * @param projectStatus 状态 * @param projectAscription 项目归属类型 * @param pageNum 页码 * @param pageSize 页大小 * @return */ CommonPage projectList(String projectName, Integer projectType, Integer projectStatus, Integer projectAscription, Integer pageNum, Integer pageSize, Integer projectId); /** * 查询项目名 * * @param projectIds * @return */ List projectName(List projectIds); /** * 所有、我负责、我参与项目数量统计 * * @return */ Map sum(); /** * 人员查询(项目负责人、成员) * * @return */ List> projectUsers(Long userId); /** * 所有项目id和名称 * * @return */ List> projectIdName(Integer projectId); /** * 人员或项目下拉 * * @param identifying 标识:1,返回人员userId和nickName;2:返回ProjectId和ProjectName * @return */ List> userOrProject(Integer identifying); /** * 退出项目 * * @param projectId */ void exitProject(Integer projectId); /** * 项目概览-项目-工时统计 * * @param projectId * @param startDate * @param endDate * @return */ PmProjectWorkTimeTwoVo projectWorkTime(Integer projectId, String startDate, String endDate); /** * 项目概览-人员-项目工时统计 * * @param projectId * @return */ PmUsersProjectWorkTimeVO usersProjectWorkTime(Integer projectId, String startDate, String endDate); }