diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java index 3c1d0f6..109e327 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java @@ -1,11 +1,23 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.response.ErrorResponseData; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.BusWellConst; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IBusPipelineService; @@ -15,9 +27,14 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz @@ -29,11 +46,18 @@ public class BusPipelineController extends ExportController { private final IBusPipelineService busPipelineService; + private final AbstractPermissionContext permissionService; + private final AbstractDictService dictService; + @RequestMapping("/listPage") - public Object listPage(String keywords, String pipelineType, String deptid, String bfzt) { - - return null; + public Object listPage(String keywords, String pipelineType, String deptid) { + Page page = PageFactory.defaultPage(); + //查询数据权限 使用默认deptid 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.listPage(dataScope, page, keywords, pipelineType, deptid); + page.setRecords(list); + return new SuccessResponseData(super.packForBT(page)); } @RequestMapping("/add") @@ -59,26 +83,36 @@ @RequestMapping("/delete") @BussinessLog(value = "删除管线信息") public Object delete(@RequestParam List ids) { - List notDelIds = busPipelineService.deleteBatchByIds(ids); - if(notDelIds.size() > 0){ - String message = ""; - for(Long notDelId : notDelIds){ - BusWellInfo busWellInfo = busWellInfoService.getById(notDelId); - message += busWellInfo.getWellCode() + ","; - } - return ResponseData.error(message + "以上点位存在绑定设备,请先解绑后再删除点位!"); + Boolean deleteFlag = busPipelineService.deleteBatchByIds(ids); + if (deleteFlag) { + return ResponseData.success(); } - return ResponseData.success(); + return ResponseData.error("删除失败,请重试!"); } @RequestMapping(value = "/detail/{pipelineId}") - public Object detail(@PathVariable("busWellInfoId") String busWellInfoId) { - - return null; + public Object detail(@PathVariable("pipelineId") String pipelineId) { + BusPipeline busPipeline = busPipelineService.getById(pipelineId); + return ResponseData.success(busPipeline); } @RequestMapping("/update") - public Object update() { + public Object update(BusPipeline busPipeline) { + try { + busPipelineService.save(busPipeline); + } catch (RuntimeException rex) { + ServiceException gunsException = new ServiceException(CoreExceptionEnum.REQUEST_NULL); + String errorMsg = "管线更新失败"; + if (rex instanceof DuplicateKeyException) { + errorMsg = "管线编号重复"; + } else if (rex instanceof ServiceException) { + ServiceException gunException = (ServiceException) rex; + errorMsg = gunException.getMessage(); + } + log.error("管线更新失败", rex); + gunsException.setErrorMessage(errorMsg); + throw gunsException; + } return null; } @@ -89,9 +123,42 @@ */ @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public Object batchImport(@RequestParam("file") MultipartFile file) throws Exception { - - - return null; + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + //判断唯一 + mapper.put("管线编号", "wellCode"); + mapper.put("管线名称", "wellName"); + mapper.put("位置", "deep"); + mapper.put("区", "qu"); + mapper.put("街道", "area"); + mapper.put("详细地址", "position"); + mapper.put("经度", "coordinateX"); + mapper.put("纬度", "coordinateY"); + mapper.put("点位类型", "wellType"); + mapper.put("权属单位代码", "deptid"); + mapper.put("点位维护单位代码", "responsibleDept"); + try { + try (InputStream in = file.getInputStream()) { + results = this.importExcel(BusPipeline.class, file, null, null); + List list = busPipelineService.batchAddPipeline(results); + if (!CollectionUtil.isEmpty(list)) { + //获取第校验报错信息 + return new ErrorResponseData(list.get(0)); + } + } + } catch (MybatisPlusException e) { + log.error("导入管线列表失败", e); + String message = e.getCause().getCause().getCause().getMessage(); + if (message.contains("Duplicate entry '")) { + return new ErrorResponseData("导入管线列表失败,管线编号" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'PIPELINE_CODE'", "") + "已存在"); + } + return new ErrorResponseData("导入管线列表失败"); + } catch (Exception e) { + log.error("导入管线列表失败", e); + return new ErrorResponseData("导入管线列表失败"); + } + return ResponseData.success(); } /** @@ -101,9 +168,13 @@ */ @RequestMapping(value = "/batchExport", method = RequestMethod.GET) public void batchExport(HttpServletResponse response, String keywords, String wellType, String deptid) throws IOException { - - return; + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.getBatchExportData(dataScope, wellType, deptid, keywords); + list.forEach(batchExportDataDto -> { + batchExportDataDto.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, batchExportDataDto.getPipelineType())); + batchExportDataDto.setDeptName(permissionService.getDeptService().getDeptName(Long.valueOf(batchExportDataDto.getDeptid()))); + }); + super.exportExcel(BatchExportPipelineDto.class, list, "管线列表"); } - } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java index 3c1d0f6..109e327 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java @@ -1,11 +1,23 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.response.ErrorResponseData; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.BusWellConst; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IBusPipelineService; @@ -15,9 +27,14 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz @@ -29,11 +46,18 @@ public class BusPipelineController extends ExportController { private final IBusPipelineService busPipelineService; + private final AbstractPermissionContext permissionService; + private final AbstractDictService dictService; + @RequestMapping("/listPage") - public Object listPage(String keywords, String pipelineType, String deptid, String bfzt) { - - return null; + public Object listPage(String keywords, String pipelineType, String deptid) { + Page page = PageFactory.defaultPage(); + //查询数据权限 使用默认deptid 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.listPage(dataScope, page, keywords, pipelineType, deptid); + page.setRecords(list); + return new SuccessResponseData(super.packForBT(page)); } @RequestMapping("/add") @@ -59,26 +83,36 @@ @RequestMapping("/delete") @BussinessLog(value = "删除管线信息") public Object delete(@RequestParam List ids) { - List notDelIds = busPipelineService.deleteBatchByIds(ids); - if(notDelIds.size() > 0){ - String message = ""; - for(Long notDelId : notDelIds){ - BusWellInfo busWellInfo = busWellInfoService.getById(notDelId); - message += busWellInfo.getWellCode() + ","; - } - return ResponseData.error(message + "以上点位存在绑定设备,请先解绑后再删除点位!"); + Boolean deleteFlag = busPipelineService.deleteBatchByIds(ids); + if (deleteFlag) { + return ResponseData.success(); } - return ResponseData.success(); + return ResponseData.error("删除失败,请重试!"); } @RequestMapping(value = "/detail/{pipelineId}") - public Object detail(@PathVariable("busWellInfoId") String busWellInfoId) { - - return null; + public Object detail(@PathVariable("pipelineId") String pipelineId) { + BusPipeline busPipeline = busPipelineService.getById(pipelineId); + return ResponseData.success(busPipeline); } @RequestMapping("/update") - public Object update() { + public Object update(BusPipeline busPipeline) { + try { + busPipelineService.save(busPipeline); + } catch (RuntimeException rex) { + ServiceException gunsException = new ServiceException(CoreExceptionEnum.REQUEST_NULL); + String errorMsg = "管线更新失败"; + if (rex instanceof DuplicateKeyException) { + errorMsg = "管线编号重复"; + } else if (rex instanceof ServiceException) { + ServiceException gunException = (ServiceException) rex; + errorMsg = gunException.getMessage(); + } + log.error("管线更新失败", rex); + gunsException.setErrorMessage(errorMsg); + throw gunsException; + } return null; } @@ -89,9 +123,42 @@ */ @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public Object batchImport(@RequestParam("file") MultipartFile file) throws Exception { - - - return null; + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + //判断唯一 + mapper.put("管线编号", "wellCode"); + mapper.put("管线名称", "wellName"); + mapper.put("位置", "deep"); + mapper.put("区", "qu"); + mapper.put("街道", "area"); + mapper.put("详细地址", "position"); + mapper.put("经度", "coordinateX"); + mapper.put("纬度", "coordinateY"); + mapper.put("点位类型", "wellType"); + mapper.put("权属单位代码", "deptid"); + mapper.put("点位维护单位代码", "responsibleDept"); + try { + try (InputStream in = file.getInputStream()) { + results = this.importExcel(BusPipeline.class, file, null, null); + List list = busPipelineService.batchAddPipeline(results); + if (!CollectionUtil.isEmpty(list)) { + //获取第校验报错信息 + return new ErrorResponseData(list.get(0)); + } + } + } catch (MybatisPlusException e) { + log.error("导入管线列表失败", e); + String message = e.getCause().getCause().getCause().getMessage(); + if (message.contains("Duplicate entry '")) { + return new ErrorResponseData("导入管线列表失败,管线编号" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'PIPELINE_CODE'", "") + "已存在"); + } + return new ErrorResponseData("导入管线列表失败"); + } catch (Exception e) { + log.error("导入管线列表失败", e); + return new ErrorResponseData("导入管线列表失败"); + } + return ResponseData.success(); } /** @@ -101,9 +168,13 @@ */ @RequestMapping(value = "/batchExport", method = RequestMethod.GET) public void batchExport(HttpServletResponse response, String keywords, String wellType, String deptid) throws IOException { - - return; + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.getBatchExportData(dataScope, wellType, deptid, keywords); + list.forEach(batchExportDataDto -> { + batchExportDataDto.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, batchExportDataDto.getPipelineType())); + batchExportDataDto.setDeptName(permissionService.getDeptService().getDeptName(Long.valueOf(batchExportDataDto.getDeptid()))); + }); + super.exportExcel(BatchExportPipelineDto.class, list, "管线列表"); } - } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java index 50ec951..acba708 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java @@ -1,14 +1,27 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * @author cz */ public interface BusPipelineMapper extends BaseMapper { - int deletePipelineLine(@Param("id") Long id); + List listPage(@Param("scope") DataScope dataScope, @Param("page") Page page, + @Param("keywords") String keywords, @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + + List> getDeptMap(); + + List getBatchExportData(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, + @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java index 3c1d0f6..109e327 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java @@ -1,11 +1,23 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.response.ErrorResponseData; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.BusWellConst; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IBusPipelineService; @@ -15,9 +27,14 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz @@ -29,11 +46,18 @@ public class BusPipelineController extends ExportController { private final IBusPipelineService busPipelineService; + private final AbstractPermissionContext permissionService; + private final AbstractDictService dictService; + @RequestMapping("/listPage") - public Object listPage(String keywords, String pipelineType, String deptid, String bfzt) { - - return null; + public Object listPage(String keywords, String pipelineType, String deptid) { + Page page = PageFactory.defaultPage(); + //查询数据权限 使用默认deptid 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.listPage(dataScope, page, keywords, pipelineType, deptid); + page.setRecords(list); + return new SuccessResponseData(super.packForBT(page)); } @RequestMapping("/add") @@ -59,26 +83,36 @@ @RequestMapping("/delete") @BussinessLog(value = "删除管线信息") public Object delete(@RequestParam List ids) { - List notDelIds = busPipelineService.deleteBatchByIds(ids); - if(notDelIds.size() > 0){ - String message = ""; - for(Long notDelId : notDelIds){ - BusWellInfo busWellInfo = busWellInfoService.getById(notDelId); - message += busWellInfo.getWellCode() + ","; - } - return ResponseData.error(message + "以上点位存在绑定设备,请先解绑后再删除点位!"); + Boolean deleteFlag = busPipelineService.deleteBatchByIds(ids); + if (deleteFlag) { + return ResponseData.success(); } - return ResponseData.success(); + return ResponseData.error("删除失败,请重试!"); } @RequestMapping(value = "/detail/{pipelineId}") - public Object detail(@PathVariable("busWellInfoId") String busWellInfoId) { - - return null; + public Object detail(@PathVariable("pipelineId") String pipelineId) { + BusPipeline busPipeline = busPipelineService.getById(pipelineId); + return ResponseData.success(busPipeline); } @RequestMapping("/update") - public Object update() { + public Object update(BusPipeline busPipeline) { + try { + busPipelineService.save(busPipeline); + } catch (RuntimeException rex) { + ServiceException gunsException = new ServiceException(CoreExceptionEnum.REQUEST_NULL); + String errorMsg = "管线更新失败"; + if (rex instanceof DuplicateKeyException) { + errorMsg = "管线编号重复"; + } else if (rex instanceof ServiceException) { + ServiceException gunException = (ServiceException) rex; + errorMsg = gunException.getMessage(); + } + log.error("管线更新失败", rex); + gunsException.setErrorMessage(errorMsg); + throw gunsException; + } return null; } @@ -89,9 +123,42 @@ */ @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public Object batchImport(@RequestParam("file") MultipartFile file) throws Exception { - - - return null; + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + //判断唯一 + mapper.put("管线编号", "wellCode"); + mapper.put("管线名称", "wellName"); + mapper.put("位置", "deep"); + mapper.put("区", "qu"); + mapper.put("街道", "area"); + mapper.put("详细地址", "position"); + mapper.put("经度", "coordinateX"); + mapper.put("纬度", "coordinateY"); + mapper.put("点位类型", "wellType"); + mapper.put("权属单位代码", "deptid"); + mapper.put("点位维护单位代码", "responsibleDept"); + try { + try (InputStream in = file.getInputStream()) { + results = this.importExcel(BusPipeline.class, file, null, null); + List list = busPipelineService.batchAddPipeline(results); + if (!CollectionUtil.isEmpty(list)) { + //获取第校验报错信息 + return new ErrorResponseData(list.get(0)); + } + } + } catch (MybatisPlusException e) { + log.error("导入管线列表失败", e); + String message = e.getCause().getCause().getCause().getMessage(); + if (message.contains("Duplicate entry '")) { + return new ErrorResponseData("导入管线列表失败,管线编号" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'PIPELINE_CODE'", "") + "已存在"); + } + return new ErrorResponseData("导入管线列表失败"); + } catch (Exception e) { + log.error("导入管线列表失败", e); + return new ErrorResponseData("导入管线列表失败"); + } + return ResponseData.success(); } /** @@ -101,9 +168,13 @@ */ @RequestMapping(value = "/batchExport", method = RequestMethod.GET) public void batchExport(HttpServletResponse response, String keywords, String wellType, String deptid) throws IOException { - - return; + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.getBatchExportData(dataScope, wellType, deptid, keywords); + list.forEach(batchExportDataDto -> { + batchExportDataDto.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, batchExportDataDto.getPipelineType())); + batchExportDataDto.setDeptName(permissionService.getDeptService().getDeptName(Long.valueOf(batchExportDataDto.getDeptid()))); + }); + super.exportExcel(BatchExportPipelineDto.class, list, "管线列表"); } - } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java index 50ec951..acba708 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java @@ -1,14 +1,27 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * @author cz */ public interface BusPipelineMapper extends BaseMapper { - int deletePipelineLine(@Param("id") Long id); + List listPage(@Param("scope") DataScope dataScope, @Param("page") Page page, + @Param("keywords") String keywords, @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + + List> getDeptMap(); + + List getBatchExportData(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, + @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml index a37fe05..de51f50 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml @@ -2,11 +2,76 @@ - - update valid=0 - FROM bus_well_info - WHERE id=#{id} - + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + + + + + + diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java index 3c1d0f6..109e327 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java @@ -1,11 +1,23 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.response.ErrorResponseData; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.BusWellConst; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IBusPipelineService; @@ -15,9 +27,14 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz @@ -29,11 +46,18 @@ public class BusPipelineController extends ExportController { private final IBusPipelineService busPipelineService; + private final AbstractPermissionContext permissionService; + private final AbstractDictService dictService; + @RequestMapping("/listPage") - public Object listPage(String keywords, String pipelineType, String deptid, String bfzt) { - - return null; + public Object listPage(String keywords, String pipelineType, String deptid) { + Page page = PageFactory.defaultPage(); + //查询数据权限 使用默认deptid 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.listPage(dataScope, page, keywords, pipelineType, deptid); + page.setRecords(list); + return new SuccessResponseData(super.packForBT(page)); } @RequestMapping("/add") @@ -59,26 +83,36 @@ @RequestMapping("/delete") @BussinessLog(value = "删除管线信息") public Object delete(@RequestParam List ids) { - List notDelIds = busPipelineService.deleteBatchByIds(ids); - if(notDelIds.size() > 0){ - String message = ""; - for(Long notDelId : notDelIds){ - BusWellInfo busWellInfo = busWellInfoService.getById(notDelId); - message += busWellInfo.getWellCode() + ","; - } - return ResponseData.error(message + "以上点位存在绑定设备,请先解绑后再删除点位!"); + Boolean deleteFlag = busPipelineService.deleteBatchByIds(ids); + if (deleteFlag) { + return ResponseData.success(); } - return ResponseData.success(); + return ResponseData.error("删除失败,请重试!"); } @RequestMapping(value = "/detail/{pipelineId}") - public Object detail(@PathVariable("busWellInfoId") String busWellInfoId) { - - return null; + public Object detail(@PathVariable("pipelineId") String pipelineId) { + BusPipeline busPipeline = busPipelineService.getById(pipelineId); + return ResponseData.success(busPipeline); } @RequestMapping("/update") - public Object update() { + public Object update(BusPipeline busPipeline) { + try { + busPipelineService.save(busPipeline); + } catch (RuntimeException rex) { + ServiceException gunsException = new ServiceException(CoreExceptionEnum.REQUEST_NULL); + String errorMsg = "管线更新失败"; + if (rex instanceof DuplicateKeyException) { + errorMsg = "管线编号重复"; + } else if (rex instanceof ServiceException) { + ServiceException gunException = (ServiceException) rex; + errorMsg = gunException.getMessage(); + } + log.error("管线更新失败", rex); + gunsException.setErrorMessage(errorMsg); + throw gunsException; + } return null; } @@ -89,9 +123,42 @@ */ @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public Object batchImport(@RequestParam("file") MultipartFile file) throws Exception { - - - return null; + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + //判断唯一 + mapper.put("管线编号", "wellCode"); + mapper.put("管线名称", "wellName"); + mapper.put("位置", "deep"); + mapper.put("区", "qu"); + mapper.put("街道", "area"); + mapper.put("详细地址", "position"); + mapper.put("经度", "coordinateX"); + mapper.put("纬度", "coordinateY"); + mapper.put("点位类型", "wellType"); + mapper.put("权属单位代码", "deptid"); + mapper.put("点位维护单位代码", "responsibleDept"); + try { + try (InputStream in = file.getInputStream()) { + results = this.importExcel(BusPipeline.class, file, null, null); + List list = busPipelineService.batchAddPipeline(results); + if (!CollectionUtil.isEmpty(list)) { + //获取第校验报错信息 + return new ErrorResponseData(list.get(0)); + } + } + } catch (MybatisPlusException e) { + log.error("导入管线列表失败", e); + String message = e.getCause().getCause().getCause().getMessage(); + if (message.contains("Duplicate entry '")) { + return new ErrorResponseData("导入管线列表失败,管线编号" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'PIPELINE_CODE'", "") + "已存在"); + } + return new ErrorResponseData("导入管线列表失败"); + } catch (Exception e) { + log.error("导入管线列表失败", e); + return new ErrorResponseData("导入管线列表失败"); + } + return ResponseData.success(); } /** @@ -101,9 +168,13 @@ */ @RequestMapping(value = "/batchExport", method = RequestMethod.GET) public void batchExport(HttpServletResponse response, String keywords, String wellType, String deptid) throws IOException { - - return; + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.getBatchExportData(dataScope, wellType, deptid, keywords); + list.forEach(batchExportDataDto -> { + batchExportDataDto.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, batchExportDataDto.getPipelineType())); + batchExportDataDto.setDeptName(permissionService.getDeptService().getDeptName(Long.valueOf(batchExportDataDto.getDeptid()))); + }); + super.exportExcel(BatchExportPipelineDto.class, list, "管线列表"); } - } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java index 50ec951..acba708 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java @@ -1,14 +1,27 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * @author cz */ public interface BusPipelineMapper extends BaseMapper { - int deletePipelineLine(@Param("id") Long id); + List listPage(@Param("scope") DataScope dataScope, @Param("page") Page page, + @Param("keywords") String keywords, @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + + List> getDeptMap(); + + List getBatchExportData(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, + @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml index a37fe05..de51f50 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml @@ -2,11 +2,76 @@ - - update valid=0 - FROM bus_well_info - WHERE id=#{id} - + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + + + + + + diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java index 164ebda..a00fd71 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java @@ -1,6 +1,9 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import java.util.List; @@ -12,4 +15,9 @@ Boolean deleteBatchByIds(List ids); + List listPage(DataScope dataScope, Page page, String keywords, String pipelineType, String deptid); + + List batchAddPipeline(List results); + + List getBatchExportData(DataScope dataScope, String pipelineType, String deptid, String keywords); } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java new file mode 100644 index 0000000..449a083 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BatchExportPipelineDto.java @@ -0,0 +1,144 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@Data +public class BatchExportPipelineDto { + + /** + * 序号 + */ + private Long id; + /** + * 管线编号 + */ + @ExcelProperty("管线编号") + private String pipelineCode; + + /** + * 管线名称 + */ + @ExcelProperty("管线名称") + private String pipelineName; + + /** + * 管线类型(下拉框) + */ + private String pipelineType; + + @ExcelProperty("管线类型") + @TableField(exist = false) + private String pipelineTypeName; + + /*** + * 管径(mm) + */ + @ExcelProperty("管径(mm)") + private String pipeDiameter; + /** + * 材质 + */ + @ExcelProperty("材质") + private String material; + + /** + * 埋设方式 + */ + @ExcelProperty("埋设方式") + private String buryMode; + /** + * 管线位置 + */ + @ExcelProperty("管线位置") + private String pipelinePosition; + /** + * 建设年代 + */ + @ExcelProperty("建设年代") + private String constructEra; + + /** + * 权属单位(下拉框) + */ + private Long deptid; + + /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + @ExcelProperty("权属单位") + private String deptName; + /** + * 起始地面高(mm) + */ + @ExcelProperty("起始地面高(mm)") + private Float startGroundHeight; + + /** + * 起始埋深(m) + */ + @ExcelProperty("起始埋深(m)") + private Float startBuryDeep; + + /** + * 起始管顶高(mm) + */ + @ExcelProperty("起始管顶高(mm)") + private Float startPipecrownHeight; + /** + * 终止地面高(mm) + */ + @ExcelProperty("终止地面高(mm)") + private Float endGroundHeight; + + /** + * 终止埋深(m) + */ + @ExcelProperty("终止埋深(m)") + private Float endBuryDeep; + + /** + * 终止管顶高(mm) + */ + @ExcelProperty("终止管顶高(mm)") + private Float endPipecrownHeight; + + /** + * 设计压力(MPa) + */ + @ExcelProperty("设计压力(MPa)") + private String designPressure; + + /** + * 瞬时流量(m³) + */ + @ExcelProperty("瞬时流量(m³)") + private Float instantaneousFlow; + + /* + * 时间戳 + */ + @ExcelProperty("时间") + @TableField("TS") + private Date ts; + + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java index 617ea97..9a53182 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/BusPipeline.java @@ -18,12 +18,8 @@ * @author cz */ @Data -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated @TableName("bus_pipeline") -public class BusPipeline{ +public class BusPipeline { private static final long serialVersionUID = 1L; /** @@ -34,43 +30,41 @@ /** * 管线编号 */ - @ExcelProperty("管线编号") private String pipelineCode; /** + * 管线名称 + */ + private String pipelineName; + + /** * 管线类型(下拉框) */ private String pipelineType; - @ExcelProperty("管线类型") @TableField(exist = false) private String pipelineTypeName; /*** * 管径(mm) */ - @ExcelProperty("管径(mm)") private String pipeDiameter; /** * 材质 */ - @ExcelProperty("材质") private String material; /** * 埋设方式 */ - @ExcelProperty("埋设方式") private String buryMode; /** * 管线位置 */ - @ExcelProperty("管线位置") private String pipelinePosition; /** * 建设年代 */ - @ExcelProperty("建设年代") private String constructEra; /** @@ -79,50 +73,47 @@ private Long deptid; /** + * 权属单位(下拉框) + */ + @TableField(exist = false) + private String deptName; + /** * 起始地面高(mm) */ - @ExcelProperty("起始地面高(mm)") private Float startGroundHeight; /** * 起始埋深(m) */ - @ExcelProperty("起始埋深(m)") private Float startBuryDeep; /** * 起始管顶高(mm) */ - @ExcelProperty("起始管顶高(mm)") private Float startPipecrownHeight; /** * 终止地面高(mm) */ - @ExcelProperty("终止地面高(mm)") private Float endGroundHeight; /** * 终止埋深(m) */ - @ExcelProperty("终止埋深(m)") private Float endBuryDeep; /** * 终止管顶高(mm) */ - @ExcelProperty("终止管顶高(mm)") private Float endPipecrownHeight; /** * 设计压力(MPa) */ - @ExcelProperty("设计压力(MPa)") private String designPressure; /** * 瞬时流量(m³) */ - @ExcelProperty("瞬时流量(m³)") private Float instantaneousFlow; /* diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java index a448f2f..21e896d 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/constant/BusWellConst.java @@ -13,6 +13,11 @@ public static final String SLUICEWELL_TYPE = "sluicewellType"; /** + * 设备类型常量 + */ + public static final String PIPELINE_TYPE = "pipelineType"; + + /** * 布防状态 */ public static final String BFZT_TEMP = "bfzt"; diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java index 3c1d0f6..109e327 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/controller/BusPipelineController.java @@ -1,11 +1,23 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.common.annotion.BussinessLog; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.response.ErrorResponseData; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.BusWellConst; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IBusPipelineService; @@ -15,9 +27,14 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz @@ -29,11 +46,18 @@ public class BusPipelineController extends ExportController { private final IBusPipelineService busPipelineService; + private final AbstractPermissionContext permissionService; + private final AbstractDictService dictService; + @RequestMapping("/listPage") - public Object listPage(String keywords, String pipelineType, String deptid, String bfzt) { - - return null; + public Object listPage(String keywords, String pipelineType, String deptid) { + Page page = PageFactory.defaultPage(); + //查询数据权限 使用默认deptid 字段 + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.listPage(dataScope, page, keywords, pipelineType, deptid); + page.setRecords(list); + return new SuccessResponseData(super.packForBT(page)); } @RequestMapping("/add") @@ -59,26 +83,36 @@ @RequestMapping("/delete") @BussinessLog(value = "删除管线信息") public Object delete(@RequestParam List ids) { - List notDelIds = busPipelineService.deleteBatchByIds(ids); - if(notDelIds.size() > 0){ - String message = ""; - for(Long notDelId : notDelIds){ - BusWellInfo busWellInfo = busWellInfoService.getById(notDelId); - message += busWellInfo.getWellCode() + ","; - } - return ResponseData.error(message + "以上点位存在绑定设备,请先解绑后再删除点位!"); + Boolean deleteFlag = busPipelineService.deleteBatchByIds(ids); + if (deleteFlag) { + return ResponseData.success(); } - return ResponseData.success(); + return ResponseData.error("删除失败,请重试!"); } @RequestMapping(value = "/detail/{pipelineId}") - public Object detail(@PathVariable("busWellInfoId") String busWellInfoId) { - - return null; + public Object detail(@PathVariable("pipelineId") String pipelineId) { + BusPipeline busPipeline = busPipelineService.getById(pipelineId); + return ResponseData.success(busPipeline); } @RequestMapping("/update") - public Object update() { + public Object update(BusPipeline busPipeline) { + try { + busPipelineService.save(busPipeline); + } catch (RuntimeException rex) { + ServiceException gunsException = new ServiceException(CoreExceptionEnum.REQUEST_NULL); + String errorMsg = "管线更新失败"; + if (rex instanceof DuplicateKeyException) { + errorMsg = "管线编号重复"; + } else if (rex instanceof ServiceException) { + ServiceException gunException = (ServiceException) rex; + errorMsg = gunException.getMessage(); + } + log.error("管线更新失败", rex); + gunsException.setErrorMessage(errorMsg); + throw gunsException; + } return null; } @@ -89,9 +123,42 @@ */ @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public Object batchImport(@RequestParam("file") MultipartFile file) throws Exception { - - - return null; + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + //判断唯一 + mapper.put("管线编号", "wellCode"); + mapper.put("管线名称", "wellName"); + mapper.put("位置", "deep"); + mapper.put("区", "qu"); + mapper.put("街道", "area"); + mapper.put("详细地址", "position"); + mapper.put("经度", "coordinateX"); + mapper.put("纬度", "coordinateY"); + mapper.put("点位类型", "wellType"); + mapper.put("权属单位代码", "deptid"); + mapper.put("点位维护单位代码", "responsibleDept"); + try { + try (InputStream in = file.getInputStream()) { + results = this.importExcel(BusPipeline.class, file, null, null); + List list = busPipelineService.batchAddPipeline(results); + if (!CollectionUtil.isEmpty(list)) { + //获取第校验报错信息 + return new ErrorResponseData(list.get(0)); + } + } + } catch (MybatisPlusException e) { + log.error("导入管线列表失败", e); + String message = e.getCause().getCause().getCause().getMessage(); + if (message.contains("Duplicate entry '")) { + return new ErrorResponseData("导入管线列表失败,管线编号" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'PIPELINE_CODE'", "") + "已存在"); + } + return new ErrorResponseData("导入管线列表失败"); + } catch (Exception e) { + log.error("导入管线列表失败", e); + return new ErrorResponseData("导入管线列表失败"); + } + return ResponseData.success(); } /** @@ -101,9 +168,13 @@ */ @RequestMapping(value = "/batchExport", method = RequestMethod.GET) public void batchExport(HttpServletResponse response, String keywords, String wellType, String deptid) throws IOException { - - return; + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List list = busPipelineService.getBatchExportData(dataScope, wellType, deptid, keywords); + list.forEach(batchExportDataDto -> { + batchExportDataDto.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, batchExportDataDto.getPipelineType())); + batchExportDataDto.setDeptName(permissionService.getDeptService().getDeptName(Long.valueOf(batchExportDataDto.getDeptid()))); + }); + super.exportExcel(BatchExportPipelineDto.class, list, "管线列表"); } - } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java index 50ec951..acba708 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/BusPipelineMapper.java @@ -1,14 +1,27 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * @author cz */ public interface BusPipelineMapper extends BaseMapper { - int deletePipelineLine(@Param("id") Long id); + List listPage(@Param("scope") DataScope dataScope, @Param("page") Page page, + @Param("keywords") String keywords, @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + + List> getDeptMap(); + + List getBatchExportData(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, + @Param("pipelineType") String pipelineType, @Param("deptid") Long deptid); + } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml index a37fe05..de51f50 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPipelineMapper.xml @@ -2,11 +2,76 @@ - - update valid=0 - FROM bus_well_info - WHERE id=#{id} - + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + + + + + + diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java index 164ebda..a00fd71 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/IBusPipelineService.java @@ -1,6 +1,9 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; import java.util.List; @@ -12,4 +15,9 @@ Boolean deleteBatchByIds(List ids); + List listPage(DataScope dataScope, Page page, String keywords, String pipelineType, String deptid); + + List batchAddPipeline(List results); + + List getBatchExportData(DataScope dataScope, String pipelineType, String deptid, String keywords); } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusPipelineServiceImpl.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusPipelineServiceImpl.java index 2d9f46a..8738877 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusPipelineServiceImpl.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusPipelineServiceImpl.java @@ -1,27 +1,123 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.constant.BusWellConst; import com.casic.missiles.modular.system.dao.BusPipelineMapper; +import com.casic.missiles.modular.system.dto.BatchExportDataDto; +import com.casic.missiles.modular.system.dto.BatchExportPipelineDto; import com.casic.missiles.modular.system.model.BusPipeline; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IBusPipelineService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.BeanPropertyBindingResult; +import org.springframework.validation.FieldError; +import org.springframework.validation.Validator; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author cz */ @Service +@Slf4j +@RequiredArgsConstructor public class BusPipelineServiceImpl extends ServiceImpl implements IBusPipelineService { + private final AbstractPermissionContext service; + private final AbstractDictService dictService; + private final Validator validator; @Override public Boolean deleteBatchByIds(List ids) { int deleteCount = this.baseMapper.deleteBatchIds(ids); - if () { - return + if (deleteCount == ids.size()) { + return true; } - return lists; + return false; } + + @Override + public List listPage(DataScope dataScope, Page page, String keywords, String pipelineType, String deptid) { + List list = this.baseMapper.listPage(dataScope, page, keywords, pipelineType, + Long.valueOf(StrUtil.isEmpty(deptid) ? "-1" : deptid)); + list.forEach(pipeline -> { + pipeline.setPipelineTypeName(dictService.getDictNameByCode(BusWellConst.PIPELINE_TYPE, pipeline.getPipelineType())); + pipeline.setDeptName(service.getDeptService().getDeptName(pipeline.getDeptid())); + }); + return list; + } + + @Transactional + @Override + public List batchAddPipeline(List results) { + BeanPropertyBindingResult beanPropertyBindingResult = new BeanPropertyBindingResult(BusPipeline.class, "管线导入校验"); + List list = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(results)) { + List dicts = dictService.findInDictByCode(BusWellConst.PIPELINE_TYPE);//管线类型 + Map pipelineTypeMap = new HashMap<>(); + //存储 + dicts.forEach(dict -> { + pipelineTypeMap.put(dict.getName(), dict.getCode()); + }); + + List> deptMap = this.baseMapper.getDeptMap();//管线类型 + final Integer[] index = {0}; + for (BusPipeline busPipeline : results) { + index[0]++; + validator.validate(busPipeline, beanPropertyBindingResult); + if (beanPropertyBindingResult.hasErrors()) { + List errors = beanPropertyBindingResult.getFieldErrors(); + //导入表格总共有10个字段,如果同一行有多于10个错误,则表示此行为空 + if (errors.size() >= 10) { + break; + } + errors.forEach(error -> { + list.add("第" + index[0] + "行,".concat(error.getDefaultMessage())); + } + ); + break; + } + + if (pipelineTypeMap.containsKey(busPipeline.getPipelineType())) { + busPipeline.setPipelineType(pipelineTypeMap.get(busPipeline.getPipelineType())); + } else { + list.add("第" + index[0] + "行,井类型不存在!"); + break; + } + + //其他相关性校验 + log.info("第" + index[0] + "行校验完毕!"); + } + + if (CollectionUtil.isNotEmpty(list)) { + return list; + } + this.saveBatch(results); + } else { + list.add("导入数据不能为空"); + } + return list; + } + + @Override + public List getBatchExportData(DataScope dataScope, String pipelineType, String deptid, String keywords) { + List list = this.baseMapper.getBatchExportData(dataScope, keywords, pipelineType, + Long.valueOf(StrUtil.isEmpty(deptid) ? "-1" : deptid)); + return list; + } + + }