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/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-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-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-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-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-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-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