From 01ba9562704d7d910899b481a27952061b40d0bb Mon Sep 17 00:00:00 2001 From: zty <1048209592@qq.com> Date: Mon, 8 Jul 2024 16:31:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=99=A8=E6=A0=B9=E6=8D=AE=E7=BC=96=E5=8F=B7/?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E8=8E=B7=E5=8F=96=E9=A1=B9=E7=9B=AEid?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=20=E6=9F=A5=E8=AF=A2=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=202.=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=A2=84=E7=AE=97=E6=89=A7=E8=A1=8C=E7=8E=87?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E5=91=A8=E6=8A=A5=E4=B8=89=E5=B1=82=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/xqopen/kehui/Api.java | 5 +- .../mapper/ProjectBudgetImplementDao.java | 23 ++++ .../xml/ProjectBudgetImplementMapper.xml | 32 +++++ .../ProjectBudgetImplementController.java | 127 ++++++++++++++++++ .../action/ProjectWeeklyController.java | 3 + .../api/ProjectBudgetImplementApi.java | 34 +++++ .../dto/ProjectBudgetImplementAddDto.java | 10 ++ .../dto/ProjectBudgetImplementFindReq.java | 10 ++ .../entity/ProjectBudgetImplement.java | 69 ++++++++++ .../IProjectBudgetImplementService.java | 18 +++ .../IProjectBudgetImplementServiceImpl.java | 29 ++++ .../xqopen/kehui/util/ResultListReqUtil.java | 17 +++ 12 files changed, 375 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/xqopen/kehui/mapper/ProjectBudgetImplementDao.java create mode 100644 src/main/java/com/xqopen/kehui/mapper/xml/ProjectBudgetImplementMapper.xml create mode 100644 src/main/java/com/xqopen/kehui/project/action/ProjectBudgetImplementController.java create mode 100644 src/main/java/com/xqopen/kehui/project/api/ProjectBudgetImplementApi.java create mode 100644 src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementAddDto.java create mode 100644 src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementFindReq.java create mode 100644 src/main/java/com/xqopen/kehui/project/entity/ProjectBudgetImplement.java create mode 100644 src/main/java/com/xqopen/kehui/project/service/IProjectBudgetImplementService.java create mode 100644 src/main/java/com/xqopen/kehui/project/service/impl/IProjectBudgetImplementServiceImpl.java create mode 100644 src/main/java/com/xqopen/kehui/util/ResultListReqUtil.java diff --git a/src/main/java/com/xqopen/kehui/Api.java b/src/main/java/com/xqopen/kehui/Api.java index 666a115..7a45035 100644 --- a/src/main/java/com/xqopen/kehui/Api.java +++ b/src/main/java/com/xqopen/kehui/Api.java @@ -372,8 +372,9 @@ public class Api { */ public static final String PROJECT_WEEKLY = PROJECT_PREFIX + "/weekly"; public static final String PROJECT_WEEKLY_ADD = PROJECT_WEEKLY + "/add"; - - + public static final String PROJECT_WEEKLY_BUDGET = PROJECT_PREFIX + "/weekly/budget"; + public static final String PROJECT_WEEKLY_BUDGET_ADD = PROJECT_WEEKLY_BUDGET + "/add"; + public static final String PROJECT_WEEKLY_BUDGET_DEL = PROJECT_WEEKLY_BUDGET + "/del"; public static final String PROJECT_INFO_GETPROJECTS = PROJECT_INFO; diff --git a/src/main/java/com/xqopen/kehui/mapper/ProjectBudgetImplementDao.java b/src/main/java/com/xqopen/kehui/mapper/ProjectBudgetImplementDao.java new file mode 100644 index 0000000..0b7dbc8 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/mapper/ProjectBudgetImplementDao.java @@ -0,0 +1,23 @@ +package com.xqopen.kehui.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementAddDto; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementFindReq; +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** +* @author admin +* @description 针对表【project_budget_implement】的数据库操作Mapper +* @createDate 2024-07-08 10:20:02 +* @Entity .domain.ProjectBudgetImplement +*/ +@Repository +public interface ProjectBudgetImplementDao extends BaseMapper { + + List getList(Page page, @Param("projectBudgetImplementFindReq") ProjectBudgetImplementFindReq projectBudgetImplementFindReq); +} diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectBudgetImplementMapper.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectBudgetImplementMapper.xml new file mode 100644 index 0000000..fda8106 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectBudgetImplementMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + id_,project_id,budget, + execute,implementationrate,created_by, + created_at,updated_by,updated_at + + + diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectBudgetImplementController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectBudgetImplementController.java new file mode 100644 index 0000000..14740e9 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectBudgetImplementController.java @@ -0,0 +1,127 @@ +package com.xqopen.kehui.project.action; + +import com.alibaba.fastjson.support.spring.FastJsonJsonView; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.xqopen.kehui.Api; +import com.xqopen.kehui.exception.ErrorCode; +import com.xqopen.kehui.exception.XQException; +import com.xqopen.kehui.project.api.ProjectBudgetImplementApi; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementAddDto; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementFindReq; +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; +import com.xqopen.kehui.project.entity.ProjectInfo; +import com.xqopen.kehui.project.service.IProjectBudgetImplementService; +import com.xqopen.kehui.project.service.IProjectInfoService; +import com.xqopen.kehui.util.ApiResponse; +import com.xqopen.kehui.util.ResultListReqUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.sql.Timestamp; +import java.util.List; + +@Slf4j +@RestController +@RequestMapping(produces = FastJsonJsonView.DEFAULT_CONTENT_TYPE) +public class ProjectBudgetImplementController implements ProjectBudgetImplementApi { + @Autowired + private IProjectBudgetImplementService projectBudgetImplementService; + @Autowired + private IProjectInfoService projectInfoService; + + @PostMapping(Api.PROJECT_WEEKLY_BUDGET) + @Override + public String list(@RequestHeader Long userId,@RequestBody ProjectBudgetImplementFindReq projectBudgetImplementFindReq) throws XQException { + try { + Page page = new Page<>(projectBudgetImplementFindReq.getPageNo(), projectBudgetImplementFindReq.getPageSize()); + List list = projectBudgetImplementService.getList(page, projectBudgetImplementFindReq); + ResultListReqUtil listReq = new ResultListReqUtil(); + listReq.setLs(list); + listReq.setTotal(page.getTotal()); + listReq.setPages(page.getPages()); + return ApiResponse.fillSuccess(listReq); + } catch (Exception e) { + log.error("ProjectBudgetImplementController.list", e); + throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null); + } + } + + @PostMapping(Api.PROJECT_WEEKLY_BUDGET_ADD) + @Override + public String add(@RequestHeader Long userId,@RequestBody ProjectBudgetImplementAddDto projectBudgetImplement) throws XQException { + try { + if (!ObjectUtils.isEmpty(projectBudgetImplement)) { + String projectNo = projectBudgetImplement.getProjectNo(); + String projectName = projectBudgetImplement.getProjectName(); + if (!StringUtils.isEmpty(projectNo)) { + if (!StringUtils.isEmpty(projectName)) { + ProjectInfo project = getProject(projectNo, projectName); + if (!ObjectUtils.isEmpty(project)) { + projectBudgetImplement.setProjectId(String.valueOf(project.getId())); + verification(projectBudgetImplement); + if (!StringUtils.isEmpty(projectBudgetImplement.getId())) { + projectBudgetImplement.setUpdatedBy(String.valueOf(userId)); + projectBudgetImplement.setUpdatedAt(new Timestamp(System.currentTimeMillis())); + projectBudgetImplementService.updateById(projectBudgetImplement); + } else { + projectBudgetImplement.setCreatedBy(String.valueOf(userId)); + projectBudgetImplement.setCreatedAt(new Timestamp(System.currentTimeMillis())); + projectBudgetImplementService.insert(projectBudgetImplement); + } + return ApiResponse.fillSuccess("操作成功!"); + }else ApiResponse.fillFail("你输入的项目编号/名称不存在!"); + } + } + + } + } catch (Exception e) { + log.error("ProjectBudgetImplementController.add", e); + throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null); + } + return ApiResponse.fillFail("操作失败!"); + } + + @Override + @DeleteMapping(Api.PROJECT_WEEKLY_BUDGET_DEL) + public String delete(@RequestHeader Long user,@RequestParam Long id) throws XQException { + try { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("is_deleted", "1"); + ProjectBudgetImplement projectBudgetImplement = new ProjectBudgetImplement(); + projectBudgetImplement.setId(String.valueOf(id)); + projectBudgetImplementService.update(projectBudgetImplement, wrapper); + return ApiResponse.fillSuccess("操作成功!"); + } catch (Exception e) { + log.error("ProjectBudgetImplementController.delete", e); + throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null); + } + } + + // 校验 + private void verification(ProjectBudgetImplement projectBudgetImplement) throws XQException { + if (StringUtils.isEmpty(projectBudgetImplement.getBudget())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTNAME_EMPTY_ERROR, null); + } + if (StringUtils.isEmpty(projectBudgetImplement.getExecute())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTCATEGORY_EMPTY_ERROR, null); + } + if (StringUtils.isEmpty(projectBudgetImplement.getImplementationRate())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTSTEP_EMPTY_ERROR, null); + } + if (StringUtils.isEmpty(projectBudgetImplement.getProjectId())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTSTEP_EMPTY_ERROR, null); + } + } + + private ProjectInfo getProject(String projectNo, String projectName) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("project_name", projectName); + wrapper.eq("project_no", projectNo); + wrapper.eq("is_deleted", false); + return projectInfoService.selectOne(wrapper); + } +} diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java index 5b0d9c1..96d3cb6 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java @@ -99,6 +99,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi { String projectName = ext.get("projectName").toString(); if (!StringUtils.isEmpty(projectNo)) wrapper.eq("project_no", projectNo); if (!StringUtils.isEmpty(projectName)) wrapper.eq("project_name", projectName); + wrapper.eq("is_deleted",false); wrapper.eq("project_category", "init"); return projectInfoService.selectOne(wrapper); } @@ -122,6 +123,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi { projectWeekly.setIsDeleted("0"); projectWeekly.setUserId(String.valueOf(userId)); projectWeekly.setWeeklyType("0"); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly.setId(projectWeeklyFindReq.getId()); List list = projectWeeklyService.getList(page, projectWeekly); //判断当前账号是否是项目专员/负责人 @@ -140,6 +142,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi { projectWeekly1.setIsDeleted("0"); projectWeekly1.setWeeklyType("0"); projectWeekly1.setProjectId(weekly.getProjectId()); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly1.setId(projectWeeklyFindReq.getId()); list.addAll(projectWeeklyService.getList(page, projectWeekly1)); } diff --git a/src/main/java/com/xqopen/kehui/project/api/ProjectBudgetImplementApi.java b/src/main/java/com/xqopen/kehui/project/api/ProjectBudgetImplementApi.java new file mode 100644 index 0000000..80bf740 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/api/ProjectBudgetImplementApi.java @@ -0,0 +1,34 @@ +package com.xqopen.kehui.project.api; + +import com.xqopen.kehui.exception.XQException; +import com.xqopen.kehui.project.dto.ProjectAchievementResp; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementAddDto; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementFindReq; +import com.xqopen.kehui.util.ApiResponse; +import com.xqopen.kehui.util.Constants; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +@Api(value = "项目预算执行率管理", tags = Constants.MODULE_PROJECT, description = "项目模块") +public interface ProjectBudgetImplementApi { + @ApiOperation(value = "获取项目预算执行率列表", notes = "获取项目预算执行率列表", response = ProjectAchievementResp.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + String list(Long userId, ProjectBudgetImplementFindReq projectBudgetImplementFindReq) throws XQException; + @ApiOperation(value = "新增项目预算执行率监控周报", notes = "新增项目预算执行率监控周报", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + String add(Long userId, ProjectBudgetImplementAddDto projectBudgetImplement) throws XQException; + @ApiOperation(value = "删除项目预算执行率监控周报", notes = "删除项目预算执行率监控周报", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + String delete(Long user,Long id) throws XQException; +} diff --git a/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementAddDto.java b/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementAddDto.java new file mode 100644 index 0000000..df609a8 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementAddDto.java @@ -0,0 +1,10 @@ +package com.xqopen.kehui.project.dto; + +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; +import lombok.Data; + +@Data +public class ProjectBudgetImplementAddDto extends ProjectBudgetImplement { + private String projectNo; + private String projectName; +} diff --git a/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementFindReq.java b/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementFindReq.java new file mode 100644 index 0000000..54457f2 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/dto/ProjectBudgetImplementFindReq.java @@ -0,0 +1,10 @@ +package com.xqopen.kehui.project.dto; + +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; +import lombok.Data; + +@Data +public class ProjectBudgetImplementFindReq extends ProjectBudgetImplement { + private Integer pageNo; + private Integer pageSize; +} diff --git a/src/main/java/com/xqopen/kehui/project/entity/ProjectBudgetImplement.java b/src/main/java/com/xqopen/kehui/project/entity/ProjectBudgetImplement.java new file mode 100644 index 0000000..2896e50 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/entity/ProjectBudgetImplement.java @@ -0,0 +1,69 @@ +package com.xqopen.kehui.project.entity; + +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.io.Serializable; + +/** + * + * @TableName project_budget_implement + */ +@TableName("project_budget_implement") +@Data +public class ProjectBudgetImplement implements Serializable { + /** + * + */ + @TableId(value = "id_", type = IdType.AUTO) + private String id; + + /** + * + */ + private String projectId; + + /** + * + */ + private String budget; + + /** + * + */ + private String execute; + + /** + * + */ + private String implementationRate; + + /** + * + */ + private String isDeleted; + private String createdBy; + + /** + * + */ + private java.sql.Timestamp createdAt; + + /** + * + */ + private String updatedBy; + + /** + * + */ + private java.sql.Timestamp updatedAt; + + private static final long serialVersionUID = 1L; + + + + +} \ No newline at end of file diff --git a/src/main/java/com/xqopen/kehui/project/service/IProjectBudgetImplementService.java b/src/main/java/com/xqopen/kehui/project/service/IProjectBudgetImplementService.java new file mode 100644 index 0000000..f671a53 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/service/IProjectBudgetImplementService.java @@ -0,0 +1,18 @@ +package com.xqopen.kehui.project.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementAddDto; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementFindReq; +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; + +import java.util.List; + +/** +* @author admin +* @description 针对表【project_budget_implement】的数据库操作Service +* @createDate 2024-07-08 10:20:02 +*/ +public interface IProjectBudgetImplementService extends IService { + List getList(Page page, ProjectBudgetImplementFindReq projectBudgetImplementFindReq); +} diff --git a/src/main/java/com/xqopen/kehui/project/service/impl/IProjectBudgetImplementServiceImpl.java b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectBudgetImplementServiceImpl.java new file mode 100644 index 0000000..dfa9eae --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectBudgetImplementServiceImpl.java @@ -0,0 +1,29 @@ +package com.xqopen.kehui.project.service.impl; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.xqopen.kehui.mapper.ProjectBudgetImplementDao; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementAddDto; +import com.xqopen.kehui.project.dto.ProjectBudgetImplementFindReq; +import com.xqopen.kehui.project.entity.ProjectBudgetImplement; +import com.xqopen.kehui.project.service.IProjectBudgetImplementService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** +* @author admin +* @description 针对表【project_budget_implement】的数据库操作Service实现 +* @createDate 2024-07-08 10:20:02 +*/ +@Service +public class IProjectBudgetImplementServiceImpl extends ServiceImpl +implements IProjectBudgetImplementService { + @Autowired + private ProjectBudgetImplementDao budgetImplementDao; + @Override + public List getList(Page page, ProjectBudgetImplementFindReq projectBudgetImplementFindReq) { + return budgetImplementDao.getList(page,projectBudgetImplementFindReq); + } +} diff --git a/src/main/java/com/xqopen/kehui/util/ResultListReqUtil.java b/src/main/java/com/xqopen/kehui/util/ResultListReqUtil.java new file mode 100644 index 0000000..18209f4 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/util/ResultListReqUtil.java @@ -0,0 +1,17 @@ +package com.xqopen.kehui.util; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +@Data +public class ResultListReqUtil{ + @ApiModelProperty(value = "项目列表", required = true, position = 3) + private List ls; + + @ApiModelProperty(value = "总记录数", required = true, position = 3) + private long total; + + @ApiModelProperty(value = "总页数", required = true, position = 3) + private int pages; +}