Bladeren bron

应急预案文件接口

459242451@qq.com 3 jaren geleden
bovenliggende
commit
2363006d1c

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/PlanController.java

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.zhdd.domain.bo.PlanFileBo;
+import com.ruoyi.zhdd.service.IPlanFileService;
 import lombok.RequiredArgsConstructor;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
@@ -41,6 +43,7 @@ import io.swagger.annotations.ApiOperation;
 public class PlanController extends BaseController {
 
     private final IPlanService iPlanService;
+    private final IPlanFileService planFileService;
 
     /**
      * 查询预案管理列表
@@ -98,4 +101,12 @@ public class PlanController extends BaseController {
                                        @PathVariable Long[] ids) {
         return toAjax(iPlanService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
     }
+
+    @ApiOperation("新增预案文件")
+    @Log(title = "新增预案文件", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping("/file")
+    public AjaxResult<Void> addFile(PlanFileBo planFileBo) {
+        return toAjax(planFileService.insertByBo(planFileBo) ? 1 : 0);
+    }
 }

+ 82 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/PlanFile.java

@@ -0,0 +1,82 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 预案文件管理对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("b_plan_file")
+public class PlanFile implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * 任务id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属预案id
+     */
+    private Long planId;
+
+    /**
+     *
+     */
+    private String fileName;
+
+    /**
+     *
+     */
+    private String fileUrl;
+
+    /**
+     * 创建用户
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 4 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanBo.java

@@ -2,6 +2,7 @@ package com.ruoyi.zhdd.domain.bo;
 
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.zhdd.domain.PlanFile;
 import com.ruoyi.zhdd.domain.PlanTask;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -87,4 +88,7 @@ public class PlanBo extends BaseEntity {
     @ApiModelProperty("预案任务")
     private List<PlanTask> planTasks;
 
+    @ApiModelProperty("预案文件")
+    private List<PlanFile> planFiles;
+
 }

+ 84 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanFileBo.java

@@ -0,0 +1,84 @@
+package com.ruoyi.zhdd.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 预案任务管理业务对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("预案文件管理业务对象")
+public class PlanFileBo extends BaseEntity {
+
+    /**
+     * 任务id
+     */
+    @ApiModelProperty(value = "任务id")
+    private Long id;
+
+    /**
+     * 所属预案id
+     */
+    @ApiModelProperty(value = "所属预案id")
+    @NotNull(message = "planId不能为空", groups = { AddGroup.class })
+    private Long planId;
+
+    /**
+     * 任务名称
+     */
+    @ApiModelProperty(value = "名称")
+    @NotBlank(message = "fileName不能为空", groups = { AddGroup.class })
+    private String fileName;
+
+    /**
+     * 任务描述
+     */
+    @ApiModelProperty(value = "路径")
+    @NotBlank(message = "fileUrl不能为空", groups = { AddGroup.class })
+    private String fileUrl;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    private String delFlag;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 59 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanFileVo.java

@@ -0,0 +1,59 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 预案任务管理视图对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@ApiModel("预案文件管理视图对象")
+@ExcelIgnoreUnannotated
+public class PlanFileVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  任务id
+     */
+	@ApiModelProperty("任务id")
+	private Long id;
+
+    /**
+     * 所属预案id
+     */
+	@ExcelProperty(value = "所属预案id")
+	@ApiModelProperty("所属预案id")
+	private Long planId;
+
+    /**
+     * 任务名称
+     */
+	@ExcelProperty(value = "文件名称")
+	@ApiModelProperty("文件名称")
+	private String fileName;
+
+    /**
+     * 任务描述
+     */
+	@ExcelProperty(value = "文件地址")
+	@ApiModelProperty("文件地址")
+	private String fileUrl;
+
+    @ExcelProperty(value = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ExcelProperty(value = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 2 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanVo.java

@@ -65,4 +65,6 @@ public class PlanVo {
     private Date updateTime;
 
     private Map<String, List<PlanTaskVo>> planTasks;
+
+    private List<PlanFileVo> planFiles;
 }

+ 15 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/PlanFileMapper.java

@@ -0,0 +1,15 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.zhdd.domain.PlanFile;
+import com.ruoyi.zhdd.domain.PlanTask;
+
+/**
+ * 预案任务管理Mapper接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface PlanFileMapper extends BaseMapperPlus<PlanFile> {
+
+}

+ 56 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IPlanFileService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.zhdd.domain.PlanFile;
+import com.ruoyi.zhdd.domain.bo.PlanFileBo;
+import com.ruoyi.zhdd.domain.vo.PlanFileVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 预案任务管理Service接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IPlanFileService extends IServicePlus<PlanFile, PlanFileVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	PlanFileVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<PlanFileVo> queryPageList(PlanFileBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<PlanFileVo> queryList(PlanFileBo bo);
+
+	/**
+	 * 根据新增业务对象插入预案任务管理
+	 * @param bo 预案任务管理新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(PlanFileBo bo);
+
+	/**
+	 * 根据编辑业务对象修改预案任务管理
+	 * @param bo 预案任务管理编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(PlanFileBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 91 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanFileServiceImpl.java

@@ -0,0 +1,91 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.zhdd.domain.PlanFile;
+import com.ruoyi.zhdd.domain.PlanTask;
+import com.ruoyi.zhdd.domain.bo.PlanFileBo;
+import com.ruoyi.zhdd.domain.bo.PlanTaskBo;
+import com.ruoyi.zhdd.domain.vo.PlanFileVo;
+import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
+import com.ruoyi.zhdd.mapper.PlanFileMapper;
+import com.ruoyi.zhdd.mapper.PlanTaskMapper;
+import com.ruoyi.zhdd.service.IPlanFileService;
+import com.ruoyi.zhdd.service.IPlanTaskService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 预案任务管理Service业务层处理
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Service
+public class PlanFileServiceImpl extends ServicePlusImpl<PlanFileMapper, PlanFile, PlanFileVo> implements IPlanFileService {
+
+    @Override
+    public PlanFileVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<PlanFileVo> queryPageList(PlanFileBo bo) {
+        PagePlus<PlanFile, PlanFileVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<PlanFileVo> queryList(PlanFileBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<PlanFile> buildQueryWrapper(PlanFileBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<PlanFile> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getPlanId() != null, PlanFile::getPlanId, bo.getPlanId());
+        lqw.like(StringUtils.isNotBlank(bo.getFileName()), PlanFile::getFileName, bo.getFileName());
+        lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), PlanFile::getFileUrl, bo.getFileUrl());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(PlanFileBo bo) {
+        PlanFile add = BeanUtil.toBean(bo, PlanFile.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(PlanFileBo bo) {
+        PlanFile update = BeanUtil.toBean(bo, PlanFile.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(PlanFile entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 26 - 3
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanServiceImpl.java

@@ -7,9 +7,12 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.core.page.PagePlus;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.zhdd.domain.PlanFile;
 import com.ruoyi.zhdd.domain.PlanTask;
+import com.ruoyi.zhdd.domain.bo.PlanFileBo;
 import com.ruoyi.zhdd.domain.bo.PlanTaskBo;
 import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
+import com.ruoyi.zhdd.service.IPlanFileService;
 import com.ruoyi.zhdd.service.IPlanTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,6 +43,8 @@ public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> i
 
     @Autowired
     private IPlanTaskService planTaskService;
+    @Autowired
+    private IPlanFileService planFileService;
 
     @Override
     public PlanVo queryById(Long id){
@@ -69,6 +74,9 @@ public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> i
         map.put("3", three);
         map.put("4", four);
         voById.setPlanTasks(map);
+        PlanFileBo planFileBo = new PlanFileBo();
+        planFileBo.setPlanId(id);
+        voById.setPlanFiles(planFileService.queryList(planFileBo));
         return voById;
     }
 
@@ -103,7 +111,13 @@ public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> i
         for (PlanTask planTask : bo.getPlanTasks()) {
             planTask.setPlanId(planId);
         }
-        return planTaskService.saveAll(bo.getPlanTasks());
+        // 处理预案文件
+        for (PlanFile planFile : bo.getPlanFiles()) {
+            planFile.setPlanId(planId);
+        }
+        planTaskService.saveAll(bo.getPlanTasks());
+        planFileService.saveAll(bo.getPlanFiles());
+        return true;
     }
 
     @Override
@@ -118,7 +132,14 @@ public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> i
         for (PlanTask planTask : bo.getPlanTasks()) {
             planTask.setPlanId(planId);
         }
-        return planTaskService.saveAll(bo.getPlanTasks());
+        planFileService.remove(Wrappers.<PlanFile>lambdaQuery().eq(PlanFile::getPlanId, planId));
+        // 处理预案文件
+        for (PlanFile planFile : bo.getPlanFiles()) {
+            planFile.setPlanId(planId);
+        }
+        planTaskService.saveAll(bo.getPlanTasks());
+        planFileService.saveAll(bo.getPlanFiles());
+        return true;
     }
 
     /**
@@ -138,6 +159,8 @@ public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> i
         }
         removeByIds(ids);
         // 同时删除预案任务数据
-        return planTaskService.remove(Wrappers.<PlanTask>lambdaQuery().in(PlanTask::getPlanId, ids));
+        planTaskService.remove(Wrappers.<PlanTask>lambdaQuery().in(PlanTask::getPlanId, ids));
+        planFileService.remove(Wrappers.<PlanFile>lambdaQuery().in(PlanFile::getPlanId, ids));
+        return true;
     }
 }