zrj
2024-10-29 be1a1ec3e63142d296a027493a2042c466e92ce8
新增保护目标信息导入
9 files modified
1 files added
235 ■■■■■ changed files
src/main/java/org/springblade/modules/yw/controller/ProTarController.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/entity/EmergencySuppliesEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/entity/ProTarEntity.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/excel/EmergencySuppliesExcel.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/excel/ProTarExcel.java 73 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/service/IProTarService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/service/impl/EmergencySuppliesServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/service/impl/IndParkInfoServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/service/impl/ProTarServiceImpl.java 72 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/yw/service/impl/SuppliesServiceImpl.java 2 ●●● patch | view | raw | blame | history
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;
                }
            }
            // 插入