business/src/main/java/com/ycl/controller/ProjectEngineeringController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/ProjectEngineeringService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/resources/mapper/ProjectEngineeringMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
business/src/main/java/com/ycl/controller/ProjectEngineeringController.java
New file @@ -0,0 +1,83 @@ package com.ycl.controller; import com.ycl.common.group.Update; import com.ycl.common.group.Add; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.ycl.service.ProjectEngineeringService; import com.ycl.common.base.Result; import com.ycl.domain.form.ProjectEngineeringForm; import com.ycl.domain.query.ProjectEngineeringQuery; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; /** * 项目工程 前端控制器 * * @author xp * @since 2025-02-26 */ @Validated @RequiredArgsConstructor @Api(value = "项目工程", tags = "项目工程管理") @RestController @RequestMapping("/project-engineering") public class ProjectEngineeringController { private final ProjectEngineeringService projectEngineeringService; @PostMapping @ApiOperation(value = "添加", notes = "添加") // @PreAuthorize("@ss.hasPermi('projectEngineering:add')") public Result add(@RequestBody @Validated(Add.class) ProjectEngineeringForm form) { return projectEngineeringService.add(form); } @PutMapping @ApiOperation(value = "修改", notes = "修改") // @PreAuthorize("@ss.hasPermi('projectEngineering:edit')") public Result update(@RequestBody @Validated(Update.class) ProjectEngineeringForm form) { return projectEngineeringService.update(form); } @DeleteMapping("/{id}") @ApiOperation(value = "ID删除", notes = "ID删除") // @PreAuthorize("@ss.hasPermi('projectEngineering:del')") public Result removeById(@PathVariable("id") String id) { return projectEngineeringService.removeById(id); } @DeleteMapping("/batch") @ApiOperation(value = "批量删除", notes = "批量删除") // @PreAuthorize("@ss.hasPermi('projectEngineering:del:batch')") public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { return projectEngineeringService.remove(ids); } @GetMapping("/page") @ApiOperation(value = "分页", notes = "分页") // @PreAuthorize("@ss.hasPermi('projectEngineering:page')") public Result page(ProjectEngineeringQuery query) { return projectEngineeringService.page(query); } @GetMapping("/{id}") @ApiOperation(value = "详情", notes = "详情") // @PreAuthorize("@ss.hasPermi('projectEngineering:detail')") public Result detail(@PathVariable("id") Integer id) { return projectEngineeringService.detail(id); } @GetMapping("/list") // @PreAuthorize("@ss.hasPermi('projectEngineering:list')") @ApiOperation(value = "列表", notes = "列表") public Result list() { return projectEngineeringService.all(); } } business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java
New file @@ -0,0 +1,43 @@ package com.ycl.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.ycl.system.domain.base.AbsEntity; import lombok.Data; /** * 项目工程 * * @author xp * @since 2025-02-26 */ @Data @TableName("t_project_engineering") public class ProjectEngineering extends AbsEntity { private static final long serialVersionUID = 1L; @TableField("project_info_id") /** 项目id */ private Long projectInfoId; @TableField("project_name") /** 工程名称 */ private String projectName; @TableField("project_type") /** 项目推进类型 */ private String projectType; @TableField("investment_amount") /** 投资额 */ private String investmentAmount; @TableField("status") /** 状态 */ private String status; } business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java
New file @@ -0,0 +1,54 @@ package com.ycl.domain.form; import com.ycl.common.group.Update; import com.ycl.common.group.Add; import com.ycl.system.domain.base.AbsForm; import com.ycl.domain.entity.ProjectEngineering; import org.springframework.beans.BeanUtils; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 项目工程表单 * * @author xp * @since 2025-02-26 */ @Data @ApiModel(value = "ProjectEngineering表单", description = "项目工程表单") public class ProjectEngineeringForm extends AbsForm { @NotNull(message = "项目id不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目id") private Long projectInfoId; @NotBlank(message = "工程名称不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("工程名称") private String projectName; @NotBlank(message = "项目推进类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目推进类型") private String projectType; @NotBlank(message = "投资额不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("投资额") private String investmentAmount; @NotBlank(message = "状态不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("状态") private String status; public static ProjectEngineering getEntityByForm(@NonNull ProjectEngineeringForm form, ProjectEngineering entity) { if(entity == null) { entity = new ProjectEngineering(); } BeanUtils.copyProperties(form, entity); return entity; } } business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java
New file @@ -0,0 +1,34 @@ package com.ycl.domain.query; import com.ycl.system.domain.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 项目工程查询 * * @author xp * @since 2025-02-26 */ @Data @ApiModel(value = "ProjectEngineering查询参数", description = "项目工程查询参数") public class ProjectEngineeringQuery extends AbsQuery { @ApiModelProperty("主项目") private Long projectInfoId; @ApiModelProperty("工程名") private String projectName; @ApiModelProperty("开工状态") private String status; @ApiModelProperty("流程推进类型") private String projectType; } business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java
New file @@ -0,0 +1,54 @@ package com.ycl.domain.vo; import com.ycl.system.domain.base.AbsVo; import com.ycl.domain.entity.ProjectEngineering; import java.util.List; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 项目工程展示 * * @author xp * @since 2025-02-26 */ @Data @ApiModel(value = "项目工程响应数据", description = "项目工程响应数据") public class ProjectEngineeringVO extends AbsVo { /** 项目id */ @ApiModelProperty("项目id") private Long projectInfoId; @ApiModelProperty("主项目名称") private String projectInfoName; /** 工程名称 */ @ApiModelProperty("工程名称") private String projectName; /** 项目推进类型 */ @ApiModelProperty("项目推进类型") private String projectType; /** 投资额 */ @ApiModelProperty("投资额") private String investmentAmount; /** 状态 */ @ApiModelProperty("状态") private String status; public static ProjectEngineeringVO getVoByEntity(@NonNull ProjectEngineering entity, ProjectEngineeringVO vo) { if(vo == null) { vo = new ProjectEngineeringVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java
New file @@ -0,0 +1,34 @@ package com.ycl.mapper; import com.ycl.domain.entity.ProjectEngineering; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.domain.vo.ProjectEngineeringVO; import com.ycl.domain.form.ProjectEngineeringForm; import com.ycl.domain.query.ProjectEngineeringQuery; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 项目工程 Mapper 接口 * * @author xp * @since 2025-02-26 */ @Mapper public interface ProjectEngineeringMapper extends BaseMapper<ProjectEngineering> { /** * id查找项目工程 * @param id * @return */ ProjectEngineeringVO getById(Integer id); /** * 分页 */ IPage getPage(IPage page, @Param("query") ProjectEngineeringQuery query); } business/src/main/java/com/ycl/service/ProjectEngineeringService.java
New file @@ -0,0 +1,65 @@ package com.ycl.service; import com.ycl.domain.entity.ProjectEngineering; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.common.base.Result; import com.ycl.domain.form.ProjectEngineeringForm; import com.ycl.domain.query.ProjectEngineeringQuery; import java.util.List; /** * 项目工程 服务类 * * @author xp * @since 2025-02-26 */ public interface ProjectEngineeringService extends IService<ProjectEngineering> { /** * 添加 * @param form * @return */ Result add(ProjectEngineeringForm form); /** * 修改 * @param form * @return */ Result update(ProjectEngineeringForm form); /** * 批量删除 * @param ids * @return */ Result remove(List<String> ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(ProjectEngineeringQuery query); /** * 根据id查找 * @param id * @return */ Result detail(Integer id); /** * 列表 * @return */ Result all(); } business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java
New file @@ -0,0 +1,119 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.domain.entity.ProjectEngineering; import com.ycl.mapper.ProjectEngineeringMapper; import com.ycl.service.ProjectEngineeringService; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.form.ProjectEngineeringForm; import com.ycl.domain.vo.ProjectEngineeringVO; import com.ycl.domain.query.ProjectEngineeringQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.ycl.framework.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; import java.util.List; import java.util.stream.Collectors; /** * 项目工程 服务实现类 * * @author xp * @since 2025-02-26 */ @Service @RequiredArgsConstructor public class ProjectEngineeringServiceImpl extends ServiceImpl<ProjectEngineeringMapper, ProjectEngineering> implements ProjectEngineeringService { private final ProjectEngineeringMapper projectEngineeringMapper; /** * 添加 * @param form * @return */ @Override public Result add(ProjectEngineeringForm form) { ProjectEngineering entity = ProjectEngineeringForm.getEntityByForm(form, null); baseMapper.insert(entity); return Result.ok("添加成功"); } /** * 修改 * @param form * @return */ @Override public Result update(ProjectEngineeringForm form) { ProjectEngineering 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(ProjectEngineeringQuery query) { IPage<ProjectEngineeringVO> page = PageUtil.getPage(query, ProjectEngineeringVO.class); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** * 根据id查找 * @param id * @return */ @Override public Result detail(Integer id) { ProjectEngineeringVO vo = baseMapper.getById(id); Assert.notNull(vo, "记录不存在"); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List<ProjectEngineering> entities = baseMapper.selectList(null); List<ProjectEngineeringVO> vos = entities.stream() .map(entity -> ProjectEngineeringVO.getVoByEntity(entity, null)) .collect(Collectors.toList()); return Result.ok().data(vos); } } business/src/main/resources/mapper/ProjectEngineeringMapper.xml
New file @@ -0,0 +1,64 @@ <?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.ProjectEngineeringMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectEngineeringVO"> <result column="project_info_id" property="projectInfoId" /> <result column="projectInfoName" property="projectInfoName" /> <result column="project_name" property="projectName" /> <result column="project_type" property="projectType" /> <result column="investment_amount" property="investmentAmount" /> <result column="status" property="status" /> </resultMap> <select id="getById" resultMap="BaseResultMap"> SELECT TPE.project_info_id, TPE.project_name, TPE.project_type, TPE.investment_amount, TPE.status, TPE.id FROM t_project_engineering TPE WHERE TPE.id = #{id} AND TPE.deleted = 0 </select> <select id="getPage" resultMap="BaseResultMap"> SELECT TPE.project_info_id, TPE.project_name, TPE.project_type, TPE.investment_amount, TPE.status, TPE.id, TPI.project_name as projectInfoName FROM t_project_engineering TPE INNER JOIN t_project_info TPI ON TPI.id = TPE.project_info_id AND TPI.deleted = 0 WHERE TPE.deleted = 0 <if test="query.projectName != null and query.projectName != ''"> AND TPE.project_name LIKE concat('%', #{query.projectName}, '%') </if> <if test="query.projectInfoId != null"> AND TPE.project_info_id = #{query.projectInfoId} </if> <if test="query.status != null and query.status != ''"> AND TPE.status = #{query.status} </if> <if test="query.projectType != null and query.projectType != ''"> AND TPE.project_type = #{query.projectType} </if> </select> </mapper>