浏览代码

应急资源接口

459242451@qq.com 3 年之前
父节点
当前提交
65e8d97982

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/ResourceController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.ResourceVo;
+import com.ruoyi.zhdd.domain.bo.ResourceBo;
+import com.ruoyi.zhdd.service.IResourceService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 应急资源Controller
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Validated
+@Api(value = "应急资源控制器", tags = {"应急资源管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/resource")
+public class ResourceController extends BaseController {
+
+    private final IResourceService iResourceService;
+
+    /**
+     * 查询应急资源列表
+     */
+    @ApiOperation("查询应急资源列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ResourceVo> list(@Validated(QueryGroup.class) ResourceBo bo) {
+        return iResourceService.queryPageList(bo);
+    }
+
+    /**
+     * 导出应急资源列表
+     */
+    @ApiOperation("导出应急资源列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:export')")
+    @Log(title = "应急资源", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated ResourceBo bo, HttpServletResponse response) {
+        List<ResourceVo> list = iResourceService.queryList(bo);
+        ExcelUtil.exportExcel(list, "应急资源", ResourceVo.class, response);
+    }
+
+    /**
+     * 获取应急资源详细信息
+     */
+    @ApiOperation("获取应急资源详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<ResourceVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iResourceService.queryById(id));
+    }
+
+    /**
+     * 新增应急资源
+     */
+    @ApiOperation("新增应急资源")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:add')")
+    @Log(title = "应急资源", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody ResourceBo bo) {
+        return toAjax(iResourceService.insertResource(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改应急资源
+     */
+    @ApiOperation("修改应急资源")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:edit')")
+    @Log(title = "应急资源", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody ResourceBo bo) {
+        return toAjax(iResourceService.updateResource(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除应急资源
+     */
+    @ApiOperation("删除应急资源")
+    @PreAuthorize("@ss.hasPermi('zhdd:resource:remove')")
+    @Log(title = "应急资源" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iResourceService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/ResourceDetailController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
+import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
+import com.ruoyi.zhdd.service.IResourceDetailService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 应急资源明细Controller
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Validated
+@Api(value = "应急资源明细控制器", tags = {"应急资源明细管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/resourceDetail")
+public class ResourceDetailController extends BaseController {
+
+    private final IResourceDetailService iResourceDetailService;
+
+    /**
+     * 查询应急资源明细列表
+     */
+    @ApiOperation("查询应急资源明细列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ResourceDetailVo> list(@Validated(QueryGroup.class) ResourceDetailBo bo) {
+        return iResourceDetailService.queryPageList(bo);
+    }
+
+    /**
+     * 导出应急资源明细列表
+     */
+    @ApiOperation("导出应急资源明细列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:export')")
+    @Log(title = "应急资源明细", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated ResourceDetailBo bo, HttpServletResponse response) {
+        List<ResourceDetailVo> list = iResourceDetailService.queryList(bo);
+        ExcelUtil.exportExcel(list, "应急资源明细", ResourceDetailVo.class, response);
+    }
+
+    /**
+     * 获取应急资源明细详细信息
+     */
+    @ApiOperation("获取应急资源明细详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<ResourceDetailVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iResourceDetailService.queryById(id));
+    }
+
+    /**
+     * 新增应急资源明细
+     */
+    @ApiOperation("新增应急资源明细")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:add')")
+    @Log(title = "应急资源明细", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody ResourceDetailBo bo) {
+        return toAjax(iResourceDetailService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改应急资源明细
+     */
+    @ApiOperation("修改应急资源明细")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:edit')")
+    @Log(title = "应急资源明细", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody ResourceDetailBo bo) {
+        return toAjax(iResourceDetailService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除应急资源明细
+     */
+    @ApiOperation("删除应急资源明细")
+    @PreAuthorize("@ss.hasPermi('zhdd:resourceDetail:remove')")
+    @Log(title = "应急资源明细" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iResourceDetailService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 112 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Resource.java

@@ -0,0 +1,112 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 应急资源对象 b_resource
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("b_resource")
+public class Resource implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * $column.columnComment
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 资源类型。1-仓库。2-队伍.3-车辆
+     */
+    private Integer resourceType;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    private String latitude;
+
+    /**
+     * 管理单位
+     */
+    private String manageUnit;
+
+    /**
+     * 人数
+     */
+    private Integer num;
+
+    /**
+     * 携带物资(应急时)
+     */
+    private String carryGoods;
+
+    /**
+     * 联系人
+     */
+    private String contactName;
+
+    /**
+     * 联系电话
+     */
+    private String contactPhone;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * $column.columnComment
+     */
+    @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;
+
+}

+ 80 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/ResourceDetail.java

@@ -0,0 +1,80 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 应急资源明细对象 b_resource_detail
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("b_resource_detail")
+public class ResourceDetail implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * $column.columnComment
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 资源id
+     */
+    private Long resourceId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 型号
+     */
+    private String model;
+
+    /**
+     * 规格
+     */
+    private String size;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+}

+ 133 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/ResourceBo.java

@@ -0,0 +1,133 @@
+package com.ruoyi.zhdd.domain.bo;
+
+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.*;
+
+import java.util.Date;
+import java.util.List;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 应急资源业务对象 b_resource
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("应急资源业务对象")
+public class ResourceBo extends BaseEntity {
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    @NotNull(message = "id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 资源类型。1-仓库。2-队伍.3-车辆
+     */
+    @ApiModelProperty(value = "资源类型。1-仓库。2-队伍.3-车辆")
+    @NotNull(message = "resourceType不能为空", groups = { AddGroup.class })
+    private Integer resourceType;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    @NotBlank(message = "name不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 地址
+     */
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 管理单位
+     */
+    @ApiModelProperty(value = "管理单位")
+    @NotBlank(message = "manageUnit不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String manageUnit;
+
+    /**
+     * 人数
+     */
+    @ApiModelProperty(value = "人数")
+    private Integer num;
+
+    /**
+     * 携带物资(应急时)
+     */
+    @ApiModelProperty(value = "携带物资(应急时)")
+    private String carryGoods;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    @NotBlank(message = "contactName不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String contactName;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    @NotBlank(message = "contactPhone不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String contactPhone;
+
+    /**
+     * $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;
+
+    private List<ResourceDetailBo> resourceDetailList;
+
+}

+ 100 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/ResourceDetailBo.java

@@ -0,0 +1,100 @@
+package com.ruoyi.zhdd.domain.bo;
+
+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.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 应急资源明细业务对象 b_resource_detail
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("应急资源明细业务对象")
+public class ResourceDetailBo extends BaseEntity {
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    private Long id;
+
+    /**
+     * 资源id
+     */
+    @ApiModelProperty(value = "资源id")
+    private Long resourceId;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 型号
+     */
+    @ApiModelProperty(value = "型号")
+    private String model;
+
+    /**
+     * 规格
+     */
+    @ApiModelProperty(value = "规格")
+    private String size;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量")
+    private Integer num;
+
+    /**
+     * 单位
+     */
+    @ApiModelProperty(value = "单位")
+    private String unit;
+
+    /**
+     * $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;
+
+}

+ 76 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceDetailVo.java

@@ -0,0 +1,76 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 应急资源明细视图对象 b_resource_detail
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Data
+@ApiModel("应急资源明细视图对象")
+@ExcelIgnoreUnannotated
+public class ResourceDetailVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  $pkColumn.columnComment
+     */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+    /**
+     * 资源id
+     */
+	@ExcelProperty(value = "资源id")
+	@ApiModelProperty("资源id")
+	private Long resourceId;
+
+    /**
+     * 名称
+     */
+	@ExcelProperty(value = "名称")
+	@ApiModelProperty("名称")
+	private String name;
+
+    /**
+     * 型号
+     */
+	@ExcelProperty(value = "型号")
+	@ApiModelProperty("型号")
+	private String model;
+
+    /**
+     * 规格
+     */
+	@ExcelProperty(value = "规格")
+	@ApiModelProperty("规格")
+	private String size;
+
+    /**
+     * 数量
+     */
+	@ExcelProperty(value = "数量")
+	@ApiModelProperty("数量")
+	private Integer num;
+
+    /**
+     * 单位
+     */
+	@ExcelProperty(value = "单位")
+	@ApiModelProperty("单位")
+	private String unit;
+
+
+}

+ 108 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceVo.java

@@ -0,0 +1,108 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import com.ruoyi.zhdd.domain.ResourceDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 应急资源视图对象 b_resource
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Data
+@ApiModel("应急资源视图对象")
+@ExcelIgnoreUnannotated
+public class ResourceVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  $pkColumn.columnComment
+     */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+    /**
+     * 资源类型。1-仓库。2-队伍.3-车辆
+     */
+	@ExcelProperty(value = "资源类型。1-仓库。2-队伍.3-车辆")
+	@ApiModelProperty("资源类型。1-仓库。2-队伍.3-车辆")
+	private Integer resourceType;
+
+    /**
+     * 名称
+     */
+	@ExcelProperty(value = "名称")
+	@ApiModelProperty("名称")
+	private String name;
+
+    /**
+     * 地址
+     */
+	@ExcelProperty(value = "地址")
+	@ApiModelProperty("地址")
+	private String address;
+
+    /**
+     * 经度
+     */
+	@ExcelProperty(value = "经度")
+	@ApiModelProperty("经度")
+	private String longitude;
+
+    /**
+     * 纬度
+     */
+	@ExcelProperty(value = "纬度")
+	@ApiModelProperty("纬度")
+	private String latitude;
+
+    /**
+     * 管理单位
+     */
+	@ExcelProperty(value = "管理单位")
+	@ApiModelProperty("管理单位")
+	private String manageUnit;
+
+    /**
+     * 人数
+     */
+	@ExcelProperty(value = "人数")
+	@ApiModelProperty("人数")
+	private Integer num;
+
+    /**
+     * 携带物资(应急时)
+     */
+	@ExcelProperty(value = "携带物资", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "应=急时")
+	@ApiModelProperty("携带物资(应急时)")
+	private String carryGoods;
+
+    /**
+     * 联系人
+     */
+	@ExcelProperty(value = "联系人")
+	@ApiModelProperty("联系人")
+	private String contactName;
+
+    /**
+     * 联系电话
+     */
+	@ExcelProperty(value = "联系电话")
+	@ApiModelProperty("联系电话")
+	private String contactPhone;
+
+    private List<ResourceDetail> resourceDetailList;
+
+
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/ResourceDetailMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.ResourceDetail;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 应急资源明细Mapper接口
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+public interface ResourceDetailMapper extends BaseMapperPlus<ResourceDetail> {
+
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/ResourceMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.Resource;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 应急资源Mapper接口
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+public interface ResourceMapper extends BaseMapperPlus<Resource> {
+
+}

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

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.ResourceDetail;
+import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
+import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 应急资源明细Service接口
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+public interface IResourceDetailService extends IServicePlus<ResourceDetail, ResourceDetailVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ResourceDetailVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<ResourceDetailVo> queryPageList(ResourceDetailBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<ResourceDetailVo> queryList(ResourceDetailBo bo);
+
+	/**
+	 * 根据新增业务对象插入应急资源明细
+	 * @param bo 应急资源明细新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(ResourceDetailBo bo);
+
+	/**
+	 * 根据编辑业务对象修改应急资源明细
+	 * @param bo 应急资源明细编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(ResourceDetailBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 61 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IResourceService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.Resource;
+import com.ruoyi.zhdd.domain.vo.ResourceVo;
+import com.ruoyi.zhdd.domain.bo.ResourceBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 应急资源Service接口
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+public interface IResourceService extends IServicePlus<Resource, ResourceVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ResourceVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<ResourceVo> queryPageList(ResourceBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<ResourceVo> queryList(ResourceBo bo);
+
+	/**
+	 * 根据新增业务对象插入应急资源
+	 * @param bo 应急资源新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(ResourceBo bo);
+
+	/**
+	 * 根据编辑业务对象修改应急资源
+	 * @param bo 应急资源编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(ResourceBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    boolean insertResource(ResourceBo bo);
+
+    boolean updateResource(ResourceBo bo);
+
+}

+ 89 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/ResourceDetailServiceImpl.java

@@ -0,0 +1,89 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+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 org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
+import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
+import com.ruoyi.zhdd.domain.ResourceDetail;
+import com.ruoyi.zhdd.mapper.ResourceDetailMapper;
+import com.ruoyi.zhdd.service.IResourceDetailService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 应急资源明细Service业务层处理
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Service
+public class ResourceDetailServiceImpl extends ServicePlusImpl<ResourceDetailMapper, ResourceDetail, ResourceDetailVo> implements IResourceDetailService {
+
+    @Override
+    public ResourceDetailVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<ResourceDetailVo> queryPageList(ResourceDetailBo bo) {
+        PagePlus<ResourceDetail, ResourceDetailVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<ResourceDetailVo> queryList(ResourceDetailBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<ResourceDetail> buildQueryWrapper(ResourceDetailBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<ResourceDetail> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getResourceId() != null, ResourceDetail::getResourceId, bo.getResourceId());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), ResourceDetail::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getModel()), ResourceDetail::getModel, bo.getModel());
+        lqw.eq(StringUtils.isNotBlank(bo.getSize()), ResourceDetail::getSize, bo.getSize());
+        lqw.eq(bo.getNum() != null, ResourceDetail::getNum, bo.getNum());
+        lqw.eq(StringUtils.isNotBlank(bo.getUnit()), ResourceDetail::getUnit, bo.getUnit());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(ResourceDetailBo bo) {
+        ResourceDetail add = BeanUtil.toBean(bo, ResourceDetail.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(ResourceDetailBo bo) {
+        ResourceDetail update = BeanUtil.toBean(bo, ResourceDetail.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ResourceDetail entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 163 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/ResourceServiceImpl.java

@@ -0,0 +1,163 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+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.ResourceDetail;
+import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
+import com.ruoyi.zhdd.service.IResourceDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.ResourceBo;
+import com.ruoyi.zhdd.domain.vo.ResourceVo;
+import com.ruoyi.zhdd.domain.Resource;
+import com.ruoyi.zhdd.mapper.ResourceMapper;
+import com.ruoyi.zhdd.service.IResourceService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 应急资源Service业务层处理
+ *
+ * @author xintong
+ * @date 2021-10-27
+ */
+@Service
+public class ResourceServiceImpl extends ServicePlusImpl<ResourceMapper, Resource, ResourceVo> implements IResourceService {
+
+    @Autowired
+    private IResourceDetailService resourceDetailService;
+
+    @Override
+    public ResourceVo queryById(Long id){
+        ResourceVo voById = getVoById(id);
+        if (voById.getResourceType() == 1) {
+            // 应急仓库的类型查询仓库物资
+            List<ResourceDetail> list = resourceDetailService.list(Wrappers.<ResourceDetail>lambdaQuery().eq(ResourceDetail::getResourceId, id));
+            voById.setResourceDetailList(list);
+        }
+        return voById;
+    }
+
+    @Override
+    public TableDataInfo<ResourceVo> queryPageList(ResourceBo bo) {
+        PagePlus<Resource, ResourceVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<ResourceVo> queryList(ResourceBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<Resource> buildQueryWrapper(ResourceBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<Resource> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getResourceType() != null, Resource::getResourceType, bo.getResourceType());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), Resource::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getAddress()), Resource::getAddress, bo.getAddress());
+        lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), Resource::getLongitude, bo.getLongitude());
+        lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), Resource::getLatitude, bo.getLatitude());
+        lqw.like(StringUtils.isNotBlank(bo.getManageUnit()), Resource::getManageUnit, bo.getManageUnit());
+        lqw.eq(bo.getNum() != null, Resource::getNum, bo.getNum());
+        lqw.eq(StringUtils.isNotBlank(bo.getCarryGoods()), Resource::getCarryGoods, bo.getCarryGoods());
+        lqw.like(StringUtils.isNotBlank(bo.getContactName()), Resource::getContactName, bo.getContactName());
+        lqw.eq(StringUtils.isNotBlank(bo.getContactPhone()), Resource::getContactPhone, bo.getContactPhone());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(ResourceBo bo) {
+        Resource add = BeanUtil.toBean(bo, Resource.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(ResourceBo bo) {
+        Resource update = BeanUtil.toBean(bo, Resource.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(Resource entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        // 删除资源明细内容
+        resourceDetailService.remove(Wrappers.<ResourceDetail>lambdaQuery().in(ResourceDetail::getResourceId, ids));
+        return removeByIds(ids);
+    }
+
+    /**
+     * 插入应急资源数据
+     * @param bo
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertResource(ResourceBo bo) {
+        Resource add = BeanUtil.toBean(bo, Resource.class);
+        boolean save = save(add);
+        if (save) {
+            if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {
+                // 处理应急物资内容
+                List<ResourceDetail> list = new ArrayList<>();
+                for (ResourceDetailBo resourceDetailBo : bo.getResourceDetailList()) {
+                    resourceDetailBo.setResourceId(add.getId());
+                    ResourceDetail resourceDetail = BeanUtil.toBean(resourceDetailBo, ResourceDetail.class);
+                    list.add(resourceDetail);
+                }
+                resourceDetailService.saveAll(list);
+            }
+        }
+        return save;
+    }
+
+    /**
+     * 更新资源信息
+     * @param bo
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateResource(ResourceBo bo) {
+        Resource update = BeanUtil.toBean(bo, Resource.class);
+        boolean save = updateById(update);
+        if (save) {
+            if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {
+                // 处理应急物资内容
+                // 先删除原有的数据
+                resourceDetailService.remove(Wrappers.<ResourceDetail>lambdaQuery().eq(ResourceDetail::getResourceId, update.getId()));
+                List<ResourceDetail> list = new ArrayList<>();
+                for (ResourceDetailBo resourceDetailBo : bo.getResourceDetailList()) {
+                    resourceDetailBo.setResourceId(update.getId());
+                    ResourceDetail resourceDetail = BeanUtil.toBean(resourceDetailBo, ResourceDetail.class);
+                    list.add(resourceDetail);
+                }
+                resourceDetailService.saveAll(list);
+            }
+        }
+        return save;
+    }
+}

+ 21 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/ResourceDetailMapper.xml

@@ -0,0 +1,21 @@
+<?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.zhdd.mapper.ResourceDetailMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.ResourceDetail" id="ResourceDetailResult">
+        <result property="id" column="id"/>
+        <result property="resourceId" column="resource_id"/>
+        <result property="name" column="name"/>
+        <result property="model" column="model"/>
+        <result property="size" column="size"/>
+        <result property="num" column="num"/>
+        <result property="unit" column="unit"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+
+</mapper>

+ 27 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/ResourceMapper.xml

@@ -0,0 +1,27 @@
+<?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.zhdd.mapper.ResourceMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.Resource" id="ResourceResult">
+        <result property="id" column="id"/>
+        <result property="resourceType" column="resource_type"/>
+        <result property="name" column="name"/>
+        <result property="address" column="address"/>
+        <result property="longitude" column="longitude"/>
+        <result property="latitude" column="latitude"/>
+        <result property="manageUnit" column="manage_unit"/>
+        <result property="num" column="num"/>
+        <result property="carryGoods" column="carry_goods"/>
+        <result property="contactName" column="contact_name"/>
+        <result property="contactPhone" column="contact_phone"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>