Explorar o código

Merge remote-tracking branch 'origin/master'

luoyb hai 1 ano
pai
achega
d0066176a9
Modificáronse 14 ficheiros con 687 adicións e 1 borrados
  1. 19 0
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemotePtAreaService.java
  2. 57 0
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemotePtAreaBo.java
  3. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/controller/PtAreaController.java
  4. 67 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/PtArea.java
  5. 66 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/bo/PtAreaBo.java
  6. 17 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/convert/PtAreaBoConvert.java
  7. 75 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/vo/PtAreaVo.java
  8. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/mapper/PtAreaMapper.java
  9. 59 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/IPtAreaService.java
  10. 125 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtAreaServiceImpl.java
  11. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtOperatorServiceImpl.java
  12. 34 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/dubbo/RemotePtAreaServiceImpl.java
  13. 23 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/basics/room/PtAreaMapper.xml
  14. 23 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

+ 19 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemotePtAreaService.java

@@ -0,0 +1,19 @@
+package org.dromara.backstage.api;
+
+import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
+
+/**
+ * 用户服务
+ *
+ * @author Lion Li
+ */
+public interface RemotePtAreaService {
+
+    /**
+     * 新增学校
+     * @param bo
+     * @return
+     */
+    Boolean insertByBo(RemotePtAreaBo bo);
+
+}

+ 57 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemotePtAreaBo.java

@@ -0,0 +1,57 @@
+package org.dromara.backstage.api.domain.bo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class RemotePtAreaBo  implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 5862389182109258127L;
+
+    /**
+     * 区域Id,主键
+     */
+    private Long areaId;
+
+    /**
+     * 父区域id
+     */
+    private Long parentId;
+
+    /**
+     * 祖级列表
+     */
+    private String ancestors;
+
+    /**
+     * 区域名称
+     */
+    private String areaName;
+
+    /**
+     * 区域类型,见BUILDAREATYPE字典类型
+     */
+    private String areaType;
+
+    /**
+     * 区域编码
+     */
+    private String areaCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String tenantId;
+
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/controller/PtAreaController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.basics.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.backstage.basics.domain.vo.PtAreaVo;
+import org.dromara.backstage.basics.domain.bo.PtAreaBo;
+import org.dromara.backstage.basics.service.IPtAreaService;
+
+/**
+ * 建筑物区域
+ * 前端访问路由地址为:/room/ptArea
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/room/ptArea")
+public class PtAreaController extends BaseController {
+
+    private final IPtAreaService ptAreaService;
+
+    /**
+     * 查询建筑物区域列表
+     */
+    @SaCheckPermission("room:ptArea:list")
+    @GetMapping("/list")
+    public R<List<PtAreaVo>> list(PtAreaBo bo) {
+        List<PtAreaVo> list = ptAreaService.queryList(bo);
+        return R.ok(list);
+    }
+
+    /**
+     * 导出建筑物区域列表
+     */
+    @SaCheckPermission("room:ptArea:export")
+    @Log(title = "建筑物区域", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(PtAreaBo bo, HttpServletResponse response) {
+        List<PtAreaVo> list = ptAreaService.queryList(bo);
+        ExcelUtil.exportExcel(list, "建筑物区域", PtAreaVo.class, response);
+    }
+
+    /**
+     * 获取建筑物区域详细信息
+     *
+     * @param areaId 主键
+     */
+    @SaCheckPermission("room:ptArea:query")
+    @GetMapping("/{areaId}")
+    public R<PtAreaVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long areaId) {
+        return R.ok(ptAreaService.queryById(areaId));
+    }
+
+    /**
+     * 新增建筑物区域
+     */
+    @SaCheckPermission("room:ptArea:add")
+    @Log(title = "建筑物区域", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody PtAreaBo bo) {
+        return toAjax(ptAreaService.insertByBo(bo));
+    }
+
+    /**
+     * 修改建筑物区域
+     */
+    @SaCheckPermission("room:ptArea:edit")
+    @Log(title = "建筑物区域", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PtAreaBo bo) {
+        return toAjax(ptAreaService.updateByBo(bo));
+    }
+
+    /**
+     * 删除建筑物区域
+     *
+     * @param areaIds 主键串
+     */
+    @SaCheckPermission("room:ptArea:remove")
+    @Log(title = "建筑物区域", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{areaIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] areaIds) {
+        return toAjax(ptAreaService.deleteWithValidByIds(List.of(areaIds), true));
+    }
+}

