New file |
| | |
| | | package com.ycl.controller; |
| | | |
| | | import com.ycl.common.base.Result; |
| | | import com.ycl.common.group.Add; |
| | | import com.ycl.common.group.Update; |
| | | import com.ycl.domain.form.ProjectInfoForm; |
| | | import com.ycl.domain.query.ProjectInfoQuery; |
| | | import com.ycl.service.ProjectInfoService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 项目管理基础信息表 前端控制器 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Validated |
| | | @RequiredArgsConstructor |
| | | @Api(value = "项目管理基础信息表", tags = "项目管理基础信息表管理") |
| | | @RestController |
| | | @RequestMapping("/api/project-info") |
| | | public class ProjectInfoController { |
| | | |
| | | private final ProjectInfoService projectInfoService; |
| | | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加", notes = "添加") |
| | | @PreAuthorize("hasAuthority('projectInfo:add')") |
| | | public Result add(@RequestBody @Validated(Add.class) ProjectInfoForm form) { |
| | | return projectInfoService.add(form); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation(value = "修改", notes = "修改") |
| | | @PreAuthorize("hasAuthority('projectInfo:edit')") |
| | | public Result update(@RequestBody @Validated(Update.class) ProjectInfoForm form) { |
| | | return projectInfoService.update(form); |
| | | } |
| | | |
| | | @DeleteMapping("/{id}") |
| | | @ApiOperation(value = "ID删除", notes = "ID删除") |
| | | @PreAuthorize("hasAuthority('projectInfo:del')") |
| | | public Result removeById(@PathVariable("id") String id) { |
| | | return projectInfoService.removeById(id); |
| | | } |
| | | |
| | | @DeleteMapping("/batch") |
| | | @ApiOperation(value = "批量删除", notes = "批量删除") |
| | | @PreAuthorize("hasAuthority('projectInfo:del:batch')") |
| | | public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { |
| | | return projectInfoService.remove(ids); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @ApiOperation(value = "分页", notes = "分页") |
| | | @PreAuthorize("hasAuthority('projectInfo:page')") |
| | | public Result page(ProjectInfoQuery query) { |
| | | return projectInfoService.page(query); |
| | | } |
| | | |
| | | @GetMapping("/{id}") |
| | | @ApiOperation(value = "详情", notes = "详情") |
| | | @PreAuthorize("hasAuthority('projectInfo:detail')") |
| | | public Result detail(@PathVariable("id") Integer id) { |
| | | return projectInfoService.detail(id); |
| | | } |
| | | |
| | | @GetMapping("/list") |
| | | @PreAuthorize("hasAuthority('projectInfo:list')") |
| | | @ApiOperation(value = "列表", notes = "列表") |
| | | public Result list() { |
| | | return projectInfoService.all(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.ycl.domain.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.ycl.system.domain.base.AbsEntity; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * 项目管理基础信息表 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Data |
| | | @TableName("t_project_info") |
| | | public class ProjectInfo extends AbsEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableField("project_name") |
| | | /** 项目名称 */ |
| | | private String projectName; |
| | | |
| | | @TableField("project_code") |
| | | /** 项目代码 */ |
| | | private String projectCode; |
| | | |
| | | @TableField("content") |
| | | /** 建设内容 */ |
| | | private String content; |
| | | |
| | | @TableField("project_type") |
| | | /** 项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他) */ |
| | | private String projectType; |
| | | |
| | | @TableField("project_status") |
| | | /** 项目状态 (0未开工,1已开工,2已竣工,3暂停) */ |
| | | private String projectStatus; |
| | | |
| | | @TableField("fund_type") |
| | | /** 资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债) */ |
| | | private String fundType; |
| | | |
| | | @TableField("invest_type") |
| | | /** 投资类别(0企业投资,1政府投资,2外商投资,3境外投资) */ |
| | | private String investType; |
| | | |
| | | @TableField("project_phase") |
| | | /** 项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段) */ |
| | | private String projectPhase; |
| | | |
| | | @TableField("tag") |
| | | /** 标签 */ |
| | | private String tag; |
| | | |
| | | @TableField("competent_department") |
| | | /** 主管部门(对应审批部门id) */ |
| | | private Integer competentDepartment; |
| | | |
| | | @TableField("area_code") |
| | | /** 行政区域 */ |
| | | private String areaCode; |
| | | |
| | | @TableField("management_centralization") |
| | | /** 管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资) */ |
| | | private String managementCentralization; |
| | | |
| | | @TableField("project_approval_type") |
| | | /** 项目审批类型 */ |
| | | private String projectApprovalType; |
| | | |
| | | @TableField("investment_catalogue") |
| | | /** 投资目录(?) */ |
| | | private String investmentCatalogue; |
| | | |
| | | @TableField("importance_type") |
| | | /** 重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目) */ |
| | | private String importanceType; |
| | | |
| | | @TableField("year") |
| | | /** 年度投资计划 */ |
| | | private String year; |
| | | |
| | | @TableField("year_invest_amount") |
| | | /** 年度投资金额 */ |
| | | private BigDecimal yearInvestAmount; |
| | | |
| | | @TableField("create_project_time") |
| | | /** 立项时间 */ |
| | | private LocalDateTime createProjectTime; |
| | | |
| | | @TableField("plan_start_time") |
| | | /** 计划开工时间 */ |
| | | private LocalDateTime planStartTime; |
| | | |
| | | @TableField("plan_complete_time") |
| | | /** 计划竣工时间 */ |
| | | private LocalDateTime planCompleteTime; |
| | | |
| | | @TableField("win_unit") |
| | | /** 中标单位 */ |
| | | private String winUnit; |
| | | |
| | | @TableField("win_amount") |
| | | /** 中标金额 */ |
| | | private String winAmount; |
| | | |
| | | @TableField("win_time") |
| | | /** 中标时间 */ |
| | | private LocalDateTime winTime; |
| | | |
| | | @TableField("project_address") |
| | | /** 详细地址 */ |
| | | private String projectAddress; |
| | | |
| | | @TableField("longitude") |
| | | /** 经度 */ |
| | | private String longitude; |
| | | |
| | | @TableField("latitude") |
| | | /** 纬度 */ |
| | | private String latitude; |
| | | |
| | | @TableField("project_owner_unit") |
| | | /** 项目业主单位 */ |
| | | private String projectOwnerUnit; |
| | | |
| | | @TableField("project_contact_person") |
| | | /** 项目联系人 */ |
| | | private String projectContactPerson; |
| | | |
| | | @TableField("contact") |
| | | /** 联系方式 */ |
| | | private String contact; |
| | | |
| | | @TableField("gmt_create_time") |
| | | /** 创建时间 */ |
| | | private LocalDateTime gmtCreateTime; |
| | | |
| | | @TableField("gmt_update_time") |
| | | /** 更新时间 */ |
| | | private LocalDateTime gmtUpdateTime; |
| | | |
| | | @TableField("update_by") |
| | | /** 更新人 */ |
| | | private Long updateBy; |
| | | |
| | | @TableField("create_by") |
| | | /** 创建人 */ |
| | | private Long createBy; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.domain.form; |
| | | |
| | | import com.ycl.common.group.Add; |
| | | import com.ycl.common.group.Update; |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.system.domain.base.AbsForm; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 项目管理基础信息表表单 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "ProjectInfo表单", description = "项目管理基础信息表表单") |
| | | public class ProjectInfoForm extends AbsForm { |
| | | |
| | | @NotBlank(message = "项目名称不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目名称") |
| | | private String projectName; |
| | | |
| | | @NotBlank(message = "项目代码不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目代码") |
| | | private String projectCode; |
| | | |
| | | @NotBlank(message = "建设内容不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("建设内容") |
| | | private String content; |
| | | |
| | | @NotBlank(message = "项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)") |
| | | private String projectType; |
| | | |
| | | @NotBlank(message = "项目状态 (0未开工,1已开工,2已竣工,3暂停)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目状态 (0未开工,1已开工,2已竣工,3暂停)") |
| | | private String projectStatus; |
| | | |
| | | @NotBlank(message = "资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)") |
| | | private String fundType; |
| | | |
| | | @NotBlank(message = "投资类别(0企业投资,1政府投资,2外商投资,3境外投资)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)") |
| | | private String investType; |
| | | |
| | | @NotBlank(message = "项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)") |
| | | private String projectPhase; |
| | | |
| | | @NotBlank(message = "标签不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("标签") |
| | | private String tag; |
| | | |
| | | @NotNull(message = "主管部门(对应审批部门id)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("主管部门(对应审批部门id)") |
| | | private Integer competentDepartment; |
| | | |
| | | @NotBlank(message = "行政区域不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("行政区域") |
| | | private String areaCode; |
| | | |
| | | @NotBlank(message = "管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)") |
| | | private String managementCentralization; |
| | | |
| | | @NotBlank(message = "项目审批类型不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目审批类型") |
| | | private String projectApprovalType; |
| | | |
| | | @NotBlank(message = "投资目录(?)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("投资目录(?)") |
| | | private String investmentCatalogue; |
| | | |
| | | @NotBlank(message = "重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)") |
| | | private String importanceType; |
| | | |
| | | @NotBlank(message = "年度投资计划不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("年度投资计划") |
| | | private String year; |
| | | |
| | | @NotNull(message = "年度投资金额不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("年度投资金额") |
| | | private BigDecimal yearInvestAmount; |
| | | |
| | | @NotNull(message = "立项时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("立项时间") |
| | | private Date createProjectTime; |
| | | |
| | | @NotNull(message = "计划开工时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("计划开工时间") |
| | | private Date planStartTime; |
| | | |
| | | @NotNull(message = "计划竣工时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("计划竣工时间") |
| | | private Date planCompleteTime; |
| | | |
| | | @NotBlank(message = "中标单位不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("中标单位") |
| | | private String winUnit; |
| | | |
| | | @NotBlank(message = "中标金额不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("中标金额") |
| | | private String winAmount; |
| | | |
| | | @NotNull(message = "中标时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("中标时间") |
| | | private Date winTime; |
| | | |
| | | @NotBlank(message = "详细地址不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("详细地址") |
| | | private String projectAddress; |
| | | |
| | | @NotBlank(message = "经度不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("经度") |
| | | private String longitude; |
| | | |
| | | @NotBlank(message = "纬度不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("纬度") |
| | | private String latitude; |
| | | |
| | | @NotBlank(message = "项目业主单位不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目业主单位") |
| | | private String projectOwnerUnit; |
| | | |
| | | @NotBlank(message = "项目联系人不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("项目联系人") |
| | | private String projectContactPerson; |
| | | |
| | | @NotBlank(message = "联系方式不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("联系方式") |
| | | private String contact; |
| | | |
| | | @NotNull(message = "创建时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("创建时间") |
| | | private Date gmtCreateTime; |
| | | |
| | | @NotNull(message = "更新时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("更新时间") |
| | | private Date gmtUpdateTime; |
| | | |
| | | @NotNull(message = "更新人不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("更新人") |
| | | private Long updateBy; |
| | | |
| | | @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("创建人") |
| | | private Long createBy; |
| | | |
| | | public static ProjectInfo getEntityByForm(@NonNull ProjectInfoForm form, ProjectInfo entity) { |
| | | if(entity == null) { |
| | | entity = new ProjectInfo(); |
| | | } |
| | | BeanUtils.copyProperties(form, entity); |
| | | return entity; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.domain.query; |
| | | |
| | | import com.ycl.system.domain.base.AbsQuery; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 项目管理基础信息表查询 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "ProjectInfo查询参数", description = "项目管理基础信息表查询参数") |
| | | public class ProjectInfoQuery extends AbsQuery { |
| | | } |
| | | |
New file |
| | |
| | | package com.ycl.domain.vo; |
| | | |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.system.domain.base.AbsVo; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 项目管理基础信息表展示 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "项目管理基础信息表响应数据", description = "项目管理基础信息表响应数据") |
| | | public class ProjectInfoVO extends AbsVo { |
| | | |
| | | /** 项目名称 */ |
| | | @ApiModelProperty("项目名称") |
| | | private String projectName; |
| | | |
| | | /** 项目代码 */ |
| | | @ApiModelProperty("项目代码") |
| | | private String projectCode; |
| | | |
| | | /** 建设内容 */ |
| | | @ApiModelProperty("建设内容") |
| | | private String content; |
| | | |
| | | /** 项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他) */ |
| | | @ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)") |
| | | private String projectType; |
| | | |
| | | /** 项目状态 (0未开工,1已开工,2已竣工,3暂停) */ |
| | | @ApiModelProperty("项目状态 (0未开工,1已开工,2已竣工,3暂停)") |
| | | private String projectStatus; |
| | | |
| | | /** 资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债) */ |
| | | @ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)") |
| | | private String fundType; |
| | | |
| | | /** 投资类别(0企业投资,1政府投资,2外商投资,3境外投资) */ |
| | | @ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)") |
| | | private String investType; |
| | | |
| | | /** 项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段) */ |
| | | @ApiModelProperty("项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)") |
| | | private String projectPhase; |
| | | |
| | | /** 标签 */ |
| | | @ApiModelProperty("标签") |
| | | private String tag; |
| | | |
| | | /** 主管部门(对应审批部门id) */ |
| | | @ApiModelProperty("主管部门(对应审批部门id)") |
| | | private Integer competentDepartment; |
| | | |
| | | /** 行政区域 */ |
| | | @ApiModelProperty("行政区域") |
| | | private String areaCode; |
| | | |
| | | /** 管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资) */ |
| | | @ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)") |
| | | private String managementCentralization; |
| | | |
| | | /** 项目审批类型 */ |
| | | @ApiModelProperty("项目审批类型") |
| | | private String projectApprovalType; |
| | | |
| | | /** 投资目录(?) */ |
| | | @ApiModelProperty("投资目录(?)") |
| | | private String investmentCatalogue; |
| | | |
| | | /** 重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目) */ |
| | | @ApiModelProperty("重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)") |
| | | private String importanceType; |
| | | |
| | | /** 年度投资计划 */ |
| | | @ApiModelProperty("年度投资计划") |
| | | private String year; |
| | | |
| | | /** 年度投资金额 */ |
| | | @ApiModelProperty("年度投资金额") |
| | | private BigDecimal yearInvestAmount; |
| | | |
| | | /** 立项时间 */ |
| | | @ApiModelProperty("立项时间") |
| | | private Date createProjectTime; |
| | | |
| | | /** 计划开工时间 */ |
| | | @ApiModelProperty("计划开工时间") |
| | | private Date planStartTime; |
| | | |
| | | /** 计划竣工时间 */ |
| | | @ApiModelProperty("计划竣工时间") |
| | | private Date planCompleteTime; |
| | | |
| | | /** 中标单位 */ |
| | | @ApiModelProperty("中标单位") |
| | | private String winUnit; |
| | | |
| | | /** 中标金额 */ |
| | | @ApiModelProperty("中标金额") |
| | | private String winAmount; |
| | | |
| | | /** 中标时间 */ |
| | | @ApiModelProperty("中标时间") |
| | | private Date winTime; |
| | | |
| | | /** 详细地址 */ |
| | | @ApiModelProperty("详细地址") |
| | | private String projectAddress; |
| | | |
| | | /** 经度 */ |
| | | @ApiModelProperty("经度") |
| | | private String longitude; |
| | | |
| | | /** 纬度 */ |
| | | @ApiModelProperty("纬度") |
| | | private String latitude; |
| | | |
| | | /** 项目业主单位 */ |
| | | @ApiModelProperty("项目业主单位") |
| | | private String projectOwnerUnit; |
| | | |
| | | /** 项目联系人 */ |
| | | @ApiModelProperty("项目联系人") |
| | | private String projectContactPerson; |
| | | |
| | | /** 联系方式 */ |
| | | @ApiModelProperty("联系方式") |
| | | private String contact; |
| | | |
| | | /** 创建时间 */ |
| | | @ApiModelProperty("创建时间") |
| | | private Date gmtCreateTime; |
| | | |
| | | /** 更新时间 */ |
| | | @ApiModelProperty("更新时间") |
| | | private Date gmtUpdateTime; |
| | | |
| | | /** 更新人 */ |
| | | @ApiModelProperty("更新人") |
| | | private Long updateBy; |
| | | |
| | | /** 创建人 */ |
| | | @ApiModelProperty("创建人") |
| | | private Long createBy; |
| | | |
| | | public static ProjectInfoVO getVoByEntity(@NonNull ProjectInfo entity, ProjectInfoVO vo) { |
| | | if(vo == null) { |
| | | vo = new ProjectInfoVO(); |
| | | } |
| | | BeanUtils.copyProperties(entity, vo); |
| | | return vo; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog width="35%" :title="dialogTitle" @close="closeDialog" :visible.sync="dialogFormVisible" :destroy-on-close="true" :append-to-body="true" :close-on-click-modal="false"> |
| | | <el-form :model="projectInfoForm" :rules="projectInfoRules" ref="projectInfoForm"> |
| | | <el-form-item label="项目名称" :label-width="formLabelWidth" prop="projectName"> |
| | | <el-input v-model="projectInfoForm.projectName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目代码" :label-width="formLabelWidth" prop="projectCode"> |
| | | <el-input v-model="projectInfoForm.projectCode" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="建设内容" :label-width="formLabelWidth" prop="content"> |
| | | <el-input v-model="projectInfoForm.content" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)" :label-width="formLabelWidth" prop="projectType"> |
| | | <el-input v-model="projectInfoForm.projectType" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目状态 (0未开工,1已开工,2已竣工,3暂停)" :label-width="formLabelWidth" prop="projectStatus"> |
| | | <el-input v-model="projectInfoForm.projectStatus" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)" :label-width="formLabelWidth" prop="fundType"> |
| | | <el-input v-model="projectInfoForm.fundType" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="投资类别(0企业投资,1政府投资,2外商投资,3境外投资)" :label-width="formLabelWidth" prop="investType"> |
| | | <el-input v-model="projectInfoForm.investType" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)" :label-width="formLabelWidth" prop="projectPhase"> |
| | | <el-input v-model="projectInfoForm.projectPhase" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="标签" :label-width="formLabelWidth" prop="tag"> |
| | | <el-input v-model="projectInfoForm.tag" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="主管部门(对应审批部门id)" :label-width="formLabelWidth" prop="competentDepartment"> |
| | | <el-input v-model="projectInfoForm.competentDepartment" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="行政区域" :label-width="formLabelWidth" prop="areaCode"> |
| | | <el-input v-model="projectInfoForm.areaCode" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)" :label-width="formLabelWidth" prop="managementCentralization"> |
| | | <el-input v-model="projectInfoForm.managementCentralization" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目审批类型" :label-width="formLabelWidth" prop="projectApprovalType"> |
| | | <el-input v-model="projectInfoForm.projectApprovalType" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="投资目录(?)" :label-width="formLabelWidth" prop="investmentCatalogue"> |
| | | <el-input v-model="projectInfoForm.investmentCatalogue" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)" :label-width="formLabelWidth" prop="importanceType"> |
| | | <el-input v-model="projectInfoForm.importanceType" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="年度投资计划" :label-width="formLabelWidth" prop="year"> |
| | | <el-input v-model="projectInfoForm.year" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="年度投资金额" :label-width="formLabelWidth" prop="yearInvestAmount"> |
| | | <el-input v-model="projectInfoForm.yearInvestAmount" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="立项时间" :label-width="formLabelWidth" prop="createProjectTime"> |
| | | <el-input v-model="projectInfoForm.createProjectTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="计划开工时间" :label-width="formLabelWidth" prop="planStartTime"> |
| | | <el-input v-model="projectInfoForm.planStartTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="计划竣工时间" :label-width="formLabelWidth" prop="planCompleteTime"> |
| | | <el-input v-model="projectInfoForm.planCompleteTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中标单位" :label-width="formLabelWidth" prop="winUnit"> |
| | | <el-input v-model="projectInfoForm.winUnit" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中标金额" :label-width="formLabelWidth" prop="winAmount"> |
| | | <el-input v-model="projectInfoForm.winAmount" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中标时间" :label-width="formLabelWidth" prop="winTime"> |
| | | <el-input v-model="projectInfoForm.winTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="详细地址" :label-width="formLabelWidth" prop="projectAddress"> |
| | | <el-input v-model="projectInfoForm.projectAddress" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="经度" :label-width="formLabelWidth" prop="longitude"> |
| | | <el-input v-model="projectInfoForm.longitude" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="纬度" :label-width="formLabelWidth" prop="latitude"> |
| | | <el-input v-model="projectInfoForm.latitude" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目业主单位" :label-width="formLabelWidth" prop="projectOwnerUnit"> |
| | | <el-input v-model="projectInfoForm.projectOwnerUnit" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目联系人" :label-width="formLabelWidth" prop="projectContactPerson"> |
| | | <el-input v-model="projectInfoForm.projectContactPerson" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式" :label-width="formLabelWidth" prop="contact"> |
| | | <el-input v-model="projectInfoForm.contact" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" :label-width="formLabelWidth" prop="gmtCreateTime"> |
| | | <el-input v-model="projectInfoForm.gmtCreateTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="更新时间" :label-width="formLabelWidth" prop="gmtUpdateTime"> |
| | | <el-input v-model="projectInfoForm.gmtUpdateTime" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="更新人" :label-width="formLabelWidth" prop="updateBy"> |
| | | <el-input v-model="projectInfoForm.updateBy" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="创建人" :label-width="formLabelWidth" prop="createBy"> |
| | | <el-input v-model="projectInfoForm.createBy" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="closeDialog">取 消</el-button> |
| | | <el-button type="primary" @click="addOrEditProjectInfo">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {Message} from "element-ui"; |
| | | import {getDictDataByType} from "@/api/dict-data"; |
| | | import {addProjectInfo, editProjectInfo, getProjectInfos} from "@/api/projectInfo"; |
| | | export default { |
| | | name: "ProjectInfoDialog", |
| | | data() { |
| | | return { |
| | | formLabelWidth: '120px', |
| | | projectInfoRules: { |
| | | projectName: [ |
| | | { required: true, message: '请输入项目名称', trigger: 'blur' } |
| | | ], |
| | | projectCode: [ |
| | | { required: true, message: '请输入项目代码', trigger: 'blur' } |
| | | ], |
| | | content: [ |
| | | { required: true, message: '请输入建设内容', trigger: 'blur' } |
| | | ], |
| | | projectType: [ |
| | | { required: true, message: '请输入项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)', trigger: 'blur' } |
| | | ], |
| | | projectStatus: [ |
| | | { required: true, message: '请输入项目状态 (0未开工,1已开工,2已竣工,3暂停)', trigger: 'blur' } |
| | | ], |
| | | fundType: [ |
| | | { required: true, message: '请输入资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)', trigger: 'blur' } |
| | | ], |
| | | investType: [ |
| | | { required: true, message: '请输入投资类别(0企业投资,1政府投资,2外商投资,3境外投资)', trigger: 'blur' } |
| | | ], |
| | | projectPhase: [ |
| | | { required: true, message: '请输入项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)', trigger: 'blur' } |
| | | ], |
| | | tag: [ |
| | | { required: true, message: '请输入标签', trigger: 'blur' } |
| | | ], |
| | | competentDepartment: [ |
| | | { required: true, message: '请输入主管部门(对应审批部门id)', trigger: 'blur' } |
| | | ], |
| | | areaCode: [ |
| | | { required: true, message: '请输入行政区域', trigger: 'blur' } |
| | | ], |
| | | managementCentralization: [ |
| | | { required: true, message: '请输入管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)', trigger: 'blur' } |
| | | ], |
| | | projectApprovalType: [ |
| | | { required: true, message: '请输入项目审批类型', trigger: 'blur' } |
| | | ], |
| | | investmentCatalogue: [ |
| | | { required: true, message: '请输入投资目录(?)', trigger: 'blur' } |
| | | ], |
| | | importanceType: [ |
| | | { required: true, message: '请输入重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)', trigger: 'blur' } |
| | | ], |
| | | year: [ |
| | | { required: true, message: '请输入年度投资计划', trigger: 'blur' } |
| | | ], |
| | | yearInvestAmount: [ |
| | | { required: true, message: '请输入年度投资金额', trigger: 'blur' } |
| | | ], |
| | | createProjectTime: [ |
| | | { required: true, message: '请输入立项时间', trigger: 'blur' } |
| | | ], |
| | | planStartTime: [ |
| | | { required: true, message: '请输入计划开工时间', trigger: 'blur' } |
| | | ], |
| | | planCompleteTime: [ |
| | | { required: true, message: '请输入计划竣工时间', trigger: 'blur' } |
| | | ], |
| | | winUnit: [ |
| | | { required: true, message: '请输入中标单位', trigger: 'blur' } |
| | | ], |
| | | winAmount: [ |
| | | { required: true, message: '请输入中标金额', trigger: 'blur' } |
| | | ], |
| | | winTime: [ |
| | | { required: true, message: '请输入中标时间', trigger: 'blur' } |
| | | ], |
| | | projectAddress: [ |
| | | { required: true, message: '请输入详细地址', trigger: 'blur' } |
| | | ], |
| | | longitude: [ |
| | | { required: true, message: '请输入经度', trigger: 'blur' } |
| | | ], |
| | | latitude: [ |
| | | { required: true, message: '请输入纬度', trigger: 'blur' } |
| | | ], |
| | | projectOwnerUnit: [ |
| | | { required: true, message: '请输入项目业主单位', trigger: 'blur' } |
| | | ], |
| | | projectContactPerson: [ |
| | | { required: true, message: '请输入项目联系人', trigger: 'blur' } |
| | | ], |
| | | contact: [ |
| | | { required: true, message: '请输入联系方式', trigger: 'blur' } |
| | | ], |
| | | gmtCreateTime: [ |
| | | { required: true, message: '请输入创建时间', trigger: 'blur' } |
| | | ], |
| | | gmtUpdateTime: [ |
| | | { required: true, message: '请输入更新时间', trigger: 'blur' } |
| | | ], |
| | | updateBy: [ |
| | | { required: true, message: '请输入更新人', trigger: 'blur' } |
| | | ], |
| | | createBy: [ |
| | | { required: true, message: '请输入创建人', trigger: 'blur' } |
| | | ], |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | dialogFormVisible: { |
| | | get() { |
| | | return this.$store.state.projectInfo.dialogFormVisible; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.dialogFormVisible = value; |
| | | } |
| | | }, |
| | | dialogTitle: { |
| | | get() { |
| | | return this.$store.state.projectInfo.dialogTitle; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.dialogTitle = value; |
| | | } |
| | | |
| | | }, |
| | | projectInfoForm: { |
| | | get() { |
| | | return this.$store.state.projectInfo.projectInfoForm; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.projectInfoForm = value; |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | }, |
| | | methods: { |
| | | getDictData(value) { |
| | | let params = { |
| | | keyword: value, |
| | | dictTypeId: value, |
| | | current: 1, |
| | | size: 200 |
| | | } |
| | | getDictDataByType(params).then(res => { |
| | | this.dictTypeList = res.data.data |
| | | }) |
| | | }, |
| | | refreshData() { |
| | | var params = { |
| | | "current": this.$store.state.projectInfo.currentPage, |
| | | "size": this.$store.state.projectInfo.pageSize |
| | | }; |
| | | // 刷新 |
| | | getProjectInfos(params).then((res) => { |
| | | this.$store.state.projectInfo.tableData = res.data.data; |
| | | this.$store.state.projectInfo.total = res.data.total; |
| | | this.clearForm(); |
| | | }) |
| | | }, |
| | | clearForm() { |
| | | Object.keys(this.projectInfoForm).forEach((key) => { |
| | | this.projectInfoForm[key] = null; |
| | | }) |
| | | }, |
| | | closeDialog() { |
| | | this.$store.state.projectInfo.dialogFormVisible = false; |
| | | this.clearForm(); |
| | | }, |
| | | addOrEditProjectInfo() { |
| | | this.$refs["projectInfoForm"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.dialogTitle === "添加项目管理基础信息表") { |
| | | addProjectInfo(this.projectInfoForm).then((res) => { |
| | | Message.success(res.data.msg); |
| | | this.dialogFormVisible = false; |
| | | this.refreshData(); |
| | | }) |
| | | } else { |
| | | editProjectInfo(this.projectInfoForm).then((res) => { |
| | | Message.success(res.data.msg); |
| | | this.dialogFormVisible = false; |
| | | this.refreshData(); |
| | | }) |
| | | } |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <el-table |
| | | :data="tableData" |
| | | :class="{tableTopLevel1: topLevel === 1, tableTopLevel2: topLevel === 2, tableTopLevel3: topLevel === 3, tableTopLevelDefault: topLevel === -1}" |
| | | row-key="id" |
| | | border |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column |
| | | type="selection" |
| | | width="55"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectName" |
| | | label="项目名称" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectCode" |
| | | label="项目代码" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="content" |
| | | label="建设内容" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectType" |
| | | label="项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectStatus" |
| | | label="项目状态 (0未开工,1已开工,2已竣工,3暂停)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="fundType" |
| | | label="资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="investType" |
| | | label="投资类别(0企业投资,1政府投资,2外商投资,3境外投资)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectPhase" |
| | | label="项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="tag" |
| | | label="标签" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="competentDepartment" |
| | | label="主管部门(对应审批部门id)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="areaCode" |
| | | label="行政区域" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="managementCentralization" |
| | | label="管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectApprovalType" |
| | | label="项目审批类型" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="investmentCatalogue" |
| | | label="投资目录(?)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="importanceType" |
| | | label="重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="year" |
| | | label="年度投资计划" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="yearInvestAmount" |
| | | label="年度投资金额" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createProjectTime" |
| | | label="立项时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planStartTime" |
| | | label="计划开工时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planCompleteTime" |
| | | label="计划竣工时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="winUnit" |
| | | label="中标单位" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="winAmount" |
| | | label="中标金额" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="winTime" |
| | | label="中标时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectAddress" |
| | | label="详细地址" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="longitude" |
| | | label="经度" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="latitude" |
| | | label="纬度" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectOwnerUnit" |
| | | label="项目业主单位" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="projectContactPerson" |
| | | label="项目联系人" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="contact" |
| | | label="联系方式" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="gmtCreateTime" |
| | | label="创建时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="gmtUpdateTime" |
| | | label="更新时间" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="updateBy" |
| | | label="更新人" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createBy" |
| | | label="创建人" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="editShow" type="primary" @click="editProjectInfo(scope.row.id)" size="mini">修改</el-button> |
| | | <el-button v-if="delShow" type="primary" @click="deleteProjectInfo(scope.row.id)" size="mini">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <PageC |
| | | :top-level="topLevel" |
| | | :handleSizeChange="handleSizeChange" |
| | | :handleCurrentChange="handleCurrentChange" |
| | | :pageSize="pageSize" |
| | | :total="total" |
| | | :currentPage="currentPage"></PageC> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import PageC from "@/components/PageC"; |
| | | import {deleteProjectInfoById, getProjectInfos} from "@/api/projectInfo"; |
| | | import {Message} from "element-ui"; |
| | | export default { |
| | | name: "ProjectInfoTable", |
| | | components: {PageC}, |
| | | computed: { |
| | | tableData: { |
| | | get() { |
| | | return this.$store.state.projectInfo.tableData; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.tableData = value; |
| | | } |
| | | }, |
| | | // 选中行id |
| | | multipleSelection: { |
| | | get() { |
| | | return this.$store.state.projectInfo.multipleSelection; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.multipleSelection = value; |
| | | } |
| | | }, |
| | | total: { |
| | | get() { |
| | | return this.$store.state.projectInfo.total; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.total = value; |
| | | } |
| | | }, |
| | | pageSize: { |
| | | get() { |
| | | return this.$store.state.projectInfo.pageSize; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.pageSize = value; |
| | | } |
| | | }, |
| | | currentPage: { |
| | | get() { |
| | | return this.$store.state.projectInfo.currentPage; |
| | | }, |
| | | set(value) { |
| | | this.$store.state.projectInfo.currentPage = value; |
| | | } |
| | | } |
| | | }, |
| | | props: { |
| | | topLevel: { |
| | | required: false, |
| | | default: -1, |
| | | type: Number |
| | | }, |
| | | editShow: { |
| | | required: true, |
| | | default: false, |
| | | type: Boolean |
| | | }, |
| | | delShow: { |
| | | required: true, |
| | | default: false, |
| | | type: Boolean |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val.map((item) => {return item.id;}) |
| | | }, |
| | | getProjectInfos(params) { |
| | | if (! params) { |
| | | params = { |
| | | "current": this.currentPage, |
| | | "size": this.pageSize |
| | | }; |
| | | } else { |
| | | params.current = this.currentPage; |
| | | params.size = this.pageSize; |
| | | } |
| | | // 刷新 |
| | | getProjectInfos(params).then((res) => { |
| | | this.tableData = res.data.data; |
| | | this.total = res.data.total; |
| | | }) |
| | | }, |
| | | editProjectInfo(id) { |
| | | this.$store.dispatch("projectInfo/editProjectInfo", id); |
| | | }, |
| | | deleteProjectInfo(id) { |
| | | this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteProjectInfoById(id).then((res) => { |
| | | Message.success(res.data.msg); |
| | | this.getProjectInfos(); |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.pageSize = val; |
| | | this.getProjectInfos(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val; |
| | | this.getProjectInfos(); |
| | | } |
| | | }, |
| | | created() { |
| | | this.getProjectInfos(); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="view"> |
| | | <div class="search-warp"> |
| | | <el-form :inline="true" :model="searchForm" class="demo-form-inline"> |
| | | <el-form-item> |
| | | <el-button size="small" type="primary" @click="search">查找</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <OperateC |
| | | :top-level="topLevel" |
| | | :add="addProjectInfo" |
| | | :edit="editProjectInfo" |
| | | :remove="removeProjectInfo" |
| | | :add-show="this.$getButtonAuth('projectInfo:add')" |
| | | :remove-show="this.$getButtonAuth('projectInfo:del:batch')" |
| | | ></OperateC> |
| | | <ProjectInfoTable |
| | | :top-level="topLevel" |
| | | ref="ProjectInfoTableRef" |
| | | :edit-show="this.$getButtonAuth('projectInfo:edit')" |
| | | :del-show="this.$getButtonAuth('projectInfo:del')" |
| | | ></ProjectInfoTable> |
| | | <ProjectInfoDialog></ProjectInfoDialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ProjectInfoDialog from "@/components/dialog/ProjectInfoDialog"; |
| | | import OperateC from "@/components/OperateC"; |
| | | import ProjectInfoTable from "@/components/table/ProjectInfoTable"; |
| | | import {deleteProjectInfoByIds, getProjectInfos} from "@/api/projectInfo"; |
| | | export default { |
| | | name: "ProjectInfoView", |
| | | components: {ProjectInfoDialog, OperateC, ProjectInfoTable}, |
| | | data() { |
| | | return { |
| | | searchForm: { |
| | | }, |
| | | topLevel: -1 |
| | | } |
| | | }, |
| | | methods: { |
| | | search() { |
| | | this.$refs.ProjectInfoTableRef.getProjectInfos(this.searchForm) |
| | | }, |
| | | addProjectInfo() { |
| | | let params = { |
| | | dialogFormVisible: true, |
| | | dialogTitle: "添加项目管理基础信息表" |
| | | } |
| | | this.$store.commit("projectInfo/openDialogForm", params); |
| | | }, |
| | | editProjectInfo() { |
| | | let selected = this.$store.state.projectInfo.multipleSelection; |
| | | if (selected.length < 1) { |
| | | this.$message.warning("你还没有选中数据哦!"); |
| | | return; |
| | | } |
| | | if (selected.length > 1) { |
| | | this.$message.warning("一次只能修改一条数据哦!") |
| | | return; |
| | | } |
| | | this.$store.dispatch("projectInfo/editProjectInfo", selected[0]); |
| | | }, |
| | | removeProjectInfo() { |
| | | let selected = this.$store.state.projectInfo.multipleSelection; |
| | | if (selected.length < 1) { |
| | | this.$message.warning("请先选择要删除的数据哦!"); |
| | | return; |
| | | } |
| | | this.$confirm('确定删除吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteProjectInfoByIds(selected).then((res) => { |
| | | this.$message.success(res.data.msg); |
| | | // 刷新 |
| | | let params = { |
| | | "current": this.$store.state.projectInfo.currentPage, |
| | | "size": this.$store.state.projectInfo.pageSize |
| | | }; |
| | | getProjectInfos(params).then((res) => { |
| | | this.$store.state.projectInfo.tableData = res.data.data; |
| | | this.$store.state.projectInfo.total = res.data.total; |
| | | }) |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
New file |
| | |
| | | import {getProjectInfoById} from "@/api/projectInfo"; |
| | | |
| | | export default { |
| | | namespaced: true, |
| | | state: { |
| | | dialogFormVisible: false, |
| | | dialogTitle: '', |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | // 修改添加的表单数据 |
| | | projectInfoForm: { |
| | | id: null, |
| | | projectName: "" , |
| | | projectCode: "" , |
| | | content: "" , |
| | | projectType: "" , |
| | | projectStatus: "" , |
| | | fundType: "" , |
| | | investType: "" , |
| | | projectPhase: "" , |
| | | tag: "" , |
| | | competentDepartment: null , |
| | | areaCode: "" , |
| | | managementCentralization: "" , |
| | | projectApprovalType: "" , |
| | | investmentCatalogue: "" , |
| | | importanceType: "" , |
| | | year: "" , |
| | | yearInvestAmount: null , |
| | | createProjectTime: null , |
| | | planStartTime: null , |
| | | planCompleteTime: null , |
| | | winUnit: "" , |
| | | winAmount: "" , |
| | | winTime: null , |
| | | projectAddress: "" , |
| | | longitude: "" , |
| | | latitude: "" , |
| | | projectOwnerUnit: "" , |
| | | projectContactPerson: "" , |
| | | contact: "" , |
| | | gmtCreateTime: null , |
| | | gmtUpdateTime: null , |
| | | updateBy: null , |
| | | createBy: null , |
| | | }, |
| | | // 表格数据 |
| | | tableData: [], |
| | | // 表格选中数据 |
| | | multipleSelection: [], |
| | | }, |
| | | getters: {}, |
| | | mutations: { |
| | | openDialogForm(state, value) { |
| | | state.dialogFormVisible = value.dialogFormVisible; |
| | | state.dialogTitle = value.dialogTitle; |
| | | }, |
| | | EditProjectInfo(state, value) { |
| | | state.dialogFormVisible = value.dialogFormVisible; |
| | | state.dialogTitle = value.dialogTitle; |
| | | Object.keys(state.projectInfoForm).forEach((key) => { |
| | | state.projectInfoForm[key] = value.projectInfoForm[key] |
| | | }) |
| | | } |
| | | }, |
| | | actions: { |
| | | editProjectInfo(state, id) { |
| | | getProjectInfoById(id).then((res) => { |
| | | var params = { |
| | | dialogFormVisible: true, |
| | | dialogTitle: "修改项目管理基础信息表", |
| | | projectInfoForm: res.data.data |
| | | } |
| | | state.commit("EditProjectInfo", params); |
| | | }) |
| | | } |
| | | }, |
| | | } |
New file |
| | |
| | | import axios from "./request"; |
| | | |
| | | // 获取项目管理基础信息表分页 |
| | | export const getProjectInfos = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取项目管理基础信息表列表 |
| | | export const getProjectInfoList = () => { |
| | | return axios({ |
| | | url: "/api/project-info/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取项目管理基础信息表 |
| | | export const getProjectInfoById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除项目管理基础信息表 |
| | | export const deleteProjectInfoById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除项目管理基础信息表 |
| | | export const deleteProjectInfoByIds = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改项目管理基础信息表 |
| | | export const editProjectInfo = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加项目管理基础信息表 |
| | | export const addProjectInfo = (params) => { |
| | | return axios({ |
| | | url: "/api/project-info/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
New file |
| | |
| | | package com.ycl.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.domain.query.ProjectInfoQuery; |
| | | import com.ycl.domain.vo.ProjectInfoVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * 项目管理基础信息表 Mapper 接口 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Mapper |
| | | public interface ProjectInfoMapper extends BaseMapper<ProjectInfo> { |
| | | |
| | | /** |
| | | * id查找项目管理基础信息表 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | ProjectInfoVO getById(Integer id); |
| | | |
| | | /** |
| | | * 分页 |
| | | */ |
| | | IPage getPage(IPage page, @Param("query") ProjectInfoQuery query); |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ycl.common.base.Result; |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.domain.form.ProjectInfoForm; |
| | | import com.ycl.domain.query.ProjectInfoQuery; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 项目管理基础信息表 服务类 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | public interface ProjectInfoService extends IService<ProjectInfo> { |
| | | |
| | | /** |
| | | * 添加 |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result add(ProjectInfoForm form); |
| | | |
| | | /** |
| | | * 修改 |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result update(ProjectInfoForm form); |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | Result remove(List<String> ids); |
| | | |
| | | /** |
| | | * id删除 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Result removeById(String id); |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | Result page(ProjectInfoQuery query); |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Result detail(Integer id); |
| | | |
| | | /** |
| | | * 列表 |
| | | * @return |
| | | */ |
| | | Result all(); |
| | | } |
New file |
| | |
| | | package com.ycl.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.common.base.Result; |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.domain.form.ProjectInfoForm; |
| | | import com.ycl.domain.query.ProjectInfoQuery; |
| | | import com.ycl.domain.vo.ProjectInfoVO; |
| | | import com.ycl.framework.utils.PageUtil; |
| | | import com.ycl.mapper.ProjectInfoMapper; |
| | | import com.ycl.service.ProjectInfoService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.Assert; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 项目管理基础信息表 服务实现类 |
| | | * |
| | | * @author flq |
| | | * @since 2024-11-22 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, ProjectInfo> implements ProjectInfoService { |
| | | |
| | | private final ProjectInfoMapper projectInfoMapper; |
| | | |
| | | /** |
| | | * 添加 |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result add(ProjectInfoForm form) { |
| | | ProjectInfo entity = ProjectInfoForm.getEntityByForm(form, null); |
| | | baseMapper.insert(entity); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result update(ProjectInfoForm form) { |
| | | ProjectInfo entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | baseMapper.updateById(entity); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result remove(List<String> ids) { |
| | | baseMapper.deleteBatchIds(ids); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * id删除 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result removeById(String id) { |
| | | baseMapper.deleteById(id); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result page(ProjectInfoQuery query) { |
| | | IPage<ProjectInfoVO> page = PageUtil.getPage(query, ProjectInfoVO.class); |
| | | baseMapper.getPage(page, query); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result detail(Integer id) { |
| | | ProjectInfoVO vo = baseMapper.getById(id); |
| | | Assert.notNull(vo, "记录不存在"); |
| | | return Result.ok().data(vo); |
| | | } |
| | | |
| | | /** |
| | | * 列表 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result all() { |
| | | List<ProjectInfo> entities = baseMapper.selectList(null); |
| | | List<ProjectInfoVO> vos = entities.stream() |
| | | .map(entity -> ProjectInfoVO.getVoByEntity(entity, null)) |
| | | .collect(Collectors.toList()); |
| | | return Result.ok().data(vos); |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ycl.mapper.ProjectInfoMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInfoVO"> |
| | | <result column="project_name" property="projectName" /> |
| | | <result column="project_code" property="projectCode" /> |
| | | <result column="content" property="content" /> |
| | | <result column="project_type" property="projectType" /> |
| | | <result column="project_status" property="projectStatus" /> |
| | | <result column="fund_type" property="fundType" /> |
| | | <result column="invest_type" property="investType" /> |
| | | <result column="project_phase" property="projectPhase" /> |
| | | <result column="tag" property="tag" /> |
| | | <result column="competent_department" property="competentDepartment" /> |
| | | <result column="area_code" property="areaCode" /> |
| | | <result column="management_centralization" property="managementCentralization" /> |
| | | <result column="project_approval_type" property="projectApprovalType" /> |
| | | <result column="investment_catalogue" property="investmentCatalogue" /> |
| | | <result column="importance_type" property="importanceType" /> |
| | | <result column="year" property="year" /> |
| | | <result column="year_invest_amount" property="yearInvestAmount" /> |
| | | <result column="create_project_time" property="createProjectTime" /> |
| | | <result column="plan_start_time" property="planStartTime" /> |
| | | <result column="plan_complete_time" property="planCompleteTime" /> |
| | | <result column="win_unit" property="winUnit" /> |
| | | <result column="win_amount" property="winAmount" /> |
| | | <result column="win_time" property="winTime" /> |
| | | <result column="project_address" property="projectAddress" /> |
| | | <result column="longitude" property="longitude" /> |
| | | <result column="latitude" property="latitude" /> |
| | | <result column="project_owner_unit" property="projectOwnerUnit" /> |
| | | <result column="project_contact_person" property="projectContactPerson" /> |
| | | <result column="contact" property="contact" /> |
| | | <result column="gmt_create_time" property="gmtCreateTime" /> |
| | | <result column="gmt_update_time" property="gmtUpdateTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="create_by" property="createBy" /> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <select id="getById" resultMap="BaseResultMap"> |
| | | SELECT |
| | | TPI.project_name, |
| | | TPI.project_code, |
| | | TPI.content, |
| | | TPI.project_type, |
| | | TPI.project_status, |
| | | TPI.fund_type, |
| | | TPI.invest_type, |
| | | TPI.project_phase, |
| | | TPI.tag, |
| | | TPI.competent_department, |
| | | TPI.area_code, |
| | | TPI.management_centralization, |
| | | TPI.project_approval_type, |
| | | TPI.investment_catalogue, |
| | | TPI.importance_type, |
| | | TPI.year, |
| | | TPI.year_invest_amount, |
| | | TPI.create_project_time, |
| | | TPI.plan_start_time, |
| | | TPI.plan_complete_time, |
| | | TPI.win_unit, |
| | | TPI.win_amount, |
| | | TPI.win_time, |
| | | TPI.project_address, |
| | | TPI.longitude, |
| | | TPI.latitude, |
| | | TPI.project_owner_unit, |
| | | TPI.project_contact_person, |
| | | TPI.contact, |
| | | TPI.gmt_create_time, |
| | | TPI.gmt_update_time, |
| | | TPI.update_by, |
| | | TPI.create_by, |
| | | TPI.id |
| | | FROM |
| | | t_project_info TPI |
| | | WHERE |
| | | TPI.id = #{id} AND TPI.deleted = 0 |
| | | </select> |
| | | |
| | | |
| | | <select id="getPage" resultMap="BaseResultMap"> |
| | | SELECT |
| | | TPI.project_name, |
| | | TPI.project_code, |
| | | TPI.content, |
| | | TPI.project_type, |
| | | TPI.project_status, |
| | | TPI.fund_type, |
| | | TPI.invest_type, |
| | | TPI.project_phase, |
| | | TPI.tag, |
| | | TPI.competent_department, |
| | | TPI.area_code, |
| | | TPI.management_centralization, |
| | | TPI.project_approval_type, |
| | | TPI.investment_catalogue, |
| | | TPI.importance_type, |
| | | TPI.year, |
| | | TPI.year_invest_amount, |
| | | TPI.create_project_time, |
| | | TPI.plan_start_time, |
| | | TPI.plan_complete_time, |
| | | TPI.win_unit, |
| | | TPI.win_amount, |
| | | TPI.win_time, |
| | | TPI.project_address, |
| | | TPI.longitude, |
| | | TPI.latitude, |
| | | TPI.project_owner_unit, |
| | | TPI.project_contact_person, |
| | | TPI.contact, |
| | | TPI.gmt_create_time, |
| | | TPI.gmt_update_time, |
| | | TPI.update_by, |
| | | TPI.create_by, |
| | | TPI.id |
| | | FROM |
| | | t_project_info TPI |
| | | WHERE |
| | | TPI.deleted = 0 |
| | | </select> |
| | | |
| | | </mapper> |