diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index c29d15589..4b9dff647 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -687,3 +687,22 @@ ALTER TABLE `project_certification_inventory` ADD COLUMN `platform_certification_inventory_id` varchar(36) NULL COMMENT '平台件-认证清单id' AFTER `remark`; +-- 参数模板管理 添加维护人 2024-01-05 未同步生产环境 +ALTER TABLE `params_template` +ADD COLUMN `maintainer` varchar(3000) NULL COMMENT '维护人' AFTER `status`; + + +-- 参数模板管理订阅表 2024-01-12 未同步生产环境 +CREATE TABLE `params_template_subscribe` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `params_template_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板id', + `user_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订阅人id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + + diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java index 2b56f4dd2..d224e58a8 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java @@ -7,7 +7,9 @@ package com.jero.common.constant.enums; */ public enum YesOrNoEnum { NO("否","NO","0"), - YES("是","YES","1"); + YES("是","YES","1"), + CANCEL("取消","",""), + ; String name; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/DicCodeEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/DicCodeEnum.java index f0f6d460a..b04c520eb 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/DicCodeEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/DicCodeEnum.java @@ -9,6 +9,7 @@ public enum DicCodeEnum { PROBLEM_TYPE("问题类型","1697066042058821634","wen4_ti2_lei4_xing2"), PROBLEM_PRIORITY("问题优先级","1716030928484503553","wen4_ti2_you1_xian1_ji2"), CERTIFICATION_PROGRESS("认证清单-认证进度","1524311122804346881","certification_progress"), + PROJECT_STATUS("项目状态","78bda155fe380b3b3f17551e88c284c6","project_status"), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java index c29dff603..f80c908d7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java @@ -167,4 +167,11 @@ public class AuthDummyInventoryInfoEO implements Serializable { @ApiModelProperty(value = "责任部门") @TableField(exist = false) private String firstLevelDutyTerritory; + + /**清单名称**/ + @TableField(exist = false) + private String authDummyInventoryBaseName; + /**清单创建人**/ + @TableField(exist = false) + private String creatUser; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyInventoryInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyInventoryInfoEOMapper.java index 156072cb8..3d048f678 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyInventoryInfoEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyInventoryInfoEOMapper.java @@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface AuthDummyInventoryInfoEOMapper extends BaseMapper { + List queryListByStandId(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyInventoryInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyInventoryInfoEOMapper.xml index f9e8d3f9e..679da41de 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyInventoryInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyInventoryInfoEOMapper.xml @@ -18,4 +18,18 @@ + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java index f13e5a99e..bef148978 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.dummy.entity.DummyInventoryInfoEO; import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.system.entity.SysCategory; import org.springframework.web.multipart.MultipartFile; @@ -147,4 +148,6 @@ public interface IAuthDummyInventoryInfoEOService extends IService acquireAdd(JSONObject json); List dataUniqueCheck(List addList, String cut, List result, String authDummyInventoryBaseId); + + List queryListByStandId(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java index 091cf57c6..4cfc8486b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java @@ -2250,4 +2250,11 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl queryListByStandId(String id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + List dataList = this.getBaseMapper().queryListByStandId(id); + return dataList; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java index 531e4aa80..6f10f611d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java @@ -475,6 +475,21 @@ public class ParamsCollectManifestEOController extends JeroController referParamsAll(String paramsManifestId, String sourceConfigId, String targetConfigId) { + boolean isSuccess = paramsCollectManifestEOService.referParamsAll(paramsManifestId, sourceConfigId, targetConfigId); + if (isSuccess) { + return Result.OK("引用参数成功!"); + } else { + return Result.error("引用参数失败!"); + } + } + /** * 引用参数 * @@ -729,4 +744,17 @@ public class ParamsCollectManifestEOController extends JeroController urge(@RequestBody Map map){ + String ids = (String)map.get("ids"); + String projectId = (String)map.get("projectId"); + String title = (String)map.get("title"); + String inventoryVersion = (String)map.get("inventoryVersion"); + String projectVersion = (String)map.get("projectVersion"); + String paramsManifestId = (String)map.get("paramsManifestId"); + paramsCollectManifestEOService.urge(ids,projectId,title,inventoryVersion,projectVersion,paramsManifestId); + return Result.OK("催办成功"); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java index fc2056eed..4a38d5790 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java @@ -164,8 +164,8 @@ public class ParamsManifestEOController extends JeroController updateModel(String mid, String version,String cid) { + @GetMapping(value = "/updateModel") + public Result updateModel(@RequestParam(name="mid",required=true) String mid, @RequestParam(name="version",required=true) String version,@RequestParam(name="cid",required=true) String cid) { boolean isSuccess = paramsManifestEOService.updateModel(mid,version, cid); if (isSuccess) { return Result.OK("更新成功!"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index 7c97b3e40..873f4b9eb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -169,7 +169,8 @@ pm.project_id as project_id, pm.create_time as create_time, pm.version as version, - concat(pni.project_name,'-',pyni.year_name,'-',plb.target_market,'-',pm.project_version) as project_name + concat(pni.project_name,'-',pyni.year_name,'-',plb.target_market,'-',pm.project_version) as project_name, + plb.project_status from params_manifest pm left join project_library_base as plb on plb.id = pm.project_id left join project_name_info as pni on plb.project_name_id = pni.id @@ -204,6 +205,7 @@ select tmp_tb.* from( select plb.id as project_id, + plb.project_version as project_version, target_market as targetMarket, concat(pni.project_name,'-',pyni.year_name) as project_name, concat(pni.project_name,'-',pyni.year_name) as project_name_en diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java index 9dd1382d5..c7089a3bf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java @@ -155,7 +155,8 @@ public interface IParamsCollectManifestEOService extends IService queryDutyTerritory(String id); Result queryDutyTerritoryHistory(String id); + + void urge(String ids,String projectId,String title,String inventoryVersion,String projectVersion,String paramsManifestId); } 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 dcaf163db..431d95982 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 @@ -1937,6 +1937,16 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl projectLibraryBaseList = projectLibraryBaseService.queryById(paramsManifestEO.getProjectId(), cut); +// if(ObjectUtils.isNotEmpty(projectLibraryBaseList)){ +// if(StringUtils.isBlank(projectLibraryBaseList.get(0).getProjectVersion())){ +// projectName = projectLibraryBaseList.get(0).getProjectName()+"-00"; +// }else{ +// projectName = projectLibraryBaseList.get(0).getProjectName()+"-"+projectLibraryBaseList.get(0).getProjectVersion(); +// } +// } + + List paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); List> listConfig = new LinkedList<>(); for (ParamsConfigEO paramsConfigEO : paramsConfigEOList) { @@ -2006,7 +2016,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId) + .notIn(ParamsCollectManifestEO::getControlType, ControlTypeEnum.Title.getValue()) + .orderByDesc(ParamsCollectManifestEO::getUpdateTime); // 按修改时间降序 + List paramsCollectManifestList = list(queryWrapper); + + List addConfigDataEOList = new ArrayList<>(); + for (ParamsCollectManifestEO paramsCollectManifest : paramsCollectManifestList) { + List sourceConfigDataEOList = this.paramsConfigDataEOService.queryListByConfigIdAndCollectManifestId(sourceConfigId, paramsCollectManifest.getId()); + if (CollectionUtils.isNotEmpty(sourceConfigDataEOList)) { + for (ParamsConfigDataEO sourceConfigDataEO : sourceConfigDataEOList) { + if (ObjectUtil.isNotEmpty(sourceConfigDataEO)) { + // 根据配置id、参数清单id,将被引用参数列的数据删掉,重新加 + QueryWrapper targetConfigDataRemoveWrap = new QueryWrapper<>(); + targetConfigDataRemoveWrap.lambda().eq(ParamsConfigDataEO::getParamsConfigId, targetConfigId); + targetConfigDataRemoveWrap.lambda().eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifest.getId()); + this.paramsConfigDataEOService.remove(targetConfigDataRemoveWrap); + + ParamsConfigDataEO targetConfigDataEO = new ParamsConfigDataEO(); + BeanUtils.copyProperties(sourceConfigDataEO, targetConfigDataEO); + targetConfigDataEO.setId(null); + targetConfigDataEO.setParamsConfigId(targetConfigId); + targetConfigDataEO.setParamsCollectManifestId(paramsCollectManifest.getId()); + addConfigDataEOList.add(targetConfigDataEO); + } + } + } + } + paramsConfigDataEOService.saveBatch(addConfigDataEOList); + return true; + } + @Override public boolean referParams(ParamsCollectManifestVO paramsCollectManifestVO) { if (StringUtils.isEmpty(paramsCollectManifestVO.getIds()) @@ -4804,6 +4849,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ParamsCollectManifestEO::getId,Arrays.asList(ids.split(","))); + List paramsCollectManifestEOList = this.list(wrapper); + if(ObjectUtils.isEmpty(paramsCollectManifestEOList)){ + return; + } + //催办状态为待工程接口人处理(给工程接口人发消息) + List paramsCollectManifestEOSdtList = paramsCollectManifestEOList.stream() + .filter(e -> CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())).collect(Collectors.toList()); + + //催办状态为待填写的(给填写人发消息) + List paramsCollectManifestEOFillList = paramsCollectManifestEOList.stream() + .filter(e -> CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())).collect(Collectors.toList()); + + List userNameList = new ArrayList<>(); + + //给工程接口人发消息 + if(ObjectUtils.isNotEmpty(paramsCollectManifestEOSdtList)){ + List sdtList = paramsCollectManifestEOSdtList.stream() + .filter(e -> StringUtils.isNotBlank(e.getSdt())).map(ParamsCollectManifestEO::getSdt).distinct().collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(sdtList)){ + userNameList.addAll(sdtList); + } + } + //给填写人发消息 + if(ObjectUtils.isNotEmpty(paramsCollectManifestEOFillList)){ + List dreList = paramsCollectManifestEOFillList.stream() + .filter(e -> StringUtils.isNotBlank(e.getDre())).map(ParamsCollectManifestEO::getDre).distinct().collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(dreList)){ + userNameList.addAll(dreList); + } + } + + //最新的截止时间 + List deadlineList = paramsCollectManifestEOList.stream() + .filter(e -> ObjectUtils.isNotEmpty(e.getDeadline())).map(ParamsCollectManifestEO::getDeadline).collect(Collectors.toList()); + Date deadline = null; + if(ObjectUtils.isNotEmpty(deadlineList)){ + Collections.sort(deadlineList, new Comparator() { + @Override + public int compare(Date o1, Date o2) { + return o2.compareTo(o1); + } + }); + deadline = deadlineList.get(0); + } + + if(ObjectUtils.isEmpty(userNameList)){ + return; + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysUser::getUsername,userNameList); + List sysUserList = sysUserService.list(queryWrapper); + + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String contentInfoFeiCn = "您好,您参与填写的" + inventoryNameCn + ",请及时查看处理,谢谢!"; + String contentInfoFeiEn = "Hello! Please fill in the " + inventoryNameEn + " in a timely manner. Thank you!"; + + String urlParamsStrCn = "title="+title + +"&id="+paramsManifestId + +"&version="+inventoryVersion + +"&projectName="+projectNameCn + +"&projectVersion="+projectVersion + +"&projectId="+projectId; + String urlParamsStrEn = "title="+title + +"&id="+paramsManifestId + +"&version="+inventoryVersion + +"&projectName="+projectNameEn + +"&projectVersion=" + +projectVersion + +"&projectId="+projectId; + String encodeCn = UriEncoder.encode(urlParamsStrCn); + String encodeEn = UriEncoder.encode(urlParamsStrEn); + + String hrefFeishuCn = backUrl + "/ParameterItemCollection?" + encodeCn; + String hrefFeishuEn = backUrl + "/ParameterItemCollection?" + encodeEn; + + + //飞书消息(模板-20230410) + Map params = new HashMap<>(); + params.put("contentInfoFeiCn",contentInfoFeiCn); + params.put("contentInfoFeiEn",contentInfoFeiEn); + params.put("projectCn",projectNameCn); + params.put("projectEn",projectNameEn); + params.put("initiatorCn",currentUser.getUsername()); + params.put("initiatorEn",currentUser.getUsername()); + if(ObjectUtil.isNotEmpty(deadline)){ + params.put("dueDate",sdf.format(deadline)); + } + params.put("back_url_cn",hrefFeishuCn); + params.put("back_url_en",hrefFeishuEn); + params.put("back_url_phone",backUrlPhone + "/phoneTaskData?activeTab=parametercollection"); + feishuService.sendMessageHomoParameterCollectionUrge(TemplateInfoEnum2.HOMO_PARAMETER_COLLECTION_RED.getValue(),params,null,sysUserList); + } catch (Exception e) { + log.error("飞书消息推送失败"); + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataEOServiceImpl.java index b2c4791f6..63ab80deb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataEOServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.cert.collect.entity.ParamsConfigDataEO; import com.jero.modules.cert.collect.mapper.ParamsConfigDataEOMapper; import com.jero.modules.cert.collect.service.IParamsConfigDataEOService; +import com.jero.modules.system.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -109,7 +110,9 @@ public class ParamsConfigDataEOServiceImpl extends ServiceImpl queryListByConfigIdAndCollectManifestId(String paramsConfigId, String paramsCollectManifestId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ParamsConfigDataEO::getParamsConfigId, paramsConfigId); - queryWrapper.eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifestId); + if(StringUtils.isNotBlank(paramsCollectManifestId)){ + queryWrapper.eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifestId); + } queryWrapper.orderByAsc(ParamsConfigDataEO::getOrderNum); return this.list(queryWrapper); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 5c94ddde5..303e0d8da 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -859,6 +859,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl regionList, String targetMarket) { + public String getTargetMarket(String cut, List regionList, String targetMarket) { //适用地区 List dictModelList = new ArrayList<>(); String region = ""; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java index 38fddf82e..c0679c874 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java @@ -6,10 +6,12 @@ import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.DictModel; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.cert.collect.service.IParamsConfigDataEOService; import com.jero.modules.cert.collect.service.IParamsConfigDataHistoryEOService; +import com.jero.modules.cert.collect.service.impl.ParamsManifestEOServiceImpl; import com.jero.modules.cert.report.entity.ParamsReportConfigEO; -import com.jero.common.system.vo.DictModel; import com.jero.modules.cert.report.entity.ParamsReportEO; import com.jero.modules.cert.report.entity.ParamsReportExportHistoryEO; import com.jero.modules.cert.report.service.IParamsReportConfigDataEOService; @@ -19,11 +21,14 @@ import com.jero.modules.cert.report.service.IParamsReportExportHistoryEOService; import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.service.ISysDictService; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.util.StringUtils; +import com.jero.modules.todoCenter.enums.FlagEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -38,12 +43,12 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.*; -import java.util.stream.Collectors; import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; @@ -80,6 +85,10 @@ public class ParamsReportEOController extends JeroController targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); List paramsReportEOS = paramsReportEOService.listInfo(paramsReportEO); @@ -137,6 +151,21 @@ public class ParamsReportEOController extends JeroController rows = pageList.getRecords(); +// List regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); for (ParamsReportEO row : rows) { + // +// String targetMarket = ""; +// if(CutEnum.CN.getValue().equals(paramsReportEO.getCut())){ +// targetMarket = paramsManifestEOService.getTargetMarket(CutEnum.CN.getValue(), regionList, row.getTargetMarket()); +// }else{ +// targetMarket = paramsManifestEOService.getTargetMarket(CutEnum.EN.getValue(), regionList, row.getTargetMarket()); +// } +// row.setTargetMarketName(targetMarket); + String version = ""; + if(StringUtils.isBlank(row.getProjectVersion())){ + version = "00"; + }else{ + version = row.getProjectVersion(); + } + row.setProjectNameAll(row.getProjectName() + "-" +row.getTargetMarket()+"-"+version); + // 项目名称-国家-清单名称 row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle()); // 设置配置 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java index aff2cbdb8..95e17bff8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java @@ -75,12 +75,18 @@ public class ParamsReportEO implements Serializable { @ApiModelProperty(value = "项目名称") private String projectName; + private String projectNameAll; + @ApiModelProperty(value = "清单标题") private String title; @ApiModelProperty(value = "目标市场") private String targetMarket; + @ApiModelProperty(value = "目标市场中英文转换") + @TableField(exist = false) + private String targetMarketName; + @ApiModelProperty(value = "相关项目版本") private String projectVersion; @@ -102,4 +108,14 @@ public class ParamsReportEO implements Serializable { @TableField(exist = false) private List> configList; + @ApiModelProperty(value = "认证工程师") + @TableField(exist = false) + private String certificationEngineer; + + @TableField(exist = false) + @ApiModelProperty(value = "权限标识-->有权限0,没有权限1") + private java.lang.String authorityFlag; + + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml index c898f1e31..7d58b6441 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml @@ -16,6 +16,7 @@ + @@ -30,7 +31,8 @@ pr.update_time as update_time, if (pm.title is not null, pm.title, pr.title) as title, if (plb.target_market is not null, plb.target_market, pr.target_market) as target_market, - if (pni.project_name is not null, concat(pni.project_name,'-', pyni.year_name), pr.project_name) as project_name + if (pni.project_name is not null, concat(pni.project_name,'-', pyni.year_name), pr.project_name) as project_name, + plb.certification_engineer as certification_engineer diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java index 13f88bac3..73b0663b4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java @@ -1,5 +1,7 @@ package com.jero.modules.cert.template.controller; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -7,17 +9,24 @@ import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.cert.template.entity.ParamsTemplateEO; +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; import com.jero.modules.cert.template.service.IParamsTemplateEOService; +import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; import com.jero.modules.dummy.enums.OrderEnum; -import com.jero.modules.ocr.util.LineHumpUtil; +import com.jero.modules.dummy.enums.ReadFlagEnum; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysDictItemMapper; +import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.todoCenter.enums.FlagEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -34,6 +43,8 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.Collator; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -57,6 +68,10 @@ public class ParamsTemplateEOController extends JeroController page = new Page(pageNo, pageSize); IPage pageList = paramsTemplateEOService.page(page, queryWrapper); //适用地区排序(特殊处理) pageList = regionSort(paramsTemplateEO, pageNo, pageSize, queryWrapper, pageList); + + //维护人以及权限处理 + maintainerAndauthority(pageList); + + //订阅 + subscribe(pageList); return Result.OK(cut, pageList); } + private void subscribe(IPage pageList) { + if(ObjectUtil.isNotEmpty(pageList)){ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List idList = pageList.getRecords().stream().map(ParamsTemplateEO::getId).collect(Collectors.toList()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,idList); + wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId()); + //当前登录人订阅的所有模板 + List paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper); + if(ObjectUtil.isNotEmpty(paramsTemplateSubscribeEOList)){ + for (ParamsTemplateEO record : pageList.getRecords()) { + List collect = paramsTemplateSubscribeEOList + .stream().filter(e -> currentUser.getId().equals(e.getUserId()) + && record.getId().equals(e.getParamsTemplateId())).collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(collect)){ + record.setReadFlag(ReadFlagEnum.READ.getValue()); + }else{ + record.setReadFlag(ReadFlagEnum.CANCEL_READ.getValue()); + } + } + } + } + } + + private void maintainerAndauthority(IPage pageList) { + //是否为超级管理员 + boolean administrator = sysUserService.isAdministrator(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List records = pageList.getRecords(); + if(ObjectUtil.isNotEmpty(records)){ + List userIdList = records.stream() + .filter(e -> StringUtils.isNotBlank(e.getMaintainer())) + .map(ParamsTemplateEO::getMaintainer).distinct().collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(userIdList)){ + List sysUserList = sysUserService.querySysUserListByIdList(userIdList); + for (ParamsTemplateEO record : records) { + if(StringUtils.isNotBlank(record.getMaintainer())){ + List userList = sysUserList.stream().filter(e -> record.getMaintainer().contains(e.getId())).collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(userList)){ + List collect = userList.stream().map(SysUser::getRealname).collect(Collectors.toList()); + record.setMaintainerName(StringUtils.join(collect,",")); + } + } + //权限 + if(administrator){ + record.setAuthorityFlag(FlagEnum.ZERO.getValue()); + }else{ + if(currentUser.getUsername().equals(record.getCreateBy()) + || (StringUtils.isNotBlank(record.getMaintainer()) && record.getMaintainer().contains(currentUser.getId()))){ + record.setAuthorityFlag(FlagEnum.ZERO.getValue()); + }else{ + record.setAuthorityFlag(FlagEnum.ONE.getValue()); + } + } + } + } + } + } + private IPage regionSort(ParamsTemplateEO paramsTemplateEO, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, QueryWrapper queryWrapper, IPage pageList) { if(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField()) && "region".equals(paramsTemplateEO.getOrderByField())){ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateSubscribeEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateSubscribeEOController.java new file mode 100644 index 000000000..69ef25e1c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateSubscribeEOController.java @@ -0,0 +1,187 @@ +package com.jero.modules.cert.template.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; +import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + + + /** + * @Description: 参数模板订阅 + * @Author: jero-boot + * @Date: 2024-01-12 + * @Version: V1.0 + */ +@Api(tags="参数模板订阅") +@RestController +@RequestMapping("template/paramsTemplateSubscribeEO") +@Slf4j +public class ParamsTemplateSubscribeEOController extends JeroController { + @Autowired + private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService; + + /** + * 分页列表查询 + * + * @param paramsTemplateSubscribeEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "参数模板订阅-分页列表查询") + @ApiOperation(value="参数模板订阅-分页列表查询", notes="参数模板订阅-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(paramsTemplateSubscribeEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = paramsTemplateSubscribeEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "参数模板订阅-列表查询") + @ApiOperation(value="参数模板订阅-列表查询", notes="参数模板订阅-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = paramsTemplateSubscribeEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param paramsTemplateSubscribeEO + * @return + */ + @AutoLog(value = "参数模板订阅-添加") + @ApiOperation(value="参数模板订阅-添加", notes="参数模板订阅-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) { + paramsTemplateSubscribeEOService.add(paramsTemplateSubscribeEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param paramsTemplateSubscribeEO + * @return + */ + @AutoLog(value = "参数模板订阅-编辑") + @ApiOperation(value="参数模板订阅-编辑", notes="参数模板订阅-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) { + paramsTemplateSubscribeEOService.editById(paramsTemplateSubscribeEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "去掉订阅") + @ApiOperation(value="去掉订阅", notes="去掉订阅") + @GetMapping(value = "/cancelSubscribe") + public Result cancelSubscribe(@RequestParam(name="id",required=true) String id) { + paramsTemplateSubscribeEOService.deleteById(id); + return Result.OK("去掉订阅成功!"); + } + + @AutoLog(value = "参数模板订阅-通过id删除") + @ApiOperation(value="参数模板订阅-通过id删除", notes="参数模板订阅-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + paramsTemplateSubscribeEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "参数模板订阅-批量删除") + @ApiOperation(value="参数模板订阅-批量删除", notes="参数模板订阅-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.paramsTemplateSubscribeEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "参数模板订阅-通过id查询") + @ApiOperation(value="参数模板订阅-通过id查询", notes="参数模板订阅-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ParamsTemplateSubscribeEO paramsTemplateSubscribeEO = paramsTemplateSubscribeEOService.queryById(id); + if(paramsTemplateSubscribeEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(paramsTemplateSubscribeEO); + } + + /** + * 导出excel + * + * @param request + * @param paramsTemplateSubscribeEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) { + return super.exportXls(request, paramsTemplateSubscribeEO, ParamsTemplateSubscribeEO.class, "参数模板订阅"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ParamsTemplateSubscribeEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java index c59b80358..f949624cd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java @@ -56,6 +56,18 @@ public class ParamsTemplateEO implements Serializable { @ApiModelProperty(value = "最新变更时间") private java.util.Date updateTime; + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "变更起始时间") + private java.util.Date updateTimeStart; + + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "变更结束时间") + private java.util.Date updateTimeEnd; + /**所属部门*/ @ApiModelProperty(value = "所属部门") private java.lang.String sysOrgCode; @@ -100,4 +112,21 @@ public class ParamsTemplateEO implements Serializable { @TableField(exist = false) private String orderByField; // 字段 + + @ApiModelProperty(value = "维护人") + private java.lang.String maintainer; + + @TableField(exist = false) + @ApiModelProperty(value = "维护人回显") + private java.lang.String maintainerName; + + @TableField(exist = false) + @ApiModelProperty(value = "权限标识-->有权限0,没有权限1") + private java.lang.String authorityFlag; + + @TableField(exist = false) + @ApiModelProperty(value = "订阅标识-->订阅0,取消订阅1") + private java.lang.String readFlag; + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateSubscribeEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateSubscribeEO.java new file mode 100644 index 000000000..c352e8b47 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateSubscribeEO.java @@ -0,0 +1,74 @@ +package com.jero.modules.cert.template.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 参数模板订阅 + * @Author: jero-boot + * @Date: 2024-01-12 + * @Version: V1.0 + */ +@Data +@TableName("params_template_subscribe") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="params_template_subscribe对象", description="参数模板订阅") +public class ParamsTemplateSubscribeEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + + /**模板id*/ + @Excel(name = "模板id", width = 15) + @ApiModelProperty(value = "模板id") + private java.lang.String paramsTemplateId; + + /**订阅人id*/ + @Excel(name = "订阅人id", width = 15) + @ApiModelProperty(value = "订阅人id") + private java.lang.String userId; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/ParamsTemplateSubscribeEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/ParamsTemplateSubscribeEOMapper.java new file mode 100644 index 000000000..3d45afeb3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/ParamsTemplateSubscribeEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.cert.template.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 参数模板订阅 + * @Author: jero-boot + * @Date: 2024-01-12 + * @Version: V1.0 + */ +public interface ParamsTemplateSubscribeEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsTemplateSubscribeEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsTemplateSubscribeEOMapper.xml new file mode 100644 index 000000000..e10d01289 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsTemplateSubscribeEOMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsTemplateSubscribeEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsTemplateSubscribeEOService.java new file mode 100644 index 000000000..e34a125d0 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsTemplateSubscribeEOService.java @@ -0,0 +1,61 @@ +package com.jero.modules.cert.template.service; + +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 参数模板订阅 + * @Author: jero-boot + * @Date: 2024-01-12 + * @Version: V1.0 + */ +public interface IParamsTemplateSubscribeEOService extends IService { + + /** + * 保存 + * + * @param paramsTemplateSubscribeEO + * @return + */ + void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO); + + /** + * 更新 + * + * @param paramsTemplateSubscribeEO + * @return + */ + void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ParamsTemplateSubscribeEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoPublishEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoPublishEOServiceImpl.java index e59bd62bc..175870917 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoPublishEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoPublishEOServiceImpl.java @@ -6,21 +6,38 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.cert.template.entity.*; +import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; +import com.jero.modules.cert.template.entity.CertCategoryParamsInfoPublishEO; +import com.jero.modules.cert.template.entity.ParamsInfoEO; +import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; +import com.jero.modules.cert.template.entity.ParamsTemplateEO; +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; import com.jero.modules.cert.template.mapper.ParamsInfoPublishEOMapper; -import com.jero.modules.cert.template.service.*; +import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService; +import com.jero.modules.cert.template.service.ICertCategoryParamsInfoPublishEOService; +import com.jero.modules.cert.template.service.IParamsInfoEOService; +import com.jero.modules.cert.template.service.IParamsInfoPublishEOService; +import com.jero.modules.cert.template.service.IParamsTemplateEOService; +import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService; +import com.jero.modules.feishu.enums.TemplateInfoEnum2; +import com.jero.modules.feishu.service.IFeishuService; import org.apache.commons.lang3.ObjectUtils; 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 org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; +import java.util.stream.Collectors; /** * @Description: 参数项基本信息表发布版 @@ -43,6 +60,15 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,paramsTemplateId); + List paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper); + if(ObjectUtils.isNotEmpty(paramsTemplateSubscribeEOList)){ + List userIdList = paramsTemplateSubscribeEOList + .stream().map(ParamsTemplateSubscribeEO::getUserId).distinct().collect(Collectors.toList()); + //飞书消息 + String url = backUrl + "/ParameterTemplateList?id=" + paramsTemplateId; + String contentInfoFeiShuCn = "参数模板" + source.getParamsTemplateName() + "已被修改,请及时查看确认修改影响。"; + String contentInfoFeiShu = "Parameter template " + source.getParamsTemplateName() + " has been modified,has been modified, please check in time to confirm the impact of the modification."; + + Map params = new HashMap<>(); + params.put("contentInfoFeiCn",contentInfoFeiShuCn); + params.put("contentInfoFeiEn",contentInfoFeiShu); + params.put("userIdList",userIdList); + params.put("back_url",url); + params.put("back_url_phone",backUrlPhone + "ParameterTemplateList?id=" + paramsTemplateId); + params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn()); + params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn()); + iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params); + + + + + } + + return newVersion; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsTemplateSubscribeEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsTemplateSubscribeEOServiceImpl.java new file mode 100644 index 000000000..ccb84d879 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsTemplateSubscribeEOServiceImpl.java @@ -0,0 +1,97 @@ +package com.jero.modules.cert.template.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO; +import com.jero.modules.cert.template.mapper.ParamsTemplateSubscribeEOMapper; +import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Description: 参数模板订阅 + * @Author: jero-boot + * @Date: 2024-01-12 + * @Version: V1.0 + */ +@Service +public class ParamsTemplateSubscribeEOServiceImpl extends ServiceImpl implements IParamsTemplateSubscribeEOService { + + /** + * 保存 + * + * @param paramsTemplateSubscribeEO + * @return + */ + @Override + public void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) { + Date now = new Date(); + paramsTemplateSubscribeEO.setCreateTime(now); + paramsTemplateSubscribeEO.setUpdateTime(now); + save(paramsTemplateSubscribeEO); + } + + /** + * 更新 + * + * @param paramsTemplateSubscribeEO + * @return + */ + @Override + public void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) { + Date now = new Date(); + paramsTemplateSubscribeEO.setUpdateTime(now); + saveOrUpdate(paramsTemplateSubscribeEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ParamsTemplateSubscribeEO::getParamsTemplateId,id); + wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId()); + this.remove(wrapper); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ParamsTemplateSubscribeEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 26505d519..c0cf92906 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -22,11 +22,14 @@ import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.es.JeroElasticsearchTemplate; import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryRuleEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.common.util.oss.CosBootUtil; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; +import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; +import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; import com.jero.modules.collection.entity.OnlCgformCollection; import com.jero.modules.collection.service.IOnlCgformCollectionService; import com.jero.modules.document.entity.BussDocumentLibraryEO; @@ -45,6 +48,8 @@ import com.jero.modules.document.vo.QueryConditionVO; import com.jero.modules.domain.entity.DomainUserRel; import com.jero.modules.domain.service.DomainUserRelService; import com.jero.modules.domain.service.impl.DomainManageServiceImpl; +import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.service.IDummyInventoryInfoEOService; import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsgVo; @@ -59,6 +64,15 @@ import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.phone.entity.RecentBrowse; import com.jero.modules.phone.enums.BrowseTypeEnum; import com.jero.modules.phone.service.IRecentBrowseService; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; +import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; +import com.jero.modules.project.enums.ComplianceFlowStatusEnum; +import com.jero.modules.project.service.IProjectCertificationInventoryEOService; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectLibraryBaseService; +import com.jero.modules.project.service.impl.ProjectLawsInventoryEOServiceImpl; import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.entity.SarFileSplitInfoEO; @@ -71,9 +85,11 @@ import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysCategoryTreeVO; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.service.ISysAnnouncementService; import com.jero.modules.system.service.ISysDepartService; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; @@ -200,6 +216,22 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> mapList = bussDocumentLibraryEOMapper.getListBySerialNumber(String.valueOf(dataList.get(0).get("corresponding_standard"))); + if(ObjectUtils.isNotEmpty(mapList)){ + dataList.get(0).put("corresponding_standard_id",mapList.get(0).get("id")); + } + } + if(ObjectUtils.isNotEmpty(dataList) && ObjectUtils.isNotEmpty(dataList.get(0).get("replace_standard"))){ + List> mapList = bussDocumentLibraryEOMapper.getListBySerialNumber(String.valueOf(dataList.get(0).get("replace_standard"))); + if(ObjectUtils.isNotEmpty(mapList)){ + dataList.get(0).put("replace_standard_id",mapList.get(0).get("id")); + } + } //查询所有 - List> mapList = bussDocumentLibraryEOMapper.selectMapsAll(null); +// List> mapList = bussDocumentLibraryEOMapper.selectMapsAll(id); //处理被代替标准和对应标准 - List replacedStandardNameList = new ArrayList<>();//被代替标准 - for (Map map : mapList) { - //被代替标准 - String replaceStandard = (String) map.get("replace_standard"); - if (StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String) dataList.get(0).get("serial_number"))) { - String serialNumber = (String) map.get("serial_number"); - replacedStandardNameList.add(serialNumber); - } - } - dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ",")); +// List replacedStandardNameList = new ArrayList<>();//被代替标准 +// for (Map map : mapList) { +// //被代替标准 +// String replaceStandard = (String) map.get("replace_standard"); +// if (StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String) dataList.get(0).get("serial_number"))) { +// String serialNumber = (String) map.get("serial_number"); +// replacedStandardNameList.add(serialNumber); +// } +// } +// dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ",")); List personKeyList = new ArrayList<>(); for (Map.Entry entry : dataList.get(0).entrySet()) { if(treeList.contains(entry.getKey())){ @@ -2414,6 +2459,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); //普通数据字典 @@ -2582,12 +2628,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> user2ProjectMap, String userId, String projectId) { + if (user2ProjectMap.containsKey(userId)) { + List proList = user2ProjectMap.get(userId); + if (!proList.contains(projectId)) { + proList.add(projectId); + } + } else { + List proList = new ArrayList<>(); + proList.add(projectId); + user2ProjectMap.put(userId, proList); + } + } + + private void notifyUpdateMsg(String id ,String serialNumber) { + Map> user2ProjectMap = new HashMap<>(); + Set projectIds = new HashSet<>(); + //法规清单 + List pliList = projectLawsInventoryEOService.queryProjectLawsInventoryInfoByStandId(id); + for (ProjectLawsInventoryEO pli : pliList) { + if (!((pli.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || pli.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) + && (pli.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || pli.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())))) { + if(StringUtils.isNotBlank(pli.getRegulationOwnerId())){ + addProjectByUser(user2ProjectMap,pli.getRegulationOwnerId(),pli.getProjectLibraryId()); + projectIds.add(pli.getProjectLibraryId()); + } + if(StringUtils.isNotBlank(pli.getDesignDutyId())){ + addProjectByUser(user2ProjectMap,pli.getDesignDutyId(),pli.getProjectLibraryId()); + projectIds.add(pli.getProjectLibraryId()); + } + if(StringUtils.isNotBlank(pli.getVerifyDutyId())){ + addProjectByUser(user2ProjectMap,pli.getVerifyDutyId(),pli.getProjectLibraryId()); + projectIds.add(pli.getProjectLibraryId()); + } + } + } + //认证清单 + List pciList = projectCertificationInventoryEOService.queryProjectCertificationInventoryByStandId(id); + for (ProjectCertificationInventoryEO pci : pciList) { + if ((!pci.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + || !pci.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue()))) { + if(StringUtils.isNotBlank(pci.getDutyPerson())){ + addProjectByUser(user2ProjectMap,pci.getDutyPerson(),pci.getProjectLibraryId()); + projectIds.add(pci.getProjectLibraryId()); + } + } + } + Map projectNameMap = new HashMap<>(); + List regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List projectList = projectLibraryBaseService.getListByIds(new ArrayList<>(projectIds)); + for (ProjectLibraryBase plb : projectList) { + String market = plb.getTargetMarket(); + List strlist = new LinkedList<>(); + for (String s : market.split(",")) { + List collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList()); + if (!collect.isEmpty()) { + strlist.add(collect.get(0).getTextEn()); + } + } + if (!strlist.isEmpty()) { + market = StringUtils.join(strlist, ","); + } + plb.setTargetMarket(market); + projectNameMap.put(plb.getId(),plb.getShowName()); + } + for (String userId : user2ProjectMap.keySet()) { + List userList = new ArrayList<>(); + userList.add(userId); + StringBuilder proSb = new StringBuilder(); + List projectIdList = user2ProjectMap.get(userId); + for (int i = 0; i < projectIdList.size(); i++) { + if (i == projectIdList.size() - 1) { + proSb.append(projectNameMap.get(projectIdList.get(i))); + } else { + proSb.append(projectNameMap.get(projectIdList.get(i))).append(","); + } + } + String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() + + " has been modified, please check in time to confirm the impact of the modification."; + String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。"; + try { + //跳转文档详情 + String url = backUrl + "/projectLibrary"; + FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName()); + feishuMsgVo.setUrl(url); + feishuMsgVo.setContentEn(contentInfoFei); + feishuMsgVo.setContent(contentInfoFeiCn); + Map params = new HashMap<>(); + params.put("contentInfoFeiCn",contentInfoFeiCn); + params.put("contentInfoFeiEn",contentInfoFei); + params.put("userIdList",userList); + params.put("back_url",url); + params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id); + params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn()); + params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn()); + iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params); + } catch (Exception e) { + log.error("文档修改飞书消息推送失败"); + } + } + //市场法规清单 + Map> user2DiiMap = new HashMap<>(); + List diiList = dummyInventoryInfoEOService.queryListByStandId(id); + for (DummyInventoryInfoEO dii : diiList) { + if(user2DiiMap.containsKey(dii.getCreatUser())){ + List diiEOList = user2DiiMap.get(dii.getCreatUser()); + diiEOList.add(dii); + }else{ + List diiEOList = new ArrayList<>(); + diiEOList.add(dii); + user2DiiMap.put(dii.getCreatUser(),diiEOList); + } + } + for (String userId : user2DiiMap.keySet()) { + List userList = new ArrayList<>(); + SysUser user = sysUserService.getUserByName(userId); + userList.add(user.getId()); + StringBuilder proSb = new StringBuilder(); + List diiEoList = user2DiiMap.get(userId); + for (int i = 0; i < diiEoList.size(); i++) { + if (i == diiEoList.size() - 1) { + proSb.append(diiEoList.get(i).getDummyInventoryBaseName()); + } else { + proSb.append(diiEoList.get(i).getDummyInventoryBaseName()).append(","); + } + } + String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() + + " has been modified, please check in time to confirm the impact of the modification."; + String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。"; + try { + //跳转文档详情 + String url = backUrl + "/virtualList"; + FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName()); + feishuMsgVo.setUrl(url); + feishuMsgVo.setContentEn(contentInfoFei); + feishuMsgVo.setContent(contentInfoFeiCn); + Map params = new HashMap<>(); + params.put("contentInfoFeiCn",contentInfoFeiCn); + params.put("contentInfoFeiEn",contentInfoFei); + params.put("userIdList",userList); + params.put("back_url",url); + params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id); + params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn()); + params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn()); + iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params); + } catch (Exception e) { + log.error("文档修改飞书消息推送失败"); + } + } + //市场认证清单 + + Map> user2AdiiMap = new HashMap<>(); + List adiiList = authDummyInventoryInfoEOService.queryListByStandId(id); + for (AuthDummyInventoryInfoEO adii : adiiList) { + if(user2AdiiMap.containsKey(adii.getCreatUser())){ + List adiiEOList = user2AdiiMap.get(adii.getCreatUser()); + adiiEOList.add(adii); + }else{ + List adiiEOList = new ArrayList<>(); + adiiEOList.add(adii); + user2AdiiMap.put(adii.getCreatUser(),adiiEOList); + } + } + for (String userId : user2AdiiMap.keySet()) { + List userList = new ArrayList<>(); + SysUser user = sysUserService.getUserByName(userId); + userList.add(user.getId()); + StringBuilder proSb = new StringBuilder(); + List diiEoList = user2AdiiMap.get(userId); + for (int i = 0; i < diiEoList.size(); i++) { + if (i == diiEoList.size() - 1) { + proSb.append(diiEoList.get(i).getAuthDummyInventoryBaseName()); + } else { + proSb.append(diiEoList.get(i).getAuthDummyInventoryBaseName()).append(","); + } + } + String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() + + " has been modified, please check in time to confirm the impact of the modification."; + String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。"; + try { + //跳转文档详情 + String url = backUrl + "/virtualAuthenticationList"; + FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName()); + feishuMsgVo.setUrl(url); + feishuMsgVo.setContentEn(contentInfoFei); + feishuMsgVo.setContent(contentInfoFeiCn); + Map params = new HashMap<>(); + params.put("contentInfoFeiCn",contentInfoFeiCn); + params.put("contentInfoFeiEn",contentInfoFei); + params.put("userIdList",userList); + params.put("back_url",url); + params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id); + params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn()); + params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn()); + iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params); + } catch (Exception e) { + log.error("文档修改飞书消息推送失败"); + } + } } private void homeDocumentDynamic(String cut, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java index e6a62aa7c..aef032bf4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java @@ -339,6 +339,14 @@ public class DummyInventoryInfoEO implements Serializable { @TableField(exist = false) private String firstLevelDutyTerritory; + /**清单名称**/ + @TableField(exist = false) + private String dummyInventoryBaseName; + /**清单创建人**/ + @TableField(exist = false) + private String creatUser; + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/ReadFlagEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/ReadFlagEnum.java index 65cb9382e..b88e27798 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/ReadFlagEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/ReadFlagEnum.java @@ -6,8 +6,8 @@ package com.jero.modules.dummy.enums; * @auth zhn */ public enum ReadFlagEnum { - CANCEL_READ("取消订阅","0"), - READ("订阅","1"); + CANCEL_READ("订阅","0"), + READ("取消订阅","1"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoEOMapper.java index fe8851a35..e370dbde4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoEOMapper.java @@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface DummyInventoryInfoEOMapper extends BaseMapper { + List queryListByStandId(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoEOMapper.xml index 17adb3c5e..4a0d62b99 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoEOMapper.xml @@ -42,4 +42,18 @@ + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java index 328f29093..b19b030da 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoEOService.java @@ -106,4 +106,6 @@ public interface IDummyInventoryInfoEOService extends IService queryListByStandId(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index d8fbb7cfc..a80e799b3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -3276,4 +3276,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl queryListByStandId(String id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + List dataList = this.getBaseMapper().queryListByStandId(id); + return dataList; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java index c3445c9e8..65c4c07ae 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java @@ -145,6 +145,9 @@ public enum TemplateInfoEnum2 { // 订阅通知 SUBSCRIPTION_INFORM("订阅通知","ctp_AArYnQds54ia","Subscription Notification"), // 已同步飞书开放平台 + //志江飞书测试 +// SUBSCRIPTION_INFORM("订阅通知","ctp_AAfvdg0Cy90I","Subscription Notification"), + // 转发推送 TRANSPOND_PUSH("转发推送","","Share / Forward"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java index 711a2ba28..f686bea25 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; +import com.jero.modules.system.entity.SysUser; import java.io.IOException; import java.util.List; @@ -165,4 +166,11 @@ public interface IFeishuService { */ public void sendMessageOtaManager(String templeteId, Map params); + /** + * 飞书消息模板--认证参数收集-催办(主题颜色为红色) + * @param templeteId + * @param params + */ + void sendMessageHomoParameterCollectionUrge(String templeteId,Map params,String flag,List sysUserList); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java index 5f2c5248a..da2ccea7a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java @@ -1635,6 +1635,53 @@ public class FeishuServiceImpl implements IFeishuService { } } } + /** + * 飞书消息模板--认证参数收集-催办(主题颜色为红色) + * @param templeteId + * @param params + */ + @Override + public void sendMessageHomoParameterCollectionUrge(String templeteId, Map params,String flag,List sysUserList) { + if (CollectionUtils.isNotEmpty(sysUserList)) { + String contentCn = (String) params.get("contentInfoFeiCn"); + String contentEn = (String) params.get("contentInfoFeiEn"); + String back_url_cn = (String) params.get("back_url_cn"); + String back_url_en = (String) params.get("back_url_en"); + String back_url_Phone = (String) params.get("back_url_phone"); + String projectCn = (String) params.get("projectCn"); + String projectEn = (String) params.get("projectEn"); + String initiatorCn = (String) params.get("initiatorCn"); + String initiatorEn = (String) params.get("initiatorEn"); + String dueDate = (String) params.get("dueDate"); + try { + for (SysUser sysUser : sysUserList) { + String thirdId = sysUser.getThirdId(); + if(StringUtils.isNotEmpty(thirdId)){ + // 根据结束时间进行排序,获取最近的时间,发消息时使用。 + JSONObject larkMesJson = new JSONObject(); + larkMesJson.put("template_id", templeteId); + larkMesJson.put("userIds",thirdId); + Map templateVariableMap = new HashMap<>(); + templateVariableMap.put("contentInfoFeiCn",contentCn); + templateVariableMap.put("contentInfoFeiEn",contentEn); + templateVariableMap.put("view_url_cn",back_url_cn); + templateVariableMap.put("view_url_en",back_url_en); + templateVariableMap.put("back_url_Phone",back_url_Phone); + templateVariableMap.put("projectCn"," " + projectCn); + templateVariableMap.put("projectEn"," " + projectEn); + templateVariableMap.put("initiatorCn"," " + initiatorCn); + templateVariableMap.put("initiatorEn"," " + initiatorEn); + templateVariableMap.put("dueDate"," " + dueDate); + + larkMesJson.put("templateVariableMap",templateVariableMap); + batchSendLarkCardMsgByTemplate2(larkMesJson); + } + } + } catch (Exception e) { + log.error("飞书消息推送失败"); + } + } + } /** * 飞书消息模板--OTA认证管理(主题颜色为红色或绿色) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java index 471b6b0f2..5420d6a85 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java @@ -104,16 +104,16 @@ public class MarketListVersionUpdateLogEOServiceImpl extends ServiceImpl getPageInfo(QueryWrapper queryWrapper, Integer pageNo, Integer pageSize) { - queryWrapper.lambda().orderByAsc(MarketListVersionUpdateLogEO::getCreateTime); + queryWrapper.lambda().orderByDesc(MarketListVersionUpdateLogEO::getCreateTime); List marketListVersionUpdateLogEOList = this.list(queryWrapper); - if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) - && marketListVersionUpdateLogEOList.size() == 1) { - return new Page<>(); - } - if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) - && marketListVersionUpdateLogEOList.size() > 1) { - marketListVersionUpdateLogEOList.remove(marketListVersionUpdateLogEOList.size() - 1); - } +// if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) +// && marketListVersionUpdateLogEOList.size() == 1) { +// return new Page<>(); +// } +// if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) +// && marketListVersionUpdateLogEOList.size() > 1) { +// marketListVersionUpdateLogEOList.remove(marketListVersionUpdateLogEOList.size() - 1); +// } IPage pageList = PageUtil.getPages(pageNo, pageSize, marketListVersionUpdateLogEOList); if (ObjectUtils.isNotEmpty(pageList.getRecords())) { List idList = pageList.getRecords().stream().map(MarketListVersionUpdateLogEO::getListId).distinct().collect(Collectors.toList()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageReceiveNsdpController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageReceiveNsdpController.java index c01815aec..29e29e565 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageReceiveNsdpController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaManageReceiveNsdpController.java @@ -1,25 +1,34 @@ package com.jero.modules.ota.controller; -import java.util.Arrays; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import com.jero.common.api.vo.Result; -import com.jero.common.system.query.QueryGenerator; -import com.jero.modules.ota.entity.OtaManageReceiveNsdp; -import com.jero.modules.ota.service.IOtaManageReceiveNsdpService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.ota.entity.OtaManageReceiveNsdp; +import com.jero.modules.ota.service.IOtaManageReceiveNsdpService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.jero.common.aspect.annotation.AutoLog; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; /** @@ -35,7 +44,7 @@ import com.jero.common.aspect.annotation.AutoLog; public class OtaManageReceiveNsdpController extends JeroController { @Autowired private IOtaManageReceiveNsdpService otaManageReceiveNsdpService; - + /** * 分页列表查询 * @@ -167,4 +176,15 @@ public class OtaManageReceiveNsdpController extends JeroController getReleaseDate(String releaseName,String vehicle) { + String time = otaManageReceiveNsdpService.getReleaseDate(releaseName,vehicle); + return Result.OK(time); + } + + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java index 938e33eb9..c6920d5ec 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaManageReceiveNsdpService.java @@ -63,4 +63,6 @@ public interface IOtaManageReceiveNsdpService extends IService getOtaManageReceiveNsdpSync(); List getListByReleaseName(String releaseName); + + String getReleaseDate(String releaseName,String vehicle); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java index 4942f81fb..2adbbd726 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaManageApplyEOServiceImpl.java @@ -901,7 +901,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OtaManageReceiveNsdp::getReleaseName, releaseName); + List list = this.list(queryWrapper); + if(ObjectUtils.isEmpty(list)){ + return releaseDate; + } + List otaManageReceiveNsdpList = list.stream().filter(e -> "PLM".equals(e.getDateName())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(otaManageReceiveNsdpList)){ + //根据适用车型过滤数据 + List otaManageReceiveNsdpListTemp = new ArrayList<>(); + for (OtaManageReceiveNsdp otaManageReceiveNsdp : otaManageReceiveNsdpList) { + String vehicleTemp = otaManageReceiveNsdp.getVehicle(); + if(StringUtils.isNotBlank(vehicleTemp)){ + //Aries G1.1 CN适用车型按此类格式进行拆分 + String[] splitArr = vehicleTemp.split(" "); + if(splitArr.length == 3 && vehicle.equals(splitArr[0]+" "+splitArr[2])){ + otaManageReceiveNsdpListTemp.add(otaManageReceiveNsdp); + } + } + } + if(ObjectUtils.isNotEmpty(otaManageReceiveNsdpListTemp)){ + Collections.sort(otaManageReceiveNsdpListTemp, (e1, e2) -> { + String e1ReleaseDate = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : ""; + String e2ReleaseDate = StringUtils.isNotBlank(e2.getReleaseDate()) ? e2.getReleaseDate() : ""; + return comparator.compare(e1ReleaseDate, e2ReleaseDate); + }); + releaseDate = otaManageReceiveNsdpListTemp.get(0).getReleaseDate(); + } + } + } + return releaseDate; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformProjectLawsInventoryEOController.java index 1b4ce37e9..89c9a7aab 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformProjectLawsInventoryEOController.java @@ -92,7 +92,7 @@ public class PlatformProjectLawsInventoryEOController extends JeroController> queryList(ProjectLawsInventoryEO projectLawsInventoryEO,HttpServletRequest req) { List list = platformProjectLawsInventoryEOService.queryList(projectLawsInventoryEO,req); return Result.OK(projectLawsInventoryEO.getCut(),list); @@ -354,7 +354,7 @@ public class PlatformProjectLawsInventoryEOController extends JeroController add(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException { platformIProjectLibraryBaseService.add(projectLibraryBase); @@ -98,7 +98,7 @@ public class PlatformProjectLibraryBaseController extends JeroController addChild(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException { platformIProjectLibraryBaseService.addChild(projectLibraryBase); @@ -113,7 +113,7 @@ public class PlatformProjectLibraryBaseController extends JeroController edit(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) { platformIProjectLibraryBaseService.editById(projectLibraryBase); @@ -128,7 +128,7 @@ public class PlatformProjectLibraryBaseController extends JeroController delete(@RequestParam(name="id",required=true) String id, @RequestParam(name="cut",required=true) String cut) { @@ -144,7 +144,7 @@ public class PlatformProjectLibraryBaseController extends JeroController deleteBatch(@RequestParam(name="ids",required=true) String ids, @RequestParam(name="cut",required=true) String cut) { @@ -160,7 +160,7 @@ public class PlatformProjectLibraryBaseController extends JeroController queryById(@RequestParam(name="id",required=true) String id, @RequestParam(name="cut",required=true) String cut) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java index 9f6459510..544527c17 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java @@ -9317,7 +9317,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap()); - if (StringUtils.isNotEmpty(flowStatusStr)) { - String finalflowStatusStr = flowStatusStr.replaceAll("\\*",""); - queryWrapper.and(query -> { - query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr); - if(StringUtils.contains(finalflowStatusStr,",")){ - String[] flowStatusArr = finalflowStatusStr.split(","); - for (String fs : flowStatusArr) { - query.or(q -> { - q.like("flow_status",fs); - }); - } - } - }); - } +// if (StringUtils.isNotEmpty(flowStatusStr)) { +// String finalflowStatusStr = flowStatusStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr); +// if(StringUtils.contains(finalflowStatusStr,",")){ +// String[] flowStatusArr = finalflowStatusStr.split(","); +// for (String fs : flowStatusArr) { +// query.or(q -> { +// q.like("flow_status",fs); +// }); +// } +// } +// }); +// } queryWrapper.orderByDesc("create_time"); Page page = new Page(pageNo, pageSize); - IPage pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut); - return Result.OK(cut,pageList); + List pageList = + this.projectCertificationInventoryEOService.getListInfo(queryWrapper,projectCertificationInventoryEO,cut,flowStatusStr); + Page pages = PageUtil.getPages(pageNo, pageSize, pageList); + + return Result.OK(cut,pages); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index e96cef2cc..fdd02cf82 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -19,6 +19,7 @@ import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.vo.ProjectTaskUrgVo; import com.jero.modules.system.entity.SysRole; +import com.jero.modules.system.entity.SysUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -587,4 +588,12 @@ public class ProjectLawsInventoryEOController extends JeroController list = projectLawsInventoryEOService.queryPlatformList(lawsInventoryId,flowFlag,cut); return Result.OK(list); } + + @AutoLog(value = "法规意见收集-评估人") + @ApiOperation(value="法规意见收集-评估人", notes="法规意见收集-评估人") + @GetMapping(value = "/getEvaluatorList") + public Result> getEvaluatorList(String documentId) { + List userList = projectLawsInventoryEOService.getEvaluatorList(documentId); + return Result.OK(userList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/CertificationInventoryJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/CertificationInventoryJob.java index 0cb504a45..bc4ab6fab 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/CertificationInventoryJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/CertificationInventoryJob.java @@ -2,6 +2,8 @@ package com.jero.modules.project.job; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.DateUtils; import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; @@ -12,6 +14,8 @@ import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; import com.jero.modules.project.service.IProjectCertificationInventoryEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -23,7 +27,14 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -43,10 +54,13 @@ public class CertificationInventoryJob implements Job { private ISysUserService sysUserService; @Autowired private IFeishuService feishuService; - + @Autowired + private ISysDictService sysDictService; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("认证清单,定时任务开启 ====================================================="); + List projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode()); + projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList()); List flowStatusList = new ArrayList<>(); flowStatusList.add(CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()); @@ -71,6 +85,11 @@ public class CertificationInventoryJob implements Job { if(CollectionUtils.isNotEmpty(projectCertificationInventoryEOS)){ ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ if(StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())){ // 消息提醒 认证工程师 认证清单数据 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/InventoryAffirmJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/InventoryAffirmJob.java index d77b9fa07..1e3ab47dc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/InventoryAffirmJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/InventoryAffirmJob.java @@ -1,29 +1,24 @@ 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.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.DateUtils; -import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.feishu.enums.TemplateInfoEnum2; 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.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; -import com.jero.modules.project.enums.InventoryAffirmStatusEnum; -import com.jero.modules.project.enums.JumpLinkEnum; -import com.jero.modules.project.enums.SendMsgFlagEnum; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; 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.IProjectLibraryBaseService; -import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.enums.ProjectRoleEnum; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -35,9 +30,14 @@ 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.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -75,6 +75,9 @@ public class InventoryAffirmJob implements Job { private IProjectLibraryBaseService projectLibraryBaseService; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + @Autowired + private ISysDictService sysDictService; + /** * 清单任务到达截止时间后,给用户发送消息 @@ -82,6 +85,8 @@ public class InventoryAffirmJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("清单确认流程,定时任务开启 ====================================================="); + List projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode()); + projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList()); // 获取法规清单 设计、验证符合性流程状态为 清单待校核的数据。 QueryWrapper queryWrapperInventory = new QueryWrapper<>(); queryWrapperInventory.and(queryWrapper -> { @@ -130,6 +135,11 @@ public class InventoryAffirmJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -162,6 +172,11 @@ public class InventoryAffirmJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -194,6 +209,11 @@ public class InventoryAffirmJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 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 594ad8c17..47f5813c4 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 @@ -1,22 +1,15 @@ 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.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.DateUtils; -import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; -import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.project.entity.ProjectNameInfoEO; -import com.jero.modules.project.entity.ProjectYearNameInfoEO; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; -import com.jero.modules.project.enums.InventoryAffirmStatusEnum; -import com.jero.modules.project.enums.JumpLinkEnum; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; @@ -24,6 +17,8 @@ import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.wkflow.enums.FlowTypeEnum; import lombok.extern.slf4j.Slf4j; @@ -36,9 +31,14 @@ 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.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Slf4j @@ -74,6 +74,8 @@ public class TaskAffirmJob implements Job { private IProjectLibraryBaseService projectLibraryBaseService; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + @Autowired + private ISysDictService sysDictService; /** @@ -84,6 +86,8 @@ public class TaskAffirmJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { log.info("任务确认流程,定时任务开启 ====================================================="); + List projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode()); + projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList()); QueryWrapper queryWrapperInventory = new QueryWrapper<>(); // 获取出 任务待确认 的数据(这个状态的数据任务在责任人上) @@ -137,6 +141,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Design Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -178,6 +187,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Design Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -219,6 +233,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Design Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -275,6 +294,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Validation Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -316,6 +340,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Validation Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -357,6 +386,11 @@ public class TaskAffirmJob implements Job { params.put("flowTypeEn","Validation Compliance Process"); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java index 868ced1ca..f5abab042 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java @@ -1,21 +1,15 @@ 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.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.DateUtils; -import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.feishu.enums.TemplateInfoEnum2; 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.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; -import com.jero.modules.project.enums.DesignComplianceStatusEnum; -import com.jero.modules.project.enums.JumpLinkEnum; -import com.jero.modules.project.enums.SendMsgFlagEnum; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; @@ -24,6 +18,8 @@ import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -35,9 +31,14 @@ 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.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -76,10 +77,14 @@ public class VerifyComplianceJob implements Job { @Autowired private IFeishuService feishuService; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + @Autowired + private ISysDictService sysDictService; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("验证符合性流程,定时任务开启 ====================================================="); + List projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode()); + projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList()); // 查询出 结果待提交的数据 QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); @@ -126,6 +131,11 @@ public class VerifyComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -166,6 +176,11 @@ public class VerifyComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -206,6 +221,11 @@ public class VerifyComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -245,6 +265,11 @@ public class VerifyComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 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 348b92929..cf5c65652 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,21 +1,15 @@ 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.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.DateUtils; -import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.feishu.enums.TemplateInfoEnum2; 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.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; -import com.jero.modules.project.enums.DesignComplianceStatusEnum; -import com.jero.modules.project.enums.JumpLinkEnum; -import com.jero.modules.project.enums.SendMsgFlagEnum; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; @@ -24,6 +18,8 @@ import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -35,9 +31,14 @@ 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.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -72,6 +73,8 @@ public class designComplianceJob implements Job { private ISysUserService sysUserService; @Autowired private IFeishuService feishuService; + @Autowired + private ISysDictService sysDictService; @Autowired private IProjectLibraryBaseService projectLibraryBaseService; @@ -80,6 +83,8 @@ public class designComplianceJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("设计符合性确认流程,定时任务开启 ====================================================="); + List projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode()); + projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList()); // 查询出 结果待提交的数据 QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); @@ -126,6 +131,11 @@ public class designComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -166,6 +176,11 @@ public class designComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -206,6 +221,11 @@ public class designComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 @@ -245,6 +265,11 @@ public class designComplianceJob implements Job { params.put("serialNumbers",serialNumbers); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus()) + && projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){ + //项目状态为取消时,不发提醒 + projectLibraryBase = null; + } if(ObjectUtils.isNotEmpty(projectLibraryBase)){ String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index fa799af82..b6f818389 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -128,6 +128,11 @@ public interface IProjectCertificationInventoryEOService extends IService getListInfo(QueryWrapper queryWrapper, + ProjectCertificationInventoryEO projectCertificationInventoryEO, + String cut, + String flowStatusStr); + void createQueryPermission(QueryWrapper queryWrapper, String roleCode); /** @@ -347,4 +352,6 @@ public interface IProjectCertificationInventoryEOService extends IService params); List connectPlatform(String id,String cut); + + List queryProjectCertificationInventoryByStandId(String id); } 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 17828c496..b50c9129d 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 @@ -14,6 +14,7 @@ import com.jero.modules.project.vo.ProjectTaskUrgVo; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysRole; +import com.jero.modules.system.entity.SysUser; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.entity.ProcessInfoEO; import org.springframework.web.multipart.MultipartFile; @@ -104,6 +105,7 @@ public interface IProjectLawsInventoryEOService extends IService queryProjectLawsInventoryInfoById(Map params); + List queryProjectLawsInventoryInfoByStandId(String standId); void copyInfoByIds(String ids,String operateType); @@ -352,4 +354,6 @@ public interface IProjectLawsInventoryEOService extends IService queryPlatformList(String lawsInventoryId,String flowFlag,String cut); + + List getEvaluatorList(String documentId); } 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 0819dd09f..55def604b 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 @@ -149,6 +149,7 @@ public class NcrTrackServiceImpl extends ServiceImpl prehomoName = "PreHomo confirmation"; verifyName = "Verification of compliance process"; } + List problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode()); List dictItemList = sysDictItemServiceImpl.selectItemsAll(); Set userIdSet = new HashSet<>(); for (NcrTrackVO trackVO : infoList) { @@ -381,7 +382,18 @@ public class NcrTrackServiceImpl extends ServiceImpl //条件查询 trackVOList = parameterQuery(ncrTrackVO, trackVOList); //表头排序 - heartSort(ncrTrackVO, trackVOList); + heartSort(ncrTrackVO, trackVOList,problemPriorityList,ncrTrackVO.getCut()); + if(StringUtils.isBlank(ncrTrackVO.getOrderByField())){ + Collections.sort(trackVOList, new Comparator() { + @Override + public int compare(NcrTrackVO o1, NcrTrackVO o2) { + if (o1.getUpdateTime() == null || o2.getUpdateTime() == null) { + return 0; + } + return o2.getUpdateTime().compareTo(o1.getUpdateTime()); + } + }); + } for (NcrTrackVO trackVO : trackVOList) { trackVO.setAdministrator(administrator ? "true" : "false"); } @@ -393,8 +405,37 @@ public class NcrTrackServiceImpl extends ServiceImpl return problemManagement; } - private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList) { + private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList,List problemPriorityList,String cut) { Collator comparator = Collator.getInstance(Locale.CHINESE); + if("problemPriority".equals(ncrTrackVO.getOrderByField())){ + //优先级数据字典转换 + for (NcrTrackVO trackVO : trackVOList) { + String problemPriority = trackVO.getProblemPriority(); + if(StringUtils.isNotBlank(problemPriority)){ + List collect = problemPriorityList.stream().filter(e -> problemPriority.equals(e.getValue())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + if(CutEnum.CN.getValue().equals(cut)){ + trackVO.setProblemPriorityName(collect.get(0).getText()); + }else{ + trackVO.setProblemPriorityName(collect.get(0).getTextEn()); + } + } + } + } + if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : ""; + return comparator.compare(e1Field, e2Field); + }); + } else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) { + Collections.sort(trackVOList, (e1, e2) -> { + String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : ""; + String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : ""; + return comparator.compare(e2Field, e1Field); + }); + } + } if ("title".equals(ncrTrackVO.getOrderByField())) { if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) { Collections.sort(trackVOList, (e1, e2) -> { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProblemManagementEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProblemManagementEOServiceImpl.java index 8cde535b8..bc1f766df 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProblemManagementEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProblemManagementEOServiceImpl.java @@ -107,6 +107,8 @@ public class ProblemManagementEOServiceImpl extends ServiceImpl progressTrackingList = problemManagementEO.getProgressTrackingList(); List collect = progressTrackingList.stream().map(ProblemManagementVO::getProgressTracking).collect(Collectors.toList()); problemManagementEO.setProgressTracking(StringUtils.join(collect,",")); + }else{ + problemManagementEO.setProgressTracking(""); } if(!problemManagementEO.getApprovalEvidenceLinkList().isEmpty()){ List approvalEvidenceLinkList = problemManagementEO.getApprovalEvidenceLinkList(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 5062b405c..d3fa607e4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -1960,6 +1960,72 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl getListInfo(QueryWrapper queryWrapper, + ProjectCertificationInventoryEO projectCertificationInventoryEO, + String cut, + String flowStatusStr) { + + String roleCode = projectCertificationInventoryEO.getRoleCode(); + // 创建查询权限 + this.createQueryPermission(queryWrapper,roleCode); + // 根据一级责任领域(统计节点),查询该一级责任领域下所有子责任领域的法规清单数据。 + String dutyTerritoryStr = ""; + if(StringUtils.isNotEmpty(projectCertificationInventoryEO.getFirstLevelDutyTerritory())){ + List sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); + List dutyTerritorys = new ArrayList<>(); + Map> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems); + String[] firstLevelDTArr = projectCertificationInventoryEO.getFirstLevelDutyTerritory().split(","); + for (String firstLevelDT : firstLevelDTArr){ + if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){ + dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT)); + } + } + if(CollectionUtils.isNotEmpty(dutyTerritorys)){ + dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(",")); + } + } + if (StringUtils.isNotEmpty(dutyTerritoryStr)) { + String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*",""); + queryWrapper.and(query -> { + query.lambda().like(ProjectCertificationInventoryEO::getDutyTerritory, finalDutyTerritoryStr); + if(StringUtils.contains(finalDutyTerritoryStr,",")){ + String[] dutyTerritoryArr = finalDutyTerritoryStr.split(","); + for (String duty : dutyTerritoryArr) { + query.or(q -> { + q.like("duty_territory",duty); + }); + } + } + }); + } + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + int isProjectRole = Integer.parseInt(roleCode); + if (isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + queryWrapper.and(query -> { + for (String duty : dutyTerritoryList) { + query.or(q -> { + q.like("duty_territory", duty); + }); + } + }); + } + } + List pageList = this.list(queryWrapper); + //平台件数据处理 + platformDispose(cut,projectCertificationInventoryEO, pageList); + //流程状态搜索 + if(StringUtils.isNotBlank(flowStatusStr)){ + pageList = pageList.stream().filter(e->flowStatusStr.contains(e.getFlowStatus())).collect(Collectors.toList()); + } + + this.disposeData(pageList,cut); + List list = this.hearSort(projectCertificationInventoryEO, pageList); + return list; + } private void platformDispose(String cut,ProjectCertificationInventoryEO projectCertificationInventoryEO, List result) { List lawsInventoryPlatformEOList = new ArrayList<>(); List projectCertificationInventoryEOS = new ArrayList<>(); @@ -5516,6 +5582,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl dataList = new ArrayList<>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO,request.getParameterMap()); queryWrapper.in("project_library_id",projectCertificationInventoryEO.getProjectLibraryId()); @@ -5535,8 +5606,62 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); + List dutyTerritorys = new ArrayList<>(); + Map> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems); + String[] firstLevelDTArr = projectCertificationInventoryEO.getFirstLevelDutyTerritory().split(","); + for (String firstLevelDT : firstLevelDTArr){ + if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){ + dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT)); + } + } + if(CollectionUtils.isNotEmpty(dutyTerritorys)){ + dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(",")); + } + } + if (StringUtils.isNotEmpty(dutyTerritoryStr)) { + String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*",""); + queryWrapper.and(query -> { + query.lambda().like(ProjectCertificationInventoryEO::getDutyTerritory, finalDutyTerritoryStr); + if(StringUtils.contains(finalDutyTerritoryStr,",")){ + String[] dutyTerritoryArr = finalDutyTerritoryStr.split(","); + for (String duty : dutyTerritoryArr) { + query.or(q -> { + q.like("duty_territory",duty); + }); + } + } + }); + } + int isProjectRole = Integer.parseInt(roleCode); + if (isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + queryWrapper.and(query -> { + for (String duty : dutyTerritoryList) { + query.or(q -> { + q.like("duty_territory", duty); + }); + } + }); + } + } + + //导出的数据 dataList = this.list(queryWrapper); + //平台件数据处理 + platformDispose(projectCertificationInventoryEO.getCut(),projectCertificationInventoryEO, dataList); + //流程状态搜索 + if(StringUtils.isNotBlank(flowStatusStr)){ + String finalFlowStatusStr = flowStatusStr; + dataList = dataList.stream().filter(e-> finalFlowStatusStr.contains(e.getFlowStatus())).collect(Collectors.toList()); + } + //文件 List fileInfos = getOssFiles(dataList); //处理文件名称 @@ -7311,7 +7436,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl projectLibraryBaseList = new ArrayList<>(); - if(!certificationInventoryEOList.isEmpty()){ + if(!certificationInventoryEOList.isEmpty() && !certificationInventoryEOS.isEmpty()){ List projectIdList = certificationInventoryEOS.stream().map(ProjectCertificationInventoryEO::getProjectLibraryId).distinct().collect(Collectors.toList()); LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); wrapper2.in(ProjectLibraryBase::getId,projectIdList); @@ -7515,25 +7640,12 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl queryProjectCertificationInventoryByStandId(String id) { + QueryWrapper wra = new QueryWrapper<>(); + wra.lambda().eq(ProjectCertificationInventoryEO::getBussDocumentLibraryId, id); + return this.list(wra); + } // @Override // public void listPlatform(Map params) { 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 2effaaaf2..38903f0ac 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 @@ -37,6 +37,7 @@ import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; +import com.jero.common.util.PageUtil; import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; @@ -1560,10 +1561,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl docList = bussDocumentLibraryEOService.listByIds(standIdList); for (ProjectLawsInventoryEO projectLawsInventoryEO : list) { //处理编号,法规清单中若状态为符合时则编号标题不再随文档库变化 - if ((!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) - || !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) - || !projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()) - || !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) + if (!((projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) + && + (projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()))) && StringUtils.isNotBlank(projectLawsInventoryEO.getStandId())) { BussDocumentLibraryEO docObj = null; for (BussDocumentLibraryEO obj : docList) { @@ -2993,6 +2995,13 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl().success("调用成功!"); } + @Override + public List queryProjectLawsInventoryInfoByStandId(String standId) { + QueryWrapper wra = new QueryWrapper<>(); + wra.lambda().eq(ProjectLawsInventoryEO::getStandId, standId); + return this.list(wra); + } + @Override public List queryProjectLawsInventoryInfoById(Map params) { @@ -3966,8 +3975,59 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataList = new ArrayList<>(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String dutyTerritoryStr = ""; + if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) { + dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory(); + projectLawsInventoryEO.setDutyTerritory(null); + } + String designFlowStatusStr = ""; + if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignFlowStatus())) { + designFlowStatusStr = projectLawsInventoryEO.getDesignFlowStatus(); + projectLawsInventoryEO.setDesignFlowStatus(null); + } + String verifyFlowStatusStr = ""; + if (StringUtils.isNotEmpty(projectLawsInventoryEO.getVerifyFlowStatus())) { + verifyFlowStatusStr = projectLawsInventoryEO.getVerifyFlowStatus(); + projectLawsInventoryEO.setVerifyFlowStatus(null); + } + + // 根据一级责任领域(统计节点),查询该一级责任领域下所有子责任领域的法规清单数据。 + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getFirstLevelDutyTerritory())){ + List sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); + List dutyTerritorys = new ArrayList<>(); + Map> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems); + String[] firstLevelDTArr = projectLawsInventoryEO.getFirstLevelDutyTerritory().split(","); + for (String firstLevelDT : firstLevelDTArr){ + if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){ + dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT)); + } + } + if(CollectionUtils.isNotEmpty(dutyTerritorys)){ + dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(",")); + } + } + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, request.getParameterMap()); + if (StringUtils.isNotEmpty(dutyTerritoryStr)) { + String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*",""); + queryWrapper.and(query -> { + query.lambda().like(ProjectLawsInventoryEO::getDutyTerritory, finalDutyTerritoryStr); + if(StringUtils.contains(finalDutyTerritoryStr,",")){ + String[] dutyTerritoryArr = finalDutyTerritoryStr.split(","); + for (String duty : dutyTerritoryArr) { + query.or(q -> { + q.like("duty_territory",duty); + }); + } + } + }); + } + + + + List dataList = new ArrayList<>(); + queryWrapper.in("project_library_id", projectLawsInventoryEO.getProjectLibraryId()); if (StringUtils.isNotBlank(projectLawsInventoryEO.getIds())) { queryWrapper.in("id", Arrays.asList(projectLawsInventoryEO.getIds().split(","))); @@ -3977,15 +4037,32 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { q.eq("regulation_owner_id", currentUser.getId()). or().eq("homologation_engineer_id", currentUser.getId()); }); } + if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + queryWrapper.in("duty_territory", dutyTerritoryList); + } + } //导出的数据 dataList = this.list(queryWrapper); + //关联平台件数据 + platformDispose(projectLawsInventoryEO, dataList); + if(StringUtils.isNotBlank(designFlowStatusStr)){ + String finalDesignFlowStatusStr = designFlowStatusStr; + dataList = dataList.stream().filter(e-> finalDesignFlowStatusStr.contains(e.getDesignFlowStatus())).collect(Collectors.toList()); + } + if(StringUtils.isNotBlank(verifyFlowStatusStr)){ + String finalVerifyFlowStatusStr = verifyFlowStatusStr; + dataList = dataList.stream().filter(e-> finalVerifyFlowStatusStr.contains(e.getVerifyFlowStatus())).collect(Collectors.toList()); + } //文件 List fileInfos = getOssFiles(dataList); @@ -4009,7 +4086,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { - query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr); - if(StringUtils.contains(finalDesignFlowStatusStr,",")){ - String[] designFlowStatusArr = finalDesignFlowStatusStr.split(","); - for (String dsf : designFlowStatusArr) { - query.or(q -> { - q.like("design_flow_status",dsf); - }); - } - } - }); - } - if (StringUtils.isNotEmpty(verifyFlowStatusStr)) { - String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*",""); - queryWrapper.and(query -> { - query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr); - if(StringUtils.contains(finalVerifyFlowStatusStr,",")){ - String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(","); - for (String vsf : verifyFlowStatusArr) { - query.or(q -> { - q.like("verify_flow_status",vsf); - }); - } - } - }); - } +// if (StringUtils.isNotEmpty(designFlowStatusStr)) { +// String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr); +// if(StringUtils.contains(finalDesignFlowStatusStr,",")){ +// String[] designFlowStatusArr = finalDesignFlowStatusStr.split(","); +// for (String dsf : designFlowStatusArr) { +// query.or(q -> { +// q.like("design_flow_status",dsf); +// }); +// } +// } +// }); +// } +// if (StringUtils.isNotEmpty(verifyFlowStatusStr)) { +// String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr); +// if(StringUtils.contains(finalVerifyFlowStatusStr,",")){ +// String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(","); +// for (String vsf : verifyFlowStatusArr) { +// query.or(q -> { +// q.like("verify_flow_status",vsf); +// }); +// } +// } +// }); +// } if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue()) && isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue()) @@ -12269,19 +12345,155 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl page = new Page(pageNo, pageSize); - IPage pageList = this.page(page, queryWrapper); - List result = pageList.getRecords(); - + List list = this.list(queryWrapper); //关联平台件数据 - platformDispose(projectLawsInventoryEO, result); + platformDispose(projectLawsInventoryEO, list); - this.dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); - this.dataDictDispose(result,projectLawsInventoryEO.getCut()); + List lawsInventoryEOList = new ArrayList<>(); + if(StringUtils.isNotBlank(designFlowStatusStr)){ + for (ProjectLawsInventoryEO lawsInventoryEO : list) { + if(designFlowStatusStr.contains(lawsInventoryEO.getDesignFlowStatus())){ + lawsInventoryEOList.add(lawsInventoryEO); + } + } + } + if(StringUtils.isNotBlank(verifyFlowStatusStr)){ + for (ProjectLawsInventoryEO lawsInventoryEO : list) { + if(verifyFlowStatusStr.contains(lawsInventoryEO.getVerifyFlowStatus())){ + lawsInventoryEOList.add(lawsInventoryEO); + } + } + } + if(StringUtils.isBlank(designFlowStatusStr) && StringUtils.isBlank(verifyFlowStatusStr)){ + lawsInventoryEOList = list; + } + + this.dataDispose(lawsInventoryEOList,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); + this.dataDictDispose(lawsInventoryEOList,projectLawsInventoryEO.getCut()); //表头排序 - result = this.hearSort(projectLawsInventoryEO, result); + lawsInventoryEOList = this.hearSort(projectLawsInventoryEO, lawsInventoryEOList); + + Page pageList = PageUtil.getPages(pageNo, pageSize, lawsInventoryEOList); + return pageList; } +// @Override +// public IPage queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req) { +// String dutyTerritoryStr = ""; +// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) { +// dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory(); +// projectLawsInventoryEO.setDutyTerritory(null); +// } +// String designFlowStatusStr = ""; +// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignFlowStatus())) { +// designFlowStatusStr = projectLawsInventoryEO.getDesignFlowStatus(); +// projectLawsInventoryEO.setDesignFlowStatus(null); +// } +// String verifyFlowStatusStr = ""; +// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getVerifyFlowStatus())) { +// verifyFlowStatusStr = projectLawsInventoryEO.getVerifyFlowStatus(); +// projectLawsInventoryEO.setVerifyFlowStatus(null); +// } +// +// // 根据一级责任领域(统计节点),查询该一级责任领域下所有子责任领域的法规清单数据。 +// if(StringUtils.isNotEmpty(projectLawsInventoryEO.getFirstLevelDutyTerritory())){ +// List sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); +// List dutyTerritorys = new ArrayList<>(); +// Map> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems); +// String[] firstLevelDTArr = projectLawsInventoryEO.getFirstLevelDutyTerritory().split(","); +// for (String firstLevelDT : firstLevelDTArr){ +// if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){ +// dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT)); +// } +// } +// if(CollectionUtils.isNotEmpty(dutyTerritorys)){ +// dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(",")); +// } +// } +// +// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, req.getParameterMap()); +// queryWrapper.orderByDesc("create_time","serial_number"); +// +// if (StringUtils.isNotEmpty(dutyTerritoryStr)) { +// String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectLawsInventoryEO::getDutyTerritory, finalDutyTerritoryStr); +// if(StringUtils.contains(finalDutyTerritoryStr,",")){ +// String[] dutyTerritoryArr = finalDutyTerritoryStr.split(","); +// for (String duty : dutyTerritoryArr) { +// query.or(q -> { +// q.like("duty_territory",duty); +// }); +// } +// } +// }); +// } +// +// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode()); +// if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) { +// //查当前用户Viewer对应责任领域 +// List dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); +// if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { +// queryWrapper.and(query -> { +// for (String duty : dutyTerritoryList) { +// query.or(q -> { +// q.like("duty_territory", duty); +// }); +// } +// }); +// } +// } +// if (StringUtils.isNotEmpty(designFlowStatusStr)) { +// String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr); +// if(StringUtils.contains(finalDesignFlowStatusStr,",")){ +// String[] designFlowStatusArr = finalDesignFlowStatusStr.split(","); +// for (String dsf : designFlowStatusArr) { +// query.or(q -> { +// q.like("design_flow_status",dsf); +// }); +// } +// } +// }); +// } +// if (StringUtils.isNotEmpty(verifyFlowStatusStr)) { +// String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*",""); +// queryWrapper.and(query -> { +// query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr); +// if(StringUtils.contains(finalVerifyFlowStatusStr,",")){ +// String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(","); +// for (String vsf : verifyFlowStatusArr) { +// query.or(q -> { +// q.like("verify_flow_status",vsf); +// }); +// } +// } +// }); +// } +// +// if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue()) +// && isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue()) +// && isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue()) +// && isProjectRole != Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())){ +// // 创建查询权限 +// this.createQueryPermission(isProjectRole,currentUser,queryWrapper); +// } +// +// Page page = new Page(pageNo, pageSize); +// IPage pageList = this.page(page, queryWrapper); +// List result = pageList.getRecords(); +// +// //关联平台件数据 +// platformDispose(projectLawsInventoryEO, result); +// +// this.dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); +// this.dataDictDispose(result,projectLawsInventoryEO.getCut()); +// //表头排序 +// result = this.hearSort(projectLawsInventoryEO, result); +// return pageList; +// } public void platformDispose(ProjectLawsInventoryEO projectLawsInventoryEO, List result) { List valueList = FlowStateDesignEnum.getValueInfo();//修改为按高嵩提供的流程顺序 @@ -12927,5 +13139,70 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl getEvaluatorList(String documentId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectLawsInventoryEO::getStandId,documentId); + List lawsInventoryEOList = this.list(wrapper); + //dutyTerritory + if(ObjectUtils.isEmpty(lawsInventoryEOList)){ + return new ArrayList<>(); + } + List userIdList = new ArrayList<>(); + for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) { + String dutyTerritory = projectLawsInventoryEO.getDutyTerritory(); + //每条下的相关责任名单 + List personnelList = projectRelatedPersonnelService.getPersonnelList(projectLawsInventoryEO.getProjectLibraryId(),null,null, null, null, null, null, null, null); + if(ObjectUtils.isNotEmpty(personnelList) && StringUtils.isNotBlank(dutyTerritory)){ + //通过每条法规清单的责任领域去过滤相关人员名单 + personnelList = personnelList.stream().filter(e->dutyTerritory.contains(e.getDutyTerritory())).collect(Collectors.toList()); + //lawEngineer engineeringInterfacePerson engineerLawSet engineerAttSet + List collect1 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getLawEngineer())).map(ProjectRelatedPersonnel::getLawEngineer).collect(Collectors.toList()); + List collect2 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineeringInterfacePerson())).map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).collect(Collectors.toList()); + List collect3 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerLawSet())).map(ProjectRelatedPersonnel::getEngineerLawSet).collect(Collectors.toList()); + List collect4 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerAttSet())).map(ProjectRelatedPersonnel::getEngineerAttSet).collect(Collectors.toList()); + + if(ObjectUtils.isNotEmpty(collect1)){ + for (String s : collect1) { + userIdList.addAll(Arrays.asList(s.split(","))); + } + } + if(ObjectUtils.isNotEmpty(collect2)){ + for (String s : collect2) { + userIdList.addAll(Arrays.asList(s.split(","))); + } + } + if(ObjectUtils.isNotEmpty(collect3)){ + for (String s : collect3) { + userIdList.addAll(Arrays.asList(s.split(","))); + } + } + if(ObjectUtils.isNotEmpty(collect4)){ + for (String s : collect4) { + userIdList.addAll(Arrays.asList(s.split(","))); + } + } + } + } + List sysUserList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(userIdList)) { + userIdList = userIdList.stream().distinct().collect(Collectors.toList()); + sysUserList = sysUserService.querySysUserListByIdList(userIdList); + //排序 + Collator comparator = Collator.getInstance(Locale.CHINESE); + Collections.sort(sysUserList, (e1, e2) -> { + String e1Username = StringUtils.isNotBlank(e1.getUsername()) ? e1.getUsername() : ""; + String e2Username = StringUtils.isNotBlank(e2.getUsername()) ? e2.getUsername() : ""; + return comparator.compare(e1Username, e2Username); + }); + } + return sysUserList; + } + } 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 6e029ab76..4d275453c 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 @@ -2719,13 +2719,17 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectCertificationInventoryEOS(List projectCertificationInventoryEOList) { + public List getProjectCertificationInventoryEOS(List projectCertificationInventoryEOList) { //认证清单关联平台件(实际是一个认证清单只关联一个平台件) List projectCertificationInventoryIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).collect(Collectors.toList()); + List lawsInventoryPlatformEOList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(projectCertificationInventoryIdList)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList); + lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper); + } //认证清单关联的平台件 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList); - List lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper); + List projectCertificationInventoryEOListTemp = new ArrayList<>(); List yesList = new ArrayList<>(); List noList = new ArrayList<>(); @@ -2762,7 +2766,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectLawsInventoryEOS(List projectLawsInventoryEOList) { + public List getProjectLawsInventoryEOS(List projectLawsInventoryEOList) { + if(ObjectUtils.isEmpty(projectLawsInventoryEOList)){ + return projectLawsInventoryEOList; + } List projectLawsInventoryIdList = projectLawsInventoryEOList.stream() .distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); //法规清单关联的所有平台件 @@ -2790,42 +2797,25 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl platformList = projectLawsInventoryPlatFormList.stream() .filter(e -> platformLawsInventoryIdList.contains(e.getId())).collect(Collectors.toList()); - for (ProjectLawsInventoryEO lawsInventoryEO : platformList) { + if(ObjectUtils.isNotEmpty(platformList)){ for (String value : valueInfo) { - if(value.equals(lawsInventoryEO.getDesignFlowStatus())){ + List collect1 = platformList.stream().filter(e -> value.equals(e.getDesignFlowStatus())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect1)){ projectLawsInventoryEO.setDesignFlowStatus(value); break; } } for (String value : valueInfo) { - if(value.equals(lawsInventoryEO.getVerifyFlowStatus())){ + List collect1 = platformList.stream().filter(e -> value.equals(e.getVerifyFlowStatus())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect1)){ projectLawsInventoryEO.setVerifyFlowStatus(value); break; } } } } - -// if(ObjectUtils.isNotEmpty(collect)){ -// yesList.add(projectLawsInventoryEO); -// }else{ -// noList.add(projectLawsInventoryEO); -// } } } -// if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList) -// && ObjectUtils.isNotEmpty(yesList) -// && yesList.size() != projectLawsInventoryEOList.size() -// ){ -// //法规清单有数据且部分关联平台件数据 -// projectLawsInventoryEOList = noList; -// projectLawsInventoryEOList.addAll(projectLawsInventoryPlatFormList); -// }else if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList) -// && ObjectUtils.isNotEmpty(yesList) -// && yesList.size() == projectLawsInventoryEOList.size()){ -// //法规清单有数据且全部关联了平台件 -// projectLawsInventoryEOList = projectLawsInventoryPlatFormList; -// } return projectLawsInventoryEOList; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 74a2779ac..7a23fe902 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -371,6 +371,56 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl getPersonnelList(String projectId, + String dutyTerritoryTemp, + String lawEngineer, + String engineeringInterfacePerson, + String engineerLawSet,String engineerAttSet, + String firstLevelDutyTerritory, + String orderBy, + String orderByField) { + //查询数据 + List result = projectRelatedPersonnelMapper.queryPageList(projectId, + DictCodeEnum.DUTY_TERRITORY.getValue(), + dutyTerritoryTemp, + lawEngineer, + engineeringInterfacePerson, +// certificationEngineer + engineerLawSet, + engineerAttSet); + //查询数据里的责任领域 + List dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList()); + //查标签内容里的责任领域数据 + List sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); + //没有数据->新增所有责任领域,查询 + if(StringUtils.isBlank(dutyTerritoryTemp) + && StringUtils.isBlank(lawEngineer) + && StringUtils.isBlank(engineeringInterfacePerson) +// && StringUtils.isBlank(certificationEngineer) + && StringUtils.isBlank(engineerLawSet) + && StringUtils.isBlank(engineerLawSet)){ + if(result.size() != sysDictItemValueList.size()){ + + //更新相关人员表里的责任领域数据 + if (CollectionUtils.isNotEmpty(sysDictItemValueList)) { + for (String sysDictItemValue : sysDictItemValueList) { + if(!dutyTerritory.contains(sysDictItemValue)) { + setDutyTerritoryValue(sysDictItemValue, projectId); + } + } + } + //重新查询列表 + result = projectRelatedPersonnelMapper.queryPageList(projectId, + DictCodeEnum.DUTY_TERRITORY.getValue(), + dutyTerritoryTemp, + lawEngineer, + engineeringInterfacePerson, + engineerLawSet, + engineerAttSet); + } + } + return result; + } private void hearSort(String orderBy, String orderByField, List result) { Collator comparator = Collator.getInstance(Locale.CHINESE); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index c1c7b6514..022bc4220 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -1032,6 +1032,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService } //设计任务确认 List pliEos = pliEoList.stream().filter(pliEo -> StringUtils.equals(pliEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + pliEos = projectLibraryBaseService.getProjectLawsInventoryEOS(pliEos); + Map fgRwqrMapDesign = this.projectLawsInventoryEOService.groupByFGRwqrStatusDesign(pliEos); Map fgRwqrProjectScheduleExportMapDesign = (Map) fgRwqrMapDesign.get("projectScheduleExportMap"); double fgrqqrToBeReleasedDesign = (double) fgRwqrProjectScheduleExportMapDesign.get("toBeReleased"); @@ -1126,6 +1128,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService //认证任务确认 List pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + pciEos = projectLibraryBaseService.getProjectCertificationInventoryEOS(pciEos); Map rzRwqrMap = this.projectCertificationInventoryEOService.groupByFGRwqrStatus(pciEos); Map rzRwqrProjectScheduleExportMap = (Map) rzRwqrMap.get("projectScheduleExportMap"); double rzRqqrToBeReleased = (double) rzRwqrProjectScheduleExportMap.get("toBeReleased"); 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 c9069f0c0..168d9cb19 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 @@ -97,6 +97,8 @@ public class NcrTrackVO implements Serializable { @ApiModelProperty(value = "问题优先级") private java.lang.String problemPriority; + private java.lang.String problemPriorityName; + private java.lang.String problemPriority_dictText; /**描述和分析*/ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java index e84e8c595..d6cc2c563 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java @@ -50,6 +50,8 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -197,7 +199,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { Map mapTwo = (Map) map.get("mapTwo"); JSONArray must = new JSONArray(); //处理首次查询条件 - if (ObjectUtils.isNotEmpty(mapOne)) { + if (ObjectUtils.isNotEmpty(mapOne)) { queryCondition(mapOne, inputFieldList, otherFieldList,dateFieldList, must); } //处理二次查询条件 @@ -356,94 +358,67 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { String key = entry.getKey(); String value = (String) entry.getValue(); if (ObjectUtils.isNotEmpty(value)) { - for (String s : value.split(",")) { - JSONArray should = new JSONArray(); - s = s.toLowerCase(); - if(s.contains(" ")){ - for (String valueTemp : s.split(" ")) { - Map mapTemp = new HashMap(); - mapTemp.put(key,"*"+valueTemp+"*"); - Map map1 = new HashMap<>(); - map1.put("wildcard",mapTemp); - should.add(map1); - } - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); - must.add(jsonObject); - }else{ - Map map = new HashMap<>(); - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); + String regex = "([\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(value); - if (key.equals("serial_number")){ - s = s.toLowerCase(); - queryMap.put(key, "*" + s + "*"); - map.put("wildcard", queryMap); - } else { - s = s.toLowerCase(); - queryMapTemp.put("query", s); - queryMapTemp.put("minimum_should_match", 2); - queryMap.put(key, queryMapTemp); - map.put("match",queryMap); - } - must.add(map); + List list = new ArrayList<>(); + list.add(value); + while (matcher.find()) { + String group = matcher.group(); + list.add(group); + } + JSONArray should = new JSONArray(); + for (String s : list) { + Map map33 = new HashMap<>(); + map33.put("query",s); + Map map1 = new HashMap<>(); + map1.put(key,map33); + Map map2 = new HashMap<>(); + map2.put("match",map1); + should.add(map2); + + for (String s1 : value.split(",")) { + Map map = new HashMap(); + map.put(key,"*"+s1+"*"); + Map mapTemp = new HashMap<>(); + mapTemp.put("wildcard",map); + should.add(mapTemp); } } + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); + must.add(jsonObject); } } } - //封装输入框查询条件 -// if (ObjectUtils.isNotEmpty(inputMap)) { -// for (Map.Entry entry : inputMap.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map map = new HashMap<>(); -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// -// if (key.equals("serial_number")){ -// s = s.toLowerCase(); -// queryMap.put(key, "*" + s + "*"); -// map.put("wildcard", queryMap); -// } else { -// s = s.toLowerCase(); -// queryMapTemp.put("query", s); -// queryMapTemp.put("minimum_should_match", 2); -// queryMap.put(key, queryMapTemp); -// map.put("match",queryMap); -// } -// must.add(map); -// } -// } -// } -// } //封装下拉,树形查询条件 if (ObjectUtils.isNotEmpty(otherMap)) { for (Map.Entry entry : otherMap.entrySet()) { String key = entry.getKey(); String value = (String) entry.getValue(); - if("technology_territory".equals(key) && ObjectUtils.isNotEmpty(value)){ - JSONArray should = new JSONArray(); + if(StringUtils.isNotBlank(value)){ + if(("technology_territory".equals(key) || "standard_system".equals(key)) && ObjectUtils.isNotEmpty(value)){ + JSONArray should = new JSONArray(); - List> mapList = new ArrayList<>(); - for (String s : value.split(",")) { - Map map = new HashMap(); - map.put(key,"*"+s+"*"); - Map map1 = new HashMap<>(); - map1.put("wildcard",map); - should.add(map1); + List> mapList = new ArrayList<>(); + for (String s : value.split(",")) { + Map map = new HashMap(); + map.put(key,"*"+s+"*"); + Map map1 = new HashMap<>(); + map1.put("wildcard",map); + should.add(map1); + } + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); + must.add(jsonObject); + } else{ + Map map = new HashMap<>(); + Map queryMap = new HashMap<>(); + Map queryMapTemp = new HashMap<>(); + queryMapTemp.put("query", value); + queryMap.put(key, queryMapTemp); + map.put("match",queryMap); + must.add(map); } - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); - must.add(jsonObject); - }else{ - Map map = new HashMap<>(); - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); - queryMapTemp.put("query", value); - queryMap.put(key, queryMapTemp); - map.put("match",queryMap); - must.add(map); } } } @@ -466,6 +441,162 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { } } } +// private void queryCondition(Map mapOne, List inputFieldList, +// List otherFieldList, List dateFieldList,JSONArray must) { +// Map inputMap = new HashMap<>();//条件内容为输入框的 +// Map otherMap = new HashMap<>();//条件内容为下拉,日期,树形 +// Map dateMap = new HashMap<>();//条件内容为下拉,树形 +// //区分输入框和下拉,树形,日期等字段 +// if (ObjectUtils.isNotEmpty(mapOne)) { +// for (Map.Entry entry : mapOne.entrySet()) { +// String key = entry.getKey(); +// Object value = entry.getValue(); +// //处理二次搜索中选择列表数据 +// if (inputFieldList.contains(key)) { +// inputMap.put(key, value); +// } +// if (otherFieldList.contains(key)) { +// otherMap.put(key, value); +// } +// if(dateFieldList.contains(key)){ +// dateMap.put(key, value); +// } +// } +// } +// +// //封装输入框查询条件 +// if (ObjectUtils.isNotEmpty(inputMap)) { +// for (Map.Entry entry : inputMap.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if (ObjectUtils.isNotEmpty(value)) { +// for (String s : value.split(",")) { +// JSONArray should = new JSONArray(); +// s = s.toLowerCase(); +// if(s.contains(" ")){ +// for (String valueTemp : s.split(" ")) { +// Map mapTemp = new HashMap(); +// mapTemp.put(key,"*"+valueTemp+"*"); +// Map map1 = new HashMap<>(); +// map1.put("wildcard",mapTemp); +// should.add(map1); +// } +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); +// must.add(jsonObject); +// }else{ +// Map map = new HashMap<>(); +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// +// if (key.equals("serial_number")){ +// s = s.toLowerCase(); +// queryMap.put(key, "*" + s + "*"); +// map.put("wildcard", queryMap); +// } else { +// s = s.toLowerCase(); +// queryMapTemp.put("query", s); +// queryMapTemp.put("minimum_should_match", 2); +// queryMap.put(key, queryMapTemp); +// map.put("match",queryMap); +// } +// must.add(map); +// } +// } +// } +// } +// } +// //封装输入框查询条件 +//// if (ObjectUtils.isNotEmpty(inputMap)) { +//// for (Map.Entry entry : inputMap.entrySet()) { +//// String key = entry.getKey(); +//// String value = (String) entry.getValue(); +//// if (ObjectUtils.isNotEmpty(value)) { +//// for (String s : value.split(",")) { +//// Map map = new HashMap<>(); +//// Map queryMap = new HashMap<>(); +//// Map queryMapTemp = new HashMap<>(); +//// +//// if (key.equals("serial_number")){ +//// s = s.toLowerCase(); +//// queryMap.put(key, "*" + s + "*"); +//// map.put("wildcard", queryMap); +//// } else { +//// s = s.toLowerCase(); +//// queryMapTemp.put("query", s); +//// queryMapTemp.put("minimum_should_match", 2); +//// queryMap.put(key, queryMapTemp); +//// map.put("match",queryMap); +//// } +//// must.add(map); +//// } +//// } +//// } +//// } +// //封装下拉,树形查询条件 +// if (ObjectUtils.isNotEmpty(otherMap)) { +// for (Map.Entry entry : otherMap.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if(StringUtils.isNotBlank(value)){ +// if("technology_territory".equals(key) && ObjectUtils.isNotEmpty(value)){ +// JSONArray should = new JSONArray(); +// +// List> mapList = new ArrayList<>(); +// for (String s : value.split(",")) { +// Map map = new HashMap(); +// map.put(key,"*"+s+"*"); +// Map map1 = new HashMap<>(); +// map1.put("wildcard",map); +// should.add(map1); +// } +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); +// must.add(jsonObject); +// }else if("standard_system".equals(key) && ObjectUtils.isNotEmpty(value)){ +// JSONArray should = new JSONArray(); +// +// List> mapList = new ArrayList<>(); +// for (String s : value.split(",")) { +// Map map = new HashMap(); +// map.put("query",s); +// Map map1 = new HashMap<>(); +// map1.put(key,map); +// Map map2 = new HashMap<>(); +// map2.put("match",map1); +// should.add(map2); +// } +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); +// must.add(jsonObject); +// }else{ +// Map map = new HashMap<>(); +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// queryMapTemp.put("query", value); +// queryMap.put(key, queryMapTemp); +// map.put("match",queryMap); +// must.add(map); +// } +// } +// } +// } +// //封装时间类型字段查询(时间范围) +// if (ObjectUtils.isNotEmpty(dateMap)) { +// for (Map.Entry entry : dateMap.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// if (ObjectUtils.isNotEmpty(value)) { +// Map map = new HashMap<>(); +// map.put("gte", value.split(",")[0]); +// map.put("lte", value.split(",")[1]); +// map.put("format", "yyyy-MM-dd"); +// queryMap.put(key, map); +// queryMapTemp.put("range", queryMap); +// must.add(queryMapTemp); +// } +// } +// } +// } /** * 全文 @@ -543,7 +674,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //高亮 if(!"flag".equals(field)){ - highlight(mapHighlight, field); + //跳转时要用id,所以高亮时要将id排除 + if(!"id".equals(field)){ + highlight(mapHighlight, field); + } } else { // query_string查询 Map map25 = new HashMap<>(); @@ -571,7 +705,9 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //高亮 if(!"flag".equals(field)){ - highlight(mapHighlight, field); + if(!"id".equals(field)){ + highlight(mapHighlight, field); + } } else { // query_string查询 Map map25 = new HashMap<>(); @@ -641,74 +777,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { } private void getQueryMapJsonFullText(JSONArray queryMapJson, String selectValue, String field) { - // 前缀匹配 缺点是前缀一定不能断开 - //情况举例:用户只记得前面那段字 - Map map21 = new HashMap<>(); - Map map31 = new HashMap<>(); - Map map41 = new HashMap<>(); - if("serial_number".equals(field)){ - map31.put("boost",10); - }else if("title".equals(field)){ - map31.put("boost",8); - }else if("file_text".equals(field)){ - map31.put("boost",0.01); - }else if("content".equals(field)){ - map31.put("boost",0.01); - }else if("file_name".equals(field)){ - map31.put("boost",5); - } - map31.put("value", selectValue); - map21.put(field + ".keyword", map31); - map41.put("prefix", map21); - queryMapJson.add(map41); - - // match_phrase_prefix 词组匹配查询,允许最后词组与文中的任意分词前缀匹配 - Map map22 = new HashMap<>(); - Map map32 = new HashMap<>(); - Map map42 = new HashMap<>(); - if("serial_number".equals(field)){ - map32.put("boost",10); - }else if("title".equals(field)){ - map32.put("boost",8); - }else if("file_text".equals(field)){ - map32.put("boost",0.01); - }else if("content".equals(field)){ - map32.put("boost",0.01); - }else if("file_name".equals(field)){ - map32.put("boost",5); - } - map32.put("query", selectValue); - map22.put(field, map32); - map42.put("match_phrase_prefix", map22); - queryMapJson.add(map42); - // match分词匹配查询 // 情况举例:用户可能他知道开头的前缀几个字,知道中间的几个字 - Map map23 = new HashMap<>(); - Map map33 = new HashMap<>(); - Map map43 = new HashMap<>(); - if("serial_number".equals(field)){ - map33.put("boost",10); - }else if("title".equals(field)){ - map33.put("boost",8); - }else if("file_text".equals(field)){ - map33.put("boost",0.01); - }else if("content".equals(field)){ - map33.put("boost",0.01); - }else if("file_name".equals(field)){ - map33.put("boost",5); - } - map33.put("query", selectValue); - map23.put(field, map33); - map43.put("match", map23); - queryMapJson.add(map43); + //依据正则拆分示例:你好Hello123世界World456可拆分为:你好、Hello、123、世界、World、456 - // wildcard模糊查询 - //情况举例:用户只记得中间那段字 + String regex = "([\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(selectValue); + + List list = new ArrayList<>(); + list.add(selectValue); + while (matcher.find()) { + String group = matcher.group(); + list.add(group); + } + for (String s : list) { + // // wildcard模糊查询 +// //情况举例:用户只记得中间那段字 Map map24 = new HashMap<>(); Map map44 = new HashMap<>(); Map map55 = new HashMap<>(); - map55.put("value","*" + selectValue + "*"); + map55.put("value","*" + s + "*"); if("serial_number".equals(field)){ map55.put("boost",10); }else if("title".equals(field)){ @@ -724,7 +813,151 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { map24.put(field, map55); map44.put("wildcard",map24); queryMapJson.add(map44); + } } +// private void getQueryMapJsonFullText(JSONArray queryMapJson, String selectValue, String field) { +// // match分词匹配查询 +// // 情况举例:用户可能他知道开头的前缀几个字,知道中间的几个字 +// //依据正则拆分示例:你好Hello123世界World456可拆分为:你好、Hello、123、世界、World、456 +// +// String regex = "([\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+)"; +// Pattern pattern = Pattern.compile(regex); +// Matcher matcher = pattern.matcher(selectValue); +// +// List list = new ArrayList<>(); +// list.add(selectValue); +// while (matcher.find()) { +// String group = matcher.group(); +// list.add(group); +// } +// for (String s : list) { +// Map map33 = new HashMap<>(); +// if("serial_number".equals(field)){ +// map33.put("boost",10); +// }else if("title".equals(field)){ +// map33.put("boost",8); +// }else if("file_text".equals(field)){ +// map33.put("boost",0.01); +// }else if("content".equals(field)){ +// map33.put("boost",0.01); +// }else if("file_name".equals(field)){ +// map33.put("boost",5); +// } +// map33.put("query",s); +// Map map1 = new HashMap<>(); +// map1.put(field,map33); +// Map map2 = new HashMap<>(); +// map2.put("match",map1); +// queryMapJson.add(map2); +// +// // // wildcard模糊查询 +//// //情况举例:用户只记得中间那段字 +// Map map24 = new HashMap<>(); +// Map map44 = new HashMap<>(); +// Map map55 = new HashMap<>(); +// map55.put("value","*" + selectValue + "*"); +//// if("serial_number".equals(field)){ +//// map55.put("boost",10); +//// }else if("title".equals(field)){ +//// map55.put("boost",8); +//// }else if("file_text".equals(field)){ +//// map55.put("boost",0.01); +//// }else if("content".equals(field)){ +//// map55.put("boost",0.01); +//// }else if("file_name".equals(field)){ +//// map55.put("boost",5); +//// } +// +// map24.put(field, map55); +// map44.put("wildcard",map24); +// queryMapJson.add(map44); +// } +// } +// private void getQueryMapJsonFullText(JSONArray queryMapJson, String selectValue, String field) { +// // 前缀匹配 缺点是前缀一定不能断开 +// //情况举例:用户只记得前面那段字 +// Map map21 = new HashMap<>(); +// Map map31 = new HashMap<>(); +// Map map41 = new HashMap<>(); +// if("serial_number".equals(field)){ +// map31.put("boost",10); +// }else if("title".equals(field)){ +// map31.put("boost",8); +// }else if("file_text".equals(field)){ +// map31.put("boost",0.01); +// }else if("content".equals(field)){ +// map31.put("boost",0.01); +// }else if("file_name".equals(field)){ +// map31.put("boost",5); +// } +// map31.put("value", selectValue); +// map21.put(field + ".keyword", map31); +// map41.put("prefix", map21); +// queryMapJson.add(map41); +// +// // match_phrase_prefix 词组匹配查询,允许最后词组与文中的任意分词前缀匹配 +// Map map22 = new HashMap<>(); +// Map map32 = new HashMap<>(); +// Map map42 = new HashMap<>(); +// if("serial_number".equals(field)){ +// map32.put("boost",10); +// }else if("title".equals(field)){ +// map32.put("boost",8); +// }else if("file_text".equals(field)){ +// map32.put("boost",0.01); +// }else if("content".equals(field)){ +// map32.put("boost",0.01); +// }else if("file_name".equals(field)){ +// map32.put("boost",5); +// } +// map32.put("query", selectValue); +// map22.put(field, map32); +// map42.put("match_phrase_prefix", map22); +// queryMapJson.add(map42); +// +// // match分词匹配查询 +// // 情况举例:用户可能他知道开头的前缀几个字,知道中间的几个字 +// Map map23 = new HashMap<>(); +// Map map33 = new HashMap<>(); +// Map map43 = new HashMap<>(); +// if("serial_number".equals(field)){ +// map33.put("boost",10); +// }else if("title".equals(field)){ +// map33.put("boost",8); +// }else if("file_text".equals(field)){ +// map33.put("boost",0.01); +// }else if("content".equals(field)){ +// map33.put("boost",0.01); +// }else if("file_name".equals(field)){ +// map33.put("boost",5); +// } +// map33.put("query", selectValue); +// map23.put(field, map33); +// map43.put("match", map23); +// queryMapJson.add(map43); +// +// // wildcard模糊查询 +// //情况举例:用户只记得中间那段字 +// Map map24 = new HashMap<>(); +// Map map44 = new HashMap<>(); +// Map map55 = new HashMap<>(); +// map55.put("value","*" + selectValue + "*"); +// if("serial_number".equals(field)){ +// map55.put("boost",10); +// }else if("title".equals(field)){ +// map55.put("boost",8); +// }else if("file_text".equals(field)){ +// map55.put("boost",0.01); +// }else if("content".equals(field)){ +// map55.put("boost",0.01); +// }else if("file_name".equals(field)){ +// map55.put("boost",5); +// } +// +// map24.put(field, map55); +// map44.put("wildcard",map24); +// queryMapJson.add(map44); +// } @NotNull private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson,Map highlightMap, @@ -1065,6 +1298,23 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { */ @Override public IPage getParagraphInfoList(Map map) { + //文档库所有的字段 + List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); + //下拉,树形,等字段 + List otherOnlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())//下拉单选 + || FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())//下拉多选 + || FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())//树形 + || FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType()))//人员选择 + .collect(Collectors.toList()); + List otherFieldList = otherOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + + //日期字段 + List dateOnlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType()))//日期单选 + .collect(Collectors.toList()); + List dateFieldList = dateOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + //指定module_type_flag= WDK JSONArray queryJsonMust = new JSONArray(); Map mapModule = new HashMap<>(); @@ -1099,8 +1349,6 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { if (!flagTemp) { return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); } - //文档库所有的字段 - List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); //输入框字段 List inputOnlCgformFieldList = fieldList.stream() .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) @@ -1114,118 +1362,30 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { Map mapOne = (Map) map.get("mapOne"); Map mapTwo = (Map) map.get("mapTwo"); - JSONArray queryMapJson = new JSONArray(); - JSONArray queryMapJsonTemp = new JSONArray(); - JSONArray queryMapJsonTwo = new JSONArray(); JSONArray queryMapJsonThree = new JSONArray(); JSONArray queryMapJsonAll = new JSONArray(); - //首次查询条件 + + + JSONArray must = new JSONArray(); + //处理首次查询条件 if (ObjectUtils.isNotEmpty(mapOne)) { -// if(StringUtils.isNotBlank((String)mapOne.get("title")) -// || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("flag",SEARCH_FLAG ); -// queryMap.put("match_phrase", queryMapTemp); -// queryMapJsonTemp.add(queryMap); -// } - for (Map.Entry entry : mapOne.entrySet()) { - String key = entry.getKey(); - String value = (String) entry.getValue(); - if("serial_number".equals(key) || "title".equals(key) || "file_text".equals(key)){ - value = value.toLowerCase(); - } - if (ObjectUtils.isNotEmpty(value)) { - for (String s : value.split(",")) { - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); - Map queryMap3 = new HashMap<>(); - //特殊处理编号字段 - if (key.equals("serial_number") || key.equals("title") || key.equals("file_text")){ - queryMapTemp.put(key, "*" + s + "*"); - queryMap.put("wildcard",queryMapTemp); - queryMapJson.add(queryMap); - } else { - queryMap3.put("query",s); -// queryMap3.put("minimum_should_match",2); - queryMapTemp.put(key, queryMap3); - queryMap.put("match", queryMapTemp); - queryMapJson.add(queryMap); - } - } - } -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// Map queryMap3 = new HashMap<>(); -// queryMap3.put("query",s); -//// queryMap3.put("minimum_should_match",2); -// queryMapTemp.put(key, queryMap3); -// queryMap.put("match", queryMapTemp); -// queryMapJson.add(queryMap); -// } -// } - } - if(CollectionUtils.isNotEmpty(queryMapJsonTemp)){ - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTemp, null, null); - queryMapJsonAll.add(jsonObject); - } - if(CollectionUtils.isNotEmpty(queryMapJson)){ - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); - queryMapJsonAll.add(jsonObject); - } - if(CollectionUtils.isNotEmpty(queryJsonMust)){ - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryJsonMust, null, null); - queryMapJsonAll.add(jsonObject); - } + queryCondition(mapOne, inputFieldList, otherFieldList,dateFieldList, must); + } + //处理二次查询条件 + if (ObjectUtils.isNotEmpty(mapTwo)) { + queryCondition(mapTwo, inputFieldList, otherFieldList,dateFieldList, must); + } + + if(CollectionUtils.isNotEmpty(must)){ + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(must, null, null); + queryMapJsonAll.add(jsonObject); + } + if(CollectionUtils.isNotEmpty(queryJsonMust)){ + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryJsonMust, null, null); + queryMapJsonAll.add(jsonObject); } String ids = (String) mapTwo.get("ids"); - //二次查询条件 - if (ObjectUtils.isNotEmpty(mapTwo)) { - mapTwo.remove("ids"); - for (Map.Entry entry : mapTwo.entrySet()) { - String key = entry.getKey(); - String value = (String) entry.getValue(); - if (ObjectUtils.isNotEmpty(value)) { - for (String s : value.split(",")) { - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); - Map queryMap3 = new HashMap<>(); - //特殊处理编号字段 - if (key.equals("serial_number")){ - queryMapTemp.put(key, "*" + s + "*"); - queryMap.put("wildcard",queryMapTemp); - queryMapJsonTwo.add(queryMap); - } else { - queryMap3.put("query",s); -// queryMap3.put("minimum_should_match",2); - queryMapTemp.put(key, queryMap3); - queryMap.put("match", queryMapTemp); - queryMapJsonTwo.add(queryMap); - } - } - } -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// Map queryMap3 = new HashMap<>(); -// queryMap3.put("query",s); -//// queryMap3.put("minimum_should_match",2); -// queryMapTemp.put(key, queryMap3); -// queryMap.put("match", queryMapTemp); -// queryMapJsonTwo.add(queryMap); -// } -// } - } - if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){ - JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTwo, null, null); - queryMapJsonAll.add(jsonObject); - } - } - //ids查询条件 if (StringUtils.isNotBlank(ids)) { for (String s : ids.split(",")) { @@ -1243,11 +1403,6 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //排序 JSONObject sort = new JSONObject(); -// Map mapSort = new HashMap<>(); -// Map mapSortTemp = new HashMap<>(); -// mapSort.put("order","asc"); -// mapSortTemp.put("file_sort.keyword",mapSort); -// sort.putAll(mapSortTemp); Map score = new HashMap<>(); Map score1 = new HashMap<>(); @@ -1288,6 +1443,231 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,queryJsonMustNot); return iPage; } +// @Override +// public IPage getParagraphInfoList(Map map) { +// //指定module_type_flag= WDK +// JSONArray queryJsonMust = new JSONArray(); +// Map mapModule = new HashMap<>(); +// Map mapModule1 = new HashMap<>(); +// Map mapModule2 = new HashMap<>(); +// mapModule.put("query", "WDK"); +// mapModule1.put("module_type_flag", mapModule); +// mapModule2.put("match", mapModule1); +// queryJsonMust.add(mapModule2); +// //段落, 有条件的时候,查询的数据中不含有魑的数据 +// JSONArray queryJsonMustNot = new JSONArray(); +// if(ObjectUtils.isEmpty(map.get("mapOne"))){ +// ((Map) map.get("mapOne")).put("flag",SEARCH_FLAG); +// }else{ +// Map mapTemp = new HashMap<>(); +// Map map1 = new HashMap<>(); +// Map map2 = new HashMap<>(); +// mapTemp.put("query", SEARCH_FLAG); +// map1.put("flag", mapTemp); +// map2.put("match", map1); +// queryJsonMustNot.add(map2); +// } +// String cut = (String) map.get("cut"); +// //module_type 代表文档库的段落 +// //判断索引是否存在 +// boolean flagTemp = true; +// if(CutEnum.CN.getValue().equals(cut)){ +// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); +// }else{ +// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); +// } +// if (!flagTemp) { +// return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); +// } +// //文档库所有的字段 +// List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); +// //输入框字段 +// List inputOnlCgformFieldList = fieldList.stream() +// .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) +// || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType())) +// .collect(Collectors.toList()); +// List inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); +// inputFieldList.add("file_text");//在输入框的类型中添加正文字段 +// inputFieldList.add("flag");//标识(默认展示基础数据,不展示文件数据) +// +// +// Map mapOne = (Map) map.get("mapOne"); +// Map mapTwo = (Map) map.get("mapTwo"); +// +// JSONArray queryMapJson = new JSONArray(); +// JSONArray queryMapJsonTemp = new JSONArray(); +// JSONArray queryMapJsonTwo = new JSONArray(); +// JSONArray queryMapJsonThree = new JSONArray(); +// JSONArray queryMapJsonAll = new JSONArray(); +// //首次查询条件 +// if (ObjectUtils.isNotEmpty(mapOne)) { +//// if(StringUtils.isNotBlank((String)mapOne.get("title")) +//// || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ +//// Map queryMap = new HashMap<>(); +//// Map queryMapTemp = new HashMap<>(); +//// queryMapTemp.put("flag",SEARCH_FLAG ); +//// queryMap.put("match_phrase", queryMapTemp); +//// queryMapJsonTemp.add(queryMap); +//// } +// for (Map.Entry entry : mapOne.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if("serial_number".equals(key) || "title".equals(key) || "file_text".equals(key)){ +// value = value.toLowerCase(); +// } +// if (ObjectUtils.isNotEmpty(value)) { +// for (String s : value.split(",")) { +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// Map queryMap3 = new HashMap<>(); +// //特殊处理编号字段 +// if (key.equals("serial_number") || key.equals("title") || key.equals("file_text")){ +// queryMapTemp.put(key, "*" + s + "*"); +// queryMap.put("wildcard",queryMapTemp); +// queryMapJson.add(queryMap); +// } else { +// queryMap3.put("query",s); +//// queryMap3.put("minimum_should_match",2); +// queryMapTemp.put(key, queryMap3); +// queryMap.put("match", queryMapTemp); +// queryMapJson.add(queryMap); +// } +// } +// } +//// if (ObjectUtils.isNotEmpty(value)) { +//// for (String s : value.split(",")) { +//// Map queryMap = new HashMap<>(); +//// Map queryMapTemp = new HashMap<>(); +//// Map queryMap3 = new HashMap<>(); +//// queryMap3.put("query",s); +////// queryMap3.put("minimum_should_match",2); +//// queryMapTemp.put(key, queryMap3); +//// queryMap.put("match", queryMapTemp); +//// queryMapJson.add(queryMap); +//// } +//// } +// } +// if(CollectionUtils.isNotEmpty(queryMapJsonTemp)){ +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTemp, null, null); +// queryMapJsonAll.add(jsonObject); +// } +// if(CollectionUtils.isNotEmpty(queryMapJson)){ +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); +// queryMapJsonAll.add(jsonObject); +// } +// if(CollectionUtils.isNotEmpty(queryJsonMust)){ +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryJsonMust, null, null); +// queryMapJsonAll.add(jsonObject); +// } +// } +// +// String ids = (String) mapTwo.get("ids"); +// //二次查询条件 +// if (ObjectUtils.isNotEmpty(mapTwo)) { +// mapTwo.remove("ids"); +// for (Map.Entry entry : mapTwo.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if (ObjectUtils.isNotEmpty(value)) { +// for (String s : value.split(",")) { +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// Map queryMap3 = new HashMap<>(); +// //特殊处理编号字段 +// if (key.equals("serial_number")){ +// queryMapTemp.put(key, "*" + s + "*"); +// queryMap.put("wildcard",queryMapTemp); +// queryMapJsonTwo.add(queryMap); +// } else { +// queryMap3.put("query",s); +//// queryMap3.put("minimum_should_match",2); +// queryMapTemp.put(key, queryMap3); +// queryMap.put("match", queryMapTemp); +// queryMapJsonTwo.add(queryMap); +// } +// } +// } +//// if (ObjectUtils.isNotEmpty(value)) { +//// for (String s : value.split(",")) { +//// Map queryMap = new HashMap<>(); +//// Map queryMapTemp = new HashMap<>(); +//// Map queryMap3 = new HashMap<>(); +//// queryMap3.put("query",s); +////// queryMap3.put("minimum_should_match",2); +//// queryMapTemp.put(key, queryMap3); +//// queryMap.put("match", queryMapTemp); +//// queryMapJsonTwo.add(queryMap); +//// } +//// } +// } +// if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){ +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTwo, null, null); +// queryMapJsonAll.add(jsonObject); +// } +// } +// +// //ids查询条件 +// if (StringUtils.isNotBlank(ids)) { +// for (String s : ids.split(",")) { +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// queryMapTemp.put("id", s); +// queryMap.put("match_phrase", queryMapTemp); +// queryMapJsonThree.add(queryMap); +// } +// } +// if(CollectionUtils.isNotEmpty(queryMapJsonThree)){ +// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonThree); +// queryMapJsonAll.add(jsonObject); +// } +// +// //排序 +// JSONObject sort = new JSONObject(); +//// Map mapSort = new HashMap<>(); +//// Map mapSortTemp = new HashMap<>(); +//// mapSort.put("order","asc"); +//// mapSortTemp.put("file_sort.keyword",mapSort); +//// sort.putAll(mapSortTemp); +// +// Map score = new HashMap<>(); +// Map score1 = new HashMap<>(); +// score.put("order","desc"); +// score1.put("_score",score); +// sort.putAll(score1); +// +// int pageNo = Integer.parseInt(map.get("pageNo").toString()); +// int pageSize = Integer.parseInt(map.get("pageSize").toString()); +// //判断第一次传参和第二次传参 inputFieldList +// String selectValue = ""; +// String selectValueTwo = ""; +// Map mapHighlight = new HashMap<>(); +// Map mapHighlight1 = new HashMap<>(); +// for (Map.Entry entry : mapOne.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { +// selectValue = value; +// highlight(mapHighlight, key); +// } +// mapHighlight1.put("fields",mapHighlight); +// } +// for (Map.Entry entry : mapTwo.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { +// selectValueTwo = value; +// highlight(mapHighlight, key); +// } +// mapHighlight1.put("fields",mapHighlight); +// } +// //段落的标识 +// String paragraphFlag = "paragraphFlag"; +// +// +// IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null, +// pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,queryJsonMustNot); +// return iPage; +// } private void highlight(Map mapHighlight, String key) { Map mapTemp = new HashMap<>(); @@ -1721,1173 +2101,3 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { } } - - -//--------------------------------------------------------------------------------------------------------------------------------------------------------------- -//package com.jero.modules.searchcenter.service.impl; -// -//import com.alibaba.fastjson.JSONArray; -//import com.alibaba.fastjson.JSONObject; -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import com.baomidou.mybatisplus.core.metadata.IPage; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -//import com.jero.common.constant.enums.CutEnum; -//import com.jero.common.constant.enums.ModuleEnum; -//import com.jero.common.constant.enums.YesOrNoEnum; -//import com.jero.common.es.JeroElasticsearchTemplate; -//import com.jero.generater.modules.online.cgform.entity.OnlCgformField; -//import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; -//import com.jero.modules.collection.entity.OnlCgformCollection; -//import com.jero.modules.collection.service.IOnlCgformCollectionService; -//import com.jero.modules.document.enums.FieldTypeEnum; -//import com.jero.modules.document.enums.SearchEnum; -//import com.jero.modules.document.service.IBussDocumentLibraryEOService; -//import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; -//import com.jero.modules.oss.entity.OSSFile; -//import com.jero.modules.oss.service.IOSSFileService; -//import com.jero.modules.searchcenter.vo.SearchVO; -//import com.jero.modules.subscribe.entity.OnlCgformSubscribe; -//import com.jero.modules.subscribe.service.IOnlCgformSubscribeService; -//import com.jero.modules.system.entity.SysCategory; -//import com.jero.modules.system.entity.SysDictItem; -//import com.jero.modules.system.service.impl.SysCategoryServiceImpl; -//import com.jero.modules.system.service.impl.SysDictItemServiceImpl; -//import org.apache.commons.collections.CollectionUtils; -//import org.apache.commons.lang3.ObjectUtils; -//import org.apache.commons.lang3.StringUtils; -//import org.jetbrains.annotations.NotNull; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Component; -// -//import java.util.ArrayList; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Map; -//import java.util.stream.Collectors; -// -///** -// * @description -// * @date 2022/3/14 10:03 -// * @auth zhn -// */ -//@Component -//public class DocumentSearchServiceImpl implements IDocumentSearchService { -// @Autowired -// private IBussDocumentLibraryEOService iBussDocumentLibraryEOService; -// @Autowired -// private JeroElasticsearchTemplate jeroElasticsearchTemplate; -// @Autowired -// private OnlCgformFieldServiceImpl onlCgformFieldService; -// @Autowired -// private SysCategoryServiceImpl sysCategoryService; -// @Autowired -// private SysDictItemServiceImpl sysDictItemServiceImpl; -// @Autowired -// private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService; -// @Autowired -// private IOSSFileService iOSSFileService; -// @Autowired -// private IOnlCgformCollectionService iOnlCgformCollectionService; -// @Autowired -// private IOnlCgformSubscribeService iOnlCgformSubscribeService; -// public static final String SEARCH_FLAG = "魑";//标识(es数据带此标识的代表全文和段落的数据,不带此标识的代表列表数据) -// -// -// @Override -// public List> queryCondition(String flag, String cut, String searchFlag) { -// List> mapList = iBussDocumentLibraryEOService.queryCondition(flag, cut, searchFlag); -// //搜索条件手动添加正文 -// if ("1".equals(searchFlag)) { -// int index = -1; -// for (Map objectMap : mapList) { -// index++; -// if ("中文标题".equals(objectMap.get("db_field_txt"))) { -// objectMap.put("db_field_txt", "标题"); -// } -// if ("title_en".equals(objectMap.get("db_field_name"))) { -// break; -// } -// } -// //删除英文标题 -// mapList.remove(index); -// //添加正文 -// Map map = new HashMap<>(); -// if(CutEnum.CN.getValue().equals(cut)){ -// map.put("db_field_txt", "正文"); -// }else{ -// map.put("db_field_txt", "main body"); -// } -// map.put("field_show_type", "1"); -// map.put("db_field_name", "file_text"); -// mapList.add(map); -// } -// return mapList; -// } -// -// @Override -// public List> getHeader(String flag, String cut, String searchFlag) { -// List> header = iBussDocumentLibraryEOService.getHeader(flag, cut, searchFlag); -// return header; -// } -// -// /** -// * 文档库列表 -// * @param map -// * @return -// */ -// @Override -// public IPage getInfoList(Map map) { -// boolean flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.INDEX_NAME_DOCUMENT.getValue()); -// if (!flagTemp) { -// return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); -// } -// //文档库所有的字段 -// List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); -// //需要查询的列表字段 -// List hearOnlCgformFieldList = fieldList.stream() -// .filter(e -> YesOrNoEnum.YES.getValue().equals(e.getIsShowSearch())).collect(Collectors.toList()); -// List sourceList = hearOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// sourceList.add("id"); -// -// //输入框字段 -// List inputOnlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) -// || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType()) -// || FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType())//人员选择 -// || FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())//标准选择 -// || FieldTypeEnum.TEXT.getValue().equals(e.getFieldShowType())//文本框 -// || FieldTypeEnum.TEXT_LINK.getValue().equals(e.getFieldShowType()))//输入框(链接) -// .collect(Collectors.toList()); -// List inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// inputFieldList.add("file_text"); -// -// //下拉,树形,等字段 -// List otherOnlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())//下拉单选 -// || FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())//下拉多选 -// || FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())//树形 -// || FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType()))//人员选择 -// .collect(Collectors.toList()); -// List otherFieldList = otherOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// -// //日期字段 -// List dateOnlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType()))//日期单选 -// .collect(Collectors.toList()); -// List dateFieldList = dateOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// -// //过滤出下拉选 -// List onlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType()) -// || FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())) -// .collect(Collectors.toList()); -// //过滤出文件类型字段 -// List onlCgformFieldFileList = fieldList.stream() -// .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) -// .collect(Collectors.toList()); -// //文件字段 -// List FieldFileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// sourceList.addAll(FieldFileList); -// -// //下拉选字段 -// List fieldPullList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// -// //过滤出树形字段 -// List treeFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) -// .collect(Collectors.toList()); -// Map mapOne = (Map) map.get("mapOne"); -// Map mapTwo = (Map) map.get("mapTwo"); -// JSONArray must = new JSONArray(); -// //处理首次查询条件 -// if (ObjectUtils.isNotEmpty(mapOne)) { -// queryCondition(mapOne, inputFieldList, otherFieldList,dateFieldList, must); -// } -// //处理二次查询条件 -// if (ObjectUtils.isNotEmpty(mapTwo)) { -// queryCondition(mapTwo, inputFieldList, otherFieldList,dateFieldList, must); -// } -// //处理ids -// JSONArray should = new JSONArray(); -// String ids = (String) mapTwo.get("ids"); -// if (StringUtils.isNotBlank(ids)) { -// for (String s : ids.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("id", s); -// queryMap.put("match_phrase", queryMapTemp); -// should.add(queryMap); -// } -// } -// String orderBy = (String)map.get("orderBy"); -// String orderByField = (String) map.get("orderByField"); -// JSONArray jsonArrySort = new JSONArray(); -// JSONObject sort = new JSONObject(); -// Map mapSort = new HashMap<>(); -// Map mapSortTemp = new HashMap<>(); -// if(StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(orderByField)){ -// //orderBy=1正序,orderBy=1倒序 -// if("1".equals(orderBy)){ -// mapSort.put("order","asc"); -// }else{ -// mapSort.put("order","desc"); -// } -// if("state".equals(orderByField) || "region".equals(orderByField)){ -// mapSortTemp.put(orderByField+".keyword",mapSort); -// }else{ -// mapSortTemp.put(orderByField,mapSort); -// } -// }else{ -// mapSortTemp.put("issue_time","desc"); -// } -// sort.putAll(mapSortTemp); -// jsonArrySort.add(sort); -// -// //封装查询条件 -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(must, null, should); -// //1. 封装分页和字段值 -// JSONObject queryObject = jeroElasticsearchTemplate.buildQuery(sourceList, jsonObject, null, jsonArrySort, -// Integer.parseInt(map.get("pageNo").toString())-1, Integer.parseInt(map.get("pageSize").toString())); -// //2. 数据查询 -// JSONObject search = jeroElasticsearchTemplate.search(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), -// SearchEnum.TYPE_NAME_DOCUMENT.getValue(), queryObject); -// -// -// //处理数据字典 -// List sysDictItems = sysDictItemServiceImpl.selectItemsAll();//下拉数据字典 -// List categoryList = sysCategoryService.list();//树形数据字典 -// List> list = (List>) (((Map) search.get("hits")).get("hits")); -// List> mapList = new ArrayList<>(); -// for (Map stringObjectMap : list) { -// Map mapTemp = (Map) stringObjectMap.get("_source"); -// //处理收藏(已收藏为1,未收藏为0) -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper.in(OnlCgformCollection::getDocumentId, mapTemp.get("id")); -// List collectList = iOnlCgformCollectionService.list(lambdaQueryWrapper); -// if (collectList.size() > 0) { -// mapTemp.put("collectFlag", "1"); -// } else { -// mapTemp.put("collectFlag", "0"); -// } -// //处理订阅 -// LambdaQueryWrapper lambdaQueryWrapperTemp = new LambdaQueryWrapper<>(); -// lambdaQueryWrapperTemp.in(OnlCgformSubscribe::getDocumentId, mapTemp.get("id")); -// List readList = iOnlCgformSubscribeService.list(lambdaQueryWrapperTemp); -// if (readList.size() > 0) { -// mapTemp.put("subscribeFlag", "1"); -// } else { -// mapTemp.put("subscribeFlag", "0"); -// } -// //格式化时间字段 -// solveTime(mapTemp); -// mapList.add(mapTemp); -// List fileList = new ArrayList<>(); -// mapTemp.entrySet().forEach(entry -> { -// //下拉选处理数据字典 -// bussDocumentLibraryEOService.treeDictItem(categoryList, entry, treeFieldList, (String) map.get("cut"),null); -// -// //下拉单选和下拉多选数据字典处理 -// if (fieldPullList.contains(entry.getKey())) { -// bussDocumentLibraryEOService.dictItem(sysDictItems, entry, (String) map.get("cut"), fieldList,null); -// } -// //处理文件 -// if (FieldFileList.contains(entry.getKey())) { -// List fileInfos = iOSSFileService.getFileInfos((String) entry.getValue()); -// if (fileInfos.size() > 0) { -// for (OSSFile fileInfo : fileInfos) { -// fileList.add(fileInfo); -// } -// } -// } -// -// }); -// mapTemp.put("file_name", fileList); -// } -// IPage page = new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); -// page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); -// page.setRecords(mapList); -// return page; -// } -// -// -// private void queryCondition(Map mapOne, List inputFieldList, -// List otherFieldList, List dateFieldList,JSONArray must) { -// Map inputMap = new HashMap<>();//条件内容为输入框的 -// Map otherMap = new HashMap<>();//条件内容为下拉,日期,树形 -// Map dateMap = new HashMap<>();//条件内容为下拉,树形 -// //区分输入框和下拉,树形,日期等字段 -// if (ObjectUtils.isNotEmpty(mapOne)) { -// for (Map.Entry entry : mapOne.entrySet()) { -// String key = entry.getKey(); -// Object value = entry.getValue(); -// //处理二次搜索中选择列表数据 -// if (inputFieldList.contains(key)) { -// inputMap.put(key, value); -// } -// if (otherFieldList.contains(key)) { -// otherMap.put(key, value); -// } -// if(dateFieldList.contains(key)){ -// dateMap.put(key, value); -// } -// } -// } -// -// //封装输入框查询条件 -// if (ObjectUtils.isNotEmpty(inputMap)) { -// for (Map.Entry entry : inputMap.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map map = new HashMap<>(); -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("query", s); -// queryMapTemp.put("minimum_should_match", 2); -// queryMap.put(key, queryMapTemp); -// map.put("match",queryMap); -// must.add(map); -// } -// } -// } -// } -// //封装下拉,树形查询条件 -// if (ObjectUtils.isNotEmpty(otherMap)) { -// for (Map.Entry entry : otherMap.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if("technology_territory".equals(key) && ObjectUtils.isNotEmpty(value)){ -// Map queryMapNew = new HashMap<>(); -// Map queryMapTempNew = new HashMap<>(); -// queryMapTempNew.put(key, "*"+value.replaceAll(",","*")+"*"); -// queryMapNew.put("wildcard", queryMapTempNew); -// must.add(queryMapNew); -// }else{ -// Map map = new HashMap<>(); -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("query", value); -// queryMap.put(key, queryMapTemp); -// map.put("match",queryMap); -// must.add(map); -// } -// } -// } -// //封装时间类型字段查询(时间范围) -// if (ObjectUtils.isNotEmpty(dateMap)) { -// for (Map.Entry entry : dateMap.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// if (ObjectUtils.isNotEmpty(value)) { -// Map map = new HashMap<>(); -// map.put("gte", value.split(",")[0]); -// map.put("lte", value.split(",")[1]); -// map.put("format", "yyyy-MM-dd"); -// queryMap.put(key, map); -// queryMapTemp.put("range", queryMap); -// must.add(queryMapTemp); -// } -// } -// } -// } -// -// /** -// * 全文 -// * @param searchVO -// * @return -// */ -// @Override -// public IPage getFullTextInfoList(SearchVO searchVO) { -// JSONArray queryJsonMustNot = new JSONArray(); -// if(StringUtils.isNotBlank(searchVO.getSelectValue())){ -// Map map = new HashMap<>(); -// Map map1 = new HashMap<>(); -// Map map2 = new HashMap<>(); -// map.put("query",SEARCH_FLAG); -// map1.put("flag",map); -// map2.put("match",map1); -// queryJsonMustNot.add(map2); -// } -// if(StringUtils.isBlank(searchVO.getSelectValue())){ -// searchVO.setSelectValue(SEARCH_FLAG); -// } -// -// //判断索引是否存在 -// boolean flagTemp = true; -// if(CutEnum.CN.getValue().equals(searchVO.getCut())){ -// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); -// }else{ -// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); -// } -// -// if (!flagTemp) { -// return new Page(searchVO.getPageNo(), searchVO.getPageSize()); -// } -// String selectValue = searchVO.getSelectValue(); -// String selectValueTwo = searchVO.getSelectValueTwo(); -// //1. 需要查询的字段 -// List fieldList = new ArrayList<>(); -// fieldList.add("serial_number");//权重6 -// fieldList.add("title");//权重5 -// fieldList.add("file_text");//权重4 -// fieldList.add("content");//权重3 -// fieldList.add("file_name");//权重2 -// fieldList.add("module_type"); -// fieldList.add("id"); -// fieldList.add("flag"); -// -// JSONArray queryMapJson = new JSONArray(); -// JSONArray queryMapJsonTwo = new JSONArray(); -// JSONArray queryMapJsonThree = new JSONArray(); -// JSONArray queryMapJsonAll = new JSONArray(); -// -// Map mapHighlight = new HashMap<>(); -// Map mapHighlight1 = new HashMap<>(); -// //封装首次的条件 -// if (StringUtils.isNotBlank(selectValue)) { -// for (String field : fieldList) { -// Map map2 = new HashMap<>(); -// Map map3 = new HashMap<>(); -// Map map4 = new HashMap<>(); -// map3.put("query",selectValue); -// map3.put("minimum_should_match",2); -//// if("serial_number".equals(field)){ -//// map3.put("boost",6); -//// }else if("title".equals(field)){ -//// map3.put("boost",5); -//// }else if("file_text".equals(field)){ -//// map3.put("boost",4); -//// }else if("content".equals(field)){ -//// map3.put("boost",3); -//// }else if("file_name".equals(field)){ -//// map3.put("boost",2); -//// } -// map2.put(field, map3); -// map4.put("match",map2); -// queryMapJson.add(map4); -// //高亮 -// if(!"flag".equals(field)){ -// highlight(mapHighlight, field); -// } -// } -// mapHighlight1.put("fields",mapHighlight); -// } -// if(CollectionUtils.isNotEmpty(queryMapJson)){ -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson); -// queryMapJsonAll.add(jsonObject); -// } -// //封装二次的条件 -// if (StringUtils.isNotBlank(selectValueTwo)) { -// for (String field : fieldList) { -// Map queryMap = new HashMap<>(); -// Map map2 = new HashMap<>(); -// Map map3 = new HashMap<>(); -// map3.put("query",selectValueTwo); -// map3.put("minimum_should_match",2); -// map2.put(field, map3); -// queryMap.put("match", map2); -// queryMapJsonTwo.add(queryMap); -// //高亮 -// if(!"flag".equals(field)){ -// highlight(mapHighlight, field); -// } -// } -// mapHighlight1.put("fields",mapHighlight); -// } -// if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){ -// JSONObject jsonObjectTwo = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonTwo); -// queryMapJsonAll.add(jsonObjectTwo); -// } -// //ids进行三次封装 -// if (StringUtils.isNotBlank(searchVO.getIds())) { -// for (String s : searchVO.getIds().split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("id", s); -// queryMap.put("match_phrase", queryMapTemp); -// queryMapJsonThree.add(queryMap); -// } -// } -// if(CollectionUtils.isNotEmpty(queryMapJsonThree)){ -// JSONObject jsonObjectThree = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonThree); -// queryMapJsonAll.add(jsonObjectThree); -// } -// JSONObject sort = new JSONObject(); -// Map score = new HashMap<>(); -// Map score1 = new HashMap<>(); -// score.put("order","desc"); -// score1.put("_score",score); -// sort.putAll(score1); -// -//// Map mapSort = new HashMap<>(); -//// Map mapSortTemp = new HashMap<>(); -//// mapSort.put("order","asc"); -//// mapSortTemp.put("file_sort.keyword",mapSort); -//// sort.putAll(mapSortTemp); -// -// Integer pageNo = searchVO.getPageNo(); -// Integer pageSize = searchVO.getPageSize(); -// IPage page = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null, -// pageNo, pageSize, null,searchVO.getCut(),sort,queryJsonMustNot); -// return page; -// } -// -// @NotNull -// private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson,Map highlightMap, -// JSONArray should, Integer pageNo, Integer pageSize, String paragraphFlag, -// String cut,JSONObject querySort,JSONArray queryMustNot) { -// JSONObject jsonObject = new JSONObject(); -// //基础添加封装 -// if ("paragraphFlag".equals(paragraphFlag)) { -// jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, null); -// } else { -// jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, null); -// } -// JSONArray jsonArraySort = new JSONArray(); -// jsonArraySort.add(querySort); -// -// //1. 条件,分页 -// JSONObject queryObject = jeroElasticsearchTemplate.buildQuery(null, -// jsonObject, -// highlightMap, -// jsonArraySort, -// pageNo-1, -// pageSize); -// //2. 数据查询 -// JSONObject search = new JSONObject(); -// if(CutEnum.CN.getValue().equals(cut)){ -// search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), -// SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), -// queryObject); -// }else{ -// search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), -// SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), -// queryObject); -// } -// -// List> list = (List>) (((Map) search.get("hits")).get("hits")); -// List> mapList = new ArrayList<>(); -// for (Map map : list) { -// Map mapSource = (Map) map.get("_source"); -// Map mapHighlight = (Map) map.get("highlight"); -// if(ObjectUtils.isNotEmpty(mapHighlight)){ -// for (Map.Entry entry : mapHighlight.entrySet()) { -// String key = entry.getKey(); -// List value = (List) entry.getValue(); -// String fieldConyent= ""; -// for (String s : value) { -// fieldConyent += s; -// } -// mapSource.put(key,fieldConyent); -//// String key = entry.getKey(); -//// List value = (List) entry.getValue(); -//// if(value.size() != 0){ -//// String fieldContent= value.get(0); -//// mapSource.put(key,fieldContent); -//// } -// } -// } -// mapList.add(mapSource); -// } -// -// //处理分页 -// IPage page = new Page(pageNo, pageSize); -// if (StringUtils.isNotBlank(selectValueTwo)) { -// //二次搜索的结果 -// page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); -// page.setRecords(mapList); -// } else { -// //首次搜索的结果 -// page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); -// page.setRecords(mapList); -// } -// return page; -// } -//// @NotNull -//// private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson,Map highlightMap, -//// JSONArray should, Integer pageNo, Integer pageSize, String paragraphFlag, -//// String cut,JSONObject querySort) { -//// JSONObject jsonObject = new JSONObject(); -//// //基础添加封装 -//// if ("paragraphFlag".equals(paragraphFlag)) { -//// jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); -//// } else { -//// jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); -//// } -//// JSONArray jsonArraySort = new JSONArray(); -//// jsonArraySort.add(querySort); -//// -//// //1. 条件,分页 -//// JSONObject queryObject = jeroElasticsearchTemplate.buildQuery(null, -//// jsonObject, -//// highlightMap, -//// jsonArraySort, -//// pageNo-1, -//// pageSize); -//// //2. 数据查询 -//// JSONObject search = new JSONObject(); -//// if(CutEnum.CN.getValue().equals(cut)){ -//// search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), -//// SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), -//// queryObject); -//// }else{ -//// search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), -//// SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), -//// queryObject); -//// } -//// -//// List> list = (List>) (((Map) search.get("hits")).get("hits")); -//// -//// //首次搜索结果 -//// List> mapList = new ArrayList<>(); -//// //二次搜索结果 -//// List> mapListTwo = new ArrayList<>(); -//// -//// for (Map stringObjectMap : list) { -//// Map mapSource = (Map) stringObjectMap.get("_source"); -//// if(StringUtils.isBlank(selectValue)){ -//// mapSource.put("file_text",""); -//// } -//// if (StringUtils.isNotBlank(selectValueTwo)) { -//// //二次查询 -//// int count = 0; -//// for (Map.Entry entry : mapSource.entrySet()) { -//// String valueHighlight = ""; -//// String value = (String) entry.getValue(); -//// //判断value中是否包含二次搜索中的字符 -//// if(StringUtils.isNotBlank(value)){ -//// if(value.contains(selectValueTwo)){ -//// value = subFileText(value, selectValueTwo); -//// count++; -//// String replacementTwo = "" + selectValueTwo + ""; -//// valueHighlight = value.replaceAll(selectValueTwo, replacementTwo); -//// //第一次搜索的也高亮 -//// if(value.contains(selectValue) && !selectValueTwo.contains(selectValue)){ -//// String replacementOne = "" + selectValue + ""; -//// valueHighlight = valueHighlight.replaceAll(selectValue,replacementOne); -//// } -//// if (ObjectUtils.isNotEmpty(valueHighlight)) { -//// entry.setValue(valueHighlight); -//// } -//// }else{ -//// //第二次搜索的时候file_text中不包含搜索条件的时候将file_text赋值空(此时展示拼接的内容) -////// if ("file_text".equals(entry.getKey())) { -////// entry.setValue(""); -////// value = ""; -////// } -////// count++; -//// } -//// } -//// } -//// if (count > 0) { -//// mapListTwo.add(mapSource); -//// } -//// } else { -//// //首次查询(没有输入查询条件) -//// mapList.add(mapSource); -//// //处理高亮module_type,title,serial_number,file_text(输入查询条件后,处理高亮字段) -//// if (StringUtils.isNotBlank(selectValue)) { -//// for (Map.Entry entry : mapSource.entrySet()) { -//// String key = entry.getKey(); -//// String value = String.valueOf(entry.getValue()); -////// StringBuilder sb = new StringBuilder(); -//// String valueHighlight = ""; -//// if (StringUtils.isNotBlank(value)) { -//// //file_text需要单独处理(截取第一处高亮的前后100个字符) -//// if ("file_text".equals(key)) { -//// //判断value中是否包含搜索中的字符 -//// for (String s : selectValue.split(" ")) { -//// if(value.contains(s)){ -//// //截取第一处高亮的前后100个字符 -//// value = subFileText(value, s); -//// break; -//// }else{ -//// //第一次搜索的时候file_text中不包含搜索条件的时候将file_text赋值空(此时展示拼接的内容) -//// entry.setValue(""); -//// value = ""; -//// } -//// } -//// } -//// if ("content".equals(key)) { -//// for (String s : selectValue.split(" ")) { -//// if(value.contains(s)){ -//// value = subFileText(value, s); -//// break; -//// } -//// } -//// } -//// for (String s : selectValue.split(" ")) { -//// String replacement = "" + s + ""; -//// value = value.replaceAll(s, replacement); -//// } -//// -////// String replacement = "" + selectValue + ""; -////// valueHighlight = value.replaceAll(selectValue, replacement); -//// } -//// if (ObjectUtils.isNotEmpty(value)) { -//// entry.setValue(value); -//// } -//// } -//// } -//// } -//// } -//// -//// //处理分页 -//// IPage page = new Page(pageNo, pageSize); -//// if (StringUtils.isNotBlank(selectValueTwo)) { -//// //二次搜索的结果 -//// page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); -//// page.setRecords(mapListTwo); -//// } else { -//// //首次搜索的结果 -//// page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); -//// page.setRecords(mapList); -//// } -//// return page; -//// } -// -// private String subFileText(String fileTextInfo, String selectValue) { -// int i = fileTextInfo.indexOf(selectValue); -// String start = ""; -// String end = ""; -// if(i <100 && (fileTextInfo.length() - i) <100){ -// start = fileTextInfo.substring(0,i); -// end = fileTextInfo.substring(i, fileTextInfo.length()); -// }else if(i <100 && (fileTextInfo.length() - i) >= 100){ -// start = fileTextInfo.substring(0, i); -// end = fileTextInfo.substring(i, i+100); -// }else if(i >= 100 && (fileTextInfo.length() - i) >= 100){ -// start = fileTextInfo.substring(i-100, i); -// end = fileTextInfo.substring(i, i+100); -// }else if(i >= 100 && (fileTextInfo.length() - i) < 100){ -// start = fileTextInfo.substring(i-100, i); -// end = fileTextInfo.substring(i, fileTextInfo.length()); -// } -// String result = start + end; -// return result; -// } -// private String getFileText(String fileTextInfo, String selectValue) { -// String beginStr = ""; -// String endStr = ""; -// for (int i = 0; i < fileTextInfo.length(); i++) { -// String chStr = String.valueOf(fileTextInfo.charAt(i)); -// if (selectValue.contains(chStr)) { -// if (i >= 100) { -// int begin = i - 100; -// beginStr = fileTextInfo.substring(begin, i); -// int b = 0; -// } else { -// beginStr = fileTextInfo.substring(0, i); -// } -// int index = fileTextInfo.length() - i; -// if (index <= 100) { -// endStr = fileTextInfo.substring(i, fileTextInfo.length()); -// } else { -// endStr = fileTextInfo.substring(i, i + 100); -// } -// break; -// } -// } -// String result = beginStr + endStr; -// return result; -// } -// -// private boolean judgeContains(String oldStr, String newStr) { -// if (StringUtils.isBlank(oldStr) || StringUtils.isBlank(newStr)) { -// return false; -// } -// int count = 0; -// for (int i = 0; i < newStr.length(); i++) { -// String chStr = String.valueOf(newStr.charAt(i)); -// if (oldStr.contains(chStr)) { -// count++; -// } -// } -// if (count > 0) { -// return true; -// } else { -// return false; -// } -// } -// -// -// private void solveTime(Map mapTemp) { -// String implementTime = (String) mapTemp.get("implement_time"); -// String issueTime = (String) mapTemp.get("issue_time"); -// if (StringUtils.isNotBlank(implementTime)) { -// mapTemp.put("implement_time", implementTime.split(" ")[0]); -// } -// if (StringUtils.isNotBlank(issueTime)) { -// mapTemp.put("issue_time", issueTime.split(" ")[0]); -// } -// } -// -// @Override -// public void deleteById(String ids) { -// for (String id : ids.split(",")) { -// jeroElasticsearchTemplate.delete(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), id); -// } -// } -// -// @Override -// public void deleteAll() { -// jeroElasticsearchTemplate.removeIndex(SearchEnum.INDEX_NAME_DOCUMENT.getValue()); -// jeroElasticsearchTemplate.removeIndex(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); -// jeroElasticsearchTemplate.removeIndex(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); -// } -// -// -// /** -// * 查询段落 -// * -// * @param map -// * @return -// */ -// @Override -// public IPage getParagraphInfoList(Map map) { -// if(ObjectUtils.isEmpty(map.get("mapOne"))){ -// ((Map) map.get("mapOne")).put("flag",SEARCH_FLAG); -// } -// String cut = (String) map.get("cut"); -// //module_type 代表文档库的段落 -// //判断索引是否存在 -// boolean flagTemp = true; -// if(CutEnum.CN.getValue().equals(cut)){ -// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); -// }else{ -// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); -// } -// if (!flagTemp) { -// return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); -// } -// //文档库所有的字段 -// List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); -// //输入框字段 -// List inputOnlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) -// || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType())) -// .collect(Collectors.toList()); -// List inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -// inputFieldList.add("file_text");//在输入框的类型中添加正文字段 -// inputFieldList.add("flag");//标识(默认展示基础数据,不展示文件数据) -// -// -// Map mapOne = (Map) map.get("mapOne"); -// Map mapTwo = (Map) map.get("mapTwo"); -// -// JSONArray queryMapJson = new JSONArray(); -// JSONArray queryMapJsonTemp = new JSONArray(); -// JSONArray queryMapJsonTwo = new JSONArray(); -// JSONArray queryMapJsonThree = new JSONArray(); -// JSONArray queryMapJsonAll = new JSONArray(); -// //首次查询条件 -// if (ObjectUtils.isNotEmpty(mapOne)) { -// if(StringUtils.isNotBlank((String)mapOne.get("title")) -// || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("flag",SEARCH_FLAG ); -// queryMap.put("match_phrase", queryMapTemp); -// queryMapJsonTemp.add(queryMap); -// } -// for (Map.Entry entry : mapOne.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// Map queryMap3 = new HashMap<>(); -// queryMap3.put("query",s); -// queryMap3.put("minimum_should_match",2); -// queryMapTemp.put(key, queryMap3); -// queryMap.put("match", queryMapTemp); -// queryMapJson.add(queryMap); -// } -// } -// } -// if(CollectionUtils.isNotEmpty(queryMapJsonTemp)){ -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTemp, null, null); -// queryMapJsonAll.add(jsonObject); -// } -// if(CollectionUtils.isNotEmpty(queryMapJson)){ -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); -// queryMapJsonAll.add(jsonObject); -// } -// } -// -// String ids = (String) mapTwo.get("ids"); -// //二次查询条件 -// if (ObjectUtils.isNotEmpty(mapTwo)) { -// mapTwo.remove("ids"); -// for (Map.Entry entry : mapTwo.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (ObjectUtils.isNotEmpty(value)) { -// for (String s : value.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// Map queryMap3 = new HashMap<>(); -// queryMap3.put("query",s); -// queryMap3.put("minimum_should_match",2); -// queryMapTemp.put(key, queryMap3); -// queryMap.put("match", queryMapTemp); -// queryMapJsonTwo.add(queryMap); -// } -// } -// } -// if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){ -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTwo, null, null); -// queryMapJsonAll.add(jsonObject); -// } -// } -// -// //ids查询条件 -// if (StringUtils.isNotBlank(ids)) { -// for (String s : ids.split(",")) { -// Map queryMap = new HashMap<>(); -// Map queryMapTemp = new HashMap<>(); -// queryMapTemp.put("id", s); -// queryMap.put("match_phrase", queryMapTemp); -// queryMapJsonThree.add(queryMap); -// } -// } -// if(CollectionUtils.isNotEmpty(queryMapJsonThree)){ -// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonThree); -// queryMapJsonAll.add(jsonObject); -// } -// -// //排序 -// JSONObject sort = new JSONObject(); -//// Map mapSort = new HashMap<>(); -//// Map mapSortTemp = new HashMap<>(); -//// mapSort.put("order","asc"); -//// mapSortTemp.put("file_sort.keyword",mapSort); -//// sort.putAll(mapSortTemp); -// -// Map score = new HashMap<>(); -// Map score1 = new HashMap<>(); -// score.put("order","desc"); -// score1.put("_score",score); -// sort.putAll(score1); -// -// int pageNo = Integer.parseInt(map.get("pageNo").toString()); -// int pageSize = Integer.parseInt(map.get("pageSize").toString()); -// //判断第一次传参和第二次传参 inputFieldList -// String selectValue = ""; -// String selectValueTwo = ""; -// Map mapHighlight = new HashMap<>(); -// Map mapHighlight1 = new HashMap<>(); -// for (Map.Entry entry : mapOne.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { -// selectValue = value; -// highlight(mapHighlight, key); -// } -// mapHighlight1.put("fields",mapHighlight); -// } -// for (Map.Entry entry : mapTwo.entrySet()) { -// String key = entry.getKey(); -// String value = (String) entry.getValue(); -// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { -// selectValueTwo = value; -// highlight(mapHighlight, key); -// } -// mapHighlight1.put("fields",mapHighlight); -// } -// //段落的标识 -// String paragraphFlag = "paragraphFlag"; -// -// -// IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null, -// pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,null); -// return iPage; -// } -// -// private void highlight(Map mapHighlight, String key) { -// Map mapTemp = new HashMap<>(); -// List list = new ArrayList<>(); -// list.add(""); -// List list1 = new ArrayList<>(); -// list1.add(""); -// mapTemp.put("pre_tags", list); -// mapTemp.put("post_tags", list1); -// mapTemp.put("fragment_size", 200);//高亮字段内容长度,去除html样式标签,统计字数,设置为200 -// mapTemp.put("number_of_fragments", 1);//高亮内容默认分为5段, 此处设置为一段 -// mapTemp.put("type", "plain"); -// mapHighlight.put(key, mapTemp); -// } -//// @Override -//// public IPage getParagraphInfoList(Map map) { -//// if(ObjectUtils.isEmpty(map.get("mapOne"))){ -//// ((Map) map.get("mapOne")).put("flag",SEARCH_FLAG); -//// } -//// String cut = (String) map.get("cut"); -//// //module_type 代表文档库的段落 -//// //判断索引是否存在 -//// boolean flagTemp = true; -//// if(CutEnum.CN.getValue().equals(cut)){ -//// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); -//// }else{ -//// flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); -//// } -//// if (!flagTemp) { -//// return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); -//// } -//// //文档库所有的字段 -//// List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); -//// //输入框字段 -//// List inputOnlCgformFieldList = fieldList.stream() -//// .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) -//// || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType())) -//// .collect(Collectors.toList()); -//// List inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); -//// inputFieldList.add("file_text");//在输入框的类型中添加正文字段 -//// inputFieldList.add("flag");//标识(默认展示基础数据,不展示文件数据) -//// -//// -//// Map mapOne = (Map) map.get("mapOne"); -//// Map mapTwo = (Map) map.get("mapTwo"); -//// -//// JSONArray queryMapJson = new JSONArray(); -//// JSONArray queryMapJsonTemp = new JSONArray(); -//// JSONArray queryMapJsonTwo = new JSONArray(); -//// JSONArray queryMapJsonThree = new JSONArray(); -//// JSONArray queryMapJsonAll = new JSONArray(); -//// //首次查询条件 -//// if (ObjectUtils.isNotEmpty(mapOne)) { -//// if(StringUtils.isNotBlank((String)mapOne.get("title")) -//// || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ -//// Map queryMap = new HashMap<>(); -//// Map queryMapTemp = new HashMap<>(); -//// queryMapTemp.put("flag",SEARCH_FLAG ); -//// queryMap.put("match_phrase", queryMapTemp); -//// queryMapJsonTemp.add(queryMap); -//// } -//// for (Map.Entry entry : mapOne.entrySet()) { -//// String key = entry.getKey(); -//// String value = (String) entry.getValue(); -//// if (ObjectUtils.isNotEmpty(value)) { -//// for (String s : value.split(",")) { -//// Map queryMap = new HashMap<>(); -//// Map queryMapTemp = new HashMap<>(); -//// Map queryMap3 = new HashMap<>(); -//// queryMap3.put("query",s); -//// queryMap3.put("minimum_should_match",2); -//// queryMapTemp.put(key, queryMap3); -//// queryMap.put("match", queryMapTemp); -//// queryMapJson.add(queryMap); -//// } -////// for (String s : value.split(",")) { -////// Map queryMap = new HashMap<>(); -////// Map queryMapTemp = new HashMap<>(); -////// Map queryMap3 = new HashMap<>(); -////// queryMap3.put("query",s); -////// queryMap3.put("slop",1); -////// queryMapTemp.put(key, queryMap3); -////// queryMap.put("match_phrase", queryMapTemp); -////// queryMapJson.add(queryMap); -////// } -//// } -//// } -//// if(CollectionUtils.isNotEmpty(queryMapJsonTemp)){ -//// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTemp, null, null); -//// queryMapJsonAll.add(jsonObject); -//// } -//// if(CollectionUtils.isNotEmpty(queryMapJson)){ -//// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); -//// queryMapJsonAll.add(jsonObject); -//// } -//// } -//// -//// String ids = (String) mapTwo.get("ids"); -//// //二次查询条件 -//// if (ObjectUtils.isNotEmpty(mapTwo)) { -//// mapTwo.remove("ids"); -//// for (Map.Entry entry : mapTwo.entrySet()) { -//// String key = entry.getKey(); -//// String value = (String) entry.getValue(); -//// if (ObjectUtils.isNotEmpty(value)) { -//// for (String s : value.split(",")) { -//// Map queryMap = new HashMap<>(); -//// Map queryMapTemp = new HashMap<>(); -//// Map queryMap3 = new HashMap<>(); -//// queryMap3.put("query",s); -//// queryMap3.put("minimum_should_match",2); -//// queryMapTemp.put(key, queryMap3); -//// queryMap.put("match", queryMapTemp); -//// queryMapJsonTwo.add(queryMap); -//// } -////// for (String s : value.split(",")) { -////// Map queryMap = new HashMap<>(); -////// Map queryMapTemp = new HashMap<>(); -////// Map queryMap3 = new HashMap<>(); -////// queryMap3.put("query",s); -////// queryMap3.put("slop",1); -////// queryMapTemp.put(key, queryMap3); -////// queryMap.put("match_phrase", queryMapTemp); -////// queryMapJsonTwo.add(queryMap); -////// } -//// } -//// } -//// if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){ -//// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonTwo, null, null); -//// queryMapJsonAll.add(jsonObject); -//// } -//// } -//// -//// //ids查询条件 -//// if (StringUtils.isNotBlank(ids)) { -//// for (String s : ids.split(",")) { -//// Map queryMap = new HashMap<>(); -//// Map queryMapTemp = new HashMap<>(); -//// queryMapTemp.put("id", s); -//// queryMap.put("match_phrase", queryMapTemp); -//// queryMapJsonThree.add(queryMap); -//// } -//// } -//// if(CollectionUtils.isNotEmpty(queryMapJsonThree)){ -//// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonThree); -//// queryMapJsonAll.add(jsonObject); -//// } -//// -//// //排序 -//// JSONObject sort = new JSONObject(); -//// Map mapSort = new HashMap<>(); -//// Map mapSortTemp = new HashMap<>(); -//// mapSort.put("order","asc"); -//// mapSortTemp.put("file_sort.keyword",mapSort); -//// sort.putAll(mapSortTemp); -//// -//// int pageNo = Integer.parseInt(map.get("pageNo").toString()); -//// int pageSize = Integer.parseInt(map.get("pageSize").toString()); -//// //判断第一次传参和第二次传参 inputFieldList -//// String selectValue = ""; -//// String selectValueTwo = ""; -//// for (Map.Entry entry : mapOne.entrySet()) { -//// String key = entry.getKey(); -//// String value = (String) entry.getValue(); -//// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { -//// selectValue = value; -//// } -//// } -//// for (Map.Entry entry : mapTwo.entrySet()) { -//// String key = entry.getKey(); -//// String value = (String) entry.getValue(); -//// if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) { -//// selectValueTwo = value; -//// } -//// } -//// //段落的标识 -//// String paragraphFlag = "paragraphFlag"; -//// -//// -//// IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, null,null, pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort); -//// return iPage; -//// } -// -//} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/entity/ParamsManifestTodoCenterEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/entity/ParamsManifestTodoCenterEO.java index 9be55c843..6f210c31a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/entity/ParamsManifestTodoCenterEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/entity/ParamsManifestTodoCenterEO.java @@ -47,4 +47,6 @@ public class ParamsManifestTodoCenterEO { //用于区分跳转所带的状态 private String flag; + //项目状态 + private String projectStatus; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java index f83950d1c..51c2504fa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java @@ -1,11 +1,13 @@ package com.jero.modules.todoCenter.mapper; -import java.util.Map; - +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.todoCenter.entity.ProcessInfoEO; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jero.modules.todoCenter.vo.ProcessInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * @Description: 流程信息表 @@ -30,6 +32,9 @@ public interface ProcessInfoEOMapper extends BaseMapper { */ IPage queryProjectProcessTodoTaskListList(IPage page,Map params); + + List queryProjectProcessTodoTaskList(@Param("params") Map params); + /** * 查询法规评估流程分页列表 * @param page diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml index 317cdd972..19d5c11b1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml @@ -230,7 +230,8 @@ plb.studio_engineer, plb.project_version, plb.parent_id, - plb.platform + plb.platform, + plb.project_status FROM process_info pi LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id @@ -325,7 +326,214 @@ plb.studio_engineer, plb.project_version, plb.parent_id, - plb.platform + plb.platform, + plb.project_status + FROM + process_info pi + LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id + LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id + LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id + LEFT JOIN project_laws_inventory pli ON pi.project_laws_inventory_id = pli.id + WHERE + ( + pi.id IN ( + SELECT + pid.process_info_id + FROM + process_info_detail pid + where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus} + ) + ) + AND pi.flow_type IN + + #{item} + + )temp + + order by + temp.end_time IS NULL, + temp.end_time, + temp.project_name IS NULL, + temp.project_name, + standard_info IS NULL, + standard_info, + flow_type_show_order_by + ASC + +