xiangpei
2025-02-19 2cc7bcdfa41f00f879832320f3154030bdda3e1d
项目中标单位、项目年度投资计划表代码生成
14个文件已添加
723 ■■■■■ 已修改文件
business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java
New file
@@ -0,0 +1,39 @@
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-18
 */
@Data
@TableName("t_project_info_win_unit")
public class ProjectInfoWinUnit extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @TableField("project_info_id")
    /** 项目id */
    private Long projectInfoId;
    @TableField("win_unit")
    /** 中标单位 */
    private String winUnit;
    @TableField("contacts")
    /** 联系人 */
    private String contacts;
    @TableField("phone")
    /** 联系方式 */
    private String phone;
}
business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java
New file
@@ -0,0 +1,40 @@
package com.ycl.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import com.ycl.system.domain.base.AbsEntity;
import lombok.Data;
/**
 * 项目年度投资计划
 *
 * @author xp
 * @since 2025-02-18
 */
@Data
@TableName("t_project_info_year_plan")
public class ProjectInfoYearPlan extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @TableField("project_info_id")
    /** 项目id */
    private Long projectInfoId;
    @TableField("year")
    /** 年份 */
    private String year;
    @TableField("year_total_money")
    /** 年度投资金额 */
    private BigDecimal yearTotalMoney;
    @TableField("project_image_progress")
    /** 工程形象进度 */
    private String projectImageProgress;
}
business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java
New file
@@ -0,0 +1,50 @@
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.ProjectInfoWinUnit;
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-18
 */
