From 09d73d3bfc6b0136dd96224b361b79c0e513401b Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 22 十一月 2024 11:47:52 +0800 Subject: [PATCH] 项目库初始化 --- business/src/main/resources/mapper/ProjectInfoMapper.xml | 133 ++++ business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java | 164 +++++ business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue | 102 +++ business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue | 315 ++++++++++ business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java | 32 + business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java | 168 +++++ business/src/main/java/com/ycl/domain/entity/ProjectInfo.java | 156 +++++ business/src/main/java/com/ycl/controller/ProjectInfoController.java | 82 ++ business/src/main/java/com/ycl/domain/vue/projectInfo.js | 61 + business/src/main/java/com/ycl/domain/vue/index.js | 79 ++ business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 119 +++ business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue | 320 ++++++++++ business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java | 17 business/src/main/java/com/ycl/service/ProjectInfoService.java | 66 ++ 14 files changed, 1,814 insertions(+), 0 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectInfoController.java b/business/src/main/java/com/ycl/controller/ProjectInfoController.java new file mode 100644 index 0000000..d0144ee --- /dev/null +++ b/business/src/main/java/com/ycl/controller/ProjectInfoController.java @@ -0,0 +1,82 @@ +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(); + } +} diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java new file mode 100644 index 0000000..59e77c5 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java @@ -0,0 +1,156 @@ +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") + /** 椤圭洰浠g爜 */ + 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绔e伐鎶曠敤闃舵) */ + 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") + /** 璁″垝绔e伐鏃堕棿 */ + 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; + + +} diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java new file mode 100644 index 0000000..7d4b1f3 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java @@ -0,0 +1,168 @@ +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 = "椤圭洰浠g爜涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰浠g爜") + 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绔e伐鎶曠敤闃舵)涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)") + 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 = "璁″垝绔e伐鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("璁″垝绔e伐鏃堕棿") + 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; + } + +} diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java new file mode 100644 index 0000000..071663f --- /dev/null +++ b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java @@ -0,0 +1,17 @@ +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 { +} + diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java new file mode 100644 index 0000000..dafbba3 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java @@ -0,0 +1,164 @@ +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; + + /** 椤圭洰浠g爜 */ + @ApiModelProperty("椤圭洰浠g爜") + 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绔e伐鎶曠敤闃舵) */ + @ApiModelProperty("椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)") + 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; + + /** 璁″垝绔e伐鏃堕棿 */ + @ApiModelProperty("璁″垝绔e伐鏃堕棿") + 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; + } + +} diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue new file mode 100644 index 0000000..099b884 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue @@ -0,0 +1,315 @@ +<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="椤圭洰浠g爜" :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绔e伐鎶曠敤闃舵)" :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="璁″垝绔e伐鏃堕棿" :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绔e伐鎶曠敤闃舵)', 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> diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue new file mode 100644 index 0000000..77d0c07 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue @@ -0,0 +1,320 @@ +<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="椤圭洰浠g爜" + > + </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绔e伐鎶曠敤闃舵)" + > + </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="璁″垝绔e伐鏃堕棿" + > + </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; + } + }, + // 閫変腑琛宨d + 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> diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue new file mode 100644 index 0000000..ef6223b --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue @@ -0,0 +1,102 @@ +<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> diff --git a/business/src/main/java/com/ycl/domain/vue/index.js b/business/src/main/java/com/ycl/domain/vue/index.js new file mode 100644 index 0000000..c1218ea --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vue/index.js @@ -0,0 +1,79 @@ +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); + }) + } + }, +} diff --git a/business/src/main/java/com/ycl/domain/vue/projectInfo.js b/business/src/main/java/com/ycl/domain/vue/projectInfo.js new file mode 100644 index 0000000..d31ccab --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vue/projectInfo.js @@ -0,0 +1,61 @@ +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 + }) +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java new file mode 100644 index 0000000..d1a54f3 --- /dev/null +++ b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java @@ -0,0 +1,32 @@ +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); + +} diff --git a/business/src/main/java/com/ycl/service/ProjectInfoService.java b/business/src/main/java/com/ycl/service/ProjectInfoService.java new file mode 100644 index 0000000..fea0421 --- /dev/null +++ b/business/src/main/java/com/ycl/service/ProjectInfoService.java @@ -0,0 +1,66 @@ +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(); +} diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java new file mode 100644 index 0000000..eeca686 --- /dev/null +++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java @@ -0,0 +1,119 @@ +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()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + 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); + } +} diff --git a/business/src/main/resources/mapper/ProjectInfoMapper.xml b/business/src/main/resources/mapper/ProjectInfoMapper.xml new file mode 100644 index 0000000..a656bb3 --- /dev/null +++ b/business/src/main/resources/mapper/ProjectInfoMapper.xml @@ -0,0 +1,133 @@ +<?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> -- Gitblit v1.8.0