diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 58994e163..81f7c30aa 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -85,3 +85,60 @@ ALTER TABLE `laws_weilai`.`params_info_publish` -- 上报库历史表,增加备注字段 2022-12-12 已同步生产环境 ALTER TABLE `laws_weilai`.`params_report_detail_log` ADD COLUMN `remarks` varchar(4000) NULL COMMENT '备注' AFTER `params_report_detail_id`; +-- 创建用户项目权限表 +CREATE TABLE `project_user_permission` ( + `id` varchar(36) NOT NULL COMMENT '主键', + `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', + `create_time` datetime DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', + `update_time` datetime DEFAULT NULL COMMENT '更新日期', + `project_id` varchar(255) DEFAULT NULL COMMENT '项目id', + `belong` varchar(255) DEFAULT NULL COMMENT '所属位置', + `description` text COMMENT '具体描述', + `user_id` varchar(255) DEFAULT NULL COMMENT '用户id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- 创建用户品牌表 +CREATE TABLE `project_user_brand` ( + `id` varchar(36) NOT NULL, + `user_id` varchar(255) DEFAULT NULL COMMENT '用户id', + `brand_type` varchar(255) DEFAULT NULL COMMENT '品牌类型', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- 创建用户责任领域表 +CREATE TABLE `project_user_duty_territory` ( + `id` varchar(36) NOT NULL, + `user_id` varchar(255) DEFAULT NULL COMMENT '用户id', + `duty_territory` varchar(32) DEFAULT NULL COMMENT '责任领域', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- 项目库基础表添加字段 +ALTER TABLE `project_library_base` +ADD COLUMN `brand` varchar(255) NULL COMMENT '品牌' AFTER `flag`; + +-- 法规技术评估表添加字段 +ALTER TABLE `laws_technology_evaluation` +ADD COLUMN `brand` varchar(255) NULL COMMENT '品牌' AFTER `prc_num`; + +-- 法规意见收集表添加字段 +ALTER TABLE `laws_opinion_gather` +ADD COLUMN `brand` varchar(255) NULL COMMENT '品牌' AFTER `evaluator_ids`; + +-- 参数收集清单-操作记录(历史日志) 2022-12-26 未同步生产环境 +CREATE TABLE `laws_weilai`.`params_collect_manifest_log` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `log_cn_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '中文内容', + `log_en_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '英文内容', + `remarks` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `params_manifest_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数清单id', + `params_collect_manifest_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数收集清单id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数收集清单-操作记录(历史日志)' ROW_FORMAT = Dynamic; diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index a449d2331..bbd70a8f2 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -157,6 +157,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/todoCenter/processInfoEO/processCall", "anon"); // 流程信息明细表 工作流处理数据接口排除 filterChainDefinitionMap.put("/todoCenter/processInfoDetailEO/processCall", "anon"); + // 项目权限表 工作流处理数据接口排除 + filterChainDefinitionMap.put("/project/projectUserPermission/setPermission", "anon"); filterChainDefinitionMap.put("/lark/larkEventSubscriptionConfig", "anon"); //飞书调用接口,事件订阅配置。 filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。 diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java index 74d79ca0d..68fd29027 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java @@ -3,6 +3,7 @@ package com.jero.modules.enums; public enum DictCodeEnum { DUTY_TERRITORY("责任领域","duty_territory"), + BRAND("品牌","brand"), ; String name; String value; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserBrandController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserBrandController.java new file mode 100644 index 000000000..1ac0b4bcb --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserBrandController.java @@ -0,0 +1,29 @@ +package com.jero.modules.system.controller; + + +import com.jero.common.system.base.controller.JeroController; +import com.jero.modules.system.entity.ProjectUserBrand; +import com.jero.modules.system.service.IProjectUserBrandService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** +* @Description: 用户品牌表 +* @Author: jero-boot +* @Date: 2022-11-15 +* @Version: V1.0 +*/ +@Api(tags="用户品牌表") +@RestController +@RequestMapping("/project/projectUserBrand") +@Slf4j +public class ProjectUserBrandController extends JeroController { + @Autowired + private IProjectUserBrandService projectUserBrandService; + + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserDutyTerritoryController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserDutyTerritoryController.java new file mode 100644 index 000000000..deab14630 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/ProjectUserDutyTerritoryController.java @@ -0,0 +1,29 @@ +package com.jero.modules.system.controller; + + +import com.jero.common.system.base.controller.JeroController; +import com.jero.modules.system.entity.ProjectUserDutyTerritory; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** +* @Description: 用户责任领域 +* @Author: jero-boot +* @Date: 2022-11-15 +* @Version: V1.0 +*/ +@Api(tags="用户责任领域") +@RestController +@RequestMapping("/project/projectUserDutyTerritory") +@Slf4j +public class ProjectUserDutyTerritoryController extends JeroController { + @Autowired + private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; + + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index e4198f9f9..f9425d9d1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -41,6 +41,7 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.jeecgframework.poi.excel.ExcelImportUtil; @@ -111,6 +112,12 @@ public class SysUserController { @Resource private BaseCommonService baseCommonService; + @Autowired + private IProjectUserBrandService projectUserBrandService; + + @Autowired + private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; + /** * 获取用户列表数据 * @@ -227,6 +234,11 @@ public class SysUserController { Result result = new Result(); try { String ids = jsonObject.getString("ids"); + String roles = jsonObject.getString("selectedroles"); + String dutyTerritories = jsonObject.getString("dutyTerritories"); + String brands = jsonObject.getString("brands"); + List projectUserBrandList = new ArrayList<>(); + List projectUserDutyTerritoryList = new ArrayList<>(); List idList = Arrays.asList(ids.split(",")); for (String id : idList) { SysUser sysUser = sysUserService.getById(id); @@ -238,11 +250,20 @@ public class SysUserController { user.setId(id); user.setUpdateTime(new Date()); - String roles = jsonObject.getString("selectedroles"); sysUserService.editUserWithRole(user, roles); + if (ObjectUtils.isNotEmpty(roles)) { + //如果角色包含viewer,设置责任领域权限和品牌权限 + sysUserService.setBrandAndDutyTerritory(roles, dutyTerritories, brands, projectUserBrandList, projectUserDutyTerritoryList, id); + } result.success("修改成功!"); } } + if (ObjectUtils.isNotEmpty(projectUserBrandList)) { + projectUserBrandService.saveBatch(projectUserBrandList); + } + if (ObjectUtils.isNotEmpty(projectUserDutyTerritoryList)) { + projectUserDutyTerritoryService.saveBatch(projectUserDutyTerritoryList); + } } catch (Exception e) { log.error(e.getMessage(), e); @@ -1731,4 +1752,19 @@ public class SysUserController { List sysUserList = sysUserService.querySysUserListByIdList(userIdList); return sysUserList; } + + @ApiOperation(value = "用户管理-查出所有部门及其用户") + @GetMapping(value = "/queryViewerInfo") + public ViewerInfoVo queryViewerInfoVo(@RequestParam(name = "userId", required = true) String userId){ + ViewerInfoVo viewerInfoVo = new ViewerInfoVo(); + List brands = projectUserBrandService.queryBrandByUserId(userId); + if (ObjectUtils.isNotEmpty(brands)) { + viewerInfoVo.setBrandList(brands); + } + List dutyTerritories = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(userId); + if (ObjectUtils.isNotEmpty(dutyTerritories)) { + viewerInfoVo.setDutyTerritoryList(dutyTerritories); + } + return viewerInfoVo; + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserBrand.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserBrand.java new file mode 100644 index 000000000..07ace8a88 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserBrand.java @@ -0,0 +1,51 @@ +package com.jero.modules.system.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 用户品牌表 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +@Data +@TableName("project_user_brand") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="project_user_brand对象", description="用户品牌表") +public class ProjectUserBrand implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**用户id*/ + @Excel(name = "用户id", width = 15) + @ApiModelProperty(value = "用户id") + private String userId; + + /**品牌类型*/ + @Excel(name = "品牌类型", width = 15) + @ApiModelProperty(value = "品牌类型") + @Dict(dicCode = "brand") + private String brandType; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserDutyTerritory.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserDutyTerritory.java new file mode 100644 index 000000000..029de2474 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ProjectUserDutyTerritory.java @@ -0,0 +1,51 @@ +package com.jero.modules.system.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 用户责任领域 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +@Data +@TableName("project_user_duty_territory") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="project_user_duty_territory对象", description="用户责任领域") +public class ProjectUserDutyTerritory implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**用户id*/ + @Excel(name = "用户id", width = 15) + @ApiModelProperty(value = "用户id") + private String userId; + + /**责任领域*/ + @Excel(name = "责任领域", width = 15) + @ApiModelProperty(value = "责任领域") + @Dict(dicCode = "duty_territory") + private String dutyTerritory; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java new file mode 100644 index 000000000..a0fc12192 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/ViewerInfoVo.java @@ -0,0 +1,36 @@ +package com.jero.modules.system.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class ViewerInfoVo { + + List brandList; + List dutyTerritoryList; + + public List getBrandList() { + return brandList; + } + + public void setBrandList(List brandList) { + this.brandList = brandList; + } + + public List getDutyTerritoryList() { + return dutyTerritoryList; + } + + public void setDutyTerritoryList(List dutyTerritoryList) { + this.dutyTerritoryList = dutyTerritoryList; + } + + public ViewerInfoVo() { + } + + public ViewerInfoVo(List brandList, List dutyTerritoryList) { + this.brandList = brandList; + this.dutyTerritoryList = dutyTerritoryList; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index 8f4b0c151..4a62c010a 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -10,6 +10,7 @@ public enum ProjectRoleEnum { REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer"), MANAGER("领导角色","11","R&H Manager"), ADMIN("系统管理员","12","admin"), + VIEWER("Viewer","13","Viewer"), ; String name; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserBrandMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserBrandMapper.java new file mode 100644 index 000000000..ace0b9b79 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserBrandMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.system.mapper; + +import com.jero.modules.system.entity.ProjectUserBrand; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 用户品牌表 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +public interface ProjectUserBrandMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserDutyTerritoryMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserDutyTerritoryMapper.java new file mode 100644 index 000000000..6ccf9460c --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/ProjectUserDutyTerritoryMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.system.mapper; + +import com.jero.modules.system.entity.ProjectUserDutyTerritory; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 用户责任领域 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +public interface ProjectUserDutyTerritoryMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java index 98adef3ef..e3eade81d 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java @@ -49,4 +49,7 @@ public interface SysDictItemMapper extends BaseMapper { @Select("select * from sys_dict_item where item_text=#{itemText} and dict_id=#{dictId}") List selctItemByName(String itemText,String dictId); + + @Select("select * from sys_dict_item item LEFT JOIN sys_dict dict on item.dict_id = dict.id WHERE dict.dict_code = #{dictCode} and item.item_value = #{itemValue}") + List queryItemByValue(@Param("dictCode") String dictCode,@Param("itemValue") String itemValue); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysRoleMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysRoleMapper.java index e8aa1b369..e1765d408 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysRoleMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysRoleMapper.java @@ -43,4 +43,6 @@ public interface SysRoleMapper extends BaseMapper { "where user_id = #{userId}") List getRoleByUserId(@Param("userId") String userId); + @Select("SELECT count(0) from sys_user_role ur LEFT JOIN sys_role r ON r.id = ur.role_id WHERE r.role_code = #{roleCode} and ur.user_id = #{userId}") + Integer queryUserRoleByCode(@Param("roleCode")String roleCode, @Param("userId")String userId); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserBrandMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserBrandMapper.xml new file mode 100644 index 000000000..1c31443f5 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserBrandMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserDutyTerritoryMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserDutyTerritoryMapper.xml new file mode 100644 index 000000000..37fa6dc00 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/ProjectUserDutyTerritoryMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java new file mode 100644 index 000000000..6ef6744b5 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserBrandService.java @@ -0,0 +1,47 @@ +package com.jero.modules.system.service; + +import com.jero.modules.system.entity.ProjectUserBrand; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 用户品牌表 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +public interface IProjectUserBrandService extends IService { + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProjectUserBrand queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + List queryBrandByUserId(String userId); +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java new file mode 100644 index 000000000..a7411a8ff --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IProjectUserDutyTerritoryService.java @@ -0,0 +1,53 @@ +package com.jero.modules.system.service; + +import com.jero.modules.system.entity.ProjectUserDutyTerritory; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 用户责任领域 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +public interface IProjectUserDutyTerritoryService extends IService { + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProjectUserDutyTerritory queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + /** + * 根据id查询对应的dutyTerritory集合 + * @param userId + * @return + */ + List queryDutyTerritoryByUserId(String userId); + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 250953aaa..33766287f 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -8,9 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.SysUserCacheInfo; -import com.jero.modules.system.entity.PPEmployee; -import com.jero.modules.system.entity.SysRole; -import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.entity.*; import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.model.SysUserSysDepartModel; import org.springframework.transaction.annotation.Transactional; @@ -301,4 +299,9 @@ public interface ISysUserService extends IService { * @return */ boolean isRegulationOwner(LoginUser currentUser); + + void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List projectUserBrandList, List projectUserDutyTerritoryList, String userId); + + boolean isViewer(String userId); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java new file mode 100644 index 000000000..b91111940 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserBrandServiceImpl.java @@ -0,0 +1,76 @@ +package com.jero.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.modules.system.entity.ProjectUserBrand; +import com.jero.modules.system.mapper.ProjectUserBrandMapper; +import com.jero.modules.system.service.IProjectUserBrandService; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 用户品牌表 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +@Service +public class ProjectUserBrandServiceImpl extends ServiceImpl implements IProjectUserBrandService { + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProjectUserBrand queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public List queryBrandByUserId(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + List list = list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + return list.stream().map(ProjectUserBrand::getBrandType).collect(Collectors.toList()); + } + return null; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java new file mode 100644 index 000000000..186041fb0 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/ProjectUserDutyTerritoryServiceImpl.java @@ -0,0 +1,83 @@ +package com.jero.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.modules.system.entity.ProjectUserDutyTerritory; +import com.jero.modules.system.mapper.ProjectUserDutyTerritoryMapper; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 用户责任领域 + * @Author: jero-boot + * @Date: 2022-11-15 + * @Version: V1.0 + */ +@Service +public class ProjectUserDutyTerritoryServiceImpl extends ServiceImpl implements IProjectUserDutyTerritoryService { + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProjectUserDutyTerritory queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + /** + * 根据id查询对应的dutyTerritory集合 + * @param userId + * @return + */ + @Override + public List queryDutyTerritoryByUserId(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + List list = list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + return list.stream().map(ProjectUserDutyTerritory::getDutyTerritory).collect(Collectors.toList()); + } + return null; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index a9db69c51..798a03a79 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -15,16 +15,19 @@ import com.jero.common.util.PasswordUtil; import com.jero.common.util.UUIDGenerator; import com.jero.common.util.oConvertUtils; import com.jero.modules.base.service.BaseCommonService; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.system.entity.*; import com.jero.modules.system.enums.PPSyncEnum; +import com.jero.modules.system.enums.ProjectRoleEnum; import com.jero.modules.system.enums.RoleEnum; import com.jero.modules.system.mapper.*; import com.jero.modules.system.model.SysUserSysDepartModel; -import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.system.service.*; import com.jero.modules.system.vo.SysUserDepVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; @@ -67,8 +70,16 @@ public class SysUserServiceImpl extends ServiceImpl impl private SysDepartRoleMapper sysDepartRoleMapper; @Resource private BaseCommonService baseCommonService; + @Autowired + private ISysRoleService sysRoleService; + @Autowired + private IProjectUserBrandService projectUserBrandService; + @Autowired + private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; + @Autowired + private ISysDictItemService sysDictItemService; - @Override + @Override @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true) public Result resetPassword(String username, String oldpassword, String newpassword, String confirmpassword) { SysUser user = userMapper.getUserByName(username); @@ -698,4 +709,57 @@ public class SysUserServiceImpl extends ServiceImpl impl } return result; } + + @Override + public void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List projectUserBrandList, List projectUserDutyTerritoryList, String userId) { + List roleCodes = sysRoleService.listByIds(Arrays.asList(roles.split(","))).stream().map(SysRole::getRoleCode).collect(Collectors.toList()); + if (roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) { + //先删后加 + QueryWrapper brandDelWrapper = new QueryWrapper<>(); + brandDelWrapper.eq("user_id", userId); + projectUserBrandService.remove(brandDelWrapper); + + QueryWrapper dutyTerritoryDelWrapper = new QueryWrapper<>(); + dutyTerritoryDelWrapper.eq("user_id", userId); + projectUserDutyTerritoryService.remove(dutyTerritoryDelWrapper); + + if (ObjectUtils.isNotEmpty(dutyTerritories)) { + List dictItemValue = sysDictItemService.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()).stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + for (String dutyTerritory : dutyTerritories.split(",")) { + //校验责任领域是否合法 + if (dictItemValue.contains(dutyTerritory)) { + ProjectUserDutyTerritory projectUserDutyTerritory = new ProjectUserDutyTerritory(); + projectUserDutyTerritory.setUserId(userId); + projectUserDutyTerritory.setDutyTerritory(dutyTerritory); + projectUserDutyTerritoryList.add(projectUserDutyTerritory); + } + } + } + if (ObjectUtils.isNotEmpty(brands)) { + List dictItemValue = sysDictItemService.selectItemsByDictCode(DictCodeEnum.BRAND.getValue()).stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + for (String brand : brands.split(",")) { + //校验品牌是否合法 + if (dictItemValue.contains(brand)) { + ProjectUserBrand projectUserBrand = new ProjectUserBrand(); + projectUserBrand.setUserId(userId); + projectUserBrand.setBrandType(brand); + projectUserBrandList.add(projectUserBrand); + } + } + } + } + } + + @Override + public boolean isViewer(String userId) { + boolean boo = false; + List roles = sysRoleMapper.getRoleByUserId(userId); + if (ObjectUtils.isNotEmpty(roles)) { + List roleCodes = roles.stream().map(SysRole::getRoleCode).collect(Collectors.toList()); + if (ObjectUtils.isNotEmpty(roleCodes) && roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) { + boo = true; + } + } + return boo; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java index 66d706009..601c15d16 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java @@ -117,7 +117,7 @@ public class ParamsCollectManifestEOController extends JeroController { + @Autowired + private IParamsCollectManifestLogEOService paramsCollectManifestLogEOService; + + /** + * 分页列表查询 + * + * @param paramsCollectManifestLogEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-分页列表查询") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-分页列表查询", notes="参数收集清单-操作记录(历史日志)-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(ParamsCollectManifestLogEO paramsCollectManifestLogEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="cut", defaultValue="cn") String cut, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectManifestLogEO, req.getParameterMap()); + queryWrapper.orderByDesc("create_time"); + Page page = new Page(pageNo, pageSize); + IPage pageList = paramsCollectManifestLogEOService.page(page, queryWrapper); + List records = pageList.getRecords(); + this.paramsCollectManifestLogEOService.disposeData(cut,records); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-列表查询") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-列表查询", notes="参数收集清单-操作记录(历史日志)-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = paramsCollectManifestLogEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param paramsCollectManifestLogEO + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-添加") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-添加", notes="参数收集清单-操作记录(历史日志)-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ParamsCollectManifestLogEO paramsCollectManifestLogEO) { + paramsCollectManifestLogEOService.add(paramsCollectManifestLogEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param paramsCollectManifestLogEO + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-编辑") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-编辑", notes="参数收集清单-操作记录(历史日志)-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody ParamsCollectManifestLogEO paramsCollectManifestLogEO) { + paramsCollectManifestLogEOService.editById(paramsCollectManifestLogEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-通过id删除") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-通过id删除", notes="参数收集清单-操作记录(历史日志)-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + paramsCollectManifestLogEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-批量删除") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-批量删除", notes="参数收集清单-操作记录(历史日志)-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.paramsCollectManifestLogEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "参数收集清单-操作记录(历史日志)-通过id查询") + @ApiOperation(value="参数收集清单-操作记录(历史日志)-通过id查询", notes="参数收集清单-操作记录(历史日志)-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ParamsCollectManifestLogEO paramsCollectManifestLogEO = paramsCollectManifestLogEOService.queryById(id); + if(paramsCollectManifestLogEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(paramsCollectManifestLogEO); + } + + /** + * 导出excel + * + * @param request + * @param paramsCollectManifestLogEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ParamsCollectManifestLogEO paramsCollectManifestLogEO) { + return super.exportXls(request, paramsCollectManifestLogEO, ParamsCollectManifestLogEO.class, "参数收集清单-操作记录(历史日志)"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ParamsCollectManifestLogEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java index 8e42caf35..b48f3e303 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java @@ -111,7 +111,7 @@ public class ParamsCollectManifestBaseEO implements Serializable { @ApiModelProperty(value = "参数模板id") private String paramsTemplateId; - /**状态*/ + /**状态 value对应枚举类 CollectManifestStateEnum */ @Excel(name = "状态", width = 15) @ApiModelProperty(value = "状态") private String state; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestLogEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestLogEO.java new file mode 100644 index 000000000..1051da74c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestLogEO.java @@ -0,0 +1,90 @@ +package com.jero.modules.cert.collect.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +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.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + + +/** + * @Description: 参数收集清单-操作记录(历史日志) + * @Author: jero-boot + * @Date: 2022-12-26 + * @Version: V1.0 + */ +@Data +@TableName("params_collect_manifest_log") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="params_collect_manifest_log对象", description="参数收集清单-操作记录(历史日志)") +public class ParamsCollectManifestLogEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + 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 java.util.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 java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**中文内容*/ + @Excel(name = "中文内容", width = 15) + @ApiModelProperty(value = "中文内容") + private String logCnContent; + + /**英文内容*/ + @Excel(name = "英文内容", width = 15) + @ApiModelProperty(value = "英文内容") + private String logEnContent; + + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private String remarks; + + /**参数清单id*/ + @Excel(name = "参数清单id", width = 15) + @ApiModelProperty(value = "参数清单id") + private String paramsManifestId; + + /**参数收集清单id*/ + @Excel(name = "参数收集清单id", width = 15) + @ApiModelProperty(value = "参数收集清单id") + private String paramsCollectManifestId; + + @TableField(exist = false) + private String logContent; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java index b48150942..bc7bd21ca 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java @@ -15,7 +15,8 @@ public enum CollectManifestUserTypeEnum { STUDIO("R&H Studio","R&H Studio","studio"), MANAGER("R&H Manager","R&H Manager","manager"), ADMIN("系统","Administrator","admin"), - GUEST("游客", "Guest","guest"); + GUEST("游客", "Guest","guest"), + VIEWER("Viewer", "Viewer","viewer"); String name; String enName; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java index 875737c56..e48664246 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java @@ -33,4 +33,6 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper queryByParamManifestId(@Param("paramsManifestId") String paramsManifestIdString); IPage selectpage(@Param("page") IPage page, @Param("ew") Wrapper queryWrapper, @Param("paramsManifestEO")ParamsManifestEO paramsManifestEO); + + List queryByProjectId(@Param("projectId") String projectId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestLogEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestLogEOMapper.java new file mode 100644 index 000000000..d20f5b313 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestLogEOMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.cert.collect.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestLogEO; + +/** + * @Description: 参数收集清单-操作记录(历史日志) + * @Author: jero-boot + * @Date: 2022-12-26 + * @Version: V1.0 + */ +public interface ParamsCollectManifestLogEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index 8f67b0ddb..c41200b25 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -136,4 +136,8 @@ ) temp ${ew.customSqlSegment} + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestLogEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestLogEOMapper.xml new file mode 100644 index 000000000..1c666b271 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestLogEOMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestLogEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestLogEOService.java new file mode 100644 index 000000000..77850a972 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestLogEOService.java @@ -0,0 +1,69 @@ +package com.jero.modules.cert.collect.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestLogEO; + +import java.util.List; + +/** + * @Description: 参数收集清单-操作记录(历史日志) + * @Author: jero-boot + * @Date: 2022-12-26 + * @Version: V1.0 + */ +public interface IParamsCollectManifestLogEOService extends IService { + + /** + * 保存 + * + * @param paramsCollectManifestLogEO + * @return + */ + void add(ParamsCollectManifestLogEO paramsCollectManifestLogEO); + + /** + * 更新 + * + * @param paramsCollectManifestLogEO + * @return + */ + void editById(ParamsCollectManifestLogEO paramsCollectManifestLogEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ParamsCollectManifestLogEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + /** + * 处理数据 + * @param cut + * @param datas + */ + void disposeData(String cut, List datas); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 266db793e..7a7b52f5c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -22,10 +22,7 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi import com.jero.modules.cert.collect.entity.*; import com.jero.modules.cert.collect.enums.*; import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper; -import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; -import com.jero.modules.cert.collect.service.IParamsConfigDataEOService; -import com.jero.modules.cert.collect.service.IParamsConfigEOService; -import com.jero.modules.cert.collect.service.IParamsManifestEOService; +import com.jero.modules.cert.collect.service.*; import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import com.jero.modules.cert.collect.vo.ParamsConfigDataVO; import com.jero.modules.cert.collect.vo.ParamsManifestVO; @@ -47,9 +44,13 @@ import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRelatedPersonnel; +import com.jero.modules.project.entity.ProjectUserPermission; +import com.jero.modules.project.enums.PermissionDescriptionEnum; +import com.jero.modules.project.enums.ProjectUserLocationEnum; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; +import com.jero.modules.project.service.IProjectUserPermissionService; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.common.ReadExcel; import com.jero.modules.system.entity.SysDictItem; @@ -59,7 +60,9 @@ import com.jero.modules.system.service.ISysAnnouncementService; import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysUserRoleService; import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import org.apache.commons.collections4.CollectionUtils; +import com.jero.modules.system.service.*; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -149,7 +152,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId()); + queryWrapper.and(q -> { + q.eq("sdt", loginUser.getUsername()); + q.or().eq("dre", loginUser.getUsername()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + q.or().in("duty_territory", dutyTerritoryList); + } + }); + } // 搜索NIO编号或认证类别编号 精确搜索 if (StringUtils.isNotEmpty(paramsCollectManifestVO.getAllNumber())) { //queryWrapper.and(wrapper->wrapper.eq("nio_number", paramsCollectManifestVO.getAllNumber()).or().eq("params_number", paramsCollectManifestVO.getAllNumber())); @@ -1149,6 +1170,15 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl operatorMap = new HashMap<>(); + if(CutEnum.CN.getValue().equals(cut)){ + operatorMap.put("db_field_txt","操作"); + }else{ + operatorMap.put("db_field_txt","Operator"); + } + operatorMap.put("click6", true); + list.add(operatorMap); + list.addAll(indexOfDescription+1, listConfig); return list; } @@ -1158,10 +1188,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl newConfigDataEOList = new ArrayList<>(); List updateCollectManifestEOList = new ArrayList<>(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List paramsCollectManifestLogEOList = new ArrayList<>(); // 处理数据 for (Map map : configDataList) { String paramsCollectManifestId = (String) map.get("id"); + ParamsCollectManifestEO paramsCollectManifestEO = this.paramsCollectManifestEOMapper.selectById(paramsCollectManifestId); // 修改参数项状态 ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO(); @@ -1169,6 +1202,11 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl entry : map.entrySet()) { ParamsConfigDataEO paramsConfigDataEO = new ParamsConfigDataEO(); @@ -1190,17 +1228,39 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsConfigDataVO : paramsConfigDataVOList) { + String dataValue = (String) paramsConfigDataVO.get("dataValue"); + // 只要其中有一个值就可以进行拼接 + if(StringUtils.isNotEmpty(dataValue)){ + appendFlag = true; + break; + } + } + if(appendFlag){ + logCnContentSb.append(paramsConfigEO.getConfigName()).append("为"); + logEnContentSb.append(" configuration ").append(paramsConfigEO.getConfigName()).append(" as "); + } for (Map paramsConfigDataVO : paramsConfigDataVOList) { String type = (String) paramsConfigDataVO.get("type"); String dataValue = (String) paramsConfigDataVO.get("dataValue"); if (type.equals(ConfigDataTypeEnum.TEXT.getValue())) { paramsConfigDataEO.setTextData(dataValue); + if (StringUtils.isNotEmpty(dataValue)) { + logCnContentSb.append("\"").append(dataValue).append("\""); + logEnContentSb.append("\"").append(dataValue).append("\""); + } } else if (type.equals(ConfigDataTypeEnum.PULL.getValue()) || type.equals(ConfigDataTypeEnum.PULL_MORE.getValue())) { paramsConfigDataEO.setPullData(dataValue); + if (StringUtils.isNotEmpty(dataValue)) { + logCnContentSb.append("\"").append(dataValue).append("\""); + logEnContentSb.append("\"").append(dataValue).append("\""); + } } else if (type.equals(ConfigDataTypeEnum.FILE.getValue())) { if (StringUtils.isNotEmpty(dataValue) && dataValue.contains(",")) { // 新加多个文件 @@ -1234,15 +1294,37 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl fileInfos = ossFileService.getFileInfos(dataValue); + String fileNames = fileInfos.stream().map(OSSFile::getFileName).distinct().collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(fileNames)) { + logCnContentSb.append("\"").append(fileNames).append("\""); + logEnContentSb.append("\"").append(fileNames).append("\""); + } } } + + if(appendFlag){ + logCnContentSb.append(","); + logEnContentSb.append(" and "); + } } newConfigDataEOList.add(paramsConfigDataEO); } + + ParamsCollectManifestLogEO paramsCollectManifestLogEO = new ParamsCollectManifestLogEO(); + paramsCollectManifestLogEO.setLogCnContent(logCnContentSb.toString().substring(0,logCnContentSb.toString().length()-1)); + paramsCollectManifestLogEO.setLogEnContent(logEnContentSb.toString().substring(0,logEnContentSb.toString().length()-5)); + paramsCollectManifestLogEO.setParamsManifestId(paramsCollectManifestEO.getParamsManifestId()); + paramsCollectManifestLogEO.setParamsCollectManifestId(paramsCollectManifestEO.getId()); + paramsCollectManifestLogEOList.add(paramsCollectManifestLogEO); } // 批量更新 paramsConfigDataEOService.saveOrUpdateBatch(newConfigDataEOList); + + if(CollectionUtils.isNotEmpty(paramsCollectManifestLogEOList)){ + this.paramsCollectManifestLogEOService.saveBatch(paramsCollectManifestLogEOList); + } return updateBatchById(updateCollectManifestEOList); } @@ -1565,6 +1647,19 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl map = new HashMap<>(); + if (CutEnum.CN.getValue().equals(cut)) { + map.put("label", CollectManifestUserTypeEnum.VIEWER.getName()); + } else { + map.put("label", CollectManifestUserTypeEnum.VIEWER.getEnName()); + } + map.put("value", CollectManifestUserTypeEnum.VIEWER.getValue()); + userTypeList.add(map); + } + return userTypeList; } @@ -1629,10 +1724,16 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsConfigEOList = this.paramsConfigEOService.queryList(paramsManifestId); + List updateEOList = new ArrayList<>(); + List paramsCollectManifestLogEOList = new ArrayList<>(); for (int i=0; i fileInfos = ossFileService.getFileInfos(configDataEO.getFileConnectId()); + String fileNames = fileInfos.stream().map(OSSFile::getFileName).distinct().collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(fileNames)) { + logCnContentSb.append("\"" +fileNames+ "\""); + logEnContentSb.append("\"" +fileNames+ "\""); + } + } + + logEnContentSb.append(" of configuration " +configEO.getConfigName()+ ""); + + // 如果配置有两条或两条以上,并且不是最后一次循环 + if(paramsConfigEOList.size() > 1 && paramsConfigLenth != paramsConfigEOList.size()){ + logCnContentSb.append(","); + logEnContentSb.append(" and "); + } + } + + paramsConfigLenth ++; + } + + if(StringUtils.equals(currentPersonRole,CollectManifestUserTypeEnum.HOMO.getValue())){ + logCnContentSb.append("退回给填写人").append("\"").append(paramsCollectManifestEO.getDre()).append("\""); + logEnContentSb.append(" to the person ").append("\"").append(paramsCollectManifestEO.getDre()).append("\"."); + }else if(StringUtils.equals(currentPersonRole,CollectManifestUserTypeEnum.SDT.getValue())){ + logCnContentSb.append("退回给认证工程师"); + logEnContentSb.append(" to the Homo Engineer."); + } + } else if(StringUtils.equals(currentPersonRole,CollectManifestUserTypeEnum.DRE.getValue())){ + logCnContentSb.append("填写人").append("\"").append(currentUser.getUsername()).append("\"").append("退回给工程接口人").append("\"").append(paramsCollectManifestEO.getSdt()).append("\""); + logEnContentSb.append("DRE ").append("\"").append(currentUser.getUsername()).append("\"").append(" return to project Eng. Interface ").append("\"").append(paramsCollectManifestEO.getSdt()).append("\""); + } + + ParamsCollectManifestLogEO paramsCollectManifestLogEO = new ParamsCollectManifestLogEO(); + paramsCollectManifestLogEO.setLogCnContent(logCnContentSb.toString()); + paramsCollectManifestLogEO.setLogEnContent(logEnContentSb.toString()); + paramsCollectManifestLogEO.setParamsManifestId(paramsManifestId); + paramsCollectManifestLogEO.setParamsCollectManifestId(paramsCollectManifestEO.getId()); + paramsCollectManifestLogEOList.add(paramsCollectManifestLogEO); } boolean update = updateBatchById(updateEOList); + if(CollectionUtils.isNotEmpty(paramsCollectManifestLogEOList)){ + this.paramsCollectManifestLogEOService.saveBatch(paramsCollectManifestLogEOList); + } if (update) { - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录人 //飞书 for (ParamsCollectManifestEO paramsCollectManifestEO : updateEOList) { paramsCollectManifestEO = getById(paramsCollectManifestEO.getId()); @@ -1756,6 +1929,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsCollectManifestLogEOList = new ArrayList<>(); List updateEOList = new ArrayList<>(); for (int i=0; i updateEOList = new ArrayList<>(); + List delDrePermission = new ArrayList<>(); StringBuilder connectBuilder = new StringBuilder(); connectBuilder.append("You are required to fill in "); @@ -1879,20 +2065,63 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsCollectManifestEOList = list(queryWrapper); Date deadline = paramsCollectManifestEOList.get(0).getDeadline(); int i = 0; + + List paramsCollectManifestLogEOList = new ArrayList<>(); for (ParamsCollectManifestEO paramsCollectManifestEO : paramsCollectManifestEOList) { if (i < 3) { connectBuilder.append(paramsCollectManifestEO.getNioNumber()).append("-").append(paramsCollectManifestEO.getParamsName()).append(","); } i++; + String logCnContent = "工程接口人\"" +currentUser.getUsername()+ "\"将参数填写人由\"空\"修改为\"" + dre + "\""; + String logEnContent = "Eng. Interface \"" +currentUser.getUsername()+ "\" Change the parameter person from \"null\" to \"" +dre+ "\"."; + if (StringUtils.isNotEmpty(paramsCollectManifestEO.getDre())) { + logCnContent = "工程接口人\"" +currentUser.getUsername()+ "\"将参数填写人由\""+ paramsCollectManifestEO.getDre() +"\"修改为\"" + dre + "\""; + logEnContent = "Eng. Interface \"" +currentUser.getUsername()+ "\" Change the parameter person from \""+ paramsCollectManifestEO.getDre() +"\" to \"" + dre + "\"."; + } + + ParamsCollectManifestLogEO paramsCollectManifestLogEO = new ParamsCollectManifestLogEO(); + paramsCollectManifestLogEO.setLogCnContent(logCnContent); + paramsCollectManifestLogEO.setLogEnContent(logEnContent); + paramsCollectManifestLogEO.setParamsManifestId(paramsManifestId); + paramsCollectManifestLogEO.setParamsCollectManifestId(paramsCollectManifestEO.getId()); + paramsCollectManifestLogEOList.add(paramsCollectManifestLogEO); + ParamsCollectManifestEO updateEO = new ParamsCollectManifestEO(); updateEO.setId(paramsCollectManifestEO.getId()); updateEO.setDre(dre); // 设置填写人 updateEO.setState(CollectManifestStateEnum.WAIT_FILL.getValue()); // 设置状态为:待填写 updateEOList.add(updateEO); + + delDrePermission.add(PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId()); } boolean isSuccess = updateBatchById(updateEOList); + if(CollectionUtils.isNotEmpty(paramsCollectManifestLogEOList)){ + this.paramsCollectManifestLogEOService.saveBatch(paramsCollectManifestLogEOList); + } + + if (isSuccess) { + //设置权限 先删后加 + Date now = new Date(); + QueryWrapper delDreWrapper = new QueryWrapper<>(); + delDreWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_DRE.getValue()).in("description", delDrePermission); + projectUserPermissionService.remove(delDreWrapper); + List adds = new ArrayList<>(); + for (ParamsCollectManifestEO paramsCollectManifestEO : updateEOList) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(projectId); + projectUserPermission.setUserId(sysUserService.getUserByName(paramsCollectManifestEO.getDre()) == null?"":sysUserService.getUserByName(paramsCollectManifestEO.getDre()).getId()); + projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_DRE.getValue()); + projectUserPermission.setDescription(PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId()); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + } // 消息内容 SysUser sysUser = sysUserService.getUserByName(dre); String[] thirdIds = new String[1]; @@ -1984,6 +2213,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl updateEOList = new ArrayList<>(); List> msgMapList = new ArrayList<>(); List updateEOIdList = new ArrayList<>(); + List delSdtPermission = new ArrayList<>(); + List paramsCollectManifestLogEOList = new ArrayList<>(); List paramsCollectManifestEOList = listByIds(Arrays.asList(paramsCollectManifestIdStr)); paramsCollectManifestEOList = paramsCollectManifestEOList.stream().sorted(Comparator.comparing(ParamsCollectManifestBaseEO::getNioNumber)).collect(Collectors.toList()); // 按NIO编号升序 @@ -2005,6 +2236,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl msgMap = new HashMap<>(); msgMap.put("nioNumber", paramsCollectManifestEO.getNioNumber()); @@ -2024,8 +2263,28 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl afterUpdateEOList = listByIds(updateEOIdList); + //设置权限 先删后加 + QueryWrapper delSdtWrapper = new QueryWrapper<>(); + delSdtWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue()).in("description", delSdtPermission); + projectUserPermissionService.remove(delSdtWrapper); + List adds = new ArrayList<>(); + for (ParamsCollectManifestEO paramsCollectManifestEO : afterUpdateEOList) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(projectId); + projectUserPermission.setUserId(sysUserService.getUserByName(paramsCollectManifestEO.getSdt()) == null?"":sysUserService.getUserByName(paramsCollectManifestEO.getSdt()).getId()); + projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue()); + projectUserPermission.setDescription(PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId()); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + + // 消息内容 List sdtList = afterUpdateEOList.stream() .map(ParamsCollectManifestEO::getSdt) .distinct() @@ -2093,6 +2352,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl updateEOList = new ArrayList<>(); List> msgMapList = new ArrayList<>(); List updateEOIdList = new ArrayList<>(); + List delSdtPermission = new ArrayList<>(); + List paramsCollectManifestLogEOList = new ArrayList<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId) @@ -2144,6 +2409,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl msgMap = new HashMap<>(); msgMap.put("nioNumber", paramsCollectManifestEO.getNioNumber()); @@ -2163,8 +2436,27 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl afterUpdateEOList = listByIds(updateEOIdList); + //设置权限 先删后加 + QueryWrapper delSdtWrapper = new QueryWrapper<>(); + delSdtWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue()).in("description", delSdtPermission); + projectUserPermissionService.remove(delSdtWrapper); + List adds = new ArrayList<>(); + for (ParamsCollectManifestEO paramsCollectManifestEO : afterUpdateEOList) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(projectId); + projectUserPermission.setUserId(sysUserService.getUserByName(paramsCollectManifestEO.getSdt()) == null?"":sysUserService.getUserByName(paramsCollectManifestEO.getSdt()).getId()); + projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue()); + projectUserPermission.setDescription(PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId()); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + // 消息内容 List sdtList = afterUpdateEOList.stream() .map(ParamsCollectManifestEO::getSdt) .distinct() @@ -2235,6 +2527,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsCollectManifestEOList = paramsCollectManifestEOMapper.selectBatchIds(paramsCollectManifestIdList); List addReportDetailEOList = new ArrayList<>(); List addReportConfigDataEOList = new ArrayList<>(); // 需要添加的配置数据 + List paramsCollectManifestLogEOList = new ArrayList<>(); Date syncTime = new Date(); for (ParamsCollectManifestEO collectManifestEO : paramsCollectManifestEOList) { ParamsReportDetailEO addReportDetailEO = new ParamsReportDetailEO(); @@ -2497,7 +2795,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl fileInfos = ossFileService.getFileInfos(configDataEO.getFileConnectId()); + String fileNames = fileInfos.stream().map(OSSFile::getFileName).distinct().collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(fileNames)) { + logCnContentSb.append("\"" +fileNames+ "\""); + logEnContentSb.append("\"" +fileNames+ "\""); + } + } + + logEnContentSb.append("of configuration " +configEO.getConfigName()+ ""); + + // 如果配置有两条或两条以上,并且不是最后一次循环 + if(paramsConfigEOList.size() > 1 && paramsConfigLenth != paramsConfigEOList.size()){ + logCnContentSb.append(","); + logEnContentSb.append(" and "); + } + } + + paramsConfigLenth ++; } + + logCnContentSb.append(" 同步至上报库"); + logEnContentSb.append(" to the report database"); + + ParamsCollectManifestLogEO paramsCollectManifestLogEO = new ParamsCollectManifestLogEO(); + paramsCollectManifestLogEO.setLogCnContent(logCnContentSb.toString()); + paramsCollectManifestLogEO.setLogEnContent(logEnContentSb.toString()); + paramsCollectManifestLogEO.setParamsManifestId(paramsManifestId); + paramsCollectManifestLogEO.setParamsCollectManifestId(collectManifestEO.getId()); + paramsCollectManifestLogEOList.add(paramsCollectManifestLogEO); } List nioNumberList = paramsCollectManifestEOList.stream().map(ParamsCollectManifestEO::getNioNumber).collect(Collectors.toList()); @@ -2590,6 +2935,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl map = isCollectFinished(paramsManifestId); Boolean finish = (Boolean) map.get("finish"); @@ -2605,7 +2954,6 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsCollectManifestEOList = paramsCollectManifestEOMapper.selectList(queryWrapper); + // 查询所有的责任领域 + List dutyTerritoryList = this.sysDictItemServiceImpl.selectItemsByDictCode("duty_territory"); + + List paramsCollectManifestLogEOList = new ArrayList<>(); List updateEOList = new ArrayList<>(); List> msgMapList = new ArrayList<>(); paramsCollectManifestEOList.forEach(paramsCollectManifestEO -> { @@ -3276,6 +3629,18 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl msgMap = new HashMap<>(); msgMap.put("nioNumber", paramsCollectManifestEO.getNioNumber()); @@ -3288,10 +3653,45 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl dutyTerritoryList,String dutyTerritoryCode,String cut){ + String result = null; + if (CollectionUtils.isNotEmpty(dutyTerritoryList) && StringUtils.isNotEmpty(dutyTerritoryCode)) { + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + result = dutyTerritoryList.stream().filter(dutyTerritory -> { + boolean flag = false; + if(StringUtils.equals(dutyTerritory.getItemValue(),dutyTerritoryCode)){ + flag = true; + } + return flag; + }).map(SysDictItem::getItemText).collect(Collectors.joining(",")); + } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { + result = dutyTerritoryList.stream().filter(dutyTerritory -> { + boolean flag = false; + if(StringUtils.equals(dutyTerritory.getItemValue(),dutyTerritoryCode)){ + flag = true; + } + return flag; + }).map(SysDictItem::getEnName).collect(Collectors.joining(",")); + } + } + return result; + } + private String[] getWorkbookTitleForExport(ParamsCollectManifestVO paramsCollectManifestVO) { String cut = paramsCollectManifestVO.getCut(); String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); @@ -5163,6 +5563,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl configDataQueryWrap = new QueryWrapper<>(); configDataQueryWrap.lambda().in(ParamsConfigDataEO::getParamsCollectManifestId,paramsCollectManifestIdArr); List paramsConfigDataList = this.paramsConfigDataEOService.list(configDataQueryWrap); + List paramsCollectManifestLogEOList = new ArrayList<>(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); for (int i=0; i updateWrap = new LambdaUpdateWrapper<>(); updateWrap.set(ParamsCollectManifestEO::getSdt,null); updateWrap.set(ParamsCollectManifestEO::getDre,null); @@ -5217,6 +5626,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl implements IParamsCollectManifestLogEOService { + + /** + * 保存 + * + * @param paramsCollectManifestLogEO + * @return + */ + @Override + public void add(ParamsCollectManifestLogEO paramsCollectManifestLogEO) { + Date now = new Date(); + paramsCollectManifestLogEO.setCreateTime(now); + paramsCollectManifestLogEO.setUpdateTime(now); + save(paramsCollectManifestLogEO); + } + + /** + * 更新 + * + * @param paramsCollectManifestLogEO + * @return + */ + @Override + public void editById(ParamsCollectManifestLogEO paramsCollectManifestLogEO) { + Date now = new Date(); + paramsCollectManifestLogEO.setUpdateTime(now); + saveOrUpdate(paramsCollectManifestLogEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ParamsCollectManifestLogEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public void disposeData(String cut, List datas) { + if(CollectionUtils.isNotEmpty(datas)){ + for (ParamsCollectManifestLogEO data : datas) { + String logContent = ""; + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + logContent = data.getLogCnContent(); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + logContent = data.getLogEnContent(); + } + data.setLogContent(logContent); + } + } + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 53f508975..1ece7352d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -33,6 +33,7 @@ import com.jero.modules.cert.template.service.IParamsTemplateEOService; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; +import com.jero.modules.project.service.IProjectUserPermissionService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysDictMapper; import com.jero.modules.system.service.ISysUserService; @@ -103,6 +104,8 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl acquireAdd(@Validated @RequestBody DummyInventoryInfoEO dummyInventoryInfoEO) { + dummyInventoryInfoEOService.acquireAdd(dummyInventoryInfoEO); + return Result.OK("添加成功!"); + } + /** * 编辑 * diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java index 6d12f1937..328f29093 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java @@ -25,6 +25,12 @@ public interface IDummyInventoryInfoEOService extends IService infoEOQueryWrapper = new QueryWrapper<>(); + List baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", dummyInventoryInfoEO.getDummyInventoryBaseId())); + if(CollectionUtils.isNotEmpty(baseList)){ + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ + //要添加的虚拟清单 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(DummyInventoryInfoEO::getId, Arrays.asList(dummyInventoryInfoEO.getIds().split(","))); + List dummyInventoryInfoEOList = this.list(wrapper); + + //不需要验重,直接添加,此时可以存在多条编号一样的数据 + List list = new ArrayList<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEOTemp : dummyInventoryInfoEOList) { + String id = UUID.randomUUID().toString().replace("-", ""); + dummyInventoryInfoEOTemp.setId(id); + dummyInventoryInfoEOTemp.setDummyInventoryBaseId(dummyInventoryInfoEO.getDummyInventoryBaseId()); + dummyInventoryInfoEOTemp.setCreateTime(new Date()); + dummyInventoryInfoEOTemp.setUpdateTime(new Date()); + list.add(dummyInventoryInfoEOTemp); + } + this.saveBatch(list); + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String serialNumber = list.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); + String contentLog = username+"向清单中添加了“"+serialNumber+"”"; + String enContentLog = username+" added “"+serialNumber+"” to the list."; + dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); + } + }else{ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("该虚拟清单不存在,新增失败"); + }else{ + throw new JeroBootException("The virtual list does not exist, and adding failed."); + } + } + } /** * 更新 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java index 2f2ab5bf6..6c94cde00 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java @@ -1,9 +1,12 @@ package com.jero.modules.feishu.controller; import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.utils.LarkDecryptUtil; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -93,4 +96,11 @@ public class LarkController { log.info(result.toString()); return result; } + + @AutoLog(value = "飞书交互-根据用户账号获取飞书对话框链接") + @ApiOperation(value="书交互-根据用户账号获取飞书对话框链接", notes="书交互-根据用户账号获取飞书对话框链接") + @PostMapping(value = "/getLarkApplinkByUserName") + public Result getLarkApplinkByUserName(@RequestBody JSONObject json){ + return this.feishuService.getLarkApplinkByUserName(json); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java index 38f3c1234..61fba821a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java @@ -1,6 +1,7 @@ package com.jero.modules.feishu.service; import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; @@ -103,4 +104,16 @@ public interface IFeishuService { void sendCard(String[] thirdIds, FeishuMsg2Vo feishuMsgVo) throws IOException; + /** + * 根据手机号,获取来自飞书的用户信息 + * @param phoneList + */ + JSONObject getUserInfoFromLarkByPhoneList(List phoneList) throws IOException ; + + /** + * 根据用户账号获取飞书对话框链接 + * @param json + * @return + */ + Result getLarkApplinkByUserName(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java index 72761116a..e3ed71c71 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java @@ -7,6 +7,9 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; @@ -31,10 +34,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -60,6 +60,14 @@ public class FeishuServiceImpl implements IFeishuService { @Value("${Feishu.translateTextUrl}") private String translateTextUrl; + // 获取用户信息Url + @Value("${Feishu.getUserInfoUrl}") + private String getUserInfoUrl; + + // 打开用户对话框Url + @Value("${Feishu.appLinkUrl}") + private String appLinkUrl; + @Value(value = "${jero.backUrl}") private String backUrl; @Autowired @@ -1228,4 +1236,97 @@ public class FeishuServiceImpl implements IFeishuService { } + /** + * 根据手机号,获取来自飞书的用户信息 + * @param phoneList + * @throws IOException + */ + @Override + public JSONObject getUserInfoFromLarkByPhoneList(List phoneList) throws IOException { + + String token = getTenantAccessToken(); + // 设置请求头 + Map headerMap = new HashMap<>(); + headerMap.put("Authorization", "Bearer " + token); + headerMap.put("Content-Type", "application/json; charset=utf-8"); + + // 设置请求参数 + JSONObject paramsMap = new JSONObject(); + paramsMap.put("mobiles", phoneList); + + // 发送请求给飞书 + String response = null; + try { + response = HttpRequestUtil.getResponseOfPOST(getUserInfoUrl, headerMap, paramsMap.toJSONString()); + } catch (IOException e) { + e.printStackTrace(); + } + // 获取返回结果 + JSONObject responseJson = JSONObject.parseObject(response); + if(!responseJson.get("code").toString().equals("0")) { + log.error("请求出现异常:" + responseJson.get("msg") + " " + responseJson); + } + return responseJson; + } + + /** + * 根据用户账号获取飞书对话框链接 + * @param json + * @return + */ + @Override + public Result getLarkApplinkByUserName(JSONObject json) { + String result = null; + + String cut = json.getString("cut"); + String userName = json.getString("userName"); + if(StringUtils.isEmpty(userName)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("用户账号不能为空,请检查!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("User account cannot be empty, please check!"); + } + } + + SysUser sysUserInfo = this.sysUserService.getUserByName(userName); + if(Objects.isNull(sysUserInfo)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("未找到" + userName +",用户,请检查!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("User not found" + userName + ", please check!"); + } + } + String phone = sysUserInfo.getPhone(); + + JSONObject responseJson = null; + + List phoneList = Arrays.asList(phone.split(",")); + try { + // 根据用户手机号获取该用户在飞书中的信息 + responseJson = this.getUserInfoFromLarkByPhoneList(phoneList); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("根据用户手机号获取该用户在飞书中的信息失败:" + ex.getMessage()); + } + + JSONArray userJsonArray = JSONObject.parseObject(JSONObject.toJSONString(responseJson.get("data"))).getJSONArray("user_list"); + Map userJsonMap = null; + for (Object userJson : userJsonArray) { + userJsonMap = JSONObject.parseObject(JSONObject.toJSONString(userJson),Map.class); + if(userJsonMap.get("user_id") != null){ + if(StringUtils.isNotEmpty(userJsonMap.get("user_id").toString()) && StringUtils.equals(userJsonMap.get("mobile").toString(),phone)){ + result = this.appLinkUrl + userJsonMap.get("user_id").toString(); + break; + } + }else { + throw new JeroBootException("用户:" + userName + ",在飞书中未找到对应user_id信息"); + } + } + if(StringUtils.isNotEmpty(result)){ + return Result.OK("获取" +userName+ "用户飞书AppLink成功!",result); + }else { + return Result.error("获取" +userName+ "用户飞书AppLink失败!"); + } + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java index 69864ff66..e5f5475b8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java @@ -1,7 +1,10 @@ package com.jero.modules.lawsOpinionGather.controller; import java.util.Arrays; +import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,9 +17,13 @@ import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -42,6 +49,8 @@ public class LawsOpinionGatherEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(lawsOpinionGatherEO, req.getParameterMap()); queryWrapper.orderByDesc("start_time"); /** * 创建查询数据权限,超级管理员可以看到所有的数据,并且能删除,其它用户只能看到自己创建、或自己为评估人的数据。 */ boolean administrator = this.sysUserService.isAdministrator(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!administrator){ - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); //如果不是超级管理员,获取自己所有参与过的法规意见收集 queryWrapper.and(query -> { query.eq("create_by",currentUser.getUsername()); query.or().like("evaluator_ids",currentUser.getId()); }); } + if (ObjectUtils.isNotEmpty(brandSelect)) { + //根据品牌搜索 + queryWrapper.and(query -> { + query.lambda().like(LawsOpinionGatherEO::getBrand, brandSelect); + if(StringUtils.contains(brandSelect,",")){ + for (String brand : brandSelect.split(",")) { + query.or(q -> { + q.like("brand",brand); + }); + } + } + }); + } Page page = new Page(pageNo, pageSize); IPage pageList = lawsOpinionGatherEOService.page(page, queryWrapper); - this.lawsOpinionGatherEOService.disposeData(pageList.getRecords(),cut); + List records = pageList.getRecords(); + //如果是Viewer,根据品牌进行筛选 + List ownedBrandList = projectUserBrandService.queryBrandByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(ownedBrandList)) { + QueryWrapper brandWrapper = new QueryWrapper<>(); + if (ObjectUtils.isNotEmpty(brandSelect)) { + //取交集 + ownedBrandList = Arrays.asList(brandSelect.split(",")).stream().filter(ownedBrandList::contains).collect(Collectors.toList()); + } + for (int i= 0; i + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java index 021c749ed..b0355b6e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; @@ -33,7 +34,10 @@ import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.project.util.SendMessageUtils; import com.jero.modules.system.entity.SysCategory; +import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; +import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.todoCenter.entity.ProcessInfoEO; @@ -89,6 +93,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl opinionArchiveFileList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(lawsOpinionGather.getOpinionArchiveId(), ",")); lawsOpinionGather.setOpinionArchiveFileList(opinionArchiveFileList); } + if (StringUtils.isNotEmpty(lawsOpinionGather.getBrand())) { + StringBuilder builder = new StringBuilder(); + for (String brandValue : lawsOpinionGather.getBrand().split(",")) { + List sysDictItem = sysDictItemMapper.queryItemByValue(DictCodeEnum.BRAND.getValue(), brandValue); + if (CutEnum.CN.getValue().equals(cut)) { + builder.append(sysDictItem.get(0).getItemText() + ","); + } else { + builder.append(sysDictItem.get(0).getEnName()+ ","); + } + } + String brandText = builder.toString().substring(0, builder.toString().length() - 1); + lawsOpinionGather.setBrand_text(brandText); + } //如果当前用户是超级管理员,或是这条数据的创建人,给删除权限。 if(StringUtils.equals(lawsOpinionGather.getCreateBy(),currentUser.getUsername()) || administrator){ lawsOpinionGather.setDeleteFlag(true); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java index eb3ec59fd..7776b4887 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java @@ -1,9 +1,11 @@ package com.jero.modules.lawsTechnologyEvaluation.controller; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -11,6 +13,7 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; @@ -18,10 +21,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +57,8 @@ public class LawsTechnologyEvaluationEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(lawsTechnologyEvaluationEO, req.getParameterMap()); queryWrapper.orderByDesc("start_time"); boolean administrator = this.sysUserService.isAdministrator(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!administrator){ this.lawsTechnologyEvaluationEOService.createQueryPermission(queryWrapper,lawsTechnologyEvaluationEO,administrator); } + if (ObjectUtils.isNotEmpty(brandSelect)) { + //根据品牌搜索 + queryWrapper.and(query -> { + query.lambda().like(LawsTechnologyEvaluationEO::getBrand, brandSelect); + if(StringUtils.contains(brandSelect,",")){ + for (String brand : brandSelect.split(",")) { + query.or(q -> { + q.like("brand",brand); + }); + } + } + }); + } Page page = new Page(pageNo, pageSize); IPage pageList = lawsTechnologyEvaluationEOService.page(page, queryWrapper); - this.lawsTechnologyEvaluationEOService.disposeData(pageList.getRecords(),cut); + List records = pageList.getRecords(); + //如果是Viewer,根据品牌进行筛选 + List ownedBrandList = projectUserBrandService.queryBrandByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(ownedBrandList)) { + QueryWrapper brandWrapper = new QueryWrapper<>(); + if (ObjectUtils.isNotEmpty(brandSelect)) { + //取交集 + ownedBrandList = Arrays.asList(brandSelect.split(",")).stream().filter(ownedBrandList::contains).collect(Collectors.toList()); + } + for (int i= 0; i + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java index c4631149a..3c856d5f4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper; import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum; @@ -33,6 +34,7 @@ import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; @@ -114,6 +116,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl sysDictItem = sysDictItemMapper.queryItemByValue(DictCodeEnum.BRAND.getValue(), brandValue); + if (CutEnum.CN.getValue().equals(cut)) { + builder.append(sysDictItem.get(0).getItemText() + ","); + } else { + builder.append(sysDictItem.get(0).getEnName() + ","); + } + } + String brandText = builder.toString().substring(0, builder.toString().length() - 1); + data.setBrand_text(brandText); + } if(administrator || StringUtils.equals(data.getCreateBy(),currentUser.getUsername())){ data.setDeleteFlag(true); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java new file mode 100644 index 000000000..3a76fd1e1 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectUserPermissionController.java @@ -0,0 +1,55 @@ +package com.jero.modules.project.controller; + + + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.project.entity.ProjectUserPermission; +import com.jero.modules.project.service.IProjectUserPermissionService; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 项目权限表 + * @Author: jero-boot + * @Date: 2022-11-10 + * @Version: V1.0 + */ +@Api(tags="项目权限表") +@RestController +@RequestMapping("/project/projectUserPermission") +@Slf4j +public class ProjectUserPermissionController extends JeroController { + @Autowired + private IProjectUserPermissionService projectUserPermissionService; + + /** + * 工作流调用设置权限 + * @param jsonObject + * @return + */ + @AutoLog(value = "工作流调用设置权限") + @ApiOperation(value="工作流调用设置权限", notes="工作流调用设置权限") + @PostMapping(value = "/setPermission") + public Result processCall(@RequestBody JSONObject jsonObject){ + return projectUserPermissionService.setPermission(jsonObject); + } + + /** + * 权限同步接口 + */ + @AutoLog(value = "权限同步接口") + @ApiOperation(value="权限同步接口", notes="权限同步接口") + @PostMapping(value = "/sync") + public void sync(){ + projectUserPermissionService.sync(); + } + + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java index 4ae6bda7f..60f604376 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java @@ -135,6 +135,9 @@ public class ProjectLibraryBase implements Comparable { @TableField(exist = false) private List children; + //品牌 + private String brand; + @Override public int compareTo(ProjectLibraryBase o) { return Integer.valueOf(this.projectVersion)-Integer.valueOf(o.projectVersion);//升序 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectUserPermission.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectUserPermission.java new file mode 100644 index 000000000..caf7cb545 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectUserPermission.java @@ -0,0 +1,87 @@ +package com.jero.modules.project.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 项目权限表 + * @Author: jero-boot + * @Date: 2022-11-10 + * @Version: V1.0 + */ +@Data +@TableName("project_user_permission") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="project_user_permission对象", description="项目权限表") +public class ProjectUserPermission implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + 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 java.util.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 java.util.Date updateTime; + + /**项目id*/ + @Excel(name = "项目id", width = 15) + @ApiModelProperty(value = "项目id") + private String projectId; + + /**用户id*/ + @Excel(name = "用户id", width = 15) + @ApiModelProperty(value = "用户id") + private String userId; + + /**所属位置*/ + @Excel(name = "所属位置", width = 15) + @ApiModelProperty(value = "所属位置") + private String belong; + + /** + * 如果是相关人员名单的时候,这里填写相关人员名单id + * + * 如果是法规清单的时候,这里填写对应的法规清单id + * + * 如果是认证参数的时候,这里填写参数收集清单id + * + * */ + @Excel(name = "具体描述", width = 15) + @ApiModelProperty(value = "具体描述") + private String description; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PermissionDescriptionEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PermissionDescriptionEnum.java new file mode 100644 index 000000000..42644a441 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PermissionDescriptionEnum.java @@ -0,0 +1,32 @@ +package com.jero.modules.project.enums; + +public enum PermissionDescriptionEnum { + + PROJECT_RELATED_PERSONNEL("相关人员名单","projectRelatedPersonnelId:"), + PROJECT_LAWS_INVENTORY("法规清单","projectLawsInventoryId:"), + PARAMS_COLLECT_MANIFEST("参数项","paramsCollectManifestId:"); + + String label; + String value; + + PermissionDescriptionEnum(String label, String value) { + this.label = label; + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java index af209bf10..24bfda6e3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java @@ -20,6 +20,7 @@ public enum ProjectRoleEnum { VERIFYDUTY("验证符合性确认-责任人","10",""), MANAGER("manage","11",""), ADMIN("系统管理员","12",""), + VIEWER("Viewer","13",""), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectUserLocationEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectUserLocationEnum.java new file mode 100644 index 000000000..5d8cab1ec --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectUserLocationEnum.java @@ -0,0 +1,59 @@ +package com.jero.modules.project.enums; + +/** + * 项目权限相关添加人员的类型 + */ +public enum ProjectUserLocationEnum { + + PROJECT_ADD_STUDIO("PROJECT_ADD_STUDIO","项目新增时设置的Studio工程师"), + PROJECT_ADD_CERTIFICATION("PROJECT_ADD_CERTIFICATION","项目新增时设置的认证工程师"), + + PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION("PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION","相关人员名单中认证工程师"), + PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE("PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE","相关人员名单中工程接口人"), + PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW("PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW","相关人员名单中法规工程师"), + + PROJECT_LAWS_INVENTORY_CREATE_BY("PROJECT_LAWS_INVENTORY_CREATE_BY","法规清单创建人"), + PROJECT_LAWS_INVENTORY_REGULATION("PROJECT_LAWS_INVENTORY_REGULATION","法规清单中法规工程师"), + PROJECT_LAWS_INVENTORY_HOMOLOGATION("PROJECT_LAWS_INVENTORY_HOMOLOGATION","法规清单中认证工程师"), + PROJECT_LAWS_INVENTORY_INTERFACE("PROJECT_LAWS_INVENTORY_INTERFACE","法规清单中工程接口人"), + PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR("PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR","法规清单中设计符合性确认发起人"), + PROJECT_LAWS_INVENTORY_DESIGN_DUTY("PROJECT_LAWS_INVENTORY_DESIGN_DUTY","法规清单中设计符合性确认责任人"), + PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR("PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR","法规清单中prehomo确认发起人"), + PROJECT_LAWS_INVENTORY_PREHOMO_DUTY("PROJECT_LAWS_INVENTORY_PREHOMO_DUTY","法规清单中prehomo确认责任人"), + PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR("PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR","法规清单中验证符合性确认发起人"), + PROJECT_LAWS_INVENTORY_VERIFY_DUTY("PROJECT_LAWS_INVENTORY_VERIFY_DUTY","法规清单中验证符合性确认责任人"), + + PROJECT_LAWS_TASK_AFFIRM_INQUIRE("PROJECT_LAWS_TASK_AFFIRM_INQUIRE","法规任务确认询问人"), + + PROJECT_LAWS_DESIGN_DISTRIBUTION("PROJECT_LAWS_DESIGN_DISTRIBUTION","设计符合性确认分发工程师"), + PROJECT_LAWS_PREHOMO_DISTRIBUTION("PROJECT_LAWS_PREHOMO_DISTRIBUTION","prehomo确认分发工程师"), + PROJECT_LAWS_VERIFY_DISTRIBUTION("PROJECT_LAWS_VERIFY_DISTRIBUTION","验证符合性确认分发工程师"), + + PROJECT_PARAMS_COLLECT_MANIFEST_DRE("PROJECT_PARAMS_COLLECT_MANIFEST_DRE","认证参数收集中填写人"), + PROJECT_PARAMS_COLLECT_MANIFEST_SDT("PROJECT_PARAMS_COLLECT_MANIFEST_SDT","认证参数收集中工程接口人"); + + + String value; + String label; + + ProjectUserLocationEnum(String value, String label) { + this.value = value; + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java index 1f0ab0aee..e894026e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java @@ -14,4 +14,7 @@ import java.util.List; public interface NcrTrackMapper extends BaseMapper { List getInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO); + + List getViewerInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO,@Param("list") List list); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java new file mode 100644 index 000000000..15718bb54 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectUserPermissionMapper.java @@ -0,0 +1,20 @@ +package com.jero.modules.project.mapper; + +import java.util.List; +import java.util.Set; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.project.entity.ProjectUserPermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 项目权限表 + * @Author: jero-boot + * @Date: 2022-11-10 + * @Version: V1.0 + */ +public interface ProjectUserPermissionMapper extends BaseMapper { + + + Set queryProjectIdsByUserId(@Param("userId") String userId); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml index f7ea7f8fa..fc40af83c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml @@ -94,4 +94,56 @@ order by pli.create_time desc + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml index f438c3f24..b504c0987 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml @@ -20,6 +20,7 @@ + @@ -49,7 +50,8 @@ plb.explanation, plb.software_version, plb.sort, - plb.flag + plb.flag, + plb.brand from project_library_base as plb left join project_name_info as pni on plb.project_name_id=pni.id left join sys_user as studiouser on plb.studio_engineer=studiouser.id diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml new file mode 100644 index 000000000..6fb5c10ed --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectUserPermissionService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectUserPermissionService.java new file mode 100644 index 000000000..7bbcd028e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectUserPermissionService.java @@ -0,0 +1,76 @@ +package com.jero.modules.project.service; + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.project.entity.ProjectUserPermission; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 项目权限表 + * @Author: jero-boot + * @Date: 2022-11-10 + * @Version: V1.0 + */ +public interface IProjectUserPermissionService extends IService { + + /** + * 保存 + * + * @param projectUserPermission + * @return + */ + void add(ProjectUserPermission projectUserPermission); + + /** + * 更新 + * + * @param projectUserPermission + * @return + */ + void editById(ProjectUserPermission projectUserPermission); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProjectUserPermission queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + /** + * 工作流调用设置权限 + * @param jsonObject + * @return + */ + Result setPermission(JSONObject jsonObject); + + /** + * 权限同步 + */ + void sync(); + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index 5745b8a0c..a0a200fe1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -18,6 +18,7 @@ import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.service.ISysDictService; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.wkflow.enums.FlowTypeEnum; @@ -63,6 +64,8 @@ public class NcrTrackServiceImpl extends ServiceImpl private SysDictItemServiceImpl sysDictItemServiceImpl; @Autowired private ISysDictService sysDictService; + @Autowired + private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; @Override public List getPageInfo(NcrTrackVO ncrTrackVO) { @@ -89,8 +92,18 @@ public class NcrTrackServiceImpl extends ServiceImpl //如果当前登录用户是系统管理员角色,可以查看所有的数据 boolean administrator = this.sysUserService.isAdministrator(); ncrTrackVO.setAdministrator(administrator ? "true":"false"); - List infoList = ncrTrackMapper.getInfoList(ncrTrackVO); + //判断是否是viewer + boolean viewer = sysUserService.isViewer(loginUser.getId()); + List viewerList = null; + if (viewer) { + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId()); + viewerList = ObjectUtils.isNotEmpty(dutyTerritoryList) ? ncrTrackMapper.getViewerInfoList(ncrTrackVO, dutyTerritoryList) : new ArrayList<>(); + } + //如果当前登录用户是viewer,查看属于自己责任领域或者自己参与的数据 + if (!administrator && viewer) { + infoList.addAll(viewerList); + } infoList = infoList.stream().distinct().collect(Collectors.toList()); List trackVOList = new ArrayList<>(); String designName = ""; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index a2cc0dcb7..43dc27a3e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -58,6 +58,7 @@ import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysRoleMapper; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; import com.jero.modules.system.service.ISysAnnouncementService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; @@ -241,6 +242,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectTaskInventoryEOList = new ArrayList<>(); //法规清单所有的数据 LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); @@ -319,6 +328,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO(); String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", ""); @@ -330,7 +350,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImple.getProjectLibraryId()).collect(Collectors.toList()).get(0); - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String username = sysUser.getUsername(); QueryWrapper queryWrapper = new QueryWrapper<>(); String dummyInventoryBaseName = dummyInventoryBaseEOService.list(queryWrapper.eq("id", dummyInventoryBaseId)).get(0).getName();//name @@ -377,7 +396,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = new ArrayList<>(); - + List addPermission = new ArrayList<>(); for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) { String standId = bussDocumentLibraryEO.getId(); @@ -399,11 +418,23 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); String contentLog = username+"向清单中添加了“"+serialNumber+"”"; @@ -475,18 +506,69 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl adds = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getRegulationOwnerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getHomologationEngineerId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getEngineeringInterfacePerson(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyInitiatorId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyDutyId(),projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + + }else { throw new JeroBootException("该用户没有权限操作该数据!"); } } + private void setProjectLawsInventoryPermission(String userId, String projectId,String lawsInventoryId,Date now, List adds, String belong) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectId) + .eq("belong", belong) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryId); + projectUserPermissionService.remove(del); + + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(userId); + permission.setBelong(belong); + permission.setDescription(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + adds.add(permission); + } + private void setDateNull(ProjectLawsInventoryEO projectLawsInventoryEO, LambdaUpdateWrapper updateWrapper) { if(ObjectUtils.isEmpty(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ updateWrapper.set(ProjectLawsInventoryEO::getXin1Che1Xing2Shi2Shi1Ri4Qi1,null); @@ -642,6 +724,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl rejectCauseRemoveWrapper = new QueryWrapper<>(); rejectCauseRemoveWrapper.lambda().eq(ProjectLawsInventoryRejectCauseEO::getProjectLawsInventoryId,id); this.projectLawsInventoryRejectCauseEOService.remove(rejectCauseRemoveWrapper); + //删除相关人员权限 + QueryWrapper delPermission = new QueryWrapper<>(); + delPermission.eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + id); + projectUserPermissionService.remove(delPermission); } /** @@ -692,6 +778,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl rejectCauseRemoveWrapper = new QueryWrapper<>(); rejectCauseRemoveWrapper.lambda().in(ProjectLawsInventoryRejectCauseEO::getProjectLawsInventoryId,ids); this.projectLawsInventoryRejectCauseEOService.remove(rejectCauseRemoveWrapper); + + //删除相关人员权限 + List description = new ArrayList<>(); + QueryWrapper delPermission = new QueryWrapper<>(); + for (String id : ids) { + description.add(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + id); + } + delPermission.in("description", description); + projectUserPermissionService.remove(delPermission); } /** @@ -757,7 +852,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl{ queryWrapper.eq("regulation_owner_id",currentUser.getId()). or().eq("homologation_engineer_id",currentUser.getId()); @@ -765,6 +861,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl result = super.baseMapper.selectList(projectLawsInventoryEOQueryWrapper); log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + result = result.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList()); + } else { + result = new ArrayList<>(); + } + } dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime)); dataDictDispose(result,projectLawsInventoryEO.getCut()); @@ -3099,6 +3204,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl infoList = list(queryWrapper.in("id", idList)); List projectLawsInventoryEOList = new ArrayList<>(); + + List adds = new ArrayList<>(); + Date now = new Date(); for (String id : projectLawsInventoryEO.getIds().split(",")) { ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO(); projectLawsInventoryEOTemp.setId(id); @@ -3142,46 +3250,57 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectTaskInventoryEOList = new ArrayList<>(); + //权限添加 + List adds = new ArrayList<>(); + Date now = new Date(); for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) { ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO(); String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", ""); @@ -5433,6 +5555,37 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl roleList = sysRoleMapper.getRoleByUserId(loginUser.getId()); - //studio角色,法规工程师/认证工程师,领导角色,管理员角色 + //studio角色,法规工程师/认证工程师,领导角色,管理员角色,Viewer if (roleList.size() != 0) { List manager = roleList.stream().filter(e -> com.jero.modules.system.enums.ProjectRoleEnum.MANAGER.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); List admin = roleList.stream().filter(e -> com.jero.modules.system.enums.ProjectRoleEnum.ADMIN.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); + List Viewer = roleList.stream().filter(e -> com.jero.modules.system.enums.ProjectRoleEnum.VIEWER.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); if(StringUtils.equals(cut,CutEnum.CN.getValue())){ if (manager.size() != 0) { manager.get(0).setRoleCode(com.jero.modules.system.enums.ProjectRoleEnum.MANAGER.getValue()); @@ -8960,6 +9114,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl adds = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(projectLibraryBase.getStudioEngineer())) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(projectLibraryBase.getId()); + projectUserPermission.setUserId(projectLibraryBase.getStudioEngineer()); + projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) { + for (String id : projectLibraryBase.getCertificationEngineer().split(",")) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(projectLibraryBase.getId()); + projectUserPermission.setUserId(id); + projectUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + } /** @@ -182,6 +198,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectRelatedPersonnelList = projectRelatedPersonnelMapper.queryPageList(id, @@ -191,11 +208,57 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl relatedPersonnelPermissionList = new ArrayList<>(); for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) { - projectRelatedPersonnel.setId(UUID.randomUUID().toString().replace("-", "")); + String relatedPersonnelId = UUID.randomUUID().toString().replace("-", ""); + projectRelatedPersonnel.setId(relatedPersonnelId); projectRelatedPersonnel.setProjectId(projectId); + + //添加人员权限 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) { + //projectUserPermissionService.queryRelatedPersonnelPermission(projectLibraryBase.getId(),lawEngineerId,ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()); + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(lawEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + relatedPersonnelPermissionList.add(permission); + } + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(engineeringInterfacePersonId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + relatedPersonnelPermissionList.add(permission); + } + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(certificationEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + relatedPersonnelPermissionList.add(permission); + } + + } + } projectRelatedPersonnelService.saveBatch(projectRelatedPersonnelList); + if (ObjectUtils.isNotEmpty(relatedPersonnelPermissionList)) { + projectUserPermissionService.saveBatch(relatedPersonnelPermissionList); + } } //法规/认证任务计划添加数据 projectTaskPlanningService @@ -213,13 +276,26 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); List projectLibraryRoleRelEOList = projectLibraryRoleRelEOService.list(queryWrapper); + + List studioUserPermissions = new ArrayList<>(); if(ObjectUtils.isNotEmpty(projectLibraryRoleRelEOList)){ for (ProjectLibraryRoleRelEO projectLibraryRoleRelEO : projectLibraryRoleRelEOList) { projectLibraryRoleRelEO.setId(UUID.randomUUID().toString().replace("-", "")); projectLibraryRoleRelEO.setProjectLibraryId(projectId); projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO); + //添加studio权限 + ProjectUserPermission studioUserPermission = new ProjectUserPermission(); + studioUserPermission.setProjectId(projectId); + studioUserPermission.setUserId(projectLibraryRoleRelEO.getUserId()); + studioUserPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + studioUserPermission.setCreateTime(now); + studioUserPermission.setUpdateTime(now); + studioUserPermissions.add(studioUserPermission); } } + if (ObjectUtils.isNotEmpty(studioUserPermissions)) { + projectUserPermissionService.saveBatch(studioUserPermissions); + } } @@ -258,6 +334,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl deleteLibraryRoleRelWrapper = new QueryWrapper<>(); deleteLibraryRoleRelWrapper.lambda().eq(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); projectLibraryRoleRelEOService.remove(deleteLibraryRoleRelWrapper); + //删除当前项目studio项目权限 + QueryWrapper delStudioPermission = new QueryWrapper<>(); + delStudioPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + projectUserPermissionService.remove(delStudioPermission); + //删除当前项目certification engineer项目权限 + QueryWrapper delCertificationPermission = new QueryWrapper<>(); + delCertificationPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delCertificationPermission); // 初始化当前项目的studio与项目库 角色关系 ProjectLibraryRoleRelEO projectLibraryRoleRelEO = new ProjectLibraryRoleRelEO(); @@ -272,13 +358,67 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl engineers = new ArrayList<>(); + ProjectUserPermission studioPermission = new ProjectUserPermission(); + studioPermission.setProjectId(projectLibraryBase.getId()); + studioPermission.setUserId(projectLibraryBase.getStudioEngineer()); + studioPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + studioPermission.setCreateTime(now); + studioPermission.setUpdateTime(now); + engineers.add(studioPermission); + //重新设置当前项目certification engineer项目权限 + if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) { + for (String certificationEngineer : projectLibraryBase.getCertificationEngineer().split(",")) { + ProjectUserPermission certificationPermission = new ProjectUserPermission(); + certificationPermission.setProjectId(projectLibraryBase.getId()); + certificationPermission.setUserId(certificationEngineer); + certificationPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); + certificationPermission.setCreateTime(now); + certificationPermission.setUpdateTime(now); + engineers.add(certificationPermission); + } + } + if (ObjectUtils.isNotEmpty(engineers)) { + projectUserPermissionService.saveBatch(engineers); + } //编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师 List result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null); //项目的认证工程师 String certificationEngineer = projectLibraryBase.getCertificationEngineer(); + //一个都不选的情况下 + if ("".equals(certificationEngineer)) { + //删除当前项目的相关人员名单中认证工程师权限 + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.eq("project_id", projectLibraryBase.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delWrapper); + //删除当前项目的法规清单中认证工程师权限 + QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); + delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + projectUserPermissionService.remove(delLawInventoryWrapper); + } + //选择了其他工程师 if(StringUtils.isNotBlank(certificationEngineer)){ + for (String id : original.getCertificationEngineer().split(",")) { + if (!certificationEngineer.contains(id)) { + //如果原来的认证工程师被删除了,则需要同步删除当前项目的相关人员名单中该认证工程师权限 + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). + eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delWrapper); + //如果原来的认证工程师被删除了,则需要同步删除当前项目的法规清单中该认证工程师权限 + QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); + delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). + eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + projectUserPermissionService.remove(delLawInventoryWrapper); + } + } + + for (ProjectRelatedPersonnel projectRelatedPersonnel : result) { //相关人员名单的认证工程师 String certificationEngineerTemp = projectRelatedPersonnel.getCertificationEngineer(); @@ -299,6 +439,104 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl belongs = new ArrayList<>(); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_library_id", projectLibraryBase.getId()); + List list = projectLawsInventoryEOService.list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + for (ProjectLawsInventoryEO lawsInventoryEO : list) { + boolean boo = false; + //发起任务前 + if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) { + boo = true; + } + //任务结束后 + if (!boo) { + int count = 0; + QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); + taskInventoryQueryWrapper.eq("project_laws_inventory_id",lawsInventoryEO.getId()); + List taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper); + for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) { + String designStatus = taskInventoryRecord.getDesignStatus(); + String verifyStatus = taskInventoryRecord.getVerifyStatus(); + String prehomoStatus = taskInventoryRecord.getPrehomoStatus(); + boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) { + count++; + } + } + if (count == 3) { + boo = true; + } + } + if (boo) { + QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); + personnelQueryWrapper.eq("duty_territory", lawsInventoryEO.getDutyTerritory()).eq("project_id", projectLibraryBase.getId()); + List personnels = projectRelatedPersonnelService.list(personnelQueryWrapper); + + if (!original.getStudioEngineer().equals(projectLibraryBase.getStudioEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(personnels)) { + if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { + participator.append(personnels.get(0).getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(personnels.get(0).getCertificationEngineer())) { + participator.append(personnels.get(0).getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { + participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); + } + } + if (!participator.toString().contains(original.getStudioEngineer())) { + //删除当前studio在法规清单中的人员权限 + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getStudioEngineer()).in("belong",belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { + for (String id : original.getCertificationEngineer().split(",")) { + if (!certificationEngineer.contains(id)) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(personnels)) { + if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { + participator.append(personnels.get(0).getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { + participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); + } + } + participator.append(original.getStudioEngineer()); + if (!participator.toString().contains(id)) { + //删除当前studio在法规清单中的人员权限 + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", id).in("belong",belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + } + } + } + } /** @@ -314,8 +552,18 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getParentId,id); + List list = this.list(wrapper); + if(ObjectUtils.isNotEmpty(list)){ + List idList = list.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList()); + this.removeByIds(idList); + } + //关联删除-相关人员 QueryWrapper relatedPersonnelQueryWrapper = new QueryWrapper<>(); relatedPersonnelQueryWrapper.eq("project_id",id); @@ -336,6 +584,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl permissionQueryWrapper = new QueryWrapper<>(); + permissionQueryWrapper.eq("project_id", id); + projectUserPermissionService.remove(permissionQueryWrapper); } /* @@ -478,6 +730,28 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryPageList(Map params) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Integer isViewer = sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()); + Set projectIds = new HashSet<>(); + if (isViewer == 0) { + //如果不是viewer,根据项目用户权限表筛选有权访问的项目 + Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(permissionProjectIds)) { + projectIds.addAll(permissionProjectIds); + } + } + //if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) { + // //如果是Viewer,根据配置的品牌筛选可访问的项目 + // List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); + // if (ObjectUtils.isNotEmpty(brandTypes)) { + // QueryWrapper queryWrapper = new QueryWrapper<>(); + // queryWrapper.in("brand",brandTypes); + // if (ObjectUtils.isNotEmpty(list(queryWrapper))) { + // projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); + // } + // } + //} + List result = projectLibraryBaseMapper.queryPageList(params); disposeData(result,"",false); //目标市场 @@ -562,7 +836,43 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl resultLast = new ArrayList<>(); + for (ProjectLibraryBase projectLibraryBase : resultNew) { + //判断父项目是否有权限 + if (!projectIds.contains(projectLibraryBase.getId())) { + //判断子项目是否有权限 + List children = projectLibraryBase.getChildren(); + if (ObjectUtils.isNotEmpty(children)) { + for (ProjectLibraryBase child : children) { + //将有权限的放入最后返回的集合中 + if (projectIds.contains(child.getId())) { + resultLast.add(child); + } + } + } + } else { + List children = projectLibraryBase.getChildren(); + if (ObjectUtils.isNotEmpty(children)) { + List lastChild = new ArrayList<>(); + //判断子项目是否有权限 + for (ProjectLibraryBase child : children) { + if (projectIds.contains(child.getId())) { + lastChild.add(child); + } + } + projectLibraryBase.setChildren(lastChild); + } + resultLast.add(projectLibraryBase); + } + + } + return resultLast; + } } @NotNull diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 3e5f2acc4..8af315d1d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -15,12 +15,14 @@ import com.jero.common.util.TokenUtils; import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl; import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.ocr.entity.User; -import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.project.entity.ProjectRelatedPersonnel; -import com.jero.modules.project.enums.ProjectInventoryFieldEnum; -import com.jero.modules.project.enums.ProjectRoleEnum; +import com.jero.modules.project.entity.*; +import com.jero.modules.project.enums.*; +import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; +import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; +import com.jero.modules.project.service.IProjectUserPermissionService; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysDictItemMapper; @@ -93,6 +95,19 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl adds = new ArrayList<>(); + if (projectRelatedPersonnel.getLawEngineer() != null) { + if (!"".equals(projectRelatedPersonnel.getLawEngineer())) { + for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectRelatedPersonnel.getProjectId()); + permission.setUserId(lawEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + permission.setCreateTime(now); + permission.setUpdateTime(now); + adds.add(permission); + } + } + //修改当前相关人员名单中责任领域人员权限 + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()) + .eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + projectUserPermissionService.remove(delPermissionWrapper); + } + if (projectRelatedPersonnel.getEngineeringInterfacePerson()!= null) { + if (!"".equals(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectRelatedPersonnel.getProjectId()); + permission.setUserId(engineeringInterfacePersonId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + permission.setCreateTime(now); + permission.setUpdateTime(now); + adds.add(permission); + } + } + //修改当前相关人员名单中责任领域人员权限 + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id",projectRelatedPersonnel.getProjectId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()) + .eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + projectUserPermissionService.remove(delPermissionWrapper); + } + if (projectRelatedPersonnel.getCertificationEngineer()!= null) { + if (!"".equals(projectRelatedPersonnel.getCertificationEngineer())) { + for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectRelatedPersonnel.getProjectId()); + permission.setUserId(certificationEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + permission.setCreateTime(now); + permission.setUpdateTime(now); + adds.add(permission); + } + } + //修改当前相关人员名单中责任领域人员权限 + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id",projectRelatedPersonnel.getProjectId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()) + .eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId()); + projectUserPermissionService.remove(delPermissionWrapper); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + //修改当前属于当前责任领域的法规清单的人员权限 + List belongs = new ArrayList<>(); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + + setLawsInventoryPermission(projectRelatedPersonnel.getProjectId(), belongs, projectRelatedPersonnel, original, projectLibraryBase); + + } /** @@ -973,6 +1070,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl oppositeDisposeData(List records, String projectId, String cut) { + ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectById(projectId); //查询所有的用户 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.select(SysUser::getUsername,SysUser::getId); @@ -981,7 +1079,20 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl result = new Result<>(); int row=3; StringBuilder message = new StringBuilder(); + + List addPermission = new ArrayList<>(); + Date now = new Date(); + //修改当前属于当前责任领域的法规清单的人员权限 + List belongs = new ArrayList<>(); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + for (ProjectRelatedPersonnel projectRelatedPersonnel:records) { + String relatedPersonnelId = ""; //查标签内容里的责任领域数据 List sysDictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); List dutyTerritoryValueList = new ArrayList<>(); @@ -1015,6 +1126,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); List idList = list(queryWrapper.select("id").eq("duty_territory", dutyTerritoryValueList.get(0)).eq("project_id",projectId)); projectRelatedPersonnel.setId(idList.get(0).getId()); + relatedPersonnelId = idList.get(0).getId(); } } }else{ @@ -1056,8 +1168,26 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl sysUser.getId()).collect(Collectors.joining(",")); } midId.append(lawEngineerId).append(","); + + //添加权限 + if (ObjectUtils.isNotEmpty(relatedPersonnelId) && ObjectUtils.isNotEmpty(lawEngineerId)) { + for (String id : lawEngineerId.split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(id); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermission.add(permission); + } + } + } projectRelatedPersonnel.setLawEngineer(midId.substring(0,midId.toString().length()-1)); + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + projectUserPermissionService.remove(delPermissionWrapper); } }else{ projectRelatedPersonnel.setLawEngineer(""); @@ -1093,8 +1223,25 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl sysUser.getId()).collect(Collectors.joining(",")); } midId.append(engineeringInterfacePersonId).append(","); + + //添加权限 + if (ObjectUtils.isNotEmpty(relatedPersonnelId)&&ObjectUtils.isNotEmpty(engineeringInterfacePersonId)) { + for (String id : engineeringInterfacePersonId.split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(id); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermission.add(permission); + } + } } projectRelatedPersonnel.setEngineeringInterfacePerson(midId.substring(0,midId.toString().length()-1)); + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + projectUserPermissionService.remove(delPermissionWrapper); } }else{ projectRelatedPersonnel.setEngineeringInterfacePerson(""); @@ -1161,15 +1308,31 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl sysUser.getId()).collect(Collectors.joining(",")); } midId.append(certificationEngineerId).append(","); + + //添加权限 + if (ObjectUtils.isNotEmpty(relatedPersonnelId)&&ObjectUtils.isNotEmpty(certificationEngineerId)) { + for (String id : certificationEngineerId.split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(id); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermission.add(permission); + } + } } projectRelatedPersonnel.setCertificationEngineer(midId.substring(0,midId.toString().length()-1)); + QueryWrapper delPermissionWrapper = new QueryWrapper<>(); + delPermissionWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + relatedPersonnelId); + projectUserPermissionService.remove(delPermissionWrapper); } }else{ projectRelatedPersonnel.setCertificationEngineer(""); } projectRelatedPersonnel.setProjectId(projectId); - Date now = new Date(); projectRelatedPersonnel.setUpdateTime(now); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); projectRelatedPersonnel.setUpdateBy(sysUser.getUsername()); @@ -1177,11 +1340,22 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl belongs, ProjectRelatedPersonnel projectRelatedPersonnel, ProjectRelatedPersonnel original, ProjectLibraryBase projectLibraryBase) { + QueryWrapper lawsInventoryWrapper = new QueryWrapper<>(); + lawsInventoryWrapper.eq("project_library_id", projectId).eq("duty_territory", projectRelatedPersonnel.getDutyTerritory()); + List list = projectLawsInventoryEOService.list(lawsInventoryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + for (ProjectLawsInventoryEO lawsInventoryEO : list) { + boolean boo = false; + //发起任务前 + if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) { + boo = true; + } + //任务结束后 + if (!boo) { + int count = 0; + QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); + taskInventoryQueryWrapper.eq("project_laws_inventory_id", lawsInventoryEO.getId()); + List taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper); + for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) { + String designStatus = taskInventoryRecord.getDesignStatus(); + String verifyStatus = taskInventoryRecord.getVerifyStatus(); + String prehomoStatus = taskInventoryRecord.getPrehomoStatus(); + boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) { + count++; + } + } + if (count == 3) { + boo = true; + } + } + if (boo) { + if (projectRelatedPersonnel.getLawEngineer() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前法规工程师,且该用户不为相关人员名单中的认证工程师、工程接口人、studio + if (ObjectUtils.isNotEmpty(original.getLawEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + participator.append(projectRelatedPersonnel.getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + for (String lawEngineer : original.getLawEngineer().split(",")) { + if (!projectRelatedPersonnel.getLawEngineer().contains(lawEngineer)) { + //删除法规清单中法规工程师权限 + QueryWrapper LawEngineerPermissionDel = new QueryWrapper<>(); + LawEngineerPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue()) + .eq("user_id", lawEngineer); + projectUserPermissionService.remove(LawEngineerPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(lawEngineer)) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", lawEngineer).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + + } + if (projectRelatedPersonnel.getEngineeringInterfacePerson() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前工程接口人,且该用户不为相关人员名单中的法规工程师、认证工程师、studio + if (ObjectUtils.isNotEmpty(original.getEngineeringInterfacePerson())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + participator.append(projectRelatedPersonnel.getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + participator.append(projectRelatedPersonnel.getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + for (String interfacePerson : original.getEngineeringInterfacePerson().split(",")) { + if (!projectRelatedPersonnel.getEngineeringInterfacePerson().contains(interfacePerson)) { + //删除法规清单中工程接口人权限 + QueryWrapper interfacePersonPermissionDel = new QueryWrapper<>(); + interfacePersonPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue()) + .eq("user_id", interfacePerson); + projectUserPermissionService.remove(interfacePersonPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(interfacePerson)) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", interfacePerson).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + } + if (projectRelatedPersonnel.getCertificationEngineer() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前认证工程师,且该用户不为相关人员名单中的法规工程师、工程接口人、studio + if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + participator.append(projectRelatedPersonnel.getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + if (!projectRelatedPersonnel.getCertificationEngineer().equals(original.getCertificationEngineer())) { + //删除法规清单中认证工程师权限 + QueryWrapper certificationPermissionDel = new QueryWrapper<>(); + certificationPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()) + .eq("user_id", original.getCertificationEngineer()); + projectUserPermissionService.remove(certificationPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(original.getCertificationEngineer())) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getCertificationEngineer()).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + } + } + } + } + /** * 验证导入的相关人员 * @param userList 所有的用户 @@ -1303,22 +1613,86 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl projectRelatedPersonnelList = new ArrayList<>(); + List addPermissionList = new ArrayList<>(); + + String projectId = ""; + ProjectRelatedPersonnel personnel = baseMapper.selectById(projectRelatedPersonnel.getIds().split(",")[0]); + if (ObjectUtils.isNotEmpty(personnel)) { + projectId = personnel.getProjectId(); + } + ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectById(projectId); + //修改当前属于当前责任领域的法规清单的人员权限 + List belongs = new ArrayList<>(); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + + Date now = new Date(); for (String id : projectRelatedPersonnel.getIds().split(",")) { ProjectRelatedPersonnel projectRelatedPersonnelTemp = new ProjectRelatedPersonnel(); projectRelatedPersonnelTemp.setId(id); - projectRelatedPersonnelTemp.setUpdateTime(new Date()); + projectRelatedPersonnelTemp.setUpdateTime(now); if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getLawEngineer())){ projectRelatedPersonnelTemp.setLawEngineer(projectRelatedPersonnel.getLawEngineer()); + for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(lawEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermissionList.add(permission); + } + QueryWrapper delPermissionQueryWrapper= new QueryWrapper<>(); + delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + projectUserPermissionService.remove(delPermissionQueryWrapper); } if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getEngineeringInterfacePerson())){ projectRelatedPersonnelTemp.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson()); + for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(engineeringInterfacePersonId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermissionList.add(permission); + } + QueryWrapper delPermissionQueryWrapper= new QueryWrapper<>(); + delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + projectUserPermissionService.remove(delPermissionQueryWrapper); } if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getCertificationEngineer())){ projectRelatedPersonnelTemp.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer()); + for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setUserId(certificationEngineerId); + permission.setBelong(ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + permission.setDescription(PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + permission.setCreateTime(now); + permission.setUpdateTime(now); + addPermissionList.add(permission); + } + QueryWrapper delPermissionQueryWrapper= new QueryWrapper<>(); + delPermissionQueryWrapper.eq("project_id", projectId).eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()).eq("description", PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + id); + projectUserPermissionService.remove(delPermissionQueryWrapper); } projectRelatedPersonnelList.add(projectRelatedPersonnelTemp); + //修改当前属于当前责任领域的法规清单的人员权限 + ProjectRelatedPersonnel original = baseMapper.selectById(projectRelatedPersonnel.getId()); + setLawsInventoryPermission(projectRelatedPersonnel.getProjectId(), belongs, projectRelatedPersonnel, original, projectLibraryBase); } this.updateBatchById(projectRelatedPersonnelList); + + if (ObjectUtils.isNotEmpty(addPermissionList)) { + projectUserPermissionService.saveBatch(addPermissionList); + } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java index ae53fd0c2..6be203fab 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java @@ -18,19 +18,18 @@ import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.*; -import com.jero.modules.project.enums.JumpLinkEnum; -import com.jero.modules.project.enums.MsgTypeEnum; -import com.jero.modules.project.enums.SendMsgFlagEnum; -import com.jero.modules.project.enums.TaskStatusEnum; +import com.jero.modules.project.enums.*; import com.jero.modules.project.mapper.*; import com.jero.modules.project.service.IFeedbackHistoryService; import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService; import com.jero.modules.project.service.IProjectTaskInventoryFeedbackEOService; +import com.jero.modules.project.service.IProjectUserPermissionService; import com.jero.modules.project.util.SendMessageUtils; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ObjectUtils; @@ -85,6 +84,9 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl adds = new ArrayList<>(); + String belong = ""; + String msgType = jsonObject.getString("msgType"); + if (MsgTypeEnum.DESIGN_ISSUE_DRE_MSG.getValue().equals(msgType)) { + belong = ProjectUserLocationEnum.PROJECT_LAWS_DESIGN_DISTRIBUTION.getValue(); + } else if (MsgTypeEnum.PREHOMO_ISSUE_DRE_MSG.getValue().equals(msgType)) { + belong = ProjectUserLocationEnum.PROJECT_LAWS_PREHOMO_DISTRIBUTION.getValue(); + } else if (MsgTypeEnum.VERIFY_ISSUE_DRE_MSG.getValue().equals(msgType)) { + belong = ProjectUserLocationEnum.PROJECT_LAWS_VERIFY_DISTRIBUTION.getValue(); + } + for (String userId : userIdList) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setProjectId(lawsInventoryEO.getProjectLibraryId()); + projectUserPermission.setUserId(userId); + projectUserPermission.setBelong(belong); + projectUserPermission.setDescription(PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectTaskInventoryId); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + adds.add(projectUserPermission); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + } + } if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOUpdateList)){ @@ -271,6 +304,21 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl delPermission = new QueryWrapper<>(); + delPermission.eq("user_id", userId) + .eq("belong", belong) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectTaskInventoryDetailEO.getProjectTaskInventoryId()); + projectUserPermissionService.remove(delPermission); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java index 969366e43..40625b660 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java @@ -29,6 +29,7 @@ import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUserRole; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; import com.jero.modules.system.service.ISysUserRoleService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; @@ -105,6 +106,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); + //不是管理员,但是viewer + boolean administrator = sysUserService.isAdministrator(); + boolean viewer = sysUserService.isViewer(currentUser.getId()); + if (!administrator && viewer) { + //筛选符合条件的 + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + projectLawsInventoryEOList = projectLawsInventoryEOList.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList()); + } else { + return result; + } + } if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); @@ -672,7 +687,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl userRoleList = this.sysUserRoleService.list(new QueryWrapper().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色 if(CollectionUtils.isNotEmpty(userRoleList)){ @@ -709,7 +725,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl implements IProjectUserPermissionService { + + @Autowired + private ISysUserService sysUserService; + @Autowired + private IProjectLibraryBaseService projectLibraryBaseService; + @Autowired + private IProjectRelatedPersonnelService projectRelatedPersonnelService; + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + @Autowired + private ParamsCollectManifestEOMapper paramsCollectManifestEOMapper; + @Autowired + private IProjectTaskInventoryDetailEOService projectTaskInventoryDetailEOService; + @Autowired + private WorkFlowFeignClient workFlowFeignClient; + + + /** + * 保存 + * + * @param projectUserPermission + * @return + */ + @Override + public void add(ProjectUserPermission projectUserPermission) { + Date now = new Date(); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + save(projectUserPermission); + } + + /** + * 更新 + * + * @param projectUserPermission + * @return + */ + @Override + public void editById(ProjectUserPermission projectUserPermission) { + Date now = new Date(); + projectUserPermission.setUpdateTime(now); + saveOrUpdate(projectUserPermission); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProjectUserPermission queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + /** + * 工作流调用设置权限 + * @param jsonObject + * @return + */ + @Override + public Result setPermission(JSONObject jsonObject) { + Date now = new Date(); + QueryWrapper permissionQueryWrapper = new QueryWrapper<>(); + permissionQueryWrapper.eq("project_id",jsonObject.getString("projectLibraryId") ) + .eq("user_id",jsonObject.getString("userId") ) + .eq("belong", jsonObject.getString("belong")) + .eq("description",jsonObject.getString("description")); + + if (ObjectUtils.isEmpty(list(permissionQueryWrapper))) { + ProjectUserPermission projectUserPermission = new ProjectUserPermission(); + projectUserPermission.setDescription(jsonObject.getString("description")); + projectUserPermission.setBelong(jsonObject.getString("belong")); + projectUserPermission.setUserId(jsonObject.getString("userId")); + projectUserPermission.setProjectId(jsonObject.getString("projectLibraryId")); + projectUserPermission.setCreateTime(now); + projectUserPermission.setUpdateTime(now); + SysUser sysUser = sysUserService.getById(jsonObject.getString("currentUserId")); + projectUserPermission.setCreateBy(ObjectUtils.isEmpty(sysUser)?"":sysUser.getUsername()); + projectUserPermission.setUpdateBy(ObjectUtils.isEmpty(sysUser)?"":sysUser.getUsername()); + save(projectUserPermission); + } + return new Result<>().success("调用成功!"); + } + + /** + * 权限同步 + */ + @Override + public void sync() { + + List adds = new ArrayList<>(); + Date now = new Date(); + + List projects = projectLibraryBaseService.list(); + + if (ObjectUtils.isNotEmpty(projects)) { + for (ProjectLibraryBase project : projects) { + //项目详情 编辑 + if (ObjectUtils.isNotEmpty(project.getStudioEngineer())) { + createPermission(project.getId(), project.getStudioEngineer(), ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue(), null, now, adds); + } + if (ObjectUtils.isNotEmpty(project.getCertificationEngineer())) { + for (String id : project.getCertificationEngineer().split(",")) { + createPermission(project.getId(), id, ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue(), null, now, adds); + } + } + + //项目详情 相关人员名单 + QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); + personnelQueryWrapper.eq("project_id", project.getId()); + List projectRelatedPersonnels = projectRelatedPersonnelService.list(personnelQueryWrapper); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnels)) { + for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { + //法规工程师 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + for (String lawEngineerId : projectRelatedPersonnel.getLawEngineer().split(",")) { + createPermission(project.getId(), lawEngineerId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_LAW.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + //工程接口人 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + for (String engineeringInterfacePersonId : projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")) { + createPermission(project.getId(), engineeringInterfacePersonId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_INTERFACE.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + //认证工程师 + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + for (String certificationEngineerId : projectRelatedPersonnel.getCertificationEngineer().split(",")) { + createPermission(project.getId(), certificationEngineerId, ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue(), PermissionDescriptionEnum.PROJECT_RELATED_PERSONNEL.getValue() + projectRelatedPersonnel.getId(), now, adds); + } + } + } + } + + //法规清单 + QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + lawsInventoryEOQueryWrapper.eq("project_library_id", project.getId()); + List projectLawsInventoryEOS = projectLawsInventoryEOService.list(lawsInventoryEOQueryWrapper); + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + //创建人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getCreateBy())) { + SysUser creater = sysUserService.getUserByName(projectLawsInventoryEO.getCreateBy()); + if (ObjectUtils.isNotEmpty(creater)) { + createPermission(project.getId(), creater.getId(), ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_CREATE_BY.getValue(), PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + //法规工程师名称 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + createPermission(project.getId(),projectLawsInventoryEO.getRegulationOwnerId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //认证工程师 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + createPermission(project.getId(),projectLawsInventoryEO.getHomologationEngineerId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //工程接口人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + createPermission(project.getId(),projectLawsInventoryEO.getEngineeringInterfacePerson(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //三个符合性认证发起人和责任人 + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getDesignInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getDesignDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getPrehomoInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getPrehomoDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + createPermission(project.getId(),projectLawsInventoryEO.getVerifyInitiatorId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + createPermission(project.getId(),projectLawsInventoryEO.getVerifyDutyId(),ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + //任务确认询问 + Set engineers = workFlowFeignClient.getTaskConfirmAskedEngineer(project.getId()); + if (ObjectUtils.isNotEmpty(engineers)) { + for (String engineer : engineers) { + createPermission(project.getId(),engineer,ProjectUserLocationEnum.PROJECT_LAWS_TASK_AFFIRM_INQUIRE.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + //分发工程师 + QueryWrapper taskInventoryDetailEOQueryWrapper = new QueryWrapper<>(); + taskInventoryDetailEOQueryWrapper.eq("project_task_inventory_id", project.getId()).eq("task_definition_key", DesignComplianceNodeEnum.DRE_DISPOSE.getKey()); + List taskInventoryDetailEOS = projectTaskInventoryDetailEOService.list(taskInventoryDetailEOQueryWrapper); + if (ObjectUtils.isNotEmpty(taskInventoryDetailEOS)) { + for (ProjectTaskInventoryDetailEO taskInventoryDetailEO : taskInventoryDetailEOS) { + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_DESIGN_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_PREHOMO_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(taskInventoryDetailEO.getFlowType())) { + createPermission(project.getId(),taskInventoryDetailEO.getUserId(),ProjectUserLocationEnum.PROJECT_LAWS_VERIFY_DISTRIBUTION.getValue(),PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + projectLawsInventoryEO.getId(), now, adds); + } + } + } + } + //认证参数 + List paramsCollectManifestEOS = paramsCollectManifestEOMapper.queryByProjectId(project.getId()); + if (ObjectUtils.isNotEmpty(paramsCollectManifestEOS)) { + for (ParamsCollectManifestEO paramsCollectManifestEO : paramsCollectManifestEOS) { + if (ObjectUtils.isNotEmpty(paramsCollectManifestEO.getDre())) { + SysUser dre = sysUserService.getUserByName(paramsCollectManifestEO.getDre()); + if (ObjectUtils.isNotEmpty(dre)) { + createPermission(project.getId(),dre.getId(),ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_DRE.getValue(),PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId(), now, adds); + } + } + if (ObjectUtils.isNotEmpty(paramsCollectManifestEO.getSdt())) { + SysUser sdt = sysUserService.getUserByName(paramsCollectManifestEO.getSdt()); + if (ObjectUtils.isNotEmpty(sdt)) { + createPermission(project.getId(),sdt.getId(),ProjectUserLocationEnum.PROJECT_PARAMS_COLLECT_MANIFEST_SDT.getValue(),PermissionDescriptionEnum.PARAMS_COLLECT_MANIFEST.getValue() + paramsCollectManifestEO.getId(), now, adds); + } + } + } + } + } + } + //将当前SQL表清空 + remove(new QueryWrapper<>()); + //重新添加 + if (ObjectUtils.isNotEmpty(adds)) { + saveBatch(adds); + } + + } + + private void createPermission(String projectId,String userId,String belong,String description,Date now,List permissionList) { + ProjectUserPermission permission = new ProjectUserPermission(); + permission.setProjectId(projectId); + permission.setBelong(belong); + if (ObjectUtils.isNotEmpty(description)) { + permission.setDescription(description); + } + permission.setUserId(userId); + permission.setCreateTime(now); + permission.setUpdateTime(now); + permissionList.add(permission); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index 1c8fa71ec..0ec3392fa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; +import java.util.Set; @FeignClient(value = "weilai-wkflow") public interface WorkFlowFeignClient { @@ -202,5 +203,6 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/task/getTaskInfo",method = RequestMethod.GET) Map getTaskInfo(@RequestParam("actiProcInstId") String actiProcInstId); - + @RequestMapping(value = "/bat-wkflow/task/getTaskConfirmAskedEngineer",method = RequestMethod.GET) + Set getTaskConfirmAskedEngineer(@RequestParam("projectLawInventoryId")String projectLawInventoryId); } diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml index 53383a8d2..7f098ef1c 100644 --- a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -130,22 +130,17 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: -# url: jdbc:mysql://localhost:3306/laws_weilai_stand?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false -# username: root -# password: 123456 -# driver-class-name: com.mysql.cj.jdbc.Driver - - - # url: jdbc:mysql://10.0.3.44:3306/jero-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai -# url: jdbc:mysql://10.10.10.44:3306/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false -# username: root -# password: 123456 -# driver-class-name: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://121.36.69.172:3307/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false - url: jdbc:mysql://121.36.69.172:3307/laws_weilai?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai + url: jdbc:mysql://121.36.69.172:3307/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: hzwlsoft.com driver-class-name: com.mysql.cj.jdbc.Driver + + # 10测试环境库 + #url: jdbc:mysql://10.10.10.44:3306/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false + #username: root + #password: 123456 + #driver-class-name: com.mysql.cj.jdbc.Driver + # 多数据源配置 #multi-datasource1: #url: jdbc:mysql://localhost:3306/jero-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai @@ -436,7 +431,8 @@ Feishu: getTenantAccessTokenUrl: https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal batchSendMessageUrl: https://open.feishu.cn/open-apis/message/v4/batch_send/ translateTextUrl: https://open.feishu.cn/open-apis/translation/v1/text/translate - + getUserInfoUrl: https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id + appLinkUrl: https://applink.feishu.cn/client/chat/open?openId= local-tool: uri: http://139.9.235.66:9022 opensso: diff --git a/jero-web/src/api/api.js b/jero-web/src/api/api.js index cd961412e..6e56e73d2 100644 --- a/jero-web/src/api/api.js +++ b/jero-web/src/api/api.js @@ -12,6 +12,7 @@ const queryall = (params)=>getAction("/sys/role/queryall",params); const addUser = (params)=>postAction("/sys/user/add",params); const editUser = (params)=>putAction("/sys/user/edit",params); const queryUserRole = (params)=>getAction("/sys/user/queryUserRole",params); +const queryViewerInfo = (params)=>getAction("/sys/user/queryViewerInfo",params); const getUserList = (params)=>getAction("/sys/user/page",params); const frozenBatch = (params)=>putAction("/sys/user/frozenBatch",params); //验证用户是否存在 @@ -106,6 +107,7 @@ export { addUser, editUser, queryUserRole, + queryViewerInfo, getUserList, queryall, frozenBatch, diff --git a/jero-web/src/assets/feishu.png b/jero-web/src/assets/feishu.png new file mode 100644 index 000000000..ee0353939 Binary files /dev/null and b/jero-web/src/assets/feishu.png differ diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 9b24a93cd..6c93a6b8e 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1364,6 +1364,9 @@ module.exports = { relatedProjectVersion:'Related project version', Importfailure:'Import failure', CuiBan:'CuiBan', + brand:'Brand', + allsubitemsitem:'Whether to delete all subitems under this item', + contactTheFounder:'Contact the founder', certificationCategoryNumber: 'certification Category Number', historicalrecord:'historical Record', Referenceparametercolumn:'Reference Parameter Column', diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 2648a0e65..1b0874a40 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1471,4 +1471,7 @@ module.exports = { Updateparametercolumn:'更新参数列', columnfirst:'请先引用参数列', columnforced:'确认强制撤回?', + brand:'品牌', + allsubitemsitem:'该项目下拥有子项目,是否全部删除', + contactTheFounder:'联系创建人', } \ No newline at end of file diff --git a/jero-web/src/components/tableCollection/index.vue b/jero-web/src/components/tableCollection/index.vue index e1878636e..1e4a4b3a7 100644 --- a/jero-web/src/components/tableCollection/index.vue +++ b/jero-web/src/components/tableCollection/index.vue @@ -33,7 +33,10 @@ {{$t('See')}} - + + {{ text && text.length > 8 ? text.slice(0, 7) + '...' : text }} @@ -166,6 +169,51 @@ + + + + + + + + + + + + {{text && text.length > 10?text.slice(0,9)+'...':text}} + + + +
+ +
+
@@ -311,6 +359,8 @@ dataSource: [], pageNo: 1, pageSize: 100, + pageNohistory: 1, + pageSizehistory: 10, pageSizeOptions: ['100', '200'], total: 0, searchParmes: {}, @@ -354,7 +404,25 @@ getquerySdtId: '', // 当前工程接口人的id areaVisibleView: false, // 查看配置得弹框 seeVisibleView: false, - configDetail: {} // 查看配置得详细信息 + visible: false, + configDetail: {}, // 查看配置得详细信息 + dataSourcehistory:[], + columnshistory: [ + { + title: this.$t('OperationDetails'), + dataIndex: 'logContent', + align: 'center', + ellipsis: true, + scopedSlots: { customRender: 'content' } + }, + { + title: this.$t('OperationTime'), + dataIndex: 'createTime', + align: 'center', + ellipsis: true, + width: 180 + } + ] } }, mounted() { @@ -599,6 +667,45 @@ } }) }, + UpdateLog(val) { + this.visible = true + this.paramsReportDetailId = val.id + this.bussLogList(val) + }, + onChangehistory(page, pageSize) { + console.log(1) + this.pageNohistory = page + this.bussLogList() + }, + SizeChangehistory(page, pageSize) { + this.pageNo = 1 + this.pageSizehistory = pageSize + this.bussLogList() + }, + bussLogList(val) { + let query = { + pageNo: this.pageNohistory, + pageSize: this.pageSizehistory, + paramsManifestId: this.$route.query.id, + paramsCollectManifestId: this.paramsReportDetailId + } + this.loading = true + getAction('paramsCollectManifestLog/paramsCollectManifestLogEO/page', query).then((res) => { + if (res.success) { + this.dataSourcehistory = res.result.records + this.total = res.result.total + this.loading = false + } else { + this.loading = false + } + }) + }, + handleOk() { + this.visible = false + }, + handleCancel() { + this.visible = false + }, getAndUserId(result) { let query = { paramsManifestId: this.$route.query.id, @@ -699,6 +806,11 @@ customRender: 'paramsNameDescription' } } + if (res.click6) { + this.columns[index].scopedSlots = { + customRender: 'Operation' + } + } if (res.click) { // 工程接口人列表修改 this.columns[index].scopedSlots = { diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/initiatingProcess.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/initiatingProcess.vue index 8981f9504..63514d4b2 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/initiatingProcess.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/initiatingProcess.vue @@ -100,6 +100,20 @@
+ +
+
+ * + {{$t('brand')}} +
+ + + +
+
{ + if (this.formInline[val] instanceof Array) { + this.formInline[val] = this.formInline[val].join(',') + } + }) let value = Object.assign(this.formInline, this.selectedRowKeysRecord[0]) value.standId = value.id value.taskAffirmDueDate = value.endTime @@ -398,6 +424,9 @@