list = iBusPipelineService.addPipeBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return new ErrorResponseData(400, "导入管线失败");
+ }
return ResponseData.success();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
new file mode 100644
index 0000000..11abd4b
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.modular.device.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 管线表
+ *
+ *
+ * @author zt
+ * @since 2024-08-29
+ */
+@Data
+public class BusPipelineImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("管线编号")
+ private String pipeCode;
+
+ @ExcelProperty("管径(mm)")
+ private String pipeDiameter;
+
+ @ExcelProperty("材质")
+ private String material;
+
+ @ExcelProperty("建设年代")
+ private String constructEra;
+
+ @ExcelProperty("管理单位")
+ private Long deptid;
+
+ @ExcelProperty("产权单位")
+ private String propertyOwner;
+
+ @ExcelProperty("管线位置")
+ private String position;
+
+ @ExcelProperty("压力级制")
+ private String pressType;
+
+ @ExcelProperty("管理方式")
+ private String manageType;
+
+ @ExcelProperty("起点经度")
+ private String startLng;
+
+ @ExcelProperty("起点纬度")
+ private String startLat;
+
+ @ExcelProperty("终点经度")
+ private String endLng;
+
+ @ExcelProperty("终点纬度")
+ private String endLat;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
index 9ab8227..45e9e8c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.dto;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -14,6 +15,7 @@
* @since 2024-08-29
*/
@Data
+@ExcelIgnoreUnannotated
public class BusPipelineRequestDTO implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
index 7a51dee..d548d3c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
@@ -1,6 +1,8 @@
package com.casic.missiles.modular.device.entity;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -25,29 +27,35 @@
@Setter
@TableName("bus_pipeline")
@ApiModel(value = "BusPipeline对象", description = "管线表")
+@ExcelIgnoreUnannotated
public class BusPipeline implements Serializable {
private static final long serialVersionUID = 1L;
+ @ColumnWidth(15)
@ApiModelProperty("主键")
@TableId(value = "ID", type = IdType.AUTO)
private Long id;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线编号", order = 1)
@ApiModelProperty("管线编号")
@TableField("PIPE_CODE")
private String pipeCode;
+ @ColumnWidth(15)
@ExcelProperty(value = "管径(mm)", order = 5)
@ApiModelProperty("管径(mm)")
@TableField("PIPE_DIAMETER")
private String pipeDiameter;
+ @ColumnWidth(15)
@ExcelProperty(value = "材质", order = 4)
@ApiModelProperty("材质")
@TableField("MATERIAL")
private String material;
+ @ColumnWidth(15)
@ExcelProperty(value = "建设年代", order = 6)
@ApiModelProperty("建设年代")
@TableField("CONSTRUCT_ERA")
@@ -57,11 +65,13 @@
@TableField("DEPTID")
private Long deptid;
+ @ColumnWidth(15)
@ExcelProperty(value = "产权单位", order = 7)
@ApiModelProperty("产权单位")
@TableField("PROPERTY_OWNER")
private String propertyOwner;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线位置", order = 2)
@ApiModelProperty("详细位置")
@TableField("POSITION")
@@ -75,21 +85,25 @@
@TableField("MANAGE_TYPE")
private String manageType;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点经度", order = 10)
@ApiModelProperty("起始经度")
@TableField("START_LNG")
private String startLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点纬度", order = 11)
@ApiModelProperty("起始纬度")
@TableField("START_LAT")
private String startLat;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点经度", order = 12)
@ApiModelProperty("终止经度")
@TableField("END_LNG")
private String endLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点纬度", order = 13)
@ApiModelProperty("终止纬度")
@TableField("END_LAT")
@@ -99,17 +113,19 @@
@TableField("TS")
private Date ts;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理方式", order = 9)
@ApiModelProperty("管理方式名称")
@TableField(exist = false)
private String manageTypeName;
-
+ @ColumnWidth(15)
@ExcelProperty(value = "压力级制", order = 3)
@ApiModelProperty("压力级制名称")
@TableField(exist = false)
private String pressTypeName;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理单位", order = 8)
@ApiModelProperty("权属单位名称")
@TableField(exist = false)
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
index fe250fc..09f7f98 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
@@ -2,11 +2,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import java.util.List;
-import java.util.Map;
/**
*
@@ -20,6 +20,8 @@
Page listPage(Page page, BusPipelineRequestDTO requestDTO);
+ List addPipeBatch(List results);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
index de7ec8d..3bacde5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
@@ -51,11 +51,14 @@
and ac.ID =#{request.alarmLevelId}
+
+ and ay.ID =#{request.alarmTypeId}
+
and bt.ID =#{request.typeId}
-
- and bm.ID =#{request.manufactureId}
+
+ and bm.ID =#{request.manufacturerId}
and bp.ID =#{request.productId}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
index 78b852d..7e7ee50 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
@@ -9,6 +9,9 @@
@ApiModelProperty("报警名称")
private String alarmName;
+ @ApiModelProperty("报警类型id")
+ private Long alarmTypeId;
+
@ApiModelProperty("产品类型id")
private Long productId;
@@ -16,7 +19,7 @@
private Long typeId;
@ApiModelProperty("厂商id")
- private Long manufactureId;
+ private Long manufacturerId;
@ApiModelProperty("报警等级id")
private Long alarmLevelId;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
index fc51328..6f2303e 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
@@ -3,6 +3,8 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.core.base.service.IBaseExportService;
@@ -14,6 +16,7 @@
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.response.ErrorResponseData;
import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
@@ -49,7 +52,11 @@
@PostMapping("/add")
@ResponseBody
public ReturnDTO add(@RequestBody BusPipeline busPipeline) {
-
+ if(ObjectUtil.isNotEmpty(busPipeline.getPipeCode())){
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("PIPE_CODE",busPipeline.getPipeCode());
+ iBusPipelineService.remove(queryWrapper);
+ }
return ReturnUtil.success(iBusPipelineService.save(busPipeline));
}
@@ -82,37 +89,37 @@
return ReturnUtil.success(iBusPipelineService.removeByIds(idsDTO.getIds()));
}
- @ApiOperation("批量导入,待开发")
+ @ApiOperation("批量导入")
@RequestMapping(value = "/batchImport", method = RequestMethod.POST)
@ResponseBody
public Object batchImport(@RequestParam("file") MultipartFile file) {
-// List results = new ArrayList<>();
-// //设置表头与字段映射,可通过反射获取
-// Map mapper = new HashMap<>();
-// //判断唯一
-// mapper.put("管线编号", "devcode");
-// mapper.put("管线位置", "productId");
-// mapper.put("压力级制", "tagNumber");
-// mapper.put("材质", "valid");
-// mapper.put("管径", "installDate");
-// mapper.put("建设年代", "installDate");
-// mapper.put("管理单位", "installDate");
-// mapper.put("产权单位", "installDate");
-// mapper.put("管理方式", "installDate");
-// mapper.put("起点经度", "installDate");
-// mapper.put("起点纬度", "installDate");
-// mapper.put("终点经度", "installDate");
-// mapper.put("终点纬度", "installDate");
-// try {
-// results = this.importExcel(BusPipelineRequestDTO.class, file, null, null);
-// List list = iBusPipelineService.addPipeBatch(results);
-// if (!CollectionUtil.isEmpty(list)) {
-// //获取校验报错信息
-// return new ErrorResponseData(list.get(0));
-// }
-// } catch (Exception e) {
-// return catchMybatisPlusException(e, "导入设备失败");
-// }
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("管线编号", "pipeCode");
+ mapper.put("管线位置", "position");
+ mapper.put("压力级制", "pressType");
+ mapper.put("材质", "material");
+ mapper.put("管径(mm)", "pipeDiameter");
+ mapper.put("建设年代", "constructEra");
+ mapper.put("管理单位", "deptid");
+ mapper.put("产权单位", "propertyOwner");
+ mapper.put("管理方式", "manageType");
+ mapper.put("起点经度", "startLng");
+ mapper.put("起点纬度", "startLat");
+ mapper.put("终点经度", "endLng");
+ mapper.put("终点纬度", "endLat");
+ try {
+ results = this.importExcel(BusPipelineImportDTO.class, file, null, null);
+ List list = iBusPipelineService.addPipeBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return new ErrorResponseData(400, "导入管线失败");
+ }
return ResponseData.success();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
new file mode 100644
index 0000000..11abd4b
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.modular.device.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 管线表
+ *
+ *
+ * @author zt
+ * @since 2024-08-29
+ */
+@Data
+public class BusPipelineImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("管线编号")
+ private String pipeCode;
+
+ @ExcelProperty("管径(mm)")
+ private String pipeDiameter;
+
+ @ExcelProperty("材质")
+ private String material;
+
+ @ExcelProperty("建设年代")
+ private String constructEra;
+
+ @ExcelProperty("管理单位")
+ private Long deptid;
+
+ @ExcelProperty("产权单位")
+ private String propertyOwner;
+
+ @ExcelProperty("管线位置")
+ private String position;
+
+ @ExcelProperty("压力级制")
+ private String pressType;
+
+ @ExcelProperty("管理方式")
+ private String manageType;
+
+ @ExcelProperty("起点经度")
+ private String startLng;
+
+ @ExcelProperty("起点纬度")
+ private String startLat;
+
+ @ExcelProperty("终点经度")
+ private String endLng;
+
+ @ExcelProperty("终点纬度")
+ private String endLat;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
index 9ab8227..45e9e8c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.dto;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -14,6 +15,7 @@
* @since 2024-08-29
*/
@Data
+@ExcelIgnoreUnannotated
public class BusPipelineRequestDTO implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
index 7a51dee..d548d3c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
@@ -1,6 +1,8 @@
package com.casic.missiles.modular.device.entity;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -25,29 +27,35 @@
@Setter
@TableName("bus_pipeline")
@ApiModel(value = "BusPipeline对象", description = "管线表")
+@ExcelIgnoreUnannotated
public class BusPipeline implements Serializable {
private static final long serialVersionUID = 1L;
+ @ColumnWidth(15)
@ApiModelProperty("主键")
@TableId(value = "ID", type = IdType.AUTO)
private Long id;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线编号", order = 1)
@ApiModelProperty("管线编号")
@TableField("PIPE_CODE")
private String pipeCode;
+ @ColumnWidth(15)
@ExcelProperty(value = "管径(mm)", order = 5)
@ApiModelProperty("管径(mm)")
@TableField("PIPE_DIAMETER")
private String pipeDiameter;
+ @ColumnWidth(15)
@ExcelProperty(value = "材质", order = 4)
@ApiModelProperty("材质")
@TableField("MATERIAL")
private String material;
+ @ColumnWidth(15)
@ExcelProperty(value = "建设年代", order = 6)
@ApiModelProperty("建设年代")
@TableField("CONSTRUCT_ERA")
@@ -57,11 +65,13 @@
@TableField("DEPTID")
private Long deptid;
+ @ColumnWidth(15)
@ExcelProperty(value = "产权单位", order = 7)
@ApiModelProperty("产权单位")
@TableField("PROPERTY_OWNER")
private String propertyOwner;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线位置", order = 2)
@ApiModelProperty("详细位置")
@TableField("POSITION")
@@ -75,21 +85,25 @@
@TableField("MANAGE_TYPE")
private String manageType;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点经度", order = 10)
@ApiModelProperty("起始经度")
@TableField("START_LNG")
private String startLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点纬度", order = 11)
@ApiModelProperty("起始纬度")
@TableField("START_LAT")
private String startLat;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点经度", order = 12)
@ApiModelProperty("终止经度")
@TableField("END_LNG")
private String endLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点纬度", order = 13)
@ApiModelProperty("终止纬度")
@TableField("END_LAT")
@@ -99,17 +113,19 @@
@TableField("TS")
private Date ts;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理方式", order = 9)
@ApiModelProperty("管理方式名称")
@TableField(exist = false)
private String manageTypeName;
-
+ @ColumnWidth(15)
@ExcelProperty(value = "压力级制", order = 3)
@ApiModelProperty("压力级制名称")
@TableField(exist = false)
private String pressTypeName;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理单位", order = 8)
@ApiModelProperty("权属单位名称")
@TableField(exist = false)
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
index fe250fc..09f7f98 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
@@ -2,11 +2,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import java.util.List;
-import java.util.Map;
/**
*
@@ -20,6 +20,8 @@
Page listPage(Page page, BusPipelineRequestDTO requestDTO);
+ List addPipeBatch(List results);
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
index cccf1eb..a48fde4 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,16 +10,20 @@
import com.casic.missiles.core.application.service.AbstractDeptService;
import com.casic.missiles.core.application.service.AbstractDictService;
import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.enums.PipeInfoEnum;
import com.casic.missiles.modular.device.dao.BusPipelineMapper;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
import com.casic.missiles.modular.system.model.Dept;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -45,21 +50,21 @@
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
- Page pipelinePage = this.baseMapper.listPage(dataScope,page,requestDTO,getDeptIds(requestDTO.getDeptid()));
+ Page pipelinePage = this.baseMapper.listPage(dataScope, page, requestDTO, getDeptIds(requestDTO.getDeptid()));
List busPipelineList = pipelinePage.getRecords();
busPipelineList.forEach(busPipeline -> {
- busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType",busPipeline.getManageType()));
+ busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType", busPipeline.getManageType()));
- busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType",busPipeline.getPressType()));
+ busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType", busPipeline.getPressType()));
busPipeline.setDeptName(getDeptNamesByDeptId(busPipeline.getDeptid()));
});
- return pipelinePage;
+ return pipelinePage;
}
public String getDeptIds(Long deptId) {
@@ -76,9 +81,50 @@
List deptIds = abstractDeptService.getParentListById(deptId);
deptIds.add(deptId);
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.in("id",deptIds);
+ queryWrapper.in("id", deptIds);
List deptList = abstractDeptService.list(queryWrapper);
- List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
+ List nameList = deptList.stream().filter(dept -> ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
return String.join("/", nameList);
}
+
+
+ @Transactional
+ @Override
+ public List addPipeBatch(List results) {
+ List list = new ArrayList<>();
+ if (!CollectionUtil.isEmpty(results)) {
+ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
+ List deptIds = dataScope.getDeptIds();
+ final Integer[] index = {0};
+ results.forEach(pipeImportDTO -> {
+ index[0]++;
+ //管理单位校验
+ if (!deptIds.contains(pipeImportDTO.getDeptid())) {
+ list.add("第" + index[0] + "行,管理单位不存在!");
+ return;
+ }
+ });
+ if (CollectionUtil.isNotEmpty(list)) {
+ return list;
+ }
+ List pipeCodes = results.stream().map(BusPipelineImportDTO::getPipeCode).collect(Collectors.toList());
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("PIPE_CODE", pipeCodes);
+ this.remove(queryWrapper);
+ List busPipelineList = new ArrayList<>();
+ for (BusPipelineImportDTO importDTO : results) {
+ BusPipeline busPipeline = new BusPipeline();
+ BeanUtils.copyProperties(importDTO,busPipeline );
+ busPipeline.setManageType(PipeInfoEnum.getValue(importDTO.getManageType()));
+ busPipeline.setPressType(PipeInfoEnum.getValue(importDTO.getPressType()));
+ busPipelineList.add(busPipeline);
+ }
+ //保存管线信息
+ this.saveBatch(busPipelineList);
+ } else {
+ list.add("导入数据不能为空");
+ }
+ return list;
+ }
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
index de7ec8d..3bacde5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
@@ -51,11 +51,14 @@
and ac.ID =#{request.alarmLevelId}
+
+ and ay.ID =#{request.alarmTypeId}
+
and bt.ID =#{request.typeId}
-
- and bm.ID =#{request.manufactureId}
+
+ and bm.ID =#{request.manufacturerId}
and bp.ID =#{request.productId}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
index 78b852d..7e7ee50 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
@@ -9,6 +9,9 @@
@ApiModelProperty("报警名称")
private String alarmName;
+ @ApiModelProperty("报警类型id")
+ private Long alarmTypeId;
+
@ApiModelProperty("产品类型id")
private Long productId;
@@ -16,7 +19,7 @@
private Long typeId;
@ApiModelProperty("厂商id")
- private Long manufactureId;
+ private Long manufacturerId;
@ApiModelProperty("报警等级id")
private Long alarmLevelId;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
index fc51328..6f2303e 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
@@ -3,6 +3,8 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.core.base.service.IBaseExportService;
@@ -14,6 +16,7 @@
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.response.ErrorResponseData;
import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
@@ -49,7 +52,11 @@
@PostMapping("/add")
@ResponseBody
public ReturnDTO add(@RequestBody BusPipeline busPipeline) {
-
+ if(ObjectUtil.isNotEmpty(busPipeline.getPipeCode())){
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("PIPE_CODE",busPipeline.getPipeCode());
+ iBusPipelineService.remove(queryWrapper);
+ }
return ReturnUtil.success(iBusPipelineService.save(busPipeline));
}
@@ -82,37 +89,37 @@
return ReturnUtil.success(iBusPipelineService.removeByIds(idsDTO.getIds()));
}
- @ApiOperation("批量导入,待开发")
+ @ApiOperation("批量导入")
@RequestMapping(value = "/batchImport", method = RequestMethod.POST)
@ResponseBody
public Object batchImport(@RequestParam("file") MultipartFile file) {
-// List results = new ArrayList<>();
-// //设置表头与字段映射,可通过反射获取
-// Map mapper = new HashMap<>();
-// //判断唯一
-// mapper.put("管线编号", "devcode");
-// mapper.put("管线位置", "productId");
-// mapper.put("压力级制", "tagNumber");
-// mapper.put("材质", "valid");
-// mapper.put("管径", "installDate");
-// mapper.put("建设年代", "installDate");
-// mapper.put("管理单位", "installDate");
-// mapper.put("产权单位", "installDate");
-// mapper.put("管理方式", "installDate");
-// mapper.put("起点经度", "installDate");
-// mapper.put("起点纬度", "installDate");
-// mapper.put("终点经度", "installDate");
-// mapper.put("终点纬度", "installDate");
-// try {
-// results = this.importExcel(BusPipelineRequestDTO.class, file, null, null);
-// List list = iBusPipelineService.addPipeBatch(results);
-// if (!CollectionUtil.isEmpty(list)) {
-// //获取校验报错信息
-// return new ErrorResponseData(list.get(0));
-// }
-// } catch (Exception e) {
-// return catchMybatisPlusException(e, "导入设备失败");
-// }
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("管线编号", "pipeCode");
+ mapper.put("管线位置", "position");
+ mapper.put("压力级制", "pressType");
+ mapper.put("材质", "material");
+ mapper.put("管径(mm)", "pipeDiameter");
+ mapper.put("建设年代", "constructEra");
+ mapper.put("管理单位", "deptid");
+ mapper.put("产权单位", "propertyOwner");
+ mapper.put("管理方式", "manageType");
+ mapper.put("起点经度", "startLng");
+ mapper.put("起点纬度", "startLat");
+ mapper.put("终点经度", "endLng");
+ mapper.put("终点纬度", "endLat");
+ try {
+ results = this.importExcel(BusPipelineImportDTO.class, file, null, null);
+ List list = iBusPipelineService.addPipeBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return new ErrorResponseData(400, "导入管线失败");
+ }
return ResponseData.success();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
new file mode 100644
index 0000000..11abd4b
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.modular.device.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 管线表
+ *
+ *
+ * @author zt
+ * @since 2024-08-29
+ */
+@Data
+public class BusPipelineImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("管线编号")
+ private String pipeCode;
+
+ @ExcelProperty("管径(mm)")
+ private String pipeDiameter;
+
+ @ExcelProperty("材质")
+ private String material;
+
+ @ExcelProperty("建设年代")
+ private String constructEra;
+
+ @ExcelProperty("管理单位")
+ private Long deptid;
+
+ @ExcelProperty("产权单位")
+ private String propertyOwner;
+
+ @ExcelProperty("管线位置")
+ private String position;
+
+ @ExcelProperty("压力级制")
+ private String pressType;
+
+ @ExcelProperty("管理方式")
+ private String manageType;
+
+ @ExcelProperty("起点经度")
+ private String startLng;
+
+ @ExcelProperty("起点纬度")
+ private String startLat;
+
+ @ExcelProperty("终点经度")
+ private String endLng;
+
+ @ExcelProperty("终点纬度")
+ private String endLat;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
index 9ab8227..45e9e8c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.dto;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -14,6 +15,7 @@
* @since 2024-08-29
*/
@Data
+@ExcelIgnoreUnannotated
public class BusPipelineRequestDTO implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
index 7a51dee..d548d3c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
@@ -1,6 +1,8 @@
package com.casic.missiles.modular.device.entity;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -25,29 +27,35 @@
@Setter
@TableName("bus_pipeline")
@ApiModel(value = "BusPipeline对象", description = "管线表")
+@ExcelIgnoreUnannotated
public class BusPipeline implements Serializable {
private static final long serialVersionUID = 1L;
+ @ColumnWidth(15)
@ApiModelProperty("主键")
@TableId(value = "ID", type = IdType.AUTO)
private Long id;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线编号", order = 1)
@ApiModelProperty("管线编号")
@TableField("PIPE_CODE")
private String pipeCode;
+ @ColumnWidth(15)
@ExcelProperty(value = "管径(mm)", order = 5)
@ApiModelProperty("管径(mm)")
@TableField("PIPE_DIAMETER")
private String pipeDiameter;
+ @ColumnWidth(15)
@ExcelProperty(value = "材质", order = 4)
@ApiModelProperty("材质")
@TableField("MATERIAL")
private String material;
+ @ColumnWidth(15)
@ExcelProperty(value = "建设年代", order = 6)
@ApiModelProperty("建设年代")
@TableField("CONSTRUCT_ERA")
@@ -57,11 +65,13 @@
@TableField("DEPTID")
private Long deptid;
+ @ColumnWidth(15)
@ExcelProperty(value = "产权单位", order = 7)
@ApiModelProperty("产权单位")
@TableField("PROPERTY_OWNER")
private String propertyOwner;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线位置", order = 2)
@ApiModelProperty("详细位置")
@TableField("POSITION")
@@ -75,21 +85,25 @@
@TableField("MANAGE_TYPE")
private String manageType;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点经度", order = 10)
@ApiModelProperty("起始经度")
@TableField("START_LNG")
private String startLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点纬度", order = 11)
@ApiModelProperty("起始纬度")
@TableField("START_LAT")
private String startLat;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点经度", order = 12)
@ApiModelProperty("终止经度")
@TableField("END_LNG")
private String endLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点纬度", order = 13)
@ApiModelProperty("终止纬度")
@TableField("END_LAT")
@@ -99,17 +113,19 @@
@TableField("TS")
private Date ts;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理方式", order = 9)
@ApiModelProperty("管理方式名称")
@TableField(exist = false)
private String manageTypeName;
-
+ @ColumnWidth(15)
@ExcelProperty(value = "压力级制", order = 3)
@ApiModelProperty("压力级制名称")
@TableField(exist = false)
private String pressTypeName;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理单位", order = 8)
@ApiModelProperty("权属单位名称")
@TableField(exist = false)
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
index fe250fc..09f7f98 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
@@ -2,11 +2,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import java.util.List;
-import java.util.Map;
/**
*
@@ -20,6 +20,8 @@
Page listPage(Page page, BusPipelineRequestDTO requestDTO);
+ List addPipeBatch(List results);
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
index cccf1eb..a48fde4 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,16 +10,20 @@
import com.casic.missiles.core.application.service.AbstractDeptService;
import com.casic.missiles.core.application.service.AbstractDictService;
import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.enums.PipeInfoEnum;
import com.casic.missiles.modular.device.dao.BusPipelineMapper;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
import com.casic.missiles.modular.system.model.Dept;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -45,21 +50,21 @@
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
- Page pipelinePage = this.baseMapper.listPage(dataScope,page,requestDTO,getDeptIds(requestDTO.getDeptid()));
+ Page pipelinePage = this.baseMapper.listPage(dataScope, page, requestDTO, getDeptIds(requestDTO.getDeptid()));
List busPipelineList = pipelinePage.getRecords();
busPipelineList.forEach(busPipeline -> {
- busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType",busPipeline.getManageType()));
+ busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType", busPipeline.getManageType()));
- busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType",busPipeline.getPressType()));
+ busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType", busPipeline.getPressType()));
busPipeline.setDeptName(getDeptNamesByDeptId(busPipeline.getDeptid()));
});
- return pipelinePage;
+ return pipelinePage;
}
public String getDeptIds(Long deptId) {
@@ -76,9 +81,50 @@
List deptIds = abstractDeptService.getParentListById(deptId);
deptIds.add(deptId);
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.in("id",deptIds);
+ queryWrapper.in("id", deptIds);
List deptList = abstractDeptService.list(queryWrapper);
- List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
+ List nameList = deptList.stream().filter(dept -> ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
return String.join("/", nameList);
}
+
+
+ @Transactional
+ @Override
+ public List addPipeBatch(List results) {
+ List list = new ArrayList<>();
+ if (!CollectionUtil.isEmpty(results)) {
+ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
+ List deptIds = dataScope.getDeptIds();
+ final Integer[] index = {0};
+ results.forEach(pipeImportDTO -> {
+ index[0]++;
+ //管理单位校验
+ if (!deptIds.contains(pipeImportDTO.getDeptid())) {
+ list.add("第" + index[0] + "行,管理单位不存在!");
+ return;
+ }
+ });
+ if (CollectionUtil.isNotEmpty(list)) {
+ return list;
+ }
+ List pipeCodes = results.stream().map(BusPipelineImportDTO::getPipeCode).collect(Collectors.toList());
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("PIPE_CODE", pipeCodes);
+ this.remove(queryWrapper);
+ List busPipelineList = new ArrayList<>();
+ for (BusPipelineImportDTO importDTO : results) {
+ BusPipeline busPipeline = new BusPipeline();
+ BeanUtils.copyProperties(importDTO,busPipeline );
+ busPipeline.setManageType(PipeInfoEnum.getValue(importDTO.getManageType()));
+ busPipeline.setPressType(PipeInfoEnum.getValue(importDTO.getPressType()));
+ busPipelineList.add(busPipeline);
+ }
+ //保存管线信息
+ this.saveBatch(busPipelineList);
+ } else {
+ list.add("导入数据不能为空");
+ }
+ return list;
+ }
}
diff --git a/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java
new file mode 100644
index 0000000..755efca
--- /dev/null
+++ b/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.enums;
+
+
+public enum PipeInfoEnum {
+
+ GY("高压", "4"),
+ ZY("中压", "5"),
+ DY("低压", "6"),
+ CGY("次高压", "7"),
+ ZY1("自有", "0"),
+ ZG("自管", "1");
+
+ private String code;
+ private String value;
+
+ PipeInfoEnum(String code, String value) {
+ this.code = code;
+ this.value = value;
+ }
+
+
+ public static String getValue(String code){
+ for(PipeInfoEnum approvalStatusEnum :values()){
+ if(approvalStatusEnum.code.equals(code)){
+ return approvalStatusEnum.value;
+ }
+ }
+ return "";
+ }
+
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
index de7ec8d..3bacde5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleMapper.xml
@@ -51,11 +51,14 @@
and ac.ID =#{request.alarmLevelId}
+
+ and ay.ID =#{request.alarmTypeId}
+
and bt.ID =#{request.typeId}
-
- and bm.ID =#{request.manufactureId}
+
+ and bm.ID =#{request.manufacturerId}
and bp.ID =#{request.productId}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
index 78b852d..7e7ee50 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRuleRequestDTO.java
@@ -9,6 +9,9 @@
@ApiModelProperty("报警名称")
private String alarmName;
+ @ApiModelProperty("报警类型id")
+ private Long alarmTypeId;
+
@ApiModelProperty("产品类型id")
private Long productId;
@@ -16,7 +19,7 @@
private Long typeId;
@ApiModelProperty("厂商id")
- private Long manufactureId;
+ private Long manufacturerId;
@ApiModelProperty("报警等级id")
private Long alarmLevelId;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
index fc51328..6f2303e 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusPipelineController.java
@@ -3,6 +3,8 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.core.base.service.IBaseExportService;
@@ -14,6 +16,7 @@
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.response.ErrorResponseData;
import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
@@ -49,7 +52,11 @@
@PostMapping("/add")
@ResponseBody
public ReturnDTO add(@RequestBody BusPipeline busPipeline) {
-
+ if(ObjectUtil.isNotEmpty(busPipeline.getPipeCode())){
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("PIPE_CODE",busPipeline.getPipeCode());
+ iBusPipelineService.remove(queryWrapper);
+ }
return ReturnUtil.success(iBusPipelineService.save(busPipeline));
}
@@ -82,37 +89,37 @@
return ReturnUtil.success(iBusPipelineService.removeByIds(idsDTO.getIds()));
}
- @ApiOperation("批量导入,待开发")
+ @ApiOperation("批量导入")
@RequestMapping(value = "/batchImport", method = RequestMethod.POST)
@ResponseBody
public Object batchImport(@RequestParam("file") MultipartFile file) {
-// List results = new ArrayList<>();
-// //设置表头与字段映射,可通过反射获取
-// Map mapper = new HashMap<>();
-// //判断唯一
-// mapper.put("管线编号", "devcode");
-// mapper.put("管线位置", "productId");
-// mapper.put("压力级制", "tagNumber");
-// mapper.put("材质", "valid");
-// mapper.put("管径", "installDate");
-// mapper.put("建设年代", "installDate");
-// mapper.put("管理单位", "installDate");
-// mapper.put("产权单位", "installDate");
-// mapper.put("管理方式", "installDate");
-// mapper.put("起点经度", "installDate");
-// mapper.put("起点纬度", "installDate");
-// mapper.put("终点经度", "installDate");
-// mapper.put("终点纬度", "installDate");
-// try {
-// results = this.importExcel(BusPipelineRequestDTO.class, file, null, null);
-// List list = iBusPipelineService.addPipeBatch(results);
-// if (!CollectionUtil.isEmpty(list)) {
-// //获取校验报错信息
-// return new ErrorResponseData(list.get(0));
-// }
-// } catch (Exception e) {
-// return catchMybatisPlusException(e, "导入设备失败");
-// }
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("管线编号", "pipeCode");
+ mapper.put("管线位置", "position");
+ mapper.put("压力级制", "pressType");
+ mapper.put("材质", "material");
+ mapper.put("管径(mm)", "pipeDiameter");
+ mapper.put("建设年代", "constructEra");
+ mapper.put("管理单位", "deptid");
+ mapper.put("产权单位", "propertyOwner");
+ mapper.put("管理方式", "manageType");
+ mapper.put("起点经度", "startLng");
+ mapper.put("起点纬度", "startLat");
+ mapper.put("终点经度", "endLng");
+ mapper.put("终点纬度", "endLat");
+ try {
+ results = this.importExcel(BusPipelineImportDTO.class, file, null, null);
+ List list = iBusPipelineService.addPipeBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return new ErrorResponseData(400, "导入管线失败");
+ }
return ResponseData.success();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
new file mode 100644
index 0000000..11abd4b
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineImportDTO.java
@@ -0,0 +1,63 @@
+package com.casic.missiles.modular.device.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 管线表
+ *
+ *
+ * @author zt
+ * @since 2024-08-29
+ */
+@Data
+public class BusPipelineImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("管线编号")
+ private String pipeCode;
+
+ @ExcelProperty("管径(mm)")
+ private String pipeDiameter;
+
+ @ExcelProperty("材质")
+ private String material;
+
+ @ExcelProperty("建设年代")
+ private String constructEra;
+
+ @ExcelProperty("管理单位")
+ private Long deptid;
+
+ @ExcelProperty("产权单位")
+ private String propertyOwner;
+
+ @ExcelProperty("管线位置")
+ private String position;
+
+ @ExcelProperty("压力级制")
+ private String pressType;
+
+ @ExcelProperty("管理方式")
+ private String manageType;
+
+ @ExcelProperty("起点经度")
+ private String startLng;
+
+ @ExcelProperty("起点纬度")
+ private String startLat;
+
+ @ExcelProperty("终点经度")
+ private String endLng;
+
+ @ExcelProperty("终点纬度")
+ private String endLat;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
index 9ab8227..45e9e8c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPipelineRequestDTO.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.dto;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -14,6 +15,7 @@
* @since 2024-08-29
*/
@Data
+@ExcelIgnoreUnannotated
public class BusPipelineRequestDTO implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
index 7a51dee..d548d3c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusPipeline.java
@@ -1,6 +1,8 @@
package com.casic.missiles.modular.device.entity;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -25,29 +27,35 @@
@Setter
@TableName("bus_pipeline")
@ApiModel(value = "BusPipeline对象", description = "管线表")
+@ExcelIgnoreUnannotated
public class BusPipeline implements Serializable {
private static final long serialVersionUID = 1L;
+ @ColumnWidth(15)
@ApiModelProperty("主键")
@TableId(value = "ID", type = IdType.AUTO)
private Long id;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线编号", order = 1)
@ApiModelProperty("管线编号")
@TableField("PIPE_CODE")
private String pipeCode;
+ @ColumnWidth(15)
@ExcelProperty(value = "管径(mm)", order = 5)
@ApiModelProperty("管径(mm)")
@TableField("PIPE_DIAMETER")
private String pipeDiameter;
+ @ColumnWidth(15)
@ExcelProperty(value = "材质", order = 4)
@ApiModelProperty("材质")
@TableField("MATERIAL")
private String material;
+ @ColumnWidth(15)
@ExcelProperty(value = "建设年代", order = 6)
@ApiModelProperty("建设年代")
@TableField("CONSTRUCT_ERA")
@@ -57,11 +65,13 @@
@TableField("DEPTID")
private Long deptid;
+ @ColumnWidth(15)
@ExcelProperty(value = "产权单位", order = 7)
@ApiModelProperty("产权单位")
@TableField("PROPERTY_OWNER")
private String propertyOwner;
+ @ColumnWidth(15)
@ExcelProperty(value = "管线位置", order = 2)
@ApiModelProperty("详细位置")
@TableField("POSITION")
@@ -75,21 +85,25 @@
@TableField("MANAGE_TYPE")
private String manageType;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点经度", order = 10)
@ApiModelProperty("起始经度")
@TableField("START_LNG")
private String startLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "起点纬度", order = 11)
@ApiModelProperty("起始纬度")
@TableField("START_LAT")
private String startLat;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点经度", order = 12)
@ApiModelProperty("终止经度")
@TableField("END_LNG")
private String endLng;
+ @ColumnWidth(15)
@ExcelProperty(value = "终点纬度", order = 13)
@ApiModelProperty("终止纬度")
@TableField("END_LAT")
@@ -99,17 +113,19 @@
@TableField("TS")
private Date ts;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理方式", order = 9)
@ApiModelProperty("管理方式名称")
@TableField(exist = false)
private String manageTypeName;
-
+ @ColumnWidth(15)
@ExcelProperty(value = "压力级制", order = 3)
@ApiModelProperty("压力级制名称")
@TableField(exist = false)
private String pressTypeName;
+ @ColumnWidth(15)
@ExcelProperty(value = "管理单位", order = 8)
@ApiModelProperty("权属单位名称")
@TableField(exist = false)
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
index fe250fc..09f7f98 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusPipelineService.java
@@ -2,11 +2,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import java.util.List;
-import java.util.Map;
/**
*
@@ -20,6 +20,8 @@
Page listPage(Page page, BusPipelineRequestDTO requestDTO);
+ List addPipeBatch(List results);
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
index cccf1eb..a48fde4 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusPipelineServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,16 +10,20 @@
import com.casic.missiles.core.application.service.AbstractDeptService;
import com.casic.missiles.core.application.service.AbstractDictService;
import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.enums.PipeInfoEnum;
import com.casic.missiles.modular.device.dao.BusPipelineMapper;
+import com.casic.missiles.modular.device.dto.BusPipelineImportDTO;
import com.casic.missiles.modular.device.dto.BusPipelineRequestDTO;
import com.casic.missiles.modular.device.entity.BusPipeline;
import com.casic.missiles.modular.device.service.IBusPipelineService;
import com.casic.missiles.modular.system.model.Dept;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -45,21 +50,21 @@
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
- Page pipelinePage = this.baseMapper.listPage(dataScope,page,requestDTO,getDeptIds(requestDTO.getDeptid()));
+ Page pipelinePage = this.baseMapper.listPage(dataScope, page, requestDTO, getDeptIds(requestDTO.getDeptid()));
List busPipelineList = pipelinePage.getRecords();
busPipelineList.forEach(busPipeline -> {
- busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType",busPipeline.getManageType()));
+ busPipeline.setManageTypeName(abstractDictService.getDictNameByCode("manageType", busPipeline.getManageType()));
- busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType",busPipeline.getPressType()));
+ busPipeline.setPressTypeName(abstractDictService.getDictNameByCode("wellType", busPipeline.getPressType()));
busPipeline.setDeptName(getDeptNamesByDeptId(busPipeline.getDeptid()));
});
- return pipelinePage;
+ return pipelinePage;
}
public String getDeptIds(Long deptId) {
@@ -76,9 +81,50 @@
List deptIds = abstractDeptService.getParentListById(deptId);
deptIds.add(deptId);
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.in("id",deptIds);
+ queryWrapper.in("id", deptIds);
List deptList = abstractDeptService.list(queryWrapper);
- List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
+ List nameList = deptList.stream().filter(dept -> ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList());
return String.join("/", nameList);
}
+
+
+ @Transactional
+ @Override
+ public List addPipeBatch(List results) {
+ List list = new ArrayList<>();
+ if (!CollectionUtil.isEmpty(results)) {
+ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
+ List deptIds = dataScope.getDeptIds();
+ final Integer[] index = {0};
+ results.forEach(pipeImportDTO -> {
+ index[0]++;
+ //管理单位校验
+ if (!deptIds.contains(pipeImportDTO.getDeptid())) {
+ list.add("第" + index[0] + "行,管理单位不存在!");
+ return;
+ }
+ });
+ if (CollectionUtil.isNotEmpty(list)) {
+ return list;
+ }
+ List pipeCodes = results.stream().map(BusPipelineImportDTO::getPipeCode).collect(Collectors.toList());
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("PIPE_CODE", pipeCodes);
+ this.remove(queryWrapper);
+ List busPipelineList = new ArrayList<>();
+ for (BusPipelineImportDTO importDTO : results) {
+ BusPipeline busPipeline = new BusPipeline();
+ BeanUtils.copyProperties(importDTO,busPipeline );
+ busPipeline.setManageType(PipeInfoEnum.getValue(importDTO.getManageType()));
+ busPipeline.setPressType(PipeInfoEnum.getValue(importDTO.getPressType()));
+ busPipelineList.add(busPipeline);
+ }
+ //保存管线信息
+ this.saveBatch(busPipelineList);
+ } else {
+ list.add("导入数据不能为空");
+ }
+ return list;
+ }
}
diff --git a/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java
new file mode 100644
index 0000000..755efca
--- /dev/null
+++ b/casic-public/src/main/java/com/casic/missiles/enums/PipeInfoEnum.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.enums;
+
+
+public enum PipeInfoEnum {
+
+ GY("高压", "4"),
+ ZY("中压", "5"),
+ DY("低压", "6"),
+ CGY("次高压", "7"),
+ ZY1("自有", "0"),
+ ZG("自管", "1");
+
+ private String code;
+ private String value;
+
+ PipeInfoEnum(String code, String value) {
+ this.code = code;
+ this.value = value;
+ }
+
+
+ public static String getValue(String code){
+ for(PipeInfoEnum approvalStatusEnum :values()){
+ if(approvalStatusEnum.code.equals(code)){
+ return approvalStatusEnum.value;
+ }
+ }
+ return "";
+ }
+
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+}
diff --git a/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx b/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx
index 540beca..1e30279 100644
--- a/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx
+++ b/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx
Binary files differ