From 2cc7bcdfa41f00f879832320f3154030bdda3e1d Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 19 二月 2025 00:00:04 +0800
Subject: [PATCH] 项目中标单位、项目年度投资计划表代码生成

---
 business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml                 |   33 ++
 business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java  |  106 ++++++++
 business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java           |   40 +++
 business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java          |   57 ++++
 business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java            |   39 +++
 business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java          |   50 +++
 business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java           |   57 ++++
 business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java         |   50 +++
 business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java |  106 ++++++++
 business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java             |   47 +++
 business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml                |   33 ++
 business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java            |   29 ++
 business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java             |   29 ++
 business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java              |   47 +++
 14 files changed, 723 insertions(+), 0 deletions(-)

diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java b/business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java
new file mode 100644
index 0000000..395e96e
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectInfoWinUnit.java
@@ -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;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java b/business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java
new file mode 100644
index 0000000..8c706b7
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectInfoYearPlan.java
@@ -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;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java
new file mode 100644
index 0000000..de77074
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectInfoWinUnitForm.java
@@ -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;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java
new file mode 100644
index 0000000..9583ca0
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectInfoYearPlanForm.java
@@ -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;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java
new file mode 100644
index 0000000..bec0351
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectInfoWinUnitVO.java
@@ -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;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java
new file mode 100644
index 0000000..4765938
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectInfoYearPlanVO.java
@@ -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;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java
new file mode 100644
index 0000000..e7c864e
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectInfoWinUnitMapper.java
@@ -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);
+
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java
new file mode 100644
index 0000000..00aecb5
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectInfoYearPlanMapper.java
@@ -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);
+
+
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java b/business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java
new file mode 100644
index 0000000..4b6a93d
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectInfoWinUnitService.java
@@ -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();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java b/business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java
new file mode 100644
index 0000000..a9274d6
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectInfoYearPlanService.java
@@ -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();
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java
new file mode 100644
index 0000000..1269665
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoWinUnitServiceImpl.java
@@ -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());
+
+        // 涓虹┖鎶汭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("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * 鏍规嵁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);
+    }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java
new file mode 100644
index 0000000..1d32dc3
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoYearPlanServiceImpl.java
@@ -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());
+
+        // 涓虹┖鎶汭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("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * 鏍规嵁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);
+    }
+}
diff --git a/business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml b/business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml
new file mode 100644
index 0000000..c14da99
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectInfoWinUnitMapper.xml
@@ -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>
diff --git a/business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml b/business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml
new file mode 100644
index 0000000..e63f144
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectInfoYearPlanMapper.xml
@@ -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>

--
Gitblit v1.8.0