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

This commit is contained in:
super_liu
2021-10-27 13:36:09 +08:00
24 changed files with 559 additions and 327 deletions
@@ -25,6 +25,21 @@ public class ActDefineStartMap {
map.put("8","nonConformanceRectificationKey");
map.put("9","standardReadWkflow");
map.put("10","itemlistvalidationprocessKey");
//张超然
map.put("20","StandardApplyMeetProcess");
map.put("21","StandardMeetProcess");
map.put("22","StandardAfterMeetProcess");
//李奥
map.put("14","ParticipateRevisionFiling");
map.put("15","JoinStandardFiling");
map.put("16","RecommendedApprovalleo");
//孔维一
map.put("17","policyResearchGroupEnrollment");
map.put("18","policyResearchGroupAttendMeeting");
map.put("19","policyResearchGroupAfterMeeting");
return map.get(type);
}
}
@@ -3,9 +3,10 @@
# 数据库配置
#=============================================
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://10.100.5.111:3306/foton_slrs?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
spring.datasource.username = tempuser
spring.datasource.password = Fting&8g35g#geg2
spring.datasource.url = jdbc:mysql://39.100.23.127:3306/foton_slrs_test2?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
#spring.datasource.url = jdbc:mysql://10.96.10.54/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
@@ -15,10 +16,10 @@ spring.application.name=FotonLAWSSystem
application.code=20200101
application.center=1
#==============================================
#Eureka
#Eruept
eureka.client.allow-redirects=true
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://10.100.5.117:4201/eureka/
eureka.client.service-url.defaultZone=http://62.234.136.153:8761/eureka/
#==============================================
# 邮箱配置1
@@ -34,18 +35,22 @@ spring.mail.properties.smtp.starttls.required=false
spring.mail.properties.mail.smtp.ssl.enable=false
spring.mail.port=587
#==============================================
# MQ配置
#==============================================
spring.rabbitmq.host=10.100.5.119
# ==============================================
# rabbitMQ
# ==============================================
#spring.rabbitmq.host=10.2.186.93
#spring.rabbitmq.port=5672
#spring.rabbitmq.username=ca
#spring.rabbitmq.password=cs986432
spring.rabbitmq.host=62.234.118.181
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=foton@admin
spring.rabbitmq.password=admin
spring.rabbitmq.listener.simple.acknowledge-mode= manual
# 生产者 默认关闭 发版 需改为 true
spring.rabbitmq.listener.direct.auto-startup=true
spring.rabbitmq.listener.direct.auto-startup=false
# 消费者 默认关闭 发版 需改为 true
spring.rabbitmq.listener.simple.auto-startup=true
spring.rabbitmq.listener.simple.auto-startup=false
#消费失败消息干掉
spring.rabbitmq.listener.simple.default-requeue-rejected= true
#5秒
@@ -53,22 +58,21 @@ spring.rabbitmq.listener.simple.retry.initial-interval= 5000
spring.rabbitmq.listener.simple.retry.enabled= true
#最大重试5次
spring.rabbitmq.listener.simple.retry.max-attempts= 5
# ==============================================
# 文档存储路径指向
# ==============================================
file.path=/data/slrs/file
file.path=/usr/laws/file/
# 云端OCR识别集成配置参数
#OCR请求识别URL地址
OCR.handleFileUrl = http://61.136.1.103:8091/WebService.asmx/FileConversion
# OCR回调接口地址 配置客户本地的IP及端口号
OCR.callBackUrl = https://slrs.foton.com.cn/api/ocr/OCRRestful/OcrHandleResult
OCR.callBackUrl = http://62.234.136.153:8033/api/ocr/OCRRestful/OcrHandleResult
OCR.userId =dayuzhou1234
OCR.authCode =123456
OCR.publicKey =EC4KKA6ZDTCPAOCRBC5M
# OCR文件存储路径
OCR.ocrPath=/data/slrs/ocrResultFile
OCR.ocrPath=/opt/foton-slrs/front/dist/file/
# OCR文件请求下载或在线预览时URL
OCR.ocrDownPath=/data/slrs/ocrResultFile
OCR.ocrDownPath=http://62.234.136.153:8038/file/
OCR.times=20
OCR.convertType=BOTH
@@ -9,12 +9,12 @@ spring.profiles.active=dev
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/plain,text/css,application/x-javascript
# 端口号设置
server.port=4202
server.port=9999
#主服务session超时
server.servlet.session.timeout =600
#tomcat /resource/local/version-manager 创建tomcat指定临时目录
server.tomcat.basedir=/data/slrs/temp
server.tomcat.basedir=/resource/local/version-manager
# http-only
server.session.cookie.http-only=true
@@ -30,14 +30,20 @@ logging.level.org.springframework=info
# 请求前缀
restPath=/api
#server.servlet.context-path=/api
#是否将自己注册到Eureka Server上,默认为true
eureka.client.register-with-eureka=true
##是否从Eureka Server上获取注册信息,默认为true
eureka.client.fetch-registry=true
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone=http://10.100.5.117:4201/eureka/
#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/
#eureka.client.service-url.defaultZone=http://127.0.0.1:8671/eureka/
#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/
eureka.client.service-url.defaultZone=http://62.234.136.153:8761/eureka/
#eureka.client.service-url.defaultZone=http://10.96.10.171:8761/eureka/
# 请求连接的超时时间 默认的时间为 1 秒
ribbon.ConnectTimeout=500000
@@ -131,9 +137,9 @@ verifyCodeMode=1
# 文件上传管控及配置
# =============================================================================
# file模块上传文件的服务器地址
file.path=/data/slrs/file
# 文件下载地址参数(弃用)
file.downloadUrl=
file.path=D:/uploadfile/bus
# 文件下载地址参数
file.downloadUrl=http://39.98.140.126:10001/uploadPath
#上传文件白名单-以,分隔
upload.file.white.lists = doc,docx,xls,xlsx,pdf,PDF,png,jpg,pptx,ppt
@@ -141,13 +147,14 @@ upload.file.white.lists = doc,docx,xls,xlsx,pdf,PDF,png,jpg,pptx,ppt
# elasticsearch 配置
# =============================================================================
elasticsearch.clustername=elasticsearch
elasticsearch.ip=10.100.5.122
elasticsearch.ip=172.17.0.1
elasticsearch.port=9300
elasticsearch.poolSize=5
elas.flag=true
# 文档转换TCP通讯地址
convert.host=127.0.0.1
#convert.host=0.0.0.0
# =============================================================================
# scheduled 配置
@@ -96,7 +96,11 @@ public class SearchCenterController extends BaseController<Map<String, Object>>
}
return Result.success(getPageInfo(searchInfoEO.getPager(), result));
} else {
result = searchCenterService.searchSarBykey(searchInfoEO);
if (searchInfoEO.getQueryStatus() != null && StringUtils.isNotBlank(searchInfoEO.getQueryStatus()) && searchInfoEO.getQueryStatus().equals("advancedSearch") && null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
result = searchCenterService.searchSarBykey(searchInfoEO);
}else {
result = searchCenterService.searchSarConditionBykey(searchInfoEO);
}
// 非动态消息的需要查询为我推荐
for (int i = 0; i < result.size(); i++) {
String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString());
@@ -239,6 +239,8 @@ public class SeniorSearchInfoEO extends BasePage {
private String stand_status;
private String isHigh;
private String queryStatus;
@@ -11,6 +11,8 @@ public interface SearchCenterService {
List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
/**
* 查询结果集searchResponse装换成List形式
* @param searchResponse 需要转换的数据
@@ -37,6 +37,7 @@ import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
@Slf4j
@@ -57,19 +58,11 @@ public class SearchCenterServiceImpl implements SearchCenterService {
private static final String ISSUE_TIME = "issue_time_data";
private static final String PUT_TIME = "put_time";
private static final String EPOCH_MILLIS = "epoch_millis";
String numbershowStr = "numbershow";
String nameshowStr = "nameshow";
String nameshowSplit = "nameshowSplit";
String numbershowSplit = "numbershowSplit";
String replacedStandNumStr = "replaced_stand_num";
String replaceStandNumStr = "replace_stand_num";
String content = "content";
//关键字检索
@Override
public List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
//判断是否高级查询 isHight = truesearchInfoEO.getIsHigh()为空)时,证明不是高级查询
boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh());
List<Map<String, Object>> result = new ArrayList<>();
SearchRequestBuilder searchRequestBuilder;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
@@ -78,7 +71,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
.addSort("issueTime", SortOrder.DESC)
.setSize(searchInfoEO.getPageSize());
@@ -114,16 +107,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
break;
case "laws":
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num",
"synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJG","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC","accessCountry").minimumShouldMatch("100%");
boolQueryMust.must(multiQueryBuilder);
boolQueryShould.should(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery(numbershowSplit, "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery(nameshowSplit, "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery(content, "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*"))
@@ -201,6 +185,136 @@ public class SearchCenterServiceImpl implements SearchCenterService {
return result;
}
// 条件
@Override
public List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
//判断是否高级查询 isHight = truesearchInfoEO.getIsHigh()为空)时,证明不是高级查询
boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh());
List<Map<String, Object>> result = new ArrayList<>();
SearchRequestBuilder searchRequestBuilder;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery();
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
.addSort("issueTime", SortOrder.DESC)
.setSize(searchInfoEO.getPageSize());
if(searchInfoEO.getSelectIndex().equals("stand")) {
boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
} else if(searchInfoEO.getSelectIndex().equals("laws")){
boolQueryShould = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
} else if(searchInfoEO.getSelectIndex().equals("bussstand")){
boolQueryShould = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
}
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){
QueryBuilder multiQueryBuilder;
switch (searchInfoEO.getSelectIndex()){
case "stand":
if (isRqFormat(searchInfoEO.getSelectValue())) {
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryShould.should(rangeQueryBuilder);
}
boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
break;
case "laws":
boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("ZRLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("isRelateAccess", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("YQLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("GXHBQShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("XCXSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("ZCCSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("EOPSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("ZCGCSShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("FBJG", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("SVPPSName", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("XGBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("ZRBMName", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("ZRBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("FOShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("GKGLBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("content", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("WSSFCYShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("replaceLawsNum", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("replacedLawsNum", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("XMPGJSShow", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("XGLC", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_number", "*"+searchInfoEO.getSelectValue()+"*"));
break;
case "bussstand":
boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
if (isRqFormat(searchInfoEO.getSelectValue())) {
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryShould.should(rangeQueryBuilder);
RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryShould.should(rangeQueryBuilder2);
}
break;
default: break;
}
}
if(boolQueryShould!=null){
boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0));
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
}
boolQueryBuilder.must(boolQueryShould);
}else {
boolQueryBuilder.must(boolQueryShould);
}
//在结果中检索
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isNotBlank(searchInfoEO.getIsHigh())) {
QueryBuilder multiQuery = queryInResult(searchInfoEO);
boolQueryBuilder.must(multiQuery);
}
searchRequestBuilder.setQuery(boolQueryBuilder);
// 获取查询到的结果
result = countStandSearchResult(searchRequestBuilder,searchInfoEO);
}
return result;
}
private Date dateFormatToStr(String dateStr){
Date date = new Date();
try {
@@ -264,48 +378,40 @@ public class SearchCenterServiceImpl implements SearchCenterService {
}
String fieldInfo = InitStandAttrSearchUtil.queryField;
String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws;
String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss;
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldList = new ArrayList<>();
fieldList.addAll(fieldInfoList);
fieldList.addAll(fieldLawsInfoList);
fieldList.addAll(fieldBussInfoList);
List<String> fieldList = getStringField();
// 自动匹配动态属性字段 es 查询
for (String field : fieldList) {
// 关键字查询属性字段
String keyWordField = field + ".keyword";
String keyWordField2 = field + "Name.keyword";
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*"));
}else {
if(collectAttrMap.containsKey(field)){
List<String> fields = new ArrayList<>();
Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue();
if(json instanceof org.json.JSONArray){
fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class);
}else {
if(!json.equals("null")){
fields.add(collectAttrMap.get(field).toString());
}
}
if(!fields.isEmpty()){
if(fields.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
fields.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*"));
}
if(collectAttrMap.containsKey(field)){
List<String> fields = new ArrayList<>();
Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue();
if(json instanceof org.json.JSONArray){
fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class);
}else {
if(!json.equals("null")){
fields.add(collectAttrMap.get(field).toString());
}
}
if(!fields.isEmpty()){
if(fields.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
fields.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*"));
}
}
}
// if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
//// boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*"));
// }else {
//
// }
}
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) {
boolQueryBuilder.should(boolQueryBuilderMust);
@@ -353,62 +459,75 @@ public class SearchCenterServiceImpl implements SearchCenterService {
return boolQueryBuilder;
}
private List<String> getStringField() {
String fieldInfo = InitStandAttrSearchUtil.queryField;
String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws;
String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss;
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
List<String> fieldList = new ArrayList<>();
fieldList.addAll(fieldInfoList);
fieldList.addAll(fieldLawsInfoList);
fieldList.addAll(fieldBussInfoList);
return fieldList;
}
//检索国内外标准数据
public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
String nameshowStr = "nameshow";
// 高级搜索项,只针对标准
if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){
// 高级搜索项,只针对标准
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
List<String> list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
if(list.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
list.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
}
}
if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
// 高级搜索项,只针对标准
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
List<String> list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
if(list.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
list.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
}
}
if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
}
if (searchInfoEO.getIssueTime() != null) {
Long starttime = searchInfoEO.getIssueTime().getTime();
Long endtime = searchInfoEO.getIssueTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
}
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*"));
}
if (searchInfoEO.getIssueTime() != null) {
Long starttime = searchInfoEO.getIssueTime().getTime();
Long endtime = searchInfoEO.getIssueTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
}
if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*"));
}
querySeniorMsg(searchInfoEO,boolQueryBuilder);
@@ -625,51 +744,49 @@ public class SearchCenterServiceImpl implements SearchCenterService {
* boolQueryBuilder :must
* */
public BoolQueryBuilder queryBussStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){
// 高级搜索项,只针对标准
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) {
List<String> list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
if(list.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
list.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*"));
}
}
// 高级搜索项,只针对标准
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*"));
}
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
}
if (searchInfoEO.getIssueTime() != null) {
Long starttime = searchInfoEO.getIssueTime().getTime();
Long endtime = searchInfoEO.getIssueTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) {
List<String> list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
if(list.size() > 1){
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
list.forEach(s -> {
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*"));
});
boolQueryBuilder.must(boolQueryBuilderShould);
}else {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*"));
}
}
if (searchInfoEO.getPutTime() != null) {
Long starttime = searchInfoEO.getPutTime().getTime();
Long endtime = searchInfoEO.getPutTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
}
if (searchInfoEO.getIssueTime() != null) {
Long starttime = searchInfoEO.getIssueTime().getTime();
Long endtime = searchInfoEO.getIssueTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
}
if (searchInfoEO.getPutTime() != null) {
Long starttime = searchInfoEO.getPutTime().getTime();
Long endtime = searchInfoEO.getPutTime().getTime();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
boolQueryBuilder.filter(rangeQueryBuilder);
}
querySeniorMsg(searchInfoEO,boolQueryBuilder);
return boolQueryBuilder;
@@ -679,22 +796,46 @@ public class SearchCenterServiceImpl implements SearchCenterService {
public QueryBuilder queryInResult(SeniorSearchInfoEO searchInfoEO){
// 记录搜索记录到数据库中
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
List<String> fieldList = getStringField();
List<String> fieldNameList = new ArrayList<>();
String[] standStr = {"content","standSort","standNumber","standYear","stand_name","standEnName","standNatureName",
"textStatusName","isRelateAccessName","numbershow","standSystem"};
String[] lawsStr = {"content",
"standSort","stand_code","standYear","stand_name","standEnName","textStatusBuss"};
String[] bussstandStr = {"content","standSort","stand_code","standYear","stand_name","standEnName","textStatusBuss"};
for (String field : fieldList) {
// 关键字查询属性字段
String keyWordField2 = field + "Name";
fieldNameList.add(keyWordField2);
}
switch (searchInfoEO.getSelectIndex()){
case "stand":
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standSortShow","standstateshow","countryShow","standEnName",
"synopsis","baseSearchContent",content,"CYSDShow","CLLXShow","standstateshow","ZRLXShow","stand_name","stand_number","citeStand","DTBJH","FGXXSXXXShow","CBBH","YYBJ","XGLC","synopsis","isRelateAccess","GKDWShow","CYSDShow","FBJGShow","ZRLXShow","GXHBQShow","GZZXXName","YQLXShow","FGWHRName","ZRBMName","XGBMShow","SVPPSName","FOShow","XMPGJSShow","BDTBZBH","BYYBJ","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ").minimumShouldMatch("100%");
List<String> listStrings = Stream.of(standStr).collect(Collectors.toList());
listStrings.addAll(fieldNameList);
String[] fieldArr = listStrings.stream().toArray(String[]::new);
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldArr
).minimumShouldMatch("100%");
// boolQueryBuilder.should();
// for (String field : fieldList) {
// // 关键字查询属性字段
// String keyWordField2 = field + "Name.keyword";
// boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),keyWordField2).minimumShouldMatch("100%"));
// }
break;
case "laws":
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num",
"synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJGShow","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC").minimumShouldMatch("100%");
List<String> listStringLaws = Stream.of(lawsStr).collect(Collectors.toList());
listStringLaws.addAll(fieldNameList);
String[] fieldLawsArr = listStringLaws.stream().toArray(String[]::new);
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldLawsArr
).minimumShouldMatch("100%");
break;
case "bussstand":
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr,
replacedStandNumStr,"countryShow","synopsis","standSortShow","ZQCBMShow","ZQCBM","stand_status",
"baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","replaceStandNum","replacedStandNum","QBMJShow","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","content","FSRQString","FZRQString","put_time","XGLC","WFSPJSName").minimumShouldMatch("100%");
List<String> listStringBussstand = Stream.of(bussstandStr).collect(Collectors.toList());
listStringBussstand.addAll(fieldNameList);
String[] fieldBussstandArr = listStringBussstand.stream().toArray(String[]::new);
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldBussstandArr
).minimumShouldMatch("100%");
break;
default: break;
}
@@ -752,19 +893,19 @@ public class SearchCenterServiceImpl implements SearchCenterService {
for (String itemkeyname: keynamelist){
// put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加
if(submap.containsKey(itemkeyname)){
submap.put(itemkeyname, (long)submap.get(itemkeyname)+ bucket.getDocCount());
submap.put(itemkeyname.trim(), (long)submap.get(itemkeyname)+ bucket.getDocCount());
}
else {
submap.put(itemkeyname, bucket.getDocCount());
submap.put(itemkeyname.trim(), bucket.getDocCount());
}
}
}
else {
if(submap.containsKey(keyname)){
submap.put(keyname, (long)submap.get(keyname)+ bucket.getDocCount());
submap.put(keyname.trim(), (long)submap.get(keyname)+ bucket.getDocCount());
}
else {
submap.put(keyname, bucket.getDocCount());
submap.put(keyname.trim(), bucket.getDocCount());
}
}
}
@@ -713,12 +713,14 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
*/
public HashMap<String, String> analysisStandId(ImportDto importDto) {
HashMap<String, String> result = new HashMap<>();
if (importDto.getStandId() == null) {
String standId = importDto.getStandId();
if (standId == null) {
importDto.setErrorStr("标准号为空");
error.add(importDto);
return null;
} else {
String standId = importDto.getStandId();
// String standId = importDto.getStandId();
//格式 非空格字符+空格+非空格字符+‘-’或‘—’或空格+年份 如Q/FT F003—2001
Pattern pattern = Pattern.compile("^\\S*\\s\\S*[\\u2014\\u002d\\s]\\d{4}$");
if (!pattern.matcher(standId).matches()) {
@@ -730,7 +732,7 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
String sort = "";
String number = "";
String year = "";
String[] split = importDto.getStandId().split("[\\u2014\\u002d\\s]");//以空格或'-'或'—'分割
String[] split = standId.split("[\\u2014\\u002d\\s]");//以空格或'-'或'—'分割
// 多种格式(╯‵□′)╯︵┻━┻ Q-FL T015-2021 Q/ FL T015-2021 Q/FL T015-2021
@@ -143,7 +143,13 @@ public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl<SarLawsAttrD
}
}
}
String completedString = builder.delete(builder.length()-1,builder.length()).toString();
/**
* 当""时索引异常
*/
String completedString="";
if (!"".equals(builder.toString())){
completedString = builder.delete(builder.length()-1,builder.length()).toString();
}
list1.setZRBM(completedString);
}
else {
@@ -3,13 +3,10 @@ package com.adc.da.slrs.sarModelTree.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarModelTree.entity.ResponseResult;
import com.adc.da.slrs.sarModelTree.service.ISarModelTreeService;
import com.adc.da.slrs.sarModelTree.service.ISarModuleTreeService;
import com.adc.da.slrs.sarModelTree.service.impl.SarModuleTreeServiceImpl;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Company;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.ResponseDto;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -1,7 +1,7 @@
package com.adc.da.slrs.sarModelTree.service;
import com.adc.da.slrs.sarModelTree.entity.SarModelTree;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import java.util.List;
@@ -4,7 +4,7 @@ import com.adc.da.slrs.sarModelTree.dao.SarModuleTreeDao;
import com.adc.da.slrs.sarModelTree.entity.SarModelTree;
import com.adc.da.slrs.sarModelTree.entity.SarModuleTree;
import com.adc.da.slrs.sarModelTree.service.ISarModuleTreeService;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -2,17 +2,13 @@ package com.adc.da.slrs.sarStandProjectLibrary.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarStandProjectLibrary.entity.*;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto;
import com.adc.da.slrs.sarStandProjectLibrary.service.impl.SarStandProjectLibraryServiceImpl;
import com.adc.da.sys.util.UUIDUtils;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
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.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@@ -21,8 +17,6 @@ import com.adc.da.base.web.BaseController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* <p>
@@ -50,7 +44,7 @@ public class SarStandProjectLibraryController extends BaseController<SarStandPro
**/
@GetMapping("/queryProject")
@ApiOperation("车型/项目库")
public ResponseMessage queryMaintenanceProject(@RequestParam(defaultValue = "1", value = "Page")int Page, @RequestParam(defaultValue = "10", value = "PageSize") int PageSize,
public ResponseMessage queryMaintenanceProject(@RequestParam(defaultValue = "1", required=false,value = "page")int Page, @RequestParam(defaultValue = "10", required=false,value = "pageSize") int PageSize,
SarStandProjectLibraryDto sarDto) {
IPage<SarStandProjectLibrary> MaintenanceList = sarStandProjectLibraryService.queryMaintenanceProject(Page,PageSize,sarDto);
IPage<SarStandProjectLibrary> notMaintenanceList = sarStandProjectLibraryService.queryNotMaintenanceProject(Page,PageSize,sarDto);
@@ -231,13 +225,9 @@ public class SarStandProjectLibraryController extends BaseController<SarStandPro
public ResponseDto save(@RequestBody String jsonStr){
log.info(jsonStr);
Head head = sarStandProjectLibraryService.AnalysisJsonAndStorage(jsonStr);
ArrayList<Company> companies = new ArrayList<>();
ResponseDto responseDto = new ResponseDto(head,companies);
//todo 未确定返回内容
Company company = new Company();
company.setCOMPANY_CODE("");
company.setFISCAL_YEAR("");
companies.add(company);
ResponseDto responseDto = new ResponseDto(head);
return responseDto;
}
}
@@ -1,10 +0,0 @@
package com.adc.da.slrs.sarStandProjectLibrary.entity;
import lombok.Data;
@Data
public class Company {
private String COMPANY_CODE;
private String FISCAL_YEAR;
}
@@ -74,7 +74,6 @@ public class SarStandProjectLibrary extends BaseEntity {
private String projectManager;
@ApiModelProperty(value = "项目经理名称")
@TableField(exist = false)
private String uName;
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarStandProjectLibrary.entity;
package com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse;
import com.adc.da.base.entity.BaseEntity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -24,4 +25,30 @@ public class Head extends BaseEntity {
}
public Head(){};
@JsonProperty("BIZTRANSACTIONID")
public String getBIZTRANSACTIONID() {
return BIZTRANSACTIONID;
}
@JsonProperty("RESULT")
public String getRESULT() {
return RESULT;
}
@JsonProperty("ERRORCODE")
public String getERRORCODE() {
return ERRORCODE;
}
@JsonProperty("ERRORINFO")
public String getERRORINFO() {
return ERRORINFO;
}
@JsonProperty("COMMENTS")
public String getCOMMENTS() {
return COMMENTS;
}
@JsonProperty("SUCCESSCOUNT")
public String getSUCCESSCOUNT() {
return SUCCESSCOUNT;
}
}
@@ -0,0 +1,24 @@
package com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class MyResult {
// private String COMPANY_CODE;
//
// private String FISCAL_YEAR;
private String msg;
private String code;
private boolean success;
public MyResult(){
this.msg="";
this.code="";
this.success=true;
}
}
@@ -1,9 +1,10 @@
package com.adc.da.slrs.sarStandProjectLibrary.entity;
package com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Data
public class ResponseDto {
@@ -26,12 +27,19 @@ public class ResponseDto {
}
public ResponseDto(Head HEAD) {
ArrayList<Company> companies = new ArrayList<>();
Company company = new Company();
company.setCOMPANY_CODE("");
company.setFISCAL_YEAR("");
companies.add(company);
this.LIST=companies;
this.LIST=Arrays.asList(new MyResult());
this.HEAD=HEAD;
}
@JsonProperty("HEAD")
public Head getHEAD() {
return HEAD;
}
@JsonProperty("LIST")
public List<?> getLIST() {
return LIST;
}
}
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarStandProjectLibrary.service;
import com.adc.da.slrs.sarStandProjectLibrary.entity.*;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
@@ -4,6 +4,7 @@ import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao;
import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo;
import com.adc.da.slrs.sarStandProjectLibrary.entity.*;
import com.adc.da.slrs.sarStandProjectLibrary.dao.SarStandProjectLibraryDao;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectLibrary.service.SarStandProjectLibraryService;
import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
@@ -75,25 +76,23 @@ public class SarStandProjectLibraryServiceImpl extends ServiceImpl<SarStandProje
//把刚刚拿到的值存到实体类里
SarStandProjectLibrary projectInfo = new SarStandProjectLibrary();
projectInfo
.setProjectPlatfor(projectObject.get("projectPlatfor").getAsString())
.setProjectNumber(projectObject.get("projectNumber").getAsString())
.setProjectName(projectObject.get("projectName").getAsString())
.setProjectClassification(projectObject.get("projectClassification").getAsString())
.setProjectStatus(projectObject.get("projectStatus").getAsString())
.setProjectGroup(projectObject.get("projectGroup").getAsString())
.setCurrentNode(projectObject.get("currentNode").getAsString())
.setProjectLevel(projectObject.get("projectLevel").getAsString())
.setProductLine(projectObject.get("productLine").getAsString());
projectObject.get("projectEndDate").getAsString();
.setProjectPlatfor(projectObject.get("eng_platform").getAsString())
.setProjectNumber(projectObject.get("code").getAsString())
.setProjectName(projectObject.get("name").getAsString())
.setProjectClassification(projectObject.get("catalog_name").getAsString())
.setProjectStatus(projectObject.get("project_status").getAsString())
.setProjectGroup(projectObject.get("project_group_name").getAsString())
.setCurrentNode(projectObject.get("project_current_milestone").getAsString())
.setProjectLevel(projectObject.get("project_level").getAsString())
.setProductLine(projectObject.get("eng_product_line").getAsString());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date targetBeginOn = null;
try {
targetBeginOn = simpleDateFormat.parse(projectObject.get("projectStartDate").getAsString());
Date targetEndOn = simpleDateFormat.parse(projectObject.get("projectEndDate").getAsString());
try {
Date targetBeginOn = simpleDateFormat.parse(projectObject.get("target_begin_on").getAsString());
Date targetEndOn = simpleDateFormat.parse(projectObject.get("target_end_on").getAsString());
projectInfo
.setProjectStartDate(targetBeginOn)
.setProjectEndDate(targetEndOn);
@@ -436,6 +435,7 @@ public class SarStandProjectLibraryServiceImpl extends ServiceImpl<SarStandProje
Page<SarStandProjectLibrary> page = new Page<>(current, pageSize);
IPage<SarStandProjectLibrary> userIPage = new Page<>();
if (3!=flag) {
//6922
List<SarStandProjectLibrary> sarStandProjectLibraries = sarStandProjectLibraryDao.selectPages(current, pageSize, wrapper, flag);
Integer count = sarStandProjectLibraryDao.selectCount(wrapper, flag);
userIPage.setCurrent(current);
@@ -445,6 +445,7 @@ public class SarStandProjectLibraryServiceImpl extends ServiceImpl<SarStandProje
return userIPage;
}
else {
//6922
flag=2;
List<SarStandProjectLibrary> sarStandProjectLibraries = sarStandProjectLibraryDao.selectPagesWorkFlow(current, pageSize, wrapper, flag);
Integer count = sarStandProjectLibraryDao.selectCountWorkFlow(wrapper, flag);
@@ -2,9 +2,8 @@ package com.adc.da.slrs.sarStandProjectTeam.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Company;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.ResponseDto;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto;
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
import com.adc.da.slrs.sarStandProjectTeam.service.ISarStandProjectTeamService;
import io.swagger.annotations.Api;
@@ -16,8 +15,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
/**
* <p>
@@ -41,13 +38,8 @@ public class SarStandProjectTeamController extends BaseController<SarStandProjec
public ResponseDto save(@RequestBody String jsonStr){
log.info(jsonStr);
Head head = sarStandProjectTeamService.AnalysisJsonAndStorage(jsonStr);
ArrayList<Company> companies = new ArrayList<>();
//todo 未确定返回内容
Company company = new Company();
company.setCOMPANY_CODE("");
company.setFISCAL_YEAR("");
companies.add(company);
ResponseDto responseDto = new ResponseDto(head,companies);
ResponseDto responseDto = new ResponseDto(head);
return responseDto;
}
@@ -1,6 +1,6 @@
package com.adc.da.slrs.sarStandProjectTeam.service;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -1,15 +1,13 @@
package com.adc.da.slrs.sarStandProjectTeam.service.impl;
import com.adc.da.slrs.sarStandProjectLibrary.entity.Head;
import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head;
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
import com.adc.da.slrs.sarStandProjectTeam.dao.SarStandProjectTeamDao;
import com.adc.da.slrs.sarStandProjectTeam.service.ISarStandProjectTeamService;
import com.adc.da.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.springframework.stereotype.Service;
@@ -41,57 +41,59 @@
<select id="selectCount" resultType="java.lang.Integer">
SELECT
count(sar_stand_project_library.id ) as total
count(
library.id
) AS total
FROM
sar_stand_project_library
LEFT JOIN ts_user tu ON project_manager = tu.USID
sar_stand_project_library as library
LEFT JOIN sar_stand_project_team as team ON team.project_code = library.project_number
WHERE
<if test="flag == 1">
id NOT IN ( SELECT project_id FROM sar_stand_project_relation )
library.id NOT IN ( SELECT project_id FROM sar_stand_project_relation )
</if>
<if test="flag == 2">
id IN ( SELECT project_id FROM sar_stand_project_relation )
library.id IN ( SELECT project_id FROM sar_stand_project_relation )
</if>
<if test="flag == 4">
1=1
</if>
<if test="qu != null">
<if test="qu.projectNumber != null">
AND project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
AND library.project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
</if>
<if test="qu.projectName != null">
AND project_name LIKE concat(concat('%',#{qu.projectName}),'%')
AND library.project_name LIKE concat(concat('%',#{qu.projectName}),'%')
</if>
<if test="qu.projectClassification != null">
AND project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
AND library.project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
</if>
<if test="qu.projectPlatfor != null">
AND project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
AND library.project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
</if>
<if test="qu.projectGroup != null">
AND project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
AND library.project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
</if>
<if test="qu.projectStatus != null">
AND project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
AND library.project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
</if>
<if test="qu.currentNode != null">
AND current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
AND library.current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
</if>
<if test="qu.projectLevel != null">
AND project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
AND library.project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
</if>
<if test="qu.projectManager != null">
AND project_manager LIKE concat(concat('%',#{qu.projectManager}),'%')
AND team.name LIKE concat(concat('%',#{qu.projectManager}),'%')
</if>
<if test="qu.productLine != null">
AND product_line LIKE concat(concat('%',#{qu.productLine}),'%')
AND library.product_line LIKE concat(concat('%',#{qu.productLine}),'%')
</if>
<if test="qu.projectStartDate != null">
AND project_start_date &gt;= #{qu.projectStartDate}
AND library.project_start_date &gt;= #{qu.projectStartDate}
</if>
<if test="qu.projectEndDate != null">
AND project_end_date &lt;= #{qu.projectEndDate}
AND library.project_end_date &lt;= #{qu.projectEndDate}
</if>
</if>
@@ -99,57 +101,59 @@
<select id="selectPages" resultType="com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary">
SELECT
sar_stand_project_library.*,
tu.UNAME as uName
library.*,
team.`name` as uName
FROM
sar_stand_project_library
LEFT JOIN ts_user tu ON project_manager = tu.USID
sar_stand_project_library as library
LEFT JOIN sar_stand_project_team as team
ON team.project_code = library.project_number
WHERE
<if test="flag == 1">
id NOT IN ( SELECT project_id FROM sar_stand_project_relation )
library.id NOT IN ( SELECT project_id FROM sar_stand_project_relation )
</if>
<if test="flag == 2">
id IN ( SELECT project_id FROM sar_stand_project_relation )
library.id IN ( SELECT project_id FROM sar_stand_project_relation )
</if>
<if test="flag == 4">
1=1
</if>
<if test="qu != null">
<if test="qu.projectNumber != null">
AND project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
AND library.project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
</if>
<if test="qu.projectName != null">
AND project_name LIKE concat(concat('%',#{qu.projectName}),'%')
AND library.project_name LIKE concat(concat('%',#{qu.projectName}),'%')
</if>
<if test="qu.projectClassification != null">
AND project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
AND library.project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
</if>
<if test="qu.projectPlatfor != null">
AND project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
AND library.project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
</if>
<if test="qu.projectGroup != null">
AND project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
AND library.project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
</if>
<if test="qu.projectStatus != null">
AND project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
AND library.project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
</if>
<if test="qu.currentNode != null">
AND current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
AND library.current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
</if>
<if test="qu.projectLevel != null">
AND project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
AND library.project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
</if>
<if test="qu.projectManager != null">
AND project_manager LIKE concat(concat('%',#{qu.projectManager}),'%')
AND team.name LIKE concat(concat('%',#{qu.projectManager}),'%')
</if>
<if test="qu.productLine != null">
AND product_line LIKE concat(concat('%',#{qu.productLine}),'%')
AND library.product_line LIKE concat(concat('%',#{qu.productLine}),'%')
</if>
<if test="qu.projectStartDate != null">
AND project_start_date &gt;= #{qu.projectStartDate}
AND library.project_start_date &gt;= #{qu.projectStartDate}
</if>
<if test="qu.projectEndDate != null">
AND project_end_date &lt;= #{qu.projectEndDate}
AND library.project_end_date &lt;= #{qu.projectEndDate}
</if>
</if>
@@ -158,54 +162,61 @@
<select id="selectPagesWorkFlow"
resultType="com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary">
SELECT
sar_stand_project_library.*,
tu.UNAME as uName
library.*, team.`name` AS uName
FROM
sar_stand_project_library
LEFT JOIN ts_user tu ON project_manager = tu.USID
sar_stand_project_library as library
LEFT JOIN sar_stand_project_team as team ON team.project_code = library.project_number
WHERE
(
id IN ( SELECT DISTINCT project_id FROM sar_stand_project_relation WHERE project_id NOT in ( SELECT DISTINCT
STAND_ID FROM
library.id IN (
SELECT DISTINCT
project_id
FROM
sar_stand_project_relation
WHERE
project_id NOT IN (
SELECT DISTINCT
STAND_ID
FROM
sar_stand_items
)
)
<if test="qu != null">
<if test="qu.projectNumber != null">
AND project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
AND library.project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
</if>
<if test="qu.projectName != null">
AND project_name LIKE concat(concat('%',#{qu.projectName}),'%')
AND library.project_name LIKE concat(concat('%',#{qu.projectName}),'%')
</if>
<if test="qu.projectClassification != null">
AND project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
AND library.project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
</if>
<if test="qu.projectPlatfor != null">
AND project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
AND library.project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
</if>
<if test="qu.projectGroup != null">
AND project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
AND library.project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
</if>
<if test="qu.projectStatus != null">
AND project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
AND library.project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
</if>
<if test="qu.currentNode != null">
AND current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
AND library.current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
</if>
<if test="qu.projectLevel != null">
AND project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
AND library.project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
</if>
<if test="qu.projectManager != null">
AND project_manager LIKE concat(concat('%',#{qu.projectManager}),'%')
AND team.name LIKE concat(concat('%',#{qu.projectManager}),'%')
</if>
<if test="qu.productLine != null">
AND product_line LIKE concat(concat('%',#{qu.productLine}),'%')
AND library.product_line LIKE concat(concat('%',#{qu.productLine}),'%')
</if>
<if test="qu.projectStartDate != null">
AND project_start_date &gt;= #{qu.projectStartDate}
AND library.project_start_date &gt;= #{qu.projectStartDate}
</if>
<if test="qu.projectEndDate != null">
AND project_end_date &lt;= #{qu.projectEndDate}
AND library.project_end_date &lt;= #{qu.projectEndDate}
</if>
</if>
)
@@ -214,53 +225,64 @@
</select>
<select id="selectCountWorkFlow" resultType="java.lang.Integer">
SELECT
count(sar_stand_project_library.id ) as total
count(
library.id
) AS total
FROM
sar_stand_project_library
LEFT JOIN ts_user tu ON project_manager = tu.USID
sar_stand_project_library AS library
LEFT JOIN sar_stand_project_team AS team ON team.project_code = library.project_number
WHERE
(
id IN ( SELECT DISTINCT project_id FROM sar_stand_project_relation WHERE project_id NOT in ( SELECT DISTINCT
STAND_ID FROM
library.id IN (
SELECT DISTINCT
project_id
FROM
sar_stand_project_relation
WHERE
project_id NOT IN (
SELECT DISTINCT
STAND_ID
FROM
sar_stand_items
))
)
)
<if test="qu != null">
<if test="qu.projectNumber != null">
AND project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
AND library.project_number LIKE concat(concat('%',#{qu.projectNumber}),'%')
</if>
<if test="qu.projectName != null">
AND project_name LIKE concat(concat('%',#{qu.projectName}),'%')
AND library.project_name LIKE concat(concat('%',#{qu.projectName}),'%')
</if>
<if test="qu.projectClassification != null">
AND project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
AND library.project_classification LIKE concat(concat('%',#{qu.projectClassification}),'%')
</if>
<if test="qu.projectPlatfor != null">
AND project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
AND library.project_platfor LIKE concat(concat('%',#{qu.projectPlatfor}),'%')
</if>
<if test="qu.projectGroup != null">
AND project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
AND library.project_group LIKE concat(concat('%',#{qu.projectGroup}),'%')
</if>
<if test="qu.projectStatus != null">
AND project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
AND library.project_status LIKE concat(concat('%',#{qu.projectStatus}),'%')
</if>
<if test="qu.currentNode != null">
AND current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
AND library.current_node LIKE concat(concat('%',#{qu.currentNode}),'%')
</if>
<if test="qu.projectLevel != null">
AND project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
AND library.project_level LIKE concat(concat('%',#{qu.projectLevel}),'%')
</if>
<if test="qu.projectManager != null">
AND project_manager LIKE concat(concat('%',#{qu.projectManager}),'%')
AND team.name LIKE concat(concat('%',#{qu.projectManager}),'%')
</if>
<if test="qu.productLine != null">
AND product_line LIKE concat(concat('%',#{qu.productLine}),'%')
AND library.product_line LIKE concat(concat('%',#{qu.productLine}),'%')
</if>
<if test="qu.projectStartDate != null">
AND project_start_date &gt;= #{qu.projectStartDate}
AND library.project_start_date &gt;= #{qu.projectStartDate}
</if>
<if test="qu.projectEndDate != null">
AND project_end_date &lt;= #{qu.projectEndDate}
AND library.project_end_date &lt;= #{qu.projectEndDate}
</if>
</if>
)