diff --git a/db/20230905标准法规库.sql b/db/20230905标准法规库.sql index 3c49d3f7..5e2871c5 100644 --- a/db/20230905标准法规库.sql +++ b/db/20230905标准法规库.sql @@ -270,4 +270,38 @@ CREATE TABLE `laws_asms_open_api` alter table laws_asms_open_api comment '汽车标准数字化平台ASMS开放API接口管理'; +DROP TABLE IF EXISTS `laws_asms_domestic`; +CREATE TABLE `laws_asms_domestic` +( + `id` varchar(100) NOT NULL PRIMARY KEY COMMENT '主键ID', + `code` varchar(100) COMMENT '标准法规编号/标准号', + `name` varchar(100) COMMENT '标准法规名称/标准名称', + `english_name` varchar(100) COMMENT '法规英文名称', + `type` varchar(100) COMMENT '标准法规类别/标准类别', + `applicable_certification_list_string` varchar(100) COMMENT '适用认证', + `applicable_models_list_string` varchar(100) COMMENT '适用车型拼接名称', + `degree_adoption` varchar(100) COMMENT '采标程度', + `drafting_people` varchar(500) COMMENT '起草人', + `drafting_unit` varchar(500) COMMENT '起草单位', + `focal_point_name` varchar(100) COMMENT '标准领域名称', + `implementation_date` varchar(100) COMMENT '实施日期', + `international_standard` varchar(100) COMMENT '采用国际标准号', + `new_car_implementation_date` varchar(100) COMMENT '新车实施日期', + `new_register_car_implementation_date` varchar(100) COMMENT '新注册车实施日期', + `power_type_list_string` varchar(100) COMMENT '动力类型', + `production_car_implementation_date` varchar(100) COMMENT '在产车实施日期', + `proposing_department` varchar(100) COMMENT '提出部门', + `publish_date` varchar(100) COMMENT '发布日期', + `replace_code` varchar(100) COMMENT '代替标准号', + `scope_application` varchar(100) COMMENT '适用范围', + `standard_nature` varchar(100) COMMENT '标准性质', + `standard_status` varchar(100) COMMENT '标准状态', + `subcommittee` varchar(100) COMMENT '分标委', + `create_time` varchar(100) COMMENT '创建时间', + `update_time` varchar(100) COMMENT '更新时间', + `is_sync` varchar(5) COMMENT '是否同步(0未同步,1已同步)' +) COMMENT = 'ASMS国内法规'; +alter table laws_asms_domestic + comment 'ASMS国内法规'; + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/AsmsController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/AsmsController.java deleted file mode 100644 index 10f52ece..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/AsmsController.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.jero.modules.docking.asms.controller; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.jero.common.api.vo.Result; -import com.jero.modules.docking.asms.util.AsmsPostUtil; -import com.jero.modules.laws.common.constant.FieldCommon; -import io.swagger.annotations.Api; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Map; - -/** - * @Author: liao - * @Date: 2023/10/17 17:36 - * @Description: - */ -@Api(tags="国内法规标准") -@RestController -@RequestMapping("/asms") -public class AsmsController { - @Autowired - private AsmsPostUtil asmsPostUtil; - @GetMapping(value = "/getInfo") - public Result getInfo(String uri, Map map) { - List> mapList = asmsPostUtil.sendGetReq(uri, map); - return Result.OK(mapList); - } -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/LawsAsmsOpenApiController.java similarity index 95% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/LawsAsmsOpenApiController.java index bd118ca8..93190ae7 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/controller/LawsAsmsOpenApiController.java @@ -1,16 +1,14 @@ -package com.jero.modules.docking.asms.api.controller; +package com.jero.modules.docking.asms.controller; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.jero.common.api.vo.Result; -import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi; -import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService; +import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi; +import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.docking.asms.util.AsmsPostUtil; import lombok.extern.slf4j.Slf4j; @@ -18,7 +16,6 @@ import com.jero.common.system.base.controller.JeroController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.jero.common.aspect.annotation.AutoLog; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/entity/LawsAsmsOpenApi.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/entity/LawsAsmsOpenApi.java similarity index 98% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/entity/LawsAsmsOpenApi.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/entity/LawsAsmsOpenApi.java index a93b5c06..a9c37f54 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/entity/LawsAsmsOpenApi.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/entity/LawsAsmsOpenApi.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.asms.api.entity; +package com.jero.modules.docking.asms.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/LawsAsmsOpenApiMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/LawsAsmsOpenApiMapper.java similarity index 83% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/LawsAsmsOpenApiMapper.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/LawsAsmsOpenApiMapper.java index 44c8bd94..e4b8ea69 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/LawsAsmsOpenApiMapper.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/LawsAsmsOpenApiMapper.java @@ -1,7 +1,7 @@ -package com.jero.modules.docking.asms.api.mapper; +package com.jero.modules.docking.asms.mapper; import org.apache.ibatis.annotations.Mapper; -import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi; +import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/xml/LawsAsmsOpenApiMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/xml/LawsAsmsOpenApiMapper.xml similarity index 86% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/xml/LawsAsmsOpenApiMapper.xml rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/xml/LawsAsmsOpenApiMapper.xml index 95a5c436..2af1a939 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/mapper/xml/LawsAsmsOpenApiMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/mapper/xml/LawsAsmsOpenApiMapper.xml @@ -1,7 +1,7 @@ - - + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java similarity index 93% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java index 78ae49bb..d40898c8 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java @@ -1,6 +1,6 @@ -package com.jero.modules.docking.asms.api.service; +package com.jero.modules.docking.asms.service; -import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi; +import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi; import com.baomidou.mybatisplus.extension.service.IService; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java similarity index 94% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java index 75735135..94cae187 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java @@ -1,13 +1,11 @@ -package com.jero.modules.docking.asms.api.service.impl; +package com.jero.modules.docking.asms.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.jero.common.api.vo.Result; -import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi; -import com.jero.modules.docking.asms.api.mapper.LawsAsmsOpenApiMapper; -import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService; +import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi; +import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper; +import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService; import com.jero.modules.docking.asms.util.AsmsPostUtil; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.ISysDictItemService; @@ -20,7 +18,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/util/AsmsPostUtil.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/util/AsmsPostUtil.java index 74fa4127..4ca7ab9e 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/util/AsmsPostUtil.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/util/AsmsPostUtil.java @@ -3,6 +3,8 @@ package com.jero.modules.docking.asms.util; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.util.RedisUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -13,10 +15,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** * @Author: liao @@ -24,6 +23,7 @@ import java.util.Objects; * @Description: 远程调用 */ @Component +@Slf4j public class AsmsPostUtil { @Autowired @@ -62,6 +62,7 @@ public class AsmsPostUtil { token = resultMap.get("token"); // 将新获取的token存入redis redisUtil.set(ASMS_SYSTEM_AUTH_TOKEN, token, expire * 60 * 60); + log.info("new token is creating: {}", token); } return token; } @@ -75,9 +76,10 @@ public class AsmsPostUtil { **/ public List> sendGetReq(String uri, Map map) { // 准备请求头 + String token = getToken(); HttpHeaders headers = new HttpHeaders(); headers.set("Content-Type", "application/x-www-form-urlencoded"); - headers.set("X-Access-Token", getToken()); + headers.set("X-Access-Token", token); if (StringUtils.isBlank(uri)) { throw new JeroBootException("url不能为空"); @@ -91,19 +93,32 @@ public class AsmsPostUtil { url += "?" + s.substring(1); } - ResponseEntity responseEntity = restTemplate.exchange(url.toString(), - HttpMethod.GET, new HttpEntity<>(null, headers), Result.class); + ResponseEntity responseEntity; + try { + log.info("request url : {}", url); + responseEntity = restTemplate.exchange(url.toString(), + HttpMethod.GET, new HttpEntity<>(null, headers), Result.class); + } catch (Exception e) { + log.info("old token is deleting: {}", token); + redisUtil.del(ASMS_SYSTEM_AUTH_TOKEN); + e.printStackTrace(); + throw new JeroBootException("操作失败,请稍后重试"); + } if (!responseEntity.getBody().isSuccess()) { throw new JeroBootException("汽车标准数字化平台:请求发送失败"); } Map resultMap = (Map) responseEntity.getBody().getResult(); + if (Objects.isNull(resultMap)) { + throw new JeroBootException("返回数据为空"); + } List> mapList = (List>) resultMap.get("records"); - mapList.forEach(eMap -> { - StringBuilder sb = new StringBuilder(); - eMap.forEach((k, v) -> sb.append(k + ":" + v + ",")); - System.out.println(sb); - }); + if (CollectionUtils.isEmpty(mapList)) { + mapList = new ArrayList<>(); + Map result = (Map) responseEntity.getBody().getResult(); + mapList.add(result); + } + log.info("返回{}条数据", mapList.size()); return mapList; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java index 2149018a..7d424e74 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java @@ -115,4 +115,17 @@ public class FieldCommon { // 稽查内容 public static final String CHECK_LIST = "checkList"; + // 发布稿(原文) + public static final String FILE_PUBLISH_OF_ORIGINAL = "publish_of_original"; + // 修改单 + public static final String FILE_MODIFICATION_LIST = "modification_list"; + // 报批稿 + public static final String FILE_DRAFT_FOR_REVIEW = "draft_for_review"; + // 送审稿 + public static final String FILE_DRAFT_FOR_APPROVAL = "draft_for_approval"; + // 征求意见稿 + public static final String FILE_DRAFT_FOR_COMMENT = "draft_for_comment"; + // 草案 + public static final String FILE_DRAFT = "draft"; + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 1cf09101..1dabcd9d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -34,6 +34,8 @@ import com.jero.modules.personal.entity.LawsBrowsingHistory; import com.jero.modules.personal.entity.LawsStandardCollection; import com.jero.modules.personal.service.ILawsBrowsingHistoryService; import com.jero.modules.personal.service.ILawsStandardCollectionService; +import com.jero.modules.split.entity.SarFileSplitInfoEO; +import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.system.entity.SysDepart; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; @@ -123,6 +125,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService { private EnterpriseStandardAuthUserService esAuthUserService; @Resource private WaterMarkUtil waterMarkUtil; + @Autowired + private ISarFileSplitInfoService sarFileSplitInfoService; /** * @Author: liao @@ -165,11 +169,54 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } // 是否收藏判断标识 collectionFlag(infoPage.getRecords()); + // 标准拆分标识 + splitFlag(infoPage.getRecords()); // 待处理 return infoPage; } + /** + * @Author: liao + * @Date: 2023/10/19 15:36 + * @Description: 标准拆分标识 + **/ + private void splitFlag(List> records) { + // 获取全部id集合 + List ids = records.stream().map(kv -> + String.valueOf(kv.get("id"))).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(ids)) return; + + // 查询标准拆分表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SarFileSplitInfoEO::getStandardId, ids); + queryWrapper.isNotNull(SarFileSplitInfoEO::getPublishBeforeId); + queryWrapper.isNotNull(SarFileSplitInfoEO::getFileType); + List sarFileSplitInfoEOList = sarFileSplitInfoService.list(queryWrapper); + + if (CollectionUtils.isEmpty(sarFileSplitInfoEOList)) { + return; + } + + Map flagMap = new HashMap<>(); + sarFileSplitInfoEOList.forEach(e -> flagMap.put(e.getStandardId() + "," + e.getFileType(), e.getId())); + records.forEach(map -> { + String id = (String) map.get("id"); + map.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_PUBLISH_OF_ORIGINAL)); + map.put(FieldCommon.FILE_MODIFICATION_LIST + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_MODIFICATION_LIST)); + map.put(FieldCommon.FILE_DRAFT_FOR_REVIEW + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_REVIEW)); + map.put(FieldCommon.FILE_DRAFT_FOR_APPROVAL + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_APPROVAL)); + map.put(FieldCommon.FILE_DRAFT_FOR_COMMENT + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_COMMENT)); + map.put(FieldCommon.FILE_DRAFT + FieldCommon._STANDARD_SPLIT, + flagMap.get(id + "," + FieldCommon.FILE_DRAFT)); + }); + } + @Override public IPage> getExportData(Map parameterMap, List fieldList) { // 获取操作模块