ci: 删除企标权限部分相关代码

This commit is contained in:
2024-07-30 14:04:19 +08:00
parent 266e356f61
commit 51622258d2
17 changed files with 11 additions and 1187 deletions
@@ -36,8 +36,6 @@ import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectContentService;
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
import com.jero.modules.laws.home.common.LawsHomeSearchCommon;
@@ -139,8 +137,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
@Resource
private ILawsCommonService commonService;
@Resource
private EnterpriseStandardAuthUserService esAuthUserService;
@Resource
private SysWaterMarkUtil sysWaterMarkUtil;
@Resource
private ISarFileSplitInfoService sarFileSplitInfoService;
@@ -149,8 +145,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
@Resource
private ILawsEnterpriseStandardService lawsEnterpriseStandardService;
@Resource
private EnterpriseStandardAuthDeptService enterpriseAuthDeptService;
@Resource
private ILawsHomeSearchService lawsHomeSearchService;
@Resource
private DocumentSplitMapper documentSplitMapper;
@@ -254,19 +248,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 对返回的数据做处理
// 做字段翻译和拼接
infoPage.setRecords(processResultMapPageList(infoPage.getRecords(), fieldListSelect));
// 企标独有权限
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
// 是否能查看详情
esAuthUserService.detailFlagSet(infoPage.getRecords());
// 是否能编辑
esAuthUserService.editFlagSet(infoPage.getRecords());
// 是否能删除
esAuthUserService.delFlagSet(infoPage.getRecords());
}
// 是否收藏判断标识
collectionFlag(infoPage.getRecords());
// 待处理
return infoPage;
}
@@ -75,12 +75,6 @@ public interface IDocumentSplitService {
*/
void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO);
/**
* 企标权限校验
* @param sarFileSplitInfoEO
*/
void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO);
/**
* 唯一性校验
*/
@@ -1,7 +1,5 @@
package com.jero.modules.laws.documenttool.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -29,13 +27,8 @@ import com.jero.modules.laws.documenttool.handler.impl.UniversalImpl;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper;
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.labeldatabase.entity.LawsLabelDatabase;
import com.jero.modules.laws.labeldatabase.service.ILawsLabelDatabaseService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsNodeRelation;
import com.jero.modules.laws.standard.entity.LawsTreeNode;
import com.jero.modules.laws.standard.entity.PartName;
@@ -54,15 +47,12 @@ import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitItemsValEOService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.split.service.impl.FileSpiltService;
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
import com.jero.modules.sys.entity.LawsGrade;
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
import com.jero.modules.sys.service.ILawsGradeService;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysDict;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.model.DepartIdModel;
import com.jero.modules.system.service.*;
import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.enums.LawsFieldTypeEnum;
@@ -134,12 +124,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Autowired
private ILawsEnterpriseStandardLevelService lawsEnterpriseStandardLevelService;
@Autowired
private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private EnterpriseStandardAuthDeptService enterpriseStandardAuthDeptService;
@Autowired
private ISysUserDepartService sysUserDepartService;
@Autowired
private ILawsGradeService lawsGradeService;
@@ -423,8 +409,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override
public void add(SarFileSplitInfoEO sarFileSplitInfoEO) {
// 企标权限校验
enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验
uniqueCheck(sarFileSplitInfoEO);
// 保存文本拆分数据
@@ -447,88 +431,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
}
@Override
public void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO) {
// 登陆人信息
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 管理员有所有企标的权限
List<String> roleIdList = Arrays.asList(sysUser.getRoleIds().split(","));
Collection<String> intersection = CollectionUtils.intersection(adminRoleCodeList, roleIdList);
if (!intersection.isEmpty()){
// 有权限
return;
}
// 企标
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.getOne(
new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, sarFileSplitInfoEO.getSerialNumber()));
if (!Objects.isNull(lawsEnterpriseStandard)){
String id = lawsEnterpriseStandard.getId();
if (StringUtils.isBlank(sarFileSplitInfoEO.getStandardId())){
sarFileSplitInfoEO.setStandardId(id);
}
// 登陆人所在部门
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(sysUser.getId());
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
// 查询临时授权人员
Date date = new Date();
LambdaQueryWrapper<EnterpriseStandardAuthUser> authUserWrapper = new LambdaQueryWrapper<>();
authUserWrapper.eq(EnterpriseStandardAuthUser::getStandardId, id);
authUserWrapper.eq(EnterpriseStandardAuthUser::getAuthUser, sysUser.getId());
authUserWrapper.ge(EnterpriseStandardAuthUser::getAuthExpireDate, date);
List<EnterpriseStandardAuthUser> authUserList = enterpriseStandardAuthUserService.list(authUserWrapper);
// 查询授权部门-和临时授权部门
LambdaQueryWrapper<EnterpriseStandardAuthDept> tempAuthDeptWrapper = new LambdaQueryWrapper<>();
tempAuthDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, id);
tempAuthDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds);
tempAuthDeptWrapper.isNotNull(EnterpriseStandardAuthDept::getAuthExpireDate);
tempAuthDeptWrapper.isNotNull(EnterpriseStandardAuthDept::getAuthDept);
List<EnterpriseStandardAuthDept> tempAuthDeptList = enterpriseStandardAuthDeptService.list(tempAuthDeptWrapper);
if (!tempAuthDeptList.isEmpty()){
// 有权限
return;
}
tempAuthDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
List<EnterpriseStandardAuthDept> authDeptExpireDateList = enterpriseStandardAuthDeptService.list(tempAuthDeptWrapper);
if (!authDeptExpireDateList.isEmpty()){
// 有权限
return;
}
// 查询授权部门
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
authDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, id);
authDeptWrapper.isNull(EnterpriseStandardAuthDept::getAuthExpireDate);
List<EnterpriseStandardAuthDept> authDeptList = enterpriseStandardAuthDeptService.list(authDeptWrapper);
// 企标级别授权的部门
List<LawsEnterpriseStandardLevel> standardLevelList = lawsEnterpriseStandardLevelService.list();
LawsGrade one = lawsGradeService.getOne(new LambdaQueryWrapper<LawsGrade>().eq(LawsGrade::getLevel, 1), false);
LawsGrade two = lawsGradeService.getOne(new LambdaQueryWrapper<LawsGrade>().eq(LawsGrade::getLevel, 2), false);
List<String> levelOneDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(one.getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
List<String> levelTwoDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(two.getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
Set<EnterpriseStandardAuthDept> curAuthSet = authDeptList.stream()
.filter(e -> e.getAuthDept() != null)
.filter(e -> CharSequenceUtil.isNotEmpty(e.getAuthDept()))
.filter(e -> e.getStandardId().equals(id))
.filter(e -> !e.getAuthDept().equals(lawsEnterpriseStandard.getMainDraftingUnit()))
.collect(Collectors.toSet());
// 临时权限
if (authUserList.stream().map(EnterpriseStandardAuthUser::getStandardId).collect(Collectors.toList()).contains(id)) {
// 有权限
return;
}
// 无权限
noAccess();
}
}
private void noAccess() {
if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) {
throw new JeroBootException("无权限!");
@@ -1,69 +0,0 @@
package com.jero.modules.laws.enterprise.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
/**
*
* @TableName laws_enterprise_standard_auth_dept
*/
@Data
@TableName("laws_enterprise_standard_auth_dept")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_enterprise_standard_auth_dept对象", description="企业标准部门授权")
public class EnterpriseStandardAuthDept implements Serializable {
/**主键ID*/
@TableId
@ApiModelProperty(value = "主键ID")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建时间*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新时间*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**标准Id*/
@ApiModelProperty(value = "标准Id")
private String standardId;
/**部门id*/
@ApiModelProperty(value = "部门id")
private String authDept;
/**授权到期日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "授权到期日期")
private Date authExpireDate;
@TableField(exist = false)
private static final long serialVersionUID = 1897685576865785671L;
}
@@ -1,73 +0,0 @@
package com.jero.modules.laws.enterprise.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 企业标准用户授权
* @Author: jero-boot
* @Date: 2023-09-06
* @Version: V1.0
*/
@Data
@TableName("laws_enterprise_standard_auth_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_enterprise_standard_auth_user对象", description="企业标准用户授权")
public class EnterpriseStandardAuthUser implements Serializable {
private static final long serialVersionUID = 1677686781283647121L;
/**主键ID*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键ID")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**企标Id*/
@ApiModelProperty(value = "企标Id")
private String standardId;
/**授权人员*/
@ApiModelProperty(value = "授权人员")
private String authUser;
/**授权到期日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "授权到期日期")
private Date authExpireDate;
}
@@ -1,28 +0,0 @@
package com.jero.modules.laws.enterprise.mapper;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_auth_dept】的数据库操作Mapper
* @createDate 2023-09-15 10:39:54
* @Entity com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept
*/
public interface EnterpriseStandardAuthDeptMapper extends BaseMapper<EnterpriseStandardAuthDept> {
int batchInsert(List<EnterpriseStandardAuthDept> list);
int countDeptAuths(@Param("param") TempAuthRecordQueryDto tempAuthRecordQueryDto);
List<TempAuthRecordQueryDto> queryDeptAuths(@Param("param") TempAuthRecordQueryDto tempAuthRecordQueryDto,
int pageSize, int offset);
}
@@ -1,27 +0,0 @@
package com.jero.modules.laws.enterprise.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_temp_permission(企业标准)】的数据库操作Mapper
* @createDate 2023-09-07 11:20:30
* @Entity generator.entity.EnterpriseStandardTempPermission
*/
public interface EnterpriseStandardAuthUserMapper extends BaseMapper<EnterpriseStandardAuthUser> {
int countUserAuths(@Param("param") TempAuthRecordQueryDto tempAuthRecordQueryDto);
List<TempAuthRecordQueryDto> queryUserAuths(@Param("param") TempAuthRecordQueryDto tempAuthRecordQueryDto,
int pageSize, int offset);
}
@@ -1,94 +0,0 @@
<?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="com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthDeptMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
<result property="authDept" column="auth_dept" jdbcType="VARCHAR"/>
<result property="authExpireDate" column="auth_expire_date" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,create_by,create_time,
update_by,update_time,org_code,
standard_id,authDept
</sql>
<insert id="batchInsert">
INSERT INTO laws_enterprise_standard_auth_dept (id, standard_id, auth_dept)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.standardId}, #{item.authDept})
</foreach>
</insert>
<select id="queryDeptAuths" resultType="com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto">
SELECT
auth.id AS Id,
auth.auth_dept AS authDept,
auth.create_time AS createTime,
auth.standard_id AS standardId,
auth.auth_expire_date AS authExpireDate
FROM (select * from laws_enterprise_standard_auth_dept WHERE auth_expire_date IS NOT NULL) auth
<if test="param.standardNumber != null and param.standardNumber != ''">
LEFT JOIN laws_enterprise_standard AS es ON auth.standard_id = es.id
</if>
WHERE auth.auth_expire_date IS NOT NULL
<!--企标编号-->
<if test="param.standardNumber != null and param.standardNumber != ''">
AND es.standard_number LIKE CONCAT('%',#{param.standardNumber},'%')
</if>
<!--授权到期日期-->
<if test="param.startAuthExpireDate != null and param.endAuthExpireDate != ''">
AND auth.auth_expire_date >= #{param.startAuthExpireDate}
AND auth.auth_expire_date &lt;= #{param.endAuthExpireDate}
</if>
<!--授权部门-->
<if test="param.authDeptList != null and param.authDeptList.size() > 0">
AND auth.auth_dept IN
<foreach item="item" index="index" collection="param.authDeptList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY
auth.create_time DESC,
auth.auth_expire_date DESC
LIMIT #{pageSize} OFFSET #{offset}
</select>
<!-- 统计部门授权总数 -->
<select id="countDeptAuths" resultType="int">
SELECT COUNT(*)
FROM (select * from laws_enterprise_standard_auth_dept WHERE auth_expire_date IS NOT NULL) auth
<if test="param.standardNumber != null and param.standardNumber != ''">
LEFT JOIN laws_enterprise_standard AS es ON auth.standard_id = es.id
</if>
<where>
<!--企标编号-->
<if test="param.standardNumber != null and param.standardNumber != ''">
AND es.standard_number LIKE CONCAT('%',#{param.standardNumber},'%')
</if>
<!--授权到期日期-->
<if test="param.startAuthExpireDate != null and param.endAuthExpireDate != ''">
AND auth.auth_expire_date >= #{param.startAuthExpireDate}
AND auth.auth_expire_date &lt;= #{param.endAuthExpireDate}
</if>
<!--授权部门-->
<if test="param.authDeptList != null and param.authDeptList.size() > 0">
AND auth.auth_dept IN
<foreach item="item" index="index" collection="param.authDeptList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>
@@ -1,89 +0,0 @@
<?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="com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthUserMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
<result property="authUser" column="auth_user" jdbcType="VARCHAR"/>
<result property="authExpireDate" column="auth_expire_date" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,create_by,create_time,
update_by,update_time,org_code,
standard_id,auth_user,auth_expire_date
</sql>
<select id="queryUserAuths" resultType="com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto">
SELECT
auth.id AS Id,
auth.auth_user AS authUser,
auth.create_time AS createTime,
auth.standard_id AS standardId,
auth.auth_expire_date AS authExpireDate
FROM (select * from laws_enterprise_standard_auth_user WHERE auth_expire_date IS NOT NULL) auth
<if test="param.standardNumber != null and param.standardNumber != ''">
LEFT JOIN laws_enterprise_standard AS es ON auth.standard_id = es.id
</if>
<!--授权人员-->
<if test="param.authUser != null and param.authUser != ''">
LEFT JOIN sys_user AS u ON u.id = auth.auth_user
</if>
WHERE
auth.auth_expire_date IS NOT NULL
<!--企标编号-->
<if test="param.standardNumber != null and param.standardNumber != ''">
AND es.standard_number LIKE CONCAT('%',#{param.standardNumber},'%')
</if>
<!--授权人员-->
<if test="param.authUser != null and param.authUser != ''">
AND CONCAT(u.realname, '(', u.username, ')') LIKE CONCAT('%',#{param.authUser},'%')
</if>
<!--授权到期日期-->
<if test="param.startAuthExpireDate != null and param.endAuthExpireDate != ''">
AND auth.auth_expire_date >= #{param.startAuthExpireDate}
AND auth.auth_expire_date &lt;= #{param.endAuthExpireDate}
</if>
ORDER BY
auth.create_time DESC,
auth.auth_expire_date DESC
LIMIT #{pageSize} OFFSET #{offset}
</select>
<!-- 统计用户授权总数 -->
<select id="countUserAuths" resultType="int">
SELECT COUNT(*)
FROM (select * from laws_enterprise_standard_auth_user WHERE auth_expire_date IS NOT NULL) auth
<if test="param.standardNumber != null and param.standardNumber != ''">
LEFT JOIN laws_enterprise_standard AS es ON auth.standard_id = es.id
</if>
<if test="param.authUser != null and param.authUser != ''">
LEFT JOIN sys_user AS u ON u.id = auth.auth_user
</if>
<where>
<!--企标编号-->
<if test="param.standardNumber != null and param.standardNumber != ''">
AND es.standard_number LIKE CONCAT('%',#{param.standardNumber},'%')
</if>
<!--授权到期日期-->
<if test="param.startAuthExpireDate != null and param.endAuthExpireDate != ''">
AND auth.auth_expire_date >= #{param.startAuthExpireDate}
AND auth.auth_expire_date &lt;= #{param.endAuthExpireDate}
</if>
<!--授权人员-->
<if test="param.authUser != null and param.authUser != ''">
AND CONCAT(u.realname, '(', u.username, ')') LIKE CONCAT('%',#{param.authUser},'%')
</if>
</where>
</select>
</mapper>
@@ -1,16 +0,0 @@
package com.jero.modules.laws.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_auth_dept】的数据库操作Service
* @createDate 2023-09-15 10:39:54
*/
public interface EnterpriseStandardAuthDeptService extends IService<EnterpriseStandardAuthDept> {
void batchInsertWithTransaction(List<EnterpriseStandardAuthDept> list, int batchSize);
}
@@ -1,71 +0,0 @@
package com.jero.modules.laws.enterprise.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto;
import java.util.List;
import java.util.Map;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_temp_permission(企业标准)】的数据库操作Service
* @createDate 2023-09-07 11:20:30
*/
public interface EnterpriseStandardAuthUserService extends IService<EnterpriseStandardAuthUser> {
/**
* 查看详情权限设置
*
* @param records
*/
void detailFlagSet(List<Map<String, Object>> records);
/**
* 编辑权限设置
*
* @param records
*/
void editFlagSet(List<Map<String, Object>> records);
/**
* 删除权限设置
*
* @param records
*/
void delFlagSet(List<Map<String, Object>> records);
boolean detailPermissionByUser(String standardId, String standardNumber, String userId);
/**
* 临时授权记录分页列表接口
*
* @param tempAuthRecordQueryDto
* @param pageNo
* @param pageSize
* @return
*/
IPage<TempAuthRecordQueryDto> tempAuthRecord(TempAuthRecordQueryDto tempAuthRecordQueryDto, Integer pageNo, Integer pageSize);
/**
* 解除授权
*
* @param authId
*/
void revokeAuth(String authId);
/**
* 指定用户Id是否有指定企标的删除权限
* @param standardId 企标Id
* @param userId 用户Id
*/
boolean hasEditAuth(String standardId, String userId);
/**
* 编辑水平越权校验
* @param standardId 企标Id
*/
void isEditHorizontalOverstep(String standardId);
}
@@ -1,61 +0,0 @@
package com.jero.modules.laws.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.MessageUtils;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthDeptMapper;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_auth_dept】的数据库操作Service实现
* @createDate 2023-09-15 10:39:54
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
@Slf4j
public class EnterpriseStandardAuthDeptServiceImpl extends ServiceImpl<EnterpriseStandardAuthDeptMapper, EnterpriseStandardAuthDept>
implements EnterpriseStandardAuthDeptService{
@Resource
private SqlSessionFactory sqlSessionFactory;
@Override
public void batchInsertWithTransaction(List<EnterpriseStandardAuthDept> list, int batchSize) {
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
EnterpriseStandardAuthDeptMapper batchMapper = sqlSession.getMapper(EnterpriseStandardAuthDeptMapper.class);
for (int i = 0; i < list.size(); i += batchSize) {
int end = Math.min(i + batchSize, list.size());
List<EnterpriseStandardAuthDept> batchList = list.subList(i, end);
batchMapper.batchInsert(batchList);
sqlSession.commit(); // 提交每个批次
}
} catch (Exception e) {
// 处理异常,根据需要记录日志或抛出
log.error("批量插入失败", e);
}
}
}
@@ -1,447 +0,0 @@
package com.jero.modules.laws.enterprise.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthDeptMapper;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthUserMapper;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.standard.controller.TempAuthRecordQueryDto;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
import com.jero.modules.sys.entity.LawsGrade;
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
import com.jero.modules.sys.service.ILawsGradeService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.model.DepartIdModel;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysUserDepartService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_temp_permission(企业标准)】的数据库操作Service实现
* <p>
* 权限这里分为三种权限
* 1. 企标的查看权限 (管理员、创建人、这条企标主起草部门的其他员工、临时授权、授权部门)
* 2. 企标的编辑权限 (管理员、创建人)
* 3. 企标的删除权限 (管理员可以删除所有试用期的企标、创建人只可以删除自己创建的试用期内的企标)
* @createDate 2023-09-07 11:20:30
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
@Slf4j
public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<EnterpriseStandardAuthUserMapper, EnterpriseStandardAuthUser> implements EnterpriseStandardAuthUserService {
@Resource
private EnterpriseStandardAuthDeptService authDeptService;
@Resource
private ISysUserService sysUserService;
@Resource
private ILawsEnterpriseStandardService enterpriseStandardService;
@Resource
private ILawsEnterpriseStandardLevelService standardLevelService;
@Resource
private ISysUserService sysUserRoleService;
@Resource
private ISysUserDepartService sysUserDepartService;
@Resource
private ILawsGradeService gradeService;
@Resource
private EnterpriseStandardAuthUserMapper authUserMapper;
@Resource
private EnterpriseStandardAuthDeptMapper authDeptMapper;
@Value("#{'${adminRoleCode}'.split(',')}")
private List<String> adminRoleCodeList;
@Value("#{'${enterpriseDetailRoleCode}'.split(',')}")
private List<String> enterpriseDetailRoleCodeList;
@Resource
private ILawsEnterpriseStandardService esService;
@Resource
private ISysDepartService departService;
@Override
public void detailFlagSet(List<Map<String, Object>> records) {
if (true) {
records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true));
return;
}
SysUser currentUser = sysUserService.getById(UserUtils.getUserId());
String userId = currentUser.getId();
String userName = currentUser.getUsername();
// 管理员有所有企标的权限
List<String> roleList = sysUserRoleService.getRole(currentUser.getUsername());
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true));
return;
}
// 能够查看所有企标详情的权限
if (roleList != null && roleList.stream().anyMatch(enterpriseDetailRoleCodeList::contains)) {
records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true));
return;
}
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
List<String> standardIds = new ArrayList<>();
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.in(CollUtil.isNotEmpty(standardIds), LawsEnterpriseStandard::getId, standardIds)
.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getId, e -> e));
// 查询临时授权人员
Date date = new Date();
LambdaQueryWrapper<EnterpriseStandardAuthUser> authUserWrapper = new LambdaQueryWrapper<>();
authUserWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthUser::getStandardId, standardIds);
authUserWrapper.eq(EnterpriseStandardAuthUser::getAuthUser, userId);
authUserWrapper.ge(EnterpriseStandardAuthUser::getAuthExpireDate, date);
List<EnterpriseStandardAuthUser> authUserList = list(authUserWrapper);
Set<String> tempAuthStandardIds = authUserList.stream().map(EnterpriseStandardAuthUser::getStandardId).collect(Collectors.toSet());
// 查询临时授权部门
LambdaQueryWrapper<EnterpriseStandardAuthDept> tempAuthDeptWrapper = new LambdaQueryWrapper<>();
tempAuthDeptWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds);
tempAuthDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds);
tempAuthDeptWrapper.isNotNull(EnterpriseStandardAuthDept::getAuthExpireDate);
tempAuthDeptWrapper.isNotNull(EnterpriseStandardAuthDept::getAuthDept);
List<EnterpriseStandardAuthDept> tempAuthDeptList = authDeptService.list(tempAuthDeptWrapper);
tempAuthDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
tempAuthDeptList.addAll(authDeptService.list(tempAuthDeptWrapper));
// 找出授权部门 和 临时授权部门
tempAuthStandardIds.addAll(tempAuthDeptList.stream().map(EnterpriseStandardAuthDept::getStandardId).collect(Collectors.toSet()));
// 查询授权部门
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
authDeptWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds);
authDeptWrapper.isNull(EnterpriseStandardAuthDept::getAuthExpireDate);
List<EnterpriseStandardAuthDept> authDeptList = authDeptService.list(authDeptWrapper);
authDeptList.addAll(authDeptService.list(authDeptWrapper));
// 企标级别授权的部门
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
List<LawsGrade> gradeList = gradeService.list();
Map<Integer, LawsGrade> gradeMap = gradeList.stream().collect(Collectors.toMap(LawsGrade::getLevel, e -> e));
List<String> levelOneDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(1).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
List<String> levelTwoDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(2).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
for (Map<String, Object> map : records) {
String standardId = (String) map.get(FieldCommon.ID);
String creatUser = (String) map.get(FieldCommon.CREATE_BY);
LawsEnterpriseStandard es = esMap.get(standardId);
String mainDraftUnit = es.getMainDraftingUnit();
Set<EnterpriseStandardAuthDept> curAuthSet = authDeptList.stream()
.filter(e -> e.getAuthDept() != null)
.filter(e -> StrUtil.isNotEmpty(e.getAuthDept()))
.filter(e -> e.getStandardId().equals(standardId))
.filter(e -> !e.getAuthDept().equals(mainDraftUnit))
.collect(Collectors.toSet());
// 临时权限
if (tempAuthStandardIds.contains(standardId)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
// 创建人可以看
if (userName.equals(creatUser)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
map.put(FieldCommon.DETAIL_FLAG, false);
}
}
@Override
public void editFlagSet(List<Map<String, Object>> records) {
if (true) {
records.forEach(kv -> kv.put(FieldCommon.EDIT_FLAG, true));
return;
}
// 只有创建人和管理员才有维护的权限
String userId = UserUtils.getUserId();
SysUser currentUser = sysUserService.getById(userId);
String username = currentUser.getUsername();
// 获取当前用户的角色roleCode
List<String> roleList = sysUserRoleService.getRole(username);
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
records.forEach(kv -> kv.put(FieldCommon.EDIT_FLAG, true));
return;
}
for (Map<String, Object> map : records) {
String createBy = (String) map.get(FieldCommon.CREATE_BY);
if (username.equals(createBy)) {
map.put(FieldCommon.EDIT_FLAG, true);
} else {
map.put(FieldCommon.EDIT_FLAG, false);
}
}
}
@Override
public boolean hasEditAuth(String standardId, String userId) {
SysUser user = sysUserService.getById(userId);
String username = user.getUsername();
// 获取当前用户的角色roleCode
List<String> roleList = sysUserRoleService.getRole(username);
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
return true;
}
LawsEnterpriseStandard es = esService.getById(standardId);
String createBy = es.getCreateBy();
return username.equals(createBy);
}
@Override
public void isEditHorizontalOverstep(String standardId) {
if (hasEditAuth(standardId, UserUtils.getUserId())) {
return;
}
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.YOU_HAVE_NOT_DATA_AUTH, standardId));
}
@Override
public void delFlagSet(List<Map<String, Object>> records) {
if (true) {
records.forEach(kv -> kv.put(FieldCommon.DEL_FLAG, true));
return;
}
String userId = UserUtils.getUserId();
SysUser currentUser = sysUserService.getById(userId);
List<String> standardIds = new ArrayList<>();
String username = currentUser.getUsername();
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.in(CollUtil.isNotEmpty(standardIds), LawsEnterpriseStandard::getId, standardIds)
.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getId, e -> e));
// 设置是否适用
records.forEach(kv -> kv.put(FieldCommon.TRY_FLAG, esMap.get(kv.get(FieldCommon.ID)).getTryFlag() == null ? "0" : esMap.get(kv.get(FieldCommon.ID)).getTryFlag()));
records.forEach(kv -> kv.put(FieldCommon.TRY_FLAG, Objects.equals(esMap.get(kv.get(FieldCommon.ID)).getTryFlag(), "") ? "0" : esMap.get(kv.get(FieldCommon.ID)).getTryFlag()));
records.forEach(kv -> kv.put(FieldCommon.RELEASE_DATE, esMap.get(kv.get(FieldCommon.ID)).getReleaseDate()));
records.forEach(kv -> kv.put(FieldCommon.TRIAL_PERIOD, esMap.get(kv.get(FieldCommon.ID)).getTrialPeriod()));
// 只有试用期的企标才能删除
Date currentDate = new Date();
// 获取当前用户的角色roleCode
List<String> roleList = sysUserRoleService.getRole(currentUser.getUsername());
// 管理员能够删除所有试用期的企标
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
for (Map<String, Object> map : records) {
String tryFlag = String.valueOf(map.get(FieldCommon.TRY_FLAG));
if (tryFlag.equals(YesOrNoEnum.NO.getValue())) {
map.put(FieldCommon.DEL_FLAG, false);
continue;
}
Date releaseDate = (Date) map.get(FieldCommon.RELEASE_DATE);
int trialPeriodMonths = Integer.parseInt(String.valueOf(map.get(FieldCommon.TRIAL_PERIOD))); // 将试用周期转换为天数
Calendar calendar = Calendar.getInstance();
calendar.setTime(releaseDate);
calendar.add(Calendar.MONTH, trialPeriodMonths); // 将试用周期加到发布日期上
Date trialEndDate = calendar.getTime(); // 获取试用期结束日期
// 在适用周期之内的可以删除
if (tryFlag.equals(YesOrNoEnum.YES.getValue()) && currentDate.compareTo(trialEndDate) <= 0) {
map.put(FieldCommon.DEL_FLAG, true);
} else {
map.put(FieldCommon.DEL_FLAG, false);
}
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
records.forEach(kv -> {
Date releaseDate = esMap.get(kv.get(FieldCommon.ID)).getReleaseDate();
if (releaseDate != null) {
String formattedDate = dateFormat.format(releaseDate);
kv.put(FieldCommon.RELEASE_DATE, formattedDate);
}
});
return;
}
// 创建人只能删除自己的试用期的企标
for (Map<String, Object> map : records) {
String createBy = (String) map.get(FieldCommon.CREATE_BY);
String tryFlag = String.valueOf(map.get(FieldCommon.TRY_FLAG));
if (tryFlag.equals(YesOrNoEnum.NO.getValue())) {
map.put(FieldCommon.DEL_FLAG, false);
continue;
}
Date releaseDate = (Date) map.get(FieldCommon.RELEASE_DATE);
int trialPeriodMonths = Integer.parseInt(String.valueOf(map.get(FieldCommon.TRIAL_PERIOD))); // 将试用周期转换为天数
Calendar calendar = Calendar.getInstance();
calendar.setTime(releaseDate);
calendar.add(Calendar.MONTH, trialPeriodMonths); // 将试用周期加到发布日期上
Date trialEndDate = calendar.getTime(); // 获取试用期结束日期
if (username.equals(createBy) && tryFlag.equals(YesOrNoEnum.YES.getValue())
&& currentDate.compareTo(trialEndDate) <= 0) {
map.put(FieldCommon.DEL_FLAG, true);
} else {
map.put(FieldCommon.DEL_FLAG, false);
}
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
records.forEach(kv -> {
Date releaseDate = esMap.get(kv.get(FieldCommon.ID)).getReleaseDate();
if (releaseDate != null) {
String formattedDate = dateFormat.format(releaseDate);
kv.put(FieldCommon.RELEASE_DATE, formattedDate);
}
});
}
@Override
public boolean detailPermissionByUser(String standardId, String standardNumber, String userId) {
// 管理员有所有企标的权限
SysUser currentUser = sysUserService.getById(userId);
// 管理员有所有企标的权限
List<String> roleList = sysUserRoleService.getRole(currentUser.getUsername());
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
return true;
}
// 能够查看所有企标详情的权限
if (roleList != null && roleList.stream().anyMatch(enterpriseDetailRoleCodeList::contains)) {
return true;
}
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
if (StringUtils.isBlank(standardId) && StringUtils.isBlank(standardNumber)) {
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "id和标准号不能同时为空");
}
if (StringUtils.isBlank(standardId)) {
LambdaQueryWrapper<LawsEnterpriseStandard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber);
LawsEnterpriseStandard es = enterpriseStandardService.getOne(lambdaQueryWrapper);
standardId = es.getId();
}
return false;
}
@Override
@Cacheable(value = "tempAuthRecord", key = "{#tempAuthRecordQueryDto, #pageNo, #pageSize}")
public IPage<TempAuthRecordQueryDto> tempAuthRecord(TempAuthRecordQueryDto tempAuthRecordQueryDto, Integer pageNo, Integer pageSize) {
List<String> authDeptList = tempAuthRecordQueryDto.getAuthDeptList();
String authUser = tempAuthRecordQueryDto.getAuthUser();
int totalDeptAuths = 0;
int totalUserAuths = 0;
// 没有授权人员筛选的时候
if (StrUtil.isBlank(authUser)) {
totalDeptAuths = authDeptMapper.countDeptAuths(tempAuthRecordQueryDto);
}
// 授权部门和授权人员都没有查询条件的时候
if (authDeptList == null || authDeptList.isEmpty()) {
totalUserAuths = authUserMapper.countUserAuths(tempAuthRecordQueryDto);
}
int totalRecords = totalDeptAuths + totalUserAuths;
// 分页查询
List<TempAuthRecordQueryDto> results = new ArrayList<>();
if (totalRecords > 0) {
// 计算offset和实际pageSize
int offset = (pageNo - 1) * pageSize;
// 首先查询auth_dept数据
List<TempAuthRecordQueryDto> deptAuths = new ArrayList<>();
if (totalDeptAuths > 0) {
deptAuths = authDeptMapper.queryDeptAuths(tempAuthRecordQueryDto, pageSize, offset);
}
// 如果deptAuths的数量少于pageSize,则查询auth_user填充剩余空间
int remainingSize = pageSize - deptAuths.size();
List<TempAuthRecordQueryDto> userAuths = new ArrayList<>();
if (remainingSize > 0 && deptAuths.size() <= totalDeptAuths && totalUserAuths > 0) {
// 计算auth_user的offset
int userOffset = Math.max(0, offset - totalDeptAuths);
userAuths = authUserMapper.queryUserAuths(tempAuthRecordQueryDto, remainingSize, userOffset);
}
results.addAll(deptAuths);
results.addAll(userAuths);
}
// 手动翻译标准编号
if (!results.isEmpty()) {
Set<String> standardIdSet = results.stream().map(TempAuthRecordQueryDto::getStandardId).collect(Collectors.toSet());
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
esWrapper.in(LawsEnterpriseStandard::getId, standardIdSet);
List<LawsEnterpriseStandard> esList = esService.list(esWrapper);
Map<String, String> esStandardMap = esList.stream().collect(
Collectors.toMap(LawsEnterpriseStandard::getId, LawsEnterpriseStandard::getStandardNumber));
results.forEach(r -> {
r.setStandardNumber(esStandardMap.get(r.getStandardId()));
});
}
// 构建分页结果
Page<TempAuthRecordQueryDto> page = new Page<>();
page.setRecords(results);
page.setCurrent(pageNo);
page.setSize(pageSize);
page.setTotal(totalRecords);
return page;
}
@Override
public void revokeAuth(String authId) {
EnterpriseStandardAuthDept authDept = authDeptService.getById(authId);
EnterpriseStandardAuthUser authUser = this.getById(authId);
// 判断哪个不为null
if (authDept != null) {
authDeptService.removeById(authId);
}
if (authUser != null) {
this.removeById(authId);
}
}
}
@@ -12,13 +12,10 @@ import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
import com.jero.modules.laws.standard.service.ILawsNodeRelationService;
import com.jero.modules.personal.service.ILawsStandardCollectionService;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.enums.TableNameEnum;
import io.swagger.annotations.Api;
@@ -26,7 +23,6 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -52,11 +48,6 @@ public class LawsEnterpriseController {
private ILawsNodeRelationService lawsNodeRelationService;
@Autowired
private ILawsStandardCollectionService lawsStandardCollectionService;
@Resource
private EnterpriseStandardAuthUserService esAuthUserService;
@Resource
private EnterpriseStandardAuthDeptService esAuthDeptService;
@Resource
private EnterpriseStandardReviewMeetingRecordService esReviewMeetingService;
@@ -114,8 +105,6 @@ public class LawsEnterpriseController {
@ApiOperationSupport(order = 4)
@RequiresPermissions("enterpriseStandard:edit")
public Result<String> commonEdit(@RequestBody @ApiParam("标签管理") Map<String,Object> parameterMap) {
// 水平越权校验
esAuthUserService.isEditHorizontalOverstep((String) parameterMap.get("id"));
parameterMap.put(FieldCommon.MODULE, MODULE_VALUE);
return Result.OK(lawsCommonService.commonEdit(parameterMap));
}
@@ -284,50 +273,4 @@ public class LawsEnterpriseController {
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = esReviewMeetingService.evaluateDetailForESInfo(standardId);
return Result.OK(resultMap);
}
/**
* 企标详情-获取是否有查看详情权限
*
* @return
*/
@AutoLog(value = "企业法规标准-获取是否有查看详情权限")
@ApiOperation(value = "企业法规标准-获取是否有查看详情权限", notes = "企业法规标准-获取是否有查看详情权限")
@GetMapping(value = "/detailPermission")
@ApiOperationSupport(order = 20)
public Result<?> detailPermission(@RequestParam(name="id", required = false) @ApiParam("标准Id") String id,
@RequestParam(name="standardNumber", required = false) @ApiParam("标准编号") String standardNumber) {
return Result.OK(esAuthUserService.detailPermissionByUser(id, standardNumber, UserUtils.getUserId()));
}
/**
* 企业法规标准-临时授权记录
*
* @return
*/
@AutoLog(value = "企业法规标准-临时授权记录")
@ApiOperation(value = "企业法规标准-临时授权记录", notes = "企业法规标准-临时授权记录")
@GetMapping(value = "/tempAuthRecord")
@ApiOperationSupport(order = 21)
@RequiresPermissions("enterpriseStandard:temporaryPermissRecord")
public Result<?> tempAuthRecord(TempAuthRecordQueryDto tempAuthRecordQueryDto,
@RequestParam(name="pageNo", defaultValue="1") @ApiParam("页码") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") @ApiParam("页面显示数量") Integer pageSize) {
return Result.OK(esAuthUserService.tempAuthRecord(tempAuthRecordQueryDto, pageNo, pageSize));
}
/**
* 企业法规标准-解除授权
*
* @return
*/
@AutoLog(value = "企业法规标准-解除授权")
@ApiOperation(value = "企业法规标准-解除授权", notes = "企业法规标准-解除授权")
@GetMapping(value = "/revokeAuth")
@ApiOperationSupport(order = 22)
@RequiresPermissions("enterpriseStandard:temporaryPermissRecord")
@CacheEvict(value = "tempAuthRecord", allEntries = true)
public Result<?> revokeAuth(@RequestParam(name="id", required = false) @ApiParam("Id") String authId) {
esAuthUserService.revokeAuth(authId);
return Result.OK();
}
}
@@ -1944,8 +1944,6 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override
public Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException {
sarFileSplitInfoEO.setSerialNumber(sarFileSplitInfoEO.getSerialNumber().split("\\|")[0]);
// 企标权限校验
documentSplitService.enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验
documentSplitService.uniqueCheck(sarFileSplitInfoEO);
@@ -7,8 +7,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.util.IntekeyUtils;
import com.jero.common.util.MinioUtil;
import com.jero.common.util.obs.ObsBootUtil;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.util.SysWaterMarkUtil;
@@ -45,12 +43,6 @@ public class SysCommonController {
@Resource
private IOSSFileService ossFileService;
@Resource
private ILawsEnterpriseStandardService esService;
@Resource
private EnterpriseStandardAuthUserService authUserService;
@Value(value = "${jero.uploadType}")
private String uploadType;