+ 67 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/PtArea.java

@@ -0,0 +1,67 @@
+package org.dromara.backstage.basics.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 建筑物区域对象 t_pt_area
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_pt_area")
+public class PtArea extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 区域Id,主键
+     */
+    @TableId(value = "area_id")
+    private Long areaId;
+
+    /**
+     * 父区域id
+     */
+    private Long parentId;
+
+    /**
+     * 祖级列表
+     */
+    private String ancestors;
+
+    /**
+     * 区域名称
+     */
+    private String areaName;
+
+    /**
+     * 区域类型,见BUILDAREATYPE字典类型
+     */
+    private String areaType;
+
+    /**
+     * 区域编码
+     */
+    private String areaCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 66 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/bo/PtAreaBo.java

@@ -0,0 +1,66 @@
+package org.dromara.backstage.basics.domain.bo;
+
+import org.dromara.backstage.basics.domain.PtArea;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 建筑物区域业务对象 t_pt_area
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = PtArea.class, reverseConvertGenerate = false)
+public class PtAreaBo extends BaseEntity {
+
+    /**
+     * 区域Id,主键
+     */
+    @NotNull(message = "区域Id,主键不能为空", groups = { EditGroup.class })
+    private Long areaId;
+
+    /**
+     * 父区域id
+     */
+    @NotNull(message = "父区域id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long parentId;
+
+    /**
+     * 祖级列表
+     */
+    @NotBlank(message = "祖级列表不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String ancestors;
+
+    /**
+     * 区域名称
+     */
+    @NotBlank(message = "区域名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String areaName;
+
+    /**
+     * 区域类型,见BUILDAREATYPE字典类型
+     */
+    @NotBlank(message = "区域类型,见BUILDAREATYPE字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String areaType;
+
+    /**
+     * 区域编码
+     */
+    private String areaCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String tenantId;
+
+
+}

+ 17 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/convert/PtAreaBoConvert.java

@@ -0,0 +1,17 @@
+package org.dromara.backstage.basics.domain.convert;
+
+import io.github.linpeilie.BaseMapper;
+import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
+import org.dromara.backstage.basics.domain.bo.PtAreaBo;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingConstants;
+import org.mapstruct.ReportingPolicy;
+
+/**
+ * 用户信息转换器
+ * @author bing
+ */
+@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface PtAreaBoConvert extends BaseMapper<RemotePtAreaBo, PtAreaBo> {
+
+}

+ 75 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/vo/PtAreaVo.java

@@ -0,0 +1,75 @@
+package org.dromara.backstage.basics.domain.vo;
+
+import org.dromara.backstage.basics.domain.PtArea;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 建筑物区域视图对象 t_pt_area
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = PtArea.class)
+public class PtAreaVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 区域Id,主键
+     */
+    @ExcelProperty(value = "区域Id,主键")
+    private Long areaId;
+
+    /**
+     * 父区域id
+     */
+    @ExcelProperty(value = "父区域id")
+    private Long parentId;
+
+    /**
+     * 祖级列表
+     */
+    @ExcelProperty(value = "祖级列表")
+    private String ancestors;
+
+    /**
+     * 区域名称
+     */
+    @ExcelProperty(value = "区域名称")
+    private String areaName;
+
+    /**
+     * 区域类型,见BUILDAREATYPE字典类型
+     */
+    @ExcelProperty(value = "区域类型,见BUILDAREATYPE字典类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "BUILDAREATYPE")
+    private String areaType;
+
+    /**
+     * 区域编码
+     */
+    @ExcelProperty(value = "区域编码")
+    private String areaCode;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/mapper/PtAreaMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.basics.mapper;
+
+import org.dromara.backstage.basics.domain.PtArea;
+import org.dromara.backstage.basics.domain.vo.PtAreaVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 建筑物区域Mapper接口
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+public interface PtAreaMapper extends BaseMapperPlus<PtArea, PtAreaVo> {
+
+}

+ 59 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/IPtAreaService.java

@@ -0,0 +1,59 @@
+package org.dromara.backstage.basics.service;
+
+import org.dromara.backstage.basics.domain.PtArea;
+import org.dromara.backstage.basics.domain.vo.PtAreaVo;
+import org.dromara.backstage.basics.domain.bo.PtAreaBo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 建筑物区域Service接口
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+public interface IPtAreaService {
+
+    /**
+     * 查询建筑物区域
+     *
+     * @param areaId 主键
+     * @return 建筑物区域
+     */
+    PtAreaVo queryById(Long areaId);
+
+
+    /**
+     * 查询符合条件的建筑物区域列表
+     *
+     * @param bo 查询条件
+     * @return 建筑物区域列表
+     */
+    List<PtAreaVo> queryList(PtAreaBo bo);
+
+    /**
+     * 新增建筑物区域
+     *
+     * @param bo 建筑物区域
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(PtAreaBo bo);
+
+    /**
+     * 修改建筑物区域
+     *
+     * @param bo 建筑物区域
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(PtAreaBo bo);
+
+    /**
+     * 校验并批量删除建筑物区域信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 125 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtAreaServiceImpl.java

@@ -0,0 +1,125 @@
+package org.dromara.backstage.basics.service.impl;
+
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.backstage.basics.domain.bo.PtAreaBo;
+import org.dromara.backstage.basics.domain.vo.PtAreaVo;
+import org.dromara.backstage.basics.domain.PtArea;
+import org.dromara.backstage.basics.mapper.PtAreaMapper;
+import org.dromara.backstage.basics.service.IPtAreaService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 建筑物区域Service业务层处理
+ *
+ * @author bing
+ * @date 2024-08-08
+ */
+@RequiredArgsConstructor
+@Service
+public class PtAreaServiceImpl implements IPtAreaService {
+
+    private final PtAreaMapper baseMapper;
+
+    /**
+     * 查询建筑物区域
+     *
+     * @param areaId 主键
+     * @return 建筑物区域
+     */
+    @Override
+    public PtAreaVo queryById(Long areaId){
+        return baseMapper.selectVoById(areaId);
+    }
+
+
+    /**
+     * 查询符合条件的建筑物区域列表
+     *
+     * @param bo 查询条件
+     * @return 建筑物区域列表
+     */
+    @Override
+    public List<PtAreaVo> queryList(PtAreaBo bo) {
+        LambdaQueryWrapper<PtArea> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<PtArea> buildQueryWrapper(PtAreaBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<PtArea> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getAreaName()), PtArea::getAreaName, bo.getAreaName());
+        lqw.eq(StringUtils.isNotBlank(bo.getAreaType()), PtArea::getAreaType, bo.getAreaType());
+        return lqw;
+    }
+
+    /**
+     * 新增建筑物区域
+     *
+     * @param bo 建筑物区域
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(PtAreaBo bo) {
+        PtArea add = MapstructUtils.convert(bo, PtArea.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setAreaId(add.getAreaId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改建筑物区域
+     *
+     * @param bo 建筑物区域
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(PtAreaBo bo) {
+        PtArea update = MapstructUtils.convert(bo, PtArea.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(PtArea entity){
+        //做一些数据校验,如唯一约束
+        LambdaQueryWrapper<PtArea> lqw = Wrappers.lambdaQuery();
+        lqw.eq(PtArea::getAreaName, entity.getAreaName()).ne(entity.getAreaId()!=null,PtArea::getAreaId, entity.getAreaId());
+        if (baseMapper.selectCount(lqw) > 0) {
+            throw new ServiceException("区域名称重复");
+        }
+    }
+
+    /**
+     * 校验并批量删除建筑物区域信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //如果有子节点则不能删除
+            LambdaQueryWrapper<PtArea> lqw = Wrappers.lambdaQuery();
+            lqw.in(PtArea::getParentId, ids);
+            if (baseMapper.selectCount(lqw) > 0) {
+                throw new ServiceException("请先删除子节点");
+            }
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtOperatorServiceImpl.java

@@ -145,7 +145,7 @@ public class PtOperatorServiceImpl implements IPtOperatorService {
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
         if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
+            //做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteByIds(ids) > 0;
     }

+ 34 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/dubbo/RemotePtAreaServiceImpl.java

@@ -0,0 +1,34 @@
+package org.dromara.backstage.dubbo;
+
+import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.dromara.backstage.api.RemotePtAreaService;
+import org.dromara.backstage.api.RemotePtSchoolService;
+import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
+import org.dromara.backstage.api.domain.bo.RemotePtSchoolBo;
+import org.dromara.backstage.basics.domain.bo.PtAreaBo;
+import org.dromara.backstage.basics.domain.bo.PtSchoolBo;
+import org.dromara.backstage.basics.service.IPtAreaService;
+import org.dromara.backstage.basics.service.IPtSchoolService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户服务
+ *
+ * @author Lion Li
+ */
+@RequiredArgsConstructor
+@Service
+@DubboService
+public class RemotePtAreaServiceImpl implements RemotePtAreaService {
+
+    private final IPtAreaService ptAreaService;
+
+
+    @Override
+    public Boolean insertByBo(RemotePtAreaBo bo) {
+        PtAreaBo ptSchoolBo = MapstructUtils.convert(bo, PtAreaBo.class);
+        return ptAreaService.insertByBo(ptSchoolBo);
+    }
+}

+ 23 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/basics/room/PtAreaMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.basics.mapper.PtAreaMapper">
+
+    <resultMap type="org.dromara.backstage.basics.domain.PtArea" id="PtAreaResult">
+            <result property="areaId"    column="area_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="parentId"    column="parent_id"    />
+            <result property="ancestors"    column="ancestors"    />
+            <result property="areaName"    column="area_name"    />
+            <result property="areaType"    column="area_type"    />
+            <result property="areaCode"    column="area_code"    />
+            <result property="remark"    column="remark"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 23 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

@@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.api.RemotePtAreaService;
 import org.dromara.backstage.api.RemotePtSchoolService;
+import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
 import org.dromara.backstage.api.domain.bo.RemotePtSchoolBo;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.Constants;
@@ -59,6 +61,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
     @DubboReference
     private final RemotePtSchoolService remotePtSchoolService;
 
+    @DubboReference
+    private final RemotePtAreaService remotePtAreaService;
+
     /**
      * 查询租户
      */
@@ -209,6 +214,24 @@ public class SysTenantServiceImpl implements ISysTenantService {
         }catch (Exception e){
             throw new ServiceException("创建学校(单位)失败");
         }
+
+        //创建一个区域,一个学校一个区域
+        try{
+            RemotePtAreaBo remotePtAreaBo = new RemotePtAreaBo();
+            remotePtAreaBo.setAreaId(bo.getId());
+            remotePtAreaBo.setAreaName(bo.getCompanyName());
+            remotePtAreaBo.setAreaType("01"); //学校
+            remotePtAreaBo.setAreaCode(tenantId);
+            remotePtAreaBo.setParentId(0L);
+            remotePtAreaBo.setTenantId(tenantId);
+
+            Boolean aBoolean = remotePtAreaService.insertByBo(remotePtAreaBo);
+            if (!aBoolean) {
+                throw new ServiceException("创建区域失败");
+            }
+        }catch (Exception e){
+            throw new ServiceException("创建区域失败");
+        }
         return true;
     }