吉安感知网项目-后端
linwei
2026-02-06 3d02e3b55e6b2a2d7fbddaf3c1f7c0e6836ae72c
机构导入校验
3 files modified
33 ■■■■ changed files
drone-service/drone-system/src/main/java/org/sxkj/system/controller/DeptController.java 11 ●●●●● patch | view | raw | blame | history
drone-service/drone-system/src/main/java/org/sxkj/system/excel/DeptImportExcel.java 8 ●●●● patch | view | raw | blame | history
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/DeptServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
drone-service/drone-system/src/main/java/org/sxkj/system/controller/DeptController.java
@@ -379,8 +379,17 @@
        String fileName = URLEncoder.encode("机构模板", StandardCharsets.UTF_8.name());
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        // 准备空数据列表
        // 准备示例数据列表
        List<DeptImportExcel> list = new ArrayList<>();
        // 创建示例数据对象
        DeptImportExcel example = new DeptImportExcel();
        // 设置示例数据
        example.setDeptName("示例机构");
        example.setAreaCode("360800000000");
        example.setRemark("这是一个示例机构");
        example.setStatus("1"); // 假设1表示启用状态
        // 将示例数据添加到列表
        list.add(example);
        // 使用EasyExcel导出,并注册RegionSheetWriteHandler
        EasyExcel.write(response.getOutputStream(), DeptImportExcel.class)
drone-service/drone-system/src/main/java/org/sxkj/system/excel/DeptImportExcel.java
@@ -40,20 +40,20 @@
    private static final long serialVersionUID = 1L;
    @ExcelProperty("机构名称")
    @ExcelProperty("机构名称*")
    @ColumnWidth(20)
    private String deptName;
    @ExcelProperty(value = "所属区划编码")
    @ExcelProperty(value = "所属区划编码*")
    @ColumnWidth(20)
    private String areaCode;
    @ExcelProperty("机构描述")
    @ExcelProperty("机构描述*")
    @ColumnWidth(20)
    private String remark;
    @ColumnWidth(20)
    @ExcelProperty(value = "机构状态", converter = ExcelDictConverter.class)
    @ExcelProperty(value = "机构状态*", converter = ExcelDictConverter.class)
    @ExcelDictItemLabel(type = "institutionStatus")
    @ExcelDictItem(type = "institutionStatus")
    private String status;
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/DeptServiceImpl.java
@@ -324,6 +324,20 @@
    public void importDept(List<DeptImportExcel> data, Boolean isCovered) {
        List<Dept> list = new ArrayList<>();
        data.forEach(deptExcel -> {
            // 校验必填字段
            if (deptExcel.getDeptName() == null || deptExcel.getDeptName().trim().isEmpty()) {
                throw new RuntimeException("机构名称不能为空");
            }
            if (deptExcel.getAreaCode() == null || deptExcel.getAreaCode().trim().isEmpty()) {
                throw new RuntimeException("所属区划编码不能为空");
            }
            if (deptExcel.getRemark() == null || deptExcel.getRemark().trim().isEmpty()) {
                throw new RuntimeException("机构描述不能为空");
            }
            if (deptExcel.getStatus() == null || deptExcel.getStatus().trim().isEmpty()) {
                throw new RuntimeException("机构状态不能为空");
            }
            // 转换数据
            Dept dept = BeanUtil.copy(deptExcel, Dept.class);
            list.add(dept);
        });