智慧保安后台管理项目备份
Administrator
2021-08-20 4be2f81508b2e9dfb858ba082a4e1ae6e2a872a2
派遣单位新增字段,工作汇报接收人接口修改
9 files modified
2 files added
399 ■■■■■ changed files
src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/DeptController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/User.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 183 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/node/TreeNode.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/node/TreeNodes.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IDeptService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 60 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java
@@ -37,7 +37,6 @@
        IPage<DirectiveVo> directiveVoIPage = page.setRecords(baseMapper.selectDirectivePage(page, directive));
        //去除接收人ids,查询出接收人名字
        List<DirectiveVo> records = directiveVoIPage.getRecords();
        System.out.println("records = " + records);
        if (records.size()>0) {
            for (DirectiveVo record : records) {
                String[] receiveDirectiveIds = record.getReceiveDirectiveIds().toString().split(",");
src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java
@@ -84,4 +84,23 @@
    private Long jurisdiction;
    /**
     * 合同生效时间
     */
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startTime;
    /**
     * 合同到期时间
     */
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endTime;
}
src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml
@@ -29,6 +29,9 @@
        <if test="dispatcherUnit.province!=null">
            and sdu.province = #{dispatcherUnit.province}
        </if>
        <if test="dispatcherUnit.deptId!=null and dispatcherUnit.deptId!=''">
            and sdu.dept_id = #{dispatcherUnit.deptId}
        </if>
        <if test="dispatcherUnit.city!=null">
            and sdu.city = #{dispatcherUnit.city}
        </if>
src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -35,6 +35,7 @@
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.vo.DeptVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
@@ -150,6 +151,16 @@
    }
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    @GetMapping("/lazy-tree-users")
    public R<List<TreeNodes>> lazyTreeUsers(Integer type, Long deptId) {
        List<TreeNodes> tree = deptService.lazyTreeUsers(type,deptId);
        return R.data(tree);
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
src/main/java/org/springblade/modules/system/entity/User.java
@@ -176,6 +176,8 @@
     * 是否缴社保
     */
    private String soil;
    /**
     * 健康状态  0:健康 1:良好 2:一般 3:较差
     */
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -18,7 +18,10 @@
import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.vo.DeptVO;
import java.util.List;
@@ -92,4 +95,33 @@
     */
    @SqlParser(filter=true)
    List<DeptVO> lazyTreeUser(String tenantId, Long parentId);
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    @MapKey(value = "id")
    @SqlParser(filter=true)
    Map<Long, TreeNodes> lazyTreeUsers(@Param("type") Integer type,
                                       @Param("deptId") Long deptId,
                                       @Param("jurisdiction")String jurisdiction);
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    @MapKey(value = "id")
    @SqlParser(filter=true)
    Map<Long, TreeNodes> lazyTreeUsersPublicSecurity(@Param("type") Integer type,
                                                     @Param("deptId") Long deptId,
                                                     @Param("jurisdiction")String jurisdiction);
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    @MapKey(value = "id")
    @SqlParser(filter=true)
    Map<Long, TreeNodes> lazyTreeUsersPublicSecuritys(@Param("type") Integer type,
                                                      @Param("deptId") Long deptId,
                                                      @Param("jurisdiction")String jurisdiction);
}
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -139,6 +139,189 @@
        )c
    </select>
    <!--懒加载获取部门树形结构(包含用户数据)-->
    <select id="lazyTreeUsers" resultType="org.springblade.modules.system.node.TreeNodes" >
        select DISTINCT
        *
        from (
        (SELECT
        dept.id,
        dept.parent_id parentId,
        dept.dept_name AS title,
        dept.id AS "value",
        dept.id AS "key",
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        blade_dept
        WHERE
        parent_id = dept.id and is_deleted = 0
        ) AS "has_children"
        FROM
        blade_dept dept
        left join
        sys_information si
        on
        si.departmentid = dept.id
        WHERE
        dept.is_deleted = 0
        <if test="type==1">
            and dept_category=1
        </if>
        <if test="deptId!=null and deptId!=''">
            and dept.id = #{deptId}
        </if>
        )
        union
        (select
        bu.id,
        bu.dept_id  parentId,
        bu.real_name AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
        from blade_user bu
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        where 1=1
        and bu.is_deleted = 0
        <if test="type==1">
            and dept_category=1
        </if>
        <if test="type==2 or type==3">
            and dept_category=2
        </if>
        <if test="deptId!=null and deptId!=''">
            and bu.dept_id = #{deptId}
        </if>
        <if test="jurisdiction!=null and jurisdiction!=''">
            and bu.jurisdiction = #{jurisdiction}
        </if>
        )
        )c
    </select>
    <!--懒加载获取部门树形结构(包含用户数据)-->
    <select id="lazyTreeUsersPublicSecurity" resultType="org.springblade.modules.system.node.TreeNodes" >
        select DISTINCT
        *
        from (
        (SELECT
        dept.id,
        dept.parent_id parentId,
        dept.dept_name AS title,
        dept.id AS "value",
        dept.id AS "key",
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        blade_dept
        WHERE
        parent_id = dept.id and is_deleted = 0
        ) AS "has_children"
        FROM
        blade_dept dept
        left join
        sys_information si
        on
        si.departmentid = dept.id
        WHERE
        dept.is_deleted = 0
        <if test="type==2  or type==3">
            and dept_category=2
        </if>
        <if test="deptId!=null and deptId!=''">
            and (dept.parent_id = #{deptId} or dept.id = #{deptId})
        </if>
        )
        union
        (select
        bu.id,
        bu.dept_id  parentId,
        bu.real_name AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
        from blade_user bu
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        where 1=1
        and bu.is_deleted = 0
        <if test="type==2 or type==3">
            and dept_category=2
        </if>
        <if test="deptId!=null and deptId!=''">
            and (bd.parent_id = #{deptId} or bd.id = #{deptId})
        </if>
        )
        )c
    </select>
    <!--懒加载获取部门树形结构(包含用户数据)-->
    <select id="lazyTreeUsersPublicSecuritys" resultType="org.springblade.modules.system.node.TreeNodes" >
        select DISTINCT
        *
        from (
        (SELECT
        dept.id,
        dept.parent_id parentId,
        dept.dept_name AS title,
        dept.id AS "value",
        dept.id AS "key",
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        blade_dept
        WHERE
        parent_id = dept.id and is_deleted = 0
        ) AS "has_children"
        FROM
        blade_dept dept
        left join
        sys_information si
        on
        si.departmentid = dept.id
        WHERE
        dept.is_deleted = 0
        <if test="type==2  or type==3">
            and dept_category=2
        </if>
        )
        union
        (select
        bu.id,
        bu.dept_id  parentId,
        bu.real_name AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
        from blade_user bu
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        where 1=1
        and bu.is_deleted = 0
        <if test="type==2 or type==3">
            and dept_category=2
        </if>
        )
        )c
    </select>
    <select id="lazyTrees" resultMap="treeNodeResultMap">
    SELECT
