785834757 1 tahun lalu
induk
melakukan
b86deaa376

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysSystemVo.java

@@ -105,4 +105,7 @@ public class SysSystemVo extends BaseModel {
     /** 机构数量 */
     @Schema(description = "机构数量")
     private Integer deptCount;
+
+    @Schema(description = "区划中文拼接")
+    private String division;
 }

+ 20 - 0
platform/src/main/java/com/jzg/mapper/SysAreaBMapper.java

@@ -0,0 +1,20 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysArea;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author Administrator
+* @description 针对表【sys_area(省市县代码)】的数据库操作Mapper
+* @createDate 2023-11-15 11:23:28
+* @Entity generator.domain.SysArea
+*/
+@Mapper
+public interface SysAreaBMapper extends BaseMapper<SysArea> {
+
+}
+
+
+
+

+ 42 - 0
platform/src/main/java/com/jzg/service/SysAreaBService.java

@@ -0,0 +1,42 @@
+package com.jzg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.po.SysArea;
+import com.jzg.commons.entity.vo.SysAreaVo;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service
+ * @createDate 2023-11-15 11:23:28
+ */
+public interface SysAreaBService extends IService<SysArea> {
+
+    /**
+     * 省市区树结构查询
+     */
+    List<SysAreaVo> querySysArea();
+
+    /**
+     * 按照level查询
+     */
+    List<SysArea> queryByLevel(Integer level);
+
+    /**
+     * 获取所有上级数据
+     *
+     * @param sysArea
+     * @return
+     */
+    List<SysArea> queryAllParent(SysArea sysArea);
+
+    /**
+     * 根据区域编码数组查询数据  按照 level 排序
+     * @param areaCodes
+     * @return
+     */
+    List<SysArea> queryAllByAreaCode(List<String> areaCodes);
+
+
+}

+ 61 - 0
platform/src/main/java/com/jzg/service/impl/SysAreaBServiceImpl.java

@@ -0,0 +1,61 @@
+package com.jzg.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.po.SysArea;
+import com.jzg.commons.entity.vo.SysAreaVo;
+import com.jzg.mapper.SysAreaBMapper;
+import com.jzg.service.SysAreaBService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service实现
+ * @createDate 2023-11-15 11:23:28
+ */
+@Service
+public class SysAreaBServiceImpl extends ServiceImpl<SysAreaBMapper, SysArea> implements SysAreaBService {
+
+    @Override
+    public List<SysAreaVo> querySysArea() {
+        List<SysArea> list = list();
+        List<SysAreaVo> collect = list.stream().map(SysAreaVo::new).collect(Collectors.toList());
+        Map<String, List<SysAreaVo>> map = collect.stream().collect(Collectors.groupingBy(SysAreaVo::getUpperCode));
+        collect.forEach(i -> i.setChild(map.getOrDefault(i.getAreaCode(), new ArrayList<>())));
+        return map.get("0");
+    }
+
+    @Override
+    public List<SysArea> queryByLevel(Integer level) {
+        return baseMapper.selectList(new LambdaQueryWrapper<SysArea>().eq(SysArea::getLevel, level));
+    }
+
+    //递归查询他的所有上级
+    @Override
+    public List<SysArea> queryAllParent(SysArea sysArea) {
+        List<SysArea> list = new ArrayList<>();
+        list.add(sysArea);
+        if (sysArea.getLevel() == 1) {
+            return list;
+        }
+        SysArea parent = baseMapper.selectOne(new LambdaQueryWrapper<SysArea>().eq(SysArea::getAreaCode, sysArea.getUpperCode()));
+        list.addAll(queryAllParent(parent));
+        return list;
+    }
+
+    @Override
+    public List<SysArea> queryAllByAreaCode(List<String> areaCodes) {
+        List<SysArea> sysAreas = baseMapper.selectList(new LambdaQueryWrapper<SysArea>()
+                .in(SysArea::getAreaCode, areaCodes)
+                .orderByAsc(SysArea::getLevel));
+        return sysAreas;
+    }
+
+}
+
+

+ 31 - 1
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -17,10 +17,10 @@ import com.jzg.commons.entity.vo.SysSystemPermsVo;
 import com.jzg.commons.entity.vo.SysSystemVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
 import com.jzg.commons.exception.SystemException;
-import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.mapper.*;
+import com.jzg.service.SysAreaBService;
 import com.jzg.service.SysSystemService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,6 +62,8 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
     private SysUserPlateInfoMapper sysUserPlateInfoMapper;
     @Value("${minio.bucket-name}")
     private String bucketName;
+    @Autowired
+    private SysAreaBService sysAreaService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -223,7 +225,22 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                     int count = deptMap.get(sysSystem.getSysCode()).size();
                     sysSystem.setDeptCount(count);
                 }
+
+                List<String> areas = new ArrayList<>();
+                areas.add(sysSystem.getProvinceId());
+                areas.add(sysSystem.getCityId());
+                areas.add(sysSystem.getDistrictId());
+                List<SysArea> sysAreaVos = sysAreaService.queryAllByAreaCode(areas);
+                String areaString = "";
+                for(int i=0;i<sysAreaVos.size();i++){
+                    areaString = areaString + sysAreaVos.get(i).getAreaCname() + "-";
+                }
+                if(areaString.length()>0) {
+                    sysSystem.setDivision(areaString.substring(0, areaString.length() - 1));
+                }
             });
+
+
         }
         return sysPage;
     }
@@ -239,6 +256,19 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                 vo.setSysIconUrl(MinioUtils.getPresignedObjectUrl(bucketName,files.getFileName()));
             }
         }
+
+        List<String> areas = new ArrayList<>();
+        areas.add(vo.getProvinceId());
+        areas.add(vo.getCityId());
+        areas.add(vo.getDistrictId());
+        List<SysArea> sysAreaVos = sysAreaService.queryAllByAreaCode(areas);
+        String areaString = "";
+        for(int i=0;i<sysAreaVos.size();i++){
+            areaString = areaString + sysAreaVos.get(i).getAreaCname() + "-";
+        }
+        if(areaString.length()>0) {
+            vo.setDivision(areaString.substring(0, areaString.length() - 1));
+        }
         SysUser user = sysUserMapper.selectById(system.getUserId());
         vo.setUserName(user.getUsername());
         vo.setUserAccount(user.getMobile());

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/SysOrganizationController.java

@@ -4,6 +4,7 @@ package com.jzg.organization.controller;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
 import com.jzg.commons.entity.po.SysOrganization;
+import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.service.SysOrganizationService;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.beans.BeanUtils;
@@ -69,6 +70,7 @@ public class SysOrganizationController {
         }
         SysOrganization sysOrganization = new SysOrganization();
         BeanUtils.copyProperties(organizationAdd, sysOrganization);
+        sysOrganization.setId(IdGenerate.nextId());
         return sysOrganizationService.save(sysOrganization) ? HttpResult.ok("新增成功") : HttpResult.error("新增失败");
     }
 

+ 3 - 1
tenant/organization/src/main/resources/mapper/SysOrganizationMapper.xml

@@ -21,10 +21,12 @@
         (SELECT sys_dept.`name` FROM sys_dept WHERE sys_dept.id = sys_organization.dept_id) deptName,
         (SELECT u.username FROM sys_user u WHERE u.id = sys_organization.manager_id) managerName
         from sys_organization
-        <where> 1=1
+        <where>
+            1=1
             <if test="params.param != null and params.param != ''">
                 and sys_organization.name like concat('%',#{params.param},'%')
             </if>
+        and is_delete = 0
         </where>
     </select>