浏览代码

专家库和供应商去掉采购品种和供应商类型

buzhanyi 1 年之前
父节点
当前提交
3b1723f494

+ 16 - 1
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseExpertController.java

@@ -13,10 +13,12 @@ import com.ozs.common.annotation.Log;
 import com.ozs.common.constant.ModularConstans;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
+import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.system.domain.vo.SysRegionVO;
 import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.SysRegionService;
@@ -30,6 +32,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.validation.constraints.NotEmpty;
@@ -76,7 +79,7 @@ public class BaseExpertController extends BaseController {
         LambdaQueryWrapper<BaseProfessional> lw = new LambdaQueryWrapper();
         lw.eq(BaseProfessional::getProfessionalCode, baseExpertVo.getMajorType());
         List<BaseProfessional> list = baseProfessionalService.list(lw);
-        if (ObjectUtils.isEmpty(list) || list.size() < 1) {
+        if (ObjectUtils.isEmpty(list)) {
             return error("专业类型传值错误");
         }
         LambdaQueryWrapper<BaseExpert> l = new LambdaQueryWrapper();
@@ -92,6 +95,18 @@ public class BaseExpertController extends BaseController {
         return toAjax(baseExpertService.insertExpert(baseExpertVo));
     }
 
+    @ApiOperation(value = "导入专家数据")
+    @PostMapping("/importData")
+    //@PreAuthorize("@ss.hasPermi('base:expert:importData')")
+    @Log(title = ModularConstans.expert, businessType = BusinessType.INSERT)
+    public AjaxResult importData(MultipartFile file) throws Exception {
+        ExcelUtil<BaseExpertVo> util = new ExcelUtil<>(BaseExpertVo.class);
+        List<BaseExpertVo> expertVos = util.importExcel(file.getInputStream(), 1);
+        LoginUser loginUser = getLoginUser();
+        String message = baseExpertService.importBaseExpert(expertVos, loginUser);
+        return success(message);
+    }
+
     @ApiOperation(value = "删除专家库", notes = "必传 id")
     @PostMapping("/deleteExpert")
     @PreAuthorize("@ss.hasPermi('base:expert:deleteExpert')")

+ 2 - 2
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java

@@ -340,12 +340,12 @@ public class PlanYearsController extends BaseController {
     @PostMapping("/importData")
     @PreAuthorize("@ss.hasPermi('plan:planYears:importData')")
     @Log(title = ModularConstans.planYear, businessType = BusinessType.INSERT)
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+    public AjaxResult importData(MultipartFile file) throws Exception {
         ExcelUtil<PlanYearsStandardVo> util = new ExcelUtil<>(PlanYearsStandardVo.class);
         List<PlanYearsStandardVo> planYears = util.importExcel(file.getInputStream(), 2);
         //获取采购单位-
         LoginUser loginUser = getLoginUser();
-        String message = planYearsService.importPlanYears(planYears, updateSupport, loginUser);
+        String message = planYearsService.importPlanYears(planYears, loginUser);
         return success(message);
     }
 

+ 5 - 0
purchase-common/src/main/java/com/ozs/common/constant/Constants.java

@@ -178,4 +178,9 @@ public class Constants {
     // 单位性质
     public static final String SYS_COMPANY_NATURE = "sys_company_nature";
 
+    // 专家类型
+    public static final String EXPERT_TYPE = "expert_type";
+    // 职称
+    public static final String PROFESSIONAL_TITLE = "professional_title";
+
 }

+ 12 - 1
purchase-system/src/main/java/com/ozs/base/domain/vo/BaseExpertVo.java

@@ -2,7 +2,7 @@ package com.ozs.base.domain.vo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.common.vo.PageVo;
+import com.ozs.common.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -28,12 +28,14 @@ public class BaseExpertVo {
     /**
      * 专家名称
      */
+    @Excel(name = "专家名称")
     @ApiModelProperty(value = "专家名称")
     private String expertName;
 
     /**
      * 专家类型
      */
+    @Excel(name = "专家类型")
     @ApiModelProperty(value = "专家类型,多个使用英文逗号分隔")
     private String expertType;
 
@@ -46,12 +48,14 @@ public class BaseExpertVo {
     /**
      * 专家性别
      */
+    @Excel(name = "专家性别")
     @ApiModelProperty(value = "专家性别")
     private String expertGender;
 
     /**
      * 出生年月
      */
+    @Excel(name = "出生年月")
     @JsonFormat(pattern = "yyyy-MM")
     @ApiModelProperty(value = "出生年月")
     private String expertDateBirth;
@@ -59,6 +63,7 @@ public class BaseExpertVo {
     /**
      * 联系方式
      */
+    @Excel(name = "联系方式")
     @ApiModelProperty(value = "联系方式")
     private String expertTel;
 
@@ -71,12 +76,14 @@ public class BaseExpertVo {
     /**
      * 专业类型名
      */
+    @Excel(name = "专业类型")
     @ApiModelProperty(value = "专业类型名,多个使用英文逗号分隔")
     private String majorTypeName;
 
     /**
      * 单位信息
      */
+    @Excel(name = "单位信息")
     @ApiModelProperty(value = "单位信息")
     private String unitInformation;
 
@@ -90,6 +97,7 @@ public class BaseExpertVo {
     /**
      * 职称
      */
+    @Excel(name = "职称")
     @ApiModelProperty(value = "职称")
     private String professionalTitle;
 
@@ -102,8 +110,10 @@ public class BaseExpertVo {
     /**
      * 所在区域
      */
+    @Excel(name = "所在区域")
     @ApiModelProperty(value = "所在区域(行政区域表的code)")
     private String localArea;
+
     private List<String> localAreaList;
 
     /**
@@ -115,6 +125,7 @@ public class BaseExpertVo {
     /**
      * 身份证号
      */
+    @Excel(name = "身份证号")
     @ApiModelProperty(value = "身份证号")
     private String idNumber;
 

+ 2 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseExpertService.java

@@ -6,6 +6,7 @@ import com.ozs.base.domain.BaseExpert;
 import com.ozs.base.domain.BaseUnitInformation;
 import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.model.LoginUser;
 
 import java.util.List;
 
@@ -20,4 +21,5 @@ public interface BaseExpertService extends IService<BaseExpert> {
 
     List<BaseUnitInformation> getBaseUnitInformationList();
 
+    String importBaseExpert(List<BaseExpertVo> expertVos, LoginUser loginUser);
 }

+ 163 - 1
purchase-system/src/main/java/com/ozs/base/service/impl/BaseExpertServiceImpl.java

@@ -2,20 +2,22 @@ package com.ozs.base.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ozs.base.domain.BaseExpert;
+import com.ozs.base.domain.BaseProfessional;
 import com.ozs.base.domain.BaseUnitInformation;
 import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.base.mapper.BaseExpertMapper;
 import com.ozs.base.service.BaseExpertService;
+import com.ozs.base.service.BaseProfessionalService;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.*;
+import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.SecurityUtils;
 import com.ozs.common.utils.StringUtils;
@@ -26,12 +28,15 @@ import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.mapper.PmDemandExpertRefMapper;
 import com.ozs.pm.service.IPmDemandService;
 import com.ozs.pm.service.PmDemandExpertRefService;
+import com.ozs.system.domain.vo.SysRegionVO;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.ISysDictTypeService;
+import com.ozs.system.service.SysRegionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.util.*;
@@ -54,6 +59,10 @@ public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExp
     private ISysDictDataService dictDataService;
     @Autowired
     private ISysDictTypeService dictTypeService;
+    @Autowired
+    private BaseProfessionalService baseProfessionalService;
+    @Autowired
+    private SysRegionService sysRegionService;
 
     @Override
     public int insertExpert(BaseExpertVo baseExpertVo) {
@@ -171,6 +180,159 @@ public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExp
         return baseUnitInformationList;
     }
 
+    @Transactional
+    @Override
+    public String importBaseExpert(List<BaseExpertVo> expertVos, LoginUser loginUser) {
+        //获取字典数据
+        HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAbouteExpertEnums();
+        //专家类型
+        HashMap<String, String> expertTypeMap = planEnums.get("expertTypes");
+        //职称
+        HashMap<String, String> professionalTitleMap = planEnums.get("professionalTitles");
+
+        if (ObjectUtils.isEmpty(expertVos) || expertVos.size() < 1) {
+            throw new ServiceException("导入专家信息不能为空!");
+        }
+        //转实体类
+        List<BaseExpert> experts = new ArrayList<>();
+        for (BaseExpertVo expertVo : expertVos) {
+            BaseExpert expert = new BaseExpert();
+            BeanUtils.copyProperties(expertVo, expert);
+            expert.setMajorType(expertVo.getMajorTypeName());
+            experts.add(expert);
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        ////deptService
+        for (BaseExpert expert : experts) {
+            try {
+                //专家类型,专家状态
+                if (!StringUtils.isEmpty(expertTypeMap.get(expert.getExpertType()))) {
+                    expert.setExpertType(expertTypeMap.get(expert.getExpertType()));
+                    expert.setStatus("0");
+                } else {
+                    ++failureNum;
+                    failureMsg.append(failureNum + "、专家类型“" + expert.getExpertType() + "”不存在");
+                }
+                //专业类型
+                LambdaQueryWrapper<BaseProfessional> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(BaseProfessional::getProfessionalName, expert.getMajorType());
+                List<BaseProfessional> list = baseProfessionalService.list(wrapper);
+                //专家信息中存的是专业的code
+                if (!StringUtils.isEmpty(list)) {
+                    expert.setMajorType(list.get(0).getProfessionalCode());
+                } else {
+                    ++failureNum;
+                    failureMsg.append(failureNum + "、专业类型“" + expert.getExpertType() + "”不存在");
+                }
+                //职称
+                if (!StringUtils.isEmpty(professionalTitleMap.get(expert.getProfessionalTitle()))) {
+                    expert.setProfessionalTitle(professionalTitleMap.get(expert.getProfessionalTitle()));
+                } else {
+                    ++failureNum;
+                    failureMsg.append(failureNum + "、职称“" + expert.getProfessionalTitle() + "”不存在");
+                }
+                if (StringUtils.isNotNull(expert.getUnitInformation())) {
+                    List<BaseUnitInformation> baseUnitInformationList = baseExpertMapper.selectByUnitInformation(expert.getUnitInformation());
+                    if (baseUnitInformationList.size() <= 0) {
+                        BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
+                        baseUnitInformation.setUnitName(expert.getUnitInformation());
+                        baseUnitInformation.setCreated(loginUser.getUserId().toString());
+                        baseUnitInformation.setCreateTime(new Date());
+                        Integer i = baseExpertMapper.insertBaseUnitInformation(baseUnitInformation);
+                        expert.setUnitInformation(i + "");
+                    }
+                }
+                //地区
+                if (StringUtils.isEmpty(expert.getLocalArea()) || expert.getLocalArea().split("/").length < 2) {
+                    ++failureNum;
+                    failureMsg.append(failureNum + "、地区“" + expert.getLocalArea() + "”不存在");
+                } else {
+                    //大部分地区是三级
+                    String[] localAreas = expert.getLocalArea().split("/");
+                    if (localAreas.length == 3) {
+                        List<SysRegionVO> sysRegionVO = sysRegionService.selectInfoByName(localAreas[0]);
+                        List<SysRegionVO> sysRegionVO1 = sysRegionService.selectInfoByName(localAreas[1]);
+                        List<SysRegionVO> sysRegionVO2 = sysRegionService.selectInfoByName(localAreas[2]);
+                        if (ObjectUtils.isEmpty(sysRegionVO2) || ObjectUtils.isEmpty(sysRegionVO1) || ObjectUtils.isEmpty(sysRegionVO)) {
+                            ++failureNum;
+                            failureMsg.append(failureNum + "、地区“" + expert.getLocalArea() + "”信息有误");
+                        } else {
+                            //是否成立上下级关系
+                            boolean isLea = false;
+                            for (SysRegionVO vo : sysRegionVO2) {
+                                for (SysRegionVO regionVO : sysRegionVO1) {
+                                    if (vo.getPid().equals(regionVO.getId())) {
+                                        for (SysRegionVO sysRegionVO3 : sysRegionVO) {
+                                            if (regionVO.getPid().equals(sysRegionVO3.getId())) {
+                                                //保存行政编码
+                                                isLea = true;
+                                                expert.setLocalArea(vo.getCode());
+                                                break;
+                                            }
+                                        }
+                                        break;
+                                    }
+                                }
+                            }
+                            if (isLea == false) {
+                                ++failureNum;
+                                failureMsg.append(failureNum + "、地区“" + expert.getLocalArea() + "”非上下级关系");
+                            }
+                        }
+
+                        //香港等少数地区是二级
+                    } else if (localAreas.length == 2) {
+                        List<SysRegionVO> sysRegionVO = sysRegionService.selectInfoByName(localAreas[0]);
+                        List<SysRegionVO> sysRegionVO1 = sysRegionService.selectInfoByName(localAreas[1]);
+                        if (ObjectUtils.isEmpty(sysRegionVO1) || ObjectUtils.isEmpty(sysRegionVO)) {
+                            ++failureNum;
+                            failureMsg.append(failureNum + "、地区“" + expert.getLocalArea() + "”信息有误");
+                        } else {
+                            //是否成立上下级关系
+                            boolean isLea = false;
+                            for (SysRegionVO regionVO : sysRegionVO) {
+                                for (SysRegionVO vo : sysRegionVO1) {
+                                    if (vo.getPid().equals(regionVO.getId())) {
+                                        //保存行政编码
+                                        isLea = true;
+                                        expert.setLocalArea(vo.getCode());
+                                        break;
+                                    }
+                                }
+                            }
+                            if (isLea == false) {
+                                ++failureNum;
+                                failureMsg.append(failureNum + "、地区“" + expert.getLocalArea() + "”非上下级关系");
+                            }
+                        }
+                    }
+                }
+                expert.setCreated(String.valueOf(loginUser.getUserId()));
+                expert.setCreateTime(new Date());
+                expert.setUpdated(String.valueOf(loginUser.getUserId()));
+                expert.setUpdateTime(new Date());
+                baseExpertMapper.insert(expert);
+                successNum++;
+                successMsg.append(successNum + "、专家【" + expert.getExpertName() + "】导入成功!");
+            } catch (Exception exc) {
+                failureNum++;
+                String msg = successNum + "、专家【" + expert.getExpertName() + "】导入失败";
+                failureMsg.append(msg + exc.getMessage());
+                log.error(msg, exc);
+            }
+        }
+        if (failureNum > 0) {
+            failureMsg.insert(0, "导入失败!共 " + failureNum + " 条数据格式不正确:");
+            throw new ServiceException(failureMsg.toString());
+        } else {
+            successMsg.insert(0, "导入成功!共 " + successNum + " 条。");
+        }
+        return successMsg.toString();
+    }
+
 
     private List<PmDemandResVo> changTo(List<PmDemand> pmDemandList) {
         List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();

+ 1 - 1
purchase-system/src/main/java/com/ozs/plan/service/PlanYearsService.java

@@ -92,7 +92,7 @@ public interface PlanYearsService extends IService<PlanYears> {
      *
      * @return 结果
      */
-    public String importPlanYears(List<PlanYearsStandardVo> planYears, boolean isUpdateSupport, LoginUser loginUser);
+    public String importPlanYears(List<PlanYearsStandardVo> planYears, LoginUser loginUser);
 
     /**
      * 提交年度计划

+ 1 - 6
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -206,11 +206,6 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         return planYearsList;
     }
 
-    public static void main(String[] args) {
-        int i = (int) Math.ceil(6.66);
-        System.err.println(i);
-    }
-
     @Override
     public AjaxResult deletePlanYearsByIds(Long[] planIds) {
         planYearsMapper.deletePlanYearsByIds(planIds);
@@ -357,7 +352,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
 
     @Transactional
     @Override
-    public String importPlanYears(List<PlanYearsStandardVo> planYears, boolean isUpdateSupport, LoginUser loginUser) {
+    public String importPlanYears(List<PlanYearsStandardVo> planYears, LoginUser loginUser) {
         //获取字典数据
         HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAboutEnums();
         //项目属性

+ 1 - 1
purchase-system/src/main/java/com/ozs/system/domain/vo/SysRegionVO.java

@@ -30,7 +30,7 @@ public class SysRegionVO implements Serializable {
     private String administrativeDivision;
 
 
-    @ApiModelProperty("code")
+    @ApiModelProperty("code(行政区划编码)")
     private String code;
 
 

+ 2 - 0
purchase-system/src/main/java/com/ozs/system/mapper/SysRegionMapper.java

@@ -16,4 +16,6 @@ public interface SysRegionMapper extends BaseMapper<SysRegion> {
 
 
     SysRegionVO selectInfoByCode(@Param("code") String code);
+
+    List<SysRegionVO> selectInfoByName(@Param("name") String name);
 }

+ 7 - 0
purchase-system/src/main/java/com/ozs/system/service/ISysDictTypeService.java

@@ -104,4 +104,11 @@ public interface ISysDictTypeService {
      * @return 年度计划信息中的枚举类信息(下拉框数据)
      */
     public HashMap<String, HashMap<String, String>> getAboutEnums();
+
+    /**
+     * 导入专家信息时,需要的字段数据
+     *
+     * @return
+     */
+    public HashMap<String, HashMap<String, String>> getAbouteExpertEnums();
 }

+ 2 - 0
purchase-system/src/main/java/com/ozs/system/service/ISysRegionService.java

@@ -16,4 +16,6 @@ public interface ISysRegionService extends IService<SysRegion> {
     List<SysRegionVO> findChildDivisions(String pCode);
 
     SysRegionVO selectInfoByCode(String code);
+
+    List<SysRegionVO> selectInfoByName(String name);
 }

+ 4 - 0
purchase-system/src/main/java/com/ozs/system/service/SysRegionService.java

@@ -141,4 +141,8 @@ public class SysRegionService {
     public SysRegionVO selectInfoByCode(String code) {
         return gtAdministrativeDivisionService.selectInfoByCode(code);
     }
+
+    public List<SysRegionVO> selectInfoByName(String name) {
+        return gtAdministrativeDivisionService.selectInfoByName(name);
+    }
 }

+ 22 - 0
purchase-system/src/main/java/com/ozs/system/service/impl/SysDictTypeServiceImpl.java

@@ -264,4 +264,26 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService {
         hashMap.put("planPurchaseModes", planPurchaseModesMap);
         return hashMap;
     }
+
+    @Override
+    public HashMap<String, HashMap<String, String>> getAbouteExpertEnums() {
+        HashMap<String, HashMap<String, String>> hashMap = new HashMap<>();
+        //专家类型
+        HashMap<String, String> expertTypeMap = new LinkedHashMap<>();
+        //职称
+        HashMap<String, String> professionalTitleMap = new LinkedHashMap<>();
+        //专家类型
+        List<SysDictData> data = dictDataMapper.selectDictDataByType(Constants.EXPERT_TYPE);
+        //职称
+        List<SysDictData> data2 = dictDataMapper.selectDictDataByType(Constants.PROFESSIONAL_TITLE);
+        for (SysDictData dictData : data) {
+            expertTypeMap.put(dictData.getDictLabel(), dictData.getDictValue());
+        }
+        for (SysDictData dictData : data2) {
+            professionalTitleMap.put(dictData.getDictLabel(), dictData.getDictValue());
+        }
+        hashMap.put("expertTypes", expertTypeMap);
+        hashMap.put("professionalTitles", professionalTitleMap);
+        return hashMap;
+    }
 }

+ 5 - 0
purchase-system/src/main/java/com/ozs/system/service/impl/SysRegionServiceImpl.java

@@ -20,4 +20,9 @@ public class SysRegionServiceImpl extends ServiceImpl<SysRegionMapper, SysRegion
     public SysRegionVO selectInfoByCode(String code) {
         return this.baseMapper.selectInfoByCode(code);
     }
+
+    @Override
+    public List<SysRegionVO> selectInfoByName(String name) {
+        return this.baseMapper.selectInfoByName(name);
+    }
 }

+ 11 - 5
purchase-system/src/main/resources/mapper/system/SysRegionMapper.xml

@@ -3,11 +3,11 @@
 <mapper namespace="com.ozs.system.mapper.SysRegionMapper">
 
     <resultMap type="com.ozs.system.domain.vo.SysRegionVO" id="divisionList">
-        <id property="id" column="id" />
-        <result property="administrativeDivision" column="administrative_division" />
-        <result property="pid" column="pid" />
-        <result property="code" column="code" />
-        <result property="level" column="level" />
+        <id property="id" column="id"/>
+        <result property="administrativeDivision" column="administrative_division"/>
+        <result property="pid" column="pid"/>
+        <result property="code" column="code"/>
+        <result property="level" column="level"/>
         <collection property="children"
                     ofType="com.ozs.system.domain.vo.SysRegionVO"
                     select="findChildDivisions"
@@ -26,4 +26,10 @@
         WHERE code = #{code}
     </select>
 
+    <select id="selectInfoByName" resultType="com.ozs.system.domain.vo.SysRegionVO" parameterType="java.lang.String">
+        SELECT m.id, m.administrative_division as administrativeDivision, m.pid, m.code, m.level
+        FROM sys_region m
+        WHERE m.administrative_division = #{name}
+    </select>
+
 </mapper>