src/main/java/org/springblade/modules/system/node/TreeNode.java
New file
@@ -0,0 +1,38 @@
package org.springblade.modules.system.node;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * @author zhongrj
 */
@Data
public class TreeNode {
    /**
     * id
     */
    private Long id;
    /**
     * 父id
     */
    private Long parentId;
    /**
     * 树节点名称
     */
    private String name;
    /**
     * 子节点
     */
    private List<TreeNode> children = new ArrayList<>();
    /**
     * 是否有子节点
     */
    private Boolean hasChildren;
}
src/main/java/org/springblade/modules/system/node/TreeNodes.java
New file
@@ -0,0 +1,43 @@
package org.springblade.modules.system.node;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * @author zhongrj
 * avue 返回格式
 */
@Data
public class TreeNodes {
    /**
     * id
     */
    private Long id;
    /**
     * key
     */
    private Long key;
    /**
     * 父id
     */
    private Long parentId;
    /**
     * 树节点名称
     */
    private String title;
    /**
     * 子节点
     */
    private List<TreeNodes> children = new ArrayList<>();
    /**
     * 是否有子节点
     */
    private Boolean hasChildren;
}
src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -18,6 +18,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.vo.DeptVO;
import java.util.List;
@@ -133,4 +134,10 @@
     * @return
     */
    List<DeptVO> lazyTreeUser(String tenantId, Long parentId);
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    List<TreeNodes> lazyTreeUsers(Integer type, Long deptId);
}
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -19,20 +19,29 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.SysCache;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.information.entity.Information;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.jurisdiction.entity.Jurisdiction;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.vo.DeptVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -43,9 +52,14 @@
 * @author Chill
 */
@Service
@AllArgsConstructor
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
    private static final String TENANT_ID = "tenantId";
    private static final String PARENT_ID = "parentId";
    private final IInformationService iInformationService;
    private final JurisdictionService jurisdictionService;
    @Override
    public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -211,4 +225,50 @@
        return ForestNodeMerger.merge(baseMapper.lazyTreeUser(tenantId, parentId));
    }
    /**
     * 懒加载获取部门树形结构(包含用户数据),只查下一级的数据
     * @return
     */
    @Override
    public List<TreeNodes> lazyTreeUsers(Integer type, Long deptId) {
        Map<Long,TreeNodes> map = new HashMap<>();
        //保安向保安汇报
        if(type==1){
            map = baseMapper.lazyTreeUsers(type,deptId,null);
        }
        //保安向民警汇报
        if(type==2){
            //查询当前保安所在的辖区
            Information information = new Information();
            information.setDepartmentid(deptId.toString());
            Information one = iInformationService.getOne(Condition.getQueryWrapper(information));
            if (null!=one) {
                //找辖区对应的组织机构id
                Jurisdiction jurisdiction = jurisdictionService.getById(one.getJurisdiction());
                if (null != jurisdiction) {
                    Dept dept = new Dept();
                    dept.setDeptName(jurisdiction.getDeptName());
                    Dept dept1 = this.getOne(Condition.getQueryWrapper(dept));
                    map = baseMapper.lazyTreeUsersPublicSecurity(type, dept1.getId(), one.getJurisdiction());
                }
            }
        }
        //民警向民警汇报,需要南昌市及当前民警所在辖区的部门数据
        if(type==3){
            //当前取所有的民警数据
            map = baseMapper.lazyTreeUsersPublicSecuritys(type,null,null);
        }
        List<TreeNodes> tree = new ArrayList<>();
        Map<Long, TreeNodes> finalMap = map;
        map.forEach((id, treeNodes) ->{
            if (finalMap.containsKey(treeNodes.getParentId())){
                finalMap.get(treeNodes.getParentId()).getChildren().add(treeNodes);
            }else {
                tree.add(treeNodes);
            }
        });
        return tree;
    }
}