| src/main/java/com/ruoyi/projectManagement/mapper/PlanMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/pojo/Plan.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/service/PlanService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/projectManagement/PlanMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/projectManagement/mapper/PlanMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.projectManagement.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.projectManagement.pojo.Plan; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.projectManagement.vo.SearchPlanVo; /** * @author buhuazhen * @description é对表ãproject_management_plan(项ç®ç®¡ç计å表(项ç®ç®¡çç±»å))ãçæ°æ®åºæä½Mapper * @createDate 2026-03-06 15:29:26 * @Entity generator.domain.ProjectManagementPlan */ public interface PlanMapper extends BaseMapper<Plan> { IPage<Plan> selectPlanPage(SearchPlanVo searchPlanVo); } src/main/java/com/ruoyi/projectManagement/pojo/Plan.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ package com.ruoyi.projectManagement.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 项ç®ç®¡ç计å表(项ç®ç®¡çç±»å) * @TableName project_management_plan */ @TableName(value ="project_management_plan") @Data @ApiModel(description="项ç®ç®¡ç计å表(项ç®ç®¡çç±»å)") public class Plan { /** * */ @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value="主é®ID") private Long id; /** * 计ååç§° */ @TableField(value = "name") @ApiModelProperty(value="计ååç§°") private String name; /** * 计åæè¿° */ @TableField(value = "describe") @ApiModelProperty(value="计åæè¿°") private String describe; /** * éä»¶ ,è¿è¡åå² */ @TableField(value = "attachment") @ApiModelProperty(value="éä»¶") private String attachment; /** * */ @TableField(value = "is_delete") @ApiModelProperty(value="æ¯å¦å é¤") private Integer isDelete; /** * */ @TableField(value = "create_time",fill = FieldFill.INSERT) @ApiModelProperty(value="å建æ¶é´") private LocalDateTime createTime; /** * */ @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) @ApiModelProperty(value="æ´æ°æ¶é´") private LocalDateTime updateTime; /** * */ @TableField(value = "create_user",fill = FieldFill.INSERT) @ApiModelProperty(value="å建人") private String createUser; /** * */ @TableField(value = "update_user",fill = FieldFill.INSERT_UPDATE) @ApiModelProperty(value="æ´æ°äºº") private String updateUser; } src/main/java/com/ruoyi/projectManagement/service/PlanService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.projectManagement.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.projectManagement.pojo.Plan; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.projectManagement.vo.PlanVo; import com.ruoyi.projectManagement.vo.SavePlanVo; import com.ruoyi.projectManagement.vo.SearchPlanVo; import javax.validation.constraints.NotNull; import java.util.List; /** * @author buhuazhen * @description é对表ãproject_management_plan(项ç®ç®¡ç计å表(项ç®ç®¡çç±»å))ãçæ°æ®åºæä½Service * @createDate 2026-03-06 15:29:26 */ public interface PlanService{ /** * ä¿å项ç®ç®¡ç计å * @param savePlanVo */ void savePlan(@NotNull SavePlanVo savePlanVo); /** * å é¤é¡¹ç®ç®¡ç计å * @param id */ void deletePlan(@NotNull Long id); IPage<PlanVo> searchPlan(@NotNull SearchPlanVo searchPlanVo); } src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,81 @@ package com.ruoyi.projectManagement.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.basic.service.CustomerFollowUpFileService; import com.ruoyi.projectManagement.mapper.PlanMapper; import com.ruoyi.projectManagement.pojo.Plan; import com.ruoyi.projectManagement.service.PlanService; import com.ruoyi.projectManagement.vo.PlanVo; import com.ruoyi.projectManagement.vo.SavePlanVo; import com.ruoyi.projectManagement.vo.SearchPlanVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; import java.util.Optional; /** * @author buhuazhen * @description 项ç®ç®¡ç计åçå®ç° * @createDate 2026-03-06 15:29:26 */ @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class PlanServiceImpl implements PlanService { private final PlanMapper planMapper; private final CustomerFollowUpFileService customerFollowUpFileService; @Override @Transactional(rollbackFor = Exception.class) public void savePlan(SavePlanVo savePlanVo) { Plan plan = BeanUtil.copyProperties(savePlanVo, Plan.class); // éä»¶å¤ç , æ¼æ¥ String attachments = String.join(",", Optional.ofNullable(savePlanVo.getAttachmentIds()).orElse(Collections.emptyList())); plan.setAttachment(attachments); if (savePlanVo.getId() == null) { planMapper.insert(plan); } else { planMapper.updateById(plan); } // todo@ èç¹ä¿å } @Override @Transactional(rollbackFor = Exception.class) public void deletePlan(Long id) { planMapper.update(null, new LambdaUpdateWrapper<Plan>() .eq(Plan::getId, id) .set(Plan::getIsDelete, 1)); // todo@ 对åºèç¹å ¨é¨å é¤ } @Override public IPage<PlanVo> searchPlan(SearchPlanVo searchPlanVo) { IPage<Plan> planIPage = planMapper.selectPlanPage(searchPlanVo); IPage<PlanVo> resultPage = planIPage.convert(plan -> BeanUtil.copyProperties(plan, PlanVo.class)); // æä»¶è·å customerFollowUpFileService.fillAttachment(resultPage.getRecords(), PlanVo::getAttachment, PlanVo::setAttachmentList); // todo@ node èç¹è·å return resultPage; } } src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.ruoyi.projectManagement.vo; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ruoyi.common.vo.SimpleFileVo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; /** * 计åVO * @author buhuazhen * @date 2026/3/6 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class PlanVo implements Serializable { private Long id; private String name; private String describe; // éä»¶ private List<SimpleFileVo> attachmentList; @JsonIgnore private String attachment; private LocalDateTime createTime; private LocalDateTime updateTime; } src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.ruoyi.projectManagement.vo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.List; /** * @author buhuazhen * @date 2026/3/6 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class SavePlanVo implements Serializable { private Long id; @NotBlank private String name; @NotBlank private String describe; private List<String> attachmentIds; } src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.projectManagement.vo; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author buhuazhen * @date 2026/3/6 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class SearchPlanVo extends Page implements Serializable { } src/main/resources/mapper/projectManagement/PlanMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ <?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.ruoyi.projectManagement.mapper.PlanMapper"> <resultMap id="BaseResultMap" type="com.ruoyi.projectManagement.pojo.Plan"> <id property="id" column="id" jdbcType="BIGINT"/> <result property="name" column="name" jdbcType="VARCHAR"/> <result property="describe" column="describe" jdbcType="VARCHAR"/> <result property="attachment" column="attachment" jdbcType="VARCHAR"/> <result property="is_delete" column="is_delete" jdbcType="INTEGER"/> <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/> <result property="create_user" column="create_user" jdbcType="VARCHAR"/> <result property="update_user" column="update_user" jdbcType="VARCHAR"/> </resultMap> <sql id="Base_Column_List"> id,name,describe, attachment,is_delete,create_time, update_time,create_user,update_user </sql> <select id="selectPlanPage" resultMap="BaseResultMap"> select t1.* from project_management_plan as t1 order by t1.create_time desc </select> </mapper>