src/main/java/org/springblade/modules/yw/controller/ProTarController.java
@@ -6,15 +6,20 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.validation.Valid; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.yw.excel.IndParkInfoExcel; import org.springblade.modules.yw.excel.ProTarExcel; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.modules.yw.entity.ProTarEntity; import org.springblade.modules.yw.vo.ProTarVO; import org.springblade.modules.yw.service.IProTarService; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -104,4 +109,15 @@ return R.status(proTarService.removeByIds(Func.toLongList(ids))); } /** * 导入保护目标信息 */ @PostMapping("import-proTar") @ApiOperationSupport(order = 8) @ApiOperation(value = "导入保护目标信息", notes = "传入excel") public R importProTar(MultipartFile file, Integer isCovered) { String data = proTarService.importProTar(ExcelUtil.read(file, ProTarExcel.class),isCovered == 1); return R.data(200, data, data); } } src/main/java/org/springblade/modules/yw/entity/EmergencySuppliesEntity.java
@@ -62,7 +62,7 @@ * 数量 */ @ApiModelProperty(value = "数量") private String number; private String num; /** * 单位 */ src/main/java/org/springblade/modules/yw/entity/ProTarEntity.java
@@ -29,22 +29,36 @@ @ApiModelProperty(value = "主键ID", example = "") @TableId(value = "id",type = IdType.ASSIGN_ID) private Long id; /** * 名称 */ @ApiModelProperty(value = "名称") private String name; /** * 经度 * 归类 */ @ApiModelProperty(value = "经度") @ApiModelProperty(value = "归类") private Integer category; /** * 中心点或者起点经度 */ @ApiModelProperty(value = "中心点或者起点经度") private String lng; /** * 纬度 * 中心点或者起点纬度 */ @ApiModelProperty(value = "纬度") @ApiModelProperty(value = "中心点或者起点纬度") private String lat; /** * 终点经度 */ @ApiModelProperty(value = "终点经度") private String endLng; /** * 终点纬度 */ @ApiModelProperty(value = "终点纬度") private String endLat; /** * 位置 */ @@ -60,6 +74,16 @@ */ @ApiModelProperty(value = "容积(万立方米)") private Double vol; /** * 面积(平方米) */ @ApiModelProperty(value = "面积(平方米)") private Double area; /** * 长度(公里) */ @ApiModelProperty(value = "长度(公里)") private Double length; /** * 排入河流 */ @@ -102,4 +126,20 @@ @TableField("is_deleted") @TableLogic private Integer isDeleted; /** * 面积(平方米) */ @ApiModelProperty(value = "平均流量(立方米/秒)") private Double aveDis; /** * 长度(公里) */ @ApiModelProperty(value = "平均流速(米/秒)") private Double aveVel; /** * 说明 */ @ApiModelProperty(value = "说明") private String remark; } src/main/java/org/springblade/modules/yw/excel/EmergencySuppliesExcel.java
@@ -53,8 +53,8 @@ /** * 数量 */ @ExcelProperty("数量*") private String number; @ExcelProperty("数量") private String num; /** * 单位 */ src/main/java/org/springblade/modules/yw/excel/ProTarExcel.java
New file @@ -0,0 +1,73 @@ package org.springblade.modules.yw.excel; 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.HeadRowHeight; import lombok.Data; import org.springblade.common.excel.ExcelDictConverter; import org.springblade.common.excel.ExcelDictItemLabel; import java.io.Serializable; /** * 企业excel 模板 * @author zhongrj * @date 2024-10-26 */ @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class ProTarExcel implements Serializable { private static final long serialVersionUID = 1L; @ColumnWidth(20) @ExcelProperty("名称") private String name; @ExcelProperty(value = "归类",converter = ExcelDictConverter.class) @ExcelDictItemLabel(type = "pro_tar_category") private String category; @ColumnWidth(20) @ExcelProperty("经度") private String lng; @ColumnWidth(20) @ExcelProperty("纬度") private String lat; @ColumnWidth(20) @ExcelProperty("终点经度") private String endLng; @ColumnWidth(20) @ExcelProperty("终点纬度") private String endLat; @ExcelProperty("地址") private String address; @ExcelProperty(value = "类型",converter = ExcelDictConverter.class) @ExcelDictItemLabel(type = "pro_tar_type") private String feature; @ExcelProperty("占地面积(m2)") private Double area; @ExcelProperty("容积(万立方米)") private Double vol; @ExcelProperty("长度(公里)") private Double length; @ExcelProperty("平均流量(立方米/秒)") private Double aveDis; @ExcelProperty("平均流速(米/秒)") private Double aveVel; @ExcelProperty("说明") private String remark; } src/main/java/org/springblade/modules/yw/service/IProTarService.java
@@ -2,8 +2,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.yw.entity.ProTarEntity; import org.springblade.modules.yw.excel.ProTarExcel; import org.springblade.modules.yw.vo.ProTarVO; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 保护目标表 服务类 @@ -21,4 +24,11 @@ */ IPage<ProTarVO> selectProTarPage(IPage<ProTarVO> page, ProTarVO proTar); /** * 导入保护目标信息 * @param data * @param isCovered * @return */ String importProTar(List<ProTarExcel> data, boolean isCovered); } src/main/java/org/springblade/modules/yw/service/impl/EmergencySuppliesServiceImpl.java
@@ -75,7 +75,7 @@ emergencySuppliesEntity.setId(id); // 覆盖-更新 updateById(emergencySuppliesEntity); break; continue; } } // 保存 @@ -125,7 +125,7 @@ private void setSupplies(EmergencySuppliesExcel emergencySuppliesExcel, EmergencySuppliesEntity emergencySuppliesEntity) { QueryWrapper<SuppliesEntity> wrapper = new QueryWrapper<>(); wrapper.eq("firm_id",emergencySuppliesEntity.getFirmId()) .eq("name",emergencySuppliesExcel.getName()) .eq("name",emergencySuppliesExcel.getSuppliesName()) .eq("is_deleted",0); SuppliesEntity suppliesEntity = suppliesService.getOne(wrapper); if (null!=suppliesEntity){ src/main/java/org/springblade/modules/yw/service/impl/IndParkInfoServiceImpl.java
@@ -67,7 +67,7 @@ if (isCovered){ indParkInfoEntity.setId(id); updateById(indParkInfoEntity); break; continue; } } // 保存 src/main/java/org/springblade/modules/yw/service/impl/ProTarServiceImpl.java
@@ -1,12 +1,20 @@ package org.springblade.modules.yw.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.logging.log4j.util.Strings; import org.springblade.common.utils.PositionUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.yw.entity.ProTarEntity; import org.springblade.modules.yw.excel.ProTarExcel; import org.springblade.modules.yw.vo.ProTarVO; import org.springblade.modules.yw.mapper.ProTarMapper; import org.springblade.modules.yw.service.IProTarService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; import java.util.Objects; /** * 保护目标表 服务实现类 @@ -17,9 +25,73 @@ @Service public class ProTarServiceImpl extends ServiceImpl<ProTarMapper, ProTarEntity> implements IProTarService { /** * 自定义分页查询 * @param page * @param proTar * @return */ @Override public IPage<ProTarVO> selectProTarPage(IPage<ProTarVO> page, ProTarVO proTar) { return page.setRecords(baseMapper.selectProTarPage(page, proTar)); } /** * 导入保护目标信息 * @param data * @param isCovered * @return */ @Override public String importProTar(List<ProTarExcel> data, boolean isCovered) { for (ProTarExcel proTarExcel : data) { // 数据拷贝 ProTarEntity proTarEntity = Objects.requireNonNull(BeanUtil.copy(proTarExcel, ProTarEntity.class)); // 类目转换 if (!Strings.isBlank(proTarExcel.getCategory())){ proTarEntity.setCategory(Integer.parseInt(proTarExcel.getCategory())); } // 经纬度处理 if (!Strings.isBlank(proTarExcel.getLng())){ proTarEntity.setLng(PositionUtil.tranformPos(proTarExcel.getLng()).toString()); } if (!Strings.isBlank(proTarExcel.getLat())){ proTarEntity.setLat(PositionUtil.tranformPos(proTarExcel.getLat()).toString()); } if (!Strings.isBlank(proTarExcel.getEndLng())){ proTarEntity.setEndLng(PositionUtil.tranformPos(proTarExcel.getEndLng()).toString()); } if (!Strings.isBlank(proTarExcel.getEndLat())){ proTarEntity.setEndLat(PositionUtil.tranformPos(proTarExcel.getEndLat()).toString()); } // 判断是否已经入库 Long id = isSave(proTarExcel); if (null!=id){ if (isCovered){ // 覆盖更新 proTarEntity.setId(id); updateById(proTarEntity); continue; } } // 保存入库 save(proTarEntity); } return null; } /** * 判断保护目标是否已入库 * @param proTarExcel * @return */ private Long isSave(ProTarExcel proTarExcel) { QueryWrapper<ProTarEntity> wrapper = new QueryWrapper<>(); wrapper.eq("name",proTarExcel.getName()).eq("is_deleted",0); ProTarEntity one = getOne(wrapper); if (null!=one){ return one.getId(); } return null; } } src/main/java/org/springblade/modules/yw/service/impl/SuppliesServiceImpl.java
@@ -54,7 +54,7 @@ // 覆盖-更新 suppliesEntity.setId(id); updateById(suppliesEntity); break; continue; } } // 插入