diff --git a/.gitignore b/.gitignore index 14f81db9..a7ee8a90 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ target *logs/ .metadata +adc-da-main/src/main/resources/application-zxy.properties \ No newline at end of file diff --git a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java index 25d62124..4f434007 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java +++ b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -@FeignClient(value = "bat-wkflow") +@FeignClient(value = "bat-wkflow-zqazqazqa") public interface workFlowFeignClient { @RequestMapping(value = "/bat-wkflow/activiti_define_start_user",method = RequestMethod.GET) diff --git a/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java b/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java index 82c9b863..e1a55922 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java +++ b/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java @@ -15,7 +15,8 @@ public class ActDefineStartMap { Map map = new TreeMap<>(); map.put("1","standardLibraryWkflow"); + map.put("2","standardSurveyWorkFlow"); return map.get(type); } -} +} \ No newline at end of file diff --git a/adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder.java b/adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder1.java similarity index 94% rename from adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder.java rename to adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder1.java index 99581cb6..a1de3346 100644 --- a/adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder.java +++ b/adc-da-base/src/main/java/com/adc/da/util/SpringContextHolder1.java @@ -6,7 +6,7 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component -public class SpringContextHolder implements ApplicationContextAware { +public class SpringContextHolder1 implements ApplicationContextAware { private static ApplicationContext applicationContext; diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java index 48890445..589c05a9 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java @@ -37,7 +37,7 @@ import java.util.Map; @Validated @Controller @RequestMapping(value = "/api") -@Api(description = "登录接口") +@Api(tags = "登录接口") @Slf4j public class LoginRestController { diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/CacheUtils.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/CacheUtils.java index 079403f4..a855ef5b 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/CacheUtils.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/CacheUtils.java @@ -1,6 +1,6 @@ package com.adc.da.login.util; -import com.adc.da.util.SpringContextHolder; +import com.adc.da.util.SpringContextHolder1; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; @@ -14,7 +14,7 @@ public class CacheUtils { super(); } - private static CacheManager cacheManager = (CacheManager) SpringContextHolder.getBean("ehCacheManagerFactoryBean"); + private static CacheManager cacheManager = (CacheManager) SpringContextHolder1.getBean("ehCacheManagerFactoryBean"); private static final String SYS_CACHE = "sysCache"; diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java index cc409e88..0a8b15db 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/util/UserUtils.java @@ -9,7 +9,7 @@ import com.adc.da.sys.entity.UserEO; import com.adc.da.sys.service.IMenuEOService; import com.adc.da.sys.service.IRoleEOService; import com.adc.da.sys.service.IUserEOService; -import com.adc.da.util.SpringContextHolder; +import com.adc.da.util.SpringContextHolder1; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -53,17 +53,17 @@ public class UserUtils { /** * @see IUserEOService */ - private static IUserEOService userService = SpringContextHolder.getBean(IUserEOService.class); + private static IUserEOService userService = SpringContextHolder1.getBean(IUserEOService.class); /** * @see IMenuEOService */ - private static IMenuEOService menuService = SpringContextHolder.getBean(IMenuEOService.class); + private static IMenuEOService menuService = SpringContextHolder1.getBean(IMenuEOService.class); /** * @see IRoleEOService */ - private static IRoleEOService roleEOService = SpringContextHolder.getBean(IRoleEOService.class); + private static IRoleEOService roleEOService = SpringContextHolder1.getBean(IRoleEOService.class); /** * 退出 diff --git a/adc-da-main/pom.xml b/adc-da-main/pom.xml index bb363e53..cb376f0d 100644 --- a/adc-da-main/pom.xml +++ b/adc-da-main/pom.xml @@ -60,12 +60,16 @@ spring-cloud-starter-openfeign 2.2.0.RELEASE - - - - - - + + + com.adc + adc-da-search + 1.0.0 + compile + + + + diff --git a/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java b/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java index 870c415d..8b91a64b 100644 --- a/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java +++ b/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java @@ -2,10 +2,12 @@ package com.adc.da.main.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; @@ -23,6 +25,7 @@ public class RestTemplateConfig { private static final Logger logger = LoggerFactory.getLogger(RestTemplateConfig.class); @Bean + @LoadBalanced public RestTemplate restTemplate(ClientHttpRequestFactory factory){ RestTemplate restTemplate = new RestTemplate(factory); // 使用 utf-8 编码集的 conver 替换默认的 conver(默认的 string conver 的编码集为"ISO-8859-1") diff --git a/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java b/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java index d583f102..12658804 100644 --- a/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java +++ b/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java @@ -22,11 +22,12 @@ public class CodeGen { // x.x.x.x:3306/xxxx --MYSQL // 192.168.10.140:1521:foton_slrs_test - private static final String DB_IP="101.36.227.22:33050/foton_slrs_test"; + // foton_slrs_test@101.36.227.22 + private static final String DB_IP="192.168.10.47/foton_slrs_test"; private static final String DB_USER="root"; - private static final String DB_PWD="1q2w3e4r"; + private static final String DB_PWD="root"; /** diff --git a/adc-da-main/src/main/resources/application-dev.properties b/adc-da-main/src/main/resources/application-dev.properties index 0280f9bd..71ba6318 100644 --- a/adc-da-main/src/main/resources/application-dev.properties +++ b/adc-da-main/src/main/resources/application-dev.properties @@ -9,10 +9,14 @@ spring.datasource.password = root #============================================== # 应用设置 -spring.application.name=FotonLAWSSystem +spring.application.name=FotonLAWSSystem-zqazqazqa application.code=20200101 application.center=1 #============================================== +#Eruept +eureka.client.allow-redirects=false +eureka.client.register-with-eureka=false +eureka.client.service-url.defaultZone=http://127.0.0.1:8671/eureka/ #============================================== # 邮箱配置1 diff --git a/adc-da-main/src/main/resources/application.properties b/adc-da-main/src/main/resources/application.properties index d0fa62ba..6b97ffad 100644 --- a/adc-da-main/src/main/resources/application.properties +++ b/adc-da-main/src/main/resources/application.properties @@ -30,14 +30,17 @@ restPath=/api #server.servlet.context-path=/api #是否将自己注册到Eureka Server上,默认为true -eureka.client.register-with-eureka=false +eureka.client.register-with-eureka=true ##是否从Eureka Server上获取注册信息,默认为true -eureka.client.fetch-registry=false +eureka.client.fetch-registry=true + #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://127.0.0.1:8761/eureka/ + +eureka.client.service-url.defaultZone=http://192.168.10.47:8761/eureka/ + # 请求连接的超时时间 默认的时间为 1 秒 ribbon.ConnectTimeout=500000 # 请求处理的超时时间 @@ -139,8 +142,8 @@ upload.file.white.lists = doc,docx,xls,xlsx,pdf,PDF,png,jpg # ============================================================================= # elasticsearch 配置 # ============================================================================= -elasticsearch.clustername=laws -elasticsearch.ip=localhost +elasticsearch.clustername=elasticsearch +elasticsearch.ip=192.168.10.47 elasticsearch.port=9300 elasticsearch.poolSize=5 elas.flag=true \ No newline at end of file diff --git a/adc-da-search/pom.xml b/adc-da-search/pom.xml new file mode 100644 index 00000000..4c067f98 --- /dev/null +++ b/adc-da-search/pom.xml @@ -0,0 +1,218 @@ + + + 4.0.0 + + + com.adc + foton-slrs-system-rest + 3.0.0 + + + adc-da-search + 1.0.0 + + jar + + + UTF-8 + UTF-8 + 1.8 + 1.7 + 1.8 + 2.6.6 + 1.4.0-RC2 + 4.3.9.RELEASE + + + + + adc + http://60.247.58.121:8182/nexus/content/groups/public + + true + + + true + + + + + + + + thirdparty + Nexus Thirdparty Repository + http://60.247.58.121:8182/nexus/content/repositories/thirdparty/ + + + + + + + + + + + + + com.adc + adc-da-base + 3.0.0 + + + com.adc + adc-da-slrs + 3.0.0 + + + + com.adc + adc-da-sys + 3.0.0 + + + com.adc + adc-da-excel + 2.0.3 + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.boot + spring-boot-starter-amqp + + + org.elasticsearch.client + transport + 6.3.2 + + + org.elasticsearch + elasticsearch + 6.3.2 + + + + org.apache.logging.log4j + log4j-core + + + org.springframework.boot + spring-boot-starter-web + + + + + + net.sourceforge.javacsv + javacsv + 2.0 + + + net.sf.opencsv + opencsv + 2.3 + + + + com.alibaba + fastjson + 1.2.9 + + + com.google.guava + guava + 19.0 + + + com.mashape.unirest + unirest-java + 1.4.9 + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + commons-logging + commons-logging + + + commons-beanutils + commons-beanutils + + + commons-collections + commons-collections + + + + + org.apache.httpcomponents + httpclient + 4.4.1 + + + org.apache.httpcomponents + httpcore + 4.4.1 + + + + org.aspectj + aspectjweaver + + + + + cn.afterturn + easypoi-base + 4.1.2 + + + cn.afterturn + easypoi-web + 4.1.2 + + + cn.afterturn + easypoi-annotation + 4.1.2 + + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + + + diff --git a/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchConfig.java b/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchConfig.java new file mode 100644 index 00000000..a86b7263 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchConfig.java @@ -0,0 +1,56 @@ +package com.adc.da.search.config; + + +import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.transport.client.PreBuiltTransportClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * gaoyan + * 2018-08-23 + * elasticsearch配置config + */ +@Configuration +public class ElasticsearchConfig { + + private static final Logger logger = LoggerFactory.getLogger(ElasticsearchConfig.class); + + @Autowired + private ElasticsearchProperties elasticsearchProperties; + + @Bean + public TransportClient client() throws UnknownHostException { + TransportClient client = null; + try { + Settings settings = Settings.builder() + .put("client.transport.sniff", true)//增加嗅探机制,找到ES集群 + .put("thread_pool.search.size", elasticsearchProperties.getPoolSize())//增加线程池个数,暂时设为5 + .put("cluster.name",elasticsearchProperties.getClustername()) + .build(); + client = new PreBuiltTransportClient(settings) + .addTransportAddress(new TransportAddress(InetAddress.getByName(elasticsearchProperties.getIp()),elasticsearchProperties.getPort())); + } catch (java.net.UnknownHostException e) { + logger.error(e.getMessage(),e); + } + return client; + } + + /*@After + public void tearDown() throws Exception { + if (client != null) { + client.close(); + } + }*/ + + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchProperties.java b/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchProperties.java new file mode 100644 index 00000000..bedcc96c --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/config/ElasticsearchProperties.java @@ -0,0 +1,17 @@ +package com.adc.da.search.config; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@Data +@ConfigurationProperties(prefix = "elasticsearch") +public class ElasticsearchProperties { + private String clustername; + private String ip; + private Integer port; + private Integer poolSize; + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java new file mode 100644 index 00000000..d60a2cee --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java @@ -0,0 +1,345 @@ +package com.adc.da.search.controller; + +import com.adc.da.base.web.BaseController; +import com.adc.da.excel.poi.excel.ExcelExportUtil; +import com.adc.da.excel.poi.excel.entity.ExportParams; +import com.adc.da.excel.poi.excel.entity.enums.ExcelType; +import com.adc.da.http.PageInfo; +import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.search.dto.*; +import com.adc.da.search.entity.CommonSearchInfoEO; +import com.adc.da.search.entity.SarAdvanceSearchVO; +import com.adc.da.search.entity.SeniorSearchInfoEO; +import com.adc.da.search.service.ElasticsearchService; +import com.adc.da.search.service.SearchCenterService; +import com.adc.da.exception.AdcDaBaseException; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu; +import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService; +import com.adc.da.util.IOUtils; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.elasticsearch.client.transport.TransportClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; +import static com.adc.da.sys.common.ReadExcelName.encodeFileName; + +@RestController +@RequestMapping("/${restPath}/search/searchCenter") +@Api(tags = "|SearchCenter|") +public class SearchCenterController extends BaseController> { + + @Autowired + private TransportClient client; + @Autowired + private SearchCenterService searchCenterService; + + @Autowired + private IPersonCollectEOService personCollectEOService; + + @Autowired + private ElasticsearchService elasticsearchService; + + @Autowired + private ITsDicTypeService iTsDictypeService; + + @ApiOperation("获取筛选条件") + @PostMapping("/getMenu") + public ResponseMessage> getSearchMenu(){ + return Result.success(iTsDictypeService.getSearchMenu()); + } + + /** + * + * @param searchInfoEO + * @return + */ + @ApiOperation(value = "|SearchCenter|查询") + @PostMapping(value="/searchSarBykey") + public ResponseMessage>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception{ + List> result; + if (StringUtils.isAlphanumericSpace(searchInfoEO.getSelectIndex())) { + if(elasticsearchService.isIndexExist(searchInfoEO.getSelectIndex())){ + if("fulltextserch".equals(searchInfoEO.getSelectIndex()) || "fulltextserch"== searchInfoEO.getSelectIndex()){ + Pattern pattern = Pattern.compile("^[a-zA-Z]+\\s[0-9a-zA-Z\\.\\(\\(\\)\\)\\-\\s]+$"); + if (null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + if (pattern.matcher(searchInfoEO.getSelectValue()).matches()) { + result = searchCenterService.searchSarBykeyAndHighLightNumber(searchInfoEO); + }else { + result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO); + } + } else { + result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO); + } + for (int i = 0; i < result.size(); i++) { + String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString()); + result.get(i).put("collectId", collectId); + } + return Result.success(getPageInfo(searchInfoEO.getPager(), result)); + } else { + result = searchCenterService.searchSarBykey(searchInfoEO); + // 非动态消息的需要查询为我推荐 + for (int i = 0; i < result.size(); i++) { + String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString()); + result.get(i).put("collectId", collectId); + result.get(i).put("content", ""); + result.get(i).put("baseSearchContent", ""); + } + return Result.success(getPageInfo(searchInfoEO.getPager(), result)); + } + } else { + return Result.error("未查到相关数据"); + } + } else { + return Result.error("数据错误"); + } + } + + @ApiOperation("根据多个key去查询") + @PostMapping("/searchByKey") + public void searchByKey(@RequestBody CommonSearchInfoEO commonSearchInfoEO){ + searchCenterService.searchByKey(commonSearchInfoEO); + } + + + + @ApiOperation(value = "|SearchCenter|查询用于导出数据") + @PostMapping(value="/searchIdToImport") + public ResponseMessage searchIdToImport(SeniorSearchInfoEO searchInfoEO){ + if (StringUtils.isAlphanumericSpace(searchInfoEO.getSelectIndex())) { + if(elasticsearchService.isIndexExist(searchInfoEO.getSelectIndex())){ + String [] result = searchCenterService.searchIdToImport(searchInfoEO); + return Result.success(result); + } + else { + return Result.error("未查到相关数据"); + } + } else { + return Result.error("数据错误"); + } + } + + @ApiOperation(value = "|SearchCenter|查询") + @PostMapping(value="/selectGroupdata") + public ResponseMessage> selectGroupdata(SeniorSearchInfoEO searchInfoEO){ + Map result = new HashMap<>(); + result = searchCenterService.selectGroupdata(searchInfoEO); + return Result.success(result); + } + + @ApiOperation(value = "|SarLawsInfoEO|导出搜索中心数据") + @GetMapping("/exportSearchCenterDatas") + public void exportSearchCenterDatas(String exportDatas,String searchType, HttpServletResponse response, HttpServletRequest request) throws Exception{ + OutputStream os = null; + if ("bussstand".equals(searchType)){ + searchType = "stand"; + }else if ("enterprise".equals(searchType)){ + searchType = "bussstand"; + } + Workbook workbook = null; + try{ + response.setHeader("Content-Disposition", + "attachment; filename=" + encodeFileName( "检索结果.xlsx", request)); + response.setContentType("application/force-download"); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + //集合 sarAdvanceSearc 的字符串 + + String sarAdvanceSearcString = subString(exportDatas,"[{","}]"); + if (StringUtils.isNotBlank(sarAdvanceSearcString)){ + sarAdvanceSearcString = sarAdvanceSearcString.replace("\\\"","\""); + } + SeniorSearchInfoEO searchInfoEO = null; + if (!"none".equals(sarAdvanceSearcString)) { + exportDatas = exportDatas.replace("[{" + sarAdvanceSearcString + "}]", ""); + JSONObject jsonObject = JSONObject.parseObject(exportDatas); + List sarAdvanceSearchVO = new ArrayList<>(Arrays.asList(sarAdvanceSearcString.split("},"))); + List advanceSearchVOList = new ArrayList<>(); + int flag = 0; + for (String sarAdvanceSearch : sarAdvanceSearchVO) { + JSONObject jsonObjectSAS = null; + if (flag == 0) { + jsonObjectSAS = JSONObject.parseObject("{" + sarAdvanceSearch + "}"); + } else { + jsonObjectSAS = JSONObject.parseObject(sarAdvanceSearch + "}"); + } + SarAdvanceSearchVO sarAdvanceSearchEO = JSONObject.toJavaObject(jsonObjectSAS, SarAdvanceSearchVO.class); + advanceSearchVOList.add(sarAdvanceSearchEO); + flag++; + } + searchInfoEO = JSONObject.toJavaObject(jsonObject, SeniorSearchInfoEO.class); + searchInfoEO.setAdvanceSearchVOList(advanceSearchVOList); + }else { + JSONObject jsonObject=JSONObject.parseObject(exportDatas); + searchInfoEO = JSONObject.toJavaObject(jsonObject, SeniorSearchInfoEO.class); + } + if ("INLAND_STAND".equals(searchType)) { + searchType = "stand"; //guonei + }else if ("INLAND_LAWS".equals(searchType)) { + searchType = "laws"; //zhengce + }else if ("BUSINESS_STAND".equals(searchType)) { + searchType = "bussstand"; //enterprise + }else if ("DYNAMIC_INFORMATION".equals(searchType)) { + searchType = "msgdyinfo"; + }else if ("items".equals(searchType)) { + searchType = "items"; + } + searchInfoEO.setSelectIndex(searchType); + searchInfoEO.setSelectValue(searchInfoEO.getKeywords()); + //存放需要导出的数据 + List> result = new ArrayList<>(); + result = searchCenterService.searchSarBykey(searchInfoEO); + if("stand".equals(searchType)){ + List dtoDatas = new ArrayList<>(); + for(int i=0;i dtoDatas = new ArrayList<>(); + for(int i=0;i dtoDatas = new ArrayList<>(); + for(int i=0;i dtoDatas = new ArrayList<>(); +// for(int i=0;i dtoDatas = new ArrayList<>(); + for(int i=0;i> { + + private static final Logger logger = LoggerFactory.getLogger(StandLawsSearchController.class); + + @Autowired + private ElasticsearchService elasticsearchService; + + /** + * + * @param + * @return + */ + @ApiOperation(value = "|BussnessStand|创建索引") + @PostMapping(value="/createBussstandIndex") + public ResponseMessage createBussstandIndex(){ + XContentBuilder mapping = null; + try { + mapping = XContentFactory.jsonBuilder() + .startObject() + .startObject("properties") //设置之定义字段 + .startObject("apply_arctic") + .field("type","text") //设置数据类型 + .endObject() + .startObject("applyarcticshow") + .field("type","text") + .endObject() + .startObject("energy_kind") + .field("type","text") //设置数据类型 + .endObject() + .startObject("id") + .field("type","text") //设置数据类型 + .endObject() + .startObject("issue_time") + .field("type","date") //设置Date类型 + // .field("format","yyyy-MM-dd HH:mm:ss") //设置Date的格式 + .endObject() + .startObject("nameshow") + .field("type","text") //设置数据类型 + .endObject() + .startObject("numbershow") + .field("type","text") //设置数据类型 + .endObject() + .startObject("put_time") + .field("type","date") //设置数据类型 + .endObject() + .startObject("replace_stand_num") + .field("type","text") //设置数据类型 + .endObject() + .startObject("replaced_stand_num") + .field("type","text") //设置数据类型 + .endObject() + .startObject("standstateshow") + .field("type","text") //设置数据类型 + .endObject() + .startObject("statecode") + .field("type","text") //设置数据类型 + .endObject() + .startObject("type") + .field("type","text") //设置数据类型 + .endObject() + .startObject("valid_flag") + .field("type","long") //设置数据类型 + .endObject() + .startObject("content") + .field("type","text") //设置数据类型 + .endObject() + .endObject() + .endObject(); + } catch (IOException e) { + logger.error(e.getMessage(),e); + } + boolean restule = elasticsearchService.createIndex("newbussstand",mapping); + if (restule) { + return Result.success("创建成功"); + } else { + return Result.error("数据错误"); + } + } + + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/controller/TestController.java b/adc-da-search/src/main/java/com/adc/da/search/controller/TestController.java new file mode 100644 index 00000000..419eed66 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/controller/TestController.java @@ -0,0 +1,161 @@ +package com.adc.da.search.controller; + +import com.adc.da.search.entity.PartProductEO; +import com.adc.da.search.service.ElasticsearchService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import org.elasticsearch.action.index.IndexResponse; +import org.elasticsearch.action.search.SearchRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.action.search.SearchType; +import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.RangeQueryBuilder; +import org.elasticsearch.search.SearchHit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import static com.adc.da.search.util.ElasticsearchConstant.SUCCESS_DELETED; + +@RestController +@RequestMapping("/${restPath}") +@Api(tags = "|testElasticsearch|") +public class TestController { + + private static final Logger logger = LoggerFactory.getLogger(TestController.class); + + @Autowired + private TransportClient client; + @Autowired + private ElasticsearchService elasticsearchService; + + + + @PostMapping("add/book/novel") + @ResponseBody + public ResponseEntity add(@RequestParam(name ="title") String title, + @RequestParam(name ="author") String author, + @RequestParam(name ="word_count") String wordCount, + @RequestParam(name ="publish_date") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date publishDate){ + try { + XContentBuilder content =XContentFactory.jsonBuilder() + .startObject() + .field("title",title) + .field("author",author) + .field("word_count",wordCount) + .field("publish_date",publishDate.getTime()) + .endObject(); + IndexResponse result = this.client.prepareIndex("book","novel").setSource(content).get(); + return new ResponseEntity(result.getId(),HttpStatus.OK); + } + catch (IOException e) { + logger.error(e.getMessage(),e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + + @DeleteMapping("deleteOneDucumentTest") + @ResponseBody + public ResponseEntity delete(@RequestParam(name="id") String id) { + String response = elasticsearchService.deleteDataById("book","novel",id); + if(response.equals(SUCCESS_DELETED)){ + return new ResponseEntity(response, HttpStatus.OK); + } + else { + return new ResponseEntity(response, HttpStatus.NOT_FOUND); + } + } + + + + @PostMapping("query/book/novel") + @ResponseBody + public ResponseEntity query( + @RequestParam(name="title",required = false) String title, + @RequestParam(name="author",required = false) String author, + @RequestParam(name="gt_word_count",defaultValue = "0",required = false) int gtWordCount, + @RequestParam(name="lt_word_count",required = false) Integer ltWordCount + ){ + BoolQueryBuilder boolQueryBuilder =QueryBuilders.boolQuery(); + if(author!=null){ + boolQueryBuilder.must(QueryBuilders.matchQuery("author",author)); + } + if(title!=null){ + boolQueryBuilder.must(QueryBuilders.matchQuery("title",title)); + } + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("word_count").from(gtWordCount); + + if(ltWordCount!=null && ltWordCount>0 ){ + rangeQueryBuilder.to(ltWordCount); + } + boolQueryBuilder.filter(rangeQueryBuilder); + SearchRequestBuilder searchRequestBuilder =this.client.prepareSearch("book") + .setTypes("novel") + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setQuery(boolQueryBuilder) + .setFrom(0) + .setSize(10); + System.out.println(searchRequestBuilder); + SearchResponse response =searchRequestBuilder.get(); + List> result = new ArrayList>(); + for (SearchHit hit:response.getHits()){ + result.add(hit.getSourceAsMap()); + } + return new ResponseEntity(result,HttpStatus.OK); + } + + + + @PostMapping("addIndexSerTest") + @ResponseBody + public String searchIndexTest() { + PartProductEO productEO= new PartProductEO(); + productEO.setCertNumber("er"); + productEO.setCorpId("cid"); + productEO.setCorpModel("cmodel"); + String indexstate = elasticsearchService.addData((JSONObject) JSON.toJSON(productEO),"testone","two"); + return indexstate; + } + + @PostMapping("bulktest") + @ResponseBody + public String bulkTest() throws IOException { + List list = new ArrayList(); + for(int i=0;i<100000;i++){ + PartProductEO productEO= new PartProductEO(); + productEO.setCertNumber("er"+i); + productEO.setCorpId("cid"+i); + productEO.setCorpModel("cmodel"+i); + list.add(JSONObject.parseObject(JSONObject.toJSON(productEO).toString())); + } + String indexstate = elasticsearchService.addBulkData("ymq_index","two",list); + return indexstate; + } + + @PostMapping("justtest") + @ResponseBody + public List> justtest() throws IOException { + String [] index={"bank","book"}; + String [] type={"_doc","_type"}; + String [] fields={"account_number", "balance"}; + List> indexstate = elasticsearchService.searchListDataGroupComplex(index,type); + return indexstate; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/dto/SearchBussExportDto.java b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchBussExportDto.java new file mode 100644 index 00000000..abe7336b --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchBussExportDto.java @@ -0,0 +1,61 @@ +package com.adc.da.search.dto; + +import cn.afterturn.easypoi.excel.annotation.Excel; + +public class SearchBussExportDto { + + @Excel(name = "企业标准号", orderNum = "1",width = 12) + private String numbershow; + + @Excel(name = "企业标准名称", orderNum = "1",width = 14) + private String nameshow; + + @Excel(name = "发布日期", orderNum = "1",width = 10) + private String issueTime; + +// @Excel(name = "实施日期", orderNum = "1",width = 10) + private String putTime; + + @Excel(name = "企业标准状态", orderNum = "1",width = 14) + private String standstateshow; + + public String getNumbershow() { + return numbershow; + } + + public void setNumbershow(String numbershow) { + this.numbershow = numbershow; + } + + public String getNameshow() { + return nameshow; + } + + public void setNameshow(String nameshow) { + this.nameshow = nameshow; + } + + public String getIssueTime() { + return issueTime; + } + + public void setIssueTime(String issueTime) { + this.issueTime = issueTime; + } + + public String getPutTime() { + return putTime; + } + + public void setPutTime(String putTime) { + this.putTime = putTime; + } + + public String getStandstateshow() { + return standstateshow; + } + + public void setStandstateshow(String standstateshow) { + this.standstateshow = standstateshow; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/dto/SearchItemsExportDto.java b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchItemsExportDto.java new file mode 100644 index 00000000..533ed67d --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchItemsExportDto.java @@ -0,0 +1,74 @@ +package com.adc.da.search.dto; + +import com.adc.da.excel.annotation.Excel; + +public class SearchItemsExportDto { + + @Excel(name = "条款号",width = 16) + private String itemsNum; + + @Excel(name = "条款名称",width = 16) + private String itemsName; + + @Excel(name = "新车型实施日期",width = 16) + private String newcarPutTime; + + @Excel(name = "在产车实施日期",width = 16) + private String productPutTime; + + @Excel(name = "关联零部件",width = 16) + private String parts; + + @Excel(name = "适用车型",width = 16) + private String applyArcticShow; + + public String getItemsNum() { + return itemsNum; + } + + public void setItemsNum(String itemsNum) { + this.itemsNum = itemsNum; + } + + public String getItemsName() { + return itemsName; + } + + public void setItemsName(String itemsName) { + this.itemsName = itemsName; + } + + + + public String getParts() { + return parts; + } + + public void setParts(String parts) { + this.parts = parts; + } + + public String getNewcarPutTime() { + return newcarPutTime; + } + + public void setNewcarPutTime(String newcarPutTime) { + this.newcarPutTime = newcarPutTime; + } + + public String getProductPutTime() { + return productPutTime; + } + + public void setProductPutTime(String productPutTime) { + this.productPutTime = productPutTime; + } + + public String getApplyArcticShow() { + return applyArcticShow; + } + + public void setApplyArcticShow(String applyArcticShow) { + this.applyArcticShow = applyArcticShow; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/dto/SearchLawsExportDto.java b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchLawsExportDto.java new file mode 100644 index 00000000..c3a97ca6 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchLawsExportDto.java @@ -0,0 +1,61 @@ +package com.adc.da.search.dto; + +import cn.afterturn.easypoi.excel.annotation.Excel; + +public class SearchLawsExportDto { + + @Excel(name = "文件号", orderNum = "1",width = 10) + private String numbershow; + + @Excel(name = "文件名称", orderNum = "1",width = 10) + private String nameshow; + + @Excel(name = "发布日期", orderNum = "1",width = 10) + private String issueTime; + +// @Excel(name = "实施日期", orderNum = "1",width = 10) +// private String putTime; + + @Excel(name = "文件状态", orderNum = "1",width = 10) + private String standstateshow; + + public String getNumbershow() { + return numbershow; + } + + public void setNumbershow(String numbershow) { + this.numbershow = numbershow; + } + + public String getNameshow() { + return nameshow; + } + + public void setNameshow(String nameshow) { + this.nameshow = nameshow; + } + + public String getIssueTime() { + return issueTime; + } + + public void setIssueTime(String issueTime) { + this.issueTime = issueTime; + } + +// public String getPutTime() { +// return putTime; +// } + +// public void setPutTime(String putTime) { +// this.putTime = putTime; +// } +// + public String getStandstateshow() { + return standstateshow; + } + + public void setStandstateshow(String standstateshow) { + this.standstateshow = standstateshow; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/dto/SearchMsgExportDto.java b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchMsgExportDto.java new file mode 100644 index 00000000..bddee0c4 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchMsgExportDto.java @@ -0,0 +1,39 @@ +package com.adc.da.search.dto; + +import com.adc.da.excel.annotation.Excel; + +public class SearchMsgExportDto { + + @Excel(name = "所属模块", orderNum = "1",width = 10) + private String moduleName; + + @Excel(name = "动态标题", orderNum = "1",width = 10) + private String title; + + @Excel(name = "发布日期", orderNum = "1",width = 10) + private String issueTime; + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getIssueTime() { + return issueTime; + } + + public void setIssueTime(String issueTime) { + this.issueTime = issueTime; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/dto/SearchStandExportDto.java b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchStandExportDto.java new file mode 100644 index 00000000..763605ea --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/dto/SearchStandExportDto.java @@ -0,0 +1,61 @@ +package com.adc.da.search.dto; + +import cn.afterturn.easypoi.excel.annotation.Excel; + +public class SearchStandExportDto { + + @Excel(name = "标准号", orderNum = "1",width = 10) + private String numbershow; + + @Excel(name = "标准名称", orderNum = "1",width = 10) + private String nameshow; + + @Excel(name = "发布日期", orderNum = "1",width = 10) + private String issueTime; + +// @Excel(name = "实施日期", orderNum = "1",width = 10) + private String putTime; + + @Excel(name = "标准状态", orderNum = "1",width = 10) + private String standstateshow; + + public String getNumbershow() { + return numbershow; + } + + public void setNumbershow(String numbershow) { + this.numbershow = numbershow; + } + + public String getNameshow() { + return nameshow; + } + + public void setNameshow(String nameshow) { + this.nameshow = nameshow; + } + + public String getIssueTime() { + return issueTime; + } + + public void setIssueTime(String issueTime) { + this.issueTime = issueTime; + } + + public String getPutTime() { + return putTime; + } + + public void setPutTime(String putTime) { + this.putTime = putTime; + } + + public String getStandstateshow() { + return standstateshow; + } + + public void setStandstateshow(String standstateshow) { + this.standstateshow = standstateshow; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/BasicSearchEntity.java b/adc-da-search/src/main/java/com/adc/da/search/entity/BasicSearchEntity.java new file mode 100644 index 00000000..06379ba6 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/BasicSearchEntity.java @@ -0,0 +1,13 @@ +package com.adc.da.search.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class BasicSearchEntity { + private String key; + private String sign; + private String value; + private List values; +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/CommonSearchInfoEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/CommonSearchInfoEO.java new file mode 100644 index 00000000..fcdbd922 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/CommonSearchInfoEO.java @@ -0,0 +1,22 @@ +package com.adc.da.search.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class CommonSearchInfoEO { + + private List searchEntities; + + private String searchType; + + private String searchIndex; + + private String searchBox; + + private Integer currents; + + private Integer size; + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/EsPage.java b/adc-da-search/src/main/java/com/adc/da/search/entity/EsPage.java new file mode 100644 index 00000000..a1a9d14b --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/EsPage.java @@ -0,0 +1,117 @@ +package com.adc.da.search.entity; + +import java.util.List; +import java.util.Map; + +public class EsPage { + // 指定的或是页面参数 + private int currentPage; // 当前页 + private int pageSize; // 每页显示多少条 + + // 查询es结果 + private int recordCount; // 总记录数 + private List> recordList; // 本页的数据列表 + + // 计算 + private int pageCount; // 总页数 + private int beginPageIndex; // 页码列表的开始索引(包含) + private int endPageIndex; // 页码列表的结束索引(包含) + + /** + * 只接受前4个必要的属性,会自动的计算出其他3个属性的值 + * + * @param currentPage + * @param pageSize + * @param recordCount + * @param recordList + */ + public EsPage(int currentPage, int pageSize, int recordCount, List> recordList) { + this.currentPage = currentPage; + this.pageSize = pageSize; + this.recordCount = recordCount; + this.recordList = recordList; + + // 计算总页码 + pageCount = (recordCount + pageSize - 1) / pageSize; + + // 计算 beginPageIndex 和 endPageIndex + // >> 总页数不多于10页,则全部显示 + if (pageCount <= 10) { + beginPageIndex = 1; + endPageIndex = pageCount; + } + // >> 总页数多于10页,则显示当前页附近的共10个页码 + else { + // 当前页附近的共10个页码(前4个 + 当前页 + 后5个) + beginPageIndex = currentPage - 4; + endPageIndex = currentPage + 5; + // 当前面的页码不足4个时,则显示前10个页码 + if (beginPageIndex < 1) { + beginPageIndex = 1; + endPageIndex = 10; + } + // 当后面的页码不足5个时,则显示后10个页码 + if (endPageIndex > pageCount) { + endPageIndex = pageCount; + beginPageIndex = pageCount - 10 + 1; + } + } + } + + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getRecordCount() { + return recordCount; + } + + public void setRecordCount(int recordCount) { + this.recordCount = recordCount; + } + + public List> getRecordList() { + return recordList; + } + + public void setRecordList(List> recordList) { + this.recordList = recordList; + } + + public int getPageCount() { + return pageCount; + } + + public void setPageCount(int pageCount) { + this.pageCount = pageCount; + } + + public int getBeginPageIndex() { + return beginPageIndex; + } + + public void setBeginPageIndex(int beginPageIndex) { + this.beginPageIndex = beginPageIndex; + } + + public int getEndPageIndex() { + return endPageIndex; + } + + public void setEndPageIndex(int endPageIndex) { + this.endPageIndex = endPageIndex; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/FullTextSearchEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/FullTextSearchEO.java new file mode 100644 index 00000000..e7e10925 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/FullTextSearchEO.java @@ -0,0 +1,93 @@ +package com.adc.da.search.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.util.Date; + +/** + */ +public class FullTextSearchEO extends BaseEntity { + + private String id; + private String indexType; + private String title; + private String textContent; + private Date issue_time; + private String issueTimeStr; + private Date put_time; + private String putTimeStr; + + private String itemsType; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIndexType() { + return indexType; + } + + public void setIndexType(String indexType) { + this.indexType = indexType; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTextContent() { + return textContent; + } + + public void setTextContent(String textContent) { + this.textContent = textContent; + } + + public Date getIssue_time() { + return issue_time; + } + + public void setIssue_time(Date issue_time) { + this.issue_time = issue_time; + } + + public String getIssueTimeStr() { + return issueTimeStr; + } + + public void setIssueTimeStr(String issueTimeStr) { + this.issueTimeStr = issueTimeStr; + } + + public Date getPut_time() { + return put_time; + } + + public void setPut_time(Date put_time) { + this.put_time = put_time; + } + + public String getPutTimeStr() { + return putTimeStr; + } + + public void setPutTimeStr(String putTimeStr) { + this.putTimeStr = putTimeStr; + } + + public String getItemsType() { + return itemsType; + } + + public void setItemsType(String itemsType) { + this.itemsType = itemsType; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/PartProductEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/PartProductEO.java new file mode 100644 index 00000000..ef28e334 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/PartProductEO.java @@ -0,0 +1,37 @@ +package com.adc.da.search.entity; + +import com.adc.da.base.entity.BaseEntity; + +/** + * 功能:PART_PRODUCT PartProductEOEntity
+ * 作者:code generator
+ * 日期: 2018-08-22
+ * 版权所有:版权归北京卡达克数据技术中心所有。
+ */ +public class PartProductEO extends BaseEntity { + + private String corpId; + private String certNumber; + private String corpModel; + public void setCorpId(String corpId) { + this.corpId = corpId; + } + public void setCertNumber(String certNumber) { + this.certNumber = certNumber; + } + public void setCorpModel(String corpModel) { + this.corpModel = corpModel; + } + + public String getCorpId() { + return corpId; + } + + public String getCertNumber() { + return certNumber; + } + + public String getCorpModel() { + return corpModel; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SarAdvanceSearchVO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SarAdvanceSearchVO.java new file mode 100644 index 00000000..1d771b3c --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SarAdvanceSearchVO.java @@ -0,0 +1,69 @@ +package com.adc.da.search.entity; + +/** + * @Description: 标准法规库高级查询 + * @Author: yangxuenan + * date: 2020/12/11 9:22 + */ +public class SarAdvanceSearchVO { + + private String field; //字段 如 标准类别 + + private String value; //值 + + private String type; //查询类型 如 = != like + + private String connect; //连接符号 如 and or + + private String timeSt; + + private String timeEd; + + public String getField() { + return field; + } + + public void setField(String field) { + this.field = field; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getConnect() { + return connect; + } + + public void setConnect(String connect) { + this.connect = connect; + } + + public String getTimeSt() { + return timeSt; + } + + public void setTimeSt(String timeSt) { + this.timeSt = timeSt; + } + + public String getTimeEd() { + return timeEd; + } + + public void setTimeEd(String timeEd) { + this.timeEd = timeEd; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SarBussionessStandEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SarBussionessStandEO.java new file mode 100644 index 00000000..e5f77a38 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SarBussionessStandEO.java @@ -0,0 +1,548 @@ +package com.adc.da.search.entity; + +import com.adc.da.att.vo.AttFileVo; +import com.adc.da.base.entity.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 功能:SAR_BUSSIONESS_STAND SarBussionessStandEOEntity
+ * 作者:code generator
+ * 日期: 2018-09-03
+ * 版权所有:版权归北京卡达克数据技术中心所有。
+ */ +public class SarBussionessStandEO extends BaseEntity { + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + private Integer validFlag; + private String putUser; + private String citationUser; + private String responsibleUnit; + private String standFile; + private String tags; + private String standStatus; + private String replacedStandNum; + private String replaceStandNum; + private String quoteStand; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date firstPutTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date putYear; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date putTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date issueTime; + private String energyKind; + private String applyArctic; + private String standEnName; + private String standName; + //标准编码 + private String standCode; + //分类代号 + private String classifyCode; + private String standSubclass; + private String standGenera; + private String id; + + //目录ID 非标准信息表中的字段 + private String menuId; + private String menuParentId; + private String standStatusShow; // 标准状态下拉框 --单选 + private String applyArcticShow; // 适用车型下拉框 --多选 + private String energyKindShow; // 能源种类下拉框 --多选 + private String standGeneraShow; + private String standSubclassShow; + private String responsibleUnitShow; + private List standFileList = new ArrayList(); + + private String collectId; + + //文件的下载id + private String attId; + public String getAttId() { + return attId; + } + + public void setAttId(String attId) { + this.attId = attId; + } + + //记录是否修改了替代文件号 + private int upReplaceNumFlag; + //记录是否修改了文件号 + private int upNumFlag; + + /** + * java字段名转换为原始数据库列名。如果不存在则返回null
+ *

字段列表:

+ *
  • modifyTime -> modify_time
  • + *
  • creationTime -> creation_time
  • + *
  • validFlag -> valid_flag
  • + *
  • putUser -> put_user
  • + *
  • citationUser -> citation_user
  • + *
  • responsibleUnit -> responsible_unit
  • + *
  • standFile -> stand_file
  • + *
  • tags -> tags
  • + *
  • standStatus -> stand_status
  • + *
  • replacedStandNum -> replaced_stand_num
  • + *
  • replaceStandNum -> replace_stand_num
  • + *
  • quoteStand -> quote_stand
  • + *
  • firstPutTime -> first_put_time
  • + *
  • putYear -> put_year
  • + *
  • putTime -> put_time
  • + *
  • issueTime -> issue_time
  • + *
  • energyKind -> energy_kind
  • + *
  • applyArctic -> apply_arctic
  • + *
  • standEnName -> stand_en_name
  • + *
  • standName -> stand_name
  • + *
  • standCode -> stand_code
  • + *
  • classifyCode -> classify_code
  • + *
  • standSubclass -> stand_subclass
  • + *
  • standGenera -> stand_genera
  • + *
  • id -> id
  • + */ + public static String fieldToColumn(String fieldName) { + if (fieldName == null){ return null;} + switch (fieldName) { + case "modifyTime": return "modify_time"; + case "creationTime": return "creation_time"; + case "validFlag": return "valid_flag"; + case "putUser": return "put_user"; + case "citationUser": return "citation_user"; + case "responsibleUnit": return "responsible_unit"; + case "standFile": return "stand_file"; + case "tags": return "tags"; + case "standStatus": return "stand_status"; + case "replacedStandNum": return "replaced_stand_num"; + case "replaceStandNum": return "replace_stand_num"; + case "quoteStand": return "quote_stand"; + case "firstPutTime": return "first_put_time"; + case "putYear": return "put_year"; + case "putTime": return "put_time"; + case "issueTime": return "issue_time"; + case "energyKind": return "energy_kind"; + case "applyArctic": return "apply_arctic"; + case "standEnName": return "stand_en_name"; + case "standName": return "stand_name"; + case "standCode": return "stand_code"; + case "classifyCode": return "classify_code"; + case "standSubclass": return "stand_subclass"; + case "standGenera": return "stand_genera"; + case "id": return "id"; + default: return null; + } + } + + /** + * 原始数据库列名转换为java字段名。如果不存在则返回null
    + *

    字段列表:

    + *
  • modify_time -> modifyTime
  • + *
  • creation_time -> creationTime
  • + *
  • valid_flag -> validFlag
  • + *
  • put_user -> putUser
  • + *
  • citation_user -> citationUser
  • + *
  • responsible_unit -> responsibleUnit
  • + *
  • stand_file -> standFile
  • + *
  • tags -> tags
  • + *
  • stand_status -> standStatus
  • + *
  • replaced_stand_num -> replacedStandNum
  • + *
  • replace_stand_num -> replaceStandNum
  • + *
  • quote_stand -> quoteStand
  • + *
  • first_put_time -> firstPutTime
  • + *
  • put_year -> putYear
  • + *
  • put_time -> putTime
  • + *
  • issue_time -> issueTime
  • + *
  • energy_kind -> energyKind
  • + *
  • apply_arctic -> applyArctic
  • + *
  • stand_en_name -> standEnName
  • + *
  • stand_name -> standName
  • + *
  • stand_code -> standCode
  • + *
  • classify_code -> classifyCode
  • + *
  • stand_subclass -> standSubclass
  • + *
  • stand_genera -> standGenera
  • + *
  • id -> id
  • + */ + public static String columnToField(String columnName) { + if (columnName == null){ return null;} + switch (columnName) { + case "modify_time": return "modifyTime"; + case "creation_time": return "creationTime"; + case "valid_flag": return "validFlag"; + case "put_user": return "putUser"; + case "citation_user": return "citationUser"; + case "responsible_unit": return "responsibleUnit"; + case "stand_file": return "standFile"; + case "tags": return "tags"; + case "stand_status": return "standStatus"; + case "replaced_stand_num": return "replacedStandNum"; + case "replace_stand_num": return "replaceStandNum"; + case "quote_stand": return "quoteStand"; + case "first_put_time": return "firstPutTime"; + case "put_year": return "putYear"; + case "put_time": return "putTime"; + case "issue_time": return "issueTime"; + case "energy_kind": return "energyKind"; + case "apply_arctic": return "applyArctic"; + case "stand_en_name": return "standEnName"; + case "stand_name": return "standName"; + case "stand_code": return "standCode"; + case "classify_code": return "classifyCode"; + case "stand_subclass": return "standSubclass"; + case "stand_genera": return "standGenera"; + case "id": return "id"; + default: return null; + } + } + + /** **/ + public Date getModifyTime() { + return this.modifyTime; + } + + /** **/ + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + /** **/ + public Date getCreationTime() { + return this.creationTime; + } + + /** **/ + public void setCreationTime(Date creationTime) { + this.creationTime = creationTime; + } + + /** **/ + public Integer getValidFlag() { + return this.validFlag; + } + + /** **/ + public void setValidFlag(Integer validFlag) { + this.validFlag = validFlag; + } + + /** **/ + public String getPutUser() { + return this.putUser; + } + + /** **/ + public void setPutUser(String putUser) { + this.putUser = putUser; + } + + /** **/ + public String getCitationUser() { + return this.citationUser; + } + + /** **/ + public void setCitationUser(String citationUser) { + this.citationUser = citationUser; + } + + /** **/ + public String getResponsibleUnit() { + return this.responsibleUnit; + } + + /** **/ + public void setResponsibleUnit(String responsibleUnit) { + this.responsibleUnit = responsibleUnit; + } + + /** **/ + public String getStandFile() { + return this.standFile; + } + + /** **/ + public void setStandFile(String standFile) { + this.standFile = standFile; + } + + /** **/ + public String getTags() { + return this.tags; + } + + /** **/ + public void setTags(String tags) { + this.tags = tags; + } + + /** **/ + public String getStandStatus() { + return this.standStatus; + } + + /** **/ + public void setStandStatus(String standStatus) { + this.standStatus = standStatus; + } + + /** **/ + public String getReplacedStandNum() { + return this.replacedStandNum; + } + + /** **/ + public void setReplacedStandNum(String replacedStandNum) { + this.replacedStandNum = replacedStandNum; + } + + /** **/ + public String getReplaceStandNum() { + return this.replaceStandNum; + } + + /** **/ + public void setReplaceStandNum(String replaceStandNum) { + this.replaceStandNum = replaceStandNum; + } + + /** **/ + public String getQuoteStand() { + return this.quoteStand; + } + + /** **/ + public void setQuoteStand(String quoteStand) { + this.quoteStand = quoteStand; + } + + /** **/ + public Date getFirstPutTime() { + return this.firstPutTime; + } + + /** **/ + public void setFirstPutTime(Date firstPutTime) { + this.firstPutTime = firstPutTime; + } + + /** **/ + public Date getPutYear() { + return this.putYear; + } + + /** **/ + public void setPutYear(Date putYear) { + this.putYear = putYear; + } + + /** **/ + public Date getPutTime() { + return this.putTime; + } + + /** **/ + public void setPutTime(Date putTime) { + this.putTime = putTime; + } + + /** **/ + public Date getIssueTime() { + return this.issueTime; + } + + /** **/ + public void setIssueTime(Date issueTime) { + this.issueTime = issueTime; + } + + /** **/ + public String getEnergyKind() { + return this.energyKind; + } + + /** **/ + public void setEnergyKind(String energyKind) { + this.energyKind = energyKind; + } + + /** **/ + public String getApplyArctic() { + return this.applyArctic; + } + + /** **/ + public void setApplyArctic(String applyArctic) { + this.applyArctic = applyArctic; + } + + /** **/ + public String getStandEnName() { + return this.standEnName; + } + + /** **/ + public void setStandEnName(String standEnName) { + this.standEnName = standEnName; + } + + /** **/ + public String getStandName() { + return this.standName; + } + + /** **/ + public void setStandName(String standName) { + this.standName = standName; + } + + /** **/ + public String getStandCode() { + return this.standCode; + } + + /** **/ + public void setStandCode(String standCode) { + this.standCode = standCode; + } + + /** **/ + public String getClassifyCode() { + return this.classifyCode; + } + + /** **/ + public void setClassifyCode(String classifyCode) { + this.classifyCode = classifyCode; + } + + /** **/ + public String getStandSubclass() { + return this.standSubclass; + } + + /** **/ + public void setStandSubclass(String standSubclass) { + this.standSubclass = standSubclass; + } + + /** **/ + public String getStandGenera() { + return this.standGenera; + } + + /** **/ + public void setStandGenera(String standGenera) { + this.standGenera = standGenera; + } + + /** **/ + public String getId() { + return this.id; + } + + /** **/ + public void setId(String id) { + this.id = id; + } + + public String getMenuId() { + return menuId; + } + + public void setMenuId(String menuId) { + this.menuId = menuId; + } + + public String getStandStatusShow() { + return standStatusShow; + } + + public void setStandStatusShow(String standStatusShow) { + this.standStatusShow = standStatusShow; + } + + public String getApplyArcticShow() { + return applyArcticShow; + } + + public void setApplyArcticShow(String applyArcticShow) { + this.applyArcticShow = applyArcticShow; + } + + public String getEnergyKindShow() { + return energyKindShow; + } + + public void setEnergyKindShow(String energyKindShow) { + this.energyKindShow = energyKindShow; + } + + public String getStandGeneraShow() { + return standGeneraShow; + } + + public void setStandGeneraShow(String standGeneraShow) { + this.standGeneraShow = standGeneraShow; + } + + public String getStandSubclassShow() { + return standSubclassShow; + } + + public void setStandSubclassShow(String standSubclassShow) { + this.standSubclassShow = standSubclassShow; + } + + public List getStandFileList() { + return standFileList; + } + + public void setStandFileList(List standFileList) { + this.standFileList = standFileList; + } + + public String getCollectId() { + return collectId; + } + + public void setCollectId(String collectId) { + this.collectId = collectId; + } + + public String getResponsibleUnitShow() { + return responsibleUnitShow; + } + + public void setResponsibleUnitShow(String responsibleUnitShow) { + this.responsibleUnitShow = responsibleUnitShow; + } + + public String getMenuParentId() { + return menuParentId; + } + + public void setMenuParentId(String menuParentId) { + this.menuParentId = menuParentId; + } + + public int getUpReplaceNumFlag() { + return upReplaceNumFlag; + } + + public void setUpReplaceNumFlag(int upReplaceNumFlag) { + this.upReplaceNumFlag = upReplaceNumFlag; + } + + public int getUpNumFlag() { + return upNumFlag; + } + + public void setUpNumFlag(int upNumFlag) { + this.upNumFlag = upNumFlag; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SearchInfoEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SearchInfoEO.java new file mode 100644 index 00000000..1e69ed01 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SearchInfoEO.java @@ -0,0 +1,192 @@ +package com.adc.da.search.entity; + +import com.adc.da.base.page.BasePage; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +/** + * 功能:SAR_STANDARDS_INFO SarStandardsInfoEOEntity
    + * 作者:code generator
    + * 日期: 2018-09-03
    + * 版权所有:版权归北京卡达克数据技术中心所有。
    + */ + +public class SearchInfoEO extends BasePage { + + //标准编号 文件号laws_number 标准编号STAND_CODE + private String standNumber; + //标准名称 文件名称laws_name standNAME + private String standName; + //标准英文名称 无 standEnName + private String standEnName; + //标准状态 文件状态laws_status standStatus + private String standState; + //标准文本 支持PDF、doc、docx文件《此项需要按照标准正文内容修改》 无 标准文本文件standFile + private String standFile; + //适用车型 适用车型 适用车型 + private String applyArctic; + //发布日期 发布日期 发布日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date issueTime; + //实施日期 实施日期 实施日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date putTime; + //起草人 无 有发布人和主要编织者putUser,citationUser + private String draftUser; + //起草单位 发布单位issueUnit 无,只有责任部门 + private String draftingUnit; + //代替标准号 代替文件号replaceLawsNum 代替标准号 + private String replaceStandNum; + //被代替标准号 无 被代替标准号 + private String replacedStandNum; + + //需求文档中还有 《文件名称》laws 中有 laws_name 标准库,企业标准库没有相关字段 + private String lawsName; + // 《动态标题》,标准库中找不到对应 都没有 + + //记录首页中的下拉选择的数据类别 + private String selectKey; + //记录首页搜索框中对应的数据 + private String selectValue; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date selectStartTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date selectEndTime; + + public String getStandNumber() { + return standNumber; + } + + public void setStandNumber(String standNumber) { + this.standNumber = standNumber; + } + + public String getStandName() { + return standName; + } + + public void setStandName(String standName) { + this.standName = standName; + } + + public String getStandEnName() { + return standEnName; + } + + public void setStandEnName(String standEnName) { + this.standEnName = standEnName; + } + + public String getStandState() { + return standState; + } + + public void setStandState(String standState) { + this.standState = standState; + } + + public String getStandFile() { + return standFile; + } + + public void setStandFile(String standFile) { + this.standFile = standFile; + } + + public String getApplyArctic() { + return applyArctic; + } + + public void setApplyArctic(String applyArctic) { + this.applyArctic = applyArctic; + } + + public Date getIssueTime() { + return issueTime; + } + + public void setIssueTime(Date issueTime) { + this.issueTime = issueTime; + } + + public Date getPutTime() { + return putTime; + } + + public void setPutTime(Date putTime) { + this.putTime = putTime; + } + + public String getDraftUser() { + return draftUser; + } + + public void setDraftUser(String draftUser) { + this.draftUser = draftUser; + } + + public String getDraftingUnit() { + return draftingUnit; + } + + public void setDraftingUnit(String draftingUnit) { + this.draftingUnit = draftingUnit; + } + + public String getReplaceStandNum() { + return replaceStandNum; + } + + public void setReplaceStandNum(String replaceStandNum) { + this.replaceStandNum = replaceStandNum; + } + + public String getReplacedStandNum() { + return replacedStandNum; + } + + public void setReplacedStandNum(String replacedStandNum) { + this.replacedStandNum = replacedStandNum; + } + + public String getLawsName() { + return lawsName; + } + + public void setLawsName(String lawsName) { + this.lawsName = lawsName; + } + + public String getSelectKey() { + return selectKey; + } + + public void setSelectKey(String selectKey) { + this.selectKey = selectKey; + } + + public String getSelectValue() { + return selectValue; + } + + public void setSelectValue(String selectValue) { + this.selectValue = selectValue; + } + + public Date getSelectStartTime() { + return selectStartTime; + } + + public void setSelectStartTime(Date selectStartTime) { + this.selectStartTime = selectStartTime; + } + + public Date getSelectEndTime() { + return selectEndTime; + } + + public void setSelectEndTime(Date selectEndTime) { + this.selectEndTime = selectEndTime; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SearchListDto.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SearchListDto.java new file mode 100644 index 00000000..b269022d --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SearchListDto.java @@ -0,0 +1,42 @@ +package com.adc.da.search.entity; + +import org.elasticsearch.index.query.BoolQueryBuilder; + +public class SearchListDto { + private BoolQueryBuilder boolQueryBuilder; + private int must; + private int should; + private int mustnot; + + public int getMustnot() { + return mustnot; + } + + public void setMustnot(int mustnot) { + this.mustnot = mustnot; + } + + public int getShould() { + return should; + } + + public void setShould(int should) { + this.should = should; + } + + public int getMust() { + return must; + } + + public void setMust(int must) { + this.must = must; + } + + public BoolQueryBuilder getBoolQueryBuilder() { + return boolQueryBuilder; + } + + public void setBoolQueryBuilder(BoolQueryBuilder boolQueryBuilder) { + this.boolQueryBuilder = boolQueryBuilder; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java new file mode 100644 index 00000000..7f2107ed --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java @@ -0,0 +1,159 @@ +package com.adc.da.search.entity; + +import com.adc.da.base.page.BasePage; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +/** + * 功能:SAR_STANDARDS_INFO SarStandardsInfoEOEntity
    + * 作者:code generator
    + * 日期: 2018-09-03
    + * 版权所有:版权归北京卡达克数据技术中心所有。
    + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class SeniorSearchInfoEO extends BasePage { + private String standType; + //标准性质 + private String nature; + //国家地区 + private String country; + //标准类别 + private String standSort; + //标准,文件号 + private String numberShow; + //标准,文件名称 + private String nameShow; + //适用车型 + private String applyArctic; + //适用认证 + private String applyAuth; + //所属类别 + private String category; + //能源种类 + private String energyKind; + //采标程度 + private String adoptExtent; + //标准状态 + private String standState; + //发布日期 + private Date issueTime; + //标准大类 + private String bussBigClass; + //标准细类 + private String bussFineClass; + + //记录首页中的下拉选择的数据类别 + private String selectKey; + //记录首页搜索框中对应的数据 + private String selectValue; + //记录从哪个索引表中查数据 + private String selectIndex; + + //高级搜索 + //标准编号 + private String standNumber; + //标准年份 + private String standYear; + //标准英文名称 + private String standEnName; + //代替标准号 手动输入可以多个,用","隔开 + private String replaceStandNum; + //被代替标准号 + private String replacedStandNum; + //采用国际标准号 + private String interStandNum; + //实施日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date putTime; + //新生产车实施日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date newproductPutTime; + //在产车实施日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date productPutTime; + //新定型车实施日期 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date newcarPutTime; + //起草人 + private String draftUser; + //起草单位 + private String draftingUnit; + //关键词 + private String tags; + //内容摘要 + private String synopsis; + //责任部门 + private String responsibleUnit; + //发布单位 + private String issueUnit; + //分类代号 + private String classifyCode; + //实施年份 + private String putYear; + //首发日期 + private String firstPutTime; + //引用标准 + private String quoteStand; + //主要编制者 + private String citationUser; + //动态标题 + private String title; + //发布人 + private String pubUserName; + //发布单位 + private String pubOrgName; + //所属模块 + private String module; + //注册车 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date registerPutTime; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date selectStartTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date selectEndTime; + + private String keywords; + private String resultKeyword; + //发布开始日期 + private Date issueTimeSt; + //发布结束日期 + private Date issueTimeEd; + //实施开始日期 + private Date putTimeSt; + //实施结束日期 + private Date putTimeEd; + + + // 条目搜索条件 + private String itemsName; + private String itemsNum; + private String parts; + + //新车型实施开始日期 + private Date newcarPutTimeSt; + //新车型实施结束日期 + private Date newcarPutTimeEd; + //在产实施开始日期 + private Date productPutTimeSt; + //在产实施结束日期 + private Date productPutTimeEd; + private List advanceSearchVOList; + private String advanceSearchVOStr; + private String CLLX; + private String CYSD; + private String CBCD; + private String ZRLX; + private String SYCLLX; + private String WSSFCY; + + private String ZQCBM; + private String stand_status; + private String isHigh; + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/StandLawsEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/StandLawsEO.java new file mode 100644 index 00000000..eba8a648 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/StandLawsEO.java @@ -0,0 +1,926 @@ +package com.adc.da.search.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.util.Date; + +/** + * 功能:PART_PRODUCT PartProductEOEntity
    + * 作者:code generator
    + * 日期: 2018-11-22
    + * 版权所有:

    + */ +public class StandLawsEO extends BaseEntity { + private String id; + private String stand_type; + private String laws_type; + private String numbershow; + private String numbershowSplit; + private String standNumber; + private String nameshow; + private String nameshowSplit; + private String standEnName; + private String nature; + private String natureShow; + private String country; + private String countryShow; + private String stand_sort; + private String standSortShow; + private String apply_arctic; + private String applyArcticShow; + private String standYear; + private String apply_auth; + private String applyAuthShow; + private String category; + private String categoryShow; + private String energy_kind; + private String energyKindShow; + private String adopt_extent; + private String adoptExtentShow; + private String statecode; + private String statecodeShow; + private Date issue_time; + private String issueTimeStr; + private Date put_time; + private String putTimeStr; + private String draft_user; + private String drafting_unit; + private String replace_stand_num; + private String replaced_stand_num; + private Integer valid_flag; + private String type; + private String standstateshow; + private String content; + + private String lawsstateshow; + private String replace_laws_num; + + private String bussBigClass; + private String bussBigClassShow; + private String bussFineClassShow; + private String bussFineClass; + private String classifyCode; + private String putYear; + private String firstPutTime; + private String quoteStand; + private String citationUser; + private String responsibleUnit; + private String responsibleUnitShow; + private String interStandNum; + private Date newproductPutTime; + //在产车实施日期 + private Date productPutTime; + //新定型车实施日期 + private Date newcarPutTime; + private Date registerPutTime; + private String standTag; + private String synopsis; + //发布单位 + private String issueUnit; + //动态信息 + private String module; + private String moduleName; + private String title; + private String pubUser; + private String pubUserShow; + private String pubOrg; + private String pubOrgShow; + private String msgContent; + + //去掉编号中空格 + private String numberExpNull; + + // 条目信息 + private String itemsName; + private String itemsNum; + private String standId; + private String termsConditions; //条款要求 + private String mainPointImplementation; //实施要点 + private String parts; + private Date tackTime; + private String remarks; + private String itemsType; + // 新加属性字段 + private String issueUnitShow;//发布单位 + private String citeStand; + private String citedStand; + private String gkglbm; + private String gkglbmShow; + private String gzzxx; + private String cysd; + private String zrlx; + private String zrlxShow; + private String yqlx; + private String yqlxShow; + private String gxhbq; + private String gxhbqShow; + private String xgbm; + private String xgbmShow; + private String svpps; + private String fo; + private String foShow; + private String xmpgry; + private String xmpgryShow; + private String fgwhr; + + public String getApply_arctic() { + return apply_arctic; + } + + public void setApply_arctic(String apply_arctic) { + this.apply_arctic = apply_arctic; + } + + public String getEnergy_kind() { + return energy_kind; + } + + public void setEnergy_kind(String energy_kind) { + this.energy_kind = energy_kind; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Date getIssue_time() { + return issue_time; + } + + public void setIssue_time(Date issue_time) { + this.issue_time = issue_time; + } + + public String getNameshow() { + return nameshow; + } + + public void setNameshow(String nameshow) { + this.nameshow = nameshow; + } + + public String getNumbershow() { + return numbershow; + } + + public void setNumbershow(String numbershow) { + this.numbershow = numbershow; + } + + public Date getPut_time() { + return put_time; + } + + public void setPut_time(Date put_time) { + this.put_time = put_time; + } + + public String getReplace_stand_num() { + return replace_stand_num; + } + + public void setReplace_stand_num(String replace_stand_num) { + this.replace_stand_num = replace_stand_num; + } + + public String getReplaced_stand_num() { + return replaced_stand_num; + } + + public void setReplaced_stand_num(String replaced_stand_num) { + this.replaced_stand_num = replaced_stand_num; + } + + public String getStandstateshow() { + return standstateshow; + } + + public void setStandstateshow(String standstateshow) { + this.standstateshow = standstateshow; + } + + public String getStatecode() { + return statecode; + } + + public void setStatecode(String statecode) { + this.statecode = statecode; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Integer getValid_flag() { + return valid_flag; + } + + public void setValid_flag(Integer valid_flag) { + this.valid_flag = valid_flag; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getStand_type() { + return stand_type; + } + + public void setStand_type(String stand_type) { + this.stand_type = stand_type; + } + + public String getLaws_type() { + return laws_type; + } + + public void setLaws_type(String laws_type) { + this.laws_type = laws_type; + } + + public String getNature() { + return nature; + } + + public void setNature(String nature) { + this.nature = nature; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getStand_sort() { + return stand_sort; + } + + public void setStand_sort(String stand_sort) { + this.stand_sort = stand_sort; + } + + public String getApply_auth() { + return apply_auth; + } + + public void setApply_auth(String apply_auth) { + this.apply_auth = apply_auth; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getAdopt_extent() { + return adopt_extent; + } + + public void setAdopt_extent(String adopt_extent) { + this.adopt_extent = adopt_extent; + } + + public String getDraft_user() { + return draft_user; + } + + public void setDraft_user(String draft_user) { + this.draft_user = draft_user; + } + + public String getDrafting_unit() { + return drafting_unit; + } + + public void setDrafting_unit(String drafting_unit) { + this.drafting_unit = drafting_unit; + } + + public String getLawsstateshow() { + return lawsstateshow; + } + + public void setLawsstateshow(String lawsstateshow) { + this.lawsstateshow = lawsstateshow; + } + + public String getReplace_laws_num() { + return replace_laws_num; + } + + public void setReplace_laws_num(String replace_laws_num) { + this.replace_laws_num = replace_laws_num; + } + + public String getBussBigClass() { + return bussBigClass; + } + + public void setBussBigClass(String bussBigClass) { + this.bussBigClass = bussBigClass; + } + + public String getBussFineClass() { + return bussFineClass; + } + + public void setBussFineClass(String bussFineClass) { + this.bussFineClass = bussFineClass; + } + + public String getClassifyCode() { + return classifyCode; + } + + public void setClassifyCode(String classifyCode) { + this.classifyCode = classifyCode; + } + + public String getPutYear() { + return putYear; + } + + public void setPutYear(String putYear) { + this.putYear = putYear; + } + + public String getFirstPutTime() { + return firstPutTime; + } + + public void setFirstPutTime(String firstPutTime) { + this.firstPutTime = firstPutTime; + } + + public String getQuoteStand() { + return quoteStand; + } + + public void setQuoteStand(String quoteStand) { + this.quoteStand = quoteStand; + } + + public String getCitationUser() { + return citationUser; + } + + public void setCitationUser(String citationUser) { + this.citationUser = citationUser; + } + + public String getStandEnName() { + return standEnName; + } + + public void setStandEnName(String standEnName) { + this.standEnName = standEnName; + } + + public String getResponsibleUnit() { + return responsibleUnit; + } + + public void setResponsibleUnit(String responsibleUnit) { + this.responsibleUnit = responsibleUnit; + } + + public String getInterStandNum() { + return interStandNum; + } + + public void setInterStandNum(String interStandNum) { + this.interStandNum = interStandNum; + } + + public Date getNewproductPutTime() { + return newproductPutTime; + } + + public void setNewproductPutTime(Date newproductPutTime) { + this.newproductPutTime = newproductPutTime; + } + + public Date getProductPutTime() { + return productPutTime; + } + + public void setProductPutTime(Date productPutTime) { + this.productPutTime = productPutTime; + } + + public Date getNewcarPutTime() { + return newcarPutTime; + } + + public void setNewcarPutTime(Date newcarPutTime) { + this.newcarPutTime = newcarPutTime; + } + + public String getSynopsis() { + return synopsis; + } + + public void setSynopsis(String synopsis) { + this.synopsis = synopsis; + } + + public String getIssueUnit() { + return issueUnit; + } + + public void setIssueUnit(String issueUnit) { + this.issueUnit = issueUnit; + } + + public String getNatureShow() { + return natureShow; + } + + public void setNatureShow(String natureShow) { + this.natureShow = natureShow; + } + + public String getCountryShow() { + return countryShow; + } + + public void setCountryShow(String countryShow) { + this.countryShow = countryShow; + } + + public String getStandSortShow() { + return standSortShow; + } + + public void setStandSortShow(String standSortShow) { + this.standSortShow = standSortShow; + } + + public String getApplyArcticShow() { + return applyArcticShow; + } + + public void setApplyArcticShow(String applyArcticShow) { + this.applyArcticShow = applyArcticShow; + } + + public String getApplyAuthShow() { + return applyAuthShow; + } + + public void setApplyAuthShow(String applyAuthShow) { + this.applyAuthShow = applyAuthShow; + } + + public String getCategoryShow() { + return categoryShow; + } + + public void setCategoryShow(String categoryShow) { + this.categoryShow = categoryShow; + } + + public String getEnergyKindShow() { + return energyKindShow; + } + + public void setEnergyKindShow(String energyKindShow) { + this.energyKindShow = energyKindShow; + } + + public String getAdoptExtentShow() { + return adoptExtentShow; + } + + public void setAdoptExtentShow(String adoptExtentShow) { + this.adoptExtentShow = adoptExtentShow; + } + + public String getStatecodeShow() { + return statecodeShow; + } + + public void setStatecodeShow(String statecodeShow) { + this.statecodeShow = statecodeShow; + } + + public String getIssueTimeStr() { + return issueTimeStr; + } + + public void setIssueTimeStr(String issueTimeStr) { + this.issueTimeStr = issueTimeStr; + } + + public String getPutTimeStr() { + return putTimeStr; + } + + public void setPutTimeStr(String putTimeStr) { + this.putTimeStr = putTimeStr; + } + + public String getBussBigClassShow() { + return bussBigClassShow; + } + + public void setBussBigClassShow(String bussBigClassShow) { + this.bussBigClassShow = bussBigClassShow; + } + + public String getBussFineClassShow() { + return bussFineClassShow; + } + + public void setBussFineClassShow(String bussFineClassShow) { + this.bussFineClassShow = bussFineClassShow; + } + + public String getModule() { + return module; + } + + public void setModule(String module) { + this.module = module; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getPubUser() { + return pubUser; + } + + public void setPubUser(String pubUser) { + this.pubUser = pubUser; + } + + public String getPubUserShow() { + return pubUserShow; + } + + public void setPubUserShow(String pubUserShow) { + this.pubUserShow = pubUserShow; + } + + public String getPubOrg() { + return pubOrg; + } + + public void setPubOrg(String pubOrg) { + this.pubOrg = pubOrg; + } + + public String getPubOrgShow() { + return pubOrgShow; + } + + public void setPubOrgShow(String pubOrgShow) { + this.pubOrgShow = pubOrgShow; + } + + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + + public String getStandYear() { + return standYear; + } + + public void setStandYear(String standYear) { + this.standYear = standYear; + } + + public String getResponsibleUnitShow() { + return responsibleUnitShow; + } + + public void setResponsibleUnitShow(String responsibleUnitShow) { + this.responsibleUnitShow = responsibleUnitShow; + } + + public String getStandNumber() { + return standNumber; + } + + public void setStandNumber(String standNumber) { + this.standNumber = standNumber; + } + + public Date getRegisterPutTime() { + return registerPutTime; + } + + public void setRegisterPutTime(Date registerPutTime) { + this.registerPutTime = registerPutTime; + } + + public String getNumberExpNull() { + return numberExpNull; + } + + public void setNumberExpNull(String numberExpNull) { + this.numberExpNull = numberExpNull; + } + + public String getItemsName() { + return itemsName; + } + + public void setItemsName(String itemsName) { + this.itemsName = itemsName; + } + + public String getItemsNum() { + return itemsNum; + } + + public void setItemsNum(String itemsNum) { + this.itemsNum = itemsNum; + } + + public String getStandId() { + return standId; + } + + public void setStandId(String standId) { + this.standId = standId; + } + + public String getTermsConditions() { + return termsConditions; + } + + public void setTermsConditions(String termsConditions) { + this.termsConditions = termsConditions; + } + + public String getMainPointImplementation() { + return mainPointImplementation; + } + + public void setMainPointImplementation(String mainPointImplementation) { + this.mainPointImplementation = mainPointImplementation; + } + + public String getParts() { + return parts; + } + + public void setParts(String parts) { + this.parts = parts; + } + + public Date getTackTime() { + return tackTime; + } + + public void setTackTime(Date tackTime) { + this.tackTime = tackTime; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getItemsType() { + return itemsType; + } + + public void setItemsType(String itemsType) { + this.itemsType = itemsType; + } + + public String getNameshowSplit() { + return nameshowSplit; + } + + public void setNameshowSplit(String nameshowSplit) { + this.nameshowSplit = nameshowSplit; + } + + public String getNumbershowSplit() { + return numbershowSplit; + } + + public void setNumbershowSplit(String numbershowSplit) { + this.numbershowSplit = numbershowSplit; + } + + public String getMsgContent() { + return msgContent; + } + + public void setMsgContent(String msgContent) { + this.msgContent = msgContent; + } + + public String getStandTag() { + return standTag; + } + + public void setStandTag(String standTag) { + this.standTag = standTag; + } + + public String getIssueUnitShow() { + return issueUnitShow; + } + + public void setIssueUnitShow(String issueUnitShow) { + this.issueUnitShow = issueUnitShow; + } + + public String getCiteStand() { + return citeStand; + } + + public void setCiteStand(String citeStand) { + this.citeStand = citeStand; + } + + public String getCitedStand() { + return citedStand; + } + + public void setCitedStand(String citedStand) { + this.citedStand = citedStand; + } + + public String getGkglbm() { + return gkglbm; + } + + public void setGkglbm(String gkglbm) { + this.gkglbm = gkglbm; + } + + public String getGkglbmShow() { + return gkglbmShow; + } + + public void setGkglbmShow(String gkglbmShow) { + this.gkglbmShow = gkglbmShow; + } + + public String getGzzxx() { + return gzzxx; + } + + public void setGzzxx(String gzzxx) { + this.gzzxx = gzzxx; + } + + public String getCysd() { + return cysd; + } + + public void setCysd(String cysd) { + this.cysd = cysd; + } + + public String getZrlx() { + return zrlx; + } + + public void setZrlx(String zrlx) { + this.zrlx = zrlx; + } + + public String getZrlxShow() { + return zrlxShow; + } + + public void setZrlxShow(String zrlxShow) { + this.zrlxShow = zrlxShow; + } + + public String getYqlx() { + return yqlx; + } + + public void setYqlx(String yqlx) { + this.yqlx = yqlx; + } + + public String getYqlxShow() { + return yqlxShow; + } + + public void setYqlxShow(String yqlxShow) { + this.yqlxShow = yqlxShow; + } + + public String getGxhbq() { + return gxhbq; + } + + public void setGxhbq(String gxhbq) { + this.gxhbq = gxhbq; + } + + public String getGxhbqShow() { + return gxhbqShow; + } + + public void setGxhbqShow(String gxhbqShow) { + this.gxhbqShow = gxhbqShow; + } + + public String getXgbm() { + return xgbm; + } + + public void setXgbm(String xgbm) { + this.xgbm = xgbm; + } + + public String getXgbmShow() { + return xgbmShow; + } + + public void setXgbmShow(String xgbmShow) { + this.xgbmShow = xgbmShow; + } + + public String getSvpps() { + return svpps; + } + + public void setSvpps(String svpps) { + this.svpps = svpps; + } + + public String getFo() { + return fo; + } + + public void setFo(String fo) { + this.fo = fo; + } + + public String getFoShow() { + return foShow; + } + + public void setFoShow(String foShow) { + this.foShow = foShow; + } + + public String getXmpgry() { + return xmpgry; + } + + public void setXmpgry(String xmpgry) { + this.xmpgry = xmpgry; + } + + public String getXmpgryShow() { + return xmpgryShow; + } + + public void setXmpgryShow(String xmpgryShow) { + this.xmpgryShow = xmpgryShow; + } + + public String getFgwhr() { + return fgwhr; + } + + public void setFgwhr(String fgwhr) { + this.fgwhr = fgwhr; + } +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/page/PartProductEOPage.java b/adc-da-search/src/main/java/com/adc/da/search/page/PartProductEOPage.java new file mode 100644 index 00000000..7aad57d3 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/page/PartProductEOPage.java @@ -0,0 +1,358 @@ +package com.adc.da.search.page; + +import com.adc.da.base.page.BasePage; + +import java.util.Date; + +/** + * 功能:PART_PRODUCT PartProductEOPage
    + * 作者:code generator
    + * 日期: 2018-08-22
    + * 版权所有:版权归北京卡达克数据技术中心所有。
    + */ +public class PartProductEOPage extends BasePage { + + private String id; + private String idOperator = "="; + private String corpId; + private String corpIdOperator = "="; + private String partType; + private String partTypeOperator = "="; + private String partName; + private String partNameOperator = "="; + private String partNummber; + private String partNummberOperator = "="; + private String riskGrade; + private String riskGradeOperator = "="; + private String suitModel; + private String suitModelOperator = "="; + private String motoModel; + private String motoModelOperator = "="; + private String motoType; + private String motoTypeOperator = "="; + private String oemCode; + private String oemCodeOperator = "="; + private String certNumber; + private String certNumberOperator = "="; + private String delFlag; + private String delFlagOperator = "="; + private String insertTime; + private String insertTime1; + private String insertTime2; + private String insertTimeOperator = "="; + private String updateTime; + private String updateTime1; + private String updateTime2; + private String updateTimeOperator = "="; + private String corpModel; + private String corpModelOperator = "="; + private String partSup; + private String partSupOperator = "="; + private String qrCodeStatus; + private String qrCodeStatusOperator = "="; + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIdOperator() { + return this.idOperator; + } + + public void setIdOperator(String idOperator) { + this.idOperator = idOperator; + } + + public String getCorpId() { + return this.corpId; + } + + public void setCorpId(String corpId) { + this.corpId = corpId; + } + + public String getCorpIdOperator() { + return this.corpIdOperator; + } + + public void setCorpIdOperator(String corpIdOperator) { + this.corpIdOperator = corpIdOperator; + } + + public String getPartType() { + return this.partType; + } + + public void setPartType(String partType) { + this.partType = partType; + } + + public String getPartTypeOperator() { + return this.partTypeOperator; + } + + public void setPartTypeOperator(String partTypeOperator) { + this.partTypeOperator = partTypeOperator; + } + + public String getPartName() { + return this.partName; + } + + public void setPartName(String partName) { + this.partName = partName; + } + + public String getPartNameOperator() { + return this.partNameOperator; + } + + public void setPartNameOperator(String partNameOperator) { + this.partNameOperator = partNameOperator; + } + + public String getPartNummber() { + return this.partNummber; + } + + public void setPartNummber(String partNummber) { + this.partNummber = partNummber; + } + + public String getPartNummberOperator() { + return this.partNummberOperator; + } + + public void setPartNummberOperator(String partNummberOperator) { + this.partNummberOperator = partNummberOperator; + } + + public String getRiskGrade() { + return this.riskGrade; + } + + public void setRiskGrade(String riskGrade) { + this.riskGrade = riskGrade; + } + + public String getRiskGradeOperator() { + return this.riskGradeOperator; + } + + public void setRiskGradeOperator(String riskGradeOperator) { + this.riskGradeOperator = riskGradeOperator; + } + + public String getSuitModel() { + return this.suitModel; + } + + public void setSuitModel(String suitModel) { + this.suitModel = suitModel; + } + + public String getSuitModelOperator() { + return this.suitModelOperator; + } + + public void setSuitModelOperator(String suitModelOperator) { + this.suitModelOperator = suitModelOperator; + } + + public String getMotoModel() { + return this.motoModel; + } + + public void setMotoModel(String motoModel) { + this.motoModel = motoModel; + } + + public String getMotoModelOperator() { + return this.motoModelOperator; + } + + public void setMotoModelOperator(String motoModelOperator) { + this.motoModelOperator = motoModelOperator; + } + + public String getMotoType() { + return this.motoType; + } + + public void setMotoType(String motoType) { + this.motoType = motoType; + } + + public String getMotoTypeOperator() { + return this.motoTypeOperator; + } + + public void setMotoTypeOperator(String motoTypeOperator) { + this.motoTypeOperator = motoTypeOperator; + } + + public String getOemCode() { + return this.oemCode; + } + + public void setOemCode(String oemCode) { + this.oemCode = oemCode; + } + + public String getOemCodeOperator() { + return this.oemCodeOperator; + } + + public void setOemCodeOperator(String oemCodeOperator) { + this.oemCodeOperator = oemCodeOperator; + } + + public String getCertNumber() { + return this.certNumber; + } + + public void setCertNumber(String certNumber) { + this.certNumber = certNumber; + } + + public String getCertNumberOperator() { + return this.certNumberOperator; + } + + public void setCertNumberOperator(String certNumberOperator) { + this.certNumberOperator = certNumberOperator; + } + + public String getDelFlag() { + return this.delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlagOperator() { + return this.delFlagOperator; + } + + public void setDelFlagOperator(String delFlagOperator) { + this.delFlagOperator = delFlagOperator; + } + + public String getInsertTime() { + return this.insertTime; + } + + public void setInsertTime(String insertTime) { + this.insertTime = insertTime; + } + + public String getInsertTime1() { + return this.insertTime1; + } + + public void setInsertTime1(String insertTime1) { + this.insertTime1 = insertTime1; + } + + public String getInsertTime2() { + return this.insertTime2; + } + + public void setInsertTime2(String insertTime2) { + this.insertTime2 = insertTime2; + } + + public String getInsertTimeOperator() { + return this.insertTimeOperator; + } + + public void setInsertTimeOperator(String insertTimeOperator) { + this.insertTimeOperator = insertTimeOperator; + } + + public String getUpdateTime() { + return this.updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateTime1() { + return this.updateTime1; + } + + public void setUpdateTime1(String updateTime1) { + this.updateTime1 = updateTime1; + } + + public String getUpdateTime2() { + return this.updateTime2; + } + + public void setUpdateTime2(String updateTime2) { + this.updateTime2 = updateTime2; + } + + public String getUpdateTimeOperator() { + return this.updateTimeOperator; + } + + public void setUpdateTimeOperator(String updateTimeOperator) { + this.updateTimeOperator = updateTimeOperator; + } + + public String getCorpModel() { + return this.corpModel; + } + + public void setCorpModel(String corpModel) { + this.corpModel = corpModel; + } + + public String getCorpModelOperator() { + return this.corpModelOperator; + } + + public void setCorpModelOperator(String corpModelOperator) { + this.corpModelOperator = corpModelOperator; + } + + public String getPartSup() { + return this.partSup; + } + + public void setPartSup(String partSup) { + this.partSup = partSup; + } + + public String getPartSupOperator() { + return this.partSupOperator; + } + + public void setPartSupOperator(String partSupOperator) { + this.partSupOperator = partSupOperator; + } + + public String getQrCodeStatus() { + return this.qrCodeStatus; + } + + public void setQrCodeStatus(String qrCodeStatus) { + this.qrCodeStatus = qrCodeStatus; + } + + public String getQrCodeStatusOperator() { + return this.qrCodeStatusOperator; + } + + public void setQrCodeStatusOperator(String qrCodeStatusOperator) { + this.qrCodeStatusOperator = qrCodeStatusOperator; + } + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java b/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java new file mode 100644 index 00000000..07c74b31 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java @@ -0,0 +1,270 @@ +package com.adc.da.search.service; + +import com.adc.da.search.entity.EsPage; +import com.alibaba.fastjson.JSONObject; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.common.xcontent.XContentBuilder; + +import java.util.List; +import java.util.Map; + +public interface ElasticsearchService { + + /** + * Elasticsearch 创建索引定义 + * @param index 要创建的索引 + * @return true表示创建成功,false表示创建失败 + * @author gaoyan + * date 2018-08-27 + */ + boolean createIndex(String index, XContentBuilder mapping); + + /** + * Elasticsearch 删除索引定义 + * @param index 要删除的索引 + * @return true表示删除成功,false表示删除失败 + * @author gaoyan + * date 2018-08-27 + */ + boolean deleteIndex(String index); + + /** + * Elasticsearch 判断索引是否存在定义 + * @param index 要判断的索引名称 + * @return true表示该索引存在,false表示该索引不存在 + * @author gaoyan + * date 2018-08-28 + */ + boolean isIndexExist(String index); + + /** + * 指定ID数据添加接口定义, + * @param jsonObject 要增加的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 (自6.0改版以后,一个索引里只允许有一种类型, + * 如果索引中已经有类型,增加数据过程中,添加其他类型会报错) + * @param id 数据ID + * @return 返回创建的文档的id + * @author gaoyan + * date 2018-08-28 + */ + String addData(JSONObject jsonObject, String index, String type, String id); + + String addDataForMap(Map attrInfoMap, String index, String type, String id); + + /** + * 不指定ID数据添加接口定义, + * @param jsonObject 要增加的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 (自6.0改版以后,一个索引里只允许有一种类型, + * 如果索引中已经有类型,增加数据过程中,添加其他类型会报错) + * @return 返回创建的文档的id + * @author gaoyan + * date 2018-08-28 + */ + String addData(JSONObject jsonObject, String index, String type); + + /** + * 通过ID删除数据定义 + * + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @return 正确删除返回DELETED + * @author gaoyan + * date 2018-08-28 + */ + String deleteDataById(String index, String type, String id); + + /** + * Elasticsearch 删除某个index所有的文档接口定义 + * @param index 要插入的索引 + * @return 删除返回的结果 + * @author gaoyan + * date 2018-08-27 + */ + long deleteAllDataOfIndex(String index); + + /** + * 通过ID 更新数据定义 + * + * @param jsonObject 要更新的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @return 如果正确删除返回 UPDATED + * @author gaoyan + * date 2018-08-28 + */ + String updateDataById(JSONObject jsonObject, String index, String type, String id); + + String updateDataByIdForMap(Map attrInfoMap, String index, String type, String id); + + /** + * 通过ID获取数据定义 + * + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @return + * @author gaoyan + * date 2018-08-28 + */ + Map searchDataById(String index, String type, String id, String fields); + + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + List> searchListData(String index, String type, String fields, String matchStr); + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + List> searchListData(String index, String type, String fields, String sortField, boolean matchPhrase, String matchStr); + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param size 文档大小限制 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + List> searchListData(String index, String type, Integer size, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr); + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param size 文档大小限制 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + List> searchListData(String index, String type, long startTime, long endTime, Integer size, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr); + + /** + * 使用分词查询,并分页 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param currentPage 当前页 + * @param pageSize 每页显示条数 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + EsPage searchDataPage(String index, String type, int currentPage, int pageSize, long startTime, long endTime, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr); + + /** + * 高亮结果集 特殊处理 + * + * @param searchResponse + * @param highlightField + */ + List> setSearchResponse(SearchResponse searchResponse, String highlightField); + + /** + * Elasticsearch 批量插入接口定义 + * @param index 要插入的索引 + * @param type 要插入数据对应的type + * @param list 插入数据的list + * @return + * @author gaoyan + * date 2018-08-27 + */ + String addBulkData(String index, String type, List list); + + /** + * 默认查询全部数据,并按照对应的字段排序,方法内写了部分基础查询,主要是针对单个field但条件 + * 具体业务查询可参考方法体中注释代码 + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @param sortfield 需要排序的字段, + * @return + * @author gaoyan + * date 2018-08-28 + */ + List> searchListDataAndSort(String[] index, String[] type, String sortfield, String[] fields); + + + /** + * 涉及组合查询条件主要涉及到boolQueryBuilder的使用 + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @param sortfield 需要排序的字段, + * @return + * @author gaoyan + * date 2018-08-28 + */ + List> searchListDataUnit(String[] index, String[] type, String sortfield, String[] fields); + + + /** + * 涉及组合查询条件主要涉及到聚合函数的使用,主要是分组求平均值,依靠平均值排序 terms + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @return + * @author gaoyan + * date 2018-08-28 + */ + List> searchListDataGroup(String[] index, String[] type); + + + /** + * 涉及组合查询条件主要涉及到聚合函数的使用,较为复杂,按照年龄阶段分组后,再安装性别分组,求balance平均值 ranges + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @return + * @author gaoyan + * date 2018-08-29 + */ + List> searchListDataGroupComplex(String[] index, String[] type); + + + + /** + * 查询结果集searchResponse装换成List形式 + * @param searchResponse 需要转换的数据 + * @return + * @author gaoyan + * date 2018-08-28 + */ + List> SearchResponseToList(SearchResponse searchResponse); + + + + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java b/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java new file mode 100644 index 00000000..328e50e4 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java @@ -0,0 +1,33 @@ +package com.adc.da.search.service; + +import com.adc.da.search.entity.CommonSearchInfoEO; +import com.adc.da.search.entity.SeniorSearchInfoEO; +import org.elasticsearch.action.search.SearchResponse; + +import java.util.List; +import java.util.Map; + +public interface SearchCenterService { + + List> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception; + + /** + * 查询结果集searchResponse装换成List形式 + * @param searchResponse 需要转换的数据 + * @return + * @author gaoyan + * date 2018-08-28 + */ + List> SearchResponseToList(SearchResponse searchResponse); + + Map selectGroupdata(SeniorSearchInfoEO searchInfoEO); + + String [] searchIdToImport(SeniorSearchInfoEO searchInfoEO); + + List> searchSarBykeyAndHighLight(SeniorSearchInfoEO searchInfoEO) throws Exception; + + List> searchSarBykeyAndHighLightNumber(SeniorSearchInfoEO searchInfoEO) throws Exception; + + void searchByKey(CommonSearchInfoEO commonSearchInfoEO); + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/StandLawsSearchService.java b/adc-da-search/src/main/java/com/adc/da/search/service/StandLawsSearchService.java new file mode 100644 index 00000000..8c99c429 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/StandLawsSearchService.java @@ -0,0 +1,19 @@ +package com.adc.da.search.service; + + +import com.adc.da.search.entity.StandLawsEO; + +import java.util.Map; + +public interface StandLawsSearchService { + + String addStandLawsSearch(StandLawsEO standLawsEO); + + String addStandLawsSearchForMap(Map attrInfoMap); + +// String updateStandLawsSearch(StandLawsEO standLawsEO); + + String updateStandLawsSearchForMap(Map attrInfoMap); + + String deleteStandLawsSearch(StandLawsEO standLawsEO); +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java new file mode 100644 index 00000000..251abac1 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java @@ -0,0 +1,748 @@ +package com.adc.da.search.service.impl; + +import com.adc.da.search.entity.EsPage; +import com.adc.da.search.service.ElasticsearchService; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; +import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; +import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse; +import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest; +import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse; +import org.elasticsearch.action.bulk.BulkRequestBuilder; +import org.elasticsearch.action.bulk.BulkResponse; +import org.elasticsearch.action.delete.DeleteResponse; +import org.elasticsearch.action.get.GetRequestBuilder; +import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.action.index.IndexResponse; +import org.elasticsearch.action.search.SearchRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.action.search.SearchType; +import org.elasticsearch.action.update.UpdateRequest; +import org.elasticsearch.action.update.UpdateResponse; +import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.common.text.Text; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.reindex.BulkByScrollResponse; +import org.elasticsearch.index.reindex.DeleteByQueryAction; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.BucketOrder; +import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; +import org.elasticsearch.search.aggregations.metrics.avg.Avg; +import org.elasticsearch.search.aggregations.metrics.max.Max; +import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.sort.SortOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.*; + +@Component +public class ElasticsearchServiceImpl implements ElasticsearchService { + private static final Logger logger = LoggerFactory.getLogger(ElasticsearchServiceImpl.class); + @Autowired + private TransportClient transportClient; + + private TransportClient client; + + @PostConstruct + public void init() { + client = this.transportClient; + } + + /** + * Elasticsearch 创建索引实现 + * @param index 要创建的索引 + * @return true表示创建成功,false表示创建失败 + * @author gaoyan + * date 2018-08-27 + */ + @Override + public boolean createIndex(String index ,XContentBuilder mapping){ + if (!isIndexExist(index)) { + logger.info("Index is not exits!"); + } + CreateIndexRequestBuilder cib=client.admin().indices().prepareCreate(index); + cib.addMapping(index, mapping); + CreateIndexResponse indexresponse = cib.execute().actionGet(); + logger.info("执行建立成功?" + indexresponse.isAcknowledged()); + return indexresponse.isAcknowledged(); + } + + /** + * Elasticsearch 删除索引实现 + * @param index 要删除的索引 + * @return true表示删除成功,false表示删除失败 + * @author gaoyan + * date 2018-08-27 + */ + @Override + public boolean deleteIndex(String index) { + if (!isIndexExist(index)) { + logger.info("Index is not exits!"); + } + DeleteIndexResponse dResponse = client.admin().indices().prepareDelete(index).get(); + if (dResponse.isAcknowledged()) { + logger.info("delete index " + index + " successfully!"); + } else { + logger.info("Fail to delete index " + index); + } + return dResponse.isAcknowledged(); + } + + /** + * Elasticsearch 判断索引是否存在实现 + * @param index 要判断的索引名称 + * @return true表示该索引存在,false表示该索引不存在 + * @author gaoyan + * date 2018-08-28 + */ + @Override + public boolean isIndexExist(String index) { + IndicesExistsResponse inExistsResponse = client.admin().indices().exists(new IndicesExistsRequest(index)).actionGet(); + if (inExistsResponse.isExists()) { + logger.info("Index [" + index + "] is exist!"); + } else { + logger.info("Index [" + index + "] is not exist!"); + } + return inExistsResponse.isExists(); + } + + /** + * 指定ID数据添加接口实现, + * @param jsonObject 要增加的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 (自6.0改版以后,一个索引里只允许有一种类型, + * 如果索引中已经有类型,增加数据过程中,添加其他类型会报错) + * @param id 数据ID + * @return 返回创建的文档的id + * @author gaoyan + * date 2018-08-28 + */ + @Override + public String addData(JSONObject jsonObject, String index, String type, String id) { + IndexResponse response = client.prepareIndex(index, type, id).setSource(jsonObject).get(); + logger.info("addData response status:{},id:{}", response.status().getStatus(), response.getId()); + return response.getId(); + } + + @Override + public String addDataForMap(Map attrInfoMap, String index, String type, String id) { + IndexResponse response = client.prepareIndex(index, type, id).setSource(attrInfoMap).get(); + logger.info("addData response status:{},id:{}", response.status().getStatus(), response.getId()); + return response.getId(); + } + + /** + * 不指定ID数据添加接口实现, + * @param jsonObject 要增加的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 (自6.0改版以后,一个索引里只允许有一种类型, + * 如果索引中已经有类型,增加数据过程中,添加其他类型会报错) + * @return 返回创建的文档的id + * @author gaoyan + * date 2018-08-28 + */ + @Override + public String addData(JSONObject jsonObject, String index, String type) { + IndexResponse response = client.prepareIndex(index, type).setSource(jsonObject).get(); + logger.info("addData response status:{},id:{}", response.status().getStatus(), response.getId()); + return response.getId(); + } + + /** + * 通过ID删除数据实现 + * + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @return 正确删除返回DELETED + * @author gaoyan + * date 2018-08-28 + */ + @Override + public String deleteDataById(String index, String type, String id) { + DeleteResponse response = client.prepareDelete(index, type, id).get(); + logger.info("deleteDataById response status:{},id:{}", response.status().getStatus(), response.getId()); + return response.getResult().toString(); + } + + /** + * Elasticsearch 删除某个index所有的文档接口实现 + * @param index 要插入的索引 + * @return 删除返回的结果,一共删除多少条 + * @author gaoyan + * date 2018-08-27 + */ + @Override + public long deleteAllDataOfIndex(String index) { + BulkByScrollResponse response = DeleteByQueryAction.INSTANCE.newRequestBuilder(client) + .filter(QueryBuilders.matchAllQuery()) + .source(index) + .get(); + //一共删除掉多少条 + long deleted = response.getDeleted(); + return deleted; + } + + /** + * 通过ID 更新数据实现 + * + * @param jsonObject 要更新的数据 + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @return 如果正确删除返回 UPDATED + * @author gaoyan + * date 2018-08-28 + */ + @Override + public String updateDataById(JSONObject jsonObject, String index, String type, String id) { + UpdateRequest updateRequest = new UpdateRequest(); + updateRequest.index(index).type(type).id(id).doc(jsonObject); + UpdateResponse result; + try { + result = this.client.update(updateRequest).get(); + } catch (Exception e) { + logger.error(e.getMessage(),e); + return e.getMessage(); + } + return result.getResult().toString(); + } + + @Override + public String updateDataByIdForMap(Map attrInfoMap, String index, String type, String id) { + UpdateRequest updateRequest = new UpdateRequest(); + updateRequest.index(index).type(type).id(id).doc(attrInfoMap); + UpdateResponse result; + try { + result = this.client.update(updateRequest).get(); + } catch (Exception e) { + logger.error(e.getMessage(),e); + return e.getMessage(); + } + return result.getResult().toString(); + } + + /** + * 通过ID获取数据实现 + * + * @param index 索引,类似数据库 + * @param type 类型,类似表 + * @param id 数据ID + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @return Map结构的数据集 + * @author gaoyan + * date 2018-08-28 + */ + @Override + public Map searchDataById(String index, String type, String id, String fields) { + + GetRequestBuilder getRequestBuilder = client.prepareGet(index, type, id); + if (StringUtils.isNotEmpty(fields)) { + getRequestBuilder.setFetchSource(fields.split(","), null); + } + GetResponse getResponse = getRequestBuilder.get(); + return getResponse.getSource(); + } + + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + * @author gaoyan + * date 2018-08-28 + */ + @Override + public List> searchListData(String index, String type, String fields, String matchStr) { + return searchListData(index, type, 0, 0, null, fields, null, false, null, matchStr); + } + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + * @author gaoyan + * date 2018-08-28 + */ + @Override + public List> searchListData(String index, String type, String fields, String sortField, boolean matchPhrase, String matchStr) { + return searchListData(index, type, 0, 0, null, fields, sortField, matchPhrase, null, matchStr); + } + + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称 + * @param size 文档大小限制 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + @Override + public List> searchListData(String index, String type, Integer size, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr) { + return searchListData(index, type, 0, 0, size, fields, sortField, matchPhrase, highlightField, matchStr); + } + + + /** + * 使用分词查询 + * + * @param index 索引名称 + * @param type 类型名称 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param size 文档大小限制 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + @Override + public List> searchListData(String index, String type, long startTime, long endTime, Integer size, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr) { + + SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); + if (StringUtils.isNotEmpty(type)) { + searchRequestBuilder.setTypes(type.split(",")); + } + BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); + + if (startTime > 0 && endTime > 0) { + boolQuery.must(QueryBuilders.rangeQuery("processTime") + .format("epoch_millis") + .from(startTime) + .to(endTime) + .includeLower(true) + .includeUpper(true)); + } + + //搜索的的字段 + if (StringUtils.isNotEmpty(matchStr)) { + for (String s : matchStr.split(",")) { + String[] ss = s.split("="); + if (ss.length > 1) { + if (matchPhrase == Boolean.TRUE) { + boolQuery.must(QueryBuilders.matchPhraseQuery(s.split("=")[0], s.split("=")[1])); + } else { + boolQuery.must(QueryBuilders.matchQuery(s.split("=")[0], s.split("=")[1])); + } + } + + } + } + + // 高亮(xxx=111,aaa=222) + if (StringUtils.isNotEmpty(highlightField)) { + HighlightBuilder highlightBuilder = new HighlightBuilder(); + + //highlightBuilder.preTags("");//设置前缀 + //highlightBuilder.postTags("");//设置后缀 + + // 设置高亮字段 + highlightBuilder.field(highlightField); + searchRequestBuilder.highlighter(highlightBuilder); + } + + + searchRequestBuilder.setQuery(boolQuery); + + if (StringUtils.isNotEmpty(fields)) { + searchRequestBuilder.setFetchSource(fields.split(","), null); + } + searchRequestBuilder.setFetchSource(true); + + if (StringUtils.isNotEmpty(sortField)) { + searchRequestBuilder.addSort(sortField, SortOrder.DESC); + } + + if (size != null && size > 0) { + searchRequestBuilder.setSize(size); + } + + //打印的内容 可以在 Elasticsearch head 和 Kibana 上执行查询 + logger.info("\n{}", searchRequestBuilder); + + SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); + + long totalHits = searchResponse.getHits().totalHits; + long length = searchResponse.getHits().getHits().length; + + logger.info("共查询到[{}]条数据,处理数据条数[{}]", totalHits, length); + + if (searchResponse.status().getStatus() == 200) { + // 解析对象 + return setSearchResponse(searchResponse, highlightField); + } + + return null; + + } + + /** + * 使用分词查询,并分页 + * + * @param index 索引名称 + * @param type 类型名称,可传入多个type逗号分隔 + * @param currentPage 当前页 + * @param pageSize 每页显示条数 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) + * @param sortField 排序字段 + * @param matchPhrase true 使用,短语精准匹配 + * @param highlightField 高亮字段 + * @param matchStr 过滤条件(xxx=111,aaa=222) + * @return + */ + @Override + public EsPage searchDataPage(String index, String type, int currentPage, int pageSize, long startTime, long endTime, String fields, String sortField, boolean matchPhrase, String highlightField, String matchStr) { + SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); + if (StringUtils.isNotEmpty(type)) { + searchRequestBuilder.setTypes(type.split(",")); + } + searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH); + + // 需要显示的字段,逗号分隔(缺省为全部字段) + if (StringUtils.isNotEmpty(fields)) { + searchRequestBuilder.setFetchSource(fields.split(","), null); + } + + //排序字段 + if (StringUtils.isNotEmpty(sortField)) { + searchRequestBuilder.addSort(sortField, SortOrder.DESC); + } + + BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); + + if (startTime > 0 && endTime > 0) { + boolQuery.must(QueryBuilders.rangeQuery("processTime") + .format("epoch_millis") + .from(startTime) + .to(endTime) + .includeLower(true) + .includeUpper(true)); + } + + // 查询字段 + if (StringUtils.isNotEmpty(matchStr)) { + for (String s : matchStr.split(",")) { + String[] ss = s.split("="); + if (matchPhrase == Boolean.TRUE) { + boolQuery.must(QueryBuilders.matchPhraseQuery(s.split("=")[0], s.split("=")[1])); + } else { + boolQuery.must(QueryBuilders.matchQuery(s.split("=")[0], s.split("=")[1])); + } + } + } + + // 高亮(xxx=111,aaa=222) + if (StringUtils.isNotEmpty(highlightField)) { + HighlightBuilder highlightBuilder = new HighlightBuilder(); + + //highlightBuilder.preTags("");//设置前缀 + //highlightBuilder.postTags("");//设置后缀 + + // 设置高亮字段 + highlightBuilder.field(highlightField); + searchRequestBuilder.highlighter(highlightBuilder); + } + + searchRequestBuilder.setQuery(QueryBuilders.matchAllQuery()); + searchRequestBuilder.setQuery(boolQuery); + + // 分页应用 + searchRequestBuilder.setFrom(currentPage).setSize(pageSize); + + // 设置是否按查询匹配度排序 + searchRequestBuilder.setExplain(true); + + //打印的内容 可以在 Elasticsearch head 和 Kibana 上执行查询 + logger.info("\n{}", searchRequestBuilder); + + // 执行搜索,返回搜索响应信息 + SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); + + long totalHits = searchResponse.getHits().totalHits; + long length = searchResponse.getHits().getHits().length; + + logger.debug("共查询到[{}]条数据,处理数据条数[{}]", totalHits, length); + + if (searchResponse.status().getStatus() == 200) { + // 解析对象 + List> sourceList = setSearchResponse(searchResponse, highlightField); + + return new EsPage(currentPage, pageSize, (int) totalHits, sourceList); + } + + return null; + + } + + /** + * 高亮结果集 特殊处理 + * + * @param searchResponse + * @param highlightField + */ + @Override + public List> setSearchResponse(SearchResponse searchResponse, String highlightField) { + List> sourceList = new ArrayList>(); + StringBuffer stringBuffer = new StringBuffer(); + + for (SearchHit searchHit : searchResponse.getHits().getHits()) { + searchHit.getSourceAsMap().put("id", searchHit.getId()); + + if (StringUtils.isNotEmpty(highlightField)) { + logger.debug("遍历 高亮结果集,覆盖 正常结果集" + searchHit.getSourceAsMap()); + Text[] text = searchHit.getHighlightFields().get(highlightField).getFragments(); + + if (text != null) { + for (Text str : text) { + stringBuffer.append(str.string()); + } + //遍历 高亮结果集,覆盖 正常结果集 + searchHit.getSourceAsMap().put(highlightField, stringBuffer.toString()); + } + } + sourceList.add(searchHit.getSourceAsMap()); + } + return sourceList; + } + + /** + * Elasticsearch 批量插入接口实现 + * @param index + * @param type + * @param list + * @return + * @author gaoyan + * date 2018-08-27 + */ + @Override + public String addBulkData(String index, String type, List list) { + BulkRequestBuilder bulkRequestBuilder = client.prepareBulk(); + for(int i=0;i> searchListDataAndSort( String[] index,String[] type,String sortfield,String[] fields) { + SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index) + .setTypes(type) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + //设置全文搜索 + //.setQuery(QueryBuilders.matchAllQuery()) + //设置某个field的搜索条件项,此处是模糊搜索;text:mill ,搜索address中含有关键字 mill;text:mill lane,搜索address中含有关键字mill或者lane的 + //.setQuery(QueryBuilders.matchQuery("address","mill lane")) + //使用matchPhraseQuery过程中,当text:mill lane ,搜索address中即含有关键字mill lane,mill lane 词组不会被拆分,作为一个整体当做查询条件。 + .setQuery(QueryBuilders.matchPhraseQuery("address","lane mill")); + //如果需要按照多个字段排序,直接依次添加addSort + //.addSort(sortfield,SortOrder.DESC) + //设置查询数量 + //.setSize(60) + //设置从第几个开始查 + //.setFrom(0) + //设置要查询的字段,fields + //.setFetchSource(fields,null) + /*.setPostFilter(QueryBuilders.rangeQuery("age").from(12).to(18)) // Filter + .setExplain(true);*/ + SearchResponse response = searchRequestBuilder.get(); + List> result = SearchResponseToList(response); + return result; + } + + @Override + public List> searchListDataUnit(String[] index, String[] type, String sortfield, String[] fields) { + SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index) + .setTypes(type) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH); + + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + + //boolQueryBuilder两次.must ,如下,表示address中必须包含lane和mill + //boolQueryBuilder.must(QueryBuilders.matchQuery("address","lane")); + //boolQueryBuilder.must(QueryBuilders.matchQuery("address","mill")); + + //boolQueryBuilder两次.should ,如下,表示address中必须包含lane或者mill + //boolQueryBuilder.should(QueryBuilders.matchQuery("address","lane")); + //boolQueryBuilder.should(QueryBuilders.matchQuery("address","mill")); + + //boolQueryBuilder两次.mustNot ,如下,表示address中必须不能包含lane和mill + //boolQueryBuilder.mustNot(QueryBuilders.matchQuery("address","lane")); + //boolQueryBuilder.mustNot(QueryBuilders.matchQuery("address","mill")); + + //BoolQuerBuilder 可以使用must,should,mustnot 组合使用 + //boolQueryBuilder.mustNot(QueryBuilders.matchQuery("state","ID")); + //boolQueryBuilder.must(QueryBuilders.matchQuery("age",40)); + //boolQueryBuilder.must(QueryBuilders.matchQuery("balance",28969)); + + //boolQueryBuilder.filter中可以添加RangeQueryBuilder,下面注释中两种定义的RangeQueryBuilder是一样的,不同的两种方式 + //RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("balance").from(20000).to(30000).includeLower(true).includeUpper(true); + //RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("age").gte(20).lte(23); + //boolQueryBuilder.filter(rangeQueryBuilder); + //boolQueryBuilder.filter(rangeQueryBuilder2); + + searchRequestBuilder.setQuery(boolQueryBuilder); + SearchResponse response = searchRequestBuilder.get(); + List> result = SearchResponseToList(response); + return result; + } + + /** + * 涉及组合查询条件主要涉及到聚合函数的使用,主要是分组求平均值,依靠平均值排序 + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @return + * @author gaoyan + * date 2018-08-29 + */ + @Override + public List> searchListDataGroup(String[] index, String[] type) { + SearchResponse sr = client.prepareSearch(index) + .setTypes(type) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .addAggregation( + //分组依靠关键字terms + AggregationBuilders.terms("by_state") + .field("state.keyword") + .subAggregation( + //分组后求平均值依靠关键字avg,其他具体聚合函数可以参考官网 + // https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_metrics_aggregations.html + AggregationBuilders.avg("average_balance") + .field("balance") + ) + //分组后的排序方法,分别是聚合函数平均值,分组后统计数据,分组后关键字key,根据需求选择合适的排序 + .order(BucketOrder.aggregation("average_balance",false)) + .order(BucketOrder.count(true)) + .order(BucketOrder.key(true)) + ) + .execute() + .actionGet(); + //分组后得到的数据整合 + StringTerms result = sr.getAggregations().get("by_state"); + List> sourceList = new ArrayList>(); + for (StringTerms.Bucket bucket : result.getBuckets()) { + Map map = new HashMap<>(); + map.put("key",bucket.getKeyAsString()); + map.put("count",bucket.getDocCount()); + Avg avg = bucket.getAggregations().get("average_balance"); + map.put("averagebalance",avg.getValue()); + sourceList.add(map); + } + return sourceList; + } + + /** + * 涉及组合查询条件主要涉及到聚合函数的使用,较为复杂,按照年龄阶段分组后,再安装性别分组,求balance平均值 ranges + * @param index index名称,可以从多个index中查询,所以这里定义成String数组 + * @param type type名称,可以从多种type中查询,所以这里定义成String数组 + * @return + * @author gaoyan + * date 2018-08-29 + */ + @Override + public List> searchListDataGroupComplex(String[] index, String[] type) { + SearchResponse sr = client.prepareSearch(index) + .setTypes(type) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .addAggregation( + //分组依靠关键字range + AggregationBuilders.range("by_age") + .field("age") + .addRange(20,30) + .addRange(30,40) + .addRange(40,50) + .subAggregation( + //分组依靠关键字terms + AggregationBuilders.terms("by_gender") + .field("gender.keyword") + .subAggregation( + //分组后求依靠关键字avg,其他具体聚合函数可以参考官网 + // https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_metrics_aggregations.html + AggregationBuilders.max("max_balance") + .field("balance") + ) + ) + ) + .execute() + .actionGet(); + //分组后得到的数据整合 + Range result = sr.getAggregations().get("by_age"); + List> sourceList = new ArrayList>(); + for (Range.Bucket bucket : result.getBuckets()) { + Map map = new HashMap<>(); + map.put("key",bucket.getKeyAsString()); + map.put("count",bucket.getDocCount()); + + List> sourcechildList = new ArrayList>(); + StringTerms resultchild = bucket.getAggregations().get("by_gender"); + for (StringTerms.Bucket bucketchild : resultchild.getBuckets()) { + Map childmap = new HashMap<>(); + childmap.put("key",bucketchild.getKeyAsString()); + childmap.put("count",bucketchild.getDocCount()); + Max max = bucketchild.getAggregations().get("max_balance"); + map.put("maxbalance",max.getValue()); + sourcechildList.add(childmap); + } + + map.put("gender",sourcechildList); + sourceList.add(map); + } + return sourceList; + } + + + @Override + public List> SearchResponseToList(SearchResponse searchResponse) { + List> sourceList = new ArrayList>(); + for (SearchHit searchHit : searchResponse.getHits().getHits()) { + searchHit.getSourceAsMap().put("id", searchHit.getId()); + sourceList.add(searchHit.getSourceAsMap()); + } + return sourceList; + } + + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java new file mode 100644 index 00000000..6a2fd4a1 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -0,0 +1,1313 @@ +package com.adc.da.search.service.impl; + +import com.adc.da.person.dao.PersonSearchEODao; +import com.adc.da.search.entity.*; +import com.adc.da.search.service.SearchCenterService; +import com.alibaba.fastjson.JSONArray; +import lombok.extern.slf4j.Slf4j; +import net.sf.json.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.elasticsearch.action.search.SearchRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.action.search.SearchType; +import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.common.lucene.search.function.CombineFunction; +import org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction; +import org.elasticsearch.common.text.Text; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.RangeQueryBuilder; +import org.elasticsearch.index.query.functionscore.FieldValueFactorFunctionBuilder; +import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.aggregations.Aggregation; +import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.RangeAggregationBuilder; +import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; +import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; +import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.fetch.subphase.highlight.HighlightField; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Component +@Slf4j +public class SearchCenterServiceImpl implements SearchCenterService { + private final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(SearchCenterServiceImpl.class); + + + @Autowired + private TransportClient transportClient; + + private TransportClient client; + + @PostConstruct + public void init() { + client = this.transportClient; + } + + 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> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception { + //判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询 + boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh()); + List> result = new ArrayList<>(); + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + // 记录搜索记录到数据库中 + BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){ + QueryBuilder multiQueryBuilder; + List strings=new ArrayList<>(); + switch (searchInfoEO.getSelectIndex()){ + case "stand": + strings=Arrays.asList(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", "ZRBMShow", "XGBMShow", "SVPPSName", "FOShow", "XMPGJSShow", "BDTBZBH", "BYYBJ", "issue_time", "ZCCSSRQ", "XCXSSRQ", "accessCountry"); + break; + case "laws": + strings=Arrays.asList(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","accessCountry"); + break; + case "bussstand": + strings=Arrays.asList(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","GFXYYWJ"); + break; + default: break; + } + + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), strings.toArray(new String[0])).minimumShouldMatch("100%"); + boolQueryMust.must(multiQueryBuilder); + + for (String string : strings) { + boolQueryShould.should(QueryBuilders.wildcardQuery(string, "*"+searchInfoEO.getSelectValue()+"*")); + } + + + } + + //在结果中检索 + if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isBlank(searchInfoEO.getIsHigh())) { + QueryBuilder multiQuery = queryInResult(searchInfoEO); + boolQueryBuilder.must(multiQuery); + } + + searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) + .setSize(searchInfoEO.getPageSize()); + boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + boolQueryBuilder.should(boolQueryShould); + } + BoolQueryBuilder boolQueryBuilder1=null; + if(searchInfoEO.getSelectIndex().equals("stand")) { + boolQueryBuilder1 = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } else if(searchInfoEO.getSelectIndex().equals("laws")){ + boolQueryBuilder1 = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } else if(searchInfoEO.getSelectIndex().equals("bussstand")){ + boolQueryBuilder1 = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } + + if(boolQueryBuilder1!=null){ + boolQueryBuilder.must(boolQueryBuilder1); + searchRequestBuilder.setQuery(boolQueryBuilder); + //在结果中检索 + if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isNotBlank(searchInfoEO.getIsHigh())) { + QueryBuilder multiQuery = queryInResult(searchInfoEO); + boolQueryBuilder.must(multiQuery); + } + // 获取查询到的结果 + result = countStandSearchResult(searchRequestBuilder,searchInfoEO); + } + + return result; + } + + public BoolQueryBuilder querySeniorMsg (SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder) { + BoolQueryBuilder boolQueryBuilderMust = new BoolQueryBuilder(); + String advanceStr = searchInfoEO.getAdvanceSearchVOStr(); + List searchVOList = new ArrayList<>(); + if (StringUtils.isNotBlank(advanceStr)) { + searchVOList = JSONArray.parseArray(advanceStr, SarAdvanceSearchVO.class); + } + if (searchVOList != null && !searchVOList.isEmpty()) { + List sarAdvanceSearchVOS = new ArrayList<>(); + int size = searchVOList.size(); + for (SarAdvanceSearchVO searchVO1 : searchVOList) { + SarAdvanceSearchVO sarAdvanceSearchVO = new SarAdvanceSearchVO(); + if ("XCXSSRQ".equals(searchVO1.getField())||"ZCCSSRQ".equals(searchVO1.getField())||"EOPSSRQ".equals(searchVO1.getField())){ + sarAdvanceSearchVO.setField(searchVO1.getField()+"1"); + sarAdvanceSearchVO.setConnect("OR"); + sarAdvanceSearchVO.setType("like"); + sarAdvanceSearchVO.setValue("TBD"); + sarAdvanceSearchVOS.add(sarAdvanceSearchVO); + } + } + searchVOList.addAll(sarAdvanceSearchVOS); + for (SarAdvanceSearchVO searchVO : searchVOList) { + if ("stand_state".equals(searchVO.getField())){ + searchVO.setType("="); + } + String field = searchVO.getField(); + String value = searchVO.getValue(); + if ("WFSPJS".equals(field) || "SVPPS".equals(field)){ + value = value.replace(","," , "); + } + //发布时间范围 + if (StringUtils.isNotBlank(searchVO.getField()) &&("issue_time".equals(searchVO.getField()) || "put_time".equals(searchVO.getField()) || "FZRQ".equals(searchVO.getField())|| "FSRQ".equals(searchVO.getField()) ||"XCXSSRQ".equals(searchVO.getField())||"ZCCSSRQ".equals(searchVO.getField())||"EOPSSRQ".equals(searchVO.getField()))) { + String fieldName = ""; + fieldName = searchVO.getField(); + switch (searchVO.getField()){ + case "issue_time" : +// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", "")); + boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword" , "TBD")); + fieldName = ISSUE_TIME; + break; + case "put_time" : +// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", "")); + boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD")); + fieldName = "put_time_data"; + break; + case "XCXSSRQ" : +// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", "")); + boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD")); + fieldName = "XCXSSRQ_data"; + break; + case "ZCCSSRQ" : +// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", "")); + boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD")); + fieldName = "ZCCSSRQ_data"; + break; + case "EOPSSRQ" : +// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", "")); + boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD")); + fieldName = "EOPSSRQ_data"; + break; + default : + break; + } + Long beginTime = 0L; + Long endTime = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + beginTime = sdf.parse("1970-01-01 00:00:00").getTime(); + } catch (ParseException e1) { + e1.printStackTrace(); + } + try { + endTime = sdf.parse("2999-01-01 00:00:00").getTime(); + } catch (ParseException e1) { + e1.printStackTrace(); + } + Long starttime = 0L; + Long endtime = 0L; + try { + starttime = sdf.parse(searchVO.getTimeSt() +" 00:00:00").getTime(); + starttime--; + } catch (ParseException e) { + try { + starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + } catch (ParseException e1) { + e1.printStackTrace(); + } + } + try { + endtime = sdf.parse(searchVO.getTimeEd()+" 23:59:59").getTime(); + endtime++; + } catch (ParseException e) { + try { + endtime = sdf.parse("2999-01-01 00:00:00").getTime(); + } catch (ParseException e1) { + e1.printStackTrace(); + } + } + if ("=".equals(searchVO.getType()) || "like".equals(searchVO.getType())) { + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(fieldName ).from(starttime).to(endtime).includeLower(true).includeUpper(true); + if ("AND".equals(searchVO.getConnect())|| StringUtils.isBlank(searchVO.getConnect())) { +// RangeQueryBuilder rangeQueryBuilder1 = QueryBuilders.rangeQuery(fieldName ).from(1L).to(starttime).includeLower(true).includeUpper(true); +// RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery(fieldName ).from(endtime).to(endTime).includeLower(true).includeUpper(true); +// boolQueryBuilder.mustNot(rangeQueryBuilder1); +// boolQueryBuilder.mustNot(rangeQueryBuilder2); +// boolQueryBuilder.mustNot(rangeQueryBuilder3); + boolQueryBuilderMust.must(rangeQueryBuilder); + }else{ + boolQueryBuilder.should(rangeQueryBuilder); + } + }else{ + if ("!=".equals(searchVO.getType())){ + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(fieldName ).from(starttime).to(endtime).includeLower(true).includeUpper(true); + if ("AND".equals(searchVO.getConnect()) || StringUtils.isBlank(searchVO.getConnect())) { + boolQueryBuilder.mustNot(rangeQueryBuilder); + }else{ + boolQueryBuilder.should(rangeQueryBuilder); + } + } + } + continue; + } + if (StringUtils.isNotBlank(field) && StringUtils.isNotBlank(value)) { + String type = searchVO.getType(); + String connect = searchVO.getConnect(); + if ("stand_name".equals(field) || "laws_name".equals(field)) { + field = "nameshow"; + } else if ("stand_state".equals(field) || "laws_state".equals(field) || "stand_status".equals(field)) { + field = "statecode"; +// }else if ("FZRQ".equals(field)){ +// field = "FZRQString"; +// }else if ("FSRQ".equals(field)){ +// field = "FSRQString"; + } + if (("FZRQString".equals(field) || "FSRQString".equals(field))){ + List values = new ArrayList<>(Arrays.asList(value.split("-"))); + if ("=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { + for (String va :values){ + boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field, "*"+va+"*")); + } + } else if ("=".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) { + for (String va :values){ + boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+va+"*")); + } +// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+value+"*")); + } else if ("!=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { + if ("FSRQString".equals(field)){ + boolQueryBuilder.mustNot(QueryBuilders.matchQuery("FSRQDate", "*"+value.replace("-","")+"*")); + }else{ + boolQueryBuilder.mustNot(QueryBuilders.matchQuery("FZRQDate", "*"+value.replace("-","")+"*")); + } +// boolQueryBuilder.mustNot(QueryBuilders.wildcardQuery(field, "*"+value+"*")); + } else if ("like".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { + for (String va :values){ + boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field, "*"+va+"*")); + } +// boolQueryBuilder.must(QueryBuilders.wildcardQuery(field, "*"+value+"*")); + } else if ("like".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) { + for (String va :values){ + boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+va+"*")); + } +// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+value+"*")); + } + continue; + } + if ("XCXSSRQ1".equals(searchVO.getField())||"ZCCSSRQ1".equals(searchVO.getField())||"EOPSSRQ1".equals(searchVO.getField())){ + searchVO.setField(searchVO.getField().substring(0,searchVO.getField().length()-1)); + field = searchVO.getField(); + } + //外发审批角色的企标 等于 查询 +// if("WFSPJS".equals(field) && "=".equals(type)){ +// field = "WFSPJSField"; +// if (StringUtils.isNotBlank(value)){ +// value = value.replace(" , ",""); +// } +// } +// if("ZRBM".equals(field) && "=".equals(type)){ +// field = "ZRBMField"; +// if (StringUtils.isNotBlank(value)){ +// value = value.replace(" , ",""); +// } +// } + if ("FO".equals(field)){ + value = value + " "; + } +// if (StringUtils.isBlank(connect) && size > 1){ +// connect = "OR"; +// } + if ("=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { + boolQueryBuilderMust.must(QueryBuilders.termQuery(field+".keyword", value)); + } else if ("=".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) { + boolQueryBuilder.should(QueryBuilders.termQuery(field+".keyword", value)); + } else if ("!=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { +// boolQueryBuilder.mustNot(QueryBuilders.termQuery(field+".keyword", value)); + boolQueryBuilder.mustNot(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*")); + } else if ("like".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) { + boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*")); +// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, value)); + } else if ("like".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) { + boolQueryBuilder.should(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*")); + } + } + } + } + boolQueryBuilder.should(boolQueryBuilderMust); + return boolQueryBuilder; + } + + //检索国内外标准数据 + public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ + String nameshowStr = "nameshow"; + // 高级搜索项,只针对标准 + if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { + // 如果等于All,相当于不限制,查询全部 + boolQueryBuilder.must(QueryBuilders.matchQuery("standType", searchInfoEO.getStandType())); + } + //标准类别,国内外标准有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandSort().equals("all") && !searchInfoEO.getStandSort().equals("[]")) { + String[] arrlist = searchInfoEO.getStandSort().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("standSort.keyword", arrlist)); + //boolQueryBuilder.must(QueryBuilders.matchQuery("stand_sort", searchInfoEO.getStandSort())); + } + } + //编号,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber", "*"+searchInfoEO.getStandNumber()+"*")); + } + //标准年份 + if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standYear", searchInfoEO.getStandYear())); + } + //名称,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getNameShow()+"*")); + } + //标准英文名称 + if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standEnName", searchInfoEO.getStandEnName())); + } + //标准状态,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]") ) { + String[] arrlist = searchInfoEO.getStandState().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("statecode.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getCLLX())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCLLX().equals("all") && !searchInfoEO.getCLLX().equals("[]") ) { + String[] arrlist = searchInfoEO.getCLLX().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("CLLX.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getCYSD())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCYSD().equals("all") && !searchInfoEO.getCYSD().equals("[]") ) { + String[] arrlist = searchInfoEO.getCYSD().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("CYSD.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getCBCD())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCBCD().equals("all") && !searchInfoEO.getCBCD().equals("[]") ) { + String[] arrlist = searchInfoEO.getCBCD().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("CBCD.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getZRLX())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getZRLX().equals("all") && !searchInfoEO.getZRLX().equals("[]") ) { + String[] arrlist = searchInfoEO.getZRLX().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("ZRLX.keyword", arrlist)); + } + } + querySeniorMsg(searchInfoEO,boolQueryBuilder); + return boolQueryBuilder; + } + + //检索国内外政策数据 + public BoolQueryBuilder queryLawsMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ + String numbershowStr = "numbershow"; + String nameshowStr = "nameshow"; + String replacedStandNumStr = "replaced_stand_num"; + String replaceStandNumStr = "replace_stand_num"; + //国家,国内外标准,国内外法规有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getCountry())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCountry().equals("all") && !searchInfoEO.getCountry().equals("[]")) { +// String[] arrlist = searchInfoEO.getCountry().split(","); +// boolQueryBuilder.must(QueryBuilders.termsQuery("country.keyword", arrlist)); + boolQueryBuilder.must(QueryBuilders.matchQuery("country", searchInfoEO.getCountry())); + } + } + //标准性质,国内外标准,法规有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNature())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getNature().equals("all") && !searchInfoEO.getNature().equals("[]")) { + String[] arrlist = searchInfoEO.getNature().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("nature.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getSYCLLX())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getSYCLLX().equals("all") && !searchInfoEO.getSYCLLX().equals("[]") ) { + String[] arrlist = searchInfoEO.getSYCLLX().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("SYCLLX.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getWSSFCY())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getWSSFCY().equals("all") && !searchInfoEO.getWSSFCY().equals("[]") ) { + String[] arrlist = searchInfoEO.getWSSFCY().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("WSSFCY.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getCBCD())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCBCD().equals("all") && !searchInfoEO.getCBCD().equals("[]") ) { + String[] arrlist = searchInfoEO.getCBCD().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("CBCD.keyword", arrlist)); + } + } + if (StringUtils.isNotBlank(searchInfoEO.getZRLX())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getZRLX().equals("all") && !searchInfoEO.getZRLX().equals("[]") ) { + String[] arrlist = searchInfoEO.getZRLX().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("ZRLX.keyword", arrlist)); + } + } + //编号,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNumberShow())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getNumberShow()+"*")); + } + //名称,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getNameShow()+"*")); + } + //发布部门 + if (StringUtils.isNotBlank(searchInfoEO.getIssueUnit())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("issueUnit", searchInfoEO.getIssueUnit())); + } + //文件状态,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]")) { + String[] arrlist = searchInfoEO.getStandState().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("statecode.keyword", arrlist)); + //boolQueryBuilder.must(QueryBuilders.matchQuery("statecode", searchInfoEO.getStandState())); + } + } + //代替文件号 + if (StringUtils.isNotBlank(searchInfoEO.getReplaceStandNum())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("replace_laws_num", searchInfoEO.getReplaceStandNum())); + } + //适用车型,国内外标准,国内外法规,企业标准 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getApplyArctic())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getApplyArctic().equals("all") && !searchInfoEO.getApplyArctic().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("apply_arctic", searchInfoEO.getApplyArctic())); + } + } + //能源种类,国内外标准,国内外法规,企业标准 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getEnergyKind())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getEnergyKind().equals("all") && !searchInfoEO.getEnergyKind().equals("[]") ) { + boolQueryBuilder.must(QueryBuilders.matchQuery("energy_kind", searchInfoEO.getEnergyKind())); + } + } + //适用认证,国内外标准,国内外法规 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getApplyAuth())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getApplyAuth().equals("all") && !searchInfoEO.getApplyAuth().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("apply_auth", searchInfoEO.getApplyAuth())); + } + } + //责任部门 + if (StringUtils.isNotBlank(searchInfoEO.getResponsibleUnit())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("responsibleUnit", searchInfoEO.getResponsibleUnit())); + } + //发布日期 + 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").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //内容摘要 + if (StringUtils.isNotBlank(searchInfoEO.getSynopsis())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("synopsis", searchInfoEO.getSynopsis())); + } + //标准英文名称 + if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standEnName", searchInfoEO.getStandEnName())); + } + //新定型车实施日期 + if (searchInfoEO.getNewcarPutTime() != null) { + Long starttime = searchInfoEO.getNewcarPutTime().getTime(); + Long endtime = searchInfoEO.getNewcarPutTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("newcarPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //在产车实施日期 + if (searchInfoEO.getProductPutTime() != null) { + Long starttime = searchInfoEO.getProductPutTime().getTime(); + Long endtime = searchInfoEO.getProductPutTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("productPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //新生产车实施日期 + if (searchInfoEO.getNewproductPutTime() != null) { + Long starttime = searchInfoEO.getNewproductPutTime().getTime(); + Long endtime = searchInfoEO.getNewproductPutTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("newproductPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //新生产车实施日期 + if (searchInfoEO.getRegisterPutTime() != null) { + Long starttime = searchInfoEO.getRegisterPutTime().getTime(); + Long endtime = searchInfoEO.getRegisterPutTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("registerPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //被代替标准号 + if (StringUtils.isNotBlank(searchInfoEO.getReplacedStandNum())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(replacedStandNumStr, searchInfoEO.getReplacedStandNum())); + } + //关键词 + if (StringUtils.isNotBlank(searchInfoEO.getTags())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standTag", searchInfoEO.getTags())); + } + //所属类别,国内外标准, 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getCategory())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCategory().equals("all") && !searchInfoEO.getCategory().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("category", searchInfoEO.getCategory())); + } + } + //发布时间范围 + if (searchInfoEO.getIssueTimeSt() != null || searchInfoEO.getIssueTimeEd() != null) { + Long starttime = 0L; + Long endtime = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (searchInfoEO.getIssueTimeSt() != null) { + starttime = searchInfoEO.getIssueTimeSt().getTime(); + } else { + starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + } + if (searchInfoEO.getIssueTimeEd() != null) { + endtime = searchInfoEO.getIssueTimeEd().getTime(); + } else { + endtime = sdf.parse("2999-01-01 00:00:00").getTime(); + } + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + if (searchInfoEO.getPutTimeSt() != null || searchInfoEO.getPutTimeEd() != null) { + Long starttime = 0L; + Long endtime = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (searchInfoEO.getPutTimeSt() != null) { + starttime = searchInfoEO.getPutTimeSt().getTime(); + } else { + starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + } + if (searchInfoEO.getPutTimeEd() != null) { + endtime = searchInfoEO.getPutTimeEd().getTime(); + } else { + endtime = sdf.parse("2999-01-01 00:00:00").getTime(); + } + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(PUT_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + querySeniorMsg(searchInfoEO,boolQueryBuilder); + return boolQueryBuilder; + } + + //检索企业标准数据 + /** + * boolQueryBuilder :must + * */ + public BoolQueryBuilder queryBussStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ + String nameshowStr = "nameshow"; + String replacedStandNumStr = "replaced_stand_num"; + String replaceStandNumStr = "replace_stand_num"; + // 高级搜索项,只针对标准 + //分类代号 + if (StringUtils.isNotBlank(searchInfoEO.getClassifyCode())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("classifyCode", searchInfoEO.getClassifyCode())); + } + //编号,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber", "*"+searchInfoEO.getStandNumber()+"*")); + } + //名称,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getNameShow()+"*")); + } + //标准英文名称 + if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standEnName", searchInfoEO.getStandEnName())); + } + if (searchInfoEO.getPutYear() != null && StringUtils.isNotEmpty(searchInfoEO.getPutYear())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("putYear", "*"+searchInfoEO.getPutYear()+"*")); + } + //代替标准号 + if (StringUtils.isNotBlank(searchInfoEO.getReplaceStandNum())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(replaceStandNumStr, searchInfoEO.getReplaceStandNum())); + } + //主起草部门 + if (StringUtils.isNotBlank(searchInfoEO.getZQCBM())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("ZQCBM", searchInfoEO.getZQCBM())); + } + //被代替标准号 + if (StringUtils.isNotBlank(searchInfoEO.getReplacedStandNum())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(replacedStandNumStr, searchInfoEO.getReplacedStandNum())); + } + //标准状态,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]")) { + String[] arrlist = searchInfoEO.getStandState().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("statecode.keyword", arrlist)); + //boolQueryBuilder.must(QueryBuilders.matchQuery("statecode", searchInfoEO.getStandState())); + } + } + //发布日期 + 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").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + //国家,国内外标准,国内外法规有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getCountry())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCountry().equals("all") && !searchInfoEO.getCountry().equals("[]") ) { + String[] arrlist = searchInfoEO.getCountry().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("country.keyword", arrlist)); + } + } + //标准类别,国内外标准有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandSort().equals("all")&& !searchInfoEO.getStandSort().equals("[]")) { + String[] arrlist = searchInfoEO.getStandSort().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("stand_sort.keyword", arrlist)); + //boolQueryBuilder.must(QueryBuilders.matchQuery("stand_sort", searchInfoEO.getStandSort())); + } + } + //发布时间范围 + if (searchInfoEO.getIssueTimeSt() != null || searchInfoEO.getIssueTimeEd() != null) { + Long starttime = 0L; + Long endtime = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (searchInfoEO.getIssueTimeSt() != null) { + starttime = searchInfoEO.getIssueTimeSt().getTime(); + } else { + starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + } + if (searchInfoEO.getIssueTimeEd() != null) { + endtime = searchInfoEO.getIssueTimeEd().getTime(); + } else { + endtime = sdf.parse("2999-01-01 00:00:00").getTime(); + } + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + if (searchInfoEO.getPutTimeSt() != null || searchInfoEO.getPutTimeEd() != null) { + Long starttime = 0L; + Long endtime = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (searchInfoEO.getPutTimeSt() != null) { + starttime = searchInfoEO.getPutTimeSt().getTime(); + } else { + starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + } + if (searchInfoEO.getPutTimeEd() != null) { + endtime = searchInfoEO.getPutTimeEd().getTime(); + } else { + endtime = sdf.parse("2999-01-01 00:00:00").getTime(); + } + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(PUT_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + querySeniorMsg(searchInfoEO,boolQueryBuilder); + return boolQueryBuilder; + } + + //结果中检索 + public QueryBuilder queryInResult(SeniorSearchInfoEO searchInfoEO){ + // 记录搜索记录到数据库中 + QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery(""); + 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%"); + 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%"); + 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%"); + break; + default: break; + } + return multiQueryBuilder; + } + + /** + * @Author yangxuenan + * @Description 循环统计 + * Date 2018/12/21 10:16 + * @Param [searchRequestBuilder, searchInfoEO] + * @return void + **/ + public List> countStandSearchResult(SearchRequestBuilder searchRequestBuilder, SeniorSearchInfoEO searchInfoEO){ + List> result = new ArrayList<>(); + // 循环统计各种类型数据 + String[] seniortype; + if("stand".equals(searchInfoEO.getSelectIndex())) { + String[] seniortypeStand = {"standSort", "statecode","CYSD","ZRLX","CLLX","CBCD"}; + seniortype = seniortypeStand.clone(); + } else if("laws".equals(searchInfoEO.getSelectIndex())){ + String[] seniortypeLaws = {"country","statecode","SYCLLX","ZRLX","WSSFCY"}; + seniortype = seniortypeLaws.clone(); + } else if ("bussstand".equals(searchInfoEO.getSelectIndex())) { + String[] seniortypeBuss = {"statecode","ZQCBM"}; + seniortype = seniortypeBuss.clone(); + } else { + String[] seniortypeMsg = {"module"}; + seniortype = seniortypeMsg.clone(); + } + Map map = new HashMap<>(); + for (int i = 0; i < seniortype.length; i++) { + //分组依靠关键字terms + TermsAggregationBuilder aggregationBuilders = AggregationBuilders.terms("by_" + seniortype[i]).field(seniortype[i] + ".keyword").size(1000); + searchRequestBuilder.addAggregation(aggregationBuilders); + } + // 获取查询到的结果 + SearchResponse response = searchRequestBuilder.get(); + result = SearchResponseToList(response); + searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits()); + Map aggmap = response.getAggregations().asMap(); + if (!result.isEmpty()) { + for (int i = 0; i < seniortype.length; i++) { + //分组后得到的数据整合 + Object results = aggmap.get("by_" + seniortype[i]); + if(results instanceof StringTerms){ + StringTerms stResult = (StringTerms) results; + Map submap = new HashMap<>(); + for (StringTerms.Bucket bucket : stResult.getBuckets()) { + // 多选处理,当前全部允许多选 + String keyname = bucket.getKeyAsString(); + String[] keynamelist = keyname.split(","); + // 对于属性允许多选,此处做出处理 + if(keynamelist.length>0){ + for (String itemkeyname: keynamelist){ + // put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加 + if(submap.containsKey(itemkeyname)){ + submap.put(itemkeyname, (long)submap.get(itemkeyname)+ bucket.getDocCount()); + } + else { + submap.put(itemkeyname, bucket.getDocCount()); + } + } + } + else { + if(submap.containsKey(keyname)){ + submap.put(keyname, (long)submap.get(keyname)+ bucket.getDocCount()); + } + else { + submap.put(keyname, bucket.getDocCount()); + } + } + } + map.put(seniortype[i], submap); + } + else{ + Map submap = new HashMap<>(); + map.put(seniortype[i], submap); + } + + } + result.get(0).put("groupdata", map); + } + return result; + } + + @Override + public List> SearchResponseToList(SearchResponse searchResponse) { + List> sourceList = new ArrayList>(); + for (SearchHit searchHit : searchResponse.getHits().getHits()) { + searchHit.getSourceAsMap().put("id", searchHit.getId()); + sourceList.add(searchHit.getSourceAsMap()); + } + return sourceList; + } + + @Override + public Map selectGroupdata(SeniorSearchInfoEO searchInfoEO){ + // 按标准性质统计 + String []index={"stand","bussstand","laws"}; + String []seniortype = {"country","stand_sort","energy_kind","adopt_extent","statecode"}; + Map map = new HashMap<>(); + for(int i=0;i submap = new HashMap<>(); + for (StringTerms.Bucket bucket : result.getBuckets()) { + submap.put(bucket.getKeyAsString(),bucket.getDocCount()); + } + map.put(seniortype[i],submap); + } + return map; + } + + @Override + public String [] searchIdToImport(SeniorSearchInfoEO searchInfoEO) { + List> result = new ArrayList<>(); + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + String numbershowStr = "numbershow"; + String nameshowStr = "nameshow"; + String replacedStandNumStr = "replaced_stand_num"; + String replaceStandNumStr = "replace_stand_num"; + if(StringUtils.isNotBlank(searchInfoEO.getSelectKey())){ + switch (searchInfoEO.getSelectKey()){ + // 修改过后,前台不会传 all + case "all": + boolQueryBuilder.should(QueryBuilders.matchPhraseQuery(numbershowStr,searchInfoEO.getSelectValue())); + boolQueryBuilder.should(QueryBuilders.matchQuery(nameshowStr,searchInfoEO.getSelectValue())); + boolQueryBuilder.should(QueryBuilders.matchQuery("standstateshow",searchInfoEO.getSelectValue())); + boolQueryBuilder.should(QueryBuilders.matchQuery("lawsstateshow",searchInfoEO.getSelectValue())); + boolQueryBuilder.should(QueryBuilders.matchQuery("applyarcticshow",searchInfoEO.getSelectValue())); + break; + case "standNumber": + case "lawsNumber": + case "bussstandsNumber": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())){ + boolQueryBuilder.must(QueryBuilders.matchPhraseQuery(numbershowStr,searchInfoEO.getSelectValue())); + } + break; + case "standName": + case "lawsName": + case "bussstandName": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(nameshowStr, searchInfoEO.getSelectValue())); + } + break; + case "standState": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("standstateshow", searchInfoEO.getSelectValue())); + } + break; + case "standFile": + //标准正文 暂缺 + break; + case "applyArctic": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("applyarcticshow", searchInfoEO.getSelectValue())); + } + break; + case "issueTime": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(searchInfoEO.getSelectStartTime().getTime()).to(searchInfoEO.getSelectEndTime().getTime()).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + break; + case "putTime": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + RangeQueryBuilder rangeQueryBuilders = QueryBuilders.rangeQuery("put_time").format(EPOCH_MILLIS).from(searchInfoEO.getSelectStartTime().getTime()).to(searchInfoEO.getSelectEndTime().getTime()).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilders); + } + break; + case "draftUser": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("draft_user", searchInfoEO.getSelectValue())); + } + break; + case "draftingUnit": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("drafting_unit", searchInfoEO.getSelectValue())); + } + break; + case "replaceStandNum": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(replaceStandNumStr, searchInfoEO.getSelectValue())); + } + break; + case "replacedStandNum": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(replacedStandNumStr, searchInfoEO.getSelectValue())); + } + break; + case "msgTitle": + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + boolQueryBuilder.must(QueryBuilders.matchQuery("title", searchInfoEO.getSelectValue())); + } + break; + default:break; + } + } + searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setFrom(0).setSize(10000); + + boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); + + if(searchInfoEO.getSelectIndex().equals("stand")) { + // 高级搜索项,只针对标准 + //标准性质,国内外标准,法规有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNature())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getNature().equals("all") && !searchInfoEO.getNature().equals("[]")) { + String[] arrlist = searchInfoEO.getNature().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("nature.keyword", arrlist)); + } + } + //国家,国内外标准,国内外法规有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getCountry())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCountry().equals("all") && !searchInfoEO.getCountry().equals("[]")) { + String[] arrlist = searchInfoEO.getCountry().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("country.keyword", arrlist)); + } + } + //标准类别,国内外标准有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandSort().equals("all") && !searchInfoEO.getStandSort().equals("[]")) { + String[] arrlist = searchInfoEO.getStandSort().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("stand_sort.keyword", arrlist)); + } + } + //编号,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNumberShow())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(numbershowStr, searchInfoEO.getNumberShow())); + } + //名称,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { + boolQueryBuilder.must(QueryBuilders.matchQuery(nameshowStr, searchInfoEO.getNameShow())); + } + //适用认证,国内外标准,国内外法规,企业标准 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getApplyArctic())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getApplyArctic().equals("all") && !searchInfoEO.getApplyArctic().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("apply_arctic", searchInfoEO.getApplyArctic())); + } + } + + //认证类型,国内外标准,国内外法规 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getApplyAuth())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getApplyAuth().equals("all") && !searchInfoEO.getApplyAuth().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("apply_auth", searchInfoEO.getApplyAuth())); + } + } + //所属类别,国内外标准, 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getCategory())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getCategory().equals("all") && !searchInfoEO.getCategory().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("category", searchInfoEO.getCategory())); + } + } + //能源种类,国内外标准,国内外法规,企业标准 有此属性 录入可多选 + if (StringUtils.isNotBlank(searchInfoEO.getEnergyKind())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getEnergyKind().equals("all") && !searchInfoEO.getEnergyKind().equals("[]")) { + boolQueryBuilder.must(QueryBuilders.matchQuery("energy_kind", searchInfoEO.getEnergyKind())); + } + } + //采标程度,国内外标准, 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getAdoptExtent())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getAdoptExtent().equals("all") && !searchInfoEO.getAdoptExtent().equals("[]")) { + /*String[] arrlist = searchInfoEO.getAdoptExtent().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("adopt_extent", arrlist));*/ + boolQueryBuilder.must(QueryBuilders.matchQuery("adopt_extent", searchInfoEO.getAdoptExtent())); + } + } + //标准状态,国内外标准,国内外法规,企业标准 有此属性 + if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { + // 如果等于All,相当于不限制,查询全部 + if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]")) { + /*String[] arrlist = searchInfoEO.getStandState().split(","); + boolQueryBuilder.must(QueryBuilders.termsQuery("stateCode", arrlist));*/ + boolQueryBuilder.must(QueryBuilders.matchQuery("statecode", searchInfoEO.getStandState())); + } + } + } + searchRequestBuilder.setQuery(boolQueryBuilder); + // 获取查询到的结果 + SearchResponse response = searchRequestBuilder.get(); + result = SearchResponseToList(response); + String [] resultid = new String[result.size()]; + for(int i=0;i item = result.get(i); + resultid[i] = item.get("id").toString(); + } + return resultid; + } + + @Override + public List> searchSarBykeyAndHighLight(SeniorSearchInfoEO searchInfoEO) throws Exception { +// if () + List> result = new ArrayList<>(); + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + // 记录搜索记录到数据库中 + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery(""); + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + "title","textContent","issue_time" + ).minimumShouldMatch("100%").field("title",10f); + boolQueryBuilder.must(multiQueryBuilder); +// boolQueryBuilder.should() + } + //在结果中检索 + if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) { + QueryBuilder multiQuery = queryInResult(searchInfoEO); + boolQueryBuilder.must(multiQuery); + } + HighlightBuilder hiBuilder=new HighlightBuilder(); + HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title"); + hiBuilder.field(highlightTitle); + HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent"); + hiBuilder.field(highlightUser); + HighlightBuilder.Field highlightDate = new HighlightBuilder.Field("issue_time"); + hiBuilder.field(highlightDate); + hiBuilder.preTags(""); + hiBuilder.postTags(""); + searchRequestBuilder = client.prepareSearch("fulltextserch") + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .highlighter(hiBuilder) + .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) + .setSize(searchInfoEO.getPageSize()); + + // boolQueryBuilder.must(QueryBuilders.matchQuery("valid_flag", 0)); +// boolQueryBuilder.should(boolQueryBuilderShould); + searchRequestBuilder.setQuery(boolQueryBuilder); + // 获取查询到的结果 + SearchResponse response = searchRequestBuilder.get(); + for (SearchHit searchHit : response.getHits().getHits()) { + searchHit.getSourceAsMap().put("id", searchHit.getId()); + Map sourceAsMap = searchHit.getSourceAsMap(); + //解析高亮字段 + Map highlightFields = searchHit.getHighlightFields(); + HighlightField field= highlightFields.get("title"); + if(field!= null){ + Text[] fragments = field.fragments(); + String n_field = ""; + for (Text fragment : fragments) { + n_field += fragment; + } + //高亮标题覆盖原标题 + sourceAsMap.put("title",n_field); + } + + Map highlightFieldsnameshowStr = searchHit.getHighlightFields(); + HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent"); + if(fieldnameshowStr!= null){ + Text[] fragments = fieldnameshowStr.fragments(); + String n_field = ""; + for (Text fragment : fragments) { + n_field += fragment; + } + //高亮标题覆盖原标题 + sourceAsMap.put("textContent",n_field); + } + //发布日期添加高亮 +// Map highlightFieldsDatehowStr = searchHit.getHighlightFields(); +// HighlightField fieldDateshowStr= highlightFieldsDatehowStr.get("issue_time"); +// if(fieldDateshowStr!= null){ +// Text[] fragments = fieldDateshowStr.fragments(); +// String n_field = ""; +// for (Text fragment : fragments) { +// n_field += fragment; +// } +// //高亮标题覆盖原标题 +// sourceAsMap.put("issue_time",n_field); +// } + result.add(sourceAsMap); + } + searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits()); + return result; + } + + + @Override + public List> searchSarBykeyAndHighLightNumber(SeniorSearchInfoEO searchInfoEO) throws Exception { + String real = searchInfoEO.getSelectValue(); + String[] values = searchInfoEO.getSelectValue().split(" "); + String value = ""; + String select = ""; + int i = 0; + for (String v: values){ + if(i==0) { + value = v; + }else{ + select = select + " " + v; + } + i++; + } + searchInfoEO.setSelectValue(select); + List> result = new ArrayList<>(); + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + // 记录搜索记录到数据库中 + BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); + QueryBuilder multiQueryBuilder; + multiQueryBuilder = QueryBuilders.multiMatchQuery(value, + "title","textContent","issue_time").minimumShouldMatch("100%").field("title",1f); + boolQueryMust.must(multiQueryBuilder); + boolQueryShould.should(QueryBuilders.wildcardQuery("title", "*"+searchInfoEO.getSelectValue()+"*").boost(10f)) + .should(QueryBuilders.wildcardQuery("textContent", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*")) + .should(multiQueryBuilder); + boolQueryBuilder.should(boolQueryShould); + //在结果中检索 +// boolQueryBuilder.must(multiQueryBuilder); + HighlightBuilder hiBuilder=new HighlightBuilder(); + HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title"); + hiBuilder.field(highlightTitle); + HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent"); + hiBuilder.field(highlightUser); + HighlightBuilder.Field highlightDate = new HighlightBuilder.Field("issue_time"); + hiBuilder.field(highlightDate); + hiBuilder.preTags(""); + hiBuilder.postTags(""); + searchRequestBuilder = client.prepareSearch("fulltextserch") + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .highlighter(hiBuilder) + .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) + .setSize(searchInfoEO.getPageSize()); + + searchRequestBuilder.setQuery(boolQueryBuilder); + // 获取查询到的结果 + SearchResponse response = searchRequestBuilder.get(); + for (SearchHit searchHit : response.getHits().getHits()) { + searchHit.getSourceAsMap().put("id", searchHit.getId()); + Map sourceAsMap = searchHit.getSourceAsMap(); + //解析高亮字段 + Map highlightFields = searchHit.getHighlightFields(); + HighlightField field= highlightFields.get("title"); + if(field!= null){ + Text[] fragments = field.fragments(); + String n_field = ""; + for (Text fragment : fragments) { + n_field += fragment; + } + //高亮标题覆盖原标题 + sourceAsMap.put("title",n_field); + } + + Map highlightFieldsnameshowStr = searchHit.getHighlightFields(); + HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent"); + if(fieldnameshowStr!= null){ + Text[] fragments = fieldnameshowStr.fragments(); + String n_field = ""; + for (Text fragment : fragments) { + n_field += fragment; + } + //高亮标题覆盖原标题 + sourceAsMap.put("textContent",n_field); + } + result.add(sourceAsMap); + } + searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits()); + return result; + } + + @Override + public void searchByKey(CommonSearchInfoEO commonSearchInfoEO) { + + //写个假的根据字段查询 + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); + + for (BasicSearchEntity entity: commonSearchInfoEO.getSearchEntities()) { + if(entity.getKey()!=null&&entity.getValue()!=null&&(entity.getSign()==null||entity.getSign().equals("=")))boolQueryMust.must(QueryBuilders.wildcardQuery(entity.getKey(),"*"+entity.getValue()+"*")); + } + + searchRequestBuilder=client.prepareSearch(commonSearchInfoEO.getSearchIndex()) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setFrom((commonSearchInfoEO.getCurrents()-1)*commonSearchInfoEO.getSize()) + .setSize(commonSearchInfoEO.getSize()); + boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); + + boolQueryBuilder.must(boolQueryMust); + boolQueryShould.should(boolQueryShould); + + searchRequestBuilder.setQuery(boolQueryBuilder); + // 获取查询到的结果 + SearchResponse response = searchRequestBuilder.get(); + + log.info(response.getHits().toString()); + + } +} + + + +// multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), +// numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr, +// replacedStandNumStr,"countryShow","synopsis","standSortShow","putYear","firstPutTime","ZQCBMShow","ZQCBM","stand_status", +// "baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","FORMENDTIME","replaceStandNum","replacedStandNum","QBMJ","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","XGLC").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("ZQCBMShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("ZQCBM", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_status", "*"+searchInfoEO.getSelectValue()+"*")) +// +// .should(QueryBuilders.wildcardQuery("numbershow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("nameshow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("FORMENDTIME", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("replaceStandNum", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("replacedStandNum", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("QBMJ", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("QBSQShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("XHQBMShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("SVPPSName", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("XGBMName", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("ZYQCRShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("ZRBMShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("ZQCBMName", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("QTQCRShow", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("XGLC", "*"+searchInfoEO.getSelectValue()+"*")) diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java new file mode 100644 index 00000000..904fe5da --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -0,0 +1,490 @@ +package com.adc.da.search.service.impl; + +import com.adc.da.search.entity.FullTextSearchEO; +import com.adc.da.search.entity.StandLawsEO; +import com.adc.da.search.service.ElasticsearchService; +import com.adc.da.search.service.StandLawsSearchService; +import com.adc.da.util.DateUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.elasticsearch.client.transport.TransportClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +@Component +public class StandLawsSearchServiceImpl implements StandLawsSearchService { + private static final Logger logger = LoggerFactory.getLogger(StandLawsSearchServiceImpl.class); + + + @Autowired + private TransportClient transportClient; + + private TransportClient client; + + @PostConstruct + public void init() { + client = this.transportClient; + } + + @Autowired + private ElasticsearchService elasticsearchService; + + @Override + public String addStandLawsSearch(StandLawsEO standLawsEO) { + String indexstate = ""; + //if(elasticsearchService.isIndexExist(standLawsEO.getType())){ + indexstate = elasticsearchService.addData((JSONObject) JSON.toJSON(standLawsEO),standLawsEO.getType(),standLawsEO.getType(),standLawsEO.getId()); + // 方便全文检索,重新建索引 + FullTextSearchEO fullTextSearchEO =getFullTextSearch(standLawsEO); + indexstate = elasticsearchService.addData((JSONObject) JSON.toJSON(fullTextSearchEO),"fulltextserch","fulltextserch",fullTextSearchEO.getId()); + return indexstate; + } + + @Override + public String addStandLawsSearchForMap(Map attrInfoMap) { + String indexstate = ""; + String type = String.valueOf(attrInfoMap.get("type")); + indexstate = elasticsearchService.addDataForMap(attrInfoMap,type,type,String.valueOf(attrInfoMap.get("id"))); + if ("stand".equals(type) || "laws".equals(type) || "bussstand".equals(type)) { + // 方便全文检索,重新建索引 + Map fullTextSearchEO =getFullTextSearchForMap(attrInfoMap); + indexstate = elasticsearchService.addDataForMap(fullTextSearchEO,"fulltextserch","fulltextserch",String.valueOf(fullTextSearchEO.get("id"))); + } + + return indexstate; + } + + @Override + public String updateStandLawsSearchForMap(Map attrInfoMap){ + Set keys = attrInfoMap.keySet(); + for (String key:keys) { + String value = String.valueOf(attrInfoMap.get(key)); + if (StringUtils.isNotBlank(value) && !"null".equals(value)){ + value = value.replace(","," , "); + attrInfoMap.put(key,value); + } + } + String result = ""; + // 先判断索引是否存在 + String type = String.valueOf(attrInfoMap.get("type")); + String id = String.valueOf(attrInfoMap.get("id")); + if(elasticsearchService.isIndexExist(type)){ + Map indexstate = elasticsearchService.searchDataById(type,type,id,null); + if(indexstate == null || indexstate.isEmpty()){ + result = elasticsearchService.addDataForMap(attrInfoMap,type,type,id); + } else { + result = elasticsearchService.updateDataByIdForMap(attrInfoMap,type,type,id); + } + } else { + result = elasticsearchService.addDataForMap(attrInfoMap,type,type,id); + } + if ("stand".equals(type) || "laws".equals(type) || "bussstand".equals(type)) { + // 方便全文检索,重新建索引 + Map fullTextSearchEO =getFullTextSearchForMap(attrInfoMap); + if(elasticsearchService.isIndexExist("fulltextserch")){ + Map indexstate = elasticsearchService.searchDataById("fulltextserch","fulltextserch",id,null); + if(indexstate == null || indexstate.isEmpty()){ + result = elasticsearchService.addDataForMap(fullTextSearchEO,"fulltextserch","fulltextserch",id); + } else { + result = elasticsearchService.updateDataByIdForMap(fullTextSearchEO,"fulltextserch","fulltextserch",id); + } + } else { + result = elasticsearchService.updateDataByIdForMap(fullTextSearchEO,"fulltextserch","fulltextserch",id); + } + } + return result; + } + + + @Override + public String deleteStandLawsSearch(StandLawsEO standLawsEO){ + String result = ""; + // 先判断索引是否存在 + if(elasticsearchService.isIndexExist(standLawsEO.getType())){ + Map indexstate = elasticsearchService.searchDataById(standLawsEO.getType(),standLawsEO.getType(),standLawsEO.getId(),null); + if(indexstate != null && !indexstate.isEmpty()){ + result = elasticsearchService.deleteDataById(standLawsEO.getType(),standLawsEO.getType(),standLawsEO.getId()); + } + } + if(elasticsearchService.isIndexExist("fulltextserch")){ + Map indexstate = elasticsearchService.searchDataById("fulltextserch","fulltextserch",standLawsEO.getId(),null); + if(indexstate != null && !indexstate.isEmpty()){ + result = elasticsearchService.deleteDataById("fulltextserch","fulltextserch",standLawsEO.getId()); + } + } + return result; + } + + Map getFullTextSearchForMap(Map attrInfoMap){ + boolean isForeign = false; + Map fullTextSearchEO = new HashMap<>(); + fullTextSearchEO.put("id",String.valueOf(attrInfoMap.get("id"))); + if ("FOREIGN".equals(String.valueOf(attrInfoMap.get("standType")))){ + fullTextSearchEO.put("indexType",String.valueOf(attrInfoMap.get("standType"))); + isForeign = true; + }else { + fullTextSearchEO.put("indexType", String.valueOf(attrInfoMap.get("type"))); + } + if("stand".equals(attrInfoMap.get("type"))){ + // 标准全文 + fullTextSearchEO.put("title",attrInfoMap.get("numbershow")+" "+attrInfoMap.get("nameshow")); + + for (String key : attrInfoMap.keySet()) { + if (null == attrInfoMap.get(key) || "".equals(attrInfoMap.get(key))){ + attrInfoMap.put(key, "null"); + } + } +// fullTextSearchEO.put("issueTime",attrInfoMap.get("issueTime")); + StringBuilder contentBuilder = new StringBuilder(); +// contentBuilder.append("区域:东亚 "); + if (!isForeign) { + contentBuilder.append("适用区域:").append(attrInfoMap.get("countryShow")).append(" "); + } + contentBuilder.append("标准状态:").append(attrInfoMap.get("standstateshow")).append(" "); +// + contentBuilder.append("纳入标准法规清单的国家/地区: ").append(attrInfoMap.get("accessCountry")).append(" "); + contentBuilder.append("标准类别: ").append(attrInfoMap.get("standSortShow")).append(" "); + contentBuilder.append("标准号: ").append(attrInfoMap.get("numbershow")).append(" "); + contentBuilder.append("标准名称: ").append(attrInfoMap.get("nameshow")).append(" "); + contentBuilder.append("标准英文名称: ").append(attrInfoMap.get("standEnName")).append(" "); +// contentBuilder.append("发布日期:"+attrInfoMap.get("issueTime")+" "); + contentBuilder.append("覆盖关系: ").append(attrInfoMap.get("FGXXSXXXShow")).append(" "); + contentBuilder.append("代替标准编号: ").append(attrInfoMap.get("DTBJH")).append(" "); + if (StringUtils.isBlank(String.valueOf(attrInfoMap.get("BDTBH")))){ + contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBH")).append(" "); + }else { + contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBZBH")).append(" "); + } + contentBuilder.append("对应其他标准: ").append(attrInfoMap.get("CBBH")).append(" "); + contentBuilder.append("引用标准: ").append(attrInfoMap.get("YYBJ")).append(" "); + contentBuilder.append("被引用标准: ").append(attrInfoMap.get("BYYBJ")).append(" "); + if (isForeign){ + contentBuilder.append("等效标准: ").append(attrInfoMap.get("DXBZ")); + } + contentBuilder.append("相关流程: ").append(attrInfoMap.get("XGLC")).append(" "); + contentBuilder.append("参会记录: ").append(attrInfoMap.get("CHJL")).append(" "); + + contentBuilder.append("文本说明: ").append(attrInfoMap.get("synopsis")).append(" "); + contentBuilder.append("重要度: ").append(attrInfoMap.get("isRelateAccess")).append(" "); + if (!isForeign) { + contentBuilder.append("归口管理部门: ").append(attrInfoMap.get("GKDWShow")).append(" "); + } + if (!isForeign) { + contentBuilder.append("我司参与深度: ").append(attrInfoMap.get("CYSDShow")).append(" "); + } + if (!isForeign) { + contentBuilder.append("组织标准起草的执行机构/单位: ").append(attrInfoMap.get("FBJGShow")).append(" "); + } + contentBuilder.append("监管类型: ").append(attrInfoMap.get("ZRLXShow")).append(" "); + contentBuilder.append("适用车辆类型: ").append(attrInfoMap.get("CLLXShow")).append(" "); + contentBuilder.append("标签: ").append(attrInfoMap.get("GXHBQShow")).append(" "); + if (!isForeign) { + contentBuilder.append("工作组信息: ").append(attrInfoMap.get("GZZXXName")).append(" "); + } + contentBuilder.append("要求类型: ").append(attrInfoMap.get("YQLXShow")).append(" "); + contentBuilder.append("新车型实施日期(文本): ").append(attrInfoMap.get("XCXSSRQ")).append(" "); + contentBuilder.append("在产车实施日期(文本): ").append(attrInfoMap.get("ZCCSSRQ")).append(" "); + contentBuilder.append("EOP实施日期(文本): ").append(attrInfoMap.get("EOPSSRQ")).append(" "); + contentBuilder.append("法规维护人: ").append(attrInfoMap.get("FGWHRName")).append(" "); + contentBuilder.append("责任部门: ").append(attrInfoMap.get("ZRBMShow")).append(" "); + contentBuilder.append("相关部门: ").append(attrInfoMap.get("XGBMShow")).append(" "); + contentBuilder.append("SVPPS: ").append(attrInfoMap.get("SVPPSName")).append(" "); + contentBuilder.append("FO: ").append(attrInfoMap.get("FOShow")).append(" "); + contentBuilder.append("项目评估角色: ").append(attrInfoMap.get("XMPGJSShow")).append(" "); + if (attrInfoMap.containsKey("content")){ + if (null !=attrInfoMap.get("content") && StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("content")))){ + String con = String.valueOf(attrInfoMap.get("content")); + con = con.replace(",",""); + if (StringUtils.isBlank(con)){ + attrInfoMap.put("content","--"); + } + } + } + contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" "); + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.put("textContent",textContent.toString()); + if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) { + fullTextSearchEO.put("issue_time", attrInfoMap.get("issueTime")); + }else { + fullTextSearchEO.put("issue_time", "--"); + } + } else if("laws".equals(attrInfoMap.get("type"))){ + // 政策全文 + for (String key : attrInfoMap.keySet()) { + if (null == attrInfoMap.get(key) || "".equals(attrInfoMap.get(key))){ + attrInfoMap.put(key, "null"); + } + } + fullTextSearchEO.put("title",attrInfoMap.get("numbershow")+" "+attrInfoMap.get("nameshow")); + StringBuilder contentBuilder = new StringBuilder(); + contentBuilder.append("适用区域: ").append(attrInfoMap.get("countryShow")).append(" "); + contentBuilder.append("政策状态: ").append(attrInfoMap.get("standstateshow")).append(" "); + contentBuilder.append("政策号: ").append(attrInfoMap.get("numbershow")).append(" "); + contentBuilder.append("政策名称: ").append(attrInfoMap.get("nameshow")).append(" "); + contentBuilder.append("英文名称: ").append(attrInfoMap.get("standEnName")).append(" "); +// contentBuilder.append("发布日期:"+attrInfoMap.get("issueTime")+" "); + contentBuilder.append("纳入标准法规清单的国家/地区: ").append(attrInfoMap.get("accessCountry")).append(" "); + contentBuilder.append("代替政策编号: ").append(attrInfoMap.get("replaceLawsNum")).append(" "); + contentBuilder.append("重要度: ").append(attrInfoMap.get("isRelateAccess")).append(" "); + contentBuilder.append("要求类型: ").append(attrInfoMap.get("YQLXShow")).append(" "); + contentBuilder.append("适用车辆类型: ").append(attrInfoMap.get("SYCLLXShow")).append(" "); +// contentBuilder.append("监管类型:"+attrInfoMap.get("")+" "); + contentBuilder.append("监管类型: ").append(attrInfoMap.get("ZRLXShow")).append(" "); + contentBuilder.append("个性化标签: ").append(attrInfoMap.get("GXHBQShow")).append(" "); + contentBuilder.append("新车型实施日期(文本): ").append(attrInfoMap.get("XCXSSRQ")).append(" "); + contentBuilder.append("在产车实施日期(文本): ").append(attrInfoMap.get("ZCCSSRQ")).append(" "); + contentBuilder.append("EOP实施日期(文本): ").append(attrInfoMap.get("EOPSSRQ")).append(" "); + contentBuilder.append("维护工程师: ").append(attrInfoMap.get("ZCGCSShow")).append(" "); + contentBuilder.append("组织标准起草的执行机构/单位: ").append(attrInfoMap.get("FBJGShow")).append(" "); + contentBuilder.append("SVPPS: ").append(attrInfoMap.get("SVPPSName")).append(" "); + contentBuilder.append("相关部门: ").append(attrInfoMap.get("XGBMShow")).append(" "); + contentBuilder.append("责任部门: ").append(attrInfoMap.get("ZRBMShow")).append(" "); + contentBuilder.append("FO: ").append(attrInfoMap.get("FOShow")).append(" "); + contentBuilder.append("归口管理部门: ").append(attrInfoMap.get("GKGLBMShow")).append(" "); + contentBuilder.append("我司是否参与: ").append(attrInfoMap.get("WSSFCYShow")).append(" "); + contentBuilder.append("相关流程: ").append(attrInfoMap.get("XGLC")).append(" "); +// contentBuilder.append("相关资料:"+attrInfoMap.get("")+" "); + if (attrInfoMap.containsKey("content")){ + if (null !=attrInfoMap.get("content") && StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("content")))){ + String con = String.valueOf(attrInfoMap.get("content")); + con = con.replace(",",""); + if (StringUtils.isBlank(con)){ + attrInfoMap.put("content","--"); + } + } + } + contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" "); + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.put("textContent",textContent.toString()); + if (null != attrInfoMap.get("issue_time") && !"".equals(attrInfoMap.get("issue_time")) && !"null".equals(attrInfoMap.get("issue_time"))) { + fullTextSearchEO.put("issue_time", attrInfoMap.get("issue_time")); + }else { + fullTextSearchEO.put("issue_time", "--"); + } + }else if ("bussstand".equals(attrInfoMap.get("type"))){ + + for (String key : attrInfoMap.keySet()) { + if (null == attrInfoMap.get(key) || "".equals(attrInfoMap.get(key))){ + attrInfoMap.put(key, "null"); + } + } + fullTextSearchEO.put("title",attrInfoMap.get("standNumber")+" - 《"+attrInfoMap.get("nameshow")+"》"); + StringBuilder contentBuilder = new StringBuilder(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd HH:mm:ss"); + contentBuilder.append("企标编号: ").append(String.valueOf(attrInfoMap.get("numbershow"))).append(" "); + contentBuilder.append("企标名称: ").append(String.valueOf(attrInfoMap.get("nameshow"))).append(" "); + contentBuilder.append("英文名称: ").append(attrInfoMap.get("standEnName")).append(" "); + contentBuilder.append("标准状态: ").append(String.valueOf(attrInfoMap.get("standstateshow"))).append(" "); +// contentBuilder.append("发布日期:"+String.valueOf(attrInfoMap.get("issue_time"))+" "); + contentBuilder.append("标准实施日期: "); + contentBuilder.append(String.valueOf(attrInfoMap.get("put_time"))); + contentBuilder.append("代替企标编号: ").append(attrInfoMap.get("replaceStandNum")); + contentBuilder.append("被代替企标编号: ").append(attrInfoMap.get("replacedStandNum")); + contentBuilder.append("废止日期: "); + if (StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("FZRQString")).trim())) { + contentBuilder.append(String.valueOf(attrInfoMap.get("FZRQString"))).append(" "); + }else{ + contentBuilder.append("--").append(" "); + } + contentBuilder.append("复审日期: "); + if (StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("FSRQString")).trim())) { + contentBuilder.append(String.valueOf(attrInfoMap.get("FSRQString"))).append(" "); + }else{ + contentBuilder.append("--").append(" "); + } + contentBuilder.append("密级: ").append(String.valueOf(attrInfoMap.get("QBMJShow"))).append(" "); + contentBuilder.append("授权: ").append(String.valueOf(attrInfoMap.get("QBSQShow"))).append(" "); + contentBuilder.append("涉及会签部门: ").append(String.valueOf(attrInfoMap.get("XHQBMShow"))).append(" "); + contentBuilder.append("SVPPS: ").append(String.valueOf(attrInfoMap.get("SVPPSName"))).append(" "); + contentBuilder.append("相关部门: ").append(String.valueOf(attrInfoMap.get("XGBMShow"))).append(" "); + contentBuilder.append("主起草人: ").append(String.valueOf(attrInfoMap.get("ZYQCRShow"))).append(" "); + contentBuilder.append("起草部门: ").append(String.valueOf(attrInfoMap.get("ZRBMShow"))).append(" "); + contentBuilder.append("主起草部门: ").append(String.valueOf(attrInfoMap.get("ZQCBMName"))).append(" "); + contentBuilder.append("其他起草人: ").append(String.valueOf(attrInfoMap.get("QTQCRShow"))).append(" "); + contentBuilder.append("外发审批角色: ").append(String.valueOf(attrInfoMap.get("WFSPJSShow"))).append(" "); + contentBuilder.append("规范性引用文件: ").append(String.valueOf(attrInfoMap.get("GFXYYWJ"))).append(" "); + contentBuilder.append("相关流程: ").append(String.valueOf(attrInfoMap.get("XGLC"))).append(" "); + if (attrInfoMap.containsKey("content")){ + if (null !=attrInfoMap.get("content") && StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("content")))){ + String con = String.valueOf(attrInfoMap.get("content")); + con = con.replace(",",""); + if (StringUtils.isBlank(con)){ + attrInfoMap.put("content","--"); + } + } + } + contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" "); +// contentBuilder.append("相关计划:"+String.valueOf(attrInfoMap.get(""))+" "); + + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.put("textContent",textContent.toString()); + if (null != attrInfoMap.get("issue_time") && !"".equals(attrInfoMap.get("issue_time")) && !"null".equals(attrInfoMap.get("issue_time"))) { + fullTextSearchEO.put("issue_time", attrInfoMap.get("issue_time")); + }else { + fullTextSearchEO.put("issue_time", "--"); + } + } + return fullTextSearchEO; + } + + FullTextSearchEO getFullTextSearch(StandLawsEO standLawsEO){ + FullTextSearchEO fullTextSearchEO = new FullTextSearchEO(); + fullTextSearchEO.setId(standLawsEO.getId()); + fullTextSearchEO.setIndexType(standLawsEO.getType()); + if(standLawsEO.getType().equals("stand")){ + // 标准全文 + fullTextSearchEO.setTitle(standLawsEO.getNumbershow()+" "+standLawsEO.getNameshow()); + fullTextSearchEO.setIssue_time(standLawsEO.getIssue_time()); + fullTextSearchEO.setIssueTimeStr(standLawsEO.getIssueTimeStr()); + fullTextSearchEO.setPut_time(standLawsEO.getPut_time()); + fullTextSearchEO.setPutTimeStr(standLawsEO.getPutTimeStr()); + StringBuilder contentBuilder = new StringBuilder(); + contentBuilder.append("区域:东亚 "); + contentBuilder.append("国家/地区:"+standLawsEO.getCountryShow()+" "); + contentBuilder.append("标准性质:"+standLawsEO.getNatureShow()+" "); + contentBuilder.append("标准状态:"+standLawsEO.getStatecodeShow()+" "); + contentBuilder.append("内容摘要:"+standLawsEO.getSynopsis()+" "); + contentBuilder.append("标准文本:"+standLawsEO.getContent()+" "); + contentBuilder.append("标准类别:"+standLawsEO.getStandSortShow()+" "); + contentBuilder.append("标准号:"+standLawsEO.getNumbershow()+" "); + contentBuilder.append("标准名称:"+standLawsEO.getNameshow()+" "); + contentBuilder.append("标准英文名称:"+standLawsEO.getStandEnName()+" "); + contentBuilder.append("发布日期:"+DateUtils.dateToString(standLawsEO.getIssue_time(),"yyyy-MM-dd")+" "); + contentBuilder.append("实施日期:"+DateUtils.dateToString(standLawsEO.getPut_time(),"yyyy-MM-dd")+" "); + //时间处理 + contentBuilder.append("新定型车实施日期:"+ DateUtils.dateToString(standLawsEO.getNewcarPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("新生产车实施日期:"+DateUtils.dateToString(standLawsEO.getNewproductPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("注册登记车实施日期:"+DateUtils.dateToString(standLawsEO.getRegisterPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("在产车实施日期:"+DateUtils.dateToString(standLawsEO.getRegisterPutTime(),"yyyy-MM-dd")+" "); + //时间处理 + contentBuilder.append("适用认证:"+standLawsEO.getApplyAuthShow()+" "); + contentBuilder.append("发布部门:"+standLawsEO.getIssueUnit()+" "); + contentBuilder.append("代替标准号:"+standLawsEO.getReplace_stand_num()+" "); + contentBuilder.append("被代替标准号:"+standLawsEO.getReplaced_stand_num()+" "); + contentBuilder.append("采用国际标准号:"+standLawsEO.getInterStandNum()+" "); + contentBuilder.append("采标程度:"+standLawsEO.getAdoptExtentShow()+" "); + contentBuilder.append("适用车型:"+standLawsEO.getApplyArcticShow()+" "); + contentBuilder.append("能源种类:"+standLawsEO.getEnergyKindShow()+" "); + contentBuilder.append("起草单位:"+standLawsEO.getDrafting_unit()+" "); + contentBuilder.append("起草人:"+standLawsEO.getDraft_user()+" "); + contentBuilder.append("关键词:"+standLawsEO.getStandTag()+" "); + contentBuilder.append("备注:"+standLawsEO.getRemarks()+" "); + contentBuilder.append("责任部门:"+standLawsEO.getResponsibleUnitShow()+" "); + contentBuilder.append("所属专业领域:"+standLawsEO.getCategoryShow()+" "); + // contentBuilder.append("总成分类:"+" "); + + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.setTextContent(textContent.toString()); + } else if(standLawsEO.getType().equals("bussstand")){ + //企业标准全文 + fullTextSearchEO.setTitle(standLawsEO.getNumbershow()+" "+standLawsEO.getNameshow()); + fullTextSearchEO.setIssue_time(standLawsEO.getIssue_time()); + fullTextSearchEO.setIssueTimeStr(standLawsEO.getIssueTimeStr()); + fullTextSearchEO.setPut_time(standLawsEO.getPut_time()); + fullTextSearchEO.setPutTimeStr(standLawsEO.getPutTimeStr()); + + StringBuilder contentBuilder = new StringBuilder(); + // contentBuilder.append("区域:东亚 "); + contentBuilder.append("国家:"+standLawsEO.getCountryShow()+" "); + contentBuilder.append("标准类别:"+standLawsEO.getStandSortShow()+" "); + contentBuilder.append("标准编号:"+standLawsEO.getNumbershow()+" "); + contentBuilder.append("标准名称:"+standLawsEO.getNameshow()+" "); + contentBuilder.append("标准英文名称:"+standLawsEO.getStandEnName()+" "); + contentBuilder.append("标准状态:"+standLawsEO.getStatecodeShow()+" "); + contentBuilder.append("标准性质:"+standLawsEO.getNatureShow()+" "); + // contentBuilder.append("规范性引用标准:"+standLawsEO.getNatureShow()+" "); + contentBuilder.append("责任部门:"+standLawsEO.getResponsibleUnitShow()+" "); + //contentBuilder.append("主要编制者:"+standLawsEO.getResponsibleUnitShow()+" "); + contentBuilder.append("发布日期:"+standLawsEO.getIssueTimeStr()+" "); + contentBuilder.append("实施日期:"+standLawsEO.getPutTimeStr()+" "); + contentBuilder.append("实施年份:"+standLawsEO.getPutYear()+" "); + contentBuilder.append("首发日期:"+standLawsEO.getFirstPutTime()+" "); + contentBuilder.append("标准文本:"+standLawsEO.getContent()+" "); + contentBuilder.append("适用认证:"+standLawsEO.getApplyAuthShow()+" "); + contentBuilder.append("适用车型:"+standLawsEO.getApplyArcticShow()+" "); + contentBuilder.append("能源种类:"+standLawsEO.getEnergyKindShow()+" "); + contentBuilder.append("代替标准号:"+standLawsEO.getReplace_stand_num()+" "); + contentBuilder.append("被代替标准号:"+standLawsEO.getReplaced_stand_num()+" "); + contentBuilder.append("关键词:"+standLawsEO.getStandTag()+" "); + contentBuilder.append("内容摘要:"+standLawsEO.getSynopsis()+" "); + contentBuilder.append("备注:"+standLawsEO.getRemarks()+" "); + + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.setTextContent(textContent.toString()); + } else if(standLawsEO.getType().equals("laws")){ + // 政策全文 + fullTextSearchEO.setTitle(standLawsEO.getNumbershow()+" "+standLawsEO.getNameshow()); + fullTextSearchEO.setIssue_time(standLawsEO.getIssue_time()); + fullTextSearchEO.setIssueTimeStr(standLawsEO.getIssueTimeStr()); + fullTextSearchEO.setPut_time(standLawsEO.getPut_time()); + fullTextSearchEO.setPutTimeStr(standLawsEO.getPutTimeStr()); + + StringBuilder contentBuilder = new StringBuilder(); + contentBuilder.append("国家/地区:"+standLawsEO.getCountryShow()+" "); + contentBuilder.append("文件号:"+standLawsEO.getNumbershow()+" "); + contentBuilder.append("文件名称:"+standLawsEO.getNameshow()+" "); + contentBuilder.append("文件英文名称:"+standLawsEO.getStandEnName()+" "); + contentBuilder.append("文件状态:"+standLawsEO.getStatecodeShow()+" "); + contentBuilder.append("文件性质:"+standLawsEO.getNatureShow()+" "); + contentBuilder.append("发布日期:"+DateUtils.dateToString(standLawsEO.getIssue_time(),"yyyy-MM-dd")+" "); + contentBuilder.append("实施日期:"+DateUtils.dateToString(standLawsEO.getPut_time(),"yyyy-MM-dd")+" "); + //时间处理 + contentBuilder.append("新定型车实施日期:"+ DateUtils.dateToString(standLawsEO.getNewcarPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("新生产车实施日期:"+DateUtils.dateToString(standLawsEO.getNewproductPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("注册登记车实施日期:"+DateUtils.dateToString(standLawsEO.getRegisterPutTime(),"yyyy-MM-dd")+" "); + contentBuilder.append("在产车实施日期:"+DateUtils.dateToString(standLawsEO.getRegisterPutTime(),"yyyy-MM-dd")+" "); + //时间处理 + contentBuilder.append("发布部门:"+standLawsEO.getIssueUnit()+" "); + contentBuilder.append("责任部门:"+standLawsEO.getResponsibleUnitShow()+" "); + contentBuilder.append("文件附件全文:"+standLawsEO.getContent()+" "); + contentBuilder.append("适用车型:"+standLawsEO.getApplyArcticShow()+" "); + contentBuilder.append("适用认证:"+standLawsEO.getApplyAuthShow()+" "); + contentBuilder.append("能源种类:"+standLawsEO.getEnergyKindShow()+" "); + contentBuilder.append("所属专业领域:"+standLawsEO.getCategoryShow()+" "); + contentBuilder.append("代替标准号:"+standLawsEO.getReplace_stand_num()+" "); + contentBuilder.append("被代替标准号:"+standLawsEO.getReplaced_stand_num()+" "); + contentBuilder.append("关键词:"+standLawsEO.getStandTag()+" "); + contentBuilder.append("内容摘要:"+standLawsEO.getSynopsis()+" "); + contentBuilder.append("备注:"+standLawsEO.getRemarks()+" "); + StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); + fullTextSearchEO.setTextContent(textContent.toString()); + } + return fullTextSearchEO; + } + + + /** + * 实现StringBuilder的replaceAll + * + * @param stb + * @param oldStr 被替换的字符串 + * @param newStr 替换oldStr + * @return + */ + public static StringBuilder replaceAll(StringBuilder stb, String oldStr, String newStr) { + if (stb == null || oldStr == null || newStr == null || stb.length() == 0 || oldStr.length() == 0) + return stb; + int index = stb.indexOf(oldStr); + if (index > -1 && !oldStr.equals(newStr)) { + int lastIndex = 0; + while (index > -1) { + stb.replace(index, index + oldStr.length(), newStr); + lastIndex = index + newStr.length(); + index = stb.indexOf(oldStr, lastIndex); + } + } + return stb; + } + +} diff --git a/adc-da-search/src/main/java/com/adc/da/search/util/ElasticsearchConstant.java b/adc-da-search/src/main/java/com/adc/da/search/util/ElasticsearchConstant.java new file mode 100644 index 00000000..5c3a1cd3 --- /dev/null +++ b/adc-da-search/src/main/java/com/adc/da/search/util/ElasticsearchConstant.java @@ -0,0 +1,17 @@ +package com.adc.da.search.util; + +/** + *Elasticsearch接口实现过程中用到的常量定义 + * @author gaoyan + * date 2018/08/27 + */ +public class ElasticsearchConstant { + //构造方法 + public ElasticsearchConstant() { + // 不做操作 + } + //正确删除后返回结构 + public static final String SUCCESS_DELETED = "DELETED"; + //删除过程中未找到对应数据返回结果 + public static final String HAVE_NOT_FOUND= "NOT_FOUND"; +} diff --git a/adc-da-slrs/pom.xml b/adc-da-slrs/pom.xml index 5219d792..e0f98a9f 100644 --- a/adc-da-slrs/pom.xml +++ b/adc-da-slrs/pom.xml @@ -35,5 +35,55 @@ 3.1.0 compile + + + + + org.apache.poi + poi + 4.1.2 + + + org.apache.poi + poi-ooxml + 4.1.2 + + + org.apache.poi + poi-ooxml-schemas + 4.1.2 + + + xerces + xercesImpl + + + + + org.apache.poi + poi-scratchpad + 4.1.2 + + + + org.apache.pdfbox + pdfbox + 1.8.8 + + + + com.itextpdf + itextpdf + 5.5.13 + + + + com.zip4j + zip4j + system + 1.3.1 + ${basedir}/src/main/lib/zip4j-1.3.1.jar + + \ No newline at end of file diff --git a/adc-da-slrs/src/main/java/com/adc/da/common/ConvertMqEO.java b/adc-da-slrs/src/main/java/com/adc/da/common/ConvertMqEO.java new file mode 100644 index 00000000..d502d72f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/common/ConvertMqEO.java @@ -0,0 +1,223 @@ +package com.adc.da.common; + +import com.adc.da.base.entity.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +/** + * 功能:OT_CONVERT_MQ OtConvertMqEOEntity
    + * 作者:code generator
    + * 日期: 2018-09-25
    + * 版权所有:版权归北京卡达克数据技术中心所有。
    + */ +public class ConvertMqEO extends BaseEntity { + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + @org.springframework.format.annotation.DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date creationTime; + private Integer validFlag; + private String attId; + private String filePath; + private String fileOriginPath; + private String userId; + private Integer mqState; + private String mqCode; + private String id; + private String addOrUp; + + //向文件表添加信息 + private String lawsId; + private String resId; + private String convertType; + private String pdfPath; + private String pdfId; + private String fileSuffix; + private String standFileClassify; + private String oriAttId; + private String lawsFileClassify; + + private int againNum; + /** **/ + public Integer getValidFlag() { + return this.validFlag; + } + + /** **/ + public void setValidFlag(Integer validFlag) { + this.validFlag = validFlag; + } + + /** **/ + public String getAttId() { + return this.attId; + } + + /** **/ + public void setAttId(String attId) { + this.attId = attId; + } + + /** **/ + public String getFilePath() { + return this.filePath; + } + + /** **/ + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + /** **/ + public String getUserId() { + return this.userId; + } + + /** **/ + public void setUserId(String userId) { + this.userId = userId; + } + + /** **/ + public Integer getMqState() { + return this.mqState; + } + + /** **/ + public void setMqState(Integer mqState) { + this.mqState = mqState; + } + + /** **/ + public String getMqCode() { + return this.mqCode; + } + + /** **/ + public void setMqCode(String mqCode) { + this.mqCode = mqCode; + } + + /** **/ + public String getId() { + return this.id; + } + + /** **/ + public void setId(String id) { + this.id = id; + } + + public String getFileOriginPath() { + return fileOriginPath; + } + + public void setFileOriginPath(String fileOriginPath) { + this.fileOriginPath = fileOriginPath; + } + + public String getLawsId() { + return lawsId; + } + + public void setLawsId(String lawsId) { + this.lawsId = lawsId; + } + + public String getResId() { + return resId; + } + + public void setResId(String resId) { + this.resId = resId; + } + + public String getConvertType() { + return convertType; + } + + public void setConvertType(String convertType) { + this.convertType = convertType; + } + + public String getPdfPath() { + return pdfPath; + } + + public void setPdfPath(String pdfPath) { + this.pdfPath = pdfPath; + } + + public String getAddOrUp() { + return addOrUp; + } + + public void setAddOrUp(String addOrUp) { + this.addOrUp = addOrUp; + } + + public String getPdfId() { + return pdfId; + } + + public void setPdfId(String pdfId) { + this.pdfId = pdfId; + } + + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + public Date getCreationTime() { + return creationTime; + } + + public void setCreationTime(Date creationTime) { + this.creationTime = creationTime; + } + + public String getFileSuffix() { + return fileSuffix; + } + + public void setFileSuffix(String fileSuffix) { + this.fileSuffix = fileSuffix; + } + + public String getStandFileClassify() { + return standFileClassify; + } + + public void setStandFileClassify(String standFileClassify) { + this.standFileClassify = standFileClassify; + } + + public String getOriAttId() { + return oriAttId; + } + + public void setOriAttId(String oriAttId) { + this.oriAttId = oriAttId; + } + + public int getAgainNum() { + return againNum; + } + + public void setAgainNum(int againNum) { + this.againNum = againNum; + } + + public String getLawsFileClassify() { + return lawsFileClassify; + } + + public void setLawsFileClassify(String lawsFileClassify) { + this.lawsFileClassify = lawsFileClassify; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/dao/OtConvertEODao.java b/adc-da-slrs/src/main/java/com/adc/da/mq/dao/OtConvertEODao.java new file mode 100644 index 00000000..cfbbe4e4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/dao/OtConvertEODao.java @@ -0,0 +1,10 @@ +package com.adc.da.mq.dao; + +import com.adc.da.common.ConvertMqEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface OtConvertEODao extends BaseMapper { + + int deleteByAttId(String value); + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateMQService.java new file mode 100644 index 00000000..c11456a1 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateMQService.java @@ -0,0 +1,77 @@ +package com.adc.da.mq.service; + +import com.adc.da.common.ConvertMqEO; +import com.adc.da.mq.dao.OtConvertEODao; +import com.adc.da.util.UUIDUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Component +public class CreateMQService { + @Autowired + private AmqpTemplate rabbitTemplate; + + @Autowired + private OtConvertEODao otConvertEODao; + /** + * @Author yangxuenan + * @Description 创建消息队列 + * Date 2018/8/24 13:59 + * @Param [convert, convertType] + * @return int + **/ + public void sendMQ(ConvertMqEO convert) throws Exception{ + String otId = UUIDUtils.randomUUID20(); + //向OT_CONVERT_EO表中添加/修改数据 + //判断用户是初次发送还是重新发送,初次将添加到数据库,重新发送将修改原数据信息 + convert.setMqState(0); + convert.setModifyTime(new Date()); + if("0".equals(convert.getAddOrUp()) && StringUtils.isEmpty(convert.getId())){ + convert.setId(otId); + convert.setMqCode(convert.getConvertType()); + convert.setCreationTime(new Date()); + convert.setValidFlag(0); + otConvertEODao.insert(convert); + } else { + otConvertEODao.updateById(convert); + } + + //将数据信息保存并发送给消息队列 + Map convertInfo = new HashMap(); + //标准/政策ID + convertInfo.put("lawsId", convert.getLawsId()); + //标准/政策关联的res表ID + convertInfo.put("resId", convert.getResId()); + //文档的ID + convertInfo.put("attId", convert.getAttId()); + //判断当前操作是新增还是修改 + convertInfo.put("addUpFlag", convert.getAddOrUp()); + //资源类型(标准,政策,企标) + convertInfo.put("convertType", convert.getConvertType()); + //文档路径 + convertInfo.put("path", convert.getFilePath()); + convertInfo.put("standFileClassify", convert.getStandFileClassify()); + convertInfo.put("lawsFileClassify", convert.getLawsFileClassify()); + if("0".equals(convert.getAddOrUp())){ + //otId在转换表中数据ID + convertInfo.put("otId", otId); + //在stand_file等资源与文件关联表中转换成功的pdf数据ID + convertInfo.put("standFilePdfId", UUIDUtils.randomUUID20()); + convertInfo.put("againNum",0); + } else { + convertInfo.put("otId", convert.getId()); + convertInfo.put("standFilePdfId", convert.getPdfId()); + convertInfo.put("againNum",convert.getAgainNum()); + } + + //发送消息队列 + this.rabbitTemplate.convertAndSend("convert-exchange_SQ_GSAR", "convert-key_SQ_GSAR", convertInfo); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateStandMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateStandMQService.java new file mode 100644 index 00000000..b7253717 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/service/CreateStandMQService.java @@ -0,0 +1,32 @@ +package com.adc.da.mq.service; + +import net.sf.json.JSONObject; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class CreateStandMQService { + @Autowired + private AmqpTemplate rabbitTemplate; + + /** + * + * @param sarStandardsInfoEO 标准实体 + * @param addOrUpdate + * @throws Exception + */ + public void sendStandMQ(Object sarStandardsInfoEO, String addOrUpdate) throws Exception{ + JSONObject json = JSONObject.fromObject(sarStandardsInfoEO); + String sarStandardsInfoStr = json.toString(); + Map standMap = new HashMap(); + standMap.put("sarStandards", sarStandardsInfoStr); + standMap.put("addOrUpdate", addOrUpdate); + + //发送消息队列 + this.rabbitTemplate.convertAndSend("stand-exchange_SQ_GSAR", "stand-key_SQ_GSAR", standMap); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java new file mode 100644 index 00000000..164faf75 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java @@ -0,0 +1,316 @@ +package com.adc.da.mq.service; + +import com.adc.da.slrs.otSvpps.entity.OtSvpps; +import com.adc.da.slrs.otSvpps.service.IOtSvppsService; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; +import com.adc.da.slrs.sysInfo.service.SysInfoEOService; +import com.rabbitmq.client.Channel; +import net.sf.json.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class SendStandMQService { + + @Autowired + private ISarStandardsInfoService sarStandardsInfoService; + + @Autowired + private SysInfoEOService sysInfoEOService; + + + @Autowired + private IOtSvppsService otSvppsEOService; + + + private static final Logger logger = LoggerFactory.getLogger(SendStandMQService.class); + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "createStandMQ_SQ_GSAR", durable = "true"), + exchange = @Exchange(value = "stand-exchange_SQ_GSAR", ignoreDeclarationExceptions = "true"), + key = "stand-key_SQ_GSAR")) + public void createMQ(Map standMap, Message message, Channel channel) throws Exception{ + try{ + try{ + Thread.sleep(5000); + insertOrUpdateStandInfo(standMap); + }catch(InterruptedException e){ + logger.error(e.toString()); + Thread.currentThread().interrupt(); + } + } catch (Exception e) { + logger.error("搜索中心标准消息队列进入添加数据方法前失败!"); + logger.error(e.getMessage(),e); + }finally { + Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); + channel.basicAck(tag,false); + logger.debug("消息确认成功!!!!!!!!!"); + } + + } + + public void insertOrUpdateStandInfo(Map standMap){ + String addOrUpdate = standMap.get("addOrUpdate").toString(); + String sarStandards = standMap.get("sarStandards").toString(); + JSONObject jsonobject = JSONObject.fromObject(sarStandards); + SarStandardsInfo infoEO = (SarStandardsInfo) JSONObject.toBean(jsonobject,SarStandardsInfo.class); + String attr = infoEO.getSarStandAttrEOStr(); + JSONObject jsonobject1 = JSONObject.fromObject(attr); + Map map = (Map)jsonobject1; + String GZZXX = String.valueOf(map.get("GZZXX")); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + // 往索引表中插入数据 + String getCodeName = ""; + Map saveMap = new HashMap<>(); + String baseSearchContent = ""; + // 开始存放数据 + saveMap.put("id",infoEO.getId()); + saveMap.put("BYYBJ", map.getOrDefault("BYYBJ", "")); + saveMap.put("BDTBH", map.getOrDefault("BDTBH", "")); + saveMap.put("country",infoEO.getCountry()); + + if (StringUtils.isNotEmpty(infoEO.getCountry())) { + String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getCountry()); + saveMap.put("countryShow",codeName); + } + saveMap.put("standSort",infoEO.getStandSort()); + saveMap.put("stand_sort",infoEO.getStandSort()); + if (StringUtils.isNotEmpty(infoEO.getStandSort())) { + String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort()); + saveMap.put("standSortShow",codeName); + getCodeName = codeName; + } + saveMap.put("standNumber",infoEO.getStandNumber()); + saveMap.put("stand_number",infoEO.getStandNumber()); + saveMap = dealNumberMsg(saveMap,infoEO,getCodeName); + saveMap.put("standYear",infoEO.getStandYear()); + saveMap.put("stand_year",infoEO.getStandYear()); + saveMap.put("nameshow",infoEO.getStandName()); + saveMap.put("stand_name",infoEO.getStandName()); + saveMap.put("standEnName",infoEO.getStandEnName()); + saveMap.put("stand_en_name",infoEO.getStandEnName()); + + if ("1".equals(infoEO.getIsRelateAccess())) { + saveMap.put("isRelateAccess","A" ); + }else{ + saveMap.put("isRelateAccess","B" ); + } + if (StringUtils.isNotEmpty(infoEO.getStandState())) { + String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandState()); + saveMap.put("standstateshow",codeName); + } + saveMap.put("issueTime",infoEO.getIssueTime()); + + String newDate = infoEO.getIssueTime(); + if (StringUtils.isNotBlank(infoEO.getIssueTime()) && StringUtils.isNotBlank(infoEO.getIssueTime().trim()) && infoEO.getIssueTime().trim().length()>10) { + newDate = infoEO.getIssueTime().trim().substring(0,10); + } + + saveMap.put("issue_time",newDate); + Date issue_time_data = null; + if (StringUtils.isNotBlank(infoEO.getIssueTime())) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + issue_time_data = format.parse(newDate+" 00:00:00"); + } catch (ParseException ignored) { + } + } + if (issue_time_data != null) { + saveMap.put("issue_time_data",issue_time_data.getTime()); + }else{ + saveMap.put("issue_time_data",0L); + } + saveMap.put("synopsis",infoEO.getSynopsis()); + saveMap.put("standType",infoEO.getStandType()); + // 自定义属性字段 + String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr(); + Map attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); + if (attrInfoMap != null && !attrInfoMap.isEmpty()) { + attrInfoMap = sysInfoEOService.changeSelectInfo(attrInfoMap, "stand",baseSearchContent); + saveMap.putAll(attrInfoMap); + } + saveMap.put("baseSearchContent",baseSearchContent); + saveMap.put("type","stand"); + saveMap.put("validFlag","0"); + saveMap.put("content",infoEO.getFileIds()); + saveMap.put("CHJL",infoEO.getCHJL()); + + String SVPPSSting = ""; + if (attrInfoMap != null) { + if (attrInfoMap.containsKey("SVPPS")){ + String svpps = String.valueOf(attrInfoMap.get("SVPPS")); + List ids = new ArrayList<>(Arrays.asList(svpps.split(","))); + for (String id: ids){ + String num = ""; + try { + OtSvpps otSvppsEO = otSvppsEOService.getById(id); + if (null != otSvppsEO) { + if ("NA".equals(otSvppsEO.getTNum())) { + if ("NA".equals(otSvppsEO.getSNum())) { + num = otSvppsEO.getFNum(); + } else { + num = otSvppsEO.getSNum(); + } + } else { + num = otSvppsEO.getTNum(); + } + } + if ("".equals(SVPPSSting)){ + SVPPSSting = num; + }else { + SVPPSSting = SVPPSSting + "," + num; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + saveMap.put("SVPPSName",SVPPSSting); + } + } + + + Date XCXSSRQ_data = null; + if (StringUtils.isNotBlank(String.valueOf(saveMap.get("XCXSSRQ")))) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (String.valueOf(saveMap.get("XCXSSRQ")).trim().length()>10) { + XCXSSRQ_data = format.parse(String.valueOf(saveMap.get("XCXSSRQ")).trim().substring(0,10) + " 00:00:00"); + saveMap.put("XCXSSRQ",String.valueOf(saveMap.get("XCXSSRQ")).trim().substring(0,10)); + }else{ + XCXSSRQ_data = format.parse(String.valueOf(saveMap.get("XCXSSRQ")).trim() + " 00:00:00"); + saveMap.put("XCXSSRQ",String.valueOf(saveMap.get("XCXSSRQ")).trim()); + } + } catch (ParseException ignored) { + } + } + if (XCXSSRQ_data != null) { + saveMap.put("XCXSSRQ_data",XCXSSRQ_data.getTime()); + }else{ + saveMap.put("XCXSSRQ_data",0L); + } + saveMap.put("XCXSSRQ",String.valueOf(saveMap.get("XCXSSRQ")+" ")); + + Date ZCCSSRQ_data = null; + if (StringUtils.isNotBlank(String.valueOf(saveMap.get("ZCCSSRQ")))) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (String.valueOf(saveMap.get("ZCCSSRQ")).trim().length()>10) { + ZCCSSRQ_data = format.parse(String.valueOf(saveMap.get("ZCCSSRQ")).trim().substring(0, 10) + " 00:00:00"); + saveMap.put("ZCCSSRQ",String.valueOf(saveMap.get("ZCCSSRQ")).trim().substring(0, 10)); + }else { + ZCCSSRQ_data = format.parse(String.valueOf(saveMap.get("ZCCSSRQ")).trim() + " 00:00:00"); + saveMap.put("ZCCSSRQ",String.valueOf(saveMap.get("ZCCSSRQ")).trim()); + } + } catch (ParseException ignored) { + } + } + if (ZCCSSRQ_data != null) { + saveMap.put("ZCCSSRQ_data",ZCCSSRQ_data.getTime()); + }else{ + saveMap.put("ZCCSSRQ_data",0L); + } + saveMap.put("ZCCSSRQ",String.valueOf(saveMap.get("ZCCSSRQ")+" ")); + + Date EOPSSRQ_data = null; + String ESSRQ= null; + if (StringUtils.isNotBlank(String.valueOf(saveMap.get("EOPSSRQ")))) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (String.valueOf(saveMap.get("EOPSSRQ")).trim().length()>10){ + ESSRQ = String.valueOf(saveMap.get("EOPSSRQ")).trim().substring(0,10); + }else { + ESSRQ = String.valueOf(saveMap.get("EOPSSRQ")).trim(); + } + EOPSSRQ_data = format.parse(ESSRQ + " 00:00:00"); + } catch (ParseException ignored) { + } + map.put("EOPSSRQ",ESSRQ); + } + if (EOPSSRQ_data != null) { + saveMap.put("EOPSSRQ_data",EOPSSRQ_data.getTime()); + }else{ + saveMap.put("EOPSSRQ_data",0L); + } + saveMap.put("EOPSSRQ",String.valueOf(saveMap.get("EOPSSRQ")+" ")); + + if (map.containsKey("DXBZ")){ + saveMap.put("DXBZ",map.get("DXBZ")); + }else{ + saveMap.put("DXBZ",""); + } + //当建立代替时,产生的没有文件的问题 + if (StringUtils.isBlank(String.valueOf(saveMap.get("content")))) { + String context = String.valueOf(saveMap.get("FBGBJBD")) + "," + + String.valueOf(saveMap.get("XXZLXX")) + "," + + String.valueOf(saveMap.get("ZQYJG")) + "," + + String.valueOf(saveMap.get("BPG")) + "," + + String.valueOf(saveMap.get("CA")) + "," + + String.valueOf(saveMap.get("SSG")) + "," + + String.valueOf(saveMap.get("ZBJBD")); + context = context.replace(",,", ","); + saveMap.put("content", context); + } + if (StringUtils.isNotBlank(String.valueOf(saveMap.get("FO"))) && !"null".equals(String.valueOf(saveMap.get("FO")))){ + saveMap.put("FO",String.valueOf(saveMap.get("FO"))+" "); + } + if("add".equals(addOrUpdate)){ + sarStandardsInfoService.insertIntoIndexForMap(saveMap); + } else { + sarStandardsInfoService.updateIntoIndexForMap(saveMap); + } + } + + public Map dealNumberMsg (Map saveMap,SarStandardsInfo infoEO,String getCodeName) { + if(StringUtils.isNotEmpty(infoEO.getStandYear())){ + String number = getCodeName + " " + infoEO.getStandNumber() + "-" + infoEO.getStandYear(); + saveMap.put("numbershow",number); + int index = infoEO.getStandNumber().indexOf("."); + int index1 = infoEO.getStandNumber().indexOf(":"); + String numberExpNull = ""; + if(index > -1){ + numberExpNull = (getCodeName + infoEO.getStandNumber() + "-" + number.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandNumber().substring(0,index) + "-" + infoEO.getStandNumber().substring(0,index)); + } else if (index1 > -1) { + numberExpNull = getCodeName + infoEO.getStandNumber() + "-" + number.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandNumber().substring(0,index1) + "-" + infoEO.getStandNumber().substring(0,index1); + } else { + numberExpNull = getCodeName + infoEO.getStandNumber() + "-" + number.replaceAll(" ",""); + } + saveMap.put("numberExpNull",numberExpNull); + } else { + String num = getCodeName + " " + infoEO.getStandNumber(); + saveMap.put("numbershow",num); + int index = infoEO.getStandNumber().indexOf("."); + String numberExpNull = ""; + if(index > -1){ + numberExpNull = getCodeName + infoEO.getStandNumber() + "-" + num.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandNumber().substring(0,index) + "-" + infoEO.getStandNumber().substring(0,index); + } else { + numberExpNull = getCodeName + infoEO.getStandNumber() + "-" + num.replaceAll(" ",""); + } + saveMap.put("numberExpNull",numberExpNull); + } + return saveMap; + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java new file mode 100644 index 00000000..ff987ba2 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java @@ -0,0 +1,79 @@ +package com.adc.da.slrs.sarInstitution.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import java.util.List; +import java.util.Map; + + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-22 +*/ +@RestController +@Api(tags = "|机构管理|") +@RequestMapping("/api/SarInstitution/institution") +public class TsInstitutionController extends BaseController { + @Autowired + private ITsInstitutionService tsInstitutionService; + @Autowired + private ITsUserService tsUserService; + + /** + * 查询所有机构 + * @return ResponseMessage> + */ + @ApiOperation("查询所有机构") + @GetMapping + public ResponseMessage> getInstitution(){ + List institutions=tsInstitutionService.getInstitution(); + return Result.success(institutions); + } + + + /** + * 查询所有机构和人员 + * @return ResponseMessage> + */ + @ApiOperation("查询所有机构和人员") + @GetMapping("/institutionAndUser") + public ResponseMessage> getInstitutionAndUser(){ + List institutions=tsInstitutionService.getInstitutionAndUser(); + return Result.success(institutions); + } + + /** + * 查询机构人员 + * @param institutionId:机构ID + * @return ResponseMessage> + */ + @ApiOperation("查询机构的人员") + @GetMapping("/user") + public ResponseMessage> getUserByInstitutionId(@RequestParam String institutionId){ + List tsUsers=tsUserService.getUserByInstitutionId(institutionId); + return Result.success(tsUsers); + } + + @ApiOperation("导入机构数据") + @PostMapping("/import") + public ResponseMessage importInstitution(Map param){ + String json= (String) param.get("json"); + tsInstitutionService.parseInstitution(json); + return Result.success(); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java new file mode 100644 index 00000000..9b11d375 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java @@ -0,0 +1,37 @@ +package com.adc.da.slrs.sarInstitution.dao; + +import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser; +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface TsInstitutionDao extends BaseMapper { + + /** + * 查询最高级机构及其人员 + * @return List + */ + List selectRootAndUser(); + + /** + * 根据父节点查询机构及其人员 + * @param parentId:父节点Id + * @return List + */ + List selectAndUserByParent(String parentId); + + /** + * 批量插入机构 + * @param tsInstitutions:机构列表 + */ + void batchInsert(List tsInstitutions); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/InstitutionAndUser.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/InstitutionAndUser.java new file mode 100644 index 00000000..08607c1f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/InstitutionAndUser.java @@ -0,0 +1,13 @@ +package com.adc.da.slrs.sarInstitution.entity; + +import com.adc.da.slrs.sarUser.entity.TsUser; +import lombok.Data; + +import java.util.List; + +@Data +public class InstitutionAndUser { + private TsInstitution institution; + private List users; + private List children; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/SyncInstitution.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/SyncInstitution.java new file mode 100644 index 00000000..13006f9e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/SyncInstitution.java @@ -0,0 +1,27 @@ +package com.adc.da.slrs.sarInstitution.entity; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class SyncInstitution { + private String orgNumber; + private String orgName; + private String departmentName; + private String orgStatus; + private String orgShortName; + private String parentOrgNumber; + private String orgFullPath; + private String order; + private String modifyTimestamp; + + public static List syncToInstitution(List syncInstitutions){ + List tsInstitutions=new ArrayList<>(); + for(SyncInstitution syncInstitution:syncInstitutions){ + tsInstitutions.add(new TsInstitution(syncInstitution.getOrgNumber(),syncInstitution.getParentOrgNumber(),syncInstitution.getOrgName())); + } + return tsInstitutions; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java new file mode 100644 index 00000000..5bffb3d0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java @@ -0,0 +1,66 @@ +package com.adc.da.slrs.sarInstitution.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsInstitution对象", description="") +public class TsInstitution extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("id") + private String id; + + @ApiModelProperty(value = "上级机构") + private String parentId; + + @ApiModelProperty(value = "机构层级") + private Integer level; + + @ApiModelProperty(value = "机构名") + private String name; + + @TableField(exist = false) + @ApiModelProperty(value = "子机构") + private List children; + + @JsonIgnore + @TableField(exist = false) + @ApiModelProperty(value = "人员") + private List users; + + @TableField(exist = false) + @ApiModelProperty("是否是机构") + private Boolean disabled; + + public TsInstitution() { + } + + public TsInstitution(String id, String parentId, String name) { + this.id = id; + this.parentId = parentId; + this.name = name; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java new file mode 100644 index 00000000..3111f5d9 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java @@ -0,0 +1,121 @@ +package com.adc.da.slrs.sarInstitution.entity; + +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.sql.Timestamp; +import java.util.List; + +@Data +public class TsUserVO { + public interface disable{ + } + + + @ApiModelProperty(value = "主键Id") + @NotNull(message = "userId不能为空",groups = {disable.class}) + @TableId(value = "USID") + private String id; + + @ApiModelProperty(value = "帐户") + @TableField("ACCOUNT") + private String account; + + @ApiModelProperty(value = "密码") + @TableField("PASSWORD") + private String password; + + @ApiModelProperty(value = "用户姓名") + @TableField("UNAME") + private String name; + + @ApiModelProperty(value = "用户性别(1为男,2为女)") + @TableField("SEX") + private String sex; + + @ApiModelProperty(value = "用户来源") + @TableField("USER_SOURCE") + private String userSource; + + @ApiModelProperty(value = "用户手机号") + @TableField("PHONE") + private String phone; + + @ApiModelProperty(value = "用户状态") + @TableField("STATE") + private String state; + + @ApiModelProperty(value = "用户邮箱") + @TableField("EMAIL") + private String email; + + @ApiModelProperty(value = "所属部门名称") + @TableField("INSTITUTION_NAME") + private String institutionName; + + @ApiModelProperty(value = "所属部门ID") + @TableField("INSTITUTION_ID") + private String institutionId; + + @ApiModelProperty(value = "岗位名") + @TableField("POSITION_NAME") + private String positionName; + + @ApiModelProperty(value = "岗位ID") + @TableField("POSITION_ID") + private String positionId; + + @ApiModelProperty(value = "工号") + @TableField("WORK_NUM") + private String workNum; + + @ApiModelProperty(value = "备注") + @TableField("EXT_INFO") + private String extInfo; + + @TableField("OPER_USER") + private String operUser; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp modifyTime; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "是否禁用(0为未禁用,1为已禁用)") + @NotNull(message = "disableFlag不能为空",groups = {disable.class}) + @TableField("DISABLE_FLAG") + private String disableFlag; + + @ApiModelProperty(value = "是否锁定") + @TableField("UNLOCK_FLAG") + private String unlockFlag; + + @ApiModelProperty(value = "用户类型") + @TableField("USER_TYPE") + private String userType; + + @ApiModelProperty(value = "对接单点登录用户ID") + @TableField("SSO_ID") + private String ssoId; + + @ApiModelProperty(value = "岗位") + @TableField(exist = false) + private List positions; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java new file mode 100644 index 00000000..0fbfb49e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java @@ -0,0 +1,37 @@ +package com.adc.da.slrs.sarInstitution.service; + +import com.adc.da.slrs.sarInstitution.entity.SyncInstitution; +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zxy + * @since 2021-06-22 + */ +public interface ITsInstitutionService extends IService { + + /** + * 查询所有机构 + */ + List getInstitution(); + + List getInstitutionAndUser(); + + /** + * 批量插入机构 + * @param tsInstitutions:机构列表 + */ + void batchInsert(List tsInstitutions); + + public void parseInstitution(String json); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java new file mode 100644 index 00000000..34d82201 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java @@ -0,0 +1,127 @@ +package com.adc.da.slrs.sarInstitution.service.impl; + + +import com.adc.da.slrs.sarInstitution.dao.TsInstitutionDao; +import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser; +import com.adc.da.slrs.sarInstitution.entity.SyncInstitution; +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import com.adc.da.slrs.sarInstitution.entity.TsUserVO; +import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.sync.service.SyncUserService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Service +public class TsInstitutionServiceImpl extends ServiceImpl implements ITsInstitutionService { + @Autowired + private TsInstitutionDao tsInstitutionDao; + + /** + * 查询所有机构 + */ + @Override + public List getInstitution() { + //查询第一层机构 + QueryWrapper institutionQueryWrapper=new QueryWrapper<>(); + institutionQueryWrapper.eq("level",1); + List institutionRoot=tsInstitutionDao.selectList(institutionQueryWrapper); + for(TsInstitution tsInstitution:institutionRoot){ + tsInstitution.setChildren(recursionGetInstitution(tsInstitution)); + } + return institutionRoot; + } + /** + * 递归获取子机构 + * @param tsInstitution:父机构 + * @return List + */ + private List recursionGetInstitution(TsInstitution tsInstitution){ + List institutionObject=new ArrayList<>(); + QueryWrapper institutionQueryWrapper=new QueryWrapper<>(); + institutionQueryWrapper.eq("parent_id",tsInstitution.getId()); + institutionQueryWrapper.eq("level",tsInstitution.getLevel()+1); + List tsInstitutions=tsInstitutionDao.selectList(institutionQueryWrapper); + for(TsInstitution tsInstitutionNode:tsInstitutions){ + tsInstitutionNode.setChildren(recursionGetInstitution(tsInstitutionNode)); + institutionObject.add(tsInstitutionNode); + } + return institutionObject; + } + + /** + * 查询所有机构 + */ + @Override + public List getInstitutionAndUser() { + //查询第一层机构 + List institutionRoot=tsInstitutionDao.selectRootAndUser(); + for(TsInstitution tsInstitution:institutionRoot){ + tsInstitution.setDisabled(true); + tsInstitution.setChildren(recursionGetInstitutionAndUser(tsInstitution)); + for(TsUserVO user:tsInstitution.getUsers()){ + tsInstitution.getChildren().add(user); + } + } + return institutionRoot; + } + + /** + * 批量插入机构 + * @param tsInstitutions:机构列表 + */ + @Override + public void batchInsert(List tsInstitutions) { + if(tsInstitutions!=null&&tsInstitutions.size()>0){ + tsInstitutionDao.batchInsert(tsInstitutions); + } + } + + + /** + * 递归获取子机构 + * @param tsInstitution:父机构 + * @return List + */ + private List recursionGetInstitutionAndUser(TsInstitution tsInstitution){ + List institutionObject=new ArrayList<>(); + List tsInstitutions=tsInstitutionDao.selectAndUserByParent(tsInstitution.getId()); + + for(TsInstitution tsInstitutionNode:tsInstitutions){ + tsInstitutionNode.setDisabled(true); + tsInstitutionNode.setChildren(recursionGetInstitutionAndUser(tsInstitutionNode)); + institutionObject.add(tsInstitutionNode); + for(TsUserVO user:tsInstitutionNode.getUsers()){ + tsInstitutionNode.getChildren().add(user); + } + } + return institutionObject; + } + + public void parseInstitution(String json){ + JSONObject jsonObject= JSON.parseObject(json); + JSONArray results=jsonObject.getJSONArray("results"); + List syncInstitutions=results.toJavaList(SyncInstitution.class); + List tsInstitutions=SyncInstitution.syncToInstitution(syncInstitutions); + batchInsert(tsInstitutions); + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationForeignStandard.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationForeignStandard.java deleted file mode 100644 index b3e186a6..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationForeignStandard.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.adc.da.slrs.sarInterpretationStandard.entity; - -import com.adc.da.base.entity.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

    - * - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) -@ApiModel(value="SarInterpretationForeignStandard对象", description="") -public class SarInterpretationForeignStandard extends BaseEntity { - - private static final long serialVersionUID = 1L; - - private String standardNum; - - private String standardName; - - private String correspondDomesticStandard; - - private String specificItem; - - private String coreTechnicalRequirement; - - private String comparedDomesticStandard; - - private String complianceState; - - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationNationalStandard.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationNationalStandard.java deleted file mode 100644 index e2b4cd3e..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/entity/SarInterpretationNationalStandard.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.adc.da.slrs.sarInterpretationStandard.entity; - -import com.adc.da.base.entity.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

    - * - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) -@ApiModel(value="SarInterpretationNationalStandard对象", description="") -public class SarInterpretationNationalStandard extends BaseEntity { - - private static final long serialVersionUID = 1L; - - private String standardNum; - - private String standardName; - - private Integer lastVersionNum; - - private String specificItem; - - private String coreTechnicalRequirement; - - private String comparedWithPrevious; - - private String complianceState; - - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationForeignStandardServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationForeignStandardServiceImpl.java deleted file mode 100644 index f809c650..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationForeignStandardServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.adc.da.slrs.sarInterpretationStandard.service.impl; - -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationForeignStandard; -import com.adc.da.slrs.sarInterpretationStandard.dao.SarInterpretationForeignStandardDao; -import com.adc.da.slrs.sarInterpretationStandard.service.ISarInterpretationForeignStandardService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

    - * 服务实现类 - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Service -public class SarInterpretationForeignStandardServiceImpl extends ServiceImpl implements ISarInterpretationForeignStandardService { - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationNationalStandardServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationNationalStandardServiceImpl.java deleted file mode 100644 index 0fa0a2bf..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/impl/SarInterpretationNationalStandardServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.adc.da.slrs.sarInterpretationStandard.service.impl; - -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationNationalStandard; -import com.adc.da.slrs.sarInterpretationStandard.dao.SarInterpretationNationalStandardDao; -import com.adc.da.slrs.sarInterpretationStandard.service.ISarInterpretationNationalStandardService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

    - * 服务实现类 - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Service -public class SarInterpretationNationalStandardServiceImpl extends ServiceImpl implements ISarInterpretationNationalStandardService { - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarDetailedIdAttFileController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarDetailedIdAttFileController.java new file mode 100644 index 00000000..c209bb79 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarDetailedIdAttFileController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarDetailedIdAttFile; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

    + * 前端控制器 + *

    +* +* @author zzy +* @since 2021-06-24 +*/ +@RestController +@Api(description = "|SarDetailedIdAttFile|") +@RequestMapping("/api/sarLawsAttrDetailedList/sar-detailed-id-att-file") +public class SarDetailedIdAttFileController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarLawsAttrDetailedListController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarLawsAttrDetailedListController.java new file mode 100644 index 00000000..0fdb4d3f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/controller/SarLawsAttrDetailedListController.java @@ -0,0 +1,145 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.controller; + + +import com.adc.da.att.entity.AttFileEO; +import com.adc.da.att.service.IAttFileEOService; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarLawsAttrDetailedListDao; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.*; +import com.adc.da.slrs.sarLawsAttrDetailedList.service.ISarLawsAttrDetailedListService; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author zzy +* @since 2021-06-15 +*/ +@RestController +//@Api(description = "|SarLawsAttrDetailedList|") +@Api(tags = "标准法规清单详情") +@RequestMapping("/api/sarLawsAttrDetailedList/sar-laws-attr-detailed-list") +public class SarLawsAttrDetailedListController extends BaseController { + + @Autowired + private ISarLawsAttrDetailedListService iSarLawsAttrDetailedList; + @Autowired + private IAttFileEOService attFileEOService; + @Autowired + private SarLawsAttrDetailedListDao sarLawsAttrDetailedListDao; + + + + /** + * @param Page 页数 + * @param Size 大小 + * @param id 清单id + * @return ResponseMessage + * @author zzy + * date 2021-06-17 + **/ + @ApiOperation(value = "查询标准信息") + @GetMapping("/selectLawsById") + public ResponseMessage selectLawsById(@RequestParam(defaultValue = "1")int Page, @RequestParam(defaultValue = "10") int Size, String id,String standName,String responseUnit){ + List laws = iSarLawsAttrDetailedList.selectLaws(id,Page-1,Size,standName); + return Result.success("200",laws); + } + + @ApiOperation(value = "查询附件信息") + @GetMapping("/selectFile") + public ResponseMessage selectFile(String Id){ + AttFileEO attFileEO = attFileEOService.getFileInfo(Id); + return Result.success("200",attFileEO); + } + + /** + * @param Page 页数 + * @param Size 大小 + * @param id 清单id + * @return ResponseMessage + * @author zzy + * date 2021-06-17 + * 标准主表中的数据不全,先预留接口 + **/ + @ApiOperation(value = "检索和高级检索") + @PostMapping("/selectByStandId") + public ResponseMessage selectByStandId(@RequestParam(defaultValue = "1")int Page, @RequestParam(defaultValue = "10") int Size, String id){ + return null; + } + + + /** + * + * @param response 返回头 + * @param standExcelVo standExcelVo类 + * @return void + * @author 作者信息 + * date 2021-06-24 + **/ + @ApiOperation(value = "导出标准信息") + @RequestMapping("/ExportLawsById") + public void ExportLawsById(HttpServletResponse response, StandExcelVo standExcelVo){ + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + if(standExcelVo.getExportName()==null){ + standExcelVo.setExportName("标准导出信息"); + } + String fileName = URLEncoder.encode(standExcelVo.getExportName(), "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + List data = new ArrayList<>(); + if (CollectionUtils.isEmpty(standExcelVo.getIds())){ + List list= sarLawsAttrDetailedListDao.selectLawsId2(standExcelVo.getId()); + if (CollectionUtils.isEmpty(list)) return; + data=sarLawsAttrDetailedListDao.selectLawsById(list,null); + }else { + data=sarLawsAttrDetailedListDao.selectLawsById(standExcelVo.getIds(),null); + } + List standExcel=new ArrayList<>(); + for (LittleLawsDto littleLawsDto:data){ + StandExcelDto standExcelDto=StandExcelDto.builder() + .standNumber(littleLawsDto.getStandNumber()) + .standName(littleLawsDto.getStandName()) + .standEnName(littleLawsDto.getStandEnName()) + .responseUnit("责任部门") + .newCarTime("无字段") + .nowCarTime("无字段") + .typeApplicable("无字段") + .issueTime(littleLawsDto.getIssueTime()) + .textStatus(littleLawsDto.getTextStatus()) + .build(); + standExcel.add(standExcelDto); + } + EasyExcel.write(response.getOutputStream(), StandExcelDto.class).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(standExcel); + } catch (Exception e) { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + try { + response.getWriter().println(JSON.toJSONString(Result.error())); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } + + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarDetailedIdAttFileDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarDetailedIdAttFileDao.java new file mode 100644 index 00000000..9cd83d3d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarDetailedIdAttFileDao.java @@ -0,0 +1,18 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.dao; + +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarDetailedIdAttFile; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zzy + * @since 2021-06-24 + */ +@Mapper +public interface SarDetailedIdAttFileDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarLawsAttrDetailedListDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarLawsAttrDetailedListDao.java new file mode 100644 index 00000000..573d6904 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/dao/SarLawsAttrDetailedListDao.java @@ -0,0 +1,29 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.dao; + +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarLawsAttrDetailedList; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.LittleLawsDto; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.StandExcelDto; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zzy + * @since 2021-06-15 + */ +@Mapper +public interface SarLawsAttrDetailedListDao extends BaseMapper { + + //根据清单id,查出标准的id并排序 + List selectLawsId(String standId,Integer page,Integer size); + //根据标准id查出数据 + List selectLawsById(List LawsIds,String standName); + List selectLawsId2(String standId); + Boolean insertList(List sarLawsAttrDetailedLists); + Boolean deleteByStandId(String standId); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LawsDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LawsDto.java new file mode 100644 index 00000000..550a9cc0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LawsDto.java @@ -0,0 +1,38 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * //Dto,用于从标准主表中查询和检索信息 + * 主表还未完善需修改 + * + * @author ZhangZhiYuan + * date 2021-06-16 + */ +@Builder +@Data +public class LawsDto { + @ApiModelProperty(value = "主键") + private String id; + @ApiModelProperty(value = "标准编号") + private String standNumber; + @ApiModelProperty(value = "中文名称") + private String standName; + @ApiModelProperty(value = "英文名称") + private String standEnName; + @ApiModelProperty(value = "责任部门") + private String responseUnit; + @ApiModelProperty(value = "新车型实施日期") + private String newCarTime; + @ApiModelProperty(value = "在产车实施日期") + private String nowCarTime; + @ApiModelProperty(value = "适用车辆类型") + private String typeApplicable; + @ApiModelProperty(value = "发布日期") + private String issueTime; + @ApiModelProperty(value = "文本状态") + private String textStatus; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LittleLawsDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LittleLawsDto.java new file mode 100644 index 00000000..75a2b2d7 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/LittleLawsDto.java @@ -0,0 +1,26 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * //TODO 添加类、接口描述 + * 能从主表中查出的LawsDto所需要的数据 + * @author ZhangZhiYuan + * date 2021-06-22 + */ +@Data +public class LittleLawsDto { + @ApiModelProperty(value = "主键") + private String id; + @ApiModelProperty(value = "标准编号") + private String standNumber; + @ApiModelProperty(value = "中文名称") + private String standName; + @ApiModelProperty(value = "英文名称") + private String standEnName; + @ApiModelProperty(value = "发布日期") + private String issueTime; + @ApiModelProperty(value = "文本状态") + private String textStatus; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarDetailedIdAttFile.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarDetailedIdAttFile.java new file mode 100644 index 00000000..2705de77 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarDetailedIdAttFile.java @@ -0,0 +1,38 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * 上传的附件和清单id的关联表 + * @author zzy + * @since 2021-06-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarDetailedIdAttFile对象", description="") +public class SarDetailedIdAttFile extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId + private String id; + + @ApiModelProperty(value = "清单id") + private String detailedId; + + @ApiModelProperty(value = "文件id") + private String fileId; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java new file mode 100644 index 00000000..056d166f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java @@ -0,0 +1,43 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author zzy + * @since 2021-06-15 + */ +@Data +@Builder +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsAttrDetailedList对象", description="") +public class SarLawsAttrDetailedList extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId + private String id; + + @ApiModelProperty(value = "标准政策表的id") + private String standId; + + @ApiModelProperty(value = "标准清单主键") + private String detailedListId; + + @ApiModelProperty(value = "顺序") + private String number; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelDto.java new file mode 100644 index 00000000..5bf06dd4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelDto.java @@ -0,0 +1,45 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * //TODO 添加类、接口描述 + *用于导出标准数据信息 + * 需要后期修改 + * @author ZhangZhiYuan + * @date 2021-06-24 + */ +@Data +@Builder +public class StandExcelDto { + @ExcelProperty("标准编号") + @ApiModelProperty(value = "标准编号") + private String standNumber; + @ExcelProperty("中文名称") + @ApiModelProperty(value = "中文名称") + private String standName; + @ExcelProperty("英文名称") + @ApiModelProperty(value = "英文名称") + private String standEnName; + @ExcelProperty("责任部门") + @ApiModelProperty(value = "责任部门") + private String responseUnit; + @ExcelProperty("新车型实施日期") + @ApiModelProperty(value = "新车型实施日期") + private String newCarTime; + @ExcelProperty("在产车实施日期") + @ApiModelProperty(value = "在产车实施日期") + private String nowCarTime; + @ExcelProperty("适用车辆类型") + @ApiModelProperty(value = "适用车辆类型") + private String typeApplicable; + @ExcelProperty("发布日期") + @ApiModelProperty(value = "发布日期") + private String issueTime; + @ExcelProperty("文本状态") + @ApiModelProperty(value = "文本状态") + private String textStatus; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelVo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelVo.java new file mode 100644 index 00000000..1aba0157 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandExcelVo.java @@ -0,0 +1,25 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * //TODO 添加类、接口描述 + * + * @author ZhangZhiYuan + * @date 2021-06-24 + */ + +@Data +@ApiModel(description = "标准导出类") +public class StandExcelVo { + @ApiModelProperty("文件名") + String exportName; + @ApiModelProperty("标准ID列表") + List ids; + @ApiModelProperty("ID") + String id; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarDetailedIdAttFileService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarDetailedIdAttFileService.java new file mode 100644 index 00000000..a717eee5 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarDetailedIdAttFileService.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.service; + +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarDetailedIdAttFile; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 服务类 + *

    + * + * @author zzy + * @since 2021-06-24 + */ +public interface ISarDetailedIdAttFileService extends IService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarLawsAttrDetailedListService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarLawsAttrDetailedListService.java new file mode 100644 index 00000000..4edd0d76 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/ISarLawsAttrDetailedListService.java @@ -0,0 +1,25 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.service; + +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarLawsAttrDetailedList; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.LawsDto; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.StandExcelVo; +import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zzy + * @since 2021-06-15 + */ +public interface ISarLawsAttrDetailedListService extends IService { + + List selectLaws(String standId, Integer Page, Integer Size,String standName); + Boolean insertDetailedList(String id,String[] lawsIds); + Boolean updateDetailedLaws(String id,String[] lawsIds); + void exportExcel(HttpServletResponse response, StandExcelVo standExcelVo); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarDetailedIdAttFileServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarDetailedIdAttFileServiceImpl.java new file mode 100644 index 00000000..4f95994d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarDetailedIdAttFileServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.service.impl; + +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarDetailedIdAttFile; +import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarDetailedIdAttFileDao; +import com.adc.da.slrs.sarLawsAttrDetailedList.service.ISarDetailedIdAttFileService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 服务实现类 + *

    + * + * @author zzy + * @since 2021-06-24 + */ +@Service +public class SarDetailedIdAttFileServiceImpl extends ServiceImpl implements ISarDetailedIdAttFileService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java new file mode 100644 index 00000000..a6534f01 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java @@ -0,0 +1,104 @@ +package com.adc.da.slrs.sarLawsAttrDetailedList.service.impl; + +import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarLawsAttrDetailedListDao; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.LawsDto; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.LittleLawsDto; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarLawsAttrDetailedList; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.StandExcelVo; +import com.adc.da.slrs.sarLawsAttrDetailedList.service.ISarLawsAttrDetailedListService; +import com.adc.da.util.UUIDUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author zzy + * @since 2021-06-15 + */ +@Service +public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl implements ISarLawsAttrDetailedListService { + + @Autowired + SarLawsAttrDetailedListDao sarLawsAttrDetailedListDao; + //从主表中查询信息 + @Override + public List selectLaws(String standId, Integer Page, Integer Size,String standName) { + List lawsIds = sarLawsAttrDetailedListDao.selectLawsId(standId,Page,Size); + if (CollectionUtils.isEmpty(lawsIds)){ + return null; + } + List lawsDtoList = sarLawsAttrDetailedListDao.selectLawsById(lawsIds,standName); + List list = new ArrayList<>(); + for (LittleLawsDto laws:lawsDtoList){ + LawsDto lawsDto = LawsDto.builder() + .id(laws.getId()) + .standNumber(laws.getStandNumber()) + .standName(laws.getStandName()) + .standEnName(laws.getStandEnName()) + .issueTime(laws.getIssueTime()) + .textStatus(laws.getTextStatus()) + .build(); + list.add(lawsDto); + + } + return list; + } + + //向清单表和主表中的关联表插入信息 + @Override + public Boolean insertDetailedList(String standId, String[] lawsIds) { + if (!StringUtils.isEmpty(lawsIds)){ + try { + List attrDetailedLists = new ArrayList<>(); + int a=0; + for (String lawsId:lawsIds){ + SarLawsAttrDetailedList sarLawsAttrDetailedList = SarLawsAttrDetailedList.builder() + .id(UUIDUtils.randomUUID20()) + .standId(lawsId) + .detailedListId(standId) + .number(String.valueOf(a)) + .build(); + attrDetailedLists.add(sarLawsAttrDetailedList); + a++; + } + sarLawsAttrDetailedListDao.insertList(attrDetailedLists); + return true; + } catch (Exception e) { + e.printStackTrace(); + } + } + return false; + } + + //修改关联表中的信息,先删除后修改 + @Override + public Boolean updateDetailedLaws(String id, String[] lawsIds) { + try { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("detailed_list_id",id); + sarLawsAttrDetailedListDao.delete(wrapper); + insertDetailedList(id,lawsIds); + return true; + } catch (Exception e) { + return false; + } + } + + @Override + public void exportExcel(HttpServletResponse response, StandExcelVo standExcelVo){ + + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/controller/SarLawsDetailedListController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/controller/SarLawsDetailedListController.java new file mode 100644 index 00000000..94ac74de --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/controller/SarLawsDetailedListController.java @@ -0,0 +1,119 @@ +package com.adc.da.slrs.sarLawsDetailedList.controller; + + +import com.adc.da.base.web.BaseController; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarLawsDetailedList.entity.AddDetailedDto; +import com.adc.da.slrs.sarLawsDetailedList.entity.SarLawsDetailedList; +import com.adc.da.slrs.sarLawsDetailedList.entity.DetailedUpDto; +import com.adc.da.slrs.sarLawsDetailedList.service.impl.SarLawsDetailedListServiceImpl; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author szc +* @since 2021-06-15 +*/ +@RestController +//@Api(description = "|SarLawsDetailedList|") +@Api(tags = "标准法规清单") +@RequestMapping("/api/sarLawsDetailedList/sar-laws-detailed-list") +public class SarLawsDetailedListController extends BaseController { + + @Autowired + private SarLawsDetailedListServiceImpl sarLawsDetailedListService; + + /** + * @param idList 要进行删除的清单id + * @return ResponseMessage + * @author zzy + * date 2021-06-22 + **/ + @ApiOperation(value = "批量删除清单") + @PostMapping("/deleteListAll") + public ResponseMessage deleteListAll(String[] idList) { + if (idList == null || idList.length == 0) { + return Result.success("200", "要删除的数据为空"); + } else { + List list = new ArrayList<>(Arrays.asList(idList)); + String src = sarLawsDetailedListService.del(list); + return Result.success("200", src); + } + } + + /** + * @param addDetailedDto AddDetailed类 + * @return ResponseMessage + * @author zzy + * date 2021-06-22 + **/ + @ApiOperation(value = "增加清单") + @PostMapping("/insertList") + public ResponseMessage insertList(AddDetailedDto addDetailedDto) { + String src = sarLawsDetailedListService.add(addDetailedDto); + return Result.success(src); + } + + /** + * 动态查询 + * @param page 页数 + * @param pageSize 大小 + * @param sortKey 进行三个页面的分类1,2,3 + * @param countryArea 动态查询输入 国家清单 + * @param detailedList 列表 + * @param projectName 其他 + * @param detailedListName 动态查询输入 + * @return ResponseMessage + */ + @ApiOperation(value = "动态查询") + @GetMapping("/getAllStand") + public ResponseMessage getAllStand(Integer page,Integer pageSize, String sortKey, + String countryArea, String projectName, + String detailedList, + String detailedListName) { + + if ("null".equals(countryArea))countryArea=null; + if ("null".equals(projectName))projectName=null; + if ("null".equals(detailedList))detailedList=null; + if ("null".equals(detailedListName))detailedListName=null; + if (StringUtils.isNotEmpty(sortKey)) { + IPage publicList = sarLawsDetailedListService.AllSelectD(page, pageSize, sortKey, + countryArea, projectName, detailedList, detailedListName); + return Result.success("200", publicList); + } else { + return Result.success("200", null); + } + + } + + + /** + * @param detailedUpDto 修改的信息,通过类进行接收 + * @return ResponseMessage + * @author 张志远 + * date 2021-06-22 + **/ + @ApiOperation(value = "修改清单") + @PutMapping("/updateList") + public ResponseMessage updateList(@RequestBody DetailedUpDto detailedUpDto) { + + String src = sarLawsDetailedListService.updateList(detailedUpDto); + return Result.success("200",src,true); + } + + +} \ No newline at end of file diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/dao/SarLawsDetailedListDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/dao/SarLawsDetailedListDao.java new file mode 100644 index 00000000..88dbccd9 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/dao/SarLawsDetailedListDao.java @@ -0,0 +1,18 @@ +package com.adc.da.slrs.sarLawsDetailedList.dao; + +import com.adc.da.slrs.sarLawsDetailedList.entity.SarLawsDetailedList; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author szc + * @since 2021-06-15 + */ +@Mapper +public interface SarLawsDetailedListDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/AddDetailedDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/AddDetailedDto.java new file mode 100644 index 00000000..16549400 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/AddDetailedDto.java @@ -0,0 +1,48 @@ +package com.adc.da.slrs.sarLawsDetailedList.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Collection; + +/** + * //TODO 添加类、接口描述 + * + * @author ZhangZhiYuan + * @date 2021-06-24 + */ +@Data +public class AddDetailedDto { + + @ApiModelProperty(value = "国家或地区") + private String countryArea; + @ApiModelProperty(value = "项目名称") + private String projectName; + @ApiModelProperty(value = "清单类别") + private String detailedList; + @ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3") + private String sortKey; + @ApiModelProperty(value = "清单名称") + private String detailedListName; + + @ApiModelProperty(value = "清单详情") + private String remark; + + @ApiModelProperty(value = "清单状态,1为未发布,2为发布") + private String detailedListState; + @ApiModelProperty(value = "适用领域") + private String applicationScope; + @ApiModelProperty(value = "更新人") + private String updatePeople; + @ApiModelProperty(value = "上传的附件") + private MultipartFile[] files; + @ApiModelProperty(value = "要添加的清单id") + private String[] lawsIds; + + + public MultipartFile getFiles(int i) { + return files[i]; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java new file mode 100644 index 00000000..1888677e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java @@ -0,0 +1,62 @@ +package com.adc.da.slrs.sarLawsDetailedList.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * //TODO 添加类、接口描述 + * + * @author ZhangZhiYuan + * @date 2021-06-25 + */ +@Data +public class DetailedUpDto { + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "国家或地区") + private String countryArea; + + @ApiModelProperty(value = "项目名称") + private String projectName; + + @ApiModelProperty(value = "清单类别") + private String detailedList; + + @ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3") + private String sortKey; + + @ApiModelProperty(value = "清单名称") + private String detailedListName; + + @ApiModelProperty(value = "清单状态,1为未发布,2为发布") + private String detailedListState; + + @ApiModelProperty(value = "清单版本,默认V0") + private String detailedListVision; + + @ApiModelProperty(value = "适用领域") + private String applicationScope; + +// @ApiModelProperty(value = "附件id") +// private String fileId; + + + @ApiModelProperty(value = "更新时间") + private Date reNewTime; + + @ApiModelProperty(value = "更新人") + private String reNewPeople; + + @ApiModelProperty(value = "要添加的清单id") + private String[] lawsIds; + + @ApiModelProperty(value = "清单详情") + private String remark; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/IdListDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/IdListDto.java new file mode 100644 index 00000000..fed752b7 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/IdListDto.java @@ -0,0 +1,18 @@ +package com.adc.da.slrs.sarLawsDetailedList.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * //TODO 添加类、接口描述 + * + * @author ZhangZhiYuan + * @date 2021-06-22 + */ +@Data +public class IdListDto { + @ApiModelProperty("未符合项ID列表") + private List Ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/SarLawsDetailedList.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/SarLawsDetailedList.java new file mode 100644 index 00000000..63ad6523 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/SarLawsDetailedList.java @@ -0,0 +1,81 @@ +package com.adc.da.slrs.sarLawsDetailedList.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author szc + * @since 2021-06-15 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsDetailedList对象", description="") +public class SarLawsDetailedList extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("id") + private String id; + + @ApiModelProperty(value = "国家或地区") + @TableField("country_area") + private String countryArea; + + @ApiModelProperty(value = "项目名称") + @TableField("project_name") + private String projectName; + + @ApiModelProperty(value = "清单类别") + @TableField("detailed_list") + private String detailedList; + + @ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3") + @TableField("sort_key") + private String sortKey; + + @ApiModelProperty(value = "清单名称") + @TableField("detailed_list_name") + private String detailedListName; + + @ApiModelProperty(value = "清单状态,1为未发布,2为发布") + @TableField("detailed_list_state") + private String detailedListState; + + @ApiModelProperty(value = "清单版本,默认V0") + @TableField("detailed_list_vesion") + private String detailedListVision; + + @ApiModelProperty(value = "适用领域") + @TableField("application_scope") + private String applicationScope; + + @ApiModelProperty(value = "清单列表") + @TableField("remark") + private String remark; + + @ApiModelProperty(value = "更新时间") + @TableField("update_time") + private Date updateTime; + + @ApiModelProperty(value = "更新人") + @TableField("update_people") + private String updatePeople; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/ISarLawsDetailedListService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/ISarLawsDetailedListService.java new file mode 100644 index 00000000..98b065d9 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/ISarLawsDetailedListService.java @@ -0,0 +1,29 @@ +package com.adc.da.slrs.sarLawsDetailedList.service; + +import com.adc.da.slrs.sarLawsDetailedList.entity.AddDetailedDto; +import com.adc.da.slrs.sarLawsDetailedList.entity.SarLawsDetailedList; +import com.adc.da.slrs.sarLawsDetailedList.entity.DetailedUpDto; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + + +/** + *

    + * 服务类 + *

    + * + * @author szc + * @since 2021-06-15 + */ +public interface ISarLawsDetailedListService extends IService { + String del(List idList); + String add(AddDetailedDto addDetailedDto); + IPage AllSelectD(Integer pages, Integer size, String sortKey, + String countryArea,String projectName, + String detailedList, String detailedListName); +// IPage selectAllP(Integer pages,Integer size,String sortKey); + + String updateList(DetailedUpDto detailedUpDto); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java new file mode 100644 index 00000000..b4793979 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java @@ -0,0 +1,157 @@ +package com.adc.da.slrs.sarLawsDetailedList.service.impl; + +import com.adc.da.att.service.IAttFileEOService; +import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarDetailedIdAttFileDao; +import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarLawsAttrDetailedListDao; +import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarLawsAttrDetailedList; +import com.adc.da.slrs.sarLawsAttrDetailedList.service.impl.SarLawsAttrDetailedListServiceImpl; +import com.adc.da.slrs.sarLawsDetailedList.dao.SarLawsDetailedListDao; +import com.adc.da.slrs.sarLawsDetailedList.entity.AddDetailedDto; +import com.adc.da.slrs.sarLawsDetailedList.entity.SarLawsDetailedList; +import com.adc.da.slrs.sarLawsDetailedList.entity.DetailedUpDto; +import com.adc.da.slrs.sarLawsDetailedList.service.ISarLawsDetailedListService; +import com.adc.da.util.UUIDUtils; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author szc + * @since 2021-06-15 + */ +@Service +public class SarLawsDetailedListServiceImpl extends ServiceImpl implements ISarLawsDetailedListService { + + @Autowired + public SarLawsDetailedListDao sarLawsDetailedListDao; + @Autowired + public IAttFileEOService iAttFileEOService; + @Autowired + private SarLawsAttrDetailedListDao sarLawsAttrDetailedListDao; + @Autowired + private SarLawsAttrDetailedListServiceImpl service; + + @Override + public String del(List idList) { + QueryWrapper wrapper = new QueryWrapper<>(); + for (String id:idList){ + wrapper.eq("detailed_list_id",id); + sarLawsAttrDetailedListDao.delete(wrapper); + } + sarLawsDetailedListDao.deleteBatchIds(idList); + return "删除成功"; + } + + @Override + public String add(AddDetailedDto addDetailedDto) { + try { + SarLawsDetailedList sarLawsDetailedList = SarLawsDetailedList.builder() + .id(UUIDUtils.randomUUID20()) + .sortKey(addDetailedDto.getSortKey()) + .detailedListName(addDetailedDto.getDetailedListName()) + .detailedListState("1") + .detailedListVision("v0") + .applicationScope(addDetailedDto.getApplicationScope()) + .updateTime(new Date()) + .updatePeople(addDetailedDto.getUpdatePeople()) + .remark(addDetailedDto.getRemark()) + .build(); + switch (addDetailedDto.getSortKey()) { + case "1": + sarLawsDetailedList.setCountryArea(addDetailedDto.getCountryArea()); + break; + case "2": + sarLawsDetailedList.setProjectName(addDetailedDto.getProjectName()); + break; + case "3": + sarLawsDetailedList.setDetailedList(addDetailedDto.getDetailedList()); + break; + default: + break; + } + sarLawsDetailedListDao.insert(sarLawsDetailedList); + service.insertDetailedList(sarLawsDetailedList.getId(),addDetailedDto.getLawsIds()); + + } catch (Exception e) { + e.printStackTrace(); + } + return "添加成功"; + } + + + @Override + public IPage AllSelectD(Integer pages, Integer size, String sortKey, + String countryArea,String projectName, + String detailedList,String detailedListName) { + QueryWrapper wrapper = new QueryWrapper<>(); + if ("1".equals(sortKey) ) { + wrapper.like(StringUtils.isNotEmpty(countryArea),"country_area",countryArea). + like(StringUtils.isNotEmpty(detailedListName),"detailed_list_name",detailedListName); + }else if ("2".equals(sortKey)) { + wrapper.like(StringUtils.isNotEmpty(projectName),"project_name",projectName). + like(StringUtils.isNotEmpty(detailedListName),"detailed_list_name",detailedListName); + + }else if ("3".equals(sortKey)){ + wrapper.like(StringUtils.isNotEmpty(detailedList),"detailed_list_state",detailedList). + like(StringUtils.isNotEmpty(detailedListName),"detailed_list_name",detailedListName); + } + wrapper.eq("sort_key",sortKey); + Page page = new Page<>(pages, size); + IPage userIPage = sarLawsDetailedListDao.selectPage(page, wrapper); + System.out.println("总条数" + userIPage.getTotal()); + System.out.println("总页数" + userIPage.getPages()); + return userIPage; + } + + @Override + public String updateList(DetailedUpDto detailedUpDto) { + SarLawsDetailedList list = sarLawsDetailedListDao.selectById(detailedUpDto.getId()); + //国家或地区 + if (StringUtils.isBlank(detailedUpDto.getCountryArea())) list.setCountryArea(null); + else if ("null".equals(detailedUpDto.getCountryArea())); + else list.setCountryArea(detailedUpDto.getCountryArea()); + //项目名称 + if (StringUtils.isBlank(detailedUpDto.getProjectName())) list.setProjectName(null); + else if ("null".equals(detailedUpDto.getProjectName())); + else list.setProjectName(detailedUpDto.getProjectName()); + //清单类别 + if (StringUtils.isBlank(detailedUpDto.getDetailedList())) list.setDetailedList(null); + else if ("null".equals(detailedUpDto.getDetailedList())); + else list.setDetailedList(detailedUpDto.getDetailedList()); + //清单名称 + if (StringUtils.isBlank(detailedUpDto.getDetailedListName())) list.setDetailedListName(null); + else if ("null".equals(detailedUpDto.getDetailedListName())); + else list.setDetailedListName(detailedUpDto.getDetailedListName()); + //适用领域 + if (StringUtils.isBlank(detailedUpDto.getApplicationScope())) list.setApplicationScope(null); + else if ("null".equals(detailedUpDto.getApplicationScope())); + else list.setApplicationScope(detailedUpDto.getApplicationScope()); + //清单详情 + if (StringUtils.isBlank(detailedUpDto.getRemark())) list.setRemark(null); + else if ("null".equals(detailedUpDto.getRemark())); + list.setRemark(detailedUpDto.getRemark()); + //更新时间 + list.setUpdateTime(new Date()); + //更新人 + if (StringUtils.isBlank(detailedUpDto.getReNewPeople())) list.setUpdatePeople(null); + else if ("null".equals(detailedUpDto.getReNewPeople())); + else list.setUpdatePeople(detailedUpDto.getReNewPeople()); + + sarLawsDetailedListDao.updateById(list); + service.updateDetailedLaws(detailedUpDto.getId(), detailedUpDto.getLawsIds()); + return "修改成功"; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java index 35fab456..34537793 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java @@ -9,11 +9,10 @@ import com.adc.da.sys.common.SelectionResult; import com.adc.da.sys.service.IDicTypeEOService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import com.adc.da.slrs.sarMenu.entity.SarMenu; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; import java.util.ArrayList; @@ -59,7 +58,9 @@ public class SarMenuController extends BaseController { for (SarMenu resultMenu : resultList) { if ("gxhbq".equals(resultMenu.getId())) { // 查出配置管理项 + System.out.println(resultMenu); List getDicList = dicTypeEOService.getDicTypeByDicId("ZHFKGAACTNUCN9AR5YBM"); + System.out.println(getDicList); if (getDicList != null && !getDicList.isEmpty()) { for (SelectionResult selectionResult : getDicList) { int i=0; @@ -76,6 +77,33 @@ public class SarMenuController extends BaseController { } } resultList.addAll(listDic); + System.out.println("listDic"); + System.out.println(listDic); return Result.success(resultList); } + + @ApiOperation("查询所有菜单") + @GetMapping + public ResponseMessage> getAll(){ + List sarMenus=sarMenuEOService.getAll(); + return Result.success(sarMenus); + } + + @ApiOperation("添加菜单") + @PostMapping("/add") + public ResponseMessage addMenu(@RequestBody SarMenu sarMenu){ + return sarMenuEOService.addMenu(sarMenu); + } + + @ApiOperation("编辑菜单") + @PutMapping + public ResponseMessage updateMenu(@Validated(SarMenu.update.class) @RequestBody SarMenu sarMenu){ + return sarMenuEOService.updateMenu(sarMenu); + } + + @ApiOperation("删除菜单") + @DeleteMapping + public ResponseMessage delMenu(@RequestParam String menuId){ + return sarMenuEOService.delMenu(menuId); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java index f2ea1c02..97433f7b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java @@ -4,6 +4,7 @@ import com.adc.da.base.entity.BaseEntity; import com.adc.da.utils.treetool.annotation.TreeNodeId; import com.adc.da.utils.treetool.annotation.TreeNodeName; import com.adc.da.utils.treetool.annotation.TreeNodeParentId; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.util.Date; @@ -17,6 +18,8 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.springframework.data.annotation.Transient; +import javax.validation.constraints.NotNull; + /** *

    * @@ -30,13 +33,15 @@ import org.springframework.data.annotation.Transient; @Accessors(chain = true) @ApiModel(value="SarMenu对象", description="") public class SarMenu extends BaseEntity { + public interface update{ + } private static final long serialVersionUID = 1L; - @TreeNodeId + @NotNull(message = "id不能为空",groups = {update.class}) @ApiModelProperty(value = "主键") - @TableId("ID") + @TableId(value = "ID",type = IdType.UUID) private String id; @ApiModelProperty(value = "标准法规划分") @@ -61,6 +66,10 @@ public class SarMenu extends BaseEntity { @TableField("DISPLAY_SEQ") private Integer displaySeq; + @ApiModelProperty(value = "路径") + @TableField("HREF") + private String href; + @ApiModelProperty(value = "是否有效") @TableField("VALID_FLAG") private Integer validFlag; @@ -77,6 +86,10 @@ public class SarMenu extends BaseEntity { @TableField("REMARKS") private String remarks; + @ApiModelProperty(value = "子菜单") + @TableField(exist = false) + private List children; + @TableField(exist=false) private List roleIds; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java index cfed4f02..73fcc03b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java @@ -1,5 +1,6 @@ package com.adc.da.slrs.sarMenu.service; +import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,4 +25,44 @@ public interface ISarMenuService extends IService { List queryRoleMenuIdList(String sordDivide, String menuId) throws Exception; List getChildMenuList(String menuId); + + /** + * 通过ids查询menus + * @param menuIds:菜单ID + * @return List + */ + List getMenusByIds(List menuIds); + + /** + * 查询所有菜单 + */ + List getAll(); + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage addMenu(SarMenu sarMenu); + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage updateMenu(SarMenu sarMenu); + + /** + * 删除菜单 + * @param menuId :菜单ID + * @return ResponseMessage + */ + ResponseMessage delMenu(String menuId); + + /** + * 通过Ids查询menu + * @param menuIds :菜单Ids + * @return List + */ + List getMenuByIds(List menuIds); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java index 2963c6dc..609f7e67 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java @@ -1,5 +1,7 @@ package com.adc.da.slrs.sarMenu.service.impl; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; import com.adc.da.login.util.UserUtils; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.dao.SarMenuDao; @@ -152,4 +154,117 @@ public class SarMenuServiceImpl extends ServiceImpl impleme } return menuIds; } + + /** + * 通过ids查询menus + * @param menuIds:菜单ID + * @return List + */ + @Override + public List getMenusByIds(List menuIds) { + QueryWrapper menuQueryWrapper=new QueryWrapper<>(); + menuQueryWrapper.in("id",menuIds); + return dao.selectList(menuQueryWrapper); + } + + /** + * 查询所有菜单 + */ + @Override + public List getAll() { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.isNull("PARENT_ID"); + List sarMenus=dao.selectList(sarMenuQueryWrapper); + for(SarMenu sarMenu:sarMenus){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return sarMenus; + } + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage addMenu(SarMenu sarMenu) { + if(sarMenu.getParentId()!=null){ + SarMenu parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("该父菜单不存在"); + } + } + dao.insert(sarMenu); + return Result.success(); + } + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updateMenu(SarMenu sarMenu) { + SarMenu oldMenu=dao.selectById(sarMenu.getId()); + if(oldMenu==null){ + return Result.error("该菜单不存在"); + } + if(sarMenu.getParentId()!=null){ + SarMenu parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("父节点不存在"); + } + } + dao.updateById(sarMenu); + return Result.success(); + } + + /** + * 删除菜单 + * @param menuId :菜单ID + * @return ResponseMessage + */ + @Override + public ResponseMessage delMenu(String menuId) { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.eq("parent_id",menuId); + List children=dao.selectList(sarMenuQueryWrapper); + if(children!=null&&children.size()>0){ + return Result.error("该菜单有子节点,无法删除"); + } + dao.deleteById(menuId); + return Result.success(); + } + + /** + * 通过Ids查询menu + * @param menuIds :菜单Ids + * @return List + */ + @Override + public List getMenuByIds(List menuIds) { + if(menuIds!=null&&menuIds.size()>0){ + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.in("id",menuIds); + return dao.selectList(sarMenuQueryWrapper); + } + return new ArrayList<>(); + } + + /** + * 递归调用获取子节点 + * @param parent:父节点 + * @return List + */ + private List recursionGetChildren(SarMenu parent){ + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.eq("PARENT_ID",parent.getId()); + List children=dao.selectList(sarMenuQueryWrapper); + for(SarMenu sarMenu:children){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return children; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserPersonalMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserPersonalMenuController.java new file mode 100644 index 00000000..6e99f43f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserPersonalMenuController.java @@ -0,0 +1,43 @@ +package com.adc.da.slrs.sarPersonalCenter.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO; +import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-22 +*/ +@RestController +@Api(tags = "福田标准法规--个人中心--我的板块") +@RequestMapping("/${restPath}/sarPersonalCenter/sar-user-personal-menu") +public class SarUserPersonalMenuController extends BaseController { + + @Autowired + private ISarUserPersonalMenuService iSarUserPersonalMenuService; + + @ApiOperation("获取用户的板块列表") + @GetMapping("/getList") + public ResponseMessage> getList(SarUserPersonalMenuEO eo){ + return iSarUserPersonalMenuService.getUserPersonalMenu(eo); + } + + @ApiOperation("更新用户的板块列表") + @PostMapping("/update") + public ResponseMessage> update(@RequestBody SarUserPersonalMenuEO eo){ + return iSarUserPersonalMenuService.updateUserPersonalMenu(eo); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserStarController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserStarController.java new file mode 100644 index 00000000..a32b041d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/controller/SarUserStarController.java @@ -0,0 +1,67 @@ +package com.adc.da.slrs.sarPersonalCenter.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStarEO; +import com.adc.da.slrs.sarPersonalCenter.service.ISarUserStarService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStar; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import java.util.Date; + +/** + *

    + * 前端控制器 + *

    + * + * @author zyl + * @since 2021-06-21 + */ +@RestController +@Api(tags = "福田标准法规--个人中心--我的收藏") +@RequestMapping("/${restPath}/sarPersonalCenter/sar-user-star") +public class SarUserStarController extends BaseController { + + @Autowired + private ISarUserStarService iSarUserStarService; + + @ApiOperation("获取用户收藏列表") + @GetMapping("/getList") + public ResponseMessage> getUserStarList(SarUserStarEO sarUserStarEO) { + return iSarUserStarService.getUserStarList(sarUserStarEO); + } + + @ApiOperation("批量删除用户收藏") + @PostMapping("/deleteList") + public ResponseMessage> deleteList(@RequestBody SarUserStarEO sarUserStars) { + return iSarUserStarService.deleteList(sarUserStars); + } + + @ApiOperation("删除用户收藏") + @PostMapping("/delete") + public ResponseMessage deleteById(@RequestBody SarUserStarEO sarUserStars) { + return iSarUserStarService.deleteById(sarUserStars); + } + + @ApiOperation("添加用户收藏") + @PostMapping("/addStar") + public ResponseMessage addStar(@RequestBody SarUserStar sarUserStar) { + return iSarUserStarService.addStar(sarUserStar); + } + + @ApiOperation("获取当前用户是否收藏该页面") + @GetMapping("/isStar") + public ResponseMessage isStar(String userId, String url) { + return iSarUserStarService.isStar(userId,url); + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserPersonalMenuDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserPersonalMenuDao.java new file mode 100644 index 00000000..e11efb48 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserPersonalMenuDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarPersonalCenter.dao; + +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface SarUserPersonalMenuDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserStarDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserStarDao.java new file mode 100644 index 00000000..ede9070d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/dao/SarUserStarDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarPersonalCenter.dao; + +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStar; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-21 + */ +public interface SarUserStarDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java new file mode 100644 index 00000000..76fab518 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java @@ -0,0 +1,49 @@ +package com.adc.da.slrs.sarPersonalCenter.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarUserPersonalMenu对象", description="") +public class SarUserPersonalMenu extends BaseEntity { + + @TableId(type = IdType.UUID) + @ApiModelProperty("id") + private String id; + + private String menuName; + + private String menuId; + + private Integer state; + + private String userId; + + private String menuUrl; + + + public SarUserPersonalMenu(String menuName, String menuId, String menuUrl) { + this.menuName = menuName; + this.menuId = menuId; + this.menuUrl = menuUrl; + } + + public SarUserPersonalMenu() { + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenuEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenuEO.java new file mode 100644 index 00000000..f456bc5a --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenuEO.java @@ -0,0 +1,34 @@ +package com.adc.da.slrs.sarPersonalCenter.entity; + +import com.adc.da.base.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarUserPersonalMenu批量操作对象", description="") +public class SarUserPersonalMenuEO extends SarUserPersonalMenu { + + @ApiModelProperty("当页数量") + private Integer size=20; + + @ApiModelProperty("当前页数") + private Integer current=1; + + @ApiModelProperty("操作信息") + private List sarUserPersonalMenus; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStar.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStar.java new file mode 100644 index 00000000..f49bc35e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStar.java @@ -0,0 +1,55 @@ +package com.adc.da.slrs.sarPersonalCenter.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.time.LocalDateTime; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-21 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel(value="SarUserStar对象", description="") +public class SarUserStar extends BaseEntity { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty(value = "收藏名") + private String name; + + @ApiModelProperty(value = "收藏类型") + private String type; + + @ApiModelProperty(value = "收藏具体信息") + private String info; + + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "所属模块") + private String modular; + + @ApiModelProperty(value = "创建时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value = "该收藏对应的路由") + private String url; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStarEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStarEO.java new file mode 100644 index 00000000..a0c478bc --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserStarEO.java @@ -0,0 +1,25 @@ +package com.adc.da.slrs.sarPersonalCenter.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +@ApiModel(value="SarUserStar批量操作对象", description="") +public class SarUserStarEO extends SarUserStar{ + + @ApiModelProperty("当页数量") + private Integer size=20; + + @ApiModelProperty("当前页数") + private Integer current=1; + + @ApiModelProperty("操作信息") + private List sarUserStars; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java new file mode 100644 index 00000000..e29c294a --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java @@ -0,0 +1,33 @@ +package com.adc.da.slrs.sarPersonalCenter.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface ISarUserPersonalMenuService extends IService { + + public ResponseMessage> getUserPersonalMenu(SarUserPersonalMenuEO eo); + + public ResponseMessage> updateUserPersonalMenu(SarUserPersonalMenuEO eo); + + public void updateUserPersonalMenuForRole(List menus, String userId); + + /** + * 更新用户权限 + * @param roleId:角色ID + */ + void setPersonalMenu(String roleId); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserStarService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserStarService.java new file mode 100644 index 00000000..0ac178b2 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserStarService.java @@ -0,0 +1,25 @@ +package com.adc.da.slrs.sarPersonalCenter.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStar; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStarEO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.RequestBody; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-21 + */ +public interface ISarUserStarService extends IService { + public ResponseMessage> getUserStarList(SarUserStarEO sarUserStarEO); + public ResponseMessage> deleteList(@RequestBody SarUserStarEO sarUserStars); + public ResponseMessage deleteById(@RequestBody SarUserStarEO sarUserStars); + public ResponseMessage addStar(@RequestBody SarUserStar sarUserStar); + public ResponseMessage isStar(String userId, String url); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java new file mode 100644 index 00000000..79226046 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java @@ -0,0 +1,124 @@ +package com.adc.da.slrs.sarPersonalCenter.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; +import com.adc.da.slrs.sarPersonalCenter.dao.SarUserPersonalMenuDao; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO; +import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService; +import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Service +public class SarUserPersonalMenuServiceImpl extends ServiceImpl implements ISarUserPersonalMenuService { + @Autowired + @Lazy + private TsUserServiceImpl tsUserService; + + @Override + public ResponseMessage> getUserPersonalMenu(SarUserPersonalMenuEO eo) { + if(eo.getUserId()==null||eo.getUserId().trim().length()==0){ + return Result.error("userId不能为空"); + } + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("user_id",eo.getUserId()); + if(eo.getMenuUrl()!=null)queryWrapper.eq("menu_url",eo.getMenuUrl()); + if(eo.getMenuName()!=null&&eo.getMenuName().trim().length()>0)queryWrapper.like("menu_name",eo.getMenuName().trim()); + if(eo.getState()!=null)queryWrapper.eq("state",eo.getState()); + + IPage iPage=new Page<>(eo.getCurrent(),eo.getSize()); + IPage page = page(iPage, queryWrapper); + while (page.getRecords().remove(null)); + return Result.success(page); + } + + @Override + public ResponseMessage> updateUserPersonalMenu(SarUserPersonalMenuEO eo) { + if(eo.getUserId()==null||eo.getUserId().trim().length()==0){ + return Result.error("userId不能为空"); + } + List menus=new ArrayList<>(); + if(eo.getSarUserPersonalMenus()!=null){ + for (SarUserPersonalMenu menu : eo.getSarUserPersonalMenus()) { + if(menu.getId()!=null&&menu.getId().trim().length()>0&&menu.getState()!=null){ + + SarUserPersonalMenu sarUserPersonalMenu=new SarUserPersonalMenu(); + sarUserPersonalMenu.setState(menu.getState()==0?0:1); + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("user_id",eo.getUserId()); + queryWrapper.eq("id",menu.getId()); + + update(sarUserPersonalMenu,queryWrapper); + } + } + } + + return getUserPersonalMenu(eo); + } + + @Override + public void updateUserPersonalMenuForRole(List menuList,String userId) { + Set ids=new HashSet<>(); + + for (SarMenu menu : menuList) { + if(menu.getId()!=null&&menu.getId().trim().length()>0){ + + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("user_id",userId); + queryWrapper.eq("menu_id",menu.getId()); + List menus = getBaseMapper().selectList(queryWrapper); + if (menus.size()>0) { + ids.add(menus.get(0).getId()); + continue; + } + + SarUserPersonalMenu sarUserPersonalMenu=new SarUserPersonalMenu(); + sarUserPersonalMenu.setMenuName(menu.getMenuName()); + sarUserPersonalMenu.setMenuUrl(menu.getHref()); + sarUserPersonalMenu.setUserId(userId); + sarUserPersonalMenu.setMenuId(menu.getId()); + sarUserPersonalMenu.setState(0); + + getBaseMapper().insert(sarUserPersonalMenu); + ids.add(sarUserPersonalMenu.getId()); + } + } + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.notIn("id",ids); + queryWrapper.eq("user_id",userId); + getBaseMapper().delete(queryWrapper); + + } + + /** + * 更新用户权限 + * @param roleId:角色ID + */ + @Async + @Override + public void setPersonalMenu(String roleId) { + List userIds=tsUserService.getUserIdsByRoleId(roleId); + for(String userId:userIds){ + List menus=tsUserService.getMenusByUserId(userId); + updateUserPersonalMenuForRole(menus,userId); + } + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserStarServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserStarServiceImpl.java new file mode 100644 index 00000000..890d219d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserStarServiceImpl.java @@ -0,0 +1,125 @@ +package com.adc.da.slrs.sarPersonalCenter.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStar; +import com.adc.da.slrs.sarPersonalCenter.dao.SarUserStarDao; +import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStarEO; +import com.adc.da.slrs.sarPersonalCenter.service.ISarUserStarService; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.Date; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-21 + */ +@Service +public class SarUserStarServiceImpl extends ServiceImpl implements ISarUserStarService { + + @Autowired + private ISarUserStarService iSarUserStarService; + + @Override + public ResponseMessage> getUserStarList(SarUserStarEO sarUserStarEO) { + if (sarUserStarEO.getUserId() == null) { + return Result.error("userId不能为空"); + } else { + if (sarUserStarEO.getSize() == null || sarUserStarEO.getSize() <= 0) sarUserStarEO.setSize(20); + if (sarUserStarEO.getCurrent() == null || sarUserStarEO.getCurrent() <= 0) sarUserStarEO.setCurrent(1); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("user_id", sarUserStarEO.getUserId()); + if(sarUserStarEO.getType()!=null)wrapper.like("type",sarUserStarEO.getType()); + if(sarUserStarEO.getName()!=null)wrapper.like("name",sarUserStarEO.getName()); + if(sarUserStarEO.getModular()!=null)wrapper.like("modular",sarUserStarEO.getModular()); + if(sarUserStarEO.getInfo()!=null)wrapper.like("info",sarUserStarEO.getInfo()); + if(sarUserStarEO.getUrl()!=null)wrapper.like("url",sarUserStarEO.getUrl()); + IPage page = iSarUserStarService.page(new Page<>(sarUserStarEO.getCurrent(), sarUserStarEO.getSize()), wrapper); + while (page.getRecords().remove(null)) ; + return Result.success(page); + } + } + + + @Override + public ResponseMessage> deleteList(@RequestBody SarUserStarEO sarUserStars) { + if (sarUserStars.getUserId() == null) { + return Result.error("userId不能为空"); + } + if (!(sarUserStars.getSarUserStars() == null || sarUserStars.getSarUserStars().size() <= 0)) { + for (SarUserStar sarUserStar : sarUserStars.getSarUserStars()) { + if (sarUserStar.getId() != null) { + QueryWrapper sarUserStarQueryWrapper = new QueryWrapper<>(); + sarUserStarQueryWrapper.eq("id", sarUserStar.getId()); + sarUserStarQueryWrapper.eq("user_id", sarUserStars.getUserId()); + iSarUserStarService.remove(sarUserStarQueryWrapper); + } + } + } + return getUserStarList(sarUserStars); + } + + @Override + public ResponseMessage deleteById(@RequestBody SarUserStarEO sarUserStars) { + if (sarUserStars.getUserId() == null) { + return Result.error("userId不能为空"); + } + if ((sarUserStars.getId() == null && sarUserStars.getUrl() == null)) { + return Result.error("url或id不能为空"); + } + QueryWrapper sarUserStarQueryWrapper = new QueryWrapper<>(); + if(sarUserStars.getId()!=null)sarUserStarQueryWrapper.eq("id", sarUserStars.getId()); + else sarUserStarQueryWrapper.eq("url", sarUserStars.getUrl()); + sarUserStarQueryWrapper.eq("user_id", sarUserStars.getUserId()); + + + return Result.success(iSarUserStarService.remove(sarUserStarQueryWrapper)); + } + + @Override + public ResponseMessage addStar(@RequestBody SarUserStar sarUserStar) { + if (sarUserStar.getUserId() == null) { + return Result.error("userId不能为空"); + } + if (sarUserStar.getUrl() == null + && sarUserStar.getModular() == null + && sarUserStar.getName() == null + && sarUserStar.getType() == null) { + return Result.error("数据有误"); + } + + sarUserStar.setId(null); + sarUserStar.setCreateTime(new Date()); + + return Result.success(iSarUserStarService.save(sarUserStar)); + } + + @Override + public ResponseMessage isStar(String userId, String url) { + if (userId == null) { + return Result.error("userId不能为空"); + } + if (url == null) { + return Result.error("url不能为空"); + } + + QueryWrapper sarUserStarQueryWrapper = new QueryWrapper<>(); + sarUserStarQueryWrapper.eq("user_id", userId); + sarUserStarQueryWrapper.eq("url", url); + int count = iSarUserStarService.count(sarUserStarQueryWrapper); + + return Result.success(count > 0); + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java new file mode 100644 index 00000000..9f08a298 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java @@ -0,0 +1,76 @@ +package com.adc.da.slrs.sarPosition.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarPosition.entity.TsPositionRoleVO; +import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarRole.entity.TsRole; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.validation.Valid; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-23 +*/ +@RestController +@Api(tags = "|岗位管理|") +@RequestMapping("/api/sarPosition/position") +public class TsPositionController extends BaseController { + @Autowired + private ITsPositionService tsPositionService; + + /** + * 查询岗位(可通过name筛选) + * @param tsPosition:筛选信息 + */ + @ApiOperation("查询岗位") + @GetMapping + public ResponseMessage> getPosition(TsPosition tsPosition){ + List positions=tsPositionService.getPosition(tsPosition); + return Result.success(positions); + } + + @ApiOperation("新增岗位") + @PostMapping + public ResponseMessage addPosition(@Validated(TsPosition.insert.class) TsPosition tsPosition){ + return tsPositionService.addPosition(tsPosition); + } + + @ApiOperation("配置角色") + @PostMapping("/role") + public ResponseMessage> setRole(@Valid @RequestBody TsPositionRoleVO tsPositionRoleVO){ + return tsPositionService.setRole(tsPositionRoleVO); + } + + @ApiOperation("查询角色") + @GetMapping("/role") + public ResponseMessage> getRole(@RequestParam String positionId){ + List roles=tsPositionService.getRole(positionId); + return Result.success(roles); + } + + @ApiOperation("编辑岗位") + @PutMapping + public ResponseMessage updatePosition(@Validated(TsPosition.update.class) TsPosition tsPosition){ + return tsPositionService.updatePosition(tsPosition); + } + + @ApiOperation("删除岗位") + @DeleteMapping + public ResponseMessage deletePosition(@RequestParam String positionId){ + return tsPositionService.deletePosition(positionId); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java new file mode 100644 index 00000000..d5989e46 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java @@ -0,0 +1,74 @@ +package com.adc.da.slrs.sarPosition.dao; + +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-23 + */ +public interface TsPositionDao extends BaseMapper { + + /** + * 查询岗位绑定的角色ID + * @param positionId:岗位ID + * @return List:角色ID + */ + @Select("select role_id from ts_position_role where position_id=#{positionId}") + List getRoleId(String positionId); + + /** + * 绑定角色 + * @param positionId:岗位ID + * @param roleId:角色ID + */ + @Insert("insert into ts_position_role (position_id,role_id) values (#{positionId},#{roleId})") + void insertRole(String positionId, String roleId); + + /** + * 解绑角色 + * @param positionId:岗位ID + * @param roleId:角色ID + */ + @Delete("delete from ts_position_role where position_id=#{positionId} and role_id=#{roleId}") + void deleteRole(String positionId, String roleId); + + /** + * 查询岗位绑定的角色信息 + * @param positionId:岗位ID + * @return List + */ + List getRole(String positionId); + + /** + * 查询岗位以及绑定的角色信息 + * @param tsPosition:岗位信息 + * @return List + */ + List selectPositionAndRole(TsPosition tsPosition); + + /** + * 通过岗位列表查询绑定的角色列表 + * @param positionIds:岗位列表 + * @return List + */ + List getRoleIdsByPositionIds(List positionIds); + + /** + * 通过roleId查询岗位ID列表 + * @param roleId:角色ID + * @return List + */ + @Select("select position_id from ts_position_role where role_id=#{roleId}") + List getPositionIdsByRoleId(String roleId); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java new file mode 100644 index 00000000..f6f7bab0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java @@ -0,0 +1,80 @@ +package com.adc.da.slrs.sarPosition.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.List; + +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsPosition对象", description="") +public class TsPosition extends BaseEntity { + public interface insert{ + } + public interface update{ + } + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty(value = "操作时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp operateTime; + + @ApiModelProperty(value = "操作人") + private String operator; + + @NotNull(message = "name不能为空",groups = {insert.class}) + @ApiModelProperty(value = "岗位名称") + private String name; + + @ApiModelProperty(value = "创建部门ID") + private String createDeptId; + + @ApiModelProperty(value = "创建人ID") + private String createById; + + @ApiModelProperty(value = "类型(1为导入,2为新建)") + private String type; + + @NotNull(message = "id不能为空",groups = {update.class}) + @ApiModelProperty(value = "ID") + @TableId(value = "id",type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "绑定角色") + @TableField(exist = false) + private List roles; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp createTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPositionRoleVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPositionRoleVO.java new file mode 100644 index 00000000..da7bf94b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPositionRoleVO.java @@ -0,0 +1,15 @@ +package com.adc.da.slrs.sarPosition.entity; + +import com.adc.da.slrs.sarRole.entity.TsRole; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class TsPositionRoleVO { + @NotNull(message = "positionId不能为空") + private String positionId; + @NotNull(message = "roleIds不能为空") + private List roleIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java new file mode 100644 index 00000000..79565b95 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java @@ -0,0 +1,76 @@ +package com.adc.da.slrs.sarPosition.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.adc.da.slrs.sarPosition.entity.TsPositionRoleVO; +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-23 + */ +public interface ITsPositionService extends IService { + + /** + * 查询岗位 + * @param tsPosition:查询信息 + * @return List + */ + List getPosition(TsPosition tsPosition); + + /** + * 配置角色 + * @param tsPositionRoleVO :角色ID + * @return ResponseMessage + */ + ResponseMessage> setRole(TsPositionRoleVO tsPositionRoleVO); + + /** + * 查询角色 + * @param positionId :岗位ID + * @return List + */ + List getRole(String positionId); + + /** + * 添加岗位 + * @param tsPosition:岗位信息 + * @return ResponseMessage + */ + ResponseMessage addPosition(TsPosition tsPosition); + + /** + * 修改岗位 + * @param tsPosition:岗位信息 + * @return ResponseMessage + */ + ResponseMessage updatePosition(TsPosition tsPosition); + + /** + * 删除岗位 + * @param positionId:岗位ID + * @return ResponseMessage + */ + ResponseMessage deletePosition(String positionId); + + /** + * 通过岗位列表查询绑定的角色列表 + * @param positionIds:岗位列表 + * @return List + */ + List getRoleIdsByPositionIds(List positionIds); + + /** + * 通过roleId查询岗位ID列表 + * @param roleId:角色ID + * @return List + */ + List getPositionIdsByRoleId(String roleId); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java new file mode 100644 index 00000000..9ac99608 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java @@ -0,0 +1,160 @@ +package com.adc.da.slrs.sarPosition.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.adc.da.slrs.sarPosition.dao.TsPositionDao; +import com.adc.da.slrs.sarPosition.entity.TsPositionRoleVO; +import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.adc.da.utils.util.ListUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.management.relation.Role; +import java.util.List; +import java.util.Map; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-23 + */ +@Service +public class TsPositionServiceImpl extends ServiceImpl implements ITsPositionService { + @Autowired + private TsPositionDao tsPositionDao; + + /** + * 查询岗位 + * @param tsPosition:查询信息 + * @return List + */ + @Override + public List getPosition(TsPosition tsPosition) { + return tsPositionDao.selectPositionAndRole(tsPosition); + } + + /** + * 配置角色 + * @param tsPositionRoleVO :角色ID + * @return ResponseMessage + */ + @Override + @Transactional + public ResponseMessage> setRole(TsPositionRoleVO tsPositionRoleVO) { + TsPosition position=tsPositionDao.selectById(tsPositionRoleVO.getPositionId()); + if(position==null){ + return Result.error("该岗位不存在"); + } + List oldRoleIds=tsPositionDao.getRoleId(tsPositionRoleVO.getPositionId()); + Map> updateRoleIds= ListUtil.difList(tsPositionRoleVO.getRoleIds(),oldRoleIds); + List insertIds=updateRoleIds.get("insert"); + List deleteIds=updateRoleIds.get("delete"); + for(String id:insertIds){ + tsPositionDao.insertRole(tsPositionRoleVO.getPositionId(),id); + } + for(String id:deleteIds){ + tsPositionDao.deleteRole(tsPositionRoleVO.getPositionId(),id); + } + List roles=getRole(tsPositionRoleVO.getPositionId()); + return Result.success(roles); + } + + /** + * 查询角色 + * @param positionId :岗位ID + * @return List + */ + @Override + public List getRole(String positionId) { + return tsPositionDao.getRole(positionId); + } + + /** + * 添加岗位 + * @param tsPosition:岗位信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage addPosition(TsPosition tsPosition) { + QueryWrapper positionQueryWrapper=new QueryWrapper<>(); + positionQueryWrapper.eq("name",tsPosition.getName()); + List tsPositions=tsPositionDao.selectList(positionQueryWrapper); + if(tsPositions!=null&&tsPositions.size()>0){ + return Result.error("该岗位已存在"); + } + tsPosition.setType("2"); + tsPositionDao.insert(tsPosition); + return Result.success(); + } + + /** + * 修改岗位 + * @param tsPosition:岗位信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updatePosition(TsPosition tsPosition) { + TsPosition oldPosition=tsPositionDao.selectById(tsPosition.getId()); + if(oldPosition==null){ + return Result.error("该岗位不存在"); + } + if(!oldPosition.getType().equals("2")){ + return Result.error("该岗位不可修改"); + } + tsPositionDao.updateById(tsPosition); + return Result.success(); + } + + /** + * 删除岗位 + * @param positionId:岗位ID + * @return ResponseMessage + */ + @Override + public ResponseMessage deletePosition(String positionId) { + TsPosition oldPosition=tsPositionDao.selectById(positionId); + if(oldPosition==null){ + return Result.error("该岗位不存在"); + } + if(!oldPosition.getType().equals("2")){ + return Result.error("该岗位不可删除"); + } + List roleIds=tsPositionDao.getRoleId(positionId); + if(roleIds!=null&&roleIds.size()>0){ + return Result.error("该岗位已绑定角色,无法删除"); + } + tsPositionDao.deleteById(positionId); + return Result.success(); + } + + /** + * 通过岗位列表查询绑定的角色列表 + * @param positionIds:岗位列表 + * @return List + */ + @Override + public List getRoleIdsByPositionIds(List positionIds) { + if(positionIds!=null&&positionIds.size()>0){ + return tsPositionDao.getRoleIdsByPositionIds(positionIds); + } + return null; + } + + /** + * 通过roleId查询岗位ID列表 + * @param roleId:角色ID + * @return List + */ + @Override + public List getPositionIdsByRoleId(String roleId) { + return tsPositionDao.getPositionIdsByRoleId(roleId); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java new file mode 100644 index 00000000..f287dc62 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java @@ -0,0 +1,57 @@ +package com.adc.da.slrs.sarResource.controller; + + +import com.adc.da.base.web.BaseController; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-30 +*/ +@RestController +@Api(tags = "资源管理") +@RequestMapping("/api/sarResource/ts-resource") +public class TsResourceController extends BaseController { + @Autowired + private ITsResourceService tsResourceService; + + @ApiOperation("查询所有资源") + @GetMapping + public ResponseMessage> getAll(TsResource tsResource){ + List tsResources=tsResourceService.getAll(tsResource); + return Result.success(tsResources); + } + + @ApiOperation("添加资源") + @PostMapping("/add") + public ResponseMessage addResource(@RequestBody TsResource tsResource){ + return tsResourceService.addResource(tsResource); + } + + @ApiOperation("编辑资源") + @PutMapping + public ResponseMessage updateResource(@Validated(TsResource.update.class) @RequestBody TsResource tsResource){ + return tsResourceService.updateResource(tsResource); + } + + @ApiOperation("删除资源") + @DeleteMapping + public ResponseMessage delResource(@RequestParam String resourceId){ + return tsResourceService.delResource(resourceId); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java new file mode 100644 index 00000000..be0671ec --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarResource.dao; + +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-30 + */ +public interface TsResourceDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java new file mode 100644 index 00000000..f950192c --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java @@ -0,0 +1,88 @@ +package com.adc.da.slrs.sarResource.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.utils.treetool.annotation.TreeNodeName; +import com.adc.da.utils.treetool.annotation.TreeNodeParentId; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.List; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsResource对象", description="") +public class TsResource extends BaseEntity { + public interface update{ + } + + private static final long serialVersionUID = 1L; + + + + @NotNull(message = "id不能为空",groups = {SarMenu.update.class}) + @ApiModelProperty(value = "主键") + @TableId(value = "ID",type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "标准法规划分") + @TableField("SOR_DIVIDE") + private String sorDivide; + + @TreeNodeName + @ApiModelProperty(value = "目录名称") + @TableField("MENU_NAME") + private String menuName; + + @TreeNodeParentId + @ApiModelProperty(value = "父级ID") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "父级ID集合") + @TableField("PARENT_IDS") + private String parentIds; + + @ApiModelProperty(value = "排序序号") + @TableField("DISPLAY_SEQ") + private Integer displaySeq; + + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private Date modifyTime; + + @ApiModelProperty(value = "备注") + @TableField("REMARKS") + private String remarks; + + @ApiModelProperty(value = "子菜单") + @TableField(exist = false) + private List children; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java new file mode 100644 index 00000000..ba1d7fe4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java @@ -0,0 +1,34 @@ +package com.adc.da.slrs.sarResource.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-30 + */ +public interface ITsResourceService extends IService { + + List getAll(TsResource tsResource); + + ResponseMessage addResource(TsResource tsResource); + + ResponseMessage updateResource(TsResource tsResource); + + ResponseMessage delResource(String resourceId); + + /** + * 通过Ids查询menu + * @param resourceIds :菜单Ids + * @param sorDivide + * @return List + */ + List getResourceByIds(List resourceIds, String sorDivide); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java new file mode 100644 index 00000000..e15836fb --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java @@ -0,0 +1,135 @@ +package com.adc.da.slrs.sarResource.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; + +import com.adc.da.slrs.sarResource.dao.TsResourceDao; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-30 + */ +@Service +public class TsResourceServiceImpl extends ServiceImpl implements ITsResourceService { + @Autowired + private TsResourceDao dao; + /** + * 查询所有菜单 + * @param tsResource + */ + @Override + public List getAll(TsResource tsResource) { + QueryWrapper tsResourceQueryWrapper=new QueryWrapper<>(); + if(tsResource.getSorDivide()!=null){ + tsResourceQueryWrapper.eq("sor_divide",tsResource.getSorDivide()); + } + tsResourceQueryWrapper.isNull("PARENT_ID"); + List TsResources=dao.selectList(tsResourceQueryWrapper); + for(TsResource TsResource:TsResources){ + TsResource.setChildren(recursionGetChildren((TsResource))); + } + return TsResources; + } + + /** + * 添加菜单 + * @param TsResource:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage addResource(TsResource TsResource) { + if(TsResource.getParentId()!=null){ + TsResource parent=dao.selectById(TsResource.getParentId()); + if(parent==null){ + return Result.error("该父菜单不存在"); + } + } + dao.insert(TsResource); + return Result.success(); + } + + /** + * 编辑菜单 + * @param TsResource:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updateResource(TsResource TsResource) { + TsResource oldResource=dao.selectById(TsResource.getId()); + if(oldResource==null){ + return Result.error("该菜单不存在"); + } + if(TsResource.getParentId()!=null){ + TsResource parent=dao.selectById(TsResource.getParentId()); + if(parent==null){ + return Result.error("父节点不存在"); + } + } + dao.updateById(TsResource); + return Result.success(); + } + + /** + * 删除菜单 + * @param ResourceId:菜单ID + * @return ResponseMessage + */ + @Override + public ResponseMessage delResource(String ResourceId) { + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.eq("parent_id",ResourceId); + List children=dao.selectList(TsResourceQueryWrapper); + if(children!=null&&children.size()>0){ + return Result.error("该菜单有子节点,无法删除"); + } + dao.deleteById(ResourceId); + return Result.success(); + } + + /** + * 通过Ids查询Resource + * @param resourceIds :菜单Ids + * @param sorDivide + * @return List + */ + @Override + public List getResourceByIds(List resourceIds, String sorDivide) { + if(resourceIds!=null&&resourceIds.size()>0){ + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + if(sorDivide!=null){ + TsResourceQueryWrapper.eq("sor_divide",sorDivide); + } + TsResourceQueryWrapper.in("id",resourceIds); + return dao.selectList(TsResourceQueryWrapper); + } + return new ArrayList<>(); + } + + /** + * 递归调用获取子节点 + * @param parent:父节点 + * @return List + */ + private List recursionGetChildren(TsResource parent){ + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.eq("PARENT_ID",parent.getId()); + List children=dao.selectList(TsResourceQueryWrapper); + for(TsResource TsResource:children){ + TsResource.setChildren(recursionGetChildren((TsResource))); + } + return children; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java new file mode 100644 index 00000000..3f33c2cd --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java @@ -0,0 +1,115 @@ +package com.adc.da.slrs.sarRole.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.login.util.UserUtils; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; +import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; +import com.adc.da.slrs.sarRole.service.ITsRoleService; +import com.adc.da.sys.entity.UserEO; +import io.swagger.annotations.ApiOperation; +import org.apache.ibatis.annotations.Delete; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarRole.entity.TsRole; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.validation.Valid; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author zxy +* @since 2021-06-22 +*/ +@RestController +@Api(tags = "|角色管理|") +@RequestMapping("/api/sarRole/role") +public class TsRoleController extends BaseController { + @Autowired + private ITsRoleService tsRoleService; + + @ApiOperation("查询所有角色") + @GetMapping + public ResponseMessage> getAll(){ + List tsRoles=tsRoleService.getAll(); + return Result.success(tsRoles); + } + + @ApiOperation("根据角色名筛选角色") + @GetMapping("/name") + public ResponseMessage> getByName(String name){ + List tsRoles=tsRoleService.getByName(name); + return Result.success(tsRoles); + } + + @ApiOperation("新增角色") + @PostMapping + public ResponseMessage addRole(@Validated(TsRole.insert.class) @RequestBody TsRole tsRole){ + //设置操作人 + UserEO userEO=UserUtils.getUser(); + tsRole.setOperator(userEO.getUname()); + return tsRoleService.addRole(tsRole); + } + + @ApiOperation("编辑角色") + @PutMapping + public ResponseMessage updateRole(@Validated(TsRole.update.class)@RequestBody TsRole tsRole){ + //设置操作人 + UserEO userEO=UserUtils.getUser(); + tsRole.setOperator(userEO.getUname()); + System.out.println(tsRole); + return tsRoleService.updateRole(tsRole); + } + + @ApiOperation("删除角色") + @DeleteMapping + public ResponseMessage deleteRole(@RequestParam String roleId){ + return tsRoleService.deleteRole(roleId); + } + + @ApiOperation("配置权限") + @PostMapping("/menu") + public ResponseMessage setMenu(@Valid @RequestBody TsRoleMenuVO tsRoleMenuVO){ + return tsRoleService.setMenu(tsRoleMenuVO); + } + + @ApiOperation("查询角色详情") + @GetMapping("/id") + public ResponseMessage getRoleById(@RequestParam String roleId){ + TsRole tsRole=tsRoleService.getById(roleId); + if(tsRole.getParentId()!=null){ + TsRole parent=tsRoleService.getById(tsRole.getParentId()); + tsRole.setParent(parent.getName()); + } + return Result.success(tsRole); + } + + @ApiOperation("查询角色权限") + @GetMapping("/menu") + public ResponseMessage> getMenu(@RequestParam String roleId){ + List menuIds=tsRoleService.getMenu(roleId); + return Result.success(menuIds); + } + + @ApiOperation("配置资源") + @PostMapping("/resource") + public ResponseMessage setResource(@Valid @RequestBody TsRoleResourceVO tsRoleResourceVO){ + return tsRoleService.setResource(tsRoleResourceVO); + } + + @ApiOperation("查询角色资源") + @GetMapping("/resource") + public ResponseMessage> getResource(@RequestParam String roleId){ + List resourceIds=tsRoleService.getResource(roleId); + return Result.success(resourceIds); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java new file mode 100644 index 00000000..e3987b47 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java @@ -0,0 +1,94 @@ +package com.adc.da.slrs.sarRole.dao; + +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface TsRoleDao extends BaseMapper { + + /** + * 查询该角色绑定的岗位ID + * @param roleId:角色ID + * @return List:岗位ID + */ + @Select("select position_id from ts_position_role where role_id=#{roleId}") + List getPositionIds(String roleId); + + /** + * 查询角色的权限ID + * @param roleId:角色ID + * @return List + */ + @Select("select menu_id from ts_role_menu where role_id=#{roleId}") + List getMenuIds(String roleId); + + /** + * 添加权限 + * @param roleId:角色ID + * @param menuId:权限ID + */ + @Insert("insert into ts_role_menu (role_id,menu_id) values (#{roleId},#{menuId})") + void addMenu(String roleId, String menuId); + + /** + * 删除权限 + * @param roleId:角色ID + * @param menuId:权限ID + */ + @Delete("delete from ts_role_menu where role_id=#{roleId} and menu_id=#{menuId}") + void delMenu(String roleId, String menuId); + + @Select("select menu_id from ts_role_menu where role_id=#{roleId}") + List getMenuIdByRoleId(String roleId); + + /** + * 通过角色Id列表查询菜单Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + List getMenuIdsByRoleIds(List roleIds); + + /** + * 通过角色ID查询绑定的资源ID + * @param roleId:角色ID + * @return List + */ + @Select("select resource_id from ts_role_resource where role_id=#{roleId}") + List getResourceIds(String roleId); + + + /** + * 添加资源 + * @param roleId:角色ID + * @param resourceId:权限ID + */ + @Insert("insert into ts_role_resource (role_id,resource_id) values (#{roleId},#{resourceId})") + void addResource(String roleId, String resourceId); + + /** + * 删除权限 + * @param roleId:角色ID + * @param resourceId:权限ID + */ + @Delete("delete from ts_role_resource where role_id=#{roleId} and resource_id=#{resourceId}") + void delResource(String roleId, String resourceId); + + /** + * 通过角色Id列表查询资源Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + List getResourceIdsByRoleIds(List roleIds); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java new file mode 100644 index 00000000..a2a705b2 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java @@ -0,0 +1,127 @@ +package com.adc.da.slrs.sarRole.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsRole对象", description="") +public class TsRole extends BaseEntity { + public interface insert{ + } + public interface update{ + } + + private static final long serialVersionUID = 1L; + + @NotNull(message = "id不能为空",groups = {update.class}) + @ApiModelProperty(value = "主键") + @TableId(value = "ID",type = IdType.UUID) + private String id; + + @NotNull(message = "name不能为空",groups = {insert.class}) + @ApiModelProperty(value = "角色名称") + @TableField("NAME") + private String name; + + @ApiModelProperty(value = "角色类型") + @TableField("ROLE_TYPE") + private String roleType; + + @ApiModelProperty(value = "角色状态") + @TableField("USE_FLAG") + private BigDecimal useFlag; + + @ApiModelProperty(value = "是否默认") + @TableField("IS_DEFAULT") + private BigDecimal isDefault; + + @ApiModelProperty(value = "角色描述") + @TableField("REMARKS") + private String remarks; + + @ApiModelProperty(value = "操作时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp operateTime; + + @ApiModelProperty(value = "操作人") + private String operator; + + @ApiModelProperty(value = "备注") + @TableField("EXT_INFO") + private String extInfo; + + @TableField("OPER_USER") + private String operUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private BigDecimal validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp modifyTime; + + @ApiModelProperty(value = "上级节点id") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "角色层级") + @TableField("ROLE_HIERARCHY") + private Integer roleHierarchy; + + @ApiModelProperty(value = "对应部门id") + @TableField("DY_ORG_ID") + private String dyOrgId; + + @ApiModelProperty(value = "对应部门名称") + @TableField("DY_ORG_NAME") + private String dyOrgName; + + @ApiModelProperty(value = "子角色") + @TableField(exist = false) + private List children; + + @ApiModelProperty("父节点名称") + @TableField(exist = false) + private String parent; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleMenuVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleMenuVO.java new file mode 100644 index 00000000..3c3a775d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleMenuVO.java @@ -0,0 +1,14 @@ +package com.adc.da.slrs.sarRole.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class TsRoleMenuVO { + @NotNull(message = "roleId不能为空") + private String roleId; + @NotNull(message = "menuIds不能为空") + private List menuIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java new file mode 100644 index 00000000..6652ac28 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java @@ -0,0 +1,14 @@ +package com.adc.da.slrs.sarRole.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class TsRoleResourceVO { + @NotNull(message = "roleId不能为空") + private String roleId; + @NotNull(message = "resourceIds不能为空") + private List resourceIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java new file mode 100644 index 00000000..1091a832 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java @@ -0,0 +1,81 @@ +package com.adc.da.slrs.sarRole.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; +import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface ITsRoleService extends IService { + + /** + * 查询所有角色 + * @return List + */ + List getAll(); + + /** + * 通过名字查询角色 + * @param name:角色名 + * @return List + */ + List getByName(String name); + + /** + * 添加角色 + * @param tsRole :角色信息 + * @return ResponseMessage + */ + ResponseMessage addRole(TsRole tsRole); + + /** + * 编辑角色 + * @param tsRole:角色信息 + * @return ResponseMessage + */ + ResponseMessage updateRole(TsRole tsRole); + + /** + * 删除角色 + * @param roleId:角色Id + * @return ResponseMessage + */ + ResponseMessage deleteRole(String roleId); + + /** + * 配置菜单 + * @param tsRoleMenuVO:菜单ID + * @return ResponseMessage + */ + ResponseMessage setMenu(TsRoleMenuVO tsRoleMenuVO); + + /** + * 查询角色权限 + * @param roleId:角色ID + * @return List + */ + List getMenu(String roleId); + + /** + * 通过角色Id列表查询菜单Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + List getMenuIdsByRoleIds(List roleIds); + + ResponseMessage setResource(TsRoleResourceVO tsRoleResourceVO); + + List getResource(String roleId); + + List getResourceIdsByRoleIds(List roleIds); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java new file mode 100644 index 00000000..fc4d2e8d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java @@ -0,0 +1,262 @@ +package com.adc.da.slrs.sarRole.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarMenu.dao.SarMenuDao; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarMenu.service.ISarMenuService; +import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService; +import com.adc.da.slrs.sarRole.entity.TsRole; +import com.adc.da.slrs.sarRole.dao.TsRoleDao; +import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; +import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; +import com.adc.da.slrs.sarRole.service.ITsRoleService; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.utils.util.ListUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@EnableAsync +@Service +public class TsRoleServiceImpl extends ServiceImpl implements ITsRoleService { + @Autowired + private TsRoleDao tsRoleDao; + @Autowired + private ISarMenuService sarMenuService; + @Autowired + @Lazy + private ISarUserPersonalMenuService sarUserPersonalMenuService; + /** + * 查询所有角色 + * @return List + */ + @Override + public List getAll() { + QueryWrapper tsRoleQueryWrapper=new QueryWrapper<>(); + tsRoleQueryWrapper.eq("ROLE_HIERARCHY",1); + List rootRole=tsRoleDao.selectList(tsRoleQueryWrapper); + for(TsRole tsRole:rootRole){ + tsRole.setChildren(recursionGetRole(tsRole)); + } + return rootRole; + } + + /** + * 递归查询子角色 + * @param tsRole:父角色 + * @return List + */ + private List recursionGetRole(TsRole tsRole){ + QueryWrapper tsRoleQueryWrapper=new QueryWrapper<>(); + tsRoleQueryWrapper.eq("parent_id",tsRole.getId()); + tsRoleQueryWrapper.eq("ROLE_HIERARCHY",tsRole.getRoleHierarchy()+1); + List tsRoles=tsRoleDao.selectList(tsRoleQueryWrapper); + for(TsRole tsRoleNode:tsRoles){ + tsRoleNode.setChildren(recursionGetRole(tsRoleNode)); + } + return tsRoles; + } + + /** + * 通过名字查询角色 + * @param name:角色名 + * @return List + */ + @Override + public List getByName(String name) { + QueryWrapper tsRoleQueryWrapper=new QueryWrapper<>(); + tsRoleQueryWrapper.like("name","%"+name+"%"); + return tsRoleDao.selectList(tsRoleQueryWrapper); + } + + /** + * 添加角色 + * @param tsRole :角色信息 + * @return TsRole + */ + @Override + public ResponseMessage addRole(TsRole tsRole) { + //判断是否是顶级角色 + if(tsRole.getParentId()==null){ + tsRole.setRoleHierarchy(1); + }else { + QueryWrapper parentQueryWrapper=new QueryWrapper<>(); + parentQueryWrapper.eq("id",tsRole.getParentId()); + TsRole parentRole=tsRoleDao.selectOne(parentQueryWrapper); + if(parentRole==null){ + return Result.error("父角色不存在"); + } + tsRole.setRoleHierarchy(parentRole.getRoleHierarchy()+1); + } + tsRoleDao.insert(tsRole); + return Result.success(); + } + + /** + * 编辑角色 + * @param tsRole:角色信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updateRole(TsRole tsRole) { + TsRole oldRole=tsRoleDao.selectById(tsRole.getId()); + if(oldRole==null){ + return Result.error("该角色不存在"); + } + //不允许修改父节点 + tsRole.setRoleHierarchy(null); + tsRole.setParentId(null); + tsRoleDao.updateById(tsRole); + return Result.success(); + } + + /** + * 删除角色 + * @param roleId:角色Id + * @return ResponseMessage + */ + @Override + public ResponseMessage deleteRole(String roleId) { + TsRole tsRole=tsRoleDao.selectById(roleId); + if(tsRole==null){ + return Result.error("该角色不存在"); + } + QueryWrapper childrenRoleQueryWrapper=new QueryWrapper<>(); + childrenRoleQueryWrapper.eq("parent_id",roleId); + List childrenRole=tsRoleDao.selectList(childrenRoleQueryWrapper); + if(childrenRole!=null&&childrenRole.size()>0){ + return Result.error("该角色有下属角色,无法删除"); + } + List positionIds=tsRoleDao.getPositionIds(roleId); + if(positionIds!=null&&positionIds.size()>0){ + return Result.error("该角色已绑定岗位,无法删除"); + } + tsRoleDao.deleteById(roleId); + return Result.success(); + } + + /** + * 配置菜单 + * @param tsRoleMenuVO:菜单ID + * @return ResponseMessage + */ + @Override + @Transactional + public ResponseMessage setMenu(TsRoleMenuVO tsRoleMenuVO) { + TsRole role=tsRoleDao.selectById(tsRoleMenuVO.getRoleId()); + if(role==null){ + return Result.error("该角色不存在"); + } + List oldMenuIds=tsRoleDao.getMenuIds(tsRoleMenuVO.getRoleId()); + Map> updateMenuIds= ListUtil.difList(tsRoleMenuVO.getMenuIds(),oldMenuIds); + List insertIds=updateMenuIds.get("insert"); + List deleteIds=updateMenuIds.get("delete"); + if(insertIds!=null&&insertIds.size()>0){ + for(String menuId:insertIds){ + tsRoleDao.addMenu(tsRoleMenuVO.getRoleId(),menuId); + } + } + if(deleteIds!=null&&deleteIds.size()>0){ + for(String menuId:deleteIds){ + tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId); + } + } + sarUserPersonalMenuService.setPersonalMenu(tsRoleMenuVO.getRoleId()); + return Result.success(); + } + + /** + * 查询角色权限 + * @param roleId:角色ID + * @return List + */ + @Override + public List getMenu(String roleId) { + return tsRoleDao.getMenuIdByRoleId(roleId); + } + + /** + * 通过角色Id列表查询菜单Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + @Override + public List getMenuIdsByRoleIds(List roleIds) { + if(roleIds!=null&&roleIds.size()>0){ + return tsRoleDao.getMenuIdsByRoleIds(roleIds); + } + return null; + } + + /** + * 配置资源 + * @param tsRoleResourceVO:资源ID + * @return ResponseMessage + */ + @Override + public ResponseMessage setResource(TsRoleResourceVO tsRoleResourceVO) { + TsRole role=tsRoleDao.selectById(tsRoleResourceVO.getRoleId()); + if(role==null){ + return Result.error("该角色不存在"); + } + List oldResourceIds=tsRoleDao.getResourceIds(tsRoleResourceVO.getRoleId()); + Map> updateMenuIds= ListUtil.difList(tsRoleResourceVO.getResourceIds(),oldResourceIds); + List insertIds=updateMenuIds.get("insert"); + List deleteIds=updateMenuIds.get("delete"); + if(insertIds!=null&&insertIds.size()>0){ + for(String menuId:insertIds){ + tsRoleDao.addResource(tsRoleResourceVO.getRoleId(),menuId); + } + } + if(deleteIds!=null&&deleteIds.size()>0){ + for(String menuId:deleteIds){ + tsRoleDao.delResource(tsRoleResourceVO.getRoleId(),menuId); + } + } + + return Result.success(); + } + + /** + * 查询角色资源 + * @param roleId:角色ID + * @return List + */ + @Override + public List getResource(String roleId) { + return tsRoleDao.getResourceIds(roleId); + } + + /** + * 通过角色Id列表查询菜单Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + @Override + public List getResourceIdsByRoleIds(List roleIds) { + if(roleIds!=null&&roleIds.size()>0){ + return tsRoleDao.getResourceIdsByRoleIds(roleIds); + } + return null; + } + + + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java index c4120b68..87d08d5a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java @@ -22,7 +22,7 @@ public interface ISarPublicIdeaAllService extends IService { IPage selectAll(DetAllStandDto detAllStandDto); String add(SarPublicIdeaAll sarPublicIdeaAll); - String updateById(SarPublicIdeaAll sarPublicIdeaAll, String autUseerid); + String updateById(SarPublicIdeaAll sarPublicIdeaAll, String autUserid); String delete(DelStandDto delStandDto); String del(String id); String stuListExcel(HttpServletResponse response,String cid); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java index 8aae0a76..3b37c14e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java @@ -63,8 +63,8 @@ public class SarPublicIdeaAllServiceImpl extends ServiceImpl selectAllP(Integer p, Integer size, String categorg, String cname, Date start, Date end) { + public IPage selectAllP(Integer p, Integer size, String category, String cname, Date start, Date end) { QueryWrapper list = new QueryWrapper<>(); - list.eq(StringUtils.isNotEmpty(categorg),"category",categorg) + list.like(StringUtils.isNotEmpty(category),"category",category) .like(StringUtils.isNotEmpty(cname),"cname",cname) - .gt(start!=null,"start_time",start). + .ge(start!=null,"start_time",start). le(end!=null,"end_time",end); Page page = new Page<>(p,size); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/controller/SarStandIssueControlCauseController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/controller/SarStandIssueControlCauseController.java new file mode 100644 index 00000000..83ed19c1 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/controller/SarStandIssueControlCauseController.java @@ -0,0 +1,121 @@ +package com.adc.da.slrs.sarStandIssueControlCause.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.ResponseMessageCodeEnum; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO; +import com.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualifiedPage; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedListVO; +import com.adc.da.slrs.sarStandUnqualified.service.ISarStandUnqualifiedService; +import com.adc.da.slrs.sarStandardsInfo.controller.SarStandardsInfoController; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author super_liu +* @since 2021-06-16 +*/ +@RestController +@Api(tags = "|重点问题项管控模块-事业部|") +@RequestMapping("/api/sarStandIssueControlCause/sar-stand-issue-control-cause") +public class SarStandIssueControlCauseController extends BaseController { + + private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class); + + @Autowired + private ISarStandIssueControlCauseService sarStandIssueControlCauseService; + + + /** + * 分页查询 + * @param sarStandIssueControlCausePage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询") + @GetMapping + public ResponseMessage> getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage){ + IPage sarStandIssueControlCauseIPage=sarStandIssueControlCauseService.getSarStandIssueControlCausePage(sarStandIssueControlCausePage); + return Result.success(sarStandIssueControlCauseIPage); + } + + /** + * 分页查询历史数据 + * @param sarStandIssueControlCausePage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询历史数据") + @GetMapping("/history") + public ResponseMessage> getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage){ + IPage sarStandIssueControlCauseIPage=sarStandIssueControlCauseService.getSarStandIssueControlCauseHistoryPage(sarStandIssueControlCausePage); + return Result.success(sarStandIssueControlCauseIPage); + } + + /** + * 批量关闭 + * @param standIssueControlCauseListVO:事业部重大问题ID列表 + * @return ResponseMessage>:关闭失败的事业部重大问题ID列表 + */ + @ApiOperation("批量关闭") + @PostMapping("/close") + public ResponseMessage> closeSarStandIssueControlCause(@RequestBody StandIssueControlCauseListVO standIssueControlCauseListVO){ + if(standIssueControlCauseListVO==null||standIssueControlCauseListVO.getIds().size()==0){ + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入ID",null); + } + List failIds=sarStandIssueControlCauseService.closeSarStandIssueControlCauseList(standIssueControlCauseListVO); + if(failIds==null||failIds.size()==0){ + return Result.success(null); + }else { + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"部分关闭失败",null); + } + } + + @ApiOperation("导出Excel表") + @GetMapping(value = "/exportStandUnqulifiedExcel") + public void exportStandardsInfoExcel(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO, HttpServletResponse response) throws Exception { + // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + if(standIssueControlCauseExcelVO.getExportName()==null){ + standIssueControlCauseExcelVO.setExportName("事业部重点问题项管控"); + } + String fileName = URLEncoder.encode(standIssueControlCauseExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + List data=sarStandIssueControlCauseService.getStandIssueControlCauseExcelData(standIssueControlCauseExcelVO); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), SarStandIssueControlCause.class).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(data); + } catch (Exception e) { + System.out.println(e); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(Result.error())); + } + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/dao/SarStandIssueControlCauseDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/dao/SarStandIssueControlCauseDao.java new file mode 100644 index 00000000..a305a3e7 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/dao/SarStandIssueControlCauseDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandIssueControlCause.dao; + +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author super_liu + * @since 2021-06-16 + */ +public interface SarStandIssueControlCauseDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCause.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCause.java new file mode 100644 index 00000000..a0b2ad88 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCause.java @@ -0,0 +1,124 @@ +package com.adc.da.slrs.sarStandIssueControlCause.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.sql.Timestamp; +import java.time.LocalDateTime; + +import com.adc.da.slrs.sarStandUnqualified.utils.TimestampConverter; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

    + * + *

    + * + * @author super_liu + * @since 2021-06-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarStandIssueControlCause对象", description="") +public class SarStandIssueControlCause extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ExcelProperty("创建部门") + @ApiModelProperty(value = "创建部门") + @TableField("CREATE_DEPT_ID") + private String createDeptId; + + @ExcelProperty("创建人") + @ApiModelProperty(value = "创建人") + @TableField("CREATE_BY_ID") + private String createById; + + @ExcelProperty(value = "创建时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("CREATE_TIME") + private Timestamp createTime; + + @ExcelIgnore + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + @TableField("CLOSE_STATE") + private Integer closeState; + + @ExcelIgnore + @ApiModelProperty(value = "实际关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("ACTUAL_CLOSE_TIME") + private Timestamp actualCloseTime; + + @ExcelProperty(value = "要求关闭时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "要求关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("REQUIRE_CLOSE_TIME") + private Timestamp requireCloseTime; + + @ExcelProperty("质量工程师") + @ApiModelProperty(value = "质量工程师") + @TableField("QA_ENGINEER") + private String qaEngineer; + + @ExcelProperty("认证工程师") + @ApiModelProperty(value = "认证工程师") + @TableField("AUTH_ENGINEER") + private String authEngineer; + + @ExcelProperty("责任工程师") + @ApiModelProperty(value = "责任工程师") + @TableField("DUTY_ENGINEER") + private String dutyEngineer; + + @ExcelProperty("责任部门") + @ApiModelProperty(value = "责任部门") + @TableField("RESPONSIBLE_UNIT") + private String responsibleUnit; + + @ExcelProperty("项目名称") + @ApiModelProperty(value = "项目名称") + @TableField("PRODUCT_NAME") + private String productName; + + @ExcelProperty("产品线") + @ApiModelProperty(value = "产品线") + @TableField("PRODUCT_LINE") + private String productLine; + + @ExcelProperty("当前节点") + @ApiModelProperty(value = "当前节点") + @TableField("CURRENT_NODE") + private String currentNode; + + @ExcelProperty("标准名称") + @ApiModelProperty(value = "标准名称") + @TableField("STAND_NAME") + private String standName; + + @ExcelProperty("标准编号") + @ApiModelProperty(value = "标准编号") + @TableField("STAND_ID") + private String standId; + + @ExcelIgnore + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCausePage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCausePage.java new file mode 100644 index 00000000..26ea6e80 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/SarStandIssueControlCausePage.java @@ -0,0 +1,69 @@ +package com.adc.da.slrs.sarStandIssueControlCause.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Timestamp; + +@Data + +@ApiModel(value="SarStandIssueControlCausePage对象", description="") +public class SarStandIssueControlCausePage{ + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "创建部门") + private String createDeptId; + + @ApiModelProperty(value = "创建人") + private String createById; + + @ApiModelProperty(value = "创建时间") + private Timestamp createTime; + + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + private Integer closeState; + + @ApiModelProperty(value = "实际关闭时间") + private Timestamp actualCloseTime; + + @ApiModelProperty(value = "要求关闭时间") + private Timestamp requireCloseTime; + + @ApiModelProperty(value = "质量工程师") + private String qaEngineer; + + @ApiModelProperty(value = "认证工程师") + private String authEngineer; + + @ApiModelProperty(value = "责任工程师") + private String dutyEngineer; + + @ApiModelProperty(value = "责任部门") + private String responsibleUnit; + + @ApiModelProperty(value = "项目名称") + private String productName; + + @ApiModelProperty(value = "产品线") + private String productLine; + + @ApiModelProperty(value = "当前节点") + private String currentNode; + + @ApiModelProperty(value = "标准名称") + private String standName; + + @ApiModelProperty(value = "标准编号") + private String standId; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty("当前页") + private Integer current; + + @ApiModelProperty("每页条数") + private Integer size; +} \ No newline at end of file diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseExcelVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseExcelVO.java new file mode 100644 index 00000000..fcf9e88b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseExcelVO.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandIssueControlCause.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "ExcelVO类") +public class StandIssueControlCauseExcelVO { + @ApiModelProperty("文件名") + String exportName; + @ApiModelProperty("导出的ID列表") + List ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseListVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseListVO.java new file mode 100644 index 00000000..55f03312 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/entity/StandIssueControlCauseListVO.java @@ -0,0 +1,12 @@ +package com.adc.da.slrs.sarStandIssueControlCause.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class StandIssueControlCauseListVO { + @ApiModelProperty("ID列表") + private List Ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/ISarStandIssueControlCauseService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/ISarStandIssueControlCauseService.java new file mode 100644 index 00000000..6cf43e82 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/ISarStandIssueControlCauseService.java @@ -0,0 +1,49 @@ +package com.adc.da.slrs.sarStandIssueControlCause.service; + +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author super_liu + * @since 2021-06-16 + */ +public interface ISarStandIssueControlCauseService extends IService { + + /** + * 分页查询 + * @param sarStandIssueControlCausePage:筛选信息、分页信息 + * @return IPage + */ + IPage getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage); + + /** + * 分页查询历史数据 + * @param sarStandIssueControlCausePage:筛选信息、分页信息 + * @return IPage + */ + IPage getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage); + + /** + * 批量关闭 + * @param standIssueControlCauseListVO:问题ID列表 + * @return List:关闭失败的ID列表 + */ + List closeSarStandIssueControlCauseList(StandIssueControlCauseListVO standIssueControlCauseListVO); + + /** + * 获得excel导出的数据 + * @param standIssueControlCauseExcelVO :筛选ID + * @return List + */ + List getStandIssueControlCauseExcelData(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/impl/SarStandIssueControlCauseServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/impl/SarStandIssueControlCauseServiceImpl.java new file mode 100644 index 00000000..26c30a92 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlCause/service/impl/SarStandIssueControlCauseServiceImpl.java @@ -0,0 +1,145 @@ +package com.adc.da.slrs.sarStandIssueControlCause.service.impl; + +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.adc.da.slrs.sarStandIssueControlCause.dao.SarStandIssueControlCauseDao; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO; +import com.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author super_liu + * @since 2021-06-16 + */ +@Service +public class SarStandIssueControlCauseServiceImpl extends ServiceImpl implements ISarStandIssueControlCauseService { + @Autowired + private SarStandIssueControlCauseDao sarStandIssueControlCauseDao; + + /** + * 分页查询 + * @param sarStandIssueControlCausePage:筛选信息、分页信息 + * @return SarStandIssueControlCause + */ + @Override + public IPage getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage) { + QueryWrapper sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>(); + //仅查询未关闭的 + sarStandIssueControlCauseQueryWrapper.eq("close_state",1); + if(sarStandIssueControlCausePage.getStandId()!=null){ + sarStandIssueControlCauseQueryWrapper.eq("stand_id",sarStandIssueControlCausePage.getStandId()).or().like("stand_name","%"+sarStandIssueControlCausePage.getStandId()+"%"); + } + if(sarStandIssueControlCausePage.getProductName()!=null){ + sarStandIssueControlCauseQueryWrapper.like("product_name","%"+sarStandIssueControlCausePage.getProductName()+"%"); + } + if(sarStandIssueControlCausePage.getResponsibleUnit()!=null){ + sarStandIssueControlCauseQueryWrapper.eq("responsible_unit",sarStandIssueControlCausePage.getResponsibleUnit()); + } + Page standIssueControlCausePage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandIssueControlCausePage.getCurrent()!=null&&sarStandIssueControlCausePage.getSize()!=null){ + standIssueControlCausePage=new Page<>(sarStandIssueControlCausePage.getCurrent(),sarStandIssueControlCausePage.getSize()); + } + return sarStandIssueControlCauseDao.selectPage(standIssueControlCausePage,sarStandIssueControlCauseQueryWrapper); + + } + + /** + * 分页查询历史数据 + * @param sarStandIssueControlCausePage:筛选信息、分页信息 + * @return IPage + */ + @Override + public IPage getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage) { + QueryWrapper sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>(); + //仅查询关闭的 + sarStandIssueControlCauseQueryWrapper.eq("close_state",2); + if(sarStandIssueControlCausePage.getStandId()!=null){ + sarStandIssueControlCauseQueryWrapper.eq("stand_id",sarStandIssueControlCausePage.getStandId()).or().like("stand_name","%"+sarStandIssueControlCausePage.getStandId()+"%"); + } + if(sarStandIssueControlCausePage.getProductName()!=null){ + sarStandIssueControlCauseQueryWrapper.like("product_name","%"+sarStandIssueControlCausePage.getProductName()+"%"); + } + if(sarStandIssueControlCausePage.getResponsibleUnit()!=null){ + sarStandIssueControlCauseQueryWrapper.eq("responsible_unit",sarStandIssueControlCausePage.getResponsibleUnit()); + } + Page standIssueControlCausePage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandIssueControlCausePage.getCurrent()!=null&&sarStandIssueControlCausePage.getSize()!=null){ + standIssueControlCausePage=new Page<>(sarStandIssueControlCausePage.getCurrent(),sarStandIssueControlCausePage.getSize()); + } + return sarStandIssueControlCauseDao.selectPage(standIssueControlCausePage,sarStandIssueControlCauseQueryWrapper); + } + + /** + * 批量关闭 + * @param standIssueControlCauseListVO:问题ID列表 + * @return List:关闭失败的ID列表 + */ + @Override + public List closeSarStandIssueControlCauseList(StandIssueControlCauseListVO standIssueControlCauseListVO) { + List failIds=new ArrayList<>(); + for(String id:standIssueControlCauseListVO.getIds()){ + boolean success=closeSarStandIssueControlCause(id); + if(!success){ + failIds.add(id); + } + } + return failIds; + } + + /** + * 获得excel导出的数据 + * @param standIssueControlCauseExcelVO :筛选ID + * @return List + */ + @Override + public List getStandIssueControlCauseExcelData(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO) { + QueryWrapper sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>(); + sarStandIssueControlCauseQueryWrapper.eq("close_state",1); + if(standIssueControlCauseExcelVO.getIds()!=null&&standIssueControlCauseExcelVO.getIds().size()>0){ + sarStandIssueControlCauseQueryWrapper.in("id",standIssueControlCauseExcelVO.getIds()); + } + return sarStandIssueControlCauseDao.selectList(sarStandIssueControlCauseQueryWrapper); + } + + /** + * 问题关闭 + * @param standIssueControlCauseId:ID + * @return boolean + */ + private boolean closeSarStandIssueControlCause(String standIssueControlCauseId){ + SarStandIssueControlCause sarStandIssueControlCause=sarStandIssueControlCauseDao.selectById(standIssueControlCauseId); + //判断是否存在 + if(sarStandIssueControlCause==null){ + return false; + } + //判断是否已关闭 + if(sarStandIssueControlCause.getCloseState()==2){ + return false; + } + sarStandIssueControlCause.setCloseState(2); + sarStandIssueControlCause.setActualCloseTime(new Timestamp(new Date().getTime())); + sarStandIssueControlCauseDao.updateById(sarStandIssueControlCause); + return true; + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/controller/SarStandIssueControlProductController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/controller/SarStandIssueControlProductController.java new file mode 100644 index 00000000..62816d52 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/controller/SarStandIssueControlProductController.java @@ -0,0 +1,122 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.ResponseMessageCodeEnum; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO; +import com.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO; +import com.adc.da.slrs.sarStandIssueControlProduct.service.ISarStandIssueControlProductService; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; +import com.adc.da.slrs.sarStandardsInfo.controller.SarStandardsInfoController; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.List; + +/** +*

    + * 前端控制器 + *

    +* +* @author zxy +* @since 2021-06-17 +*/ +@RestController +@Api(tags = "|重点问题项管控-产品规划部|") +@RequestMapping("/api/sarStandIssueControlProduct/sar-stand-issue-control-product") +public class SarStandIssueControlProductController extends BaseController { + + private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class); + + @Autowired + private ISarStandIssueControlProductService sarStandIssueControlProductService; + + + /** + * 分页查询 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询") + @GetMapping + public ResponseMessage> getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage){ + IPage sarStandIssueControlCauseIPage=sarStandIssueControlProductService.getSarStandIssueControlProductPage(sarStandIssueControlProductPage); + return Result.success(sarStandIssueControlCauseIPage); + } + + /** + * 分页查询历史数据 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询历史数据") + @GetMapping("/history") + public ResponseMessage> getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage){ + IPage sarStandIssueControlProductIPage=sarStandIssueControlProductService.getSarStandIssueControlProductHistoryPage(sarStandIssueControlProductPage); + return Result.success(sarStandIssueControlProductIPage); + } + + /** + * 批量关闭 + * @param standIssueControlProductListVO:重大问题ID列表 + * @return ResponseMessage>:关闭失败的重大问题ID列表 + */ + @ApiOperation("批量关闭") + @PostMapping("/close") + public ResponseMessage> closeSarStandIssueControlCause(@RequestBody StandIssueControlProductListVO standIssueControlProductListVO){ + if(standIssueControlProductListVO==null||standIssueControlProductListVO.getIds().size()==0){ + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入ID",null); + } + List failIds=sarStandIssueControlProductService.closeSarStandIssueControlProductList(standIssueControlProductListVO); + if(failIds==null||failIds.size()==0){ + return Result.success(null); + }else { + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"部分关闭失败",null); + } + } + + @ApiOperation("导出Excel表") + @GetMapping(value = "/exportStandUnqulifiedExcel") + public void exportStandardsInfoExcel(StandIssueControlProductExcelVO standIssueControlProductExcelVO, HttpServletResponse response) throws Exception { + // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + if(standIssueControlProductExcelVO.getExportName()==null){ + standIssueControlProductExcelVO.setExportName("产品规划部重点问题项管控"); + } + String fileName = URLEncoder.encode(standIssueControlProductExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + List data=sarStandIssueControlProductService.getStandIssueControlProductExcelData(standIssueControlProductExcelVO); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), SarStandIssueControlProduct.class).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(data); + } catch (Exception e) { + System.out.println(e); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(Result.error())); + } + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/dao/SarStandIssueControlProductDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/dao/SarStandIssueControlProductDao.java new file mode 100644 index 00000000..e317ffc3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/dao/SarStandIssueControlProductDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.dao; + +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author super_liu + * @since 2021-06-17 + */ +public interface SarStandIssueControlProductDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProduct.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProduct.java new file mode 100644 index 00000000..ca929c35 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProduct.java @@ -0,0 +1,131 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.sql.Timestamp; +import java.time.LocalDateTime; + +import com.adc.da.slrs.sarStandUnqualified.utils.TimestampConverter; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

    + * + *

    + * + * @author super_liu + * @since 2021-06-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarStandIssueControlProduct对象", description="产品规划部重大问题管控") +public class SarStandIssueControlProduct extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ExcelProperty("创建部门") + @ApiModelProperty(value = "创建部门") + @TableField("CREATE_DEPT_ID") + private String createDeptId; + + @ExcelProperty("创建人") + @ApiModelProperty(value = "创建人") + @TableField("CREATE_BY_ID") + private String createById; + + @ExcelProperty(value = "创建时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("CREATE_TIME") + private Timestamp createTime; + + @ExcelIgnore + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + @TableField("CLOSE_STATE") + private Integer closeState; + + @ExcelIgnore + @ApiModelProperty(value = "实际关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("ACTUAL_CLOSE_TIME") + private Timestamp actualCloseTime; + + @ExcelProperty(value = "要求关闭时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "要求关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("REQUIRE_CLOSE_TIME") + private Timestamp requireCloseTime; + + @ExcelProperty("平台") + @ApiModelProperty(value = "平台") + @TableField("PLATFORM") + private String platform; + + @ExcelProperty("业务") + @ApiModelProperty(value = "业务") + @TableField("BUSINESS") + private String business; + + @ExcelProperty("符合性状态") + @ApiModelProperty(value = "符合性状态") + @TableField("CONFORMANCE_STATE") + private String conformanceState; + + @ExcelProperty("责任工程师") + @ApiModelProperty(value = "责任工程师") + @TableField("DUTY_ENGINEER") + private String dutyEngineer; + + @ExcelProperty("责任部门") + @ApiModelProperty(value = "责任部门") + @TableField("RESPONSIBLE_UNIT") + private String responsibleUnit; + + @ExcelProperty("实施要求") + @ApiModelProperty(value = "实施要求") + @TableField("IMPLEMENT_DEMAND") + private String implementDemand; + + @ExcelProperty(value = "实施时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "实施时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("IMPLEMENT_TIME") + private Timestamp implementTime; + + @ExcelProperty("当前节点") + @ApiModelProperty(value = "当前节点") + @TableField("CURRENT_NODE") + private String currentNode; + + @ExcelProperty(value = "标准名称/政策名称") + @ApiModelProperty(value = "标准名称/政策名称") + @TableField("STAND_NAME") + private String standName; + + @ExcelProperty("标准编号/政策编号") + @ApiModelProperty(value = "标准编号/政策编号") + @TableField("STAND_ID") + private String standId; + + @ExcelIgnore + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProductPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProductPage.java new file mode 100644 index 00000000..eec3a722 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/SarStandIssueControlProductPage.java @@ -0,0 +1,91 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Timestamp; +import java.time.LocalDateTime; + +@Data +@ApiModel(description = "产品规划部重大问题管控分页") +public class SarStandIssueControlProductPage { + + @ApiModelProperty(value = "创建部门") + @TableField("CREATE_DEPT_ID") + private String createDeptId; + + @ApiModelProperty(value = "创建人") + @TableField("CREATE_BY_ID") + private String createById; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATE_TIME") + private Timestamp createTime; + + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + @TableField("CLOSE_STATE") + private Integer closeState; + + @ApiModelProperty(value = "实际关闭时间") + @TableField("ACTUAL_CLOSE_TIME") + private Timestamp actualCloseTime; + + @ApiModelProperty(value = "要求关闭时间") + @TableField("REQUIRE_CLOSE_TIME") + private Timestamp requireCloseTime; + + @ApiModelProperty(value = "平台") + @TableField("PLANTFORM") + private String plantform; + + @ApiModelProperty(value = "业务") + @TableField("BUSINESS") + private String business; + + @ApiModelProperty(value = "符合性状态") + @TableField("CONFORMANCE_STATE") + private String conformanceState; + + @ApiModelProperty(value = "责任工程师") + @TableField("DUTY_ENGINEER") + private String dutyEngineer; + + @ApiModelProperty(value = "责任部门") + @TableField("RESPONSIBLE_UNIT") + private String responsibleUnit; + + @ApiModelProperty(value = "实施要求") + @TableField("IMPLEMEN_DEMAND") + private String implemenDemand; + + @ApiModelProperty(value = "实施时间") + @TableField("IMPLEMENT_TIME") + private Timestamp implementTime; + + @ApiModelProperty(value = "当前节点") + @TableField("CURRENT_NODE") + private String currentNode; + + @ApiModelProperty(value = "标准名称/政策名称") + @TableField("STAND_NAME") + private String standName; + + @ApiModelProperty(value = "标准编号/政策编号") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + + @ApiModelProperty("当前页") + private Integer current; + + @ApiModelProperty("每页条数") + private Integer size; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductExcelVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductExcelVO.java new file mode 100644 index 00000000..4b91393d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductExcelVO.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "ExcelVO类") +public class StandIssueControlProductExcelVO { + @ApiModelProperty("文件名") + String exportName; + @ApiModelProperty("导出的ID列表") + List ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductListVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductListVO.java new file mode 100644 index 00000000..ee0b3e5b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/entity/StandIssueControlProductListVO.java @@ -0,0 +1,12 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class StandIssueControlProductListVO { + @ApiModelProperty("ID列表") + private List Ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/ISarStandIssueControlProductService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/ISarStandIssueControlProductService.java new file mode 100644 index 00000000..d08b48f4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/ISarStandIssueControlProductService.java @@ -0,0 +1,51 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.service; + +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zxy + * @since 2021-06-17 + */ +public interface ISarStandIssueControlProductService extends IService { + + /** + * 分页查询 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return IPage + */ + IPage getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage); + + /** + * 分页查询 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return IPage + */ + IPage getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage); + + /** + * 批量关闭 + * @param standIssueControlProductListVO:关闭ID列表 + * @return List:关闭失败的ID + */ + List closeSarStandIssueControlProductList(StandIssueControlProductListVO standIssueControlProductListVO); + + /** + * 获得导出excel的数据 + * @param standIssueControlProductExcelVO:导出的数据ID + * @return List + */ + List getStandIssueControlProductExcelData(StandIssueControlProductExcelVO standIssueControlProductExcelVO); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/impl/SarStandIssueControlProductServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/impl/SarStandIssueControlProductServiceImpl.java new file mode 100644 index 00000000..55701ecc --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIssueControlProduct/service/impl/SarStandIssueControlProductServiceImpl.java @@ -0,0 +1,135 @@ +package com.adc.da.slrs.sarStandIssueControlProduct.service.impl; + +import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct; +import com.adc.da.slrs.sarStandIssueControlProduct.dao.SarStandIssueControlProductDao; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO; +import com.adc.da.slrs.sarStandIssueControlProduct.service.ISarStandIssueControlProductService; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author super_liu + * @since 2021-06-17 + */ +@Service +public class SarStandIssueControlProductServiceImpl extends ServiceImpl implements ISarStandIssueControlProductService { + @Autowired + private SarStandIssueControlProductDao sarStandIssueControlProductDao; + /** + * 分页查询 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return IPage + */ + @Override + public IPage getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage) { + QueryWrapper sarStandIssueControlProductQueryWrapper=new QueryWrapper<>(); + //仅查询未关闭的 + sarStandIssueControlProductQueryWrapper.eq("close_state",1); + if(sarStandIssueControlProductPage.getStandId()!=null){ + sarStandIssueControlProductQueryWrapper.eq("stand_id",sarStandIssueControlProductPage.getStandId()).or().like("stand_name","%"+sarStandIssueControlProductPage.getStandId()+"%"); + } + if(sarStandIssueControlProductPage.getResponsibleUnit()!=null){ + sarStandIssueControlProductQueryWrapper.eq("responsible_unit",sarStandIssueControlProductPage.getResponsibleUnit()); + } + Page standIssueControlCausePage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandIssueControlProductPage.getCurrent()!=null&&sarStandIssueControlProductPage.getSize()!=null){ + standIssueControlCausePage=new Page<>(sarStandIssueControlProductPage.getCurrent(),sarStandIssueControlProductPage.getSize()); + } + return sarStandIssueControlProductDao.selectPage(standIssueControlCausePage,sarStandIssueControlProductQueryWrapper); + } + + /** + * 分页查询 + * @param sarStandIssueControlProductPage:筛选、分页信息 + * @return IPage + */ + @Override + public IPage getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage) { + QueryWrapper sarStandIssueControlProductQueryWrapper=new QueryWrapper<>(); + //仅查询关闭的 + sarStandIssueControlProductQueryWrapper.eq("close_state",2); + if(sarStandIssueControlProductPage.getStandId()!=null){ + sarStandIssueControlProductQueryWrapper.eq("stand_id",sarStandIssueControlProductPage.getStandId()).or().like("stand_name","%"+sarStandIssueControlProductPage.getStandId()+"%"); + } + if(sarStandIssueControlProductPage.getResponsibleUnit()!=null){ + sarStandIssueControlProductQueryWrapper.eq("responsible_unit",sarStandIssueControlProductPage.getResponsibleUnit()); + } + Page standIssueControlCausePage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandIssueControlProductPage.getCurrent()!=null&&sarStandIssueControlProductPage.getSize()!=null){ + standIssueControlCausePage=new Page<>(sarStandIssueControlProductPage.getCurrent(),sarStandIssueControlProductPage.getSize()); + } + return sarStandIssueControlProductDao.selectPage(standIssueControlCausePage,sarStandIssueControlProductQueryWrapper); + + } + + /** + * 批量关闭 + * @param standIssueControlProductListVO:关闭ID列表 + * @return List:关闭失败的ID + */ + @Override + public List closeSarStandIssueControlProductList(StandIssueControlProductListVO standIssueControlProductListVO) { + List failIds=new ArrayList<>(); + for(String id:standIssueControlProductListVO.getIds()){ + boolean success=closeSarStandIssueControlProduct(id); + if(!success){ + failIds.add(id); + } + } + return failIds; + } + + /** + * 获得导出excel的数据 + * @param standIssueControlProductExcelVO:导出的数据ID + * @return List + */ + @Override + public List getStandIssueControlProductExcelData(StandIssueControlProductExcelVO standIssueControlProductExcelVO) { + QueryWrapper sarStandIssueControlProductQueryWrapper=new QueryWrapper<>(); + sarStandIssueControlProductQueryWrapper.eq("close_state",1); + if(standIssueControlProductExcelVO.getIds()!=null&&standIssueControlProductExcelVO.getIds().size()>0){ + sarStandIssueControlProductQueryWrapper.in("id",standIssueControlProductExcelVO.getIds()); + } + return sarStandIssueControlProductDao.selectList(sarStandIssueControlProductQueryWrapper); + } + + /** + * 问题关闭 + * @param standIssueControlCauseId:ID + * @return boolean + */ + private boolean closeSarStandIssueControlProduct(String standIssueControlCauseId){ + SarStandIssueControlProduct sarStandIssueControlProduct=sarStandIssueControlProductDao.selectById(standIssueControlCauseId); + //判断是否存在 + if(sarStandIssueControlProduct==null){ + return false; + } + //判断是否已关闭 + if(sarStandIssueControlProduct.getCloseState()==2){ + return false; + } + sarStandIssueControlProduct.setCloseState(2); + sarStandIssueControlProduct.setActualCloseTime(new Timestamp(new Date().getTime())); + sarStandIssueControlProductDao.updateById(sarStandIssueControlProduct); + return true; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/controller/SarStandProjectLibraryController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/controller/SarStandProjectLibraryController.java index 1535b10a..4bd89a81 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/controller/SarStandProjectLibraryController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/controller/SarStandProjectLibraryController.java @@ -3,6 +3,7 @@ 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.SarStandProjectLibraryDto; import com.adc.da.slrs.sarStandProjectLibrary.service.impl.SarStandProjectLibraryServiceImpl; import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -16,26 +17,58 @@ import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** -*

    - * 前端控制器 - *

    -* -* @author ZhangJin -* @since 2021-06-15 -*/ + *

    + * 前端控制器 + *

    + * + * @author ZhangJin + * @since 2021-06-15 + */ @RestController @Api(description = "|SarStandProjectLibrary|") -@RequestMapping("/sarStandProjectLibrary/sar-stand-project-library") +@RequestMapping("/api/sarStandProjectLibrary") public class SarStandProjectLibraryController extends BaseController { @Resource private SarStandProjectLibraryServiceImpl sarStandProjectLibraryService; - @GetMapping("/queryMaintenanceProject") - @ApiOperation("项目查询") - public ResponseMessage queryMaintenanceProject(@RequestParam(defaultValue = "1", value = "newStandPage")int Page, @RequestParam(defaultValue = "10", value = "newStandPageSize") int PageSize) { - IPage list = sarStandProjectLibraryService.queryMaintenanceProject(Page,PageSize); + + /** + * + * @param Page + * @param PageSize + * @param sarDto + * @return + * @author zj + * date 2021-06-22 + **/ + @GetMapping("/queryProject") + @ApiOperation("车型/项目库") + public ResponseMessage queryMaintenanceProject(@RequestParam(defaultValue = "1", value = "Page")int Page, @RequestParam(defaultValue = "10", value = "PageSize") int PageSize, + SarStandProjectLibraryDto sarDto) { + IPage MaintenanceList = sarStandProjectLibraryService.queryMaintenanceProject(Page,PageSize,sarDto); + IPage notMaintenanceList = sarStandProjectLibraryService.queryNotMaintenanceProject(Page,PageSize,sarDto); + Map map = new HashMap(); + map.put("Maintenance",MaintenanceList); + map.put("notMaintenance",notMaintenanceList); + return Result.success("200",map); + } + /** + * + * @param id + * @return + * @author zj + * date 2021-06-22 + **/ + @GetMapping("/queryById") + @ApiOperation("点击项目id查询") + public ResponseMessage queryByName(String id){ + List list = sarStandProjectLibraryService.queryById(id); return Result.success("200",list); } } + diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/entity/SarStandProjectLibraryDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/entity/SarStandProjectLibraryDto.java new file mode 100644 index 00000000..6f68f8ab --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/entity/SarStandProjectLibraryDto.java @@ -0,0 +1,38 @@ +package com.adc.da.slrs.sarStandProjectLibrary.entity; + + +import lombok.Data; + +import java.util.Date; + +/** + * //TODO + * + * @author 作者信息 + * @date 2021-06-16 + */ +@Data +public class SarStandProjectLibraryDto { + + private String projectPlatfor; + + private String projectNumber; + + private String projectName; + + private String projectClassification; + + private String projectStatus; + + private String projectGroup; + + private String projectStartDate; + + private String projectEndDate; + + private String currentNode; + + private String projectLevel; + + private String projectManager; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/ISarStandProjectLibraryService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/ISarStandProjectLibraryService.java deleted file mode 100644 index 10f24e5f..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/ISarStandProjectLibraryService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.adc.da.slrs.sarStandProjectLibrary.service; - -import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

    - * 服务类 - *

    - * - * @author super_liu - * @since 2021-06-02 - */ -public interface ISarStandProjectLibraryService extends IService { - - IPage queryMaintenanceProject(int current, int pageSize); -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/SarStandProjectLibraryService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/SarStandProjectLibraryService.java new file mode 100644 index 00000000..49eedc33 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/SarStandProjectLibraryService.java @@ -0,0 +1,13 @@ +package com.adc.da.slrs.sarStandProjectLibrary.service; + +import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary; +import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibraryDto; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +public interface SarStandProjectLibraryService { + IPage queryMaintenanceProject(int current, int pageSize, SarStandProjectLibraryDto sarDto); + IPage queryNotMaintenanceProject(int current, int pageSize, SarStandProjectLibraryDto sarDto); + List queryById(String id); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java index a55444bc..7ec7f63b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java @@ -2,14 +2,20 @@ package com.adc.da.slrs.sarStandProjectLibrary.service.impl; import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary; import com.adc.da.slrs.sarStandProjectLibrary.dao.SarStandProjectLibraryDao; -import com.adc.da.slrs.sarStandProjectLibrary.service.ISarStandProjectLibraryService; +import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibraryDto; +import com.adc.da.slrs.sarStandProjectLibrary.service.SarStandProjectLibraryService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.List; + /** *

    * 服务实现类 @@ -19,15 +25,101 @@ import org.springframework.stereotype.Service; * @since 2021-06-15 */ @Service -public class SarStandProjectLibraryServiceImpl extends ServiceImpl implements ISarStandProjectLibraryService { +public class SarStandProjectLibraryServiceImpl extends ServiceImpl implements SarStandProjectLibraryService { - @Autowired + @Resource private SarStandProjectLibraryDao sarStandProjectLibraryDao; + @Override - public IPage queryMaintenanceProject(int current,int pageSize) { - QueryWrapper wrapper= new QueryWrapper<>(); - wrapper.inSql("id", "select project_id from sar_stand_project_relation"); + public IPage queryMaintenanceProject(int current, int pageSize, SarStandProjectLibraryDto sarDto) { + SarStandProjectLibrary sar = new SarStandProjectLibrary(); + sar.setProjectPlatfor(sarDto.getProjectPlatfor()); + sar.setProjectNumber(sarDto.getProjectNumber()); + sar.setProjectName(sarDto.getProjectName()); + sar.setProjectClassification(sarDto.getProjectClassification()); + sar.setProjectStatus(sarDto.getProjectStatus()); + sar.setProjectGroup(sarDto.getProjectGroup()); + sar.setCurrentNode(sarDto.getCurrentNode()); + sar.setProjectLevel(sar.getProjectLevel()); + sar.setProjectManager(sarDto.getProjectManager()); + SimpleDateFormat formater = new SimpleDateFormat(); + formater.applyPattern("yyyy-MM-dd"); + try { + if (sarDto.getProjectStartDate()!=null){ + sar.setProjectStartDate(formater.parse(sarDto.getProjectStartDate())); + } + if (sarDto.getProjectEndDate()!=null){ + sar.setProjectEndDate(formater.parse(sarDto.getProjectEndDate())); + } + } catch (ParseException e) { + e.printStackTrace(); + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.inSql("id", "select project_id from sar_stand_project_relation") + .like(StringUtils.isNotEmpty(sar.getProjectPlatfor()),"project_platfor",sar.getProjectPlatfor()) + .like(StringUtils.isNotEmpty(sar.getProjectNumber()),"project_number",sar.getProjectNumber()) + .like(StringUtils.isNotEmpty(sar.getProjectName()),"project_name",sar.getProjectName()) + .like(StringUtils.isNotEmpty(sar.getProjectGroup()),"project_group",sar.getProjectGroup()) + .like(StringUtils.isNotEmpty(sar.getProjectClassification()),"project_classification",sar.getProjectClassification()) + .like(StringUtils.isNotEmpty(sar.getProjectStatus()),"project_status",sar.getProjectStatus()) + .like(StringUtils.isNotEmpty(sar.getCurrentNode()),"current_node",sar.getCurrentNode()) + .like(StringUtils.isNotEmpty(sar.getProjectLevel()),"project_level",sar.getProjectLevel()) + .like(StringUtils.isNotEmpty(sar.getProjectManager()),"project_manager",sar.getProjectManager()) + .ge(sar.getProjectStartDate()!=null,"project_start_date",sar.getProjectStartDate()) + .le(sar.getProjectEndDate()!=null,"project_end_date",sar.getProjectEndDate()); + return getSarStandProjectLibraryIPage(current, pageSize, wrapper); + } + + @Override + public IPage queryNotMaintenanceProject(int current, int pageSize, SarStandProjectLibraryDto sarDto) { + SarStandProjectLibrary sar = new SarStandProjectLibrary(); + sar.setProjectPlatfor(sarDto.getProjectPlatfor()); + sar.setProjectNumber(sarDto.getProjectNumber()); + sar.setProjectName(sarDto.getProjectName()); + sar.setProjectClassification(sarDto.getProjectClassification()); + sar.setProjectStatus(sarDto.getProjectStatus()); + sar.setProjectGroup(sarDto.getProjectGroup()); + sar.setCurrentNode(sarDto.getCurrentNode()); + sar.setProjectLevel(sar.getProjectLevel()); + sar.setProjectManager(sarDto.getProjectManager()); + SimpleDateFormat formater = new SimpleDateFormat(); + formater.applyPattern("yyyy-MM-dd"); + try { + if (sarDto.getProjectStartDate()!=null){ + sar.setProjectStartDate(formater.parse(sarDto.getProjectStartDate())); + } + if (sarDto.getProjectEndDate()!=null){ + sar.setProjectEndDate(formater.parse(sarDto.getProjectEndDate())); + } + } catch (ParseException e) { + e.printStackTrace(); + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.notInSql("id", "select project_id from sar_stand_project_relation") + .like(StringUtils.isNotEmpty(sar.getProjectPlatfor()),"project_platfor",sar.getProjectPlatfor()) + .like(StringUtils.isNotEmpty(sar.getProjectNumber()),"project_number",sar.getProjectNumber()) + .like(StringUtils.isNotEmpty(sar.getProjectName()),"project_name",sar.getProjectName()) + .like(StringUtils.isNotEmpty(sar.getProjectGroup()),"project_group",sar.getProjectGroup()) + .like(StringUtils.isNotEmpty(sar.getProjectClassification()),"project_classification",sar.getProjectClassification()) + .like(StringUtils.isNotEmpty(sar.getProjectStatus()),"project_status",sar.getProjectStatus()) + .like(StringUtils.isNotEmpty(sar.getCurrentNode()),"current_node",sar.getCurrentNode()) + .like(StringUtils.isNotEmpty(sar.getProjectLevel()),"project_level",sar.getProjectLevel()) + .like(StringUtils.isNotEmpty(sar.getProjectManager()),"project_manager",sar.getProjectManager()) + .ge(sar.getProjectStartDate()!=null,"project_start_date",sar.getProjectStartDate()) + .le(sar.getProjectEndDate()!=null,"project_end_date",sar.getProjectEndDate()); + return getSarStandProjectLibraryIPage(current, pageSize, wrapper); + } + + @Override + public List queryById(String id) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("id",id); + List list = sarStandProjectLibraryDao.selectList(wrapper); + return list; + } + + private IPage getSarStandProjectLibraryIPage(int current, int pageSize, QueryWrapper wrapper) { Page page = new Page<>(current, pageSize); IPage userIPage = sarStandProjectLibraryDao.selectPage(page, wrapper); System.out.println("总条数"+userIPage.getTotal()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/controller/SarStandUnqualifiedController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/controller/SarStandUnqualifiedController.java index 87b321e4..61b9e5c7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/controller/SarStandUnqualifiedController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/controller/SarStandUnqualifiedController.java @@ -1,15 +1,42 @@ package com.adc.da.slrs.sarStandUnqualified.controller; +import com.adc.da.common.ReadExcel; +import com.adc.da.exception.AdcDaBaseException; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.ResponseMessageCodeEnum; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualifiedPage; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedListVO; import com.adc.da.slrs.sarStandUnqualified.service.ISarStandUnqualifiedService; +import com.adc.da.slrs.sarStandardsInfo.controller.SarStandardsInfoController; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.adc.da.slrs.sarStandardsInfo.entity.StandardsInfoExcelVO; +import com.adc.da.utils.util.StandExportUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.util.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; + /** *

    * 前端控制器 @@ -20,10 +47,81 @@ import com.adc.da.base.web.BaseController; */ @RestController @Api(tags = "未符合项整改") -@RequestMapping("/sarStandUnqualified/sar-stand-unqualified") +@RequestMapping("/api/sarStandUnqualified/sar-stand-unqualified") public class SarStandUnqualifiedController extends BaseController { + + private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class); + @Autowired private ISarStandUnqualifiedService sarStandUnqualifiedService; + /** + * 分页查询未符合项 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询未符合项") + @GetMapping + public ResponseMessage> getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage){ + IPage sarStandUnqualifiedIPage=sarStandUnqualifiedService.getSarStandUnqualifiedPage(sarStandUnqualifiedPage); + return Result.success(sarStandUnqualifiedIPage); + } + /** + * 分页查询未符合项历史数据 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return ResponseMessage> + */ + @ApiOperation("分页查询未符合项历史数据") + @GetMapping("/history") + public ResponseMessage> getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage){ + IPage sarStandUnqualifiedIPage=sarStandUnqualifiedService.getSarStandUnqualifiedHistoryPage(sarStandUnqualifiedPage); + return Result.success(sarStandUnqualifiedIPage); + } + + /** + * 批量关闭未符合项 + * @param standUnqualifiedListVO:未符合项ID列表 + * @return ResponseMessage>:关闭失败的未符合项ID + */ + @ApiOperation("批量关闭未符合项") + @PostMapping("/close") + public ResponseMessage> closeSarStandUnqualified(StandUnqualifiedListVO standUnqualifiedListVO){ + if(standUnqualifiedListVO==null||standUnqualifiedListVO.getIds().size()==0){ + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入未符合项ID",null); + } + List failIds=sarStandUnqualifiedService.closeSarStandUnqualifiedList(standUnqualifiedListVO); + if(failIds==null||failIds.size()==0){ + return Result.success(null); + }else { + return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"部分未符合项关闭失败",null); + } + } + + @ApiOperation("导出Excel表") + @GetMapping(value = "/exportStandUnqulifiedExcel") + public void exportStandardsInfoExcel(StandUnqualifiedExcelVO standUnqualifiedExcelVO, HttpServletResponse response) throws Exception { + // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + if(standUnqualifiedExcelVO.getExportName()==null){ + standUnqualifiedExcelVO.setExportName("未符合项信息"); + } + String fileName = URLEncoder.encode(standUnqualifiedExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + List data=sarStandUnqualifiedService.getStandUnqualifiedExcelData(standUnqualifiedExcelVO); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), SarStandUnqualified.class).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(data); + } catch (Exception e) { + System.out.println(e); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(Result.error())); + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualified.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualified.java index d0ea4bc6..2dd65a21 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualified.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualified.java @@ -1,14 +1,22 @@ package com.adc.da.slrs.sarStandUnqualified.entity; import com.adc.da.base.entity.BaseEntity; -import java.time.LocalDateTime; + +import java.sql.Timestamp; + +import com.adc.da.slrs.sarStandUnqualified.utils.ProductTypeConverter; +import com.adc.da.slrs.sarStandUnqualified.utils.TimestampConverter; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; /** *

    @@ -26,74 +34,104 @@ public class SarStandUnqualified extends BaseEntity { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "创建部门") - @TableField("CREATE_DEPT_ID") - private String createDeptId; - - @ApiModelProperty(value = "创建人") - @TableField("CREATE_BY_ID") - private String createById; - - @ApiModelProperty(value = "创建时间") - @TableField("CREATE_TIME") - private LocalDateTime createTime; - - @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") - @TableField("CLOSE_STATE") - private Integer closeState; - - @ApiModelProperty(value = "实际关闭时间") - @TableField("ACTUAL_CLOSE_TIME") - private LocalDateTime actualCloseTime; - - @ApiModelProperty(value = "计划关闭时间") - @TableField("PLAN_CLOSE_TIME") - private LocalDateTime planCloseTime; - - @ApiModelProperty(value = "质量工程师") - @TableField("QA_ENGINEER") - private String qaEngineer; - - @ApiModelProperty(value = "认证工程师") - @TableField("AUTH_ENGINEER") - private String authEngineer; - - @ApiModelProperty(value = "责任工程师") - @TableField("DUTY_ENGINEER") - private String dutyEngineer; - - @ApiModelProperty(value = "责任部门") - @TableField("RESPONSIBLE_UNIT") - private String responsibleUnit; - - @ApiModelProperty(value = "项目名称") - @TableField("PRODUCT_NAME") - private String productName; - - @ApiModelProperty(value = "产品线") - @TableField("PRODUCT_LINE") - private String productLine; - - @ApiModelProperty(value = "产品类型(research为在研产品,product为在产产品)") - @TableField("PRODUCT_TYPE") - private String productType; - - @ApiModelProperty(value = "条款名称") - @TableField("ITEMS_NAME") - private String itemsName; - - @ApiModelProperty(value = "条款号") - @TableField("ITEMS_NUM") - private String itemsNum; - - @ApiModelProperty(value = "标准名称") - @TableField("STAND_NAME") - private String standName; - + @ExcelProperty("标准编号") @ApiModelProperty(value = "标准ID") @TableField("STAND_ID") private String standId; + @ExcelProperty("标准名称") + @ApiModelProperty(value = "标准名称") + @TableField("STAND_NAME") + private String standName; + + @ExcelProperty("条款号") + @ApiModelProperty(value = "条款号") + @TableField("ITEMS_NUM") + private String itemsNum; + + @ExcelProperty("条款名称") + @ApiModelProperty(value = "条款名称") + @TableField("ITEMS_NAME") + private String itemsName; + + @ExcelProperty("产品线") + @ApiModelProperty(value = "产品线") + @TableField("PRODUCT_LINE") + private String productLine; + + @ExcelProperty("责任部门") + @ApiModelProperty(value = "责任部门") + @TableField("RESPONSIBLE_UNIT") + private String responsibleUnit; + + @ExcelProperty("项目名称") + @ApiModelProperty(value = "项目名称") + @TableField("PRODUCT_NAME") + private String productName; + + @ExcelProperty("创建部门") + @ApiModelProperty(value = "创建部门") + @TableField("CREATE_DEPT_ID") + private String createDeptId; + + @ExcelProperty("创建人") + @ApiModelProperty(value = "创建人") + @TableField("CREATE_BY_ID") + private String createById; + + @ExcelProperty(value = "创建时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("CREATE_TIME") + private Timestamp createTime; + + @ExcelIgnore + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + @TableField("CLOSE_STATE") + private Integer closeState; + + @ExcelIgnore + @ApiModelProperty(value = "实际关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("ACTUAL_CLOSE_TIME") + private Timestamp actualCloseTime; + + @ExcelProperty(value = "计划关闭时间",converter = TimestampConverter.class) + @ApiModelProperty(value = "计划关闭时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("PLAN_CLOSE_TIME") + private Timestamp planCloseTime; + + @ApiModelProperty(value = "未符合原因") + @TableField("REASON") + private String reason; + + @ExcelProperty("质量工程师") + @ApiModelProperty(value = "质量工程师") + @TableField("QA_ENGINEER") + private String qaEngineer; + + @ExcelProperty("认证工程师") + @ApiModelProperty(value = "认证工程师") + @TableField("AUTH_ENGINEER") + private String authEngineer; + + @ExcelProperty("责任工程师") + @ApiModelProperty(value = "责任工程师") + @TableField("DUTY_ENGINEER") + private String dutyEngineer; + + + + @ExcelProperty(value = "产品类型",converter = ProductTypeConverter.class) + @ApiModelProperty(value = "产品类型(research为在研产品,product为在产产品)") + @TableField("PRODUCT_TYPE") + private String productType; + + @ExcelIgnore @ApiModelProperty(value = "主键") @TableId("ID") private String id; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualifiedPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualifiedPage.java new file mode 100644 index 00000000..c2801a4c --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/SarStandUnqualifiedPage.java @@ -0,0 +1,88 @@ +package com.adc.da.slrs.sarStandUnqualified.entity; + +import com.adc.da.base.entity.BaseEntity; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonBackReference; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author super_liu + * @since 2021-06-15 + */ +@Data +@ApiModel(value="SarStandUnqualifiedPage对象", description="") +public class SarStandUnqualifiedPage { + + @ApiModelProperty(value = "创建部门") + private String createDeptId; + + @ApiModelProperty(value = "创建人") + private String createById; + + @ApiModelProperty(value = "创建时间") + private Timestamp createTime; + + @ApiModelProperty(value = "关闭状态(1为开启,2为关闭)") + private Integer closeState; + + @ApiModelProperty(value = "实际关闭时间") + private Timestamp actualCloseTime; + + @ApiModelProperty(value = "计划关闭时间") + private Timestamp planCloseTime; + + @ApiModelProperty(value = "质量工程师") + private String qaEngineer; + + @ApiModelProperty(value = "认证工程师") + private String authEngineer; + + @ApiModelProperty(value = "责任工程师") + private String dutyEngineer; + + @ApiModelProperty(value = "责任部门") + private String responsibleUnit; + + @ApiModelProperty(value = "项目名称") + private String productName; + + @ApiModelProperty(value = "产品线") + private String productLine; + + @ApiModelProperty(value = "产品类型(research为在研产品,product为在产产品)") + private String productType; + + @ApiModelProperty(value = "条款名称") + private String itemsName; + + @ApiModelProperty(value = "条款号") + private String itemsNum; + + @ApiModelProperty(value = "标准名称") + private String standName; + + @ApiModelProperty(value = "标准ID") + private String standId; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty("当前页") + private Integer current; + + @ApiModelProperty("每页条数") + private Integer size; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedExcelVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedExcelVO.java new file mode 100644 index 00000000..830e23c1 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedExcelVO.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandUnqualified.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "未符合项ExcelVO类") +public class StandUnqualifiedExcelVO { + @ApiModelProperty("文件名") + String exportName; + @ApiModelProperty("导出的未符合项ID列表") + List ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedListVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedListVO.java new file mode 100644 index 00000000..eb045402 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/entity/StandUnqualifiedListVO.java @@ -0,0 +1,12 @@ +package com.adc.da.slrs.sarStandUnqualified.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class StandUnqualifiedListVO { + @ApiModelProperty("未符合项ID列表") + private List Ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/ISarStandUnqualifiedService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/ISarStandUnqualifiedService.java index 765bc8bc..4d7873ca 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/ISarStandUnqualifiedService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/ISarStandUnqualifiedService.java @@ -1,8 +1,14 @@ package com.adc.da.slrs.sarStandUnqualified.service; import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualifiedPage; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedListVO; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

    * 服务类 @@ -13,4 +19,31 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISarStandUnqualifiedService extends IService { + /** + * 分页查询未符合项 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return:IPage + */ + IPage getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage); + + /** + * 分页查询未符合项历史数据 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return:IPage + */ + IPage getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage); + + /** + * 批量关闭未符合项 + * @param standUnqualifiedListVO :要关闭的未符合项目列表 + * @return + */ + List closeSarStandUnqualifiedList(StandUnqualifiedListVO standUnqualifiedListVO); + + /** + * 获取导出excel的数据 + * @param standUnqualifiedExcelVO:ids + * @return List + */ + List getStandUnqualifiedExcelData(StandUnqualifiedExcelVO standUnqualifiedExcelVO); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/impl/SarStandUnqualifiedServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/impl/SarStandUnqualifiedServiceImpl.java index 66d459c9..bfa7a494 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/impl/SarStandUnqualifiedServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/service/impl/SarStandUnqualifiedServiceImpl.java @@ -2,9 +2,23 @@ package com.adc.da.slrs.sarStandUnqualified.service.impl; import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified; import com.adc.da.slrs.sarStandUnqualified.dao.SarStandUnqualifiedDao; +import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualifiedPage; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO; +import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedListVO; import com.adc.da.slrs.sarStandUnqualified.service.ISarStandUnqualifiedService; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** *

    @@ -17,4 +31,112 @@ import org.springframework.stereotype.Service; @Service public class SarStandUnqualifiedServiceImpl extends ServiceImpl implements ISarStandUnqualifiedService { + @Autowired + private SarStandUnqualifiedDao sarStandUnqualifiedDao; + /** + * 分页查询未符合项 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return:IPage + */ + @Override + public IPage getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage) { + QueryWrapper sarStandUnqualifiedQueryWrapper=new QueryWrapper<>(); + if(sarStandUnqualifiedPage.getStandId()!=null){ + sarStandUnqualifiedQueryWrapper.and(wrapper->wrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandId()+"%")); +// sarStandUnqualifiedQueryWrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandId()+"%"); + } + //仅查询未关闭的 + sarStandUnqualifiedQueryWrapper.eq("close_state",1); + if(sarStandUnqualifiedPage.getProductName()!=null){ + sarStandUnqualifiedQueryWrapper.like("product_name","%"+sarStandUnqualifiedPage.getProductName()+"%"); + } + if(sarStandUnqualifiedPage.getResponsibleUnit()!=null){ + sarStandUnqualifiedQueryWrapper.eq("responsible_unit",sarStandUnqualifiedPage.getResponsibleUnit()); + } + Page standUnqualifiedPage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandUnqualifiedPage.getCurrent()!=null&&sarStandUnqualifiedPage.getSize()!=null){ + standUnqualifiedPage=new Page<>(sarStandUnqualifiedPage.getCurrent(),sarStandUnqualifiedPage.getSize()); + } + return sarStandUnqualifiedDao.selectPage(standUnqualifiedPage,sarStandUnqualifiedQueryWrapper); + } + + /** + * 分页查询未符合项历史数据 + * @param sarStandUnqualifiedPage:筛选、分页信息 + * @return:IPage + */ + @Override + public IPage getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage) { + QueryWrapper sarStandUnqualifiedQueryWrapper=new QueryWrapper<>(); + if(sarStandUnqualifiedPage.getStandId()!=null){ + sarStandUnqualifiedQueryWrapper.and(wrapper->wrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandId()+"%")); +// sarStandUnqualifiedQueryWrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandId()+"%"); + } + + //仅查询关闭的 + sarStandUnqualifiedQueryWrapper.eq("close_state",2); + if(sarStandUnqualifiedPage.getProductName()!=null){ + sarStandUnqualifiedQueryWrapper.like("product_name","%"+sarStandUnqualifiedPage.getProductName()+"%"); + } + if(sarStandUnqualifiedPage.getResponsibleUnit()!=null){ + sarStandUnqualifiedQueryWrapper.eq("responsible_unit",sarStandUnqualifiedPage.getResponsibleUnit()); + } + Page standUnqualifiedPage=new Page<>(); + //判断前端是否提供页码和每页条数 + if(sarStandUnqualifiedPage.getCurrent()!=null&&sarStandUnqualifiedPage.getSize()!=null){ + standUnqualifiedPage=new Page<>(sarStandUnqualifiedPage.getCurrent(),sarStandUnqualifiedPage.getSize()); + } + return sarStandUnqualifiedDao.selectPage(standUnqualifiedPage,sarStandUnqualifiedQueryWrapper); + + } + + /** + * 批量关闭未符合项 + * @param standUnqualifiedListVO :要关闭的未符合项目列表 + * @return List:失败的ID列表 + */ + @Transactional + @Override + public List closeSarStandUnqualifiedList(StandUnqualifiedListVO standUnqualifiedListVO) { + List failIds=new ArrayList<>(); + for(String id:standUnqualifiedListVO.getIds()){ + boolean success=closeSarStandUnqualified(id); + if(!success){ + failIds.add(id); + } + } + return failIds; + } + + /** + * 获取导出excel的数据 + * @param standUnqualifiedExcelVO:ids + * @return List + */ + @Override + public List getStandUnqualifiedExcelData(StandUnqualifiedExcelVO standUnqualifiedExcelVO) { + QueryWrapper sarStandUnqualifiedQueryWrapper=new QueryWrapper<>(); + sarStandUnqualifiedQueryWrapper.eq("close_state",1); + if(standUnqualifiedExcelVO.getIds()!=null&&standUnqualifiedExcelVO.getIds().size()>0){ + sarStandUnqualifiedQueryWrapper.in("id",standUnqualifiedExcelVO.getIds()); + } + return sarStandUnqualifiedDao.selectList(sarStandUnqualifiedQueryWrapper); + } + + private boolean closeSarStandUnqualified(String standUnqualifiedId){ + SarStandUnqualified sarStandUnqualified=sarStandUnqualifiedDao.selectById(standUnqualifiedId); + //判断是否存在 + if(sarStandUnqualified==null){ + return false; + } + //判断是否已关闭 + if(sarStandUnqualified.getCloseState()==2){ + return false; + } + sarStandUnqualified.setCloseState(2); + sarStandUnqualified.setActualCloseTime(new Timestamp(new Date().getTime())); + sarStandUnqualifiedDao.updateById(sarStandUnqualified); + return true; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/ProductTypeConverter.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/ProductTypeConverter.java new file mode 100644 index 00000000..168354ed --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/ProductTypeConverter.java @@ -0,0 +1,47 @@ +package com.adc.da.slrs.sarStandUnqualified.utils; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.CellData; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +/** + * excel产品类型转换 + */ +public class ProductTypeConverter implements Converter { + //在java中性别是用 0 1 来标识的 所以是int + @Override + public Class supportJavaTypeKey() {return String.class;} + // 在excel中是男女 所以是string + @Override + public CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;} + //将excel的数据类型转为java数据类型 + @Override + public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { + String stringValue = cellData.getStringValue(); + if (stringValue != null) { + if(stringValue.equals("在研产品")){ + return "research"; + } + if(stringValue.equals("在产产品")){ + return "product"; + } + } + return null; + } + + @Override + public CellData convertToExcelData(String s, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { + if(s!=null){ + if(s.equals("research")){ + return new CellData<>("在研产品"); + } + if(s.equals("product")){ + return new CellData<>("在产产品"); + } + } + return null; + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/TimestampConverter.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/TimestampConverter.java new file mode 100644 index 00000000..feafea8c --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandUnqualified/utils/TimestampConverter.java @@ -0,0 +1,42 @@ +package com.adc.da.slrs.sarStandUnqualified.utils; + +import com.adc.da.utils.util.DateUtil; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.CellData; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.sql.Timestamp; +import java.text.ParseException; +import java.time.format.DateTimeFormatter; +import java.util.Date; + +/** + * excel输出时Timestamp和String的转换 + */ +public class TimestampConverter implements Converter { + + @Override + public Class supportJavaTypeKey() { + return Timestamp.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public Timestamp convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) throws ParseException { + return new Timestamp(DateUtil.stingToDate(cellData.getDataFormatString(),"yyyy-MM-dd HH:mm:ss").getTime()); + } + + @Override + public CellData convertToExcelData(Timestamp value, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + return new CellData<>(DateUtil.dateToString(new Date(value.getTime()),"yyyy-MM-dd HH:mm:ss")); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationForeignStandardController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationForeignStandardController.java similarity index 62% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationForeignStandardController.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationForeignStandardController.java index e09d97fe..74662767 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationForeignStandardController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationForeignStandardController.java @@ -1,8 +1,8 @@ -package com.adc.da.slrs.sarInterpretationStandard.controller; +package com.adc.da.slrs.sarStandardComplianceAssessResult.controller; import org.springframework.web.bind.annotation.RequestMapping; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationForeignStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationForeignStandard; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; @@ -13,11 +13,12 @@ import com.adc.da.base.web.BaseController; *

    * * @author zyl -* @since 2021-06-16 +* @since 2021-06-18 */ @RestController @Api(description = "|SarInterpretationForeignStandard|") -@RequestMapping("/sarInterpretationStandard/sar-interpretation-foreign-standard") +@RequestMapping("/sarStandardComplianceAssessResult/sar-interpretation-foreign-standard") public class SarInterpretationForeignStandardController extends BaseController { + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationNationalStandardController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationNationalStandardController.java similarity index 62% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationNationalStandardController.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationNationalStandardController.java index 50cbd956..c0d1a370 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/controller/SarInterpretationNationalStandardController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarInterpretationNationalStandardController.java @@ -1,8 +1,8 @@ -package com.adc.da.slrs.sarInterpretationStandard.controller; +package com.adc.da.slrs.sarStandardComplianceAssessResult.controller; import org.springframework.web.bind.annotation.RequestMapping; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationNationalStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationNationalStandard; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; @@ -13,11 +13,11 @@ import com.adc.da.base.web.BaseController; *

    * * @author zyl -* @since 2021-06-16 +* @since 2021-06-18 */ @RestController @Api(description = "|SarInterpretationNationalStandard|") -@RequestMapping("/sarInterpretationStandard/sar-interpretation-national-standard") +@RequestMapping("/sarStandardComplianceAssessResult/sar-interpretation-national-standard") public class SarInterpretationNationalStandardController extends BaseController { } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java index de342746..b637499d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java @@ -4,22 +4,12 @@ package com.adc.da.slrs.sarStandardComplianceAssessResult.controller; import com.adc.da.base.web.BaseController; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationForeignStandard; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationNationalStandard; -import com.adc.da.slrs.sarInterpretationStandard.service.ISarInterpretationForeignStandardService; -import com.adc.da.slrs.sarInterpretationStandard.service.ISarInterpretationNationalStandardService; -import com.adc.da.slrs.sarProductStand.entity.SarProductStand; -import com.adc.da.slrs.sarProductStand.service.ISarProductStandService; import com.adc.da.slrs.sarSarAccessInfo.entity.SarSarAccessInfo; -import com.adc.da.slrs.sarSarAccessInfo.service.ISarSarAccessInfoService; -import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationForeignStandardEO; -import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationNationalStandardEO; -import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardComplianceProductAssessEO; -import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardsInfoEO; -import com.adc.da.slrs.sarStandardComplianceProductAssess.entity.SarStandardComplianceProductAssess; -import com.adc.da.slrs.sarStandardComplianceProductAssess.service.ISarStandardComplianceProductAssessService; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.*; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarInterpretationForeignStandardService; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarInterpretationNationalStandardService; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarStandardComplianceProductAssessService; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; -import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage; import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -33,27 +23,21 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** -*

    - * 标准法规准入清单详情表 前端控制器 - *

    -* -* @author super_liu -* @since 2021-06-02 -*/ + *

    + * 标准法规准入清单详情表 前端控制器 + *

    + * + * @author super_liu + * @since 2021-06-02 + */ @RestController @Api(tags = "福田标准法规--标准法规库--标准合规评估结果") @RequestMapping("/${restPath}/sarStandardComplianceAssessResult") -public class SarStandardComplianceAssessResultController extends BaseController { +public class SarStandardComplianceAssessResultController { private static final Logger logger = LoggerFactory.getLogger(SarStandardComplianceAssessResultController.class); - @Autowired - private ISarStandardsInfoService iSarStandardsInfoService; @Autowired private ISarStandardComplianceProductAssessService iSarStandardComplianceProductAssessService; @@ -65,48 +49,92 @@ public class SarStandardComplianceAssessResultController extends BaseController< @ApiOperation(value = "条件查询标准清单") @GetMapping("/standard") - public ResponseMessage> selectStandard(SarStandardsInfoEO eo) throws Exception { - QueryWrapper sarStandardsInfoQueryWrapper=new QueryWrapper<>(); + public ResponseMessage selectStandard(SarStandardsInfoEO eo) throws Exception { - if (eo.getStandName() != null) { - sarStandardsInfoQueryWrapper.like("STAND_NAME",eo.getStandName()); + if (eo.getStandApplicationType() == 1) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + queryWrapper.select("distinct STAND_ID, STAND_NUMBER, STAND_NAME, STAND_TYPE, INTERPRETATION_TIME"); + if (eo.getStandName() != null && !eo.getStandName().trim().equals("")) { + queryWrapper.like("STAND_NAME",eo.getStandName().trim()); + } + if (eo.getStandNumber() != null && !eo.getStandNumber().trim().equals("")) { + queryWrapper.like("STAND_NUMBER",eo.getStandNumber().trim()); + } + IPage page = iSarStandardComplianceProductAssessService.page(iPage, queryWrapper); + + while(page.getRecords().remove(null)); + + return Result.success(page); + }else { + if(eo.getPosition()==1){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + queryWrapper.select("distinct STAND_ID, STAND_NUMBER, STAND_NAME, STAND_TYPE, INTERPRETATION_TIME"); + if (eo.getStandName() != null && !eo.getStandName().trim().equals("")) { + queryWrapper.like("STAND_NAME",eo.getStandName().trim()); + } + if (eo.getStandNumber() != null && !eo.getStandNumber().trim().equals("")) { + queryWrapper.like("STAND_NUMBER",eo.getStandNumber().trim()); + } + IPage page = iSarInterpretationNationalStandardService.page(iPage, queryWrapper); + while(page.getRecords().remove(null)); + + return Result.success(page); + }else{ + QueryWrapper queryWrapper = new QueryWrapper<>(); + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + queryWrapper.select("distinct STAND_ID, STAND_NUMBER, STAND_NAME, STAND_TYPE, INTERPRETATION_TIME"); + if (eo.getStandName() != null && !eo.getStandName().trim().equals("")) { + queryWrapper.like("STAND_NAME",eo.getStandName().trim()); + } + if (eo.getStandNumber() != null && !eo.getStandNumber().trim().equals("")) { + queryWrapper.like("STAND_NUMBER",eo.getStandNumber().trim()); + } + + IPage page = iSarInterpretationForeignStandardService.page(iPage, queryWrapper); + while(page.getRecords().remove(null)); + return Result.success(page); + } } - if (eo.getStandNumber() != null) { - sarStandardsInfoQueryWrapper.like("STAND_NUMBER",eo.getStandNumber()); - } - - IPage iPage=new Page<>(eo.getCurrent(), eo.getSize()); - - return Result.success(iSarStandardsInfoService.page(iPage,sarStandardsInfoQueryWrapper)); } - @ApiOperation(value = "条件查询标准涉及项目符合性清单") @GetMapping("/product") public ResponseMessage> selectProduct(SarStandardComplianceProductAssessEO eo) throws Exception { - IPage iPage=new Page<>(eo.getCurrent(), eo.getSize()); - QueryWrapper queryWrapper=new QueryWrapper<>(); - if(eo.getProductName()!=null)queryWrapper.like("product_name",eo.getProductName()); - if(eo.getStandardId()!=null)queryWrapper.like("standard_id",eo.getStandardId()); - return Result.success(iSarStandardComplianceProductAssessService.page(iPage,queryWrapper)); + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (eo.getProductName() != null) queryWrapper.like("product_name", eo.getProductName()); + if (eo.getStandId() != null) queryWrapper.like("STAND_ID", eo.getStandId()); + if (eo.getInterpretationTime() != null) queryWrapper.eq("INTERPRETATION_TIME", eo.getInterpretationTime()); + + IPage page = iSarStandardComplianceProductAssessService.page(iPage, queryWrapper); + + while(page.getRecords().remove(null)); + + return Result.success(page); } - @ApiOperation(value = "条件查询标准涉及国内标准符合性清单") - @GetMapping("/nationalStandard") - public ResponseMessage> selectNationalStandard(SarInterpretationNationalStandardEO eo) throws Exception { - IPage iPage=new Page<>(eo.getCurrent(), eo.getSize()); - QueryWrapper queryWrapper=new QueryWrapper<>(); - if(eo.getStandardId()!=null)queryWrapper.like("standard_num",eo.getStandardId()); - return Result.success(iSarInterpretationNationalStandardService.page(iPage,queryWrapper)); + @ApiOperation(value = "条件查询技术审核符合性清单") + @GetMapping("/interpretation") + public ResponseMessage selectNationalStandard(InterpretationEO eo) throws Exception { + if (eo.getPosition()==1) { + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (eo.getInterpretationTime() != null) queryWrapper.eq("INTERPRETATION_TIME", eo.getInterpretationTime()); + if(eo.getStandId()!=null)queryWrapper.eq("STAND_ID",eo.getStandId()); + + IPage page = iSarInterpretationNationalStandardService.page(iPage, queryWrapper); + while(page.getRecords().remove(null)); + return Result.success(page); + } else { + IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (eo.getInterpretationTime() != null) queryWrapper.eq("INTERPRETATION_TIME", eo.getInterpretationTime()); + if(eo.getStandId()!=null)queryWrapper.eq("STAND_ID",eo.getStandId()); + IPage page = iSarInterpretationForeignStandardService.page(iPage, queryWrapper); + while(page.getRecords().remove(null)); + + return Result.success(page); + } } - @ApiOperation(value = "条件查询标准涉及国内标准符合性清单") - @GetMapping("/foreignStandard") - public ResponseMessage> selectForeignStandard(SarInterpretationForeignStandardEO eo) throws Exception { - IPage iPage=new Page<>(eo.getCurrent(), eo.getSize()); - QueryWrapper queryWrapper=new QueryWrapper<>(); - if(eo.getStandardId()!=null)queryWrapper.like("standard_num",eo.getStandardId()); - return Result.success(iSarInterpretationForeignStandardService.page(iPage,queryWrapper)); - } - - - } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/controller/SarStandardComplianceProductAssessController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceProductAssessController.java similarity index 62% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/controller/SarStandardComplianceProductAssessController.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceProductAssessController.java index 1b6f2dd0..6ed247de 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/controller/SarStandardComplianceProductAssessController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceProductAssessController.java @@ -1,8 +1,8 @@ -package com.adc.da.slrs.sarStandardComplianceProductAssess.controller; +package com.adc.da.slrs.sarStandardComplianceAssessResult.controller; import org.springframework.web.bind.annotation.RequestMapping; -import com.adc.da.slrs.sarStandardComplianceProductAssess.entity.SarStandardComplianceProductAssess; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardComplianceProductAssess; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; @@ -13,11 +13,11 @@ import com.adc.da.base.web.BaseController; *

    * * @author zyl -* @since 2021-06-16 +* @since 2021-06-18 */ @RestController @Api(description = "|SarStandardComplianceProductAssess|") -@RequestMapping("/sarStandardComplianceProductAssess/sar-standard-compliance-product-assess") +@RequestMapping("/sarStandardComplianceAssessResult/sar-standard-compliance-product-assess") public class SarStandardComplianceProductAssessController extends BaseController { } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationForeignStandardDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationForeignStandardDao.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationForeignStandardDao.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationForeignStandardDao.java index bcc60031..698cfcaa 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationForeignStandardDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationForeignStandardDao.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarInterpretationStandard.dao; +package com.adc.da.slrs.sarStandardComplianceAssessResult.dao; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationForeignStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationForeignStandard; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface SarInterpretationForeignStandardDao extends BaseMapper { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationNationalStandardDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationNationalStandardDao.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationNationalStandardDao.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationNationalStandardDao.java index 796a4e63..b01295a6 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/dao/SarInterpretationNationalStandardDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarInterpretationNationalStandardDao.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarInterpretationStandard.dao; +package com.adc.da.slrs.sarStandardComplianceAssessResult.dao; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationNationalStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationNationalStandard; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface SarInterpretationNationalStandardDao extends BaseMapper { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceAssessResultDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceAssessResultDao.java deleted file mode 100644 index 8028b6be..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceAssessResultDao.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceAssessResult.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; - -@Repository -@Mapper -public interface SarStandardComplianceAssessResultDao { - - - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/dao/SarStandardComplianceProductAssessDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/dao/SarStandardComplianceProductAssessDao.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java index d1781c87..93e7b580 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/dao/SarStandardComplianceProductAssessDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarStandardComplianceProductAssess.dao; +package com.adc.da.slrs.sarStandardComplianceAssessResult.dao; -import com.adc.da.slrs.sarStandardComplianceProductAssess.entity.SarStandardComplianceProductAssess; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardComplianceProductAssess; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface SarStandardComplianceProductAssessDao extends BaseMapper { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/InterpretationEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/InterpretationEO.java new file mode 100644 index 00000000..2b92fb9a --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/InterpretationEO.java @@ -0,0 +1,39 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@ApiModel("条件查询") +public class InterpretationEO { + +// @ApiModelProperty(value = "'审核编号'") +// private String interpretation_id; + + + @ApiModelProperty(value = "标准ID") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "评估时间") + @TableField("INTERPRETATION_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date interpretationTime; + + @ApiModelProperty(value = "国内(1)/外(2)") + private Integer position=1; + + @ApiModelProperty("页数") + private Integer current=1; + + @ApiModelProperty("页内数量") + private Integer size=20; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarBaseStandardInfo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarBaseStandardInfo.java new file mode 100644 index 00000000..90cc88c3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarBaseStandardInfo.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class SarBaseStandardInfo { + private String standard_id; + private String standard_number; + private String standard_name; + private String standard_type; + private LocalDateTime INTERPRETATION_TIME; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandard.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandard.java new file mode 100644 index 00000000..87930898 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandard.java @@ -0,0 +1,102 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarInterpretationForeignStandard对象", description="") +public class SarInterpretationForeignStandard extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "具体章条") + private String specificItem; + + @ApiModelProperty(value = "核心技术要求") + private String coreTechnicalRequirement; + + @ApiModelProperty(value = "相对于国行标差异点") + private String comparedDomesticStandard; + + @ApiModelProperty(value = "对应国行版(仅国外有)") + private String correspondDomesticStandard; + + private String complianceState; + + @ApiModelProperty(value = "上一版本号") + @TableField("LAST_VERSION_NUMBER") + private String lastVersionNumber; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + @ApiModelProperty(value = "标准ID") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "标准分类") + @TableField("STAND_TYPE") + private String standType; + + @ApiModelProperty(value = "标准类别") + @TableField("STAND_SORT") + private String standSort; + + @ApiModelProperty(value = "标准编号") + @TableField("STAND_NUMBER") + private String standNumber; + + @ApiModelProperty(value = "标准名称") + @TableField("STAND_NAME") + private String standName; + + + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "评估状态") + @TableField("INTERPRETATION_STATE") + private String interpretationState; + + @ApiModelProperty(value = "评估时间") + @TableField("INTERPRETATION_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date interpretationTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandardEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandardEO.java deleted file mode 100644 index b94c124d..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationForeignStandardEO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel("条件查询") -public class SarInterpretationForeignStandardEO { - - @ApiModelProperty(value = "'标准编号'") - private String standardId; - - @ApiModelProperty("页数") - private Integer current=1; - - @ApiModelProperty("页内数量") - private Integer size=20; - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandard.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandard.java new file mode 100644 index 00000000..cf78fea2 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandard.java @@ -0,0 +1,90 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarInterpretationNationalStandard对象", description="") +public class SarInterpretationNationalStandard extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "具体章条") + private String specificItem; + + @ApiModelProperty(value = "核心技术要求") + private String coreTechnicalRequirement; + + @ApiModelProperty(value = "相对于上一版本变化点") + private String comparedWithPrevious; + + @ApiModelProperty(value = "合规性分析") + private String complianceState; + + @ApiModelProperty(value = "上一版本号") + @TableField("LAST_VERSION_NUMBER") + private String lastVersionNumber; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private Date modifyTime; + + @ApiModelProperty(value = "标准ID") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "标准分类") + @TableField("STAND_TYPE") + private String standType; + + @ApiModelProperty(value = "标准类别") + @TableField("STAND_SORT") + private String standSort; + + @ApiModelProperty(value = "标准编号") + @TableField("STAND_NUMBER") + private String standNumber; + + @ApiModelProperty(value = "标准名称") + @TableField("STAND_NAME") + private String standName; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "评估状态") + @TableField("INTERPRETATION_STATE") + private String interpretationState; + + @ApiModelProperty(value = "评估时间") + @TableField("INTERPRETATION_TIME") + private Date interpretationTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandardEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandardEO.java deleted file mode 100644 index f50ca55c..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarInterpretationNationalStandardEO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel("条件查询") -public class SarInterpretationNationalStandardEO { - - @ApiModelProperty(value = "'标准编号'") - private String standardId; - - @ApiModelProperty("页数") - private Integer current=1; - - @ApiModelProperty("页内数量") - private Integer size=20; - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssess.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssess.java new file mode 100644 index 00000000..bfaa990b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssess.java @@ -0,0 +1,112 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarStandardComplianceProductAssess对象", description="") +public class SarStandardComplianceProductAssess extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "'产品线'") + private String productLineId; + + @ApiModelProperty(value = "'项目id'") + private String productId; + + @ApiModelProperty(value = "'项目名称'") + private String productName; + + @ApiModelProperty(value = "标准ID") + @TableField("STAND_ID") + private String standId; + + @ApiModelProperty(value = "标准编号") + @TableField("STAND_NUMBER") + private String standNumber; + + @ApiModelProperty(value = "'标准名称'") + @TableField("STAND_NAME") + private String standName; + + @ApiModelProperty(value = "'标准章条'") + private String standardItem; + + @ApiModelProperty(value = "标准类型") + @TableField("STAND_TYPE") + private String standType; + + @ApiModelProperty(value = "标准主要内容") + private String standardInfo; + + @ApiModelProperty(value = "1是在产,0是在研") + private Integer productType; + + @ApiModelProperty(value = "在研产品实施时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date researchImplementationTime; + + @ApiModelProperty(value = "在研产品合规信息") + private String researchCompliance; + + @ApiModelProperty(value = "在研产品不合规项目") + private String researchNonCompliance; + + @ApiModelProperty(value = "在研产品不合规应对措施") + private String researchCountermeasures; + + @ApiModelProperty(value = "在研产品不合规完成时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date researchCompletionTime; + + @ApiModelProperty(value = "在产产品实施时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date productionImplementationTime; + + @ApiModelProperty(value = "在产产品合规信息") + private String productionCompliance; + + @ApiModelProperty(value = "在产产品不合规应对措施") + private String productionCountermeasures; + + @ApiModelProperty(value = "在产产品不合规完成时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date productionCompletionTime; + + @ApiModelProperty(value = "审查状态") + @TableField("INTERPRETATION_STATE") + private String interpretationState; + + @ApiModelProperty(value = "审查时间") + @TableField("INTERPRETATION_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date interpretationTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssessEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssessEO.java index d6cfa4f6..53b782b2 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssessEO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardComplianceProductAssessEO.java @@ -1,19 +1,31 @@ package com.adc.da.slrs.sarStandardComplianceAssessResult.entity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; @Data @ApiModel("条件查询") -public class SarStandardComplianceProductAssessEO { +public class SarStandardComplianceProductAssessEO{ + + @ApiModelProperty(value = "标准ID") + @TableField("STAND_ID") + private String standId; @ApiModelProperty(value = "'项目名称'") private String productName; - @ApiModelProperty(value = "'标准编号'") - private String standardId; + @ApiModelProperty(value = "评估时间") + @TableField("INTERPRETATION_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date interpretationTime; @ApiModelProperty("页数") private Integer current=1; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardsInfoEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardsInfoEO.java index 5231cca0..f4fee6c3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardsInfoEO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/entity/SarStandardsInfoEO.java @@ -17,6 +17,12 @@ public class SarStandardsInfoEO { @ApiModelProperty(value = "标准名称") private String standName; + @ApiModelProperty(value = "应用类型") + private Integer standApplicationType=1; + + @ApiModelProperty(value = "国内1,国外2") + private Integer position=1; + @ApiModelProperty("页数") private Integer current=1; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationForeignStandardService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationForeignStandardService.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationForeignStandardService.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationForeignStandardService.java index d6013d4e..9ba49575 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationForeignStandardService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationForeignStandardService.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarInterpretationStandard.service; +package com.adc.da.slrs.sarStandardComplianceAssessResult.service; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationForeignStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationForeignStandard; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface ISarInterpretationForeignStandardService extends IService { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationNationalStandardService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationNationalStandardService.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationNationalStandardService.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationNationalStandardService.java index d508a1a4..e51c76f4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInterpretationStandard/service/ISarInterpretationNationalStandardService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarInterpretationNationalStandardService.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarInterpretationStandard.service; +package com.adc.da.slrs.sarStandardComplianceAssessResult.service; -import com.adc.da.slrs.sarInterpretationStandard.entity.SarInterpretationNationalStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationNationalStandard; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface ISarInterpretationNationalStandardService extends IService { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceAssessResult.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceAssessResult.java deleted file mode 100644 index e8ff1cc7..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceAssessResult.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceAssessResult.service; - -import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; -import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage; -import com.baomidou.mybatisplus.core.metadata.IPage; - -public interface ISarStandardComplianceAssessResult { - - IPage getSarStandardsInfo(); - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/ISarStandardComplianceProductAssessService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceProductAssessService.java similarity index 55% rename from adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/ISarStandardComplianceProductAssessService.java rename to adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceProductAssessService.java index 431fddce..f813e993 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/ISarStandardComplianceProductAssessService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/ISarStandardComplianceProductAssessService.java @@ -1,6 +1,6 @@ -package com.adc.da.slrs.sarStandardComplianceProductAssess.service; +package com.adc.da.slrs.sarStandardComplianceAssessResult.service; -import com.adc.da.slrs.sarStandardComplianceProductAssess.entity.SarStandardComplianceProductAssess; +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardComplianceProductAssess; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService; *

    * * @author zyl - * @since 2021-06-16 + * @since 2021-06-18 */ public interface ISarStandardComplianceProductAssessService extends IService { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationForeignStandardServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationForeignStandardServiceImpl.java new file mode 100644 index 00000000..f78c54e0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationForeignStandardServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.service.impl; + +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationForeignStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.dao.SarInterpretationForeignStandardDao; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarInterpretationForeignStandardService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Service +public class SarInterpretationForeignStandardServiceImpl extends ServiceImpl implements ISarInterpretationForeignStandardService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationNationalStandardServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationNationalStandardServiceImpl.java new file mode 100644 index 00000000..9713ea5b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarInterpretationNationalStandardServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.service.impl; + +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarInterpretationNationalStandard; +import com.adc.da.slrs.sarStandardComplianceAssessResult.dao.SarInterpretationNationalStandardDao; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarInterpretationNationalStandardService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Service +public class SarInterpretationNationalStandardServiceImpl extends ServiceImpl implements ISarInterpretationNationalStandardService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarStandardComplianceProductAssessServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarStandardComplianceProductAssessServiceImpl.java new file mode 100644 index 00000000..ea8c9f44 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/service/impl/SarStandardComplianceProductAssessServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarStandardComplianceAssessResult.service.impl; + +import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardComplianceProductAssess; +import com.adc.da.slrs.sarStandardComplianceAssessResult.dao.SarStandardComplianceProductAssessDao; +import com.adc.da.slrs.sarStandardComplianceAssessResult.service.ISarStandardComplianceProductAssessService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-18 + */ +@Service +public class SarStandardComplianceProductAssessServiceImpl extends ServiceImpl implements ISarStandardComplianceProductAssessService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/entity/SarStandardComplianceProductAssess.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/entity/SarStandardComplianceProductAssess.java deleted file mode 100644 index 453376f2..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/entity/SarStandardComplianceProductAssess.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceProductAssess.entity; - -import com.adc.da.base.entity.BaseEntity; -import java.time.LocalDateTime; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

    - * - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) -@ApiModel(value="SarStandardComplianceProductAssess对象", description="") -public class SarStandardComplianceProductAssess extends BaseEntity { - - private static final long serialVersionUID = 1L; - - @ApiModelProperty(value = "'产品线'") - private String productLineId; - - @ApiModelProperty(value = "'项目id'") - private String productId; - - @ApiModelProperty(value = "'项目名称'") - private String productName; - - @ApiModelProperty(value = "'标准编号'") - private String standardId; - - @ApiModelProperty(value = "'标准章条'") - private String itemsId; - - @ApiModelProperty(value = "'标准名称'") - private String standardName; - - @ApiModelProperty(value = "1是在产,0是在研") - private Integer state; - - @ApiModelProperty(value = "实施时间") - private LocalDateTime implementation_time; - - @ApiModelProperty(value = "0是合规,1是不合规") - private Integer complianceState; - - private String compliance; - - private String nonCompliance; - - private String countermeasures; - - private LocalDateTime completionTime; - - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/impl/SarStandardComplianceProductAssessServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/impl/SarStandardComplianceProductAssessServiceImpl.java deleted file mode 100644 index 27ea4bc1..00000000 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceProductAssess/service/impl/SarStandardComplianceProductAssessServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.adc.da.slrs.sarStandardComplianceProductAssess.service.impl; - -import com.adc.da.slrs.sarStandardComplianceProductAssess.entity.SarStandardComplianceProductAssess; -import com.adc.da.slrs.sarStandardComplianceProductAssess.dao.SarStandardComplianceProductAssessDao; -import com.adc.da.slrs.sarStandardComplianceProductAssess.service.ISarStandardComplianceProductAssessService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

    - * 服务实现类 - *

    - * - * @author zyl - * @since 2021-06-16 - */ -@Service -public class SarStandardComplianceProductAssessServiceImpl extends ServiceImpl implements ISarStandardComplianceProductAssessService { - -} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index df47c5d5..addbb2e4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -140,6 +140,7 @@ public class SarStandardsInfoController extends BaseController } } page.setUserId(LoginUserUtil.getUserId()); + System.out.println(page); List rows = sarStandardsInfoEOService.getSarStandardsInfoPage(page); return Result.success(getPageInfo(page.getPager(), rows)); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java index 82caea2d..5c239a4b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java @@ -4,8 +4,6 @@ import com.adc.da.slrs.sarStandardsInfo.entity.*; import com.adc.da.http.ResponseMessage; import com.baomidou.mybatisplus.extension.service.IService; -import java.io.IOException; -import java.sql.SQLException; import java.util.List; import java.util.Map; @@ -33,10 +31,8 @@ public interface ISarStandardsInfoService extends IService { List selectStandardsByStandnumber(String replaceStandNum, String standType); - void attrInfoDetails(SarStandardsInfo row) throws IOException, SQLException; - SarStandardsInfo selectStandardsInfoByKey(String id) throws Exception; - + public void attrInfoDetails (SarStandardsInfo row) throws Exception; boolean updateStandardsMenu(SarStandardsInfoEOPage standardsInfoEO); boolean updateStandInfo(SarStandardsInfoEOPage standardsInfoEO); @@ -44,4 +40,8 @@ public interface ISarStandardsInfoService extends IService { List selectRecommendStand(SarStandardsInfoEOPage pagenew); List getStandAndItemsForAct (SarStandardsInfoEOPage page) throws Exception; -} \ No newline at end of file + + void insertIntoIndexForMap(Map attrInfoMap); + + void updateIntoIndexForMap(Map attrInfoMap); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 23aa1785..a326b844 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -16,6 +16,7 @@ import com.adc.da.slrs.sarLawsInfo.page.SarLawsItemsEOPage; import com.adc.da.slrs.sarLawsInfo.service.ISarLawsInfoService; import com.adc.da.slrs.sarLawsItems.service.ISarLawsItemsService; import com.adc.da.slrs.sarProductStand.dao.SarProductStandDao; +import com.adc.da.slrs.sarResource.entity.TsResource; import com.adc.da.slrs.sarSarAccess.service.ISarSarAccessService; import com.adc.da.slrs.sarSarAccessInfo.dao.SarSarAccessInfoDao; import com.adc.da.slrs.sarStandAttrDetails.dao.SarStandAttrDetailsDao; @@ -39,6 +40,7 @@ import com.adc.da.slrs.sarMenu.service.ISarMenuService; import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao; import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService; +import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.slrs.sysInfo.service.SysInfoEOService; import com.adc.da.sys.common.SelectionResult; import com.adc.da.sys.constant.ValueStateEnum; @@ -63,9 +65,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.io.File; -import java.io.IOException; import java.sql.Clob; -import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; @@ -74,7 +74,7 @@ import java.util.stream.Collectors; /** *

    - * 服务实现类 + * 服务实现类 *

    * * @author super_liu @@ -155,6 +155,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception { //查询当前登录人角色拥有权限的菜单 - List getMenuIdList = sarMenuEOService.queryRoleMenuIdList(page.getStandType()+"_STAND",null); - if(getMenuIdList != null && !getMenuIdList.isEmpty()){ + List getMenuIdList=tsUserService.getResourceId(new TsResource()); +// List getMenuIdList = sarMenuEOService.queryRoleMenuIdList(page.getStandType() + "_STAND", null); + System.out.println("菜单"); + System.out.println(getMenuIdList); + if (getMenuIdList != null && !getMenuIdList.isEmpty()) { page.setMenuRoleList(getMenuIdList); } else { page.setMenuRoleList(null); @@ -190,33 +195,34 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl sarlist) throws Exception { - for(SarStandardsInfo row : sarlist){ + public void attrInfo(List sarlist) throws Exception { + for (SarStandardsInfo row : sarlist) { attrInfoDetails(row); } } - public void attrInfoDetails (SarStandardsInfo row) throws IOException, SQLException { + + public void attrInfoDetails(SarStandardsInfo row) throws Exception { String fieldInfo = InitStandAttrUtil.queryField; String collectId = personCollectEOService.queryCollectByUserAndId(row.getId()); row.setCollectId(collectId); // 查询属性表数据 if (StringUtils.isNotBlank(fieldInfo)) { - Map getAttrMap = sarStandAttrInfoEODao.selectStandFieldAndData(fieldInfo,row.getId()); + Map getAttrMap = sarStandAttrInfoEODao.selectStandFieldAndData(fieldInfo, row.getId()); if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) { // 遍历修改所有clob类型的值 for (String clobField : InitStandAttrUtil.clobFieldList) { Clob clobValue = (Clob) getAttrMap.get(clobField); String fieldValue = FieldConvertUtil.ClobToString(clobValue); - getAttrMap.put(clobField,fieldValue); + getAttrMap.put(clobField, fieldValue); } } // 组织机构和人员 - Map newMap = new HashMap<>(); + Map newMap = new HashMap<>(); if (getAttrMap != null) { - for (Map.Entry entry : getAttrMap.entrySet()) { - if ("EOPSSRQ".equals(entry.getKey())){ - if (entry.getValue() != null && entry.getValue().toString().length()>10){ + for (Map.Entry entry : getAttrMap.entrySet()) { + if ("EOPSSRQ".equals(entry.getKey())) { + if (entry.getValue() != null && entry.getValue().toString().length() > 10) { String time = DateUtil.formatStrUTCToDateStr(entry.getValue().toString()); entry.setValue(time); } @@ -228,7 +234,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl set = new HashSet(); // 查询条款svpps - Set itemSvpps = sarStandItemsEODao.selectSvppsByStandId(row.getId(),null,null); + Set itemSvpps = sarStandItemsEODao.selectSvppsByStandId(row.getId(), null, null); if (itemSvpps != null && !itemSvpps.isEmpty()) { set.addAll(itemSvpps); } @@ -241,12 +247,12 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl itemClaimType = sarStandItemsEODao.selectClaimTypesByStandId(row.getId(),null,null); + Set itemClaimType = sarStandItemsEODao.selectClaimTypesByStandId(row.getId(), null, null); if (itemClaimType != null && itemClaimType.size() > 1) { entry.setValue("RENVECPFGT"); } else if (itemClaimType != null && itemClaimType.size() == 1) { @@ -257,13 +263,13 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl sarlist) throws Exception { - for(SarStandardsInfo row : sarlist){ + public void attrInfoShow(List sarlist) throws Exception { + for (SarStandardsInfo row : sarlist) { attrInfoDetails(row); Map getAttrMap = row.getAttrInfoMap(); Map getNewMap = new LinkedHashMap<>(); if (getAttrMap != null && getAttrMap.size() > 0) { String svppsTip = ""; - for (Map.Entry entry : getAttrMap.entrySet()) { + for (Map.Entry entry : getAttrMap.entrySet()) { String name = entry.getKey(); String value = ""; if ("SVPPS".equals(name)) { @@ -306,7 +312,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 0) { // 修改属性表数据 @@ -357,9 +363,9 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl sarStandAttrMap = JSONObject.fromObject(sarStandAttrEOStr); + Map sarStandAttrMap = JSONObject.fromObject(sarStandAttrEOStr); StringBuilder fieldsBuilder = new StringBuilder(); StringBuilder valuesBuilder = new StringBuilder(); - Map selectionMap = new HashMap<>(); - Map fileMap = new HashMap<>(); - Map multiTimeMap = new HashMap<>(); + Map selectionMap = new HashMap<>(); + Map fileMap = new HashMap<>(); + Map multiTimeMap = new HashMap<>(); String fileIds = ""; - for (Map.Entry entry : sarStandAttrMap.entrySet()) { + for (Map.Entry entry : sarStandAttrMap.entrySet()) { String attrKey = entry.getKey(); String attrValue = String.valueOf(entry.getValue()); if (InitStandAttrUtil.queryFieldList != null && !InitStandAttrUtil.queryFieldList.isEmpty()) { @@ -414,15 +420,15 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 0) { // 多选项处理 - createStandVal(sarStandardsInfoEO.getId(),selectionMap); + createStandVal(sarStandardsInfoEO.getId(), selectionMap); // 文件处理 - createStandFile(sarStandardsInfoEO.getId(),fileMap); + createStandFile(sarStandardsInfoEO.getId(), fileMap); // 多时间处理 - createStandPutTime(sarStandardsInfoEO.getId(),multiTimeMap); + createStandPutTime(sarStandardsInfoEO.getId(), multiTimeMap); } } @@ -459,10 +465,10 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl selectionMap) { + public void createStandVal(String standId, Map selectionMap) { if (selectionMap != null && selectionMap.size() > 0) { List standValList = new ArrayList<>(); - for (Map.Entry entry : selectionMap.entrySet()) { + for (Map.Entry entry : selectionMap.entrySet()) { String value = entry.getValue(); String field = entry.getKey(); if (StringUtils.isNotBlank(value)) { @@ -493,16 +499,16 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl fileMap) throws Exception { + public void createStandFile(String standId, Map fileMap) throws Exception { if (fileMap != null && fileMap.size() > 0) { List standFileList = new ArrayList<>(); - for (Map.Entry entry : fileMap.entrySet()) { + for (Map.Entry entry : fileMap.entrySet()) { String value = entry.getValue(); String field = entry.getKey(); if (StringUtils.isNotBlank(value)) { List fileList = attFileEOService.getMultiFileInfos(value); if (fileList != null && !fileList.isEmpty()) { - createStandFileAppend(standId,field,fileList,standFileList); + createStandFileAppend(standId, field, fileList, standFileList); } } } @@ -512,7 +518,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl fileList,List standFileList) throws Exception { + public void createStandFileAppend(String standId, String field, List fileList, List standFileList) throws Exception { for (AttFileEO fileInfo : fileList) { SarStandFile sarStandFileEO = new SarStandFile(); sarStandFileEO.setCreationUser(LoginUserUtil.getUserId()); @@ -560,7 +566,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl multiTimeMap) throws Exception{ + public void createStandPutTime(String standId, Map multiTimeMap) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if (multiTimeMap != null && multiTimeMap.size() > 0) { List standTimeList = new ArrayList<>(); @@ -569,7 +575,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl0){ + if (StringUtils.isNotEmpty(newCiteStand) && newCiteStand.split(",").length > 0) { // 主要逻辑处理新增的 String nowEOrepNums[] = newCiteStand.split(","); - for (String citeStand: nowEOrepNums){ + for (String citeStand : nowEOrepNums) { sarStandardsSelectEO.setStandNumber(citeStand); - if (StringUtils.isNotBlank(sarStandardsSelectEO.getStandNumber())){ + if (StringUtils.isNotBlank(sarStandardsSelectEO.getStandNumber())) { String sort = ""; - if (sarStandardsSelectEO.getStandNumber().length()>3) { + if (sarStandardsSelectEO.getStandNumber().length() > 3) { sort = sarStandardsSelectEO.getStandNumber().substring(0, 3); } if ("ECE".equals(sort)) { int length = sarStandardsSelectEO.getStandNumber().length(); - String number = sarStandardsSelectEO.getStandNumber().substring(3,length); + String number = sarStandardsSelectEO.getStandNumber().substring(3, length); sarStandardsSelectEO.setStandNumber("UN(ECE)" + number); } } List result = dao.selectStandardsByStandnumber(sarStandardsSelectEO); - if (result != null && result.size()>0){ + if (result != null && result.size() > 0) { String standId = result.get(0).getId(); String field = beUpedField; - String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field,result.get(0).getId()); + String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field, result.get(0).getId()); String changeCitedStand = ""; - if(StringUtils.isNotBlank(citedStand)){ - String[] beforeReplacedStandNumStr = citedStand.split(","); - if (Arrays.asList(beforeReplacedStandNumStr).contains(addStrandNumber)){ + if (StringUtils.isNotBlank(citedStand)) { + String[] beforeReplacedStandNumStr = citedStand.split(","); + if (Arrays.asList(beforeReplacedStandNumStr).contains(addStrandNumber)) { continue; } else { - changeCitedStand = citedStand+","+ addStrandNumber; + changeCitedStand = citedStand + "," + addStrandNumber; } } else { changeCitedStand = addStrandNumber; } - sarStandAttrInfoEODao.updateStandInfo(standId,field,changeCitedStand); + sarStandAttrInfoEODao.updateStandInfo(standId, field, changeCitedStand); } } // 如果id不为空,说明是修改,有逻辑删除的执行以下语句,存在之前是三项,现在修改成两项的情况 - if (null != beforeSarStandardsInfo){ + if (null != beforeSarStandardsInfo) { String oldCiteStand = String.valueOf(beforeSarStandardsInfo.getAttrInfoMap().get(upField)); - if(StringUtils.isNotEmpty(oldCiteStand)) { - String [] beforeEOrepNums = oldCiteStand.split(","); - for (String beforeStr:beforeEOrepNums){ + if (StringUtils.isNotEmpty(oldCiteStand)) { + String[] beforeEOrepNums = oldCiteStand.split(","); + for (String beforeStr : beforeEOrepNums) { // 如果再旧的中包含,在新的中没有,需要删除 - if (!Arrays.asList(nowEOrepNums).contains(beforeStr)){ + if (!Arrays.asList(nowEOrepNums).contains(beforeStr)) { sarStandardsSelectEO.setStandNumber(beforeStr); List result = dao.selectStandardsByStandnumber(sarStandardsSelectEO); - if (result != null && result.size()>0){ + if (result != null && result.size() > 0) { String standId = result.get(0).getId(); String field = beUpedField; - String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field,result.get(0).getId()); + String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field, result.get(0).getId()); String changeCitedStand = ""; - if(StringUtils.isNotBlank(citedStand)){ - String[] beforerepalced = citedStand.split(","); + if (StringUtils.isNotBlank(citedStand)) { + String[] beforerepalced = citedStand.split(","); ArrayList beforlist = new ArrayList<>(Arrays.asList(beforerepalced)); - if (beforlist.contains(beforeStrandNumber)){ + if (beforlist.contains(beforeStrandNumber)) { beforlist.remove(beforeStrandNumber); changeCitedStand = StringUtils.join(beforlist.toArray(), ","); } else { continue; } - sarStandAttrInfoEODao.updateStandInfo(standId,field,changeCitedStand); + sarStandAttrInfoEODao.updateStandInfo(standId, field, changeCitedStand); } } } @@ -691,29 +697,29 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl result = dao.selectStandardsByStandnumber(sarStandardsSelectEO); - if (result != null && result.size()>0){ + if (result != null && result.size() > 0) { String standId = result.get(0).getId(); String field = "BYYBJ"; - String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field,result.get(0).getId()); + String citedStand = sarStandAttrInfoEODao.selectFieldValByStandId(field, result.get(0).getId()); String changeCitedStand = ""; - if(StringUtils.isNotBlank(citedStand)){ - String[] beforerepalced = citedStand.split(","); + if (StringUtils.isNotBlank(citedStand)) { + String[] beforerepalced = citedStand.split(","); ArrayList beforlist = new ArrayList<>(Arrays.asList(beforerepalced)); - if (beforlist.contains(beforeStrandNumber)){ + if (beforlist.contains(beforeStrandNumber)) { beforlist.remove(beforeStrandNumber); changeCitedStand = StringUtils.join(beforlist.toArray(), ","); } else { continue; } - sarStandAttrInfoEODao.updateStandInfo(standId,field,changeCitedStand); + sarStandAttrInfoEODao.updateStandInfo(standId, field, changeCitedStand); } } } @@ -722,12 +728,12 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl result = dao.selectStandardsByStandnumber(selectEO); // 新增关联 - if (result != null && result.size()>0) { + if (result != null && result.size() > 0) { String standId = result.get(0).getId(); newStandIdList.add(standId); - String relatedStand = sarStandAttrInfoEODao.selectFieldValByStandId(upField,standId); + String relatedStand = sarStandAttrInfoEODao.selectFieldValByStandId(upField, standId); String changeStand = ""; - if(StringUtils.isNotBlank(relatedStand)){ + if (StringUtils.isNotBlank(relatedStand)) { List beforelist = new ArrayList<>(Arrays.asList(relatedStand.split(","))); - if (!beforelist.contains(addStandNumber)){ + if (!beforelist.contains(addStandNumber)) { beforelist.add(addStandNumber); changeStand = StringUtils.join(beforelist.toArray(), ","); - sarStandAttrInfoEODao.updateStandInfo(standId,upField,changeStand); + sarStandAttrInfoEODao.updateStandInfo(standId, upField, changeStand); } else { continue; } } else { - sarStandAttrInfoEODao.updateStandInfo(standId,upField,addStandNumber); + sarStandAttrInfoEODao.updateStandInfo(standId, upField, addStandNumber); } } } @@ -766,7 +772,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl resultList = sarStandAttrInfoEODao.selectFieldValByContainsVal(upField,addStandNumber,newStandIdList); + List resultList = sarStandAttrInfoEODao.selectFieldValByContainsVal(upField, addStandNumber, newStandIdList); if (resultList != null && !resultList.isEmpty()) { for (SelectionResult result : resultList) { String relatedStand = result.getLabel(); @@ -777,7 +783,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl result = dao.selectStandardsByStandnumber(sarStandardsSelectEO); - if (result != null && !result.isEmpty()){ + if (result != null && !result.isEmpty()) { SarStandardsInfo replaseStand = result.get(0); String standState = replaseStand.getStandState(); String oldStandState = standState; String oldStandStateShow = SarStandStateEnum.getLableByVal(oldStandState); - if(!SarStandStateEnum.N5KLTFLNRC.getValue().equals(standState)|| !SarStandStateEnum.TOVOID.getValue().equals(standState)){ + if (!SarStandStateEnum.N5KLTFLNRC.getValue().equals(standState) || !SarStandStateEnum.TOVOID.getValue().equals(standState)) { replaseStand.setStandState(SarStandStateEnum.N5KLTFLNRC.getValue()); dao.updateById(replaseStand); //更新log日志 - sarUpdLogEOService.createBaseLog(replaseStand.getId(),replaseStand.getStandType()+"_STAND","入库流程当前标准因被新标准代替修改标准状态的值从《"+oldStandStateShow+"》为《\"已修订\"》"); + sarUpdLogEOService.createBaseLog(replaseStand.getId(), replaseStand.getStandType() + "_STAND", "入库流程当前标准因被新标准代替修改标准状态的值从《" + oldStandStateShow + "》为《\"已修订\"》"); } } } } } - public void updateStandState (SarStandardsInfo sarStandardsInfoEO,String oldState) { + public void updateStandState(SarStandardsInfo sarStandardsInfoEO, String oldState) { String resultState = ""; String newState = sarStandardsInfoEO.getStandState(); String standNum = ""; @@ -830,10 +837,10 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl sarStandAttrMap = JSONObject.fromObject(sarStandardsInfoEO.getSarStandAttrEOStr()); + Map sarStandAttrMap = JSONObject.fromObject(sarStandardsInfoEO.getSarStandAttrEOStr()); if (sarStandAttrMap != null && !sarStandAttrMap.isEmpty()) { if (StringUtils.isNotBlank(sarStandAttrMap.get("FBGBJBD"))) { newState = SarStandStateEnum.FJNVYX9Q7J.getValue(); @@ -918,14 +925,14 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl bhs = new ArrayList<>(Arrays.asList(String.valueOf(map.get("DTBJH")).split(","))); @@ -962,41 +969,41 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl newMap = new HashMap<>(); - Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); + public void saveUpdateLog(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo) throws Exception { + Map newMap = new HashMap<>(); + Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr(); if (StringUtils.isNotBlank(attrStr)) { newMap = JSONObject.fromObject(attrStr); } - newMap = changeMap(sarStandardsInfoEO,newMap); - oldMap = changeMap(beforeSarStandardsInfo,oldMap); + newMap = changeMap(sarStandardsInfoEO, newMap); + oldMap = changeMap(beforeSarStandardsInfo, oldMap); // 增加关联事件 String number = sarStandardsInfoEO.getStandSort() + " " + sarStandardsInfoEO.getStandNumber(); if (StringUtils.isNotBlank(sarStandardsInfoEO.getStandYear())) { number += "-" + sarStandardsInfoEO.getStandYear(); } String content = number + " 《" + sarStandardsInfoEO.getStandName() + "》"; - sarUpdLogEOService.createUpdateLog(sarStandardsInfoEO.getStandType()+"_STAND",sarStandardsInfoEO.getId(),oldMap,newMap,content); + sarUpdLogEOService.createUpdateLog(sarStandardsInfoEO.getStandType() + "_STAND", sarStandardsInfoEO.getId(), oldMap, newMap, content); } - public Map changeMap (SarStandardsInfo sarStandardsInfoEO,Map map) { - map.put("country",sarStandardsInfoEO.getCountry()); - map.put("isRelateAccess",sarStandardsInfoEO.getIsRelateAccess()); - map.put("standSort",sarStandardsInfoEO.getStandSort()); - map.put("standNumber",sarStandardsInfoEO.getStandNumber()); - map.put("standYear",sarStandardsInfoEO.getStandYear()); - map.put("standName",sarStandardsInfoEO.getStandName()); - map.put("standEnName",sarStandardsInfoEO.getStandEnName()); - map.put("standNature",sarStandardsInfoEO.getStandNature()); - map.put("standState",sarStandardsInfoEO.getStandState()); + public Map changeMap(SarStandardsInfo sarStandardsInfoEO, Map map) { + map.put("country", sarStandardsInfoEO.getCountry()); + map.put("isRelateAccess", sarStandardsInfoEO.getIsRelateAccess()); + map.put("standSort", sarStandardsInfoEO.getStandSort()); + map.put("standNumber", sarStandardsInfoEO.getStandNumber()); + map.put("standYear", sarStandardsInfoEO.getStandYear()); + map.put("standName", sarStandardsInfoEO.getStandName()); + map.put("standEnName", sarStandardsInfoEO.getStandEnName()); + map.put("standNature", sarStandardsInfoEO.getStandNature()); + map.put("standState", sarStandardsInfoEO.getStandState()); // if (sarStandardsInfoEO.getIssueTime() != null) { // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); // String issueStr = format.format(sarStandardsInfoEO.getIssueTime()); // // } - map.put("issueTime",sarStandardsInfoEO.getIssueTime()); - map.put("synopsis",sarStandardsInfoEO.getSynopsis()); + map.put("issueTime", sarStandardsInfoEO.getIssueTime()); + map.put("synopsis", sarStandardsInfoEO.getSynopsis()); return map; } @@ -1019,7 +1026,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getReplacedStands = dao.getSarStandardsInfoPage(sarStandardsInfoEOPage); - if(getReplacedStands != null && !getReplacedStands.isEmpty()){ - for(SarStandardsInfo stand : getReplacedStands){ + if (getReplacedStands != null && !getReplacedStands.isEmpty()) { + for (SarStandardsInfo stand : getReplacedStands) { SarStandardsInfo newStand = new SarStandardsInfo(); newStand.setId(stand.getId()); String replacedNum = stand.getReplacedStandNum(); List numList = Arrays.asList(replacedNum.split(",")); - if(numList.contains(standNum)){ + if (numList.contains(standNum)) { //被代替标准号都已逗号分隔存在一个字段里,如果存在字符串中间,后面会有一个逗号, // 存在字符串末尾则没有逗号 - if(numList.contains(standNum+",")){ - newStand.setReplacedStandNum(stand.getReplacedStandNum().replaceAll(standNum+",","")); + if (numList.contains(standNum + ",")) { + newStand.setReplacedStandNum(stand.getReplacedStandNum().replaceAll(standNum + ",", "")); dao.updateById(newStand); } else { - if (numList.contains(","+standNum)) { - newStand.setReplacedStandNum(stand.getReplacedStandNum().replace(","+standNum,"")); + if (numList.contains("," + standNum)) { + newStand.setReplacedStandNum(stand.getReplacedStandNum().replace("," + standNum, "")); } else { - newStand.setReplacedStandNum(stand.getReplacedStandNum().replace(standNum,"")); + newStand.setReplacedStandNum(stand.getReplacedStandNum().replace(standNum, "")); } dao.updateById(newStand); } @@ -1102,18 +1110,18 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl */ - public List getExportDatas (StandardsInfoExcelVO standardsInfoExcelVO) throws Exception { + public List getExportDatas(StandardsInfoExcelVO standardsInfoExcelVO) throws Exception { SarStandardsInfoEOPage page = new SarStandardsInfoEOPage(); - BeanUtils.copyProperties(standardsInfoExcelVO,page); + BeanUtils.copyProperties(standardsInfoExcelVO, page); if ("apart".equals(standardsInfoExcelVO.getExportType())) { page.setIdlist(standardsInfoExcelVO.getExportContent().split(",")); } else { JSONObject jsonObject = JSONObject.fromObject(standardsInfoExcelVO.getExportContent()); - page = (SarStandardsInfoEOPage)JSONObject.toBean(jsonObject, SarStandardsInfoEOPage.class); + page = (SarStandardsInfoEOPage) JSONObject.toBean(jsonObject, SarStandardsInfoEOPage.class); page.setStandType(standardsInfoExcelVO.getStandType()); //查询当前登录人角色拥有权限的菜单 - List getMenuIdList = sarMenuEOService.queryRoleMenuIdList(page.getStandType()+"_STAND",null); - if(getMenuIdList != null && !getMenuIdList.isEmpty()){ + List getMenuIdList = sarMenuEOService.queryRoleMenuIdList(page.getStandType() + "_STAND", null); + if (getMenuIdList != null && !getMenuIdList.isEmpty()) { page.setMenuRoleList(getMenuIdList); } else { page.setMenuRoleList(null); @@ -1123,7 +1131,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl searchList = com.alibaba.fastjson.JSONObject.parseArray(page.getAdvanceSearchVOStr(),SarAdvanceSearchVO.class); + List searchList = com.alibaba.fastjson.JSONObject.parseArray(page.getAdvanceSearchVOStr(), SarAdvanceSearchVO.class); String advanceStr = SarAdvanceSearchUtil.createSql(searchList); if (StringUtils.isNotBlank(advanceStr)) { page.setAdvanceSearchStr(advanceStr); @@ -1139,7 +1147,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl importSarStandardsInfoData(List> dataList, String standType, String menuId, String filepath){ + public ResponseMessage importSarStandardsInfoData(List> dataList, String standType, String menuId, String filepath) { //此处需要做各种验证,数据库操作 try { //验证导入数据是否符合规则 @@ -1163,19 +1171,19 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl> dataList, String standType, String filepath) throws Exception{ + public Map validateImportDatas(List> dataList, String standType, String filepath) throws Exception { //存放数据验证结果信息 List stringMessage = new ArrayList<>(); int i = 1; //记录行号 List standnumberlist = new ArrayList<>(); // 记录验证过后的编码,用来判断是否有重复 //循环验证数据 List standList = new ArrayList<>(); - for (Map dataMap : dataList) { + for (Map dataMap : dataList) { i++; int countError = 0; //记录失败数据数量 String errorMsg = "

    第" + i + "行:

    "; @@ -1189,17 +1197,17 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrList = new ArrayList<>(); String zrbmOrgNames = ""; - for (Map.Entry entry : dataMap.entrySet()) { + for (Map.Entry entry : dataMap.entrySet()) { String name = entry.getKey(); String value = entry.getValue(); if ("责任部门".equals(name)) { zrbmOrgNames = value; } if (baseFieldsList.contains(name)) { - SarStandImportDto.compareFieldAndName(name,value,sarStandardsInfoEO); - } else if (attrFieldsList.contains(name)){ + SarStandImportDto.compareFieldAndName(name, value, sarStandardsInfoEO); + } else if (attrFieldsList.contains(name)) { // 根据name查字段 - SarStandAttrDetails fieldEO = sarStandAttrDetailsEODao.selectFieldByName(name,standType+"_STAND"); + SarStandAttrDetails fieldEO = sarStandAttrDetailsEODao.selectFieldByName(name, standType + "_STAND"); if (fieldEO != null) { fieldEO.setAttrValue(value); attrList.add(fieldEO); @@ -1208,10 +1216,10 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl beseResultMap = validateBaseDatas(sarStandardsInfoEO,standType,errorMsg,countError,standnumberlist); + Map beseResultMap = validateBaseDatas(sarStandardsInfoEO, standType, errorMsg, countError, standnumberlist); errorMsg = beseResultMap.get("errorMsg"); countError = Integer.parseInt(beseResultMap.get("countError")); - Map attrResultMap = validateAttrDatas(sarStandardsInfoEO,standType,filepath,errorMsg,countError,zrbmOrgNames); + Map attrResultMap = validateAttrDatas(sarStandardsInfoEO, standType, filepath, errorMsg, countError, zrbmOrgNames); errorMsg = attrResultMap.get("errorMsg"); countError = Integer.parseInt(attrResultMap.get("countError")); if (countError > 0) { @@ -1235,8 +1243,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl standnumberlist) throws Exception { - Map map = new HashMap(); + public Map validateBaseDatas(SarStandardsInfo dto, String standType, String errorMsg, int countError, List standnumberlist) throws Exception { + Map map = new HashMap(); // 验证国家及关联标准类别 DicTypeEO dic = new DicTypeEO(); List getDic = new ArrayList<>(); @@ -1265,7 +1273,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 20) { @@ -1347,7 +1355,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 100){ + if (dto.getCountry().length() > 100) { errorMsg += "

    适用区域不能超过100个字符;

    "; countError++; } else { @@ -1369,7 +1377,6 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl map = new HashMap(); + public Map validateAttrDatas(SarStandardsInfo dto, String standType, String filepath, String errorMsg, int countError, String zrbmOrgNames) throws Exception { + Map map = new HashMap(); //根据重要度判断字段必填 String isMustStr = "no"; List isMustList = new ArrayList<>(); @@ -1452,7 +1459,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrList = dto.getAttrInfoList(); if (attrList != null && !attrList.isEmpty()) { if (StringUtils.isNotBlank(zrbmOrgNames)) { - zrbmOrgNames = sysInfoEOService.getOrgIdByName(zrbmOrgNames,null); + zrbmOrgNames = sysInfoEOService.getOrgIdByName(zrbmOrgNames, null); } - Map attrInfoMap = new HashMap<>(); + Map attrInfoMap = new HashMap<>(); for (SarStandAttrDetails detailsEO : attrList) { // 根据不同字段类型进行不同验证 String attrType = detailsEO.getAttrType(); @@ -1477,7 +1484,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl"; + errorMsg += "

    " + attrName + "不能为空;

    "; countError++; } if (StandAttrTypeEnum.INPUT_STR.getValue().equals(attrType)) { @@ -1485,7 +1492,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrLen) { - errorMsg += "

    "+attrName + "不能超过"+ attrLen +"个字符;

    "; + errorMsg += "

    " + attrName + "不能超过" + attrLen + "个字符;

    "; countError++; } } @@ -1495,7 +1502,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrLen) { - errorMsg += "

    "+attrName + "不能超过"+ attrLen +"个字符;

    "; + errorMsg += "

    " + attrName + "不能超过" + attrLen + "个字符;

    "; countError++; } } int value = Integer.parseInt(attrValue); - attrInfoMap.put(attrField,value); + attrInfoMap.put(attrField, value); } else if (StandAttrTypeEnum.SELECT_OPTION.getValue().equals(attrType) || StandAttrTypeEnum.SEL_OPTS.getValue().equals(attrType)) { String saveCode = ""; if (StringUtils.isNotEmpty(attrValue)) { attrValue = attrValue.replace(",", ","); String[] valueArr = attrValue.split(","); if (StandAttrTypeEnum.SELECT_OPTION.getValue().equals(attrType) && valueArr.length > 1) { - errorMsg += "

    "+attrName + "单选字段只能输入一个选项;

    "; + errorMsg += "

    " + attrName + "单选字段只能输入一个选项;

    "; countError++; - } else if(valueArr.length>20){ - errorMsg += "

    "+attrName + "选项不能超过20个;

    "; + } else if (valueArr.length > 20) { + errorMsg += "

    " + attrName + "选项不能超过20个;

    "; countError++; } else if (attrValue.length() > attrLen) { - errorMsg += "

    "+attrName + "不能超过500个字符;

    "; + errorMsg += "

    " + attrName + "不能超过500个字符;

    "; countError++; } else { Set set = new HashSet(); @@ -1550,18 +1557,18 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl"; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } - }else if (SelectionTypeEnum.GZZXX.getValue().equals(selVal)) { + } else if (SelectionTypeEnum.GZZXX.getValue().equals(selVal)) { for (int e = 0; e < valueArr.length; e++) { set.add(valueArr[e]); String id = sysInfoEOService.getGroupIdByNames(valueArr[e]); if (StringUtils.isNotBlank(id)) { saveCode += id + ','; } else { - errorMsg += "

    "+attrName + valueArr[e] + "不存在;

    "; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } @@ -1576,11 +1583,11 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl"; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } @@ -1589,15 +1596,15 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl"; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } @@ -1608,7 +1615,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl"; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } @@ -1623,33 +1630,33 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 0) { saveCode += getDic.get(0).getDicTypeCode() + ','; } else { - errorMsg += "

    "+attrName + valueArr[e] + "不存在;

    "; + errorMsg += "

    " + attrName + valueArr[e] + "不存在;

    "; countError++; } } } - if (valueArr.length > set.size()){ - errorMsg +="

    "+ attrName + "存在重复数据;

    "; + if (valueArr.length > set.size()) { + errorMsg += "

    " + attrName + "存在重复数据;

    "; countError++; } - if (!saveCode.equals("")){ - saveCode = saveCode.substring(0,saveCode.length()-1); + if (!saveCode.equals("")) { + saveCode = saveCode.substring(0, saveCode.length() - 1); } } } - attrInfoMap.put(attrField,saveCode); + attrInfoMap.put(attrField, saveCode); } else if (StandAttrTypeEnum.DATE_PICKER.getValue().equals(attrType)) { if (StringUtils.isNotBlank(attrValue)) { String[] timeArr = attrValue.split(","); if (timeArr.length > 1) { - errorMsg += "

    "+attrName + "只能输入一个日期;

    "; + errorMsg += "

    " + attrName + "只能输入一个日期;

    "; countError++; } else { if (!DateUtil.isValidDate(attrValue)) { - errorMsg += "

    "+attrName + "格式不正确;

    "; + errorMsg += "

    " + attrName + "格式不正确;

    "; countError++; } else { - attrInfoMap.put(attrField,attrValue); + attrInfoMap.put(attrField, attrValue); } } } @@ -1657,17 +1664,17 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 8) { - errorMsg += "

    "+attrName + "不能超过8个日期;

    "; + errorMsg += "

    " + attrName + "不能超过8个日期;

    "; countError++; } else { if (putTimeFieldList.contains(attrField) && DateUtil.isValidDate(attrValue)) { putTimeState = true; } if (!DateUtil.isValidDate(attrValue) && !"N/A".equals(attrValue) && !"TBD".equals(attrValue) && !"已实施".equals(attrValue)) { - errorMsg += "

    "+attrName + "格式不正确;

    "; + errorMsg += "

    " + attrName + "格式不正确;

    "; countError++; } else { - attrInfoMap.put(attrField,attrValue); + attrInfoMap.put(attrField, attrValue); } } } else { @@ -1681,14 +1688,14 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 8) { - errorMsg += "

    "+attrName + "不能超过8个

    "; + errorMsg += "

    " + attrName + "不能超过8个

    "; countError++; } else { for (int ind = 0; ind < filelist.length; ind++) { String filename = filelist[ind]; String resultMes = ExcelUtil.validatePattern(filename); - if(StringUtils.isNotEmpty(resultMes)){ - errorMsg +="

    "+ attrName + resultMes +"

    "; + if (StringUtils.isNotEmpty(resultMes)) { + errorMsg += "

    " + attrName + resultMes + "

    "; countError++; continue; } @@ -1699,7 +1706,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 200 * 1024 * 1024) { - errorMsg +="

    "+ filename + "文件大小超过200M;

    "; + errorMsg += "

    " + filename + "文件大小超过200M;

    "; countError++; continue; } @@ -1712,17 +1719,17 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrLen) { - errorMsg += "

    "+attrName + "不能超过"+ attrLen +"个字符;

    "; + errorMsg += "

    " + attrName + "不能超过" + attrLen + "个字符;

    "; countError++; } } - attrInfoMap.put(attrField,attrValue); + attrInfoMap.put(attrField, attrValue); } } //三个实施日期至少有一个日期格式 @@ -1733,8 +1740,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getMenuPIds = sarMenuEOService.getParentMenuId(nowMenuId); if (getMenuPIds != null && getMenuPIds.size() > 1) { int idSize = getMenuPIds.size(); - secondLevelId = getMenuPIds.get(idSize-1); + secondLevelId = getMenuPIds.get(idSize - 1); } else { secondLevelId = nowMenuId; } @@ -1832,36 +1839,168 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl list = new ArrayList<>(); - if (StringUtils.isNotBlank(item)){ + if (StringUtils.isNotBlank(item)) { list = new ArrayList<>(Arrays.asList(item.split(","))); } list.add(standardsInfoEO.getMenuId()); list = list.stream().distinct().collect(Collectors.toList()); - int size = sarStandAttrInfoEODao.updateStandInfo(standardsInfoEO.getIdlist()[0],"GXHBQ", org.apache.commons.lang.StringUtils.join(list,",")); - return size>0? true:false; + int size = sarStandAttrInfoEODao.updateStandInfo(standardsInfoEO.getIdlist()[0], "GXHBQ", org.apache.commons.lang.StringUtils.join(list, ",")); + return size > 0 ? true : false; } public List selectRecommendStand(SarStandardsInfoEOPage pagenew) { return dao.selectRecommendStand(pagenew); } - public List getStandAndItemsForAct (SarStandardsInfoEOPage page) throws Exception{ + public List getStandAndItemsForAct(SarStandardsInfoEOPage page) throws Exception { String queryList = page.getIds(); - List getQueryList = com.alibaba.fastjson.JSONObject.parseArray(queryList,StandProVO.class); + List getQueryList = com.alibaba.fastjson.JSONObject.parseArray(queryList, StandProVO.class); List standList = new ArrayList<>(); if (getQueryList != null && !getQueryList.isEmpty()) { for (StandProVO standProVO : getQueryList) { String[] idArr = standProVO.getId().split(","); - getStandDetailsForAct(page,idArr,standProVO.getStandState(),standList); + getStandDetailsForAct(page, idArr, standProVO.getStandState(), standList); } } return standList; } - public void getStandDetailsForAct (SarStandardsInfoEOPage page,String[] idArr,String standState,List standList) throws Exception{ + @Override + public void insertIntoIndexForMap(Map attrInfoMap) { + + } + + @Override + public void updateIntoIndexForMap(Map attrInfoMap) { + + } +// +// @Override +// public void insertIntoIndexForMap(Map attrInfoMap) { +// Set keys = attrInfoMap.keySet(); +// for (String key:keys) { +// String value = String.valueOf(attrInfoMap.get(key)); +// if (com.adc.da.util.utils.StringUtils.isNotBlank(value) && !"null".equals(value) && !"SVPPS".equals(key)){ +// value = value.replace(" , ",","); +// value = value.replace(","," , "); +// attrInfoMap.put(key,value); +// } +// } +// // 根据文件attid 读取文件内容 +// if (org.apache.commons.lang.StringUtils.isNotEmpty(String.valueOf(attrInfoMap.get("content")))) { +// String[] attidlist = String.valueOf(attrInfoMap.get("content")).split(" , "); +// StringBuilder content = new StringBuilder(""); +// for (int i = 0; i < attidlist.length; i++) { +// if(org.apache.commons.lang.StringUtils.isNotEmpty(attidlist[i]) ){ +// AttFileEO attFileEO = attFileEOService.getFileInfo(attidlist[i]); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// try { +// // 判断文件是docx还是PDF +// if (null != attFileEO.getFileSuffix() && (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("ppt") || attFileEO.getFileSuffix().equals("pptx"))) { +// if(attFileEO.getFileSuffix().equals("doc")){ +// FileInputStream fis = new FileInputStream(readFilePath); +// WordExtractor wordExtractor = new WordExtractor(fis); +// String txt = wordExtractor.getText(); +// content.append(txt); +// }else { +// OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath); +// XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage); +// String txt = extractor.getText(); +// content.append(txt); +// } +// } else { +// PDDocument document = PDDocument.load(new File(readFilePath)); +// document.getClass(); +// if (!document.isEncrypted()) { +// PDFTextStripperByArea stripper = new PDFTextStripperByArea(); +// stripper.setSortByPosition(true); +// PDFTextStripper tStripper = new PDFTextStripper(); +// String pdfFileInText = tStripper.getText(document); +// // String[] lines = pdfFileInText.split("\\r?\\n"); +// content.append(pdfFileInText); +// } +// } +// } catch (Exception e) { +// logger.error("搜索中心新增数据读取文档内容时失败"); +// logger.error(e.getMessage(),e); +// } +// /*catch (IOException | OpenXML4JException | XmlException e) { +// logger.error(e.getMessage(),e); +// }*/ +// attrInfoMap.put("content",content.toString()); +// } +// } +// } +// else{ +// attrInfoMap.put("content",""); +// } +// standLawsSearchService.addStandLawsSearchForMap(attrInfoMap); +// } +// +// @Override +// public void updateIntoIndexForMap(Map attrInfoMap) { +// Set keys = attrInfoMap.keySet(); +// for (String key:keys) { +// String value = String.valueOf(attrInfoMap.get(key)); +// if (com.adc.da.util.utils.StringUtils.isNotBlank(value) && !"null".equals(value) && !"SVPPS".equals(key) && !"content".equals(key)){ +// value = value.replace(" , ",","); +// value = value.replace(","," , "); +// attrInfoMap.put(key,value); +// } +// } +// // 根据文件attid 读取文件内容 +// if (org.apache.commons.lang.StringUtils.isNotEmpty(String.valueOf(attrInfoMap.get("content")))) { +// String[] attidlist = String.valueOf(attrInfoMap.get("content")).split(" , "); +// StringBuilder content = new StringBuilder(""); +// for (int i = 0; i < attidlist.length; i++) { +// if(org.apache.commons.lang.StringUtils.isNotEmpty(attidlist[i]) && !"null".equals(attidlist[i])){ +// AttFileEO attFileEO = attFileEOService.getFileInfo(attidlist[i]); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// try { +// // 判断文件是docx还是PDF +// if (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc")) { +// if(attFileEO.getFileSuffix().equals("doc")){ +// FileInputStream fis = new FileInputStream(readFilePath); +// WordExtractor wordExtractor = new WordExtractor(fis); +// String txt = wordExtractor.getText(); +// content.append(txt); +// }else { +// OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath); +// XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage); +// String txt = extractor.getText(); +// content.append(txt); +// } +// } else if (attFileEO.getFileSuffix().equals("pdf")){ +// PDDocument document = PDDocument.load(new File(readFilePath)); +// document.getClass(); +// if (!document.isEncrypted()) { +// PDFTextStripperByArea stripper = new PDFTextStripperByArea(); +// stripper.setSortByPosition(true); +// PDFTextStripper tStripper = new PDFTextStripper(); +// String pdfFileInText = tStripper.getText(document); +// // String[] lines = pdfFileInText.split("\\r?\\n"); +// content.append(pdfFileInText); +// } +// } +// } catch (Exception e) { +// logger.error("搜索中心修改数据读取文档内容时失败"); +// logger.error(e.getMessage(),e); +// } +// attrInfoMap.put("content",content.toString()); +// } +// } +// } +// else{ +// attrInfoMap.put("content",""); +// } +// standLawsSearchService.updateStandLawsSearchForMap(attrInfoMap); +// } + + + public void getStandDetailsForAct(SarStandardsInfoEOPage page, String[] idArr, String standState, List standList) throws Exception { page.setPageSize(100); page.setIdlist(idArr); List rows = getSarStandForAct(page); @@ -1875,12 +2014,12 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getItems = sarStandItemsEOService.queryItemsByList(standItemsEOPage,resType); - Map map = sarProductStandEODao.queryStandSarState(sarStandardsInfoEO.getId()); - if(Integer.valueOf(map.get("SAR_ID").toString())>0){ + List getItems = sarStandItemsEOService.queryItemsByList(standItemsEOPage, resType); + Map map = sarProductStandEODao.queryStandSarState(sarStandardsInfoEO.getId()); + if (Integer.valueOf(map.get("SAR_ID").toString()) > 0) { actSarItemsEO.setSarState("1"); - if(getItems!=null && getItems.size()>0){ - for(ActSarItemsEO actSarItemsEO1:getItems){ + if (getItems != null && getItems.size() > 0) { + for (ActSarItemsEO actSarItemsEO1 : getItems) { actSarItemsEO1.setSarState("1"); } } - }else{ + } else { actSarItemsEO.setSarState("0"); - if(getItems!=null && getItems.size()>0){ - for(ActSarItemsEO actSarItemsEO1:getItems){ + if (getItems != null && getItems.size() > 0) { + for (ActSarItemsEO actSarItemsEO1 : getItems) { actSarItemsEO1.setSarState("0"); } } } actSarItemsEO.setItemsList(getItems); - if(StringUtils.isNotEmpty(page.getProductId())){ - List> sarProductStandEOS = sarProductStandEODao.queryStandSarStateNew(sarStandardsInfoEO.getId(), page.getProductId()); - if(sarProductStandEOS.size()>0){ - if(sarProductStandEOS.get(0).get("RELATE_ACCESS_ID")!=null){ + if (StringUtils.isNotEmpty(page.getProductId())) { + List> sarProductStandEOS = sarProductStandEODao.queryStandSarStateNew(sarStandardsInfoEO.getId(), page.getProductId()); + if (sarProductStandEOS.size() > 0) { + if (sarProductStandEOS.get(0).get("RELATE_ACCESS_ID") != null) { Map map1 = sarSarAccessInfoEODao.selectProTimeInfoByStandIdAndAccId(sarStandardsInfoEO.getId(), sarProductStandEOS.get(0).get("RELATE_ACCESS_ID").toString()); - if(map1!=null){ - actSarItemsEO.setNewPutText(map1.get("NEW_PUT_TEXT_TIME")!=null?map1.get("NEW_PUT_TEXT_TIME").toString().substring(0,10):""); - actSarItemsEO.setProdPutText(map1.get("PROD_PUT_TEXT_TIME")!=null?map1.get("PROD_PUT_TEXT_TIME").toString().substring(0,10):""); - actSarItemsEO.setAuthObj(map1.get("AUTH_OBJ_ID")!=null?map1.get("AUTH_OBJ_ID").toString():""); - actSarItemsEO.setAuthDelive(map1.get("AUTH_DELIVE")!=null?map1.get("AUTH_DELIVE").toString():""); - actSarItemsEO.setPerformInfo(map1.get("PERFORM_INFO")!=null?map1.get("PERFORM_INFO").toString():""); + if (map1 != null) { + actSarItemsEO.setNewPutText(map1.get("NEW_PUT_TEXT_TIME") != null ? map1.get("NEW_PUT_TEXT_TIME").toString().substring(0, 10) : ""); + actSarItemsEO.setProdPutText(map1.get("PROD_PUT_TEXT_TIME") != null ? map1.get("PROD_PUT_TEXT_TIME").toString().substring(0, 10) : ""); + actSarItemsEO.setAuthObj(map1.get("AUTH_OBJ_ID") != null ? map1.get("AUTH_OBJ_ID").toString() : ""); + actSarItemsEO.setAuthDelive(map1.get("AUTH_DELIVE") != null ? map1.get("AUTH_DELIVE").toString() : ""); + actSarItemsEO.setPerformInfo(map1.get("PERFORM_INFO") != null ? map1.get("PERFORM_INFO").toString() : ""); } } } @@ -1932,7 +2071,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getItems = sarLawsItemsEOService.queryItemsByList(lawsItemsEOPage,resType); + List getItems = sarLawsItemsEOService.queryItemsByList(lawsItemsEOPage, resType); actSarItemsEO.setItemsList(getItems); - Map map = sarProductStandEODao.queryStandSarState(sarStandardsInfoEO.getId()); - if(Integer.valueOf(map.get("SAR_ID").toString())>0){ + Map map = sarProductStandEODao.queryStandSarState(sarStandardsInfoEO.getId()); + if (Integer.valueOf(map.get("SAR_ID").toString()) > 0) { actSarItemsEO.setSarState("1"); - if(getItems!=null && getItems.size()>0){ - for(ActSarItemsEO actSarItemsEO1:getItems){ + if (getItems != null && getItems.size() > 0) { + for (ActSarItemsEO actSarItemsEO1 : getItems) { actSarItemsEO1.setSarState("1"); } } - }else{ + } else { actSarItemsEO.setSarState("0"); - if(getItems!=null && getItems.size()>0){ - for(ActSarItemsEO actSarItemsEO1:getItems){ + if (getItems != null && getItems.size() > 0) { + for (ActSarItemsEO actSarItemsEO1 : getItems) { actSarItemsEO1.setSarState("0"); } } } - if(StringUtils.isNotEmpty(page.getProductId())){ - List> sarProductStandEOS = sarProductStandEODao.queryStandSarStateNew(sarStandardsInfoEO.getId(), page.getProductId()); - if(sarProductStandEOS.size()>0){ - if(sarProductStandEOS.get(0).get("RELATE_ACCESS_ID")!=null){ + if (StringUtils.isNotEmpty(page.getProductId())) { + List> sarProductStandEOS = sarProductStandEODao.queryStandSarStateNew(sarStandardsInfoEO.getId(), page.getProductId()); + if (sarProductStandEOS.size() > 0) { + if (sarProductStandEOS.get(0).get("RELATE_ACCESS_ID") != null) { Map map1 = sarSarAccessInfoEODao.selectProTimeInfoByStandIdAndAccId(sarStandardsInfoEO.getId(), sarProductStandEOS.get(0).get("RELATE_ACCESS_ID").toString()); - if(map1!=null){ - actSarItemsEO.setNewPutText(map1.get("NEW_PUT_TEXT_TIME")!=null?map1.get("NEW_PUT_TEXT_TIME").toString().substring(0,10):""); - actSarItemsEO.setProdPutText(map1.get("PROD_PUT_TEXT_TIME")!=null?map1.get("PROD_PUT_TEXT_TIME").toString().substring(0,10):""); - actSarItemsEO.setAuthObj(map1.get("AUTH_OBJ_ID")!=null?map1.get("AUTH_OBJ_ID").toString():""); - actSarItemsEO.setAuthDelive(map1.get("AUTH_DELIVE")!=null?map1.get("AUTH_DELIVE").toString():""); - actSarItemsEO.setPerformInfo(map1.get("PERFORM_INFO")!=null?map1.get("PERFORM_INFO").toString():""); + if (map1 != null) { + actSarItemsEO.setNewPutText(map1.get("NEW_PUT_TEXT_TIME") != null ? map1.get("NEW_PUT_TEXT_TIME").toString().substring(0, 10) : ""); + actSarItemsEO.setProdPutText(map1.get("PROD_PUT_TEXT_TIME") != null ? map1.get("PROD_PUT_TEXT_TIME").toString().substring(0, 10) : ""); + actSarItemsEO.setAuthObj(map1.get("AUTH_OBJ_ID") != null ? map1.get("AUTH_OBJ_ID").toString() : ""); + actSarItemsEO.setAuthDelive(map1.get("AUTH_DELIVE") != null ? map1.get("AUTH_DELIVE").toString() : ""); + actSarItemsEO.setPerformInfo(map1.get("PERFORM_INFO") != null ? map1.get("PERFORM_INFO").toString() : ""); } } } @@ -1995,5 +2134,4 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl + * 前端控制器 + *

    +* +* @author zxy +* @since 2021-06-22 +*/ +@RestController +@Api(tags = "|人员管理|") +@RequestMapping("/api/sarUser/user") +public class TsUserController extends BaseController { + @Autowired + private ITsUserService tsUserService; + + @ApiOperation("禁用/解禁人员") + @PostMapping("/disable") + public ResponseMessage disable(@Validated(TsUser.disable.class) @RequestBody TsUser tsUser){ + //判断disableFlag是否填入正确 + if((!tsUser.getDisableFlag().equals("1"))&&(!tsUser.getDisableFlag().equals("0"))){ + return Result.error("disableFlag只能是0或1"); + } + return tsUserService.disable(tsUser); + } + + @ApiOperation("配置岗位") + @PostMapping("/position") + public ResponseMessage setPosition(@Valid @RequestBody UserPositionVO userPositionVO){ + return tsUserService.setPosition(userPositionVO); + } + + @ApiOperation("查询当前登录用户权限") + @GetMapping("/menu") + public ResponseMessage> getMenu(){ + List menus=tsUserService.getMenu(); + return Result.success(menus); + } + + @ApiOperation("查询当前登录用户资源") + @GetMapping("/resource") + public ResponseMessage> getResource(TsResource tsResource){ + List resources=tsUserService.getResource(tsResource); + return Result.success(resources); + } + + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java new file mode 100644 index 00000000..260e3afd --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java @@ -0,0 +1,56 @@ +package com.adc.da.slrs.sarUser.dao; + +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface TsUserDao extends BaseMapper { + + /** + * 查询用户已经绑定的岗位ID + */ + @Select("select position_id from ts_user_position where user_id=#{userId}") + List selectPositionIds(String userId); + + /** + * 添加岗位 + * @param userId:用户ID + * @param positionId:岗位ID + */ + @Insert("insert into ts_user_position (user_id,position_id) values (#{userId},#{positionId})") + void addPosition(String userId, String positionId); + + /** + * 解绑岗位 + * @param userId:用户ID + * @param positionId:岗位ID + */ + @Delete("delete from ts_user_position where user_id=#{userId} and position_id=#{positionId}") + void delPosition(String userId, String positionId); + + /** + * 通过岗位ID查询用户及其岗位 + * @param institutionId:岗位ID + * @return List + */ + List getUserAndPosition(String institutionId); + + /** + * 通过岗位Id列表查询用户ID列表 + * @param positionIds:岗位ID列表 + * @return List + */ + List getUserIdsByPositionIds(List positionIds); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java new file mode 100644 index 00000000..1a68858c --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java @@ -0,0 +1,145 @@ +package com.adc.da.slrs.sarUser.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; + +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; + +/** + *

    + * + *

    + * + * @author zxy + * @since 2021-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsUser对象", description="") +public class TsUser extends BaseEntity { + + public interface disable{ + } + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键Id") + @NotNull(message = "userId不能为空",groups = {disable.class}) + @TableId(value = "USID") + private String userId; + + @ApiModelProperty(value = "帐户") + @TableField("ACCOUNT") + private String account; + + @ApiModelProperty(value = "密码") + @TableField("PASSWORD") + private String password; + + @ApiModelProperty(value = "用户姓名") + @TableField("UNAME") + private String uname; + + @ApiModelProperty(value = "用户性别(1为男,2为女)") + @TableField("SEX") + private String sex; + + @ApiModelProperty(value = "用户来源") + @TableField("USER_SOURCE") + private String userSource; + + @ApiModelProperty(value = "用户手机号") + @TableField("PHONE") + private String phone; + + @ApiModelProperty(value = "用户状态") + @TableField("STATE") + private String state; + + @ApiModelProperty(value = "用户邮箱") + @TableField("EMAIL") + private String email; + + @ApiModelProperty(value = "所属部门名称") + @TableField("INSTITUTION_NAME") + private String institutionName; + + @ApiModelProperty(value = "所属部门ID") + @TableField("INSTITUTION_ID") + private String institutionId; + + @ApiModelProperty(value = "岗位名") + @TableField("POSITION_NAME") + private String positionName; + + @ApiModelProperty(value = "岗位ID") + @TableField("POSITION_ID") + private String positionId; + + @ApiModelProperty(value = "工号") + @TableField("WORK_NUM") + private String workNum; + + @ApiModelProperty(value = "备注") + @TableField("EXT_INFO") + private String extInfo; + + @TableField("OPER_USER") + private String operUser; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Timestamp modifyTime; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "是否禁用(0为未禁用,1为已禁用)") + @NotNull(message = "disableFlag不能为空",groups = {disable.class}) + @TableField("DISABLE_FLAG") + private String disableFlag; + + @ApiModelProperty(value = "是否锁定") + @TableField("UNLOCK_FLAG") + private String unlockFlag; + + @ApiModelProperty(value = "用户类型") + @TableField("USER_TYPE") + private String userType; + + @ApiModelProperty(value = "对接单点登录用户ID") + @TableField("SSO_ID") + private String ssoId; + + @ApiModelProperty(value = "岗位") + @TableField(exist = false) + private List positions; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java new file mode 100644 index 00000000..f07fbfbb --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java @@ -0,0 +1,14 @@ +package com.adc.da.slrs.sarUser.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class UserPositionVO { + @NotNull(message = "userId不能为空") + private String userId; + @NotNull(message = "positionIds不能为空") + private List positionIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java new file mode 100644 index 00000000..feb7c4db --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java @@ -0,0 +1,67 @@ +package com.adc.da.slrs.sarUser.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +public interface ITsUserService extends IService { + + + /** + * 通过机构ID查询人员 + * @param institutionId:机构ID + * @return List + */ + List getUserByInstitutionId(String institutionId); + + /** + * 封禁、解禁用户 + * @param tsUser:目标用户 + * @return ResponseMessage + */ + ResponseMessage disable(TsUser tsUser); + + /** + * 配置岗位 + * @param userPositionVO :用户、岗位ID + * @return ResponseMessage + */ + ResponseMessage setPosition(UserPositionVO userPositionVO); + + /** + * 查询当前登录的用户权限 + * @return List + */ + List getMenu(); + + List getResource(TsResource tsResource); + + /** + * 配置个人菜单 + * @param roleId :角色ID + * @return List + */ + public List getUserIdsByRoleId(String roleId); + + /** + * 通过用户ID查询菜单 + * @param userId:用户ID + * @return List + */ + public List getMenusByUserId(String userId); + + List getResourceId(TsResource tsResource); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java new file mode 100644 index 00000000..8fe1f319 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java @@ -0,0 +1,187 @@ +package com.adc.da.slrs.sarUser.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.login.util.UserUtils; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarMenu.service.ISarMenuService; +import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.adc.da.slrs.sarRole.service.ITsRoleService; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.dao.TsUserDao; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.sys.entity.UserEO; +import com.adc.da.utils.util.ListUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-22 + */ +@Service +public class TsUserServiceImpl extends ServiceImpl implements ITsUserService { + @Autowired + private TsUserDao tsUserDao; + @Autowired + private ITsPositionService tsPositionService; + @Autowired + @Lazy + private ITsRoleService tsRoleService; + @Autowired + private ISarMenuService sarMenuService; + @Autowired + private ITsResourceService tsResourceService; +// @Autowired +// private ISarUserPersonalMenuService sarUserPersonalMenuService; + + /** + * 通过机构ID查询人员 + * @param institutionId:机构ID + * @return List + */ + @Override + public List getUserByInstitutionId(String institutionId) { + return tsUserDao.getUserAndPosition(institutionId); + } + + /** + * 封禁、解禁用户 + * @param tsUser:目标用户 + * @return ResponseMessage + */ + @Override + public ResponseMessage disable(TsUser tsUser) { + TsUser user=tsUserDao.selectById(tsUser.getUserId()); + if(user==null){ + return Result.error("该用户不存在"); + } + //解禁 + if(tsUser.getDisableFlag().equals("0")){ + if(user.getDisableFlag().equals("0")){ + return Result.error("该用户已被解禁,请勿重复操作"); + } + user.setDisableFlag("0"); + //封禁 + }else { + if(user.getDisableFlag().equals("1")){ + return Result.error("该用户已被封禁,请勿重复操作"); + } + user.setDisableFlag("1"); + } + tsUserDao.updateById(user); + return Result.success(); + } + + /** + * 配置岗位 + * @param userPositionVO :用户、岗位ID + * @return ResponseMessage + */ + @Override + @Transactional + public ResponseMessage setPosition(UserPositionVO userPositionVO) { + TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId()); + if(tsUser==null){ + return Result.error("该用户不存在"); + } + List oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId()); + Map> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds); + List insertIds=ids.get("insert"); + List deleteIds=ids.get("delete"); + if(insertIds!=null&&insertIds.size()>0){ + for(String positionId:insertIds){ + tsUserDao.addPosition(userPositionVO.getUserId(),positionId); + } + } + if(deleteIds!=null&&deleteIds.size()>0){ + for(String positionId:deleteIds){ + tsUserDao.delPosition(userPositionVO.getUserId(),positionId); + } + } + return Result.success(); + } + + /** + * 查询当前登录的用户权限 + * @return List + */ + @Override + public List getMenu() { + UserEO userEO=UserUtils.getUser(); + String userId= userEO.getUsid(); + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + List menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds); + return sarMenuService.getMenuByIds(menuIds); + } + + /** + * 查询当前登录的用户资源 + * @return List + * @param tsResource + */ + @Override + public List getResource(TsResource tsResource) { + UserEO userEO=UserUtils.getUser(); + String userId= userEO.getUsid(); + System.out.println(userId); + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + List resourceIds=tsRoleService.getResourceIdsByRoleIds(roleIds); + return tsResourceService.getResourceByIds(resourceIds,tsResource.getSorDivide()); + } + + /** + * 配置个人菜单 + * @param roleId :角色ID + * @return List + */ + @Override + public List getUserIdsByRoleId(String roleId) { + List positionIds=tsPositionService.getPositionIdsByRoleId(roleId); + return tsUserDao.getUserIdsByPositionIds(positionIds); + } + + /** + * 通过用户ID查询菜单 + * @param userId:用户ID + * @return List + */ + @Override + public List getMenusByUserId(String userId){ + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + List menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds); + return sarMenuService.getMenuByIds(menuIds); + } + + /** + * 查询当前登录的用户资源 + * @return List + * @param tsResource + */ + @Override + public List getResourceId(TsResource tsResource) { + UserEO userEO=UserUtils.getUser(); + String userId= userEO.getUsid(); + System.out.println(userId); + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + return tsRoleService.getResourceIdsByRoleIds(roleIds); + + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictionaryController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictionaryController.java new file mode 100644 index 00000000..1a0f7ff1 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictionaryController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.tsDictionaryType.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.tsDictionaryType.entity.TsDictionary; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-28 +*/ +@RestController +@Api(description = "|TsDictionary|") +@RequestMapping("/tsDictionaryType/ts-dictionary") +public class TsDictionaryController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictypeController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictypeController.java new file mode 100644 index 00000000..9c582262 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/controller/TsDictypeController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.tsDictionaryType.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

    + * 前端控制器 + *

    +* +* @author zyl +* @since 2021-06-28 +*/ +@RestController +@Api(description = "|TsDictype|") +@RequestMapping("/tsDictionaryType/ts-dictype") +public class TsDictypeController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDicTypeDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDicTypeDao.java new file mode 100644 index 00000000..604050f3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDicTypeDao.java @@ -0,0 +1,19 @@ +package com.adc.da.slrs.tsDictionaryType.dao; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; +import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +public interface TsDicTypeDao extends BaseMapper { + public List getSearchMenu(); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDictionaryDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDictionaryDao.java new file mode 100644 index 00000000..01c0d2e8 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/dao/TsDictionaryDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.tsDictionaryType.dao; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDictionary; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * Mapper 接口 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +public interface TsDictionaryDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/MenuType.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/MenuType.java new file mode 100644 index 00000000..c43b0985 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/MenuType.java @@ -0,0 +1,17 @@ +package com.adc.da.slrs.tsDictionaryType.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +class MenuType{ + private String id; + private String dicId; + private String dicTypeName; + private String dicTypeCode; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDicType.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDicType.java new file mode 100644 index 00000000..9c5d8c4f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDicType.java @@ -0,0 +1,84 @@ +package com.adc.da.slrs.tsDictionaryType.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsDicType对象", description="") +@TableName("ts_dictype") +public class TsDicType extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "数据字典ID") + @TableField("DIC_ID") + private String dicId; + + @ApiModelProperty(value = "数据内容") + @TableField("DIC_TYPE_NAME") + private String dicTypeName; + + @ApiModelProperty(value = "数据编码") + @TableField("DIC_TYPE_CODE") + private String dicTypeCode; + + @ApiModelProperty(value = "描述") + @TableField("DESCRIBES") + private String describes; + + @ApiModelProperty(value = "展示排序") + @TableField("SHOW_INDEX") + private BigDecimal showIndex; + + @ApiModelProperty(value = "关联的父级ID") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "树结构父级ID") + @TableField("TREE_PID") + private String treePid; + + @ApiModelProperty(value = "冗余字段") + @TableField("OTHERS") + private String others; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private LocalDateTime creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private LocalDateTime modifyTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDictionary.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDictionary.java new file mode 100644 index 00000000..662fa8bd --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsDictionary.java @@ -0,0 +1,82 @@ +package com.adc.da.slrs.tsDictionaryType.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

    + * + *

    + * + * @author zyl + * @since 2021-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsDictionary对象", description="") +public class TsDictionary extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "数据字典编码") + @TableField("DICTIONARY_CODE") + private String dictionaryCode; + + @ApiModelProperty(value = "数据字典名称") + @TableField("DICTIONARY_NAME") + private String dictionaryName; + + @ApiModelProperty(value = "数据字典排序序号") + @TableField("ORDER_NUM") + private BigDecimal orderNum; + + @ApiModelProperty(value = "是否启用(0是,1否)") + @TableField("ENABLE") + private String enable; + + @ApiModelProperty(value = "类型(SEL_OPTION下拉选项,TREE树形结构)") + @TableField("DICTION_TYPE") + private String dictionType; + + @ApiModelProperty(value = "是否有关联类别(0是,1否)") + @TableField("IS_RELATE") + private String isRelate; + + @ApiModelProperty(value = "关联类别ID") + @TableField("RELATE_DIC_ID") + private String relateDicId; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private LocalDateTime creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private LocalDateTime modifyTime; + + @ApiModelProperty(value = "是否可编辑数据") + @TableField("IS_EDIT_DATA") + private String isEditData; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsSearchMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsSearchMenu.java new file mode 100644 index 00000000..de5b50fa --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/entity/TsSearchMenu.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.tsDictionaryType.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class TsSearchMenu { + + private String dicId; + + private String dictionaryName; + + private String dictionaryCode; + + public List menuTypes; + +} \ No newline at end of file diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDicTypeService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDicTypeService.java new file mode 100644 index 00000000..31e5f3d3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDicTypeService.java @@ -0,0 +1,21 @@ +package com.adc.da.slrs.tsDictionaryType.service; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; +import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +public interface ITsDicTypeService extends IService { + + public List getSearchMenu(); + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDictionaryService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDictionaryService.java new file mode 100644 index 00000000..399eeefa --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/ITsDictionaryService.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.tsDictionaryType.service; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDictionary; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 服务类 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +public interface ITsDictionaryService extends IService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDicTypeServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDicTypeServiceImpl.java new file mode 100644 index 00000000..7870f248 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDicTypeServiceImpl.java @@ -0,0 +1,27 @@ +package com.adc.da.slrs.tsDictionaryType.service.impl; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; +import com.adc.da.slrs.tsDictionaryType.dao.TsDicTypeDao; +import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu; +import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +@Service +public class TsDicTypeServiceImpl extends ServiceImpl implements ITsDicTypeService { + + @Override + public List getSearchMenu() { + return getBaseMapper().getSearchMenu(); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDictionaryServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDictionaryServiceImpl.java new file mode 100644 index 00000000..099b50a9 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsDictionaryType/service/impl/TsDictionaryServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.tsDictionaryType.service.impl; + +import com.adc.da.slrs.tsDictionaryType.entity.TsDictionary; +import com.adc.da.slrs.tsDictionaryType.dao.TsDictionaryDao; +import com.adc.da.slrs.tsDictionaryType.service.ITsDictionaryService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 服务实现类 + *

    + * + * @author zyl + * @since 2021-06-28 + */ +@Service +public class TsDictionaryServiceImpl extends ServiceImpl implements ITsDictionaryService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/DateUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/DateUtil.java index 7ef009f3..cd892c2c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/utils/util/DateUtil.java +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/DateUtil.java @@ -55,6 +55,36 @@ public class DateUtil { return dateTime; } + /** + * 将日期对象转换为指定的日期字符串 + * + * @param date 传入的日期对象 + * @param format 格式 + * @return 日期字符串 + * @author 赵肖云 + */ + public static String dateToString(Date date, String format) { + String string = ""; + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + if (date != null) { + string = simpleDateFormat.format(date); + } + return string; + } + + /** + * 将日期字符串转换为一个日期对象 + * + * @param datestr 日期字符串 + * @param format 格式 + * @return Date + * @author 赵肖云 + */ + public static Date stingToDate(String datestr, String format) throws ParseException { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + return simpleDateFormat.parse(datestr); + } + public static void main(String[] args) { String utcTime = "2021-04-15T01:43:54.296Z"; diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/ListUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/ListUtil.java new file mode 100644 index 00000000..c60e1130 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/ListUtil.java @@ -0,0 +1,72 @@ +package com.adc.da.utils.util; + +import java.util.*; + +/** + * List操作 + * @author zxy + */ +public class ListUtil { + + /** + * 获得targetList和referList中不同的元素 + * @param targetList:目标List + * @param referList:参照List + */ + public static Map> difList(List targetList, List referList){ + targetList.sort(String::compareTo); + referList.sort(String::compareTo); + //targetList多的节点 + List insertList=new ArrayList<>(); + //referList多的节点 + List deleteList=new ArrayList<>(); + //最后一个相等的节点 + int endEqual=-1; + //referList第一个与当前targetList节点不相等的节点坐标 + int index=0; + for(String node:targetList){ + //判断referList是否已遍历完成 + if(index> result=new HashMap<>(); + result.put("insert",insertList); + result.put("delete",deleteList); + System.out.println(insertList); + System.out.println(deleteList); + return result; + } +} diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml new file mode 100644 index 00000000..b914694b --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + insert into ts_institution (id,name,parent_id) values + ( + + #{id},#{name},#{parentId} + + ) + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInterpretationStandard/SarInterpretationStandardMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInterpretationStandard/SarInterpretationStandardMapper.xml new file mode 100644 index 00000000..62001a87 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInterpretationStandard/SarInterpretationStandardMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarDetailedIdAttFileMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarDetailedIdAttFileMapper.xml new file mode 100644 index 00000000..164b4a78 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarDetailedIdAttFileMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml new file mode 100644 index 00000000..b9d08ce8 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + INSERT INTO sar_laws_attr_detailed_list ( id, number, detailed_list_id, stand_id ) VALUES + + (#{list.id,jdbcType=VARCHAR}, #{list.number}, #{list.detailedListId,jdbcType=VARCHAR}, #{list.standId,jdbcType=VARCHAR}) + + + + delete from sar_laws_attr_detailed_list where detailed_list_id=#{standId,jdbcType=VARCHAR} + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsDetailedList/SarLawsDetailedListMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsDetailedList/SarLawsDetailedListMapper.xml new file mode 100644 index 00000000..3a72e09a --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsDetailedList/SarLawsDetailedListMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserPersonalMenuMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserPersonalMenuMapper.xml new file mode 100644 index 00000000..55241f78 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserPersonalMenuMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserStarMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserStarMapper.xml new file mode 100644 index 00000000..e8b388f4 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPersonalCenter/SarUserStarMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml new file mode 100644 index 00000000..123c3630 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml new file mode 100644 index 00000000..447de27f --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml new file mode 100644 index 00000000..e4ac1c0e --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlCause/SarStandIssueControlCauseMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlCause/SarStandIssueControlCauseMapper.xml new file mode 100644 index 00000000..cf0cfb84 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlCause/SarStandIssueControlCauseMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlProduct/SarStandIssueControlProductMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlProduct/SarStandIssueControlProductMapper.xml new file mode 100644 index 00000000..d436e6ae --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandIssueControlProduct/SarStandIssueControlProductMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationForeignStandardMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationForeignStandardMapper.xml new file mode 100644 index 00000000..9a345a83 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationForeignStandardMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationNationalStandardMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationNationalStandardMapper.xml new file mode 100644 index 00000000..41097a19 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarInterpretationNationalStandardMapper.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml new file mode 100644 index 00000000..b82994ed --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml index e725b2f7..67aec86e 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml @@ -381,7 +381,7 @@ left join TS_DICTYPE dicstandNature on (dicstandNature.dic_type_code = SAR_STANDARDS_INFO.stand_nature and dicstandNature.dic_id is not null and dicstandNature.valid_flag = 0 ) left join SAR_STAND_MENU ON SAR_STANDARDS_INFO.id = SAR_STAND_MENU.stand_id - left join SAR_MENU on SAR_STAND_MENU.menu_id = SAR_MENU.id + left join TS_RESOURCE on SAR_STAND_MENU.menu_id = TS_RESOURCE.id left join SAR_STAND_ATTR_INFO on (SAR_STAND_ATTR_INFO.stand_id = SAR_STANDARDS_INFO.id and SAR_STAND_ATTR_INFO.valid_flag=0) left join TS_PERSON_COLLECT on (TS_PERSON_COLLECT.COLLECT_RES_ID = SAR_STANDARDS_INFO.id and TS_PERSON_COLLECT.VALID_FLAG=0) where 1=1 and SAR_STANDARDS_INFO.valid_flag=0 @@ -439,7 +439,7 @@ - + @@ -476,7 +476,7 @@ - + @@ -710,7 +710,7 @@ left join TS_DICTYPE dicstandNature on (dicstandNature.dic_type_code = SAR_STANDARDS_INFO.stand_nature and dicstandNature.dic_id is not null and dicstandNature.valid_flag = 0 ) left join SAR_STAND_MENU ON SAR_STANDARDS_INFO.id = SAR_STAND_MENU.stand_id - left join SAR_MENU on SAR_STAND_MENU.menu_id = SAR_MENU.id + left join TS_RESOURCE on SAR_STAND_MENU.menu_id = TS_RESOURCE.id where SAR_STANDARDS_INFO.id = #{id} GROUP BY @@ -828,7 +828,7 @@ left join TS_DICTYPE dicstandNature on (dicstandNature.dic_type_code = SAR_STANDARDS_INFO.stand_nature and dicstandNature.dic_id is not null and dicstandNature.valid_flag = 0 ) left join SAR_STAND_MENU ON SAR_STANDARDS_INFO.id = SAR_STAND_MENU.stand_id - left join SAR_MENU on SAR_STAND_MENU.menu_id = SAR_MENU.id + left join TS_RESOURCE on SAR_STAND_MENU.menu_id = TS_RESOURCE.id left join SAR_STAND_ATTR_INFO on (SAR_STAND_ATTR_INFO.stand_id = SAR_STANDARDS_INFO.id and SAR_STAND_ATTR_INFO.valid_flag=0) left join TS_PERSON_COLLECT on (TS_PERSON_COLLECT.COLLECT_RES_ID = SAR_STANDARDS_INFO.id and TS_PERSON_COLLECT.VALID_FLAG=0) where 1=1 diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml new file mode 100644 index 00000000..158d3b20 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDicTypeMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDicTypeMapper.xml new file mode 100644 index 00000000..558feffe --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDicTypeMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDictionaryMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDictionaryMapper.xml new file mode 100644 index 00000000..b833a3d4 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/tsDictionaryType/TsDictionaryMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-sys/pom.xml b/adc-da-sys/pom.xml index 66956665..d199fc22 100644 --- a/adc-da-sys/pom.xml +++ b/adc-da-sys/pom.xml @@ -33,6 +33,27 @@ adc-da-base 3.0.0 + + org.apache.httpcomponents + httpclient + 4.5.2 + + + commons-codec + commons-codec + 1.10 + + + org.apache.commons + commons-lang3 + 3.4 + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + diff --git a/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java b/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java index 4db17119..62595607 100644 --- a/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java +++ b/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java @@ -35,7 +35,7 @@ import java.util.regex.Pattern; @RestController @RequestMapping("/${restPath}/att/attFile") -@Api(description = "|AttFileEO|文件上传") +@Api(tags = "|AttFileEO|文件上传") public class AttFileEOController { private static final Logger logger = LoggerFactory.getLogger(AttFileEOController.class); diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/controller/TestSyncController.java b/adc-da-sys/src/main/java/com/adc/da/sync/controller/TestSyncController.java new file mode 100644 index 00000000..07dcc3bd --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sync/controller/TestSyncController.java @@ -0,0 +1,30 @@ +package com.adc.da.sync.controller; + +import com.adc.da.sync.service.SyncUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/${restPath}/sync") +@Api(tags = "数据同步管理") +public class TestSyncController { + + @Autowired + private SyncUserService syncUserService; + + @ApiOperation(value = "福田IDM用户数据同步") + @GetMapping("/syncUser") + public void syncUser() throws Exception { + syncUserService.syncFotonUser(); + } + + @ApiOperation(value = "福田IDM组织数据同步") + @GetMapping("/syncOrg") + public void syncOrg() throws Exception { + syncUserService.syncFotonOrg(); + } +} diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java new file mode 100644 index 00000000..2214c03d --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java @@ -0,0 +1,106 @@ +package com.adc.da.sync.service; + + +import com.adc.da.sync.util.AuthUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import net.sf.json.JSONSerializer; +import org.apache.commons.codec.binary.Base64; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service("syncUserService") +@Slf4j +public class SyncUserService { + + + /** + * 同步福田IDM数据 + * @throws Exception + */ + public void syncFotonUser()throws Exception{ + String appuser = "wsuser"; + String appkey = "o1bnrph3pe6i63txm3z5l3cnka2a82pi"; + AuthUtils util = new AuthUtils(appuser, appkey, null); + + byte[] cookie = null; + do { + Map params = new HashMap(); + params.put("cookie", Base64.encodeBase64String(cookie)); + params.put("timestamp", "20141125065609Z"); + + // 用户参数 + params.put("filter", "(userid=*)"); + params.put("basedn", "ou=People,o=foton.com.cn,o=isp"); + System.out.println("RequestBody:" + params.toString()); + // 用户测试 + String rs = util.getResponseFromServer("http://172.24.224.42:82/rest/users/getUserList", params); + System.err.println(rs); + + JSONObject responseStr = (JSONObject) JSONSerializer.toJSON(rs); + + if (responseStr.containsKey("cookie")) { + try { + JSONArray entries = responseStr.getJSONArray("cookie"); + cookie = new byte[entries.size()]; + for (int i = 0; i < entries.size(); i++) { + cookie[i] = (byte) entries.getByte(i); + } + } catch (Exception e) { + if (e.getMessage().contains("is not a JSONArray")) { + cookie = null; + } + } + } + + } while (cookie != null); + } + + + + public void syncFotonOrg()throws Exception{ + String appuser = "wsuser"; + String appkey = "o1bnrph3pe6i63txm3z5l3cnka2a82pi"; + AuthUtils util = new AuthUtils(appuser, appkey, null); + + byte[] cookie = null; + do { + Map params = new HashMap(); + params.put("cookie", Base64.encodeBase64String(cookie)); + params.put("timestamp", "20141125065609Z"); + + // 组织参数 + params.put("filter", "(orgNumber=*)"); + params.put("basedn", "ou=Organizations,o=foton.com.cn,o=isp"); + // 组织测试 + String rs = util.getResponseFromServer("http://172.24.224.42:82/rest/orgs/getOrgList", params); + System.err.println(rs); + + + JSONObject responseStr = (JSONObject) JSONSerializer.toJSON(rs); + + if (responseStr.containsKey("cookie")) { + try { + JSONArray entries = responseStr.getJSONArray("cookie"); + cookie = new byte[entries.size()]; + for (int i = 0; i < entries.size(); i++) { + cookie[i] = (byte) entries.getByte(i); + } + } catch (Exception e) { + if (e.getMessage().contains("is not a JSONArray")) { + cookie = null; + } + } + } + + } while (cookie != null); + } + + +} diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java b/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java new file mode 100644 index 00000000..3a085b1f --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java @@ -0,0 +1,78 @@ +package com.adc.da.sync.util; + +import net.sf.json.JSONObject; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpUriRequest; +import org.apache.http.client.utils.HttpClientUtils; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.ContentType; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Map; + +public class AuthUtils { + + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); + + private final String appuser; + private final String appkey; + private final String appinfo; + + public AuthUtils(String appuser, String appkey, String appinfo) { + this.appuser = appuser; + this.appkey = appkey; + this.appinfo = appinfo; + } + + public String getResponseFromServer(String url, Map params) throws Exception { + HttpPost httpPost = new HttpPost(url); + createSignHeader(httpPost, params); + JSONObject object = JSONObject.fromObject(params); + httpPost.setEntity(new ByteArrayEntity(object.toString().getBytes(), ContentType.APPLICATION_JSON)); + return execute(httpPost); + } + + private String execute(HttpUriRequest request) throws Exception { + CloseableHttpClient client = null; + CloseableHttpResponse resp = null; + try { + client = HttpClientBuilder.create().build(); + resp = client.execute(request); + return EntityUtils.toString(resp.getEntity()); + } finally { + HttpClientUtils.closeQuietly(resp); + HttpClientUtils.closeQuietly(client); + } + } + + private void createSignHeader(HttpUriRequest request, Map params) throws Exception { + request.addHeader("appuser", appuser); + + String randomcode = RandomStringUtils.random(10, true, true); + request.addHeader("randomcode", randomcode); + + Calendar now = Calendar.getInstance(); + String timestamp = sdf.format(now.getTime()); + request.addHeader("timestamp", timestamp); + + String data = StringUtils.join(appuser, randomcode, timestamp); + String encodekey = DigestUtils.sha256Hex(StringUtils.join(data, "{", appkey, "}")); + request.addHeader("encodekey", encodekey); + + JSONObject object = JSONObject.fromObject(params); + String paramData = StringUtils.join(object.toString(), "&", appkey); + String signature = DigestUtils.md5Hex(paramData); + request.addHeader("sign", signature); + + request.addHeader("appinfo", appinfo); + request.addHeader("Content-Type", "application/json"); + } +} diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml index 2ef62938..8220853c 100644 --- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml +++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml @@ -421,7 +421,7 @@ - select from TS_USER u diff --git a/pom.xml b/pom.xml index a44dee79..ca9ad0c4 100644 --- a/pom.xml +++ b/pom.xml @@ -36,8 +36,10 @@ adc-da-base adc-da-sys adc-da-jwtLogin + adc-da-search adc-da-slrs adc-da-activiti + @@ -279,6 +281,12 @@ spring-rabbit-test test + + + com.alibaba + easyexcel + 2.2.6 +