Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage

This commit is contained in:
zyx.net
2022-09-01 09:49:17 +08:00
15 changed files with 301 additions and 40 deletions
@@ -971,3 +971,6 @@ ADD COLUMN `source_en` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_genera
-- 法规技术评估 条款项评估结果表增加字段。 2022-08-26 -- 法规技术评估 条款项评估结果表增加字段。 2022-08-26
ALTER TABLE `laws_weilai`.`laws_technology_evaluation_item_result` ALTER TABLE `laws_weilai`.`laws_technology_evaluation_item_result`
ADD COLUMN `feedback_time` datetime NULL COMMENT '反馈时间' AFTER `laws_technology_evaluation_id`; ADD COLUMN `feedback_time` datetime NULL COMMENT '反馈时间' AFTER `laws_technology_evaluation_id`;
-- 表字段 英文修改 2022-08-31
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Sort Number' WHERE `id` = '1529373706885799937';
@@ -40,7 +40,7 @@ public class ExtRepoData implements Serializable {
private java.lang.String createBy; private java.lang.String createBy;
/**创建日期*/ /**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期") @ApiModelProperty(value = "创建日期")
private java.util.Date createTime; private java.util.Date createTime;
@@ -50,7 +50,7 @@ public class ExtRepoData implements Serializable {
private java.lang.String updateBy; private java.lang.String updateBy;
/**更新日期*/ /**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期") @ApiModelProperty(value = "更新日期")
private java.util.Date updateTime; private java.util.Date updateTime;
@@ -1,18 +1,25 @@
package com.jero.modules.problemKnowledgeBase.controller; package com.jero.modules.problemKnowledgeBase.controller;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCollectEO; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCollectEO;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCollectEOService; import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCollectEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -35,6 +42,8 @@ import com.jero.common.aspect.annotation.AutoLog;
public class ProblemKnowledgeBaseCollectEOController extends JeroController<ProblemKnowledgeBaseCollectEO, IProblemKnowledgeBaseCollectEOService> { public class ProblemKnowledgeBaseCollectEOController extends JeroController<ProblemKnowledgeBaseCollectEO, IProblemKnowledgeBaseCollectEOService> {
@Autowired @Autowired
private IProblemKnowledgeBaseCollectEOService problemKnowledgeBaseCollectEOService; private IProblemKnowledgeBaseCollectEOService problemKnowledgeBaseCollectEOService;
@Autowired
private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService;
/** /**
* 分页列表查询 * 分页列表查询
@@ -167,4 +176,33 @@ public class ProblemKnowledgeBaseCollectEOController extends JeroController<Prob
return super.importExcel(request, response, ProblemKnowledgeBaseCollectEO.class); return super.importExcel(request, response, ProblemKnowledgeBaseCollectEO.class);
} }
@AutoLog(value = "我的收藏-分页列表查询-问题知识库")
@ApiOperation(value="我的收藏-分页列表查询-问题知识库", notes="我的收藏-分页列表查询-问题知识库")
@GetMapping(value = "/queryCollectPageList")
public Result<?> queryCollectPageList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
this.problemKnowledgeBaseEOService.createQueryPermission(queryWrapper,problemKnowledgeBaseEO);
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<ProblemKnowledgeBaseCollectEO> collectEOQueryWrapper = new QueryWrapper<>();
collectEOQueryWrapper.lambda().eq(ProblemKnowledgeBaseCollectEO::getCollectUserId,currentUser.getId());
List<ProblemKnowledgeBaseCollectEO> collectEOList = this.problemKnowledgeBaseCollectEOService.list(collectEOQueryWrapper);
if(CollectionUtils.isNotEmpty(collectEOList)){
List<String> problemKnowledgeBaseIdList = collectEOList.stream().map(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
queryWrapper.lambda().in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
IPage<ProblemKnowledgeBaseEO> pageList = this.problemKnowledgeBaseEOService.page(page, queryWrapper);
this.problemKnowledgeBaseEOService.disposeData(pageList.getRecords(),problemKnowledgeBaseEO.getCut());
return Result.OK(pageList);
}
return Result.OK();
}
} }
@@ -4,6 +4,8 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
@@ -172,4 +174,11 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
return super.importExcel(request, response, ProblemKnowledgeBaseEO.class); return super.importExcel(request, response, ProblemKnowledgeBaseEO.class);
} }
@AutoLog(value = "问题知识库表-转发")
@ApiOperation(value="问题知识库表-转发", notes="问题知识库表-转发")
@PostMapping(value = "/forward")
public Result<?> forward(@RequestBody JSONObject json) {
return this.problemKnowledgeBaseEOService.forward(json);
}
} }
@@ -1,6 +1,8 @@
package com.jero.modules.problemKnowledgeBase.service; package com.jero.modules.problemKnowledgeBase.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@@ -75,4 +77,11 @@ public interface IProblemKnowledgeBaseEOService extends IService<ProblemKnowledg
* @param queryWrapper * @param queryWrapper
*/ */
void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO); void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO);
/**
* 转发
* @param json
* @return
*/
Result<?> forward(JSONObject json);
} }
@@ -4,14 +4,21 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.WebsocketConst;
import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.es.JeroElasticsearchTemplate; import com.jero.common.es.JeroElasticsearchTemplate;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.modules.document.enums.SearchEnum; import com.jero.modules.document.enums.SearchEnum;
import com.jero.modules.document.utils.ReadPdfUtil; import com.jero.modules.document.utils.ReadPdfUtil;
import com.jero.modules.document.utils.ReadWordUtil; import com.jero.modules.document.utils.ReadWordUtil;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.message.websocket.WebSocket;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.problemKnowledgeBase.entity.*; import com.jero.modules.problemKnowledgeBase.entity.*;
@@ -20,16 +27,24 @@ import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum;
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum; import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper; import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.*; import com.jero.modules.problemKnowledgeBase.service.*;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum; import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum;
import com.jero.modules.system.entity.SysAnnouncement;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.enums.DicCodeEnum;
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.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils; import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -37,6 +52,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
/** /**
@@ -67,10 +83,23 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
private JeroElasticsearchTemplate jeroElasticsearchTemplate; private JeroElasticsearchTemplate jeroElasticsearchTemplate;
@Autowired @Autowired
private IOSSFileService iOSSFileService; private IOSSFileService iOSSFileService;
@Resource
private WebSocket webSocket;
@Autowired
private ISysAnnouncementService sysAnnouncementService;
@Resource
private IFeishuService iFeishuService;
@Autowired
private ISysDepartService sysDepartService;
@Autowired
private ISysUserService sysUserService;
public static final String SEARCH_FLAG = "魑"; public static final String SEARCH_FLAG = "魑";
@Value(value = "${jero.path.upload}") @Value(value = "${jero.path.upload}")
private String uploadpath; private String uploadpath;
@Value(value = "${jero.backUrl}")
private String backUrl;
/** /**
* 保存 * 保存
@@ -724,4 +753,110 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}); });
} }
} }
@Override
public Result<?> forward(JSONObject json) {
String cut = json.getString("cut");
String userIds = json.getString("userIds");
String departIds = json.getString("departIds");
if(StringUtils.isEmpty(userIds) && StringUtils.isNotEmpty(departIds)){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
throw new JeroBootException("至少选择一个人或部门进行转发!");
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
throw new JeroBootException("Select at least one person or department to forward!");
}
}
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<SysUser> userList = new ArrayList<>();
Set<String> allDepartIds = new HashSet<>();
if(StringUtils.isNotEmpty(departIds)){
String[] departIdArr = departIds.split(",");
for (String departId : departIdArr) {
List<String> subDepIdsByDepId = this.sysDepartService.getSubDepIdsByDepId(departId);
allDepartIds.addAll(subDepIdsByDepId);
}
//查询部门下的人员
if(allDepartIds.size() != 0){
List<SysUser> userListByDepIds = this.sysUserService.getUserListByDepIds(new ArrayList<>(allDepartIds));
userList.addAll(userListByDepIds);
}
}
if(StringUtils.isNotEmpty(userIds)){
List<SysUser> sysUsers = this.sysUserService.querySysUserListByIdList(Arrays.asList(userIds.split(",")));
userList.addAll(sysUsers);
}
List<String> userIdList = new ArrayList<>();
List<String> thirdIdList = new ArrayList<>();
if (userList.size() != 0) {
userIdList.addAll(userList.stream().map(SysUser::getId).distinct().collect(Collectors.toList()));
thirdIdList.addAll(userList.stream().map(SysUser::getThirdId).distinct().collect(Collectors.toList()));
}
//String msgType = json.getString("msgType");
String problemKnowledgeBaseId = json.getString("problemKnowledgeBaseId");
//问题知识库标题
String problemKnowledgeBaseTitle = json.getString("problemKnowledgeBaseTitle");
//XXX向您推送了XXXXXXXXXX,请注意查看。
String msgContentEN = currentUser.getUsername()+" pushed " + problemKnowledgeBaseTitle + " to you.Please be reminded to check it out.";
String msgTitle = problemKnowledgeBaseTitle + " has been shared with you, please check.";
//飞书跳转链接
String hrefFeishu = backUrl + JumpLinkEnum.PROBLEM_KNOWLEDGE_BASE_DETAIL.getLink() + "?id=" + problemKnowledgeBaseId;
//系统内部跳转链接
String href = "<a href='"
+ JumpLinkEnum.PROBLEM_KNOWLEDGE_BASE_DETAIL.getLink()+ "?id="
+ problemKnowledgeBaseId
+ "'>" + " View details" + "</a>";
String contentInfo = msgContentEN + " " + href;
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, msgContentEN, contentInfo,MessageTypeEnum.PUSH.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
this.sysAnnouncementService.saveAnnouncement(sysAnnouncement);
this.sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo);
//飞书
try {
this.iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), msgContentEN, MessageTypeEnum.PUSH.getName(), hrefFeishu);
} catch (IOException e) {
log.error("飞书推送失败");
}
this.sendWebsocket(problemKnowledgeBaseId, contentInfo);
return Result.OK("转发成功!");
}
public void sendWebsocket(String msgId, String msgTet) {
JSONObject obj = new JSONObject();
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC);
obj.put(WebsocketConst.MSG_ID, msgId);
obj.put(WebsocketConst.MSG_TXT, msgTet);
webSocket.sendMessage(obj.toJSONString());
}
@NotNull
public SysAnnouncement getSysAnnouncement(List<String> userIdList,
String title,
String content,
String contentInfo,
String messageType,
String initiator) {
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setInitiator(initiator);
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
sysAnnouncement.setMsgCategory(messageType);//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setTitile(title);
sysAnnouncement.setMsgContent(content);
sysAnnouncement.setMsgContentInfo(contentInfo);
sysAnnouncement.setUserIds(StringUtils.join(userIdList, ","));
return sysAnnouncement;
}
} }
@@ -328,9 +328,11 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
if (key.equals("serial_number")){ if (key.equals("serial_number")){
s = s.toLowerCase();
queryMap.put(key, "*" + s + "*"); queryMap.put(key, "*" + s + "*");
map.put("wildcard", queryMap); map.put("wildcard", queryMap);
} else { } else {
s = s.toLowerCase();
queryMapTemp.put("query", s); queryMapTemp.put("query", s);
queryMapTemp.put("minimum_should_match", 2); queryMapTemp.put("minimum_should_match", 2);
queryMap.put(key, queryMapTemp); queryMap.put(key, queryMapTemp);
@@ -919,8 +921,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
*/ */
@Override @Override
public IPage getParagraphInfoList(Map<String, Object> map) { public IPage getParagraphInfoList(Map<String, Object> map) {
//指定module_type_flag= WDK
JSONArray queryJsonMust = new JSONArray();
Map<String, Object> mapModule = new HashMap<>();
Map<String, Object> mapModule1 = new HashMap<>();
Map<String, Object> 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"))){ if(ObjectUtils.isEmpty(map.get("mapOne"))){
((Map<String, Object>) map.get("mapOne")).put("flag",SEARCH_FLAG); ((Map<String, Object>) map.get("mapOne")).put("flag",SEARCH_FLAG);
}else{
Map<String, Object> mapTemp = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> 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"); String cut = (String) map.get("cut");
//module_type 代表文档库的段落 //module_type 代表文档库的段落
@@ -956,17 +977,20 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
JSONArray queryMapJsonAll = new JSONArray(); JSONArray queryMapJsonAll = new JSONArray();
//首次查询条件 //首次查询条件
if (ObjectUtils.isNotEmpty(mapOne)) { if (ObjectUtils.isNotEmpty(mapOne)) {
if(StringUtils.isNotBlank((String)mapOne.get("title")) // if(StringUtils.isNotBlank((String)mapOne.get("title"))
|| StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ // || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){
Map<String, Object> queryMap = new HashMap<>(); // Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); // Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put("flag",SEARCH_FLAG ); // queryMapTemp.put("flag",SEARCH_FLAG );
queryMap.put("match_phrase", queryMapTemp); // queryMap.put("match_phrase", queryMapTemp);
queryMapJsonTemp.add(queryMap); // queryMapJsonTemp.add(queryMap);
} // }
for (Map.Entry<String, Object> entry : mapOne.entrySet()) { for (Map.Entry<String, Object> entry : mapOne.entrySet()) {
String key = entry.getKey(); String key = entry.getKey();
String value = (String) entry.getValue(); String value = (String) entry.getValue();
if("serial_number".equals(key) || "title".equals(key) || "file_text".equals(key)){
value = value.toLowerCase();
}
if (ObjectUtils.isNotEmpty(value)) { if (ObjectUtils.isNotEmpty(value)) {
for (String s : value.split(",")) { for (String s : value.split(",")) {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
@@ -1007,6 +1031,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null);
queryMapJsonAll.add(jsonObject); queryMapJsonAll.add(jsonObject);
} }
if(CollectionUtils.isNotEmpty(queryJsonMust)){
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryJsonMust, null, null);
queryMapJsonAll.add(jsonObject);
}
} }
String ids = (String) mapTwo.get("ids"); String ids = (String) mapTwo.get("ids");
@@ -1113,7 +1141,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null, IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null,
pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,null); pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,queryJsonMustNot);
return iPage; return iPage;
} }
@@ -65,10 +65,7 @@ import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -419,6 +416,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){ } else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){
continue; continue;
} else { } else {
if ("iterms_conditions".equals(key)) {
value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
}
valuesBuilder.append("," + "'" + value + "'"); valuesBuilder.append("," + "'" + value + "'");
} }
@@ -787,8 +787,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
//处理列表表头排序 //处理列表表头排序
if("page".equals(type)) { if("page".equals(type)) {
conditionSb.append(" order by SAR_FILE_SPLIT_MENU.display_seq asc"); conditionSb.append(" order by SAR_FILE_SPLIT_MENU.display_seq asc, zhan3_shi4_shun4_xu4 is null, zhan3_shi4_shun4_xu4 asc"); // 默认排序
// TODO 处理空值排最后
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) { if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(", sar_file_split_items." + (String) parameter.get("orderByField")); conditionSb.append(", sar_file_split_items." + (String) parameter.get("orderByField"));
if ("1".equals((String) parameter.get("orderBy"))) { if ("1".equals((String) parameter.get("orderBy"))) {
+10 -5
View File
@@ -48,10 +48,10 @@
type: Object, type: Object,
default: {} default: {}
}, },
title:{ title: {
type: String, type: String,
default:'' default: ''
}, }
}, },
data() { data() {
return { return {
@@ -102,7 +102,12 @@
this.visibleTree = false this.visibleTree = false
}, },
handleSubmit() { handleSubmit() {
this.$emit('SelectedByForm',this.userIds.join(',')) if (this.userIds && this.userIds.length > 0) {
this.submitLoading = true
this.$emit('SelectedByForm', this.userIds.join(','))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
}, },
onSearch(e) { onSearch(e) {
this.gData = [] this.gData = []
@@ -171,7 +176,7 @@
.drawer-bootom-button { .drawer-bootom-button {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
z-index:100; z-index: 100;
width: 100%; width: 100%;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
padding: 10px 16px; padding: 10px 16px;
@@ -175,6 +175,12 @@
dataIndex: 'releaseStatus_dictText', dataIndex: 'releaseStatus_dictText',
ellipsis: true ellipsis: true
}, },
{
title: this.$t('creater'),
align: 'center',
dataIndex: 'createBy',
ellipsis: true
},
{ {
title: this.$t('operation'), title: this.$t('operation'),
align: 'center', align: 'center',
@@ -3,9 +3,9 @@
<div class="doc-detail-wrap"> <div class="doc-detail-wrap">
<div class="doc-detail-header" style="position: fixed;top: 0"> <div class="doc-detail-header" style="position: fixed;top: 0">
<div class="doc-detail-title"> <div class="doc-detail-title">
<!-- <span style="line-height: 66px;display: inline-block;float: left">--> <!-- <span style="line-height: 66px;display: inline-block;float: left">-->
<!-- <a-icon type="arrow-left" @click="back" style="margin-right: 6px;"/>--> <!-- <a-icon type="arrow-left" @click="back" style="margin-right: 6px;"/>-->
<!-- </span>--> <!-- </span>-->
{{queryForm.title}} {{queryForm.title}}
</div> </div>
<div class="doc-detail-right"> <div class="doc-detail-right">
@@ -156,8 +156,23 @@
}, },
methods: { methods: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
SelectedByForm() { SelectedByForm(userIds) {
let query = {
userIds: userIds,
departIds: userIds,
problemKnowledgeBaseId: this.queryForm.id,
problemKnowledgeBaseTitle: this.queryForm.title
}
postAction('/problemKnowledgeBase/problemKnowledgeBaseEO/forward', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$refs.SelectedByRef.visible = false
this.$refs.SelectedByRef.submitLoading = false
} else {
this.$message.warning(this.$t('operationFailed'))
this.$refs.SelectedByRef.submitLoading = false
}
})
}, },
queryById() { queryById() {
let query = { let query = {
@@ -10,7 +10,7 @@
<div class="myList-box-content" v-if="dataSource.length > 0"> <div class="myList-box-content" v-if="dataSource.length > 0">
<div class="myList-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="prcClick(item)"> <div class="myList-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="prcClick(item)">
<div class="top"> <div class="top">
<span class="top-text" :title="item.prcNum">{{item.prcNum}}</span> <span class="top-text" :title="item.prcName">{{item.prcName}}</span>
<span class="top-admin" :title="prcTypeName[item.prcType]">{{prcTypeName[item.prcType]}}</span> <span class="top-admin" :title="prcTypeName[item.prcType]">{{prcTypeName[item.prcType]}}</span>
</div> </div>
<div class="button"> <div class="button">
@@ -43,7 +43,9 @@
dataSource: [], dataSource: [],
loading: false, loading: false,
prcTypeName: { prcTypeName: {
1: this.$t('taskConfirmationProcess') 1: this.$t('taskConfirmationProcess'),
5:this.$t('collectionOfRegulatoryOpinionsProcess'),
6:this.$t('regulatoryTechnologyAssessmentProcess')
} }
} }
}, },
@@ -10,8 +10,8 @@
<div class="title-text" :title="$t('title')"> <div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span> <span>{{$t('title')}}</span>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')" <j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParams.title"></a-input> v-model="queryParams.title"></j-input>
</div> </div>
</a-col> </a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" <span style="float: right;overflow: hidden;margin-right: 11px"
@@ -60,7 +60,10 @@
</div> </div>
<!-- </a-tooltip>--> <!-- </a-tooltip>-->
</div> </div>
<div @click="CancelCollectionClick" class="text-text-right-text">{{$t('CancelCollection')}}</div> <div @click="CancelCollectionClick(item)"
:title="$t('CancelCollection')"
class="text-text-right-text">{{$t('CancelCollection')}}
</div>
</div> </div>
</div> </div>
</a-checkbox-group> </a-checkbox-group>
@@ -98,7 +101,8 @@
loading: false, loading: false,
queryParams: {}, queryParams: {},
url: { url: {
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page' getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseCollectEO/queryCollectPageList',
deleteBatch: '/problemKnowledgeBase/problemKnowledgeBaseCollectEO/deleteBatch'
} }
} }
}, },
@@ -107,7 +111,6 @@
}, },
watch: { watch: {
checkboxText: function(value) { checkboxText: function(value) {
console.log(value)
this.conList.forEach(val => { this.conList.forEach(val => {
val.checked = false val.checked = false
}) })
@@ -159,9 +162,11 @@
this.$confirm({ this.$confirm({
content: _this.$t('BatchCancelCollection'), content: _this.$t('BatchCancelCollection'),
onOk() { onOk() {
getAction('', {}).then((res) => { let checkboxText = JSON.parse(JSON.stringify(_this.checkboxText))
deleteAction(_this.url.deleteBatch, { ids: checkboxText.join(',') }).then((res) => {
if (res.success) { if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
_this.checkboxText = []
_this.getList() _this.getList()
} else { } else {
_this.$message.warning(res.message) _this.$message.warning(res.message)
@@ -178,7 +183,7 @@
this.$confirm({ this.$confirm({
content: _this.$t('confirmCancelCollection'), content: _this.$t('confirmCancelCollection'),
onOk() { onOk() {
getAction('', {}).then((res) => { deleteAction(_this.url.deleteBatch, { ids: val.id }).then((res) => {
if (res.success) { if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
_this.getList() _this.getList()
@@ -221,7 +226,7 @@
if (this.conList && this.conList.length > 0) { if (this.conList && this.conList.length > 0) {
this.conList.forEach(val => { this.conList.forEach(val => {
if (val.content) { if (val.content) {
val.contentOne = this.getText(val.content) val.content = this.getText(val.content)
} }
}) })
} }
@@ -48,6 +48,7 @@
<a-input-number class="box-input" <a-input-number class="box-input"
:placeholder="$t('PleaseEnter')+item.db_field_txt" :placeholder="$t('PleaseEnter')+item.db_field_txt"
:disabled="disabled" :disabled="disabled"
:min="0"
v-model="formInline[item.db_field_name]" :max="99999999"/> v-model="formInline[item.db_field_name]" :max="99999999"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -58,8 +58,9 @@
<a-select-option v-for="(item, key) in translationResultsList" <a-select-option v-for="(item, key) in translationResultsList"
:key="key" :key="key"
:value="item.id"> :value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.dbFieldTxt"> <span style="display: inline-block;width: 100%"
{{ item.dbFieldTxt }} :title="language == 'zh-cn' ? item.dbFieldTxt:item.dbFieldEnName">
{{ language == 'zh-cn' ? item.dbFieldTxt:item.dbFieldEnName }}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -94,7 +95,8 @@
</a-row> </a-row>
</a-form-model> </a-form-model>
</a-modal> </a-modal>
<uploadFile ref="uploadFile" :restrictUploads="true" :Uploadable="'.docx,.doc,'" :isMultiple="true" @uploadSuccess="uploadSuccess"/> <uploadFile ref="uploadFile" :restrictUploads="true" :Uploadable="'.docx,.doc,'" :isMultiple="true"
@uploadSuccess="uploadSuccess"/>
<standardData ref="standardDataRef" @standardDataForm="standardDataForm"/> <standardData ref="standardDataRef" @standardDataForm="standardDataForm"/>
</div> </div>
</template> </template>
@@ -155,10 +157,12 @@
}, },
ids: [], ids: [],
translationResultsList: [], translationResultsList: [],
LanguageList: [] LanguageList: [],
language: ''
} }
}, },
mounted() { mounted() {
this.language = localStorage.getItem('language')
this.getTextStatus() this.getTextStatus()
}, },
methods: { methods: {