diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java new file mode 100644 index 0000000..1a39fed --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java @@ -0,0 +1,38 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; + +import java.time.LocalDate; + +/** + * @author 阳勇权 + * @since 2022/6/29 16:04 + */ +@Data +public class Project { + @TableId(type = IdType.AUTO) + private Integer projectId; + private String projectName; + private LocalDate projectStartTime; + private LocalDate projectOnlineTime; + private LocalDate projectFirstTestTime; + private LocalDate projectFinalTestTime; + private LocalDate projectEndTime; + private String projectAbbreviation; + private Integer projectClassId; + private Integer projectSubclassId; + private String projectImportance; + private Long contractAmount; + private Short expectedCompletion; + private Short financialCode; + private String projectDepartment; + private String projectArea; + private String projectCompany; + private String projectDescription; + private Boolean completed; + @TableLogic + private Boolean deleted; +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectType.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectType.java new file mode 100644 index 0000000..cd91b82 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectType.java @@ -0,0 +1,19 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @author 阳勇权 + * @since 2022/6/29 20:54 + */ +@Data +@TableName("project_type") +public class ProjectType { + @TableId(type = IdType.AUTO) + Integer projectClassId; + String projectClassName; + Integer classFatherId; +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ResultProject.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ResultProject.java new file mode 100644 index 0000000..1e0f7a1 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ResultProject.java @@ -0,0 +1,24 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @author 阳勇权 + * @since 2022/6/29 20:45 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +public class ResultProject { + Integer projectId; + String projectName; + Long contractAmount; + String projectImportance; + String projectClassName; + String projectSubClassName; + // 带加的进度 Double projectProcess; +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java new file mode 100644 index 0000000..47029a6 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java @@ -0,0 +1,34 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.mapper; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.*; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.List; + +/** + * @author 阳勇权 + * @since 2022/6/29 17:07 + */ +public interface ProjectMapper extends BaseMapper { + @Select("SELECT COUNT(*) FROM project WHERE project_id IN " + + "(SELECT DISTINCT project_id FROM project_group WHERE staff_id = #{id})") + Long getProjectTotalNum(@Param("id") Integer staffId); + @Select("SELECT * FROM project WHERE project_id IN " + + "(SELECT DISTINCT project_id FROM project_group WHERE staff_id = #{id})") + @Results({ + @Result(column = "project_id", property = "projectId", id = true), + @Result(column = "project_name", property = "projectName"), + @Result(column = "contract_amount", property = "contractAmount"), + @Result(column = "project_importance", property = "projectImportance"), + @Result(column = "{id = project_class_id}", property = "projectClassName", javaType = String.class, + one = @One(select = "cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectTypeMapper.findClassNameById")), + @Result(column = "{id = project_subclass_id}", property = "projectSubClassName", javaType = String.class, + one = @One(select = "cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectTypeMapper.findClassNameById")) + }) + Page findMyProject(Page pg, @Param("id") Integer staffId); +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectTypeMapper.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectTypeMapper.java new file mode 100644 index 0000000..a4dcee0 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectTypeMapper.java @@ -0,0 +1,15 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.mapper; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectType; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + * @author 阳勇权 + * @since 2022/6/29 20:56 + */ +public interface ProjectTypeMapper extends BaseMapper { + @Select("SELECT project_class_name FROM project_type WHERE project_class_id = #{id}") + String findClassNameById(@Param("id") Integer projectClassId); +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java new file mode 100644 index 0000000..7e256ba --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java @@ -0,0 +1,19 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.service; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; +import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.response.ResponseMap; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @author 阳勇权 + * @since 2022/6/29 17:08 + */ +public interface IProjectService extends IService { + Page getOnePageProject(String toke) throws TokenException; + Long getProjectTotalNum(String token) throws TokenException; + Boolean setProjectCompleted(String token, Project project) throws TokenException; + Boolean makeANewProject(Project project) throws TokenException; +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..284e8f4 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectServiceImpl.java @@ -0,0 +1,49 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; +import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException; +import cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectMapper; +import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectService; +import cn.edu.hfut.rmdjzz.projectmanagement.utils.TokenUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + +import java.sql.Wrapper; + +/** + * @author 阳勇权 + * @since 2022/6/29 19:36 + */ +public class ProjectServiceImpl extends ServiceImpl implements IProjectService { + @Autowired + TokenUtils tokenUtils; + + @Override + public Page getOnePageProject(String token) throws TokenException { + Integer staffId = tokenUtils.getStaffId(token); + return null; + } + + @Override + public Long getProjectTotalNum(String token) throws TokenException{ + Integer staffId = tokenUtils.getStaffId(token); + return baseMapper.getProjectTotalNum(staffId); + } + + @Override + public Boolean setProjectCompleted(String token, Project project) throws TokenException{ + Integer staffId = tokenUtils.getStaffId(token); + Project targetProject = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Project::getProjectId, project.getProjectId())); + + return null; + } + + @Override + public Boolean makeANewProject(Project project) throws TokenException{ + + return null; + } +}