diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 3c4e7c32e..08b8f007e 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -18,3 +18,7 @@ ALTER TABLE `laws_weilai`.`params_manifest` ADD COLUMN `project_version` varchar(255) NULL COMMENT '相关项目版本' AFTER `params_template_name`, ADD COLUMN `explanation` varchar(2000) NULL COMMENT '说明' AFTER `project_version`; +-- 项目库修改认证软件版本字段长度---------2022-11-01 未同步生产环境 +ALTER TABLE `laws_weilai`.`project_library_base` +MODIFY COLUMN `software_version` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '软件版本' AFTER `explanation`; + 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 f94670b2d..6a49669a8 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 @@ -161,6 +161,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。 filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口 filterChainDefinitionMap.put("/project/projectTaskInventoryConditionAssessmentEO/initConditionAssessment", "anon"); // 初始化项目当前状态数据接口 + filterChainDefinitionMap.put("/todoCenter/projectProcess/initHistoryData", "anon"); // 待办中心-初始化历史数据接口排除 + filterChainDefinitionMap.put("/project/projectTaskInventoryEO/disposeHistoryData", "anon"); // 项目库-任务清单 处理历史数据接口 // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap(1); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index d95b68abb..87b28ce42 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -158,11 +158,11 @@ public class CommonController { // bizPath = ""; // } } - if(file.getOriginalFilename().length()>70){ + if(file.getOriginalFilename().length()>100){ if(StringUtils.equals(cut,CutEnum.CN.getValue())){ - throw new JeroBootException("文件名长度不能超过70位,请检查!"); + throw new JeroBootException("文件名长度不能超过100位,请检查!"); }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ - throw new JeroBootException("File name length cannot exceed 70 characters, please check!"); + throw new JeroBootException("File name length cannot exceed 100 characters, please check!"); } } // OSSFile oSSFile = ossFileService.uploadLocal(file, bizPath,state,cut); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java index 5e344c977..0b743f160 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java @@ -4,6 +4,8 @@ public enum RoleEnum { ADMIN_ID("R&H Manager","R&H Manager","manager","1534020391015444481",2), MANAGER_ID("系统管理员","Administrator","admin","f6817f48af4fb3af11b9e8bf182f618b",3), COUNTRU_CARD_MANAGE("countryCard管理员","countryCardManage","countryCardManage","1564916346120916993",4), + ENGINEERING_INTERFACE_PERSON("工程接口人","engineeringInterfacePerson","engineeringInterfacePerson","1534020084667674626",5), + ENGINEER("工程师","engineer","engineer","1534020318437208065",6), ; String name; 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 b091fc0c4..4e3c3a59f 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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; @@ -276,4 +277,16 @@ public interface ISysUserService extends IService { * @return */ boolean isAdministrator(); + + /** + * 验证当前登录用户是否是工程接口人角色 + * @return + */ + boolean isEngineeringInterfacePerson(LoginUser currentUser); + + /** + * 验证当前登录用户是否是工程师角色 + * @return + */ + boolean isEngineer(LoginUser currentUser); } 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 71dac6e67..bd91b606d 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 @@ -614,4 +614,46 @@ public class SysUserServiceImpl extends ServiceImpl impl } return result; } + + @Override + public boolean isEngineeringInterfacePerson(LoginUser currentUser) { + boolean result = false; + RoleEnum engineeringInterfacePerson = RoleEnum.ENGINEERING_INTERFACE_PERSON; + List userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper().lambda().eq(SysUserRole::getUserId, currentUser.getId())); + if(CollectionUtils.isNotEmpty(userRoleList)){ + List userRoles = userRoleList.stream().filter(userRole -> { + boolean flag = false; + if(StringUtils.equals(userRole.getRoleId(),engineeringInterfacePerson.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(userRoles)){ + result = true; + } + } + return result; + } + + @Override + public boolean isEngineer(LoginUser currentUser) { + boolean result = false; + RoleEnum engineer = RoleEnum.ENGINEER; + List userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper().lambda().eq(SysUserRole::getUserId, currentUser.getId())); + if(CollectionUtils.isNotEmpty(userRoleList)){ + List userRoles = userRoleList.stream().filter(userRole -> { + boolean flag = false; + if(StringUtils.equals(userRole.getRoleId(),engineer.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(userRoles)){ + result = true; + } + } + return result; + } } 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 0789f8f97..ab69cbfe9 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 @@ -2456,13 +2456,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl fieldList = Arrays.asList(field.split(",")); // list形式 // 查询导出数据 - List> allParamsInfoList = queryForExportDre(paramsCollectManifestVO); // id记得去掉 + List> allParamsInfoList = queryForExportDre(paramsCollectManifestVO, request); // id记得去掉 // 在excel表中添加表头 XSSFRow row = sheetItems.createRow(0); @@ -2540,7 +2531,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO) { + private List> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO, HttpServletRequest req) { String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); -// String paramsTemplateId = paramsCollectManifestVO.getParamsTemplateId(); -// Integer paramsTemplatePublishVersion = paramsCollectManifestVO.getParamsTemplatePublishVersion(); String cut = paramsCollectManifestVO.getCut(); - String ids = paramsCollectManifestVO.getIds(); + List idList = new ArrayList<>(); + if (StringUtils.isNotBlank(paramsCollectManifestVO.getIds())) { + idList = Arrays.asList(paramsCollectManifestVO.getIds().split(",")); + } + List stateList = new ArrayList(){{ + add(CollectManifestStateEnum.WAIT_FILL.getValue()); + add(CollectManifestStateEnum.CERT_BACK.getValue()); + }}; LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - ParamsCollectManifestEO queryEO = new ParamsCollectManifestEO(); - queryEO.setParamsManifestId(paramsManifestId); + ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO(); + BeanUtils.copyProperties(paramsCollectManifestVO, paramsCollectManifestEO); + paramsCollectManifestEO.setParamsManifestId(null); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectManifestEO, req.getParameterMap()); + queryWrapper.lambda().eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId) + .eq(ParamsCollectManifestEO::getDre, loginUser.getUsername()) + .in(ParamsCollectManifestEO::getState, stateList) + .notIn(ParamsCollectManifestEO::getControlType, ControlTypeEnum.Title.getValue()) + .orderByDesc(ParamsCollectManifestEO::getDelFlag) + .orderByDesc(ParamsCollectManifestEO::getAddFlag) + .orderByDesc(ParamsCollectManifestEO::getChangeFlag) + .orderByAsc(ParamsCollectManifestEO::getNioNumber) + .in(CollectionUtil.isNotEmpty(idList), ParamsCollectManifestEO::getId, idList); -// String userTypes = paramsCollectManifestVO.getUserTypes(); - queryEO.setUserTypes(CollectManifestUserTypeEnum.DRE.getValue()); - queryEO.setDreForAuth(loginUser.getUsername()); - queryEO.setState(CollectManifestStateEnum.WAIT_FILL.getValue() + "," + CollectManifestStateEnum.CERT_BACK.getValue()); - - List> dataList = paramsCollectManifestEOMapper.listInfoForExport(queryEO, ids); // 查询导出数据 + List dataList = list(queryWrapper); // 查询导出数据 if (dataList == null || dataList.isEmpty()){ // 没有查到数据,进行提示 if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) { @@ -3181,7 +3176,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl controlVerifyMap = ControlVerifyEnum.toMapForExport(cut); Map controlTypeMap = ControlTypeEnum.toMapForExport(cut); // 插入配置列和认证类别列数据 - for (Map record1 : dataList) { + List> result = new ArrayList<>(); + for (ParamsCollectManifestEO collectManifestEO: dataList) { + Map record1 = objectToMapDre(collectManifestEO); String controlType = (String) record1.get("control_type"); String controlVerify = (String) record1.get("control_verify"); String isMust = (String) record1.get("is_must"); @@ -3190,8 +3187,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl fileTemplateList,Map fileNowPathMap) { @@ -3309,6 +3307,80 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl objectToMapDre(Object obj) { + + Map map = new HashMap<>(); + // 获取f对象对应类中的所有属性域 + List list = findAllFieldsOfSelfAndSuperClass(obj.getClass()); + for (Field field : list) { + + String varName = field.getName(); + try { + // 获取原来的访问控制权限 + boolean accessFlag = field.isAccessible(); + // 修改访问控制权限 + field.setAccessible(true); + // 获取在对象f中属性fields[i]对应的对象中的变量 + Object o = field.get(obj); + if (o != null) { + if (Date.class.equals(field.getType())) { + Date date = (Date) o; + String pattern = ""; + if ("deadline".equals(varName) || "reportTime".equals(varName)) { + pattern = "yyyy-MM-dd"; + } else { + pattern = "yyyy-MM-dd HH:mm:ss"; + } + SimpleDateFormat formatter=new SimpleDateFormat(pattern); + String time=formatter.format(date); + map.put(toUnderlineCase(varName), time); + } else { + map.put(toUnderlineCase(varName), o); + } + } + // 恢复访问控制权限 + field.setAccessible(accessFlag); + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } catch (IllegalAccessException ex) { + ex.printStackTrace(); + } + } + return map; + + } + + /** + * 驼峰转 转 下划线 + * userName ----> user_name + * user_name ----> user_name + * + * @param camelCaseStr 驼峰字符串 + * @return 带下滑线的String + */ + private String toUnderlineCase(String camelCaseStr) { + if (camelCaseStr == null) { + return null; + } + // 将驼峰字符串转换成数组 + char[] charArray = camelCaseStr.toCharArray(); + StringBuffer buffer = new StringBuffer(); + //处理字符串 + for (int i = 0, l = charArray.length; i < l; i++) { + if (charArray[i] >= 65 && charArray[i] <= 90) { + buffer.append("_").append(charArray[i] += 32); + } else { + buffer.append(charArray[i]); + } + } + return buffer.toString(); + } + /** * 通过实体类获取 URL Params * @@ -3841,7 +3913,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl validatePull(String configName, String controlValues, String value, String mustInput, Boolean isSingle, String cut) { String errorMsg = ""; int countError= 0; - List controlValueList = Arrays.asList(controlValues.split(",")); + List controlValueList = Arrays.asList(controlValues.replaceAll(",", ",").split(",")); Map resultMap = new HashMap<>(); // StringBuilder newValue = new StringBuilder(); @@ -3858,7 +3930,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl getPageInfo(Page page, QueryWrapper queryWrapper) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - queryWrapper.and(query->{ - query.in("create_by",sysUser.getUsername()).in("state",InventoryStateEnum.DRAFT.getValue()) - .or().in("state",InventoryStateEnum.ISSUE.getValue()); - }); + //系统管理 + boolean administrator = sysUserService.isAdministrator(); + if(!administrator){ + queryWrapper.and(query->{ + query.in("create_by",sysUser.getUsername()).in("state",InventoryStateEnum.DRAFT.getValue()) + .or().in("state",InventoryStateEnum.ISSUE.getValue()); + }); + } // queryWrapper.or(query->{ // query.in("state",InventoryStateEnum.ISSUE.getValue()); // }); @@ -321,19 +325,19 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl createByNameList =new ArrayList<>(); - if (StringUtils.isNotBlank(baseEO.getCreateBy())) { - createByNameList = Arrays.asList(baseEO.getCreateBy().split(",")); - - if (CollectionUtils.isNotEmpty(createByNameList)){ - if (!createByNameList.contains(loginUserName)) { - if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) { - throw new JeroBootException("当前用户非创建者,无法发布"); - } else { - throw new JeroBootException("The current user is not the creator and cannot be issued."); - } - } - } - } +// if (StringUtils.isNotBlank(baseEO.getCreateBy())) { +// createByNameList = Arrays.asList(baseEO.getCreateBy().split(",")); +// +// if (CollectionUtils.isNotEmpty(createByNameList)){ +// if (!createByNameList.contains(loginUserName)) { +// if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) { +// throw new JeroBootException("当前用户非创建者,无法发布"); +// } else { +// throw new JeroBootException("The current user is not the creator and cannot be issued."); +// } +// } +// } +// } Date now = new Date(); UpdateWrapper baseWrapper=new UpdateWrapper<>(); baseWrapper.set("state",dummyInventoryBaseEO.getState()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java index 7395b1b6c..a5a6e52ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java @@ -1,29 +1,43 @@ package com.jero.modules.problemKnowledgeBase.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; +import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO; +import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseCommentEOMapper; import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCommentEOService; +import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService; import com.jero.modules.problemKnowledgeBase.vo.ProblemKnowledgeBaseCommentVO; import com.jero.modules.project.entity.ProblemKnowledgeBaseReplyEO; import com.jero.modules.project.service.IProblemKnowledgeBaseReplyEOService; +import com.jero.modules.system.entity.SysAnnouncement; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysAnnouncementService; +import com.jero.modules.system.service.ISysUserService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Date; -import java.util.stream.Collectors; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; /** * @Description: 问题知识库评论表 @@ -37,6 +51,24 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl taskUrg(@RequestBody ProjectTaskUrgVo projectTaskUrgVo) { + return this.projectLawsInventoryEOService.taskUrg(projectTaskUrgVo); + } + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java index a15ea842e..197bcb91c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java @@ -22,9 +22,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; +import java.util.Map; - /** +/** * @Description: 项目库-任务清单表 * @Author: jero-boot * @Date: 2022-04-29 @@ -231,4 +232,16 @@ public class ProjectTaskInventoryEOController extends JeroController msgList = projectTaskInventoryEOService.verifyRoleCode(projectTaskInventoryVO); return Result.OK(msgList); } + + /** + * 处理历史数据 + * @param params + * @return + */ + @AutoLog(value = "项目库-任务清单表-处理历史数据") + @ApiOperation(value="项目库-任务清单表-处理历史数据", notes="项目库-任务清单表-处理历史数据") + @GetMapping(value = "/disposeHistoryData") + public Result disposeHistoryData(@RequestParam Map params){ + return this.projectTaskInventoryEOService.disposeHistoryData(params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java index 9b90ffa39..abbedd475 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java @@ -108,4 +108,6 @@ public class ProjectTaskInventoryFeedbackEO implements Serializable { @ApiModelProperty(value = "序号") private String serialNumber; + @TableField(exist = false) + private String userId; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java index 1a7bfc260..c12b42c6b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java @@ -155,13 +155,9 @@ public class TaskAffirmJob implements Job { } //飞书跳转链接 + String hrefFeishu = backUrl - + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink() - + projectLibraryBase.getId() - + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getType() - + "&projectName=" + projectNameInfoEO.getProjectName() + "-" - + projectYearNameInfoEO.getYearName() - + "&targetMarket=" + projectLibraryBase.getTargetMarket(); + + JumpLinkEnum.TASK_AFFIRM_LINK.getLink(); //项目名称 String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java index 1ea8abeb1..aa151598c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java @@ -1,7 +1,13 @@ package com.jero.modules.project.job; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.constant.enums.MessageType2Enum; import com.jero.common.constant.enums.MessageTypeEnum; +import com.jero.common.constant.enums.MsgColorEnum; +import com.jero.modules.document.entity.BussDocumentLibraryEO; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; +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.DesignComplianceStatusEnum; @@ -13,8 +19,11 @@ import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.Job; import org.quartz.JobExecutionContext; @@ -22,6 +31,7 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -52,13 +62,20 @@ public class designComplianceJob implements Job { @Value(value = "${jero.backUrl}") private String backUrl; + @Autowired + private IBussDocumentLibraryEOService bussDocumentLibraryEOService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IFeishuService feishuService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("设计符合性确认流程,定时任务开启 ====================================================="); //查询出已经启动了设计符合性流程的数据。 并且流程没有结束。 QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); - queryProjectTaskInventoryWrapper.lambda().ne(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.TO_SUBMIT.getValue()); List projectTaskInventoryEOList = projectTaskInventoryEOService.getBaseMapper().selectList(queryProjectTaskInventoryWrapper); if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){ @@ -79,15 +96,24 @@ public class designComplianceJob implements Job { Date currentDate = new Date(); - //获取后三天前的时间 - Calendar calendar=new GregorianCalendar(); - calendar.setTime(new Date()); - calendar.add(Calendar.DATE,3); - Date threeDays = calendar.getTime(); - - String threeDaysStr = sdf.format(threeDays); + //两周 + Calendar twoWeeksLaterCalendar=new GregorianCalendar(); + twoWeeksLaterCalendar.setTime(new Date()); + twoWeeksLaterCalendar.add(Calendar.DATE,14); + Date twoWeeksLaterDays = twoWeeksLaterCalendar.getTime(); + String twoWeeksLaterDaysStr = sdf.format(twoWeeksLaterDays); + //一周 + Calendar oneWeekLaterCalendar=new GregorianCalendar(); + oneWeekLaterCalendar.setTime(new Date()); + oneWeekLaterCalendar.add(Calendar.DATE,7); + Date oneWeekLaterDays = oneWeekLaterCalendar.getTime(); + String oneWeekLaterDaysStr = sdf.format(oneWeekLaterDays); + //当天 String currentDateStr = sdf.format(currentDate); + + String msgTitle = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn(); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) { QueryWrapper projectNameInfoEOQueryWrapper = new QueryWrapper<>(); projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId()); @@ -97,109 +123,249 @@ public class designComplianceJob implements Job { projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBase.getYearNameId()); ProjectYearNameInfoEO projectYearNameInfoEO = projectYearNameInfoEOMapper.selectOne(projectYearInfoEOQueryWrapper); + //项目名称 + String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion(); + String projectName = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" + projectLibraryBase.getTargetMarket() + "-" + projectVersion; + + for (ProjectLawsInventoryEO projectLawsInventoryEO: projectLawsInventoryEOList) { - List threeDaysUserIdList = new ArrayList<>(); + + //法规中英文 + String LAW_CN = projectLawsInventoryEO.getSerialNumber() + " " + projectLawsInventoryEO.getTitle();//法规 + BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(projectLawsInventoryEO.getStandId()); + String LAW_EN = ""; + if (ObjectUtils.isEmpty(bussDocumentLibraryEO)) { + LAW_EN = LAW_CN; + } else { + LAW_EN = projectLawsInventoryEO.getSerialNumber() + " " + bussDocumentLibraryEO.getTitleEn();//法规 + } + + + List twoWeeksLaterUserIdList = new ArrayList<>(); + List oneWeeksLaterUserIdList = new ArrayList<>(); List currentDaysUserIdList = new ArrayList<>(); + List dueUserIdList = new ArrayList<>(); - for (ProjectTaskInventoryEO projectTaskInventoryEO : projectTaskInventoryEOList) { - if(StringUtils.equals(projectTaskInventoryEO.getProjectLawsInventoryId(),projectLawsInventoryEO.getId())){ - //如果设计符合性 - 结束日期是当前日期 - if(projectLawsInventoryEO.getDesignDueDate() != null){ - if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ - if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgFlag())){ - if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ - currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); - }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ - currentDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); - } - projectTaskInventoryEO.setDesignSendMsgFlag(SendMsgFlagEnum.FALSE.getValue()); - projectTaskInventoryEOService.updateById(projectTaskInventoryEO); - } + if(StringUtils.equals(projectLawsInventoryEO.getProjectLibraryId(),projectLibraryBase.getId())){ + //如果设计符合性 - 结束日期是当前日期 + if(projectLawsInventoryEO.getDesignDueDate() != null){ + if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); } + } - //如果设计符合性 - 结束日期是三天后的日期 - if(StringUtils.equals(threeDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ - if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgCurrentFlag())){ - if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ - threeDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); - }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ - threeDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); - } - projectTaskInventoryEO.setDesignSendMsgCurrentFlag(SendMsgFlagEnum.FALSE.getValue()); - projectTaskInventoryEOService.updateById(projectTaskInventoryEO); - } + //如果设计符合性 - 结束日期是两周后的日期 + if(StringUtils.equals(twoWeeksLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + twoWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + } + } + + //如果设计符合性 - 结束日期是一周后的日期 + if(StringUtils.equals(oneWeekLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + oneWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + } + } + //逾期三天、七天、十四天 + Calendar due3Days = new GregorianCalendar(); + due3Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due3Days.add(Calendar.DATE, 3); + Date overdue3Days = due3Days.getTime(); + + Calendar due7Days = new GregorianCalendar(); + due7Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due7Days.add(Calendar.DATE, 7); + Date overdue7Days = due7Days.getTime(); + + Calendar due14Days = new GregorianCalendar(); + due14Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due14Days.add(Calendar.DATE, 14); + Date overdue14Days = due14Days.getTime(); + if (StringUtils.equals(sdf.format(overdue3Days), currentDateStr) + || StringUtils.equals(sdf.format(overdue7Days), currentDateStr) + || StringUtils.equals(sdf.format(overdue14Days), currentDateStr)) { + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + dueUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); } } } + } - if(CollectionUtils.isNotEmpty(threeDaysUserIdList)){ - threeDaysUserIdList = threeDaysUserIdList.stream().distinct().collect(Collectors.toList()); + String hrefFeishu = backUrl + + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + + projectLibraryBase.getId() + + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() + + "&projectName=" + projectNameInfoEO.getProjectName(); + + if (ObjectUtils.isNotEmpty(dueUserIdList)) { + dueUserIdList = dueUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(dueUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务已逾期,请尽快处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"+ + "\n截止时间: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate())); + feishuMsgVo.setEnContentUpper("Hello! Your task is overdue. Please check and address it ASAP"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()+ + "\nDue Date: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate())); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.YELLOW.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + + if (ObjectUtils.isNotEmpty(oneWeeksLaterUserIdList)) { + oneWeeksLaterUserIdList = oneWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(oneWeeksLaterUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于7天后结束,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will end in 7 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + + if(CollectionUtils.isNotEmpty(twoWeeksLaterUserIdList)){ + twoWeeksLaterUserIdList = twoWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(twoWeeksLaterUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于14天后结束,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will end in 14 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } //您XXX(项目名称)中GB 7258的设计符合性确认剩余处理时间还有3天,请及时查看处理 - String msgContentEN = "The remaining processing time for the design compliance confirmation for " - + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() - + projectYearNameInfoEO.getYearName()+ " " - + projectLibraryBase.getTargetMarket() - + " are 3 days. Please check and address it in a timely manner."; - String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() - + ": You have a design compliance task to complete"; + //String msgContentEN = "The remaining processing time for the design compliance confirmation for " + // + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + // + projectYearNameInfoEO.getYearName()+ " " + // + projectLibraryBase.getTargetMarket() + // + " are 3 days. Please check and address it in a timely manner."; + //String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() + // + ": You have a design compliance task to complete"; - FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); - feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner."); - feishuMsgVo.setTaskType("Design Compliance Confirmation"); - feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); - feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); + //FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + //feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner."); + //feishuMsgVo.setTaskType("Design Compliance Confirmation"); + //feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); + //feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); //飞书跳转链接 - String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType(); + //String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType(); //系统内部跳转链接 - String href = "" + " View details" + ""; - String contentInfo = msgContentEN + " " + href; - Map sendMessageMap = new HashMap<>(); - sendMessageMap.put("hrefFeishu",hrefFeishu); - sendMessageMap.put("contentInfo",contentInfo); + //String href = "" + " View details" + ""; + //String contentInfo = msgContentEN + " " + href; + //Map sendMessageMap = new HashMap<>(); + //sendMessageMap.put("hrefFeishu",hrefFeishu); + //sendMessageMap.put("contentInfo",contentInfo); //发送消息 - projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + //projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); } if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ currentDaysUserIdList = currentDaysUserIdList.stream().distinct().collect(Collectors.toList()); - + List sysUsers = sysUserService.listByIds(currentDaysUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于今天到期,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will expire today. Please check and address it ASAP"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } //您XXX(项目名称)中GB 7258的设计符合性确认任务今天即将结束,请及时查看处理 - String msgContentEN = "The design compliance confirmation of " - + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() - + " will expire today. Please check and address it in time."; - String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() - + ": You have a design compliance task to complete"; + //String msgContentEN = "The design compliance confirmation of " + // + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + // + " will expire today. Please check and address it in time."; + //String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() + // + ": You have a design compliance task to complete"; - FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); - feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner."); - feishuMsgVo.setTaskType("Design Compliance Confirmation"); - feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); - feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); + //FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + //feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner."); + //feishuMsgVo.setTaskType("Design Compliance Confirmation"); + //feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); + //feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); //飞书跳转链接 - String hrefFeishu = backUrl - + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() - + projectLibraryBase.getId() - + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() - + "&projectName=" + projectNameInfoEO.getProjectName(); + //String hrefFeishu = backUrl + // + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + // + projectLibraryBase.getId() + // + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() + // + "&projectName=" + projectNameInfoEO.getProjectName(); + + //系统内部跳转链接 - String href = "" + " View details" + ""; - String contentInfo = msgContentEN + " " + href; - Map sendMessageMap = new HashMap<>(); - sendMessageMap.put("hrefFeishu",hrefFeishu); - sendMessageMap.put("contentInfo",contentInfo); + //String href = "" + " View details" + ""; + //String contentInfo = msgContentEN + " " + href; + //Map sendMessageMap = new HashMap<>(); + //sendMessageMap.put("hrefFeishu",hrefFeishu); + //sendMessageMap.put("contentInfo",contentInfo); //发送消息 - projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + //projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLibraryBaseMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLibraryBaseMapper.java index 7710ab8fc..164a6fb5a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLibraryBaseMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLibraryBaseMapper.java @@ -17,6 +17,7 @@ import java.util.Map; public interface ProjectLibraryBaseMapper extends BaseMapper { /**分页列表*/ List queryPageList(@Param("params") Map params); + List queryMaimList(); // IPage queryPageList(IPage page, Map params); List getList(@Param("projectLibraryBase") ProjectLibraryBase projectLibraryBase); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml index 6fdb1df82..002a6acae 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml @@ -15,13 +15,54 @@ LEFT JOIN project_laws_inventory pli ON ( pli.stand_id = bdl.id ) LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id ) WHERE - ( - bdl.id IN ( SELECT DISTINCT stand_id FROM laws_opinion_gather where gather_result = #{params.gatherResult}) - OR bdl.id IN ( SELECT DISTINCT stand_id FROM laws_technology_evaluation where flow_status = #{params.flowStatus}) - or pti.design_p_id IS NOT NULL - OR pti.prehomo_p_id IS NOT NULL - OR pti.verify_p_id IS NOT NULL - ) + + ( + bdl.id IN ( + SELECT + DISTINCT stand_id + FROM laws_opinion_gather + where gather_result = #{params.gatherResult} + ) + OR bdl.id IN ( + SELECT + DISTINCT stand_id + FROM laws_technology_evaluation + where flow_status = #{params.flowStatus} + ) + OR pti.design_p_id IS NOT NULL + OR pti.prehomo_p_id IS NOT NULL + OR pti.verify_p_id IS NOT NULL + ) + + + + ( + bdl.id IN ( + SELECT + DISTINCT stand_id + FROM + laws_opinion_gather + where gather_result = #{params.gatherResult} and evaluator_ids like CONCAT(CONCAT('%',#{params.currentUserId}),'%') + ) + OR bdl.id IN ( + SELECT + DISTINCT stand_id + FROM + laws_technology_evaluation + where flow_status = #{params.flowStatus} + and id in ( + select + laws_technology_evaluation_id + from + laws_technology_evaluation_flow_detail + where evaluator_id = #{params.currentUserId} + ) + ) + OR (pti.design_p_id IS NOT NULL and (pli.design_initiator_id = #{params.currentUserId} or pli.design_duty_id = #{params.currentUserId})) + OR (pti.prehomo_p_id IS NOT NULL and (pli.prehomo_initiator_id = #{params.currentUserId} or pli.prehomo_duty_id = #{params.currentUserId})) + OR (pti.verify_p_id IS NOT NULL and (pli.verify_initiator_id = #{params.currentUserId} or pli.verify_duty_id = #{params.currentUserId})) + ) + ${params.condition} GROUP BY bdl.id order by bdl.create_time desc @@ -34,6 +75,12 @@ pli.serial_number as "serialNumber", pli.title as "title", pli.project_library_id as "projectLibraryId", + pli.design_initiator_id as "designInitiatorId", + pli.design_duty_id as "designDutyId", + pli.prehomo_initiator_id as "prehomoInitiatorId", + pli.prehomo_duty_id as "prehomoDutyId", + pli.verify_initiator_id as "verifyInitiatorId", + pli.verify_duty_id as "verifyDutyId", pni.project_name as "projectName", pni.id as "projectNameId", pyni.year_name as "yearName", @@ -80,6 +127,16 @@ #{item} + + and( + pli.design_initiator_id = #{params.currentUserId} + or pli.design_duty_id = #{params.currentUserId} + or pli.prehomo_initiator_id = #{params.currentUserId} + or pli.prehomo_duty_id = #{params.currentUserId} + or pli.verify_initiator_id = #{params.currentUserId} + or pli.verify_duty_id = #{params.currentUserId} + ) + order by pli.create_time desc @@ -96,16 +153,57 @@ LEFT JOIN project_laws_inventory pli ON ( pli.stand_id = bdl.id ) LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id ) WHERE + ( - bdl.id IN ( SELECT DISTINCT stand_id FROM laws_opinion_gather) - OR bdl.id IN ( SELECT DISTINCT stand_id FROM laws_technology_evaluation) - or pti.design_p_id IS NOT NULL - OR pti.prehomo_p_id IS NOT NULL - OR pti.verify_p_id IS NOT NULL + bdl.id IN ( + SELECT + DISTINCT stand_id + FROM laws_opinion_gather + where gather_result = #{params.gatherResult} ) - - ${params.condition} - + OR bdl.id IN ( + SELECT + DISTINCT stand_id + FROM laws_technology_evaluation + where flow_status = #{params.flowStatus} + ) + OR pti.design_p_id IS NOT NULL + OR pti.prehomo_p_id IS NOT NULL + OR pti.verify_p_id IS NOT NULL + ) + + + + ( + bdl.id IN ( + SELECT + DISTINCT stand_id + FROM + laws_opinion_gather + where gather_result = #{params.gatherResult} and evaluator_ids like CONCAT(CONCAT('%',#{params.currentUserId}),'%') + ) + OR bdl.id IN ( + SELECT + DISTINCT stand_id + FROM + laws_technology_evaluation + where flow_status = #{params.flowStatus} + and id in ( + select + laws_technology_evaluation_id + from + laws_technology_evaluation_flow_detail + where evaluator_id = #{params.currentUserId} + ) + ) + OR (pti.design_p_id IS NOT NULL and (pli.design_initiator_id = #{params.currentUserId} or pli.design_duty_id = #{params.currentUserId})) + OR (pti.prehomo_p_id IS NOT NULL and (pli.prehomo_initiator_id = #{params.currentUserId} or pli.prehomo_duty_id = #{params.currentUserId})) + OR (pti.verify_p_id IS NOT NULL and (pli.verify_initiator_id = #{params.currentUserId} or pli.verify_duty_id = #{params.currentUserId})) + ) + + + ${params.condition} + GROUP BY bdl.id order by bdl.create_time desc 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 cd15845a4..df5398987 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 @@ -80,12 +80,15 @@ or prehomo_flow_task_status =#{ncrTrackVO.inconformity} or prehomo_flow_task_status =#{ncrTrackVO.track} or verify_flow_task_status =#{ncrTrackVO.inconformity} or verify_flow_task_status =#{ncrTrackVO.track} ) - - and (pli.regulation_owner_id =#{ncrTrackVO.userId} - or pli.homologation_engineer_id =#{ncrTrackVO.userId} - or pli.engineering_interface_person =#{ncrTrackVO.userId} - or ptid.user_id =#{ncrTrackVO.userId} - ) + + + + and (pli.regulation_owner_id =#{ncrTrackVO.userId} + or pli.homologation_engineer_id =#{ncrTrackVO.userId} + or pli.engineering_interface_person =#{ncrTrackVO.userId} + or ptid.user_id =#{ncrTrackVO.userId} + ) + 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 954daa5bf..f438c3f24 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 @@ -119,6 +119,15 @@ order by plb.sort desc, plb.create_time desc + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 7554c278d..6a97580f9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -8,6 +8,7 @@ import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.system.vo.LoginUser; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.vo.ProjectTaskUrgVo; import com.jero.modules.system.entity.SysRole; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.entity.ProcessInfoEO; @@ -156,4 +157,7 @@ public interface IProjectLawsInventoryEOService extends IService processInfoDetailEOList, Date endTime); + + Result taskUrg(ProjectTaskUrgVo projectTaskUrgVo); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java index 0ade9b8a2..1331b79cc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java @@ -9,6 +9,7 @@ import com.jero.modules.project.vo.ProjectTaskInventoryVO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * @Description: 项目库-任务清单表 @@ -102,4 +103,11 @@ public interface IProjectTaskInventoryEOService extends IService verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO); void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectTaskInventoryEO projectTaskInventoryEO); + + /** + * 处理历史数据 + * @param params + * @return + */ + Result disposeHistoryData(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java index e1742535b..be69a99c0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java @@ -25,6 +25,7 @@ import com.jero.modules.project.service.ILawsComplianceBoardService; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; 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.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; @@ -68,6 +69,8 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi private ISysDictItemService sysDictItemService; @Autowired private ProjectTaskInventoryDetailEOMapper projectTaskInventoryDetailEOMapper; + @Autowired + private ISysUserService sysUserService; @Override public IPage queryPageList(Map params) { @@ -81,6 +84,18 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi //只查询 法规技术评估流程状态、法规意见收集 收集结果 为已完成的数据 params.put("flowStatus", GatherResultEnum.COMPLETED.getValue()); params.put("gatherResult", GatherResultEnum.COMPLETED.getValue()); + + /** + * 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。 + */ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + boolean isEngineer = this.sysUserService.isEngineer(currentUser); + boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser); + if(isEngineer || isEngineeringInterfacePerson){ + params.put("currentUserId",currentUser.getId()); + params.put("isEngineerOrEngineeringInterfacePerson",true); + } + IPage page = new Page(pageNo, pageSize); IPage infoPage = this.lawsComplianceBoardMapper.queryPageList(page, params); List records = infoPage.getRecords(); @@ -142,18 +157,28 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi @Override public JSONObject queryComplianceResultList(Map params) { + /** + * 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。 + */ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + boolean isEngineer = this.sysUserService.isEngineer(currentUser); + boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser); + if(isEngineer || isEngineeringInterfacePerson){ + params.put("currentUserId",currentUser.getId()); + params.put("isEngineerOrEngineeringInterfacePerson",true); + } + JSONObject result = new JSONObject(); String id = (String) params.get("id"); String cut = (String) params.get("cut"); List> complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params); if(CollectionUtils.isNotEmpty(complianceResultList)){ - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List projectLawsInventoryIdList = complianceResultList.stream().map(map-> (String) map.get("id")).collect(Collectors.toList()); QueryWrapper taskDetailQueryWrapper = new QueryWrapper<>(); taskDetailQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIdList); List projectTaskInventoryDetailEOList = this.projectTaskInventoryDetailEOMapper.selectList(taskDetailQueryWrapper); - this.createTaskInventoryEOList(complianceResultList,projectTaskInventoryDetailEOList,currentUser); - this.disposeComplianceResult(complianceResultList,cut); + this.createTaskInventoryEOList(complianceResultList,projectTaskInventoryDetailEOList,currentUser,isEngineer,isEngineeringInterfacePerson); + this.disposeComplianceResult(complianceResultList,cut,isEngineer,isEngineeringInterfacePerson); } result.put("complianceResultList",complianceResultList); @@ -161,6 +186,10 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi QueryWrapper opinionGatherEOQueryWrapper = new QueryWrapper<>(); opinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getStandId,id); opinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getGatherResult,GatherResultEnum.COMPLETED.getValue()); + //如果当前登录用户是工程师或工程接口人,只查询自己为评估人的法规意见收集数据。 + if(isEngineer || isEngineeringInterfacePerson){ + opinionGatherEOQueryWrapper.lambda().like(LawsOpinionGatherEO::getEvaluatorIds,currentUser.getId()); + } int opinionGatherCount = this.lawsOpinionGatherEOService.count(opinionGatherEOQueryWrapper); result.put("opinionGather",opinionGatherCount); @@ -168,6 +197,10 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi QueryWrapper evaluationEOQueryWrapper = new QueryWrapper<>(); evaluationEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getStandId,id); evaluationEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getFlowStatus,GatherResultEnum.COMPLETED.getValue()); + //如果当前登录用户是工程师或工程接口人,只查询自己为评估人的法规技术评估数据。 + if(isEngineer || isEngineeringInterfacePerson){ + this.lawsTechnologyEvaluationEOService.createQueryPermission(evaluationEOQueryWrapper,null,false); + } int evaluationCount = this.lawsTechnologyEvaluationEOService.count(evaluationEOQueryWrapper); result.put("technologyEvaluation",evaluationCount); return result; @@ -178,8 +211,14 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi * @param complianceResultList * @param projectTaskInventoryDetailEOList * @param currentUser + * @param isEngineer 是否是工程师角色 + * @param isEngineeringInterfacePerson 是否是工程接口人角色 */ - private void createTaskInventoryEOList(List> complianceResultList, List projectTaskInventoryDetailEOList, LoginUser currentUser) { + private void createTaskInventoryEOList(List> complianceResultList, + List projectTaskInventoryDetailEOList, + LoginUser currentUser, + boolean isEngineer, + boolean isEngineeringInterfacePerson) { if(CollectionUtils.isNotEmpty(complianceResultList) && CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){ for (Map complianceResult : complianceResultList) { String designPid = ""; @@ -199,44 +238,97 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi String verifyTaskStatus = ""; String verifyTaskDefinitionKey = ""; String verifyTaskDetailId = ""; - - for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) { - if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){ - /** - * 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。 - * 不是自己的待办,只能跳转到处理任务的详情页。 - */ - if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){ - designPid = projectTaskInventoryDetail.getActiProcInstId(); - designTaskId = projectTaskInventoryDetail.getTaskId(); - designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); - designTaskDetailId = projectTaskInventoryDetail.getId(); - if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ - designTaskStatus = projectTaskInventoryDetail.getStatus(); - }else { - designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + //2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。 + if((isEngineer || isEngineeringInterfacePerson)){ + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) { + if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){ + /** + * 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。 + * 不是自己的待办,只能跳转到处理任务的详情页。 + */ + if(StringUtils.equals(complianceResult.get("designInitiatorId").toString(),currentUser.getId()) + || StringUtils.equals(complianceResult.get("designDutyId").toString(),currentUser.getId())){ + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){ + designPid = projectTaskInventoryDetail.getActiProcInstId(); + designTaskId = projectTaskInventoryDetail.getTaskId(); + designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + designTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + designTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + } + if(StringUtils.equals(complianceResult.get("prehomoInitiatorId").toString(),currentUser.getId()) + || StringUtils.equals(complianceResult.get("prehomoDutyId").toString(),currentUser.getId())){ + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){ + prehomoPid = projectTaskInventoryDetail.getActiProcInstId(); + prehomoTaskId = projectTaskInventoryDetail.getTaskId(); + prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + prehomoTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + prehomoTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + } + if(StringUtils.equals(complianceResult.get("verifyInitiatorId").toString(),currentUser.getId()) + || StringUtils.equals(complianceResult.get("verifyDutyId").toString(),currentUser.getId())){ + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){ + verifyPid = projectTaskInventoryDetail.getActiProcInstId(); + verifyTaskId = projectTaskInventoryDetail.getTaskId(); + verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + verifyTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + verifyTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } } } - if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){ - prehomoPid = projectTaskInventoryDetail.getActiProcInstId(); - prehomoTaskId = projectTaskInventoryDetail.getTaskId(); - prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); - prehomoTaskDetailId = projectTaskInventoryDetail.getId(); - if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ - prehomoTaskStatus = projectTaskInventoryDetail.getStatus(); - }else { - prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + }else { + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) { + if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){ + /** + * 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。 + * 不是自己的待办,只能跳转到处理任务的详情页。 + */ + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){ + designPid = projectTaskInventoryDetail.getActiProcInstId(); + designTaskId = projectTaskInventoryDetail.getTaskId(); + designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + designTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + designTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } } - } - if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){ - verifyPid = projectTaskInventoryDetail.getActiProcInstId(); - verifyTaskId = projectTaskInventoryDetail.getTaskId(); - verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); - verifyTaskDetailId = projectTaskInventoryDetail.getId(); - if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ - verifyTaskStatus = projectTaskInventoryDetail.getStatus(); - }else { - verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){ + prehomoPid = projectTaskInventoryDetail.getActiProcInstId(); + prehomoTaskId = projectTaskInventoryDetail.getTaskId(); + prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + prehomoTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + prehomoTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){ + verifyPid = projectTaskInventoryDetail.getActiProcInstId(); + verifyTaskId = projectTaskInventoryDetail.getTaskId(); + verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + verifyTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + verifyTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } } } } @@ -267,10 +359,35 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi } } - public void disposeComplianceResult(List> complianceResultList,String cut){ + public void disposeComplianceResult(List> complianceResultList,String cut,boolean isEngineer,boolean isEngineeringInterfacePerson){ if(CollectionUtils.isNotEmpty(complianceResultList)){ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List dutyTerritoryDictItemList = sysDictItemService.selectItemsByDictCode("duty_territory"); for (Map complianceResult : complianceResultList) { + if(isEngineer || isEngineeringInterfacePerson){ + if(!StringUtils.equals(complianceResult.get("designInitiatorId").toString(),currentUser.getId()) + || !StringUtils.equals(complianceResult.get("designDutyId").toString(),currentUser.getId())){ + complianceResult.put("designStatus",""); + complianceResult.put("designFlowTaskStatus",""); + complianceResult.put("designPId",""); + complianceResult.put("designPersonChargeFeedback",""); + } + if(!StringUtils.equals(complianceResult.get("prehomoInitiatorId").toString(),currentUser.getId()) + && !StringUtils.equals(complianceResult.get("prehomoDutyId").toString(),currentUser.getId())){ + complianceResult.put("prehomoStatus",""); + complianceResult.put("prehomoFlowTaskStatus",""); + complianceResult.put("prehomoPId",""); + complianceResult.put("prehomoPersonChargeFeedback",""); + } + if(!StringUtils.equals(complianceResult.get("verifyInitiatorId").toString(),currentUser.getId()) + && !StringUtils.equals(complianceResult.get("verifyDutyId").toString(),currentUser.getId())){ + complianceResult.put("verifyStatus",""); + complianceResult.put("verifyFlowTaskStatus",""); + complianceResult.put("verifyPId",""); + complianceResult.put("verifyPersonChargeFeedback",""); + } + } + if (complianceResult.get("designStatus") != null) { String textByValue = DesignComplianceStatusEnum.getTextByValue(complianceResult.get("designStatus").toString(), cut); complianceResult.put("designStatus_dicText",textByValue); @@ -342,6 +459,15 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi String condition = this.getConditionStr(params); params.put("condition",StringUtils.isNotEmpty(condition) ? condition : ""); List> exportData = new ArrayList<>(); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + boolean isEngineer = this.sysUserService.isEngineer(currentUser); + boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser); + if(isEngineer || isEngineeringInterfacePerson){ + params.put("currentUserId",currentUser.getId()); + params.put("isEngineerOrEngineeringInterfacePerson",true); + } + if(StringUtils.equals(exportAll,"no")){ IPage page = this.queryPageList(params); exportData = page.getRecords(); @@ -358,7 +484,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi List> complianceResultList = new ArrayList<>(); if(CollectionUtils.isNotEmpty(idList)){ complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params); - this.disposeComplianceResult(complianceResultList,cut); + this.disposeComplianceResult(complianceResultList,cut,isEngineer,isEngineeringInterfacePerson); } String title = ""; @@ -468,8 +594,18 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi @Override public void exportComplianceResultDetail(HttpServletResponse response, HttpServletRequest request, Map params) { String cut = (String) params.get("cut"); + /** + * 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。 + */ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + boolean isEngineer = this.sysUserService.isEngineer(currentUser); + boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser); + if(isEngineer || isEngineeringInterfacePerson){ + params.put("currentUserId",currentUser.getId()); + params.put("isEngineerOrEngineeringInterfacePerson",true); + } List> exportData = this.lawsComplianceBoardMapper.queryComplianceResultList(params); - this.disposeComplianceResult(exportData,cut); + this.disposeComplianceResult(exportData,cut,isEngineer,isEngineeringInterfacePerson); String title = ""; String fileName = ""; if(StringUtils.equals(cut, CutEnum.CN.getValue())){ 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 aea3c5c7e..8abfc2f32 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 @@ -80,6 +80,11 @@ public class NcrTrackServiceImpl extends ServiceImpl ncrTrackVO.setInconformity(ReviewResultEnum.INCONFORMITY.getValue()); ncrTrackVO.setTrack(ReviewResultEnum.TO_TRACK.getValue()); + + //如果当前登录用户是系统管理员角色,可以查看所有的数据 + boolean administrator = this.sysUserService.isAdministrator(); + ncrTrackVO.setAdministrator(administrator ? "true":"false"); + List infoList = ncrTrackMapper.getInfoList(ncrTrackVO); infoList = infoList.stream().distinct().collect(Collectors.toList()); List trackVOList = new ArrayList<>(); 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 bdf028c4e..1f77c6fce 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 @@ -47,6 +47,7 @@ import com.jero.modules.project.enums.*; import com.jero.modules.project.mapper.*; import com.jero.modules.project.service.*; import com.jero.modules.project.util.WordUtil; +import com.jero.modules.project.vo.ProjectTaskUrgVo; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.system.entity.SysAnnouncement; import com.jero.modules.system.entity.SysCategory; @@ -9025,4 +9026,179 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl taskUrg(ProjectTaskUrgVo projectTaskUrgVo) { + if (ObjectUtils.isEmpty(projectTaskUrgVo.getProjectLawsInventoryIds())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("请选择至少一条数据"); + } else { + throw new JeroBootException("Please select at least one piece of data"); + } + + } + if (ObjectUtils.isEmpty(projectTaskUrgVo.getType())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("请选择催办类型"); + } else { + throw new JeroBootException("Please select the type of reminder"); + } + } + + String title = ""; + + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) { + title = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn(); + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) { + title = MessageType2Enum.PRE_HOMO_CONFIRMATION.getCn() + "/" + MessageType2Enum.PRE_HOMO_CONFIRMATION.getEn(); + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) { + title = MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getEn(); + } else { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("请选择正确的催办类型"); + } else { + throw new JeroBootException("Please select the correct type of reminder"); + } + } + String[] ProjectLawsInventoryIds = projectTaskUrgVo.getProjectLawsInventoryIds().split(","); + ProjectLawsInventoryEO projectLawsInventoryEO = baseMapper.selectById(ProjectLawsInventoryIds[0]); + if (ObjectUtils.isEmpty(projectLawsInventoryEO)) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("程序异常,请刷新页面并重新操作"); + } else { + throw new JeroBootException("The program is abnormal, please refresh the page and operate again"); + } + } + + ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectOne(new QueryWrapper() + .lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId())); + + QueryWrapper projectNameInfoEOQueryWrapper = new QueryWrapper<>(); + projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId()); + ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper); + + QueryWrapper projectYearInfoEOQueryWrapper = new QueryWrapper<>(); + projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBase.getYearNameId()); + ProjectYearNameInfoEO projectYearNameInfoEO = projectYearNameInfoEOMapper.selectOne(projectYearInfoEOQueryWrapper); + + //项目名称 + String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion(); + String projectName = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" + projectLibraryBase.getTargetMarket() + "-" + projectVersion; + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //飞书跳转链接 + String hrefFeishu = backUrl + + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink() + + projectLibraryBase.getId() + + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() + + "&projectName=" + projectNameInfoEO.getProjectName() + "-" + + projectYearNameInfoEO.getYearName() + + "&targetMarket=" + projectLibraryBase.getTargetMarket(); + + for (String projectLawsInventoryId : ProjectLawsInventoryIds) { + ProjectLawsInventoryEO lawsInventoryEO = baseMapper.selectById(projectLawsInventoryId); + if (ObjectUtils.isEmpty(lawsInventoryEO)) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("程序异常,请刷新页面并重新操作"); + } else { + throw new JeroBootException("The program is abnormal, please refresh the page and operate again"); + } + } + String LAW_CN = lawsInventoryEO.getSerialNumber() + " " + lawsInventoryEO.getTitle();//法规 + BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(lawsInventoryEO.getStandId()); + String LAW_EN = lawsInventoryEO.getSerialNumber() + " " + bussDocumentLibraryEO.getTitleEn();//法规 + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + String userId = ""; + String dueDate = null; + + QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); + queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); + queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId, projectLawsInventoryId); + List list = projectTaskInventoryEOService.list(queryProjectTaskInventoryWrapper); + + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) { + dueDate = sdf.format(lawsInventoryEO.getDesignDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } + if (ObjectUtils.isNotEmpty(lawsInventoryEO.getDesignDutyId())) { + userId = lawsInventoryEO.getDesignDutyId(); + } + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) { + dueDate = sdf.format(lawsInventoryEO.getPrehomoDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } + if (ObjectUtils.isNotEmpty(lawsInventoryEO.getPrehomoDutyId())) { + userId = lawsInventoryEO.getPrehomoDutyId(); + } + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) { + dueDate = sdf.format(lawsInventoryEO.getVerifyDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } + if (ObjectUtils.isNotEmpty(lawsInventoryEO.getVerifyDutyId())) { + userId = lawsInventoryEO.getVerifyDutyId(); + } + } + + String[] thirdId = new String[1]; + if (ObjectUtils.isNotEmpty(userId)) { + SysUser user = sysUserMapper.selectById(userId); + if (ObjectUtils.isNotEmpty(user)) { + thirdId[0] = user.getThirdId(); + } + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(title); + feishuMsgVo.setCnContentUpper("您好,请尽快查看处理此项任务,谢谢!"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: " + currentUser.getUsername() + + "\n截止时间: " + dueDate); + feishuMsgVo.setEnContentUpper("Hello! Please check and address the task ASAP. Thank you!"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + currentUser.getUsername() + + "\nDue Date: " + dueDate); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdId, feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + return new Result<>().success("催办成功!"); + } else { + return new Result<>().success("Success of the urging!"); + } + + } + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 9d42fd017..19caa49cd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -50,6 +50,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -491,19 +492,45 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectLibraryBaseListParent = projectLibraryBaseMapper.queryMaimList(); + disposeData(projectLibraryBaseListParent,"",false); + for(ProjectLibraryBase projectLibraryBase: projectLibraryBaseListParent){ + //目标市场 + String targetMarket = getMarket(params, targetMarketList, projectLibraryBase); + //主项目的版本号 + String projectVersion = ""; + if(StringUtils.isBlank(projectLibraryBase.getParentId())){ + projectVersion = "00"; + }else{ + projectVersion = projectLibraryBase.getProjectVersion(); + } + if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){ + projectLibraryBase.setProjectName(projectLibraryBase.getProjectName() + + "-" + projectLibraryBase.getYearName() + + "-" + targetMarket + + "-" + projectVersion); + } + } + //项目名称模糊查询特殊处理(因为项目名称是多字段拼接的) if(ObjectUtils.isNotEmpty(params.get("projectName"))){ result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList()); } - //数据组装 - List resultTemp = new LinkedList<>(); - for (ProjectLibraryBase projectLibraryBase : result) { - if(StringUtils.isBlank(projectLibraryBase.getParentId())){ - resultTemp.add(projectLibraryBase); - } - } - for (ProjectLibraryBase projectLibraryBase : resultTemp) { + //处理搜索版本号,(因为列表展示数据是以主项目为主并绑定子项目, 所以搜索的时候只有子项目这种情况需要特殊处理) + List resultNew = getProjectLibraryBases(result, projectLibraryBaseListParent); + + + //数据组装 +// List resultTemp = new LinkedList<>(); +// for (ProjectLibraryBase projectLibraryBase : result) { +// if(StringUtils.isBlank(projectLibraryBase.getParentId())){ +// resultTemp.add(projectLibraryBase); +// } +// } + + for (ProjectLibraryBase projectLibraryBase : resultNew) { //子项目 List children = result.stream() .filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList()); @@ -527,9 +554,135 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectLibraryBases(List result, List projectLibraryBaseListParent) { + //result中的主项目以及子项目对应的主项目 + List resultParent = new LinkedList<>(); + for (ProjectLibraryBase projectLibraryBase : result) { + if(StringUtils.isBlank(projectLibraryBase.getParentId())){ + resultParent.add(projectLibraryBase); + }else{ + //子项目 + List collect = result.stream() + .filter(e -> projectLibraryBase.getId().equals(e.getParentId())) + .collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + resultParent.addAll(collect); + } + + } + } + + //搜索结果中子项目的子项目 + List resultChild = new ArrayList<>(); + //所有子项目 + List childrenListTemp = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList()); + List childrenIdListTemp = childrenListTemp.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList()); + + //子项目的子项目 + List collect3 = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdListTemp.contains(e.getParentId())).collect(Collectors.toList()); + + if(ObjectUtils.isNotEmpty(collect3)){ + //子项目的子项目的父id + List childList = collect3.stream().map(ProjectLibraryBase::getParentId).collect(Collectors.toList()); + //子项目 + resultChild = childrenListTemp.stream().filter(e -> childList.contains(e.getId())).collect(Collectors.toList()); + } + + + //所有的主项目与通过筛选条件查询来的主项目进行过滤 + List resultNew = new LinkedList<>(); + //主项目 + List collect1 = result.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList()); + resultNew.addAll(collect1); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListParent) { + //子项目 + List collect = result.stream().filter(e -> projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + resultNew.add(projectLibraryBase); + } + //子项目的子项目 + if(ObjectUtils.isNotEmpty(resultChild)){ + List collect2 = resultChild.stream().filter(e -> e.getParentId().equals(projectLibraryBase.getId())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect2)){ + resultNew.add(projectLibraryBase); + } + } + } + resultNew = resultNew.stream().distinct().collect(Collectors.toList()); + return resultNew; + } +// /** +// * 分页列表查询 +// * +// * @return +// */ +// @Override +// public List queryPageList(Map params) { +// List result = projectLibraryBaseMapper.queryPageList(params); +// disposeData(result,"",false); +// //目标市场 +// List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); +// +// for(ProjectLibraryBase projectLibraryBase: result){ +// //目标市场 +// String targetMarket = getMarket(params, targetMarketList, projectLibraryBase); +// //主项目的版本号 +// String projectVersion = ""; +// if(StringUtils.isBlank(projectLibraryBase.getParentId())){ +// projectVersion = "00"; +// }else{ +// projectVersion = projectLibraryBase.getProjectVersion(); +// } +// if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){ +// projectLibraryBase.setProjectName(projectLibraryBase.getProjectName() +// + "-" + projectLibraryBase.getYearName() +// + "-" + targetMarket +// + "-" + projectVersion); +// } +// } +// //项目名称模糊查询特殊处理(因为项目名称是多字段拼接的) +// if(ObjectUtils.isNotEmpty(params.get("projectName"))){ +// result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList()); +// } +// //数据组装 +// List resultTemp = new LinkedList<>(); +// for (ProjectLibraryBase projectLibraryBase : result) { +// if(StringUtils.isBlank(projectLibraryBase.getParentId())){ +// resultTemp.add(projectLibraryBase); +// } +// } +// +// for (ProjectLibraryBase projectLibraryBase : resultTemp) { +// //子项目 +// List children = result.stream() +// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList()); +// if(children.size() != 0){ +// //子项目的基础上添加的子项目 +// List childrenIdList = children.stream().map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList()); +// List childrenList = result.stream() +// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdList.contains(e.getParentId())).collect(Collectors.toList()); +// children.addAll(childrenList); +// +// //按版本排序 +// Collections.sort(children); +// projectLibraryBase.setChildren(children); +// //最后一个版本号(主项目和主项目都需要设置) +// String versionLast = children.get(children.size() - 1).getProjectVersion(); +// //主版本设置最后一个版本号(用于项目扩展中的版本号) +// projectLibraryBase.setVersionLast(versionLast); +// for (ProjectLibraryBase child : children) { +// //每个子版本版本设置最后一个版本号(用于项目扩展中的版本号) +// child.setVersionLast(versionLast); +// } +// } +// } +// return resultTemp; +// } + private String getMarket(Map params, List targetMarketList, ProjectLibraryBase projectLibraryBase) { List dictModelList = new ArrayList<>(); for (String s : projectLibraryBase.getTargetMarket().split(",")) { 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 90a95e482..535c324df 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 @@ -1392,6 +1392,73 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl disposeHistoryData(Map params) { + List projectTaskInventoryEOList = this.projectTaskInventoryEOService.list(); + + //获取没有任务清单数据的法规清单数据 + List projectLawsInventoryIdList = projectTaskInventoryEOList.stream().map(ProjectTaskInventoryEO::getProjectLawsInventoryId).distinct().collect(Collectors.toList()); + QueryWrapper lawsInventoryQueryWrap = new QueryWrapper<>(); + lawsInventoryQueryWrap.lambda().notIn(ProjectLawsInventoryEO::getId,projectLawsInventoryIdList); + List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryQueryWrap); + + //如果有(没有任务清单数据的法规清单数据),进行历史数据处理 + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + + List projectLawsInventoryIds = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList()); + + QueryWrapper taskInventoryDetailQueryWrap = new QueryWrapper<>(); + taskInventoryDetailQueryWrap.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIds); + List projectTaskInventoryDetailEOS = this.projectTaskInventoryDetailEOMapper.selectList(taskInventoryDetailQueryWrap); + + List projectTaskInventoryEOAddList = new ArrayList<>(); + projectLawsInventoryEOList.forEach(lawsInventoryEO -> { + ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO(); + String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", ""); + projectTaskInventoryEO.setId(projectTaskInventoryId); + projectTaskInventoryEO.setProjectLawsInventoryId(lawsInventoryEO.getId()); + projectTaskInventoryEO.setStandId(lawsInventoryEO.getStandId()); + projectTaskInventoryEO.setCreateBy("admin"); + projectTaskInventoryEO.setSysOrgCode("A01"); + + if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOS)){ + //获取当前法规清单数据 启动的符合性流程数据 + List projectTaskInventoryDetailListTemp = projectTaskInventoryDetailEOS.stream().filter(taskInventoryDetail -> { + boolean flag = false; + if (StringUtils.equals(taskInventoryDetail.getProjectTaskInventoryId(), projectTaskInventoryEO.getProjectLawsInventoryId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailListTemp)){ + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : projectTaskInventoryDetailListTemp) { + //流程实例id + String actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId(); + if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){ + projectTaskInventoryEO.setDesignPId(actiProcInstId); + projectTaskInventoryEO.setDesignFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue()); + projectTaskInventoryEO.setDesignStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue()); + }else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){ + projectTaskInventoryEO.setPrehomoPId(actiProcInstId); + projectTaskInventoryEO.setPrehomoFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue()); + projectTaskInventoryEO.setPrehomoStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue()); + }else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){ + projectTaskInventoryEO.setVerifyPId(actiProcInstId); + projectTaskInventoryEO.setVerifyFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue()); + projectTaskInventoryEO.setVerifyStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue()); + } + } + } + } + + projectTaskInventoryEOAddList.add(projectTaskInventoryEO); + }); + this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOAddList); + } + return new Result<>().success("处理任务清单历史数据成功!"); + } + public void setSheetStyle(HSSFSheet sheet){ for (int i = 0; i <= 19; i++){ sheet.setColumnWidth(i,4000); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java index 99d255b6e..5d96f809a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java @@ -370,6 +370,9 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl projectTaskInventoryFeedbackEOS = this.baseMapper.selectList(queryWrapper); if(CollectionUtils.isNotEmpty(projectTaskInventoryFeedbackEOS)){ List idList = projectTaskInventoryFeedbackEOS.stream().distinct().map(ProjectTaskInventoryFeedbackEO::getProjectTaskInventoryId).collect(Collectors.toList()); + List userNameList = projectTaskInventoryFeedbackEOS.stream().distinct().map(ProjectTaskInventoryFeedbackEO::getCreateBy).collect(Collectors.toList()); + List userList = this.sysUserService.queryUserIdListByNameList(userNameList); + QueryWrapper inventoryDetailEOQueryWrapper = new QueryWrapper<>(); inventoryDetailEOQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getId,idList); List projectTaskInventoryDetailEOList = projectTaskInventoryDetailEOMapper.selectList(inventoryDetailEOQueryWrapper); @@ -386,6 +389,18 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl userListTemp = userList.stream().filter(user -> { + boolean flag = false; + if(StringUtils.equals(projectTaskInventoryFeedbackEO.getCreateBy(),user.getUsername())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(userListTemp)){ + projectTaskInventoryFeedbackEO.setUserId(userListTemp.get(0).getId()); + } + } } } return projectTaskInventoryFeedbackEOS; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java index 231f16f4c..5a6b0fd5c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java @@ -137,8 +137,8 @@ public class NcrTrackVO implements Serializable { private String projectTaskInventoryDetailId; //任务节点定义key private String taskDefinitionKey; - - + //是否是系统管理员角色 + private String administrator; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java new file mode 100644 index 000000000..571268627 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java @@ -0,0 +1,15 @@ +package com.jero.modules.project.vo; + +import lombok.Data; + + +@Data +public class ProjectTaskUrgVo { + + private String cut; + + private String projectLawsInventoryIds; + + private String type; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusMes.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusMes.java index c60926925..4e9585919 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusMes.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusMes.java @@ -35,6 +35,7 @@ public class BusMes { private String handlingTime; // 待办流程-批量办理专用 private String projectLawsInventoryIds; // 待办流程-批量办理专用 private String taskDefinitionKey; // 待办流程-批量办理专用 + private String cut;//中英文切换标识 public String getUserId() { @@ -193,4 +194,12 @@ public class BusMes { public void setTaskDefinitionKey(String taskDefinitionKey) { this.taskDefinitionKey = taskDefinitionKey; } + + public String getCut() { + return cut; + } + + public void setCut(String cut) { + this.cut = cut; + } } diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index a8968126c..71d3e0940 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1359,4 +1359,5 @@ module.exports = { Topping:'Topping', cancelTopping:'Cancel Topping', relatedProjectVersion:'Related project version', + CuiBan:'CuiBan', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 75ccb1096..b059e001a 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1460,4 +1460,5 @@ module.exports = { Topping:'置顶', cancelTopping:'取消置顶', relatedProjectVersion:'相关项目版本', + CuiBan:'催办', } \ No newline at end of file diff --git a/jero-web/src/components/CollectionType/index.vue b/jero-web/src/components/CollectionType/index.vue index 2b59628ee..0430379dd 100644 --- a/jero-web/src/components/CollectionType/index.vue +++ b/jero-web/src/components/CollectionType/index.vue @@ -29,6 +29,7 @@ :disabled="item.isLock == '1' ? true: false" :placeholder="$t('pleaseEnter')+$t('chinese')" @input="onInput" + :maxLength="1000" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" v-model="item.dataValue"/> diff --git a/jero-web/src/components/CollectionTypeDisabled/index.vue b/jero-web/src/components/CollectionTypeDisabled/index.vue index f5852220f..65c82d9ea 100644 --- a/jero-web/src/components/CollectionTypeDisabled/index.vue +++ b/jero-web/src/components/CollectionTypeDisabled/index.vue @@ -27,6 +27,7 @@ diff --git a/jero-web/src/components/OcrTable/index.vue b/jero-web/src/components/OcrTable/index.vue index ab2772555..cbab09ff6 100644 --- a/jero-web/src/components/OcrTable/index.vue +++ b/jero-web/src/components/OcrTable/index.vue @@ -21,11 +21,11 @@ - {{record.resultContent=='转换成功'?ol.text:''}} - + {{ol.text}} @@ -105,7 +105,8 @@ searchParmes: {}, loading: false, orderBy: '1', - orderByField: '' + orderByField: '', + administrators:false } }, mounted() { @@ -131,6 +132,14 @@ this.getData() this.getTableList() this.userData = this.userInfo() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, beforeDestroy(){ eventBUs.$off('searchQuery') diff --git a/jero-web/src/components/SplitTable/index.vue b/jero-web/src/components/SplitTable/index.vue index baf0b1142..434f7052a 100644 --- a/jero-web/src/components/SplitTable/index.vue +++ b/jero-web/src/components/SplitTable/index.vue @@ -18,7 +18,7 @@ - {{ol.text}} @@ -27,7 +27,7 @@ v-has="'split:sarFileSplitItems:page'"> {{ol.text}} - {{ol.text}} @@ -109,7 +109,8 @@ loading: false, orderBy: '1', userData: {}, - orderByField: '' + orderByField: '', + administrators:false, } }, mounted() { @@ -141,6 +142,14 @@ this.getData() this.getTableList() this.userData = this.userInfo() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, beforeDestroy() { eventBUs.$off('searchQuery') diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue index 32a5c2c11..3e26365cf 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue @@ -125,14 +125,16 @@ - - {{$t('addStandardInformation')}} - + + + {{$t('addStandardInformation')}} + + @@ -799,8 +801,9 @@ width: 120px; overflow: hidden; padding: 0 0; - float: right; + /*float: right;*/ text-align: center; + margin-top: 2px; } ::v-deep .box-button-index span { @@ -843,8 +846,9 @@ } .box-input-index { - width: calc(100% - 130px); + /*width: calc(100% - 130px);*/ display: inline-block; + width: 100%; height: 48px; margin-right: 10px; } diff --git a/jero-web/src/views/documentTools/virtualList/index.vue b/jero-web/src/views/documentTools/virtualList/index.vue index 3c4cbfda3..d329acfc3 100644 --- a/jero-web/src/views/documentTools/virtualList/index.vue +++ b/jero-web/src/views/documentTools/virtualList/index.vue @@ -65,16 +65,16 @@ {{$t('edit')}} {{record.state == 2 ? $t('release') : $t('withdraw')}} {{$t('maintenanceList')}} {{$t('deleteLib')}} @@ -244,13 +244,21 @@ scopedSlots: { customRender: 'operation' } } ], - queryParam: {} - + queryParam: {}, + administrators:false, } }, mounted() { this.getList() this.userData = this.userInfo() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, methods: { ...mapGetters(['userInfo']), diff --git a/jero-web/src/views/processCenter/components/circulationHistory.vue b/jero-web/src/views/processCenter/components/circulationHistory.vue index 9066f1762..c05bcabbd 100644 --- a/jero-web/src/views/processCenter/components/circulationHistory.vue +++ b/jero-web/src/views/processCenter/components/circulationHistory.vue @@ -107,7 +107,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/engineeringConfirmation.vue b/jero-web/src/views/processCenter/components/engineeringConfirmation.vue index 3028d1b80..34ffd4e5d 100644 --- a/jero-web/src/views/processCenter/components/engineeringConfirmation.vue +++ b/jero-web/src/views/processCenter/components/engineeringConfirmation.vue @@ -8,24 +8,24 @@
-
- - {{ $t('distributionEngineer') }} -
-
- - {{ $t('reminderHandling') }} -
-
- - {{ $t('addFeedback') }} -
+ + {{$t('distributionEngineer')}} + + + {{$t('addFeedback')}} + + + + + + +
{{$t('deleteLib')}} + + {{ $t('reminderHandling') }} + {{$t('dataLoading')}} - - - - - {{$t('reminder')}} - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -436,7 +441,7 @@ { title: this.$t('operation'), align: 'left', - width: 160, + width: 190, scopedSlots: { customRender: 'operation' } } ], @@ -722,7 +727,7 @@ _this.formInline.userId.splice(num, 1) _this.formInline.userId = _this.formInline.userId.join(',') _this.formInline = { ..._this.formInline } - if (id){ + if (id) { deleteAction('/project/projectTaskInventoryDetailEO/delete', { id: id }).then((res) => { if (res.success) { _this.$message.success(_this.$t('OperationSuccessful')) @@ -829,7 +834,7 @@ line-height: 80px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } @@ -960,4 +965,9 @@ line-height: 200px; text-align: center; } + + .header-btn { + height: 38px; + margin-left: 16px; + } \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedback.vue b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue index 85420a896..31501554b 100644 --- a/jero-web/src/views/processCenter/components/evaluatorFeedback.vue +++ b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue @@ -384,7 +384,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue index f611b6cbc..07c74ec95 100644 --- a/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue +++ b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue @@ -478,7 +478,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/examineInformation.vue b/jero-web/src/views/processCenter/components/examineInformation.vue index 385c860df..f95b8c6a1 100644 --- a/jero-web/src/views/processCenter/components/examineInformation.vue +++ b/jero-web/src/views/processCenter/components/examineInformation.vue @@ -223,7 +223,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/feedbackInformation.vue b/jero-web/src/views/processCenter/components/feedbackInformation.vue index 5b427777a..def1f809c 100644 --- a/jero-web/src/views/processCenter/components/feedbackInformation.vue +++ b/jero-web/src/views/processCenter/components/feedbackInformation.vue @@ -238,7 +238,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/projectInformation.vue b/jero-web/src/views/processCenter/components/projectInformation.vue index 8c0e6669a..c32129ffe 100644 --- a/jero-web/src/views/processCenter/components/projectInformation.vue +++ b/jero-web/src/views/processCenter/components/projectInformation.vue @@ -111,7 +111,7 @@ line-height: 80px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/regulatoryCirculationHistory.vue b/jero-web/src/views/processCenter/components/regulatoryCirculationHistory.vue index 48adc3d86..4fa35d3fa 100644 --- a/jero-web/src/views/processCenter/components/regulatoryCirculationHistory.vue +++ b/jero-web/src/views/processCenter/components/regulatoryCirculationHistory.vue @@ -127,7 +127,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue b/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue index 4a32cd3bb..17ca2a498 100644 --- a/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue +++ b/jero-web/src/views/processCenter/components/reviewedByThePersonInCharge.vue @@ -325,7 +325,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/standardContent.vue b/jero-web/src/views/processCenter/components/standardContent.vue index 846990863..be337f0b4 100644 --- a/jero-web/src/views/processCenter/components/standardContent.vue +++ b/jero-web/src/views/processCenter/components/standardContent.vue @@ -116,7 +116,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/components/taskCirculationHistory.vue b/jero-web/src/views/processCenter/components/taskCirculationHistory.vue index 145539870..c474671e7 100644 --- a/jero-web/src/views/processCenter/components/taskCirculationHistory.vue +++ b/jero-web/src/views/processCenter/components/taskCirculationHistory.vue @@ -110,7 +110,7 @@ line-height: 40px; .header-text { - font-size: 16px; + font-size: 18px; font-weight: 400; color: #000F16; } diff --git a/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue b/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue index caf22adff..6aac8943e 100644 --- a/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue @@ -339,7 +339,7 @@ }) } else { this.loading = false - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(res.message) } }) } diff --git a/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue b/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue index 387cf0d84..e24b572ec 100644 --- a/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/handshakeProcess/index.vue @@ -268,7 +268,7 @@ } } else { this.loading = false - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(res.message) } }) }, diff --git a/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue b/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue index 181c1f247..a49f48aa3 100644 --- a/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue @@ -209,7 +209,7 @@ }) } else { this.loading = false - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(res.message) } }) } diff --git a/jero-web/src/views/processCenter/processForm/taskListProcess/index.vue b/jero-web/src/views/processCenter/processForm/taskListProcess/index.vue index 891cd4aea..82d122de4 100644 --- a/jero-web/src/views/processCenter/processForm/taskListProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/taskListProcess/index.vue @@ -367,7 +367,7 @@ this.edit() } else { this.loading = false - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(res.message) } }) }, diff --git a/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue b/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue index c13d00931..88b5dc8a0 100644 --- a/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue +++ b/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue @@ -926,13 +926,16 @@ } else if (long && long === 'en-us') { this.cut = 'en' } + console.log(this.formInline) let query = { paramsManifestId: this.paramsManifest.id, cut: this.cut, + ...this.formInline, + ...this.queryParamQuery, ids: this.selectedRowKeys.join(','), exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')' } - let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip' + let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.xlsx' downloadFile('/params/collectManifest/exportDre', name , query , this.selectClear) }, getList(){ diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index 167691eb0..f4e32f59c 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -5,7 +5,7 @@ {{$t('basicInformationOfParameters')}}
- {{$t('edit')}} @@ -115,7 +115,8 @@ {{$t('regulatoryCertificationTaskPlan')}}
- {{$t('setting')}} @@ -183,6 +184,7 @@ data() { return { queryForm: {}, + administrators:false, activeKey: this.$t('CurrentStatusOfTheProject'), url: { queryById: 'project/projectLibraryBase/queryById', @@ -199,6 +201,14 @@ mounted() { this.getForm() this.getSetting() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, methods: { ...mapGetters(['userInfo']), diff --git a/jero-web/src/views/projectManagement/components/TaskList.vue b/jero-web/src/views/projectManagement/components/TaskList.vue index 5e0142614..f5162293b 100644 --- a/jero-web/src/views/projectManagement/components/TaskList.vue +++ b/jero-web/src/views/projectManagement/components/TaskList.vue @@ -76,10 +76,10 @@
- - - - +
+ + {{ $t('CuiBan') }} +
{{$t('BatchMaintenanceProgress')}} @@ -190,6 +190,7 @@ + + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index c09c6e5c9..0e0329c86 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -173,7 +173,8 @@
-
{{ $t('export') }} diff --git a/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue b/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue index 8de753c3c..a885f10b4 100644 --- a/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue +++ b/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue @@ -83,14 +83,14 @@
+ v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators">
+ v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators"> {{$t('batSetting')}}
@@ -388,13 +388,15 @@ queryCertificationEngineer: '/project/projectRelatedPersonnel/queryCertificationEngineer' }, selectedRowKeys: [], - dictOptionsValue: [] + dictOptionsValue: [], + administrators: false } }, computed: { columns() { let columnResult = JSON.parse(JSON.stringify(this.columnsAll)) - if (this.$route.query.studioEngineer != this.userInfo().id) { + if (this.$route.query.studioEngineer == this.userInfo().id || this.administrators) { + } else { for (var i = 0; i < columnResult.length; i++) { if (columnResult[i].title === this.$t('operation')) { columnResult.splice(i, 1) @@ -441,6 +443,14 @@ getData() { this.visible = true this.queryParam = {} + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } this.getList() this.queryCertificationEngineer() }, diff --git a/jero-web/src/views/projectManagement/components/projectStatus.vue b/jero-web/src/views/projectManagement/components/projectStatus.vue index 6e408344b..b76f998bc 100644 --- a/jero-web/src/views/projectManagement/components/projectStatus.vue +++ b/jero-web/src/views/projectManagement/components/projectStatus.vue @@ -1,11 +1,15 @@ @@ -189,7 +193,7 @@ // 引入搜索部门弹出框的组件 import departWindow from './DepartWindow' import { ACCESS_TOKEN } from '@/store/mutation-types' - import { getAction } from '@/api/manage' + import { getAction, postAction } from '@/api/manage' import { addUser, editUser, queryUserRole, queryall } from '@/api/api' import { disabledAuthFilter } from '@/utils/authFilter' import { duplicateCheck } from '@/api/api' @@ -347,6 +351,25 @@ } }) }, + handleSubmitOk() { + this.confirmLoading = true + let selectedRole = JSON.parse(JSON.stringify(this.selectedRole)) + let param = { + ids: this.userId, + selectedroles: selectedRole.join(',') + } + postAction('/sys/user/setRole', param).then((res) => { + if (res.success) { + this.$emit('ok') + this.confirmLoading = false + this.visible = false + this.$message.success(res.message) + } else { + this.confirmLoading = false + this.$message.warning(res.message) + } + }) + }, refresh() { this.selectedDepartKeys = [] this.checkedDepartKeys = [] @@ -383,7 +406,7 @@ that.visible = true that.model = Object.assign({}, record) that.$nextTick(() => { - that.form.setFieldsValue(pick(this.model, 'username', 'sex', 'realname', 'jobTitle','email', 'phone', 'activitiSync', 'workNo', 'telephone', 'post')) + that.form.setFieldsValue(pick(this.model, 'username', 'sex', 'realname', 'jobTitle', 'email', 'phone', 'activitiSync', 'workNo', 'telephone', 'post')) }) //身份为上级显示负责部门,否则不显示 if (this.model.userIdentity == '2') { @@ -728,7 +751,7 @@ .drawer-bootom-button { position: absolute; bottom: -8px; - z-index:100; + z-index: 100; width: 100%; border-top: 1px solid #e8e8e8; padding: 10px 16px; @@ -740,6 +763,6 @@ \ No newline at end of file