@Data
@ApiModel(value = "ProjectInfoWinUnit表单", description = "项目中标单位表单")
public class ProjectInfoWinUnitForm 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 winUnit;
    @NotBlank(message = "联系人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("联系人")
    private String contacts;
    @NotBlank(message = "联系方式不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("联系方式")
    private String phone;
    public static ProjectInfoWinUnit getEntityByForm(@NonNull ProjectInfoWinUnitForm form, ProjectInfoWinUnit entity) {
        if(entity == null) {
          entity = new ProjectInfoWinUnit();
        }
        BeanUtils.copyProperties(form, entity);
        return entity;
    }
}
business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java
New file
@@ -0,0 +1,50 @@
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.ProjectInfoYearPlan;
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-18
 */
@Data
@ApiModel(value = "ProjectInfoYearPlan表单", description = "项目年度投资计划表单")
public class ProjectInfoYearPlanForm 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 year;
    @NotNull(message = "年度投资金额不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("年度投资金额")
    private BigDecimal yearTotalMoney;
    @NotBlank(message = "工程形象进度不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("工程形象进度")
    private String projectImageProgress;
    public static ProjectInfoYearPlan getEntityByForm(@NonNull ProjectInfoYearPlanForm form, ProjectInfoYearPlan entity) {
        if(entity == null) {
          entity = new ProjectInfoYearPlan();
        }
        BeanUtils.copyProperties(form, entity);
        return entity;
    }
}
business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java
New file
@@ -0,0 +1,47 @@
package com.ycl.domain.vo;
import com.ycl.system.domain.base.AbsVo;
import com.ycl.domain.entity.ProjectInfoWinUnit;
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-18
 */
@Data
@ApiModel(value = "项目中标单位响应数据", description = "项目中标单位响应数据")
public class ProjectInfoWinUnitVO extends AbsVo {
    /** 项目id */
    @ApiModelProperty("项目id")
    private Long projectInfoId;
    /** 中标单位 */
    @ApiModelProperty("中标单位")
    private String winUnit;
    /** 联系人 */
    @ApiModelProperty("联系人")
    private String contacts;
    /** 联系方式 */
    @ApiModelProperty("联系方式")
    private String phone;
    public static ProjectInfoWinUnitVO getVoByEntity(@NonNull ProjectInfoWinUnit entity, ProjectInfoWinUnitVO vo) {
        if(vo == null) {
            vo = new ProjectInfoWinUnitVO();
        }
        BeanUtils.copyProperties(entity, vo);
        return vo;
    }
}
business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java
New file
@@ -0,0 +1,47 @@
package com.ycl.domain.vo;
import com.ycl.system.domain.base.AbsVo;
import com.ycl.domain.entity.ProjectInfoYearPlan;
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-18
 */
@Data
@ApiModel(value = "项目年度投资计划响应数据", description = "项目年度投资计划响应数据")
public class ProjectInfoYearPlanVO extends AbsVo {
    /** 项目id */
    @ApiModelProperty("项目id")
    private Long projectInfoId;
    /** 年份 */
    @ApiModelProperty("年份")
    private String year;
    /** 年度投资金额 */
    @ApiModelProperty("年度投资金额")
    private BigDecimal yearTotalMoney;
    /** 工程形象进度 */
    @ApiModelProperty("工程形象进度")
    private String projectImageProgress;
    public static ProjectInfoYearPlanVO getVoByEntity(@NonNull ProjectInfoYearPlan entity, ProjectInfoYearPlanVO vo) {
        if(vo == null) {
            vo = new ProjectInfoYearPlanVO();
        }
        BeanUtils.copyProperties(entity, vo);
        return vo;
    }
}
business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java
New file
@@ -0,0 +1,29 @@
package com.ycl.mapper;
import com.ycl.domain.entity.ProjectInfoWinUnit;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.vo.ProjectInfoWinUnitVO;
import com.ycl.domain.form.ProjectInfoWinUnitForm;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * 项目中标单位 Mapper 接口
 *
 * @author xp
 * @since 2025-02-18
 */
@Mapper
public interface ProjectInfoWinUnitMapper extends BaseMapper<ProjectInfoWinUnit> {
    /**
     * id查找项目中标单位
     * @param id
     * @return
     */
    ProjectInfoWinUnitVO getById(Integer id);
}
business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java
New file
@@ -0,0 +1,29 @@
package com.ycl.mapper;
import com.ycl.domain.entity.ProjectInfoYearPlan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.vo.ProjectInfoYearPlanVO;
import com.ycl.domain.form.ProjectInfoYearPlanForm;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * 项目年度投资计划 Mapper 接口
 *
 * @author xp
 * @since 2025-02-18
 */
@Mapper
public interface ProjectInfoYearPlanMapper extends BaseMapper<ProjectInfoYearPlan> {
    /**
     * id查找项目年度投资计划
     * @param id
     * @return
     */
    ProjectInfoYearPlanVO getById(Integer id);
}
business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java
New file
@@ -0,0 +1,57 @@
package com.ycl.service;
import com.ycl.domain.entity.ProjectInfoWinUnit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
import com.ycl.domain.form.ProjectInfoWinUnitForm;
import java.util.List;
/**
 * 项目中标单位 服务类
 *
 * @author xp
 * @since 2025-02-18
 */
public interface ProjectInfoWinUnitService extends IService<ProjectInfoWinUnit> {
    /**
     * 添加
     * @param form
     * @return
     */
    Result add(ProjectInfoWinUnitForm form);
    /**
     * 修改
     * @param form
     * @return
     */
    Result update(ProjectInfoWinUnitForm form);
    /**
     * 批量删除
     * @param ids
     * @return
     */
    Result remove(List<String> ids);
    /**
     * id删除
     * @param id
     * @return
     */
    Result removeById(String id);
    /**
     * 根据id查找
     * @param id
     * @return
     */
    Result detail(Integer id);
    /**
     * 列表
     * @return
     */
    Result all();
}
business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java
New file
@@ -0,0 +1,57 @@
package com.ycl.service;
import com.ycl.domain.entity.ProjectInfoYearPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
import com.ycl.domain.form.ProjectInfoYearPlanForm;
import java.util.List;
/**
 * 项目年度投资计划 服务类
 *
 * @author xp
 * @since 2025-02-18
 */
public interface ProjectInfoYearPlanService extends IService<ProjectInfoYearPlan> {
    /**
     * 添加
     * @param form
     * @return
     */
    Result add(ProjectInfoYearPlanForm form);
    /**
     * 修改
     * @param form
     * @return
     */
    Result update(ProjectInfoYearPlanForm form);
    /**
     * 批量删除
     * @param ids
     * @return
     */
    Result remove(List<String> ids);
    /**
     * id删除
     * @param id
     * @return
     */
    Result removeById(String id);
    /**
     * 根据id查找
     * @param id
     * @return
     */
    Result detail(Integer id);
    /**
     * 列表
     * @return
     */
    Result all();
}
business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java
New file
@@ -0,0 +1,106 @@
package com.ycl.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.domain.entity.ProjectInfoWinUnit;
import com.ycl.mapper.ProjectInfoWinUnitMapper;
import com.ycl.service.ProjectInfoWinUnitService;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.domain.form.ProjectInfoWinUnitForm;
import com.ycl.domain.vo.ProjectInfoWinUnitVO;
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-18
 */
@Service
@RequiredArgsConstructor
public class ProjectInfoWinUnitServiceImpl extends ServiceImpl<ProjectInfoWinUnitMapper, ProjectInfoWinUnit> implements ProjectInfoWinUnitService {
    private final ProjectInfoWinUnitMapper projectInfoWinUnitMapper;
    /**
     * 添加
     * @param form
     * @return
     */
    @Override
    public Result add(ProjectInfoWinUnitForm form) {
        ProjectInfoWinUnit entity = ProjectInfoWinUnitForm.getEntityByForm(form, null);
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
    /**
     * 修改
     * @param form
     * @return
     */
    @Override
    public Result update(ProjectInfoWinUnitForm form) {
        ProjectInfoWinUnit 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("删除成功");
    }
    /**
     * 根据id查找
     * @param id
     * @return
     */
    @Override
    public Result detail(Integer id) {
        ProjectInfoWinUnitVO vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
    }
    /**
     * 列表
     * @return
     */
    @Override
    public Result all() {
        List<ProjectInfoWinUnit> entities = baseMapper.selectList(null);
        List<ProjectInfoWinUnitVO> vos = entities.stream()
                .map(entity -> ProjectInfoWinUnitVO.getVoByEntity(entity, null))
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
}
business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java
New file
@@ -0,0 +1,106 @@
package com.ycl.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.domain.entity.ProjectInfoYearPlan;
import com.ycl.mapper.ProjectInfoYearPlanMapper;
import com.ycl.service.ProjectInfoYearPlanService;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.domain.form.ProjectInfoYearPlanForm;
import com.ycl.domain.vo.ProjectInfoYearPlanVO;
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-18
 */
@Service
@RequiredArgsConstructor
public class ProjectInfoYearPlanServiceImpl extends ServiceImpl<ProjectInfoYearPlanMapper, ProjectInfoYearPlan> implements ProjectInfoYearPlanService {
    private final ProjectInfoYearPlanMapper projectInfoYearPlanMapper;
    /**
     * 添加
     * @param form
     * @return
     */
    @Override
    public Result add(ProjectInfoYearPlanForm form) {
        ProjectInfoYearPlan entity = ProjectInfoYearPlanForm.getEntityByForm(form, null);
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
    /**
     * 修改
     * @param form
     * @return
     */
    @Override
    public Result update(ProjectInfoYearPlanForm form) {
        ProjectInfoYearPlan 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("删除成功");
    }
    /**
     * 根据id查找
     * @param id
     * @return
     */
    @Override
    public Result detail(Integer id) {
        ProjectInfoYearPlanVO vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
    }
    /**
     * 列表
     * @return
     */
    @Override
    public Result all() {
        List<ProjectInfoYearPlan> entities = baseMapper.selectList(null);
        List<ProjectInfoYearPlanVO> vos = entities.stream()
                .map(entity -> ProjectInfoYearPlanVO.getVoByEntity(entity, null))
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
}
business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml
New file
@@ -0,0 +1,33 @@
<?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.ProjectInfoWinUnitMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInfoWinUnitVO">
        <result column="project_info_id" property="projectInfoId" />
        <result column="win_unit" property="winUnit" />
        <result column="contacts" property="contacts" />
        <result column="phone" property="phone" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
            TPIWU.project_info_id,
            TPIWU.win_unit,
            TPIWU.contacts,
            TPIWU.phone,
            TPIWU.id
        FROM
            t_project_info_win_unit TPIWU
        WHERE
            TPIWU.id = #{id} AND TPIWU.deleted = 0
    </select>
</mapper>
business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml
New file
@@ -0,0 +1,33 @@
<?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.ProjectInfoYearPlanMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInfoYearPlanVO">
        <result column="project_info_id" property="projectInfoId" />
        <result column="year" property="year" />
        <result column="year_total_money" property="yearTotalMoney" />
        <result column="project_image_progress" property="projectImageProgress" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
            TPIYP.project_info_id,
            TPIYP.year,
            TPIYP.year_total_money,
            TPIYP.project_image_progress,
            TPIYP.id
        FROM
            t_project_info_year_plan TPIYP
        WHERE
            TPIYP.id = #{id} AND TPIYP.deleted = 0
    </select>
</mapper>