From 0677f9a81d258964782a8ebad5b2a3caf078e463 Mon Sep 17 00:00:00 2001 From: "yang.yongquan" <3395816735@qq.com> Date: Thu, 30 Jun 2022 21:39:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86project=5Fman=5F?= =?UTF-8?q?month=E7=9A=84=E6=98=A0=E5=B0=84=20=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?Id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java | 2 ++ .../hfut/rmdjzz/projectmanagement/entity/ResultProject.java | 1 + .../hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java | 4 +++- .../projectmanagement/service/impl/ProjectServiceImpl.java | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) 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 index 3deb310..5d8cc88 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import org.apache.poi.hpsf.Decimal; import java.time.LocalDate; @@ -38,4 +39,5 @@ public class Project { @TableLogic private Boolean isDeleted; private Integer projectCreator; + private Decimal projectManMonth; } 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 index b6bf32f..5b26095 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ResultProject.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ResultProject.java @@ -17,6 +17,7 @@ import java.time.LocalDate; public class ResultProject { Integer projectId; String projectName; + Integer projectCreator; Long contractAmount; String projectImportance; String projectClassName; 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 index 6845739..5cdf9eb 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectMapper.java @@ -30,6 +30,7 @@ public interface ProjectMapper extends BaseMapper { project_name, contract_amount, project_importance, + project_creator, pt1.project_class_name as project_class_name, pt2.project_class_name as project_subclass_name, is_completed, @@ -50,7 +51,8 @@ public interface ProjectMapper extends BaseMapper { @Result(column = "project_class_name", property = "projectClassName"), @Result(column = "is_completed", property = "IsCompleted"), @Result(column = "is_deleted", property = "IsDeleted"), - @Result(column = "project_close_time", property = "projectCloseTime") + @Result(column = "project_close_time", property = "projectCloseTime"), + @Result(column = "project_creator", property = "projectCreator") }) IPage findMyProject(IPage pg, @Param("id") Integer staff_id, @Param(Constants.WRAPPER) Wrapper wrapper); } 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 index eb46a9d..f68d09b 100644 --- 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 @@ -40,7 +40,7 @@ public class ProjectServiceImpl extends ServiceImpl impl Integer pageSize, Map params ) throws TokenException { - Integer staffId = 2; + Integer staffId = TokenUtils.getStaffId(token); IPage page = new Page<>(pageCurrent, pageSize); IPage userPage = baseMapper.findMyProject(page, staffId, WrapperUtils.allEqAndTimeIntervalQueryWrapper(params, false)); return (Page) userPage; From fa5ddab6b40b93916e44f96b3e39a71b38454e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Thu, 30 Jun 2022 21:48:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E9=A1=B9=E7=9B=AE=E5=92=8C=E7=9B=B8=E5=85=B3=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectController.java | 7 +++++ .../projectmanagement/entity/Project.java | 4 +-- .../entity/ProjectGroup.java | 17 ++++++++++ .../mapper/ProjectGroupMapper.java | 13 ++++++++ .../service/IProjectGroupService.java | 14 +++++++++ .../service/IProjectService.java | 2 +- .../service/impl/ProjectGroupServiceImpl.java | 24 ++++++++++++++ .../service/impl/ProjectServiceImpl.java | 31 ++++++++++++++++--- 8 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectGroup.java create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java index 9ebdf2e..8dd8e36 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/controller/ProjectController.java @@ -55,4 +55,11 @@ public class ProjectController { projectServiceImpl.setProjectCompleted(token, targetProjectId); return ResponseMap.ofSuccess("操作成功"); } + + @SneakyThrows + @PostMapping("/create") + public ResponseMap createProject(@RequestHeader("Token") String token,@RequestBody Project project){ + projectServiceImpl.createProject(token, project); + return ResponseMap.ofSuccess("操作成功"); + } } 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 index 5d8cc88..935806b 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java @@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.poi.hpsf.Decimal; +import java.math.BigDecimal; import java.time.LocalDate; /** @@ -36,8 +36,8 @@ public class Project { private String projectCompany; private String projectDescription; private Boolean IsCompleted; + private BigDecimal projectManMonth; @TableLogic private Boolean isDeleted; private Integer projectCreator; - private Decimal projectManMonth; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectGroup.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectGroup.java new file mode 100644 index 0000000..73abb2d --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/ProjectGroup.java @@ -0,0 +1,17 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +/** + * @author 张韬 + * created at 2022/6/30 21:31 + */ +@Data +public class ProjectGroup { + @TableId(type = IdType.AUTO) + Integer staffId; + Integer projectId; + String projectStaffPosition; +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java new file mode 100644 index 0000000..0d8d3ee --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/mapper/ProjectGroupMapper.java @@ -0,0 +1,13 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.mapper; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author 张韬 + * created at 2022/6/30 21:34 + */ +public interface ProjectGroupMapper extends BaseMapper { + +} diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java new file mode 100644 index 0000000..43f4c62 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectGroupService.java @@ -0,0 +1,14 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.service; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @author 张韬 + * created at 2022/6/30 21:36 + */ +public interface IProjectGroupService extends IService{ + public Boolean addCreator(Integer projectId,Integer staffId); + +} \ No newline at end of file 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 index 80b8eec..2d93382 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/IProjectService.java @@ -22,5 +22,5 @@ public interface IProjectService extends IService { Boolean setProjectCompleted(String token, Integer projectId) throws TokenException, BadRequestException; - Boolean makeANewProject(Project project) throws TokenException; + Boolean createProject(String token,Project project) throws TokenException, BadRequestException; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java new file mode 100644 index 0000000..d1a7476 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/ProjectGroupServiceImpl.java @@ -0,0 +1,24 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; + +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; +import cn.edu.hfut.rmdjzz.projectmanagement.mapper.ProjectGroupMapper; +import cn.edu.hfut.rmdjzz.projectmanagement.service.IProjectGroupService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @author 张韬 + * created at 2022/6/30 21:38 + */ +@Service +public class ProjectGroupServiceImpl extends ServiceImpl implements IProjectGroupService { + public Boolean addCreator(Integer projectId,Integer staffId){ + if(projectId==null||staffId==null) + return false; + ProjectGroup projectGroup=new ProjectGroup(); + projectGroup.setProjectId(projectId); + projectGroup.setStaffId(staffId); + projectGroup.setProjectStaffPosition("负责人"); + return baseMapper.insert(projectGroup) == 1; + } +} 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 index f68d09b..3d8ec63 100644 --- 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 @@ -1,6 +1,7 @@ package cn.edu.hfut.rmdjzz.projectmanagement.service.impl; import cn.edu.hfut.rmdjzz.projectmanagement.entity.Project; +import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup; import cn.edu.hfut.rmdjzz.projectmanagement.entity.ResultProject; import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException; import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException; @@ -13,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.swagger.models.auth.In; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; @@ -26,7 +28,8 @@ import java.util.Objects; */ @Service public class ProjectServiceImpl extends ServiceImpl implements IProjectService { - + @Autowired + private ProjectGroupServiceImpl projectGroupServiceImpl; @Override public Long getAllProjectOfStaff(String token) throws TokenException { Integer staffId = TokenUtils.getStaffId(token); @@ -66,8 +69,28 @@ public class ProjectServiceImpl extends ServiceImpl impl } @Override - public Boolean makeANewProject(Project project) throws TokenException { - - return null; + public Boolean createProject(String token,Project project) throws TokenException, BadRequestException { + project.setProjectId(null); + project.setIsCompleted(false); + project.setProjectCreator(TokenUtils.getStaffId(token)); + project.setProjectCloseTime(null); + if(project.getExpectedCompletion()==null){ + project.setExpectedCompletion((short) 100); + } + else if(project.getExpectedCompletion()<0||project.getExpectedCompletion()>100|| + project.getProjectStartTime()==null||project.getProjectEndTime()==null|| + project.getProjectStartTime().isAfter(project.getProjectEndTime()) + ){ + throw new BadRequestException("参数错误"); + } + try{ + if(baseMapper.insert(project)==1){ + return projectGroupServiceImpl.addCreator(project.getProjectId(),TokenUtils.getStaffId(token)); + } + }catch(Exception e){ + System.out.println(e); + throw new BadRequestException("新建失败"); + } + return false; } }