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

This commit is contained in:
wangzhijiang
2022-08-24 17:15:12 +08:00
50 changed files with 1916 additions and 825 deletions
@@ -161,13 +161,12 @@ public class SarFileCompareItemCommentController extends JeroController<SarFileC
@AutoLog(value = "文档对比信息条款评论表-导出结果")
@ApiOperation(value = "文档对比信息条款评论表-导出结果", notes = "文档对比信息条款评论表-导出结果")
@GetMapping(value = "/exportResXls")
public Result<?> exportResXls(@RequestParam(name = "infoId", required = true) String infoId,
public void exportResXls(@RequestParam(name = "infoId", required = true) String infoId,
@RequestParam(name = "selectIds", required = true) String selectIds,
@RequestParam(name = "includeComments", required = true) boolean includeComments,
@RequestParam(name = "cut", required = true) String cut,
HttpServletResponse response) {
sarFileCompareItemCommentService.exportResXls(response, infoId, selectIds, includeComments, cut);
return Result.OK();
}
}
@@ -188,7 +188,13 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentType("application/force-download");
//创建工作表对象
Sheet sheet = workbook.createSheet("对比结果");
String sheetName = "对比结果";
if (CutEnum.CN.getValue().equals(cut)) {
sheetName = "对比结果";
} else {
sheetName = "Comparing results";
}
Sheet sheet = workbook.createSheet(sheetName);
// 创建头部
String header = "";
@@ -197,14 +203,17 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
} else {
header = "Number,Title,Content,Number,Title,Content,Comment";
}
int[] columnWidth = {5000, 5000, 10000, 5000, 5000, 10000, 10000};
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setAlignment(HorizontalAlignment.LEFT);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setWrapText(true);
Row rowHeader = sheet.createRow(0);//开始创建标题行
if (StringUtils.isNotBlank(header)) {
String[] headerArr = header.split(",");
for (int i = 0; i < headerArr.length; i++) {
rowHeader.createCell(i).setCellValue(headerArr[i]);
sheet.setColumnWidth(i, columnWidth[i]);
}
}
int i = 1;
@@ -219,18 +228,28 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
String text = itemLeft.getItemsText();
text = text.replace("<p>", "").replace("</p>", "\r\n");
row.createCell(2).setCellValue(text);
row.setRowStyle(cellStyle);
}
}
String itemIdRight = itemComment.getItemsIdRight();
SarFileCompareItem itemRight = sfcItemMap.get(itemIdRight);
if (null != itemRight) {
row.createCell(3).setCellValue(itemRight.getItemsNum());
row.createCell(4).setCellValue(itemRight.getItemsName());
String text = itemRight.getItemsText();
text = text.replace("<p>", "").replace("</p>", "\r\n");
row.createCell(5).setCellValue(text);
if (!StringUtils.isEmpty(itemIdRight)) {
SarFileCompareItem itemRight = sfcItemMap.get(itemIdRight);
if (null != itemRight) {
row.createCell(3).setCellValue(itemRight.getItemsNum());
row.createCell(4).setCellValue(itemRight.getItemsName());
String text = itemRight.getItemsText();
text = text.replace("<p>", "").replace("</p>", "\r\n");
row.createCell(5).setCellValue(text);
row.setRowStyle(cellStyle);
}
}
row.createCell(6).setCellValue(itemComment.getComment());
for (int j = 0; j < 7; j++) {
Cell cell = row.getCell(j);
if (null != cell) {
cell.setCellStyle(cellStyle);
}
}
i++;
}
if (includeComments || StringUtils.isEmpty(selectIds)) {
@@ -245,13 +264,10 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
sheet.addMergedRegion(rangeAddress);
SarFileCompareInfo compareInfo = sarFileCompareInfoServiceImpl.queryById(infoId);
row.createCell(1).setCellValue(compareInfo.getComments());
row.getCell(1).setCellStyle(cellStyle);
}
for (int j = 0; j < 7; j++) {
sheet.autoSizeColumn(j, true);//设置列宽
}
os = response.getOutputStream();
// File file = new File("C://work/ee.xlsx");
// os = new FileOutputStream(file);
workbook.write(os);
os.flush();
} catch (IOException e) {
@@ -21,6 +21,7 @@ import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -565,69 +566,111 @@ public class FeishuServiceImpl implements IFeishuService {
headerMap.put("Authorization", "Bearer " + token);
headerMap.put("Content-Type", "application/json; charset=utf-8");
String sendJson = " {\n" +
" \"config\": {\n" +
" \"wide_screen_mode\": true\n" +
" },\n" +
//参考:https://open.feishu.cn/tool/cardbuilder?from=openplantform_mcb_entrance
/*String sendJson = "{\n" +
" \"header\": {\n" +
" \"template\": \"green\",\n" +
" \"title\": {\n" +
" \"tag\": \"plain_text\",\n" +
" \"content\": \"点击下方的分类查看常见问题\"\n" +
" },\n" +
" \"template\": \"green\"\n" +
" \"content\": \"知识库分类负责人\",\n" +
" \"tag\": \"plain_text\"\n" +
" }\n" +
" },\n" +
" \"elements\": [\n" +
" {\n" +
" \"fields\": [\n" +
" {\n" +
" \"is_short\": true,\n" +
" \"text\": {\n" +
" \"content\": \"**\uD83D\uDC64 提交人:**\\n<at id=fag43ef3></at>\",\n" +
" \"tag\": \"lark_md\"\n" +
" }\n" +
" }\n" +
" ],\n" +
" \"tag\": \"div\"\n" +
" }\n" +
" ]\n" +
"}";*/
String sendJson = "{\n" +
" \"header\": {\n" +
" \"template\": \"green\",\n" +
" \"title\": {\n" +
" \"content\": \"知识库分类负责人\",\n" +
" \"tag\": \"plain_text\"\n" +
" }\n" +
" }\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(sendJson);
JSONArray elements = new JSONArray();
JSONObject element = new JSONObject();
element.put("tag","action");
element.put("layout","bisected");
JSONArray fields = new JSONArray();
//获取分类
List<ProblemKnowledgeBaseClassifyEO> problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list();
this.problemKnowledgeBaseClassifyEOService.disposeData(problemKnowledgeBaseClassifyEOList);
JSONArray actions = new JSONArray();
//组装推送过去的点击按钮
//获取所有分类下的负责人信息
List<String> chargePersonUserIdList = new ArrayList<>();
for (ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO : problemKnowledgeBaseClassifyEOList) {
JSONObject buttonObject = new JSONObject();
JSONObject text = new JSONObject();
JSONObject value = new JSONObject();
buttonObject.put("tag","button");
text.put("tag","plain_text");
text.put("content",problemKnowledgeBaseClassifyEO.getProblemLabel() + " [" + problemKnowledgeBaseClassifyEO.getChargePersonIdName() + "]");
value.put("chosen",problemKnowledgeBaseClassifyEO.getChargePersonId());
buttonObject.put("text",text);
buttonObject.put("type","primary");
buttonObject.put("value",value);
actions.add(buttonObject);
if(StringUtils.isNotEmpty(problemKnowledgeBaseClassifyEO.getChargePersonId())){
String chargePersonId = problemKnowledgeBaseClassifyEO.getChargePersonId();
for (String chargePerson : chargePersonId.split(",")) {
chargePersonUserIdList.add(chargePerson);
}
}
}
element.put("actions",actions);
if(CollectionUtils.isNotEmpty(chargePersonUserIdList)){
List<SysUser> chargePersonUserList = this.sysUserService.querySysUserListByIdList(chargePersonUserIdList);
//组装推送过去的知识库负责人信息
for (ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO : problemKnowledgeBaseClassifyEOList) {
JSONObject field = new JSONObject();
JSONObject text = new JSONObject();
StringBuilder atUserSb = new StringBuilder();
elements.add(element);
jsonObject.put("elements",elements);
// 设置请求参数
JSONObject paramsMap = new JSONObject();
paramsMap.put("user_ids", userIds);
paramsMap.put("msg_type", "interactive");
paramsMap.put("card", jsonObject);
if(StringUtils.isNotEmpty(problemKnowledgeBaseClassifyEO.getChargePersonId())){
for (String chargePersonId : problemKnowledgeBaseClassifyEO.getChargePersonId().split(",")) {
for (SysUser sysUser : chargePersonUserList) {
if(StringUtils.equals(chargePersonId,sysUser.getId())){
String thirdId = sysUser.getThirdId();
atUserSb.append("<at id=" + thirdId + "></at>");
atUserSb.append(" ");
}
}
}
}
// 发送请求给飞书
String response = null;
try {
response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
// 获取返回结果
JSONObject tokenJson = JSONObject.parseObject(response);
if(!tokenJson.get("code").toString().equals("0")) {
log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
text.put("content","问题标签:" + problemKnowledgeBaseClassifyEO.getProblemLabel() + "\n" + "责任人:" + atUserSb.toString());
text.put("tag","lark_md");
field.put("is_short",true);
field.put("text",text);
fields.add(field);
}
element.put("tag","div");
element.put("fields",fields);
elements.add(element);
jsonObject.put("elements",elements);
// 设置请求参数
JSONObject paramsMap = new JSONObject();
paramsMap.put("user_ids", userIds);
paramsMap.put("msg_type", "interactive");
paramsMap.put("card", jsonObject);
// 发送请求给飞书
String response = null;
try {
response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
// 获取返回结果
JSONObject tokenJson = JSONObject.parseObject(response);
if(!tokenJson.get("code").toString().equals("0")) {
log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
}
}
}
@@ -92,6 +92,7 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
//如果展示权限是公开,则把该数据插入到搜索中心中。
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
}
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
}
/**
@@ -142,11 +143,14 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}
}
//获取所有市场
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
//sbCn sbEn 这两个字段作为es中英文切换
StringBuilder sbCn = new StringBuilder();
esFullText(problemKnowledgeBaseEO,sbCn,null,CutEnum.CN.getValue(),fileTextSb.toString());
esFullText(problemKnowledgeBaseEO,sbCn,null,CutEnum.CN.getValue(),fileTextSb.toString(),targetMarketList);
StringBuilder sbEn = new StringBuilder();
esFullText(problemKnowledgeBaseEO,null,sbEn,CutEnum.EN.getValue(),fileTextSb.toString());
esFullText(problemKnowledgeBaseEO,null,sbEn,CutEnum.EN.getValue(),fileTextSb.toString(),targetMarketList);
Map<String, Object> stringMapCn = new HashMap<>();
this.problemKnowledgeBaseEOConvertMapByCut(problemKnowledgeBaseEO,CutEnum.EN.getValue(),stringMapCn);
@@ -216,10 +220,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}
}
public void esFullText(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,StringBuilder sbCn,StringBuilder sbEn,String cut,String fileText){
public void esFullText(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,StringBuilder sbCn,StringBuilder sbEn,String cut,String fileText,List<DictModel> targetMarketList){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getShowPermissions_dicText())){
sbCn.append("展示权限" + ":" + problemKnowledgeBaseEO.getShowPermissions_dicText() + " ");
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getShowPermissions())){
String textByValue = ShowPermissionsEnum.getTextByValue(problemKnowledgeBaseEO.getShowPermissions(), cut);
sbCn.append("展示权限" + ":" + textByValue + " ");
}else {
sbCn.append("展示权限" + ":" + "-- ");
}
@@ -236,8 +241,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
sbCn.append("问题分类" + ":" + "-- ");
}
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getTargetMarket_dicText())){
sbCn.append("市场" + ":" + problemKnowledgeBaseEO.getTargetMarket_dicText() + " ");
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getTargetMarket())){
String[] targetMarketArr = problemKnowledgeBaseEO.getTargetMarket().split(",");
String targetMarket = targetMarketList.stream().filter(e -> {
boolean flag = false;
for (String s : targetMarketArr) {
if (StringUtils.equals(s, e.getValue())) {
flag = true;
}
}
return flag;
}).map(DictModel::getText).collect(Collectors.joining(","));
sbCn.append("市场" + ":" + targetMarket + " ");
}else {
sbCn.append("市场" + ":" + "-- ");
}
@@ -255,8 +271,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}*/
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getContent())){
sbCn.append("</br>");
sbCn.append("内容" + ":" + problemKnowledgeBaseEO.getContent() + " ");
}else {
sbCn.append("</br>");
sbCn.append("内容" + ":" + "-- ");
}
@@ -268,7 +286,8 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getShowPermissions())){
sbEn.append("Display permission" + ":" + problemKnowledgeBaseEO.getShowPermissions() + " ");
String textByValue = ShowPermissionsEnum.getTextByValue(problemKnowledgeBaseEO.getShowPermissions(), cut);
sbEn.append("Display permission" + ":" + textByValue + " ");
}else {
sbEn.append("Display permission" + ":" + "-- ");
}
@@ -286,7 +305,18 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getTargetMarket())){
sbEn.append("Market" + ":" + problemKnowledgeBaseEO.getTargetMarket() + " ");
String[] targetMarketArr = problemKnowledgeBaseEO.getTargetMarket().split(",");
String targetMarket = targetMarketList.stream().filter(e -> {
boolean flag = false;
for (String s : targetMarketArr) {
if (StringUtils.equals(s, e.getValue())) {
flag = true;
}
}
return flag;
}).map(DictModel::getTextEn).collect(Collectors.joining(","));
sbEn.append("Market" + ":" + targetMarket + " ");
}else {
sbEn.append("Market" + ":" + "-- ");
}
@@ -304,8 +334,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}*/
if(StringUtils.isNotEmpty(problemKnowledgeBaseEO.getContent())){
sbEn.append("</br>");
sbEn.append("Content" + ":" + problemKnowledgeBaseEO.getContent() + " ");
}else {
sbEn.append("</br>");
sbEn.append("Content" + ":" + "-- ");
}
@@ -349,6 +381,7 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
convertAfterMap.put("standard_title",problemKnowledgeBaseEO.getStandTitle());
convertAfterMap.put("content",problemKnowledgeBaseEO.getContent());
convertAfterMap.put("createTime",problemKnowledgeBaseEO.getCreateTime());
convertAfterMap.put("show_permissions",problemKnowledgeBaseEO.getShowPermissions());
}
}
@@ -367,10 +400,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
//如果该条问题知识库的展示权限为私密,则创建权限表数据
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
this.batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
this.deleteElasticsearchData(problemKnowledgeBaseEO.getId());
}else {
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
//this.deleteElasticsearchData(problemKnowledgeBaseEO.getId());
}
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
}
/**
@@ -1,26 +1,28 @@
package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
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.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.service.IConditionAssessmentEOService;
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 com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.vo.ConditionAssessmentVO;
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.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
@@ -181,4 +183,16 @@ public class ConditionAssessmentEOController extends JeroController<ConditionAss
return conditionAssessmentEOService.addOrUpdate(conditionAssessmentEO);
}
/**
* 批量添加或修改
*
* @param conditionAssessmentVO
* @return
*/
@AutoLog(value = "任务清单-项目状态评估表-批量添加或修改")
@ApiOperation(value="任务清单-项目状态评估表-批量添加或修改", notes="任务清单-项目状态评估表-批量添加或修改")
@PostMapping(value = "/addOrUpdateBatch")
public Result<?> addOrUpdateConditionAssessmentBatch(@RequestBody ConditionAssessmentVO conditionAssessmentVO) {
return conditionAssessmentEOService.addOrUpdateBatch(conditionAssessmentVO);
}
}
@@ -1,27 +1,27 @@
package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
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 com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.project.vo.ProjectTaskInventoryVO;
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.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
@@ -203,4 +203,32 @@ public class ProjectTaskInventoryEOController extends JeroController<ProjectTask
public Result<?> remindDispose(@RequestBody JSONObject jsonObject){
return this.projectTaskInventoryEOService.remindDispose(jsonObject);
}
/**
* 编辑
*
* @param projectTaskInventoryVO
* @return
*/
@AutoLog(value = "项目库-任务清单表-批量维护进度")
@ApiOperation(value="项目库-任务清单表-批量维护进度", notes="项目库-任务清单表-批量维护进度")
@PostMapping(value = "/editBatch")
public Result<?> editCertificationProgressBatch(@RequestBody ProjectTaskInventoryVO projectTaskInventoryVO) {
projectTaskInventoryEOService.editBatch(projectTaskInventoryVO);
return Result.OK("编辑成功!");
}
/**
* 认证进度和当前状态修改时,校验角色是否符合
*
* @param projectTaskInventoryVO
* @return
*/
@AutoLog(value = "项目库-任务清单表-校验角色是否符合")
@ApiOperation(value="项目库-任务清单表-校验角色是否符合", notes="项目库-任务清单表-校验角色是否符合")
@PostMapping(value = "/verifyRoleCode")
public Result<?> verifyRoleCode(@RequestBody ProjectTaskInventoryVO projectTaskInventoryVO) {
List<String> msgList = projectTaskInventoryEOService.verifyRoleCode(projectTaskInventoryVO);
return Result.OK(msgList);
}
}
@@ -1,11 +1,11 @@
package com.jero.modules.project.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.entity. ConditionAssessmentEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.vo.ConditionAssessmentVO;
import java.util.List;
import java.util.Map;
@@ -92,4 +92,10 @@ public interface IConditionAssessmentEOService extends IService<ConditionAssessm
* @return
*/
List<Map<String,Object>> getProjectStatusAssessStatisticsGroupByTerritory(Map<String,Object> params);
/**
* 任务清单-项目状态评估表-批量添加或修改
* @param conditionAssessmentVO
*/
Result<?> addOrUpdateBatch(ConditionAssessmentVO conditionAssessmentVO);
}
@@ -1,9 +1,10 @@
package com.jero.modules.project.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.vo.ProjectTaskInventoryVO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -84,5 +85,21 @@ public interface IProjectTaskInventoryEOService extends IService<ProjectTaskInve
*/
void deleteByProjectLawsInventoryIds(List<String> projectLawsInventoryIds);
/**
* 批量更新认证进度
*
* @param projectTaskInventoryVO
* @return
*/
void editBatch(ProjectTaskInventoryVO projectTaskInventoryVO);
/**
* 校验角色是否符合
*
* @param projectTaskInventoryVO
* @return
*/
List<String> verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO);
void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectTaskInventoryEO projectTaskInventoryEO);
}
@@ -1,6 +1,7 @@
package com.jero.modules.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ConditionAssessmentEO;
@@ -8,6 +9,7 @@ import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.mapper.ConditionAssessmentEOMapper;
import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.vo.ConditionAssessmentVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -16,8 +18,6 @@ import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 任务清单-项目状态评估表
* @Author: jero-boot
@@ -251,4 +251,70 @@ public class ConditionAssessmentEOServiceImpl extends ServiceImpl<ConditionAsses
}
return result;
}
@Override
public Result<?> addOrUpdateBatch(ConditionAssessmentVO conditionAssessmentVO) {
List<String> projectLawsInventoryIdList = Arrays.asList(conditionAssessmentVO.getProjectLawsInventoryIds().split(","));
List<String> roleCodeListOld = Arrays.asList(conditionAssessmentVO.getRoleCodes().split(","));
for (int i=0; i < projectLawsInventoryIdList.size(); i++) {
String projectLawsInventoryId = projectLawsInventoryIdList.get(i);
String roleCode = roleCodeListOld.get(i);
List<String> roleCodeList = new ArrayList<>();
List<ConditionAssessmentEO> list = new ArrayList<>();
if (StringUtils.equals(roleCode, ProjectRoleEnum.REGULATI_ENGINEER.getValue())) {
roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
ConditionAssessmentEO regulatiEngineer = new ConditionAssessmentEO();
regulatiEngineer.setProjectLawsInventoryId(projectLawsInventoryId);
regulatiEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment());
regulatiEngineer.setRemark(conditionAssessmentVO.getRemark());
regulatiEngineer.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
list.add(regulatiEngineer);
} else if (StringUtils.equals(roleCode, ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) {
roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
ConditionAssessmentEO homologationEngineer = new ConditionAssessmentEO();
homologationEngineer.setProjectLawsInventoryId(projectLawsInventoryId);
homologationEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment());
homologationEngineer.setRemark(conditionAssessmentVO.getRemark());
homologationEngineer.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
list.add(homologationEngineer);
} else if (StringUtils.equals(roleCode, ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue())) {
roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
ConditionAssessmentEO regulatiEngineer = new ConditionAssessmentEO();
regulatiEngineer.setProjectLawsInventoryId(projectLawsInventoryId);
regulatiEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment());
regulatiEngineer.setRemark(conditionAssessmentVO.getRemark());
regulatiEngineer.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
ConditionAssessmentEO homologationEngineer = new ConditionAssessmentEO();
homologationEngineer.setProjectLawsInventoryId(projectLawsInventoryId);
homologationEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment());
homologationEngineer.setRemark(conditionAssessmentVO.getRemark());
homologationEngineer.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
list.add(regulatiEngineer);
list.add(homologationEngineer);
}
if(CollectionUtils.isNotEmpty(list)){
QueryWrapper<ConditionAssessmentEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,projectLawsInventoryId);
deleteWrapper.lambda().in(ConditionAssessmentEO::getRoleCode,roleCodeList);
this.baseMapper.delete(deleteWrapper);
saveBatch(list);
}
}
return Result.ok();
}
}
@@ -236,11 +236,26 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
LambdaQueryWrapper<DummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,projectLawsInventoryEO.getDummyInventoryBaseId());
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = dummyInventoryInfoEOService.list(lambdaQueryWrapper);
List<DummyInventoryInfoEO> dummyInventoryInfoEOListNew = new ArrayList<>();
if(dummyInventoryInfoEOList.size() != 0){
List<ProjectLawsInventoryEO> projectLawsInventoryEOS = new ArrayList<>();
//责任领域如果有多个,则需要拆分成多条
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) {
String dutyTerritory = dummyInventoryInfoEO.getDutyTerritory();
if(StringUtils.isNotBlank(dutyTerritory)){
for (String dutyTerritoryOne : dutyTerritory.split(",")) {
DummyInventoryInfoEO dummyInventoryInfoEONew = new DummyInventoryInfoEO();
BeanUtils.copyProperties(dummyInventoryInfoEO,dummyInventoryInfoEONew);
dummyInventoryInfoEONew.setDutyTerritory(dutyTerritoryOne);
dummyInventoryInfoEOListNew.add(dummyInventoryInfoEONew);
}
}else{
dummyInventoryInfoEOListNew.add(dummyInventoryInfoEO);
}
}
if(projectLawsInventoryEOList.size() ==0){
//此时法规清单中没有数据,直接将维护清单中的数据添加即可
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) {
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOListNew) {
ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO();
projectLawsInventoryEOTemp.setProjectLibraryId(projectLawsInventoryEO.getProjectLibraryId());
BeanUtils.copyProperties(dummyInventoryInfoEO,projectLawsInventoryEOTemp);
@@ -253,7 +268,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}else{
//此时法规清单中有数据,再添加虚拟清单数据时,如果法规清单中已有要填加的虚拟清单数据,则数据以法规清单为准
List<ProjectLawsInventoryEO> projectLawsInventoryEOListTemp = new ArrayList<>();
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) {
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOListNew) {
List<ProjectLawsInventoryEO> collect = projectLawsInventoryEOList.stream()
.filter(e -> e.getSerialNumber().equals(dummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList());
if(collect.size() != 0){
@@ -426,7 +441,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
Map<String, String> infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),projectLawsInventoryEOCopy);
//设置更新log
setContentLog(infoDiff,contentLog,infoDiffEn,enContentLog,projectLawsInventoryEO.getProjectLibraryId());
// setContentLog(infoDiff,contentLog,infoDiffEn,enContentLog,projectLawsInventoryEO.getProjectLibraryId());
//验证用户是否是该法规上级 项目库的studio 如果是则同步更新流程
@@ -2593,14 +2608,14 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
this.saveBatch(projectLawsInventoryEOList);
//更新log
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
String projectLibraryId = projectLawsInventoryEOList.get(0).getProjectLibraryId();
String serialNumber = projectLawsInventoryEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
String contentLog = username+"复制了“"+serialNumber+"";
String enContentLog = username+" copied “"+serialNumber+"";
projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue());
projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue());
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// String username = sysUser.getUsername();
// String projectLibraryId = projectLawsInventoryEOList.get(0).getProjectLibraryId();
// String serialNumber = projectLawsInventoryEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
// String contentLog = username+"复制了“"+serialNumber+"";
// String enContentLog = username+" copied “"+serialNumber+"";
// projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue());
// projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue());
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
}
@@ -2867,15 +2882,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String enContentIndexStart = enContentLog.substring(0,enContentLog.indexOf(""));
String enContent= enContentLog.substring(enContentIndexStart.length()+1,enContentLog.length());
if(StringUtils.isNotBlank(content)){
contentLog = contentLog.substring(0, contentLog.length() - 5) + "";
projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue());
}
// if(StringUtils.isNotBlank(content)){
// contentLog = contentLog.substring(0, contentLog.length() - 5) + "";
// projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue());
// }
if(StringUtils.isNotBlank(enContent)){
enContentLog = enContentLog.substring(0, enContentLog.length() - 5) + "";
projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue());
}
// if(StringUtils.isNotBlank(enContent)){
// enContentLog = enContentLog.substring(0, enContentLog.length() - 5) + "";
// projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue());
// }
}
}
@@ -4906,10 +4921,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//存在文档库没有的数据
List<String> collect = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
List<String> serialNumbers = serialNumberList.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList());
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加");
}else{
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added");
if(serialNumbers.size() > 0){
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加");
}else{
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added");
}
}
}
@@ -18,6 +18,7 @@ import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.project.util.SendMessageUtils;
import com.jero.modules.project.vo.ProjectTaskInventoryVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
@@ -459,6 +460,96 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
this.baseMapper.delete(deleteWrapper);
}
@Override
public void editBatch(ProjectTaskInventoryVO projectTaskInventoryVO) {
List<String> idList = Arrays.asList(projectTaskInventoryVO.getIds().split(","));
List<ProjectTaskInventoryEO> updateEOList = new ArrayList<>();
for (String id : idList) {
ProjectTaskInventoryEO updateEO = new ProjectTaskInventoryEO();
updateEO.setId(id);
updateEO.setCertificationProgress(projectTaskInventoryVO.getCertificationProgress());
updateEO.setCertificationProgressRemark(projectTaskInventoryVO.getCertificationProgressRemark());
Date now = new Date();
updateEO.setUpdateTime(now);
updateEOList.add(updateEO);
}
updateBatchById(updateEOList);
}
@Override
public List<String> verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO) {
List<String> projectLawsInventoryIdList = Arrays.asList(projectTaskInventoryVO.getProjectLawsInventoryIds().split(","));
List<String> roleCodeList = new ArrayList<>();
if (StringUtils.isNotEmpty(projectTaskInventoryVO.getRoleCodes())) {
roleCodeList = Arrays.asList(projectTaskInventoryVO.getRoleCodes().split(","));
}
String cut = projectTaskInventoryVO.getCut();
String operation = projectTaskInventoryVO.getOperation();
List<Map<String, String>> msgMapList = new ArrayList<>();
for (int i=0; i < projectLawsInventoryIdList.size(); i++) {
String projectLawsInventoryId = projectLawsInventoryIdList.get(i);
ProjectLawsInventoryEO projectLawsInventoryEO = projectLawsInventoryEOService.getById(projectLawsInventoryId);
Map<String, String> msgMap = new HashMap<>();
if (CollectionUtils.isEmpty(roleCodeList)) {
msgMap.put("serialNumber", projectLawsInventoryEO.getSerialNumber());
msgMapList.add(msgMap);
} else {
String roleCode = roleCodeList.get(i);
if ("1".equals(operation)) {
if (!(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(roleCode)
|| ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue().equals(roleCode))) {
msgMap.put("serialNumber", projectLawsInventoryEO.getSerialNumber());
msgMapList.add(msgMap);
}
} else if ("2".equals(operation)) {
if (!(ProjectRoleEnum.REGULATI_ENGINEER.getValue().equals(roleCode)
|| ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(roleCode)
|| ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue().equals(roleCode))) {
msgMap.put("serialNumber", projectLawsInventoryEO.getSerialNumber());
msgMapList.add(msgMap);
}
}
}
}
return getMsg(msgMapList, cut, operation);
}
private List<String> getMsg(List<Map<String, String>> msgMapList, String cut, String operation) {
List<String> msgList = new ArrayList<>();
for (Map<String, String> msgMap : msgMapList) {
String serialNumber = msgMap.get("serialNumber");
StringBuilder stringBuilder = new StringBuilder();
if ("1".equals(operation)) {
if (CutEnum.EN.getValue().equals(cut)) {
stringBuilder.append("Number ").append("<span style='color: red'>").append(serialNumber).append("</span>").append(", the current user can not maintain homologation progress.");
} else {
stringBuilder.append("编号").append("<span style='color: red'>").append(serialNumber).append("</span>").append(",当前用户没有维护认证进度权限。");
}
} else if("2".equals(operation)) {
if (CutEnum.EN.getValue().equals(cut)) {
stringBuilder.append("Number ").append("<span style='color: red'>").append(serialNumber).append("</span>").append(", the current user can not modify current status.");
} else {
stringBuilder.append("编号").append("<span style='color: red'>").append(serialNumber).append("</span>").append(",当前用户没有修改状态权限。");
}
}
msgList.add(stringBuilder.toString());
}
return msgList;
}
/**
* 创建任务清单列表数据
* @param projectTaskInventoryEOList
@@ -0,0 +1,15 @@
package com.jero.modules.project.vo;
import lombok.Data;
@Data
public class ConditionAssessmentVO {
private String cut;
// 当前状态
private String projectLawsInventoryIds;
private String roleCodes;
private String conditionAssessment;
private String remark;
}
@@ -0,0 +1,18 @@
package com.jero.modules.project.vo;
import lombok.Data;
@Data
public class ProjectTaskInventoryVO {
private String cut;
// 认证进度
private String ids;
private String projectLawsInventoryIds;
private String roleCodes;
private String certificationProgress;
private String certificationProgressRemark;
private String operation; // 1-维护进度,2-修改状态
}
@@ -146,7 +146,7 @@ public class LawsMonthlyReportManageEOServiceImpl extends ServiceImpl<LawsMonthl
this.updateById(lawsMonthlyReportManageEO);
// 同步es
// syncElasticsearch(id, issueStatus, issueTime);
syncElasticsearch(id, issueStatus, issueTime);
}
private void syncElasticsearch(String id, String issueStatus, Date issueTime) {
@@ -4,12 +4,14 @@ 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.conditions.query.QueryWrapper;
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.common.system.vo.LoginUser;
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;
@@ -20,6 +22,9 @@ 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.problemKnowledgeBase.entity.ProblemKnowledgeBaseUserEO;
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseUserEOService;
import com.jero.modules.searchcenter.vo.SearchVO;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
@@ -30,6 +35,7 @@ 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.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -65,6 +71,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
private IOnlCgformCollectionService iOnlCgformCollectionService;
@Autowired
private IOnlCgformSubscribeService iOnlCgformSubscribeService;
@Autowired
private IProblemKnowledgeBaseUserEOService problemKnowledgeBaseUserEOService;
public static final String SEARCH_FLAG = "";//标识(es数据带此标识的代表全文和段落的数据,不带此标识的代表列表数据)
@@ -849,6 +857,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
jeroElasticsearchTemplate.removeIndex(SearchEnum.INDEX_NAME_DOCUMENT.getValue());
jeroElasticsearchTemplate.removeIndex(SearchEnum.FULL_TEXT_SEARCH_CN.getValue());
jeroElasticsearchTemplate.removeIndex(SearchEnum.FULL_TEXT_SEARCH_EN.getValue());
jeroElasticsearchTemplate.removeIndex(SearchEnum.INDEX_NAME_LAWS_MONTHLY_REPORT.getValue());
jeroElasticsearchTemplate.removeIndex(SearchEnum.TYPE_PROBLEM_KNOWLEDGE_BASE_CN.getValue());
jeroElasticsearchTemplate.removeIndex(SearchEnum.TYPE_PROBLEM_KNOWLEDGE_BASE_EN.getValue());
}
@@ -1089,6 +1101,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
JSONArray queryJsonMustNot = new JSONArray();
JSONArray queryShould = new JSONArray();
String selectValue = (String) map.get("selectValue");
String selectValueTwo = (String) map.get("selectValueTwo");
String problem_type = (String) map.get("problem_type");
@@ -1097,19 +1111,26 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
List<String> fieldList = new ArrayList<>();
fieldList.add("title");//权重5
fieldList.add("content");//权重4
// fieldList.add("problem_type");//权重3
// fieldList.add("target_market"); //权重2
fieldList.add("module_type");
fieldList.add("id");
fieldList.add("flag");
//fieldList.add("module_type");
//fieldList.add("id");
//fieldList.add("flag");
JSONArray queryMapJson = new JSONArray();
JSONArray queryMapInputJson = new JSONArray();
JSONArray queryMapJsonTwo = new JSONArray();
JSONArray queryMapJsonThree = new JSONArray();
JSONArray queryMapJsonProblemType = new JSONArray();
JSONArray queryMapJsonTargetMarket = new JSONArray();
JSONArray queryMapJsonAll = new JSONArray();
//基础查询权限,展示权限为公开的,所有人都能查看,展示权限为私密的,只有配置了权限的用户可以查看。
if("base".equals("base")){
JSONArray queryMapJsonBase = new JSONArray();
this.createQueryWhere(ShowPermissionsEnum.OPEN.getValue(),"show_permissions",queryMapJsonBase);
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonBase);
queryMapJsonAll.add(jsonObject);
}
Map<String,Object> mapHighlight = new HashMap<>();
Map<String,Object> mapHighlight1 = new HashMap<>();
//封装首次的条件
@@ -1124,14 +1145,19 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
map3.put("boost",0.01);
}else if("content".equals(field)){
map3.put("boost",0.01);
}else if("file_name".equals(field)){
map3.put("boost",1);
}
map3.put("query",selectValue);
map2.put(field, map3);
map4.put("match",map2);
queryMapJson.add(map4);
//特殊处理标题字段
if (field.equals("title")){
// map2放最内层
map2.put(field, "*" + selectValue + "*");
// map4放query
map4.put("wildcard",map2);
} else {
map3.put("query",selectValue);
map2.put(field, map3);
map4.put("match",map2);
}
queryMapInputJson.add(map4);
//高亮
if(!"flag".equals(field)){
@@ -1143,41 +1169,23 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//封装问题类型选择框查询条件。
if (StringUtils.isNotBlank(problem_type)) {
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
Map<String, Object> map4 = new HashMap<>();
map3.put("query",problem_type);
map2.put("problem_type", map3);
map4.put("match",map2);
queryMapJson.add(map4);
//高亮
highlight(mapHighlight, problem_type);
mapHighlight1.put("fields",mapHighlight);
this.createQueryWhere(problem_type,"problem_type",queryMapJson);
}
//封装市场选择框查询条件。
if (StringUtils.isNotBlank(target_market)) {
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
Map<String, Object> map4 = new HashMap<>();
map3.put("query",target_market);
map2.put("target_market", map3);
map4.put("match",map2);
queryMapJson.add(map4);
//高亮
highlight(mapHighlight, target_market);
mapHighlight1.put("fields",mapHighlight);
this.createQueryWhere(target_market,"target_market",queryMapJson);
}
if(CollectionUtils.isNotEmpty(queryMapJson)){
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null);
queryMapJsonAll.add(jsonObject);
}
if(CollectionUtils.isNotEmpty(queryMapInputJson)){
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapInputJson);
queryMapJsonAll.add(jsonObject);
}
//封装二次的条件
if (StringUtils.isNotBlank(selectValueTwo)) {
for (String field : fieldList) {
@@ -1190,13 +1198,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
map3.put("boost",0.01);
}else if("content".equals(field)){
map3.put("boost",0.01);
}else if("file_name".equals(field)){
map3.put("boost",1);
}
//特殊处理编号字段
map3.put("query",selectValueTwo);
// map3.put("minimum_should_match",2);
map2.put(field, map3);
queryMap.put("match", map2);
@@ -1237,20 +1242,20 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Integer pageNo = Integer.parseInt(map.get("pageNo").toString());
Integer pageSize = Integer.parseInt(map.get("pageSize").toString());
IPage page = this.getProblemKnowledgeBasePage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null,
pageNo, pageSize, null,(String) map.get("cut"),sort,queryJsonMustNot);
pageNo, pageSize, null,(String) map.get("cut"),sort,queryJsonMustNot,queryShould);
return page;
}
@NotNull
private IPage getProblemKnowledgeBasePage(String selectValue, String selectValueTwo, JSONArray queryMapJson,Map<String,Object> highlightMap,
JSONArray should, Integer pageNo, Integer pageSize, String paragraphFlag,
String cut,JSONObject querySort,JSONArray queryMustNot) {
String cut,JSONObject querySort,JSONArray queryMustNot,JSONArray queryShould) {
JSONObject jsonObject = new JSONObject();
//基础添加封装
if ("paragraphFlag".equals(paragraphFlag)) {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, null);
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, queryShould);
} else {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, null);
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, queryShould);
}
JSONArray jsonArraySort = new JSONArray();
jsonArraySort.add(querySort);
@@ -1291,10 +1296,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
mapSource.put(key,fieldConyent);
}
//如果这一条数据中有高亮字段值,但是file_text中没有高亮值, 则赋控制,否则列表中会展示所有的文件内容, 赋空后,则展示基础数据
String fileText = (String) mapSource.get("content");
/*String fileText = (String) mapSource.get("content");
if(StringUtils.isNotBlank(fileText) && !fileText.contains("<text class='highlight-class'>")){
mapSource.put("content","");
}
}*/
}
mapList.add(mapSource);
}
@@ -1313,6 +1318,58 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
return page;
}
/**
* 创建查询条件
* @param queryValue 查询的值
* @param fieldKey 查询的字段
* @param jsonArray
*/
public void createQueryWhere (String queryValue,String fieldKey,JSONArray jsonArray){
/**
* fieldKeyMap:字段keyMap,用于存 需要查询的字段 以及字段中的条件 "queryMap"
* queryMap:存放查询条件map
* matchMap:匹配Map
*/
Map<String, Object> fieldKeyMap = new HashMap<>();
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> matchMap = new HashMap<>();
queryMap.put("query", queryValue);
fieldKeyMap.put(fieldKey, queryMap);
matchMap.put("match",fieldKeyMap);
// 如果是私密,并且查询字段key是展示权限 的话,查询当前用户拥有权限的问题知识库数据
if(StringUtils.equals(fieldKey,"show_permissions")){
//查询出当前登录人所拥有的问题知识库私密数据权限。
LoginUser currentOperatorUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<ProblemKnowledgeBaseUserEO> userPermissionQueryWrapper = new QueryWrapper<>();
userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentOperatorUser.getId());
List<ProblemKnowledgeBaseUserEO> problemKnowledgeBaseUserEOList = this.problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper);
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseUserEOList)){
List<String> problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
//in查询该用户拥有权限的问题知识库id。
Map<String, Object> fieldKeyMap2 = new HashMap<>();
Map<String, Object> matchMap2 = new HashMap<>();
fieldKeyMap2.put("id", problemKnowledgeBaseIdList);
matchMap2.put("terms",fieldKeyMap2);
jsonArray.add(matchMap2);
}else {
Map<String, Object> fieldKeyMap2 = new HashMap<>();
Map<String, Object> queryMap2 = new HashMap<>();
Map<String, Object> matchMap2 = new HashMap<>();
queryMap2.put("query", "null");
fieldKeyMap2.put("id", queryMap2);
matchMap2.put("match",fieldKeyMap2);
jsonArray.add(matchMap2);
}
}
jsonArray.add(matchMap);
}
}
@@ -64,12 +64,8 @@ public class LawsMonthlyReportSearchServiceImpl implements ILawsMonthlyReportSea
String selectValueTwo = searchVO.getSelectValueTwo();
//1. 需要查询的字段
List<String> fieldList = new ArrayList<>();
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("title");//权重2
fieldList.add("content");//权重1
fieldList.add("flag");
JSONArray queryMapJson = new JSONArray();
@@ -87,17 +83,21 @@ public class LawsMonthlyReportSearchServiceImpl implements ILawsMonthlyReportSea
Map<String, Object> map4 = new HashMap<>();
if("title".equals(field)){
map3.put("boost",1);
}else if("file_text".equals(field)){
map3.put("boost",0.01);
}else if("content".equals(field)){
map3.put("boost",0.01);
}else if("file_name".equals(field)){
map3.put("boost",1);
}
// 标题字段 通配符模糊匹配
if (field.equals("title")){
// map2放最内层
map2.put(field, "*" + selectValue + "*");
map3.put("query",selectValue);
map2.put(field, map3);
map4.put("match",map2);
// map4放query
map4.put("wildcard",map2);
} else {
map3.put("query", selectValue);
map2.put(field, map3);
map4.put("match", map2);
}
queryMapJson.add(map4);
//高亮
@@ -119,19 +119,22 @@ public class LawsMonthlyReportSearchServiceImpl implements ILawsMonthlyReportSea
Map<String, Object> map3 = new HashMap<>();
if("title".equals(field)){
map3.put("boost",1);
}else if("file_text".equals(field)){
map3.put("boost",0.01);
}else if("content".equals(field)){
map3.put("boost",0.01);
}else if("file_name".equals(field)){
map3.put("boost",1);
}
//特殊处理编号字段
map3.put("query",selectValueTwo);
// 标题字段 通配符模糊匹配
if (field.equals("title")){
// map2放最内层
map2.put(field, "*" + selectValueTwo + "*");
// map4放query
queryMap.put("wildcard",map2);
} else {
map3.put("query", selectValueTwo);
// map3.put("minimum_should_match",2);
map2.put(field, map3);
queryMap.put("match", map2);
map2.put(field, map3);
queryMap.put("match", map2);
}
queryMapJsonTwo.add(queryMap);
//高亮
@@ -190,8 +193,11 @@ public class LawsMonthlyReportSearchServiceImpl implements ILawsMonthlyReportSea
} else {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, null);
}
JSONArray jsonArraySort = new JSONArray();
jsonArraySort.add(querySort);
if (SEARCH_FLAG.equals(selectValue) && StringUtils.isEmpty(selectValueTwo)) {
jsonArraySort.add(querySort);
}
//1. 条件,分页
JSONObject queryObject = jeroElasticsearchTemplate.buildQuery(null,
@@ -1,6 +1,6 @@
package com.jero.modules.split.controller;
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;
import com.jero.common.api.vo.Result;
@@ -9,6 +9,7 @@ import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.lanswitch.service.ILanguageSwitchService;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.page.SarFileSplitInfoEOPage;
import com.jero.modules.split.service.ISarFileSplitInfoService;
@@ -59,7 +60,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@GetMapping(value = "/page")
@RequiresPermissions("split:sarFileSplitInfo:page")
public Result<?> queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) {
LambdaQueryWrapper<SarFileSplitInfoEO> queryWrapper = new LambdaQueryWrapper<>();
QueryWrapper<SarFileSplitInfoEO> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumber())){
sarFileSplitInfoEOPage.setSerialNumber(sarFileSplitInfoEOPage.getSerialNumber().replace("%","\\%"));
}
@@ -67,13 +68,18 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
sarFileSplitInfoEOPage.setTitle(sarFileSplitInfoEOPage.getTitle().replace("%","\\%"));
}
if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getFileId())){//判断是不是以及传回文档库
queryWrapper.isNotNull(SarFileSplitInfoEO::getFileId);
queryWrapper.lambda().isNotNull(SarFileSplitInfoEO::getFileId);
}
queryWrapper.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumber()), SarFileSplitInfoEO::getSerialNumber, sarFileSplitInfoEOPage.getSerialNumber())
if(StringUtils.isNotBlank(sarFileSplitInfoEOPage.getOrderByField())){
sarFileSplitInfoEOPage.setOrderByField(LineHumpUtil.humpToLine2(sarFileSplitInfoEOPage.getOrderByField()));
}
queryWrapper.lambda().like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumber()), SarFileSplitInfoEO::getSerialNumber, sarFileSplitInfoEOPage.getSerialNumber())
.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle()) && CutEnum.CN.getValue().equals(sarFileSplitInfoEOPage.getCut()), SarFileSplitInfoEO::getTitle, sarFileSplitInfoEOPage.getTitle())
.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle()) && CutEnum.EN.getValue().equals(sarFileSplitInfoEOPage.getCut()), SarFileSplitInfoEO::getTitleEn, sarFileSplitInfoEOPage.getTitle())
.orderBy(StringUtils.isNotBlank(sarFileSplitInfoEOPage.getOrderByField()), "1".equals(sarFileSplitInfoEOPage.getOrderBy())?true:false, SarFileSplitInfoEO::getCreateTime)
.orderBy(StringUtils.isBlank(sarFileSplitInfoEOPage.getOrderByField()), false, SarFileSplitInfoEO::getCreateTime);
.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle()) && CutEnum.EN.getValue().equals(sarFileSplitInfoEOPage.getCut()), SarFileSplitInfoEO::getTitleEn, sarFileSplitInfoEOPage.getTitle());
queryWrapper.orderBy(StringUtils.isNotBlank(sarFileSplitInfoEOPage.getOrderByField()), "1".equals(sarFileSplitInfoEOPage.getOrderBy())?true:false, sarFileSplitInfoEOPage.getOrderByField())
.orderBy(StringUtils.isBlank(sarFileSplitInfoEOPage.getOrderByField()), false, "create_time");
Page<SarFileSplitInfoEO> page = new Page<SarFileSplitInfoEO>(sarFileSplitInfoEOPage.getPageNo(), sarFileSplitInfoEOPage.getPageSize());
IPage<SarFileSplitInfoEO> pageList = sarFileSplitInfoService.page(page, queryWrapper);
List<SarFileSplitInfoEO> rows = pageList.getRecords();
@@ -24,7 +24,6 @@ import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.ocr.util.UUIDUtils;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
@@ -72,7 +71,6 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
@@ -81,12 +79,10 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
@@ -792,6 +788,16 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
//处理列表表头排序
if("page".equals(type)) {
conditionSb.append(" order by SAR_FILE_SPLIT_MENU.display_seq asc");
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(", sar_file_split_items." + (String) parameter.get("orderByField"));
if ("1".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
}
}
}
String condition = conditionSb.toString();
return condition;