From 464b11f47de02830e64fe40bc2e167067173067e Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Tue, 26 Apr 2022 14:08:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=20AWC=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=AF=B9=E5=AE=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adc/da/login/security/WebMvcConfig.java | 11 ++- .../controller/StandDataController.java | 90 +++++++++++++++++++ .../da/slrs/regulations/dao/StandDataDao.java | 31 +++++++ .../slrs/regulations/entity/FileResult.java | 26 ++++++ .../entity/SearchStandContext.java | 63 +++++++++++++ .../regulations/entity/SearchStandResult.java | 55 ++++++++++++ .../da/slrs/regulations/entity/StandData.java | 31 +++++++ .../entity/StandMessageCodeEnum.java | 23 +++++ .../slrs/regulations/entity/StandResult.java | 32 +++++++ .../service/IStandDataService.java | 26 ++++++ .../service/impl/StandDataServiceImpl.java | 75 ++++++++++++++++ .../mapper/regulations/RegulationsMapper.xml | 58 ++++++++++++ 12 files changed, 518 insertions(+), 3 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/FileResult.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandResult.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandData.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandMessageCodeEnum.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandResult.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/IStandDataService.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java create mode 100644 adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 3a8f8315..a810574b 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -31,9 +31,14 @@ public class WebMvcConfig implements WebMvcConfigurer { addInterceptor.excludePathPatterns("/api/loginIdm"); addInterceptor.excludePathPatterns("/api/checkPage"); addInterceptor.excludePathPatterns("/api/checkPageNoEncryption"); - /** - * TODO 测试流程 开放 login 接口 正式环境 关闭 - */ + + /** + * AWG 接口 + */ + addInterceptor.excludePathPatterns("/api/regulations/searchStandData"); + /** + * TODO 测试流程 开放 login 接口 正式环境 关闭 + */ addInterceptor.excludePathPatterns("/api/login"); addInterceptor.excludePathPatterns("/v2/api-docs"); addInterceptor.excludePathPatterns("/favicon.ico"); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java new file mode 100644 index 00000000..f8a64cb0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java @@ -0,0 +1,90 @@ +package com.adc.da.slrs.regulations.controller; + + +import com.adc.da.Log.BusinessType; +import com.adc.da.Log.EpcLog; +import com.adc.da.base.web.BaseController; +import com.adc.da.common.ReadExcel; +import com.adc.da.http.PageInfo; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.slrs.regulations.entity.SearchStandContext; +import com.adc.da.slrs.regulations.entity.SearchStandResult; +import com.adc.da.slrs.regulations.entity.StandMessageCodeEnum; +import com.adc.da.slrs.regulations.entity.StandResult; +import com.adc.da.slrs.regulations.service.IStandDataService; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStandExport; +import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.adc.da.slrs.sarStandardsInfo.entity.SarAdvanceSearchVO; +import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.sys.entity.DicTypeEO; +import com.adc.da.sys.service.IDicTypeEOService; +import com.adc.da.util.LoginUserUtil; +import com.adc.da.util.exception.AdcDaBaseException; +import com.adc.da.util.utils.IOUtils; +import com.adc.da.util.utils.StringUtils; +import com.adc.da.utils.util.BussStandExportUtil; +import com.adc.da.utils.util.SarAdvanceSearchUtil; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Date; +import java.util.List; + +/** + *

+ * 标准信息表 前端控制器 + *

+ * + * @author super_liu + * @since 2021-07-13 + */ +@RestController +@Api(tags = "福田标准法规--AWC查询标准") +@RequestMapping("/api/regulations") +public class StandDataController { + + private static final Logger logger = LoggerFactory.getLogger(StandDataController.class); + + @Autowired + private IStandDataService iStandDataService; + /** + * 标准查询列表接口 + * + * @param + * @return + */ + @ApiOperation(value = "|regulations|标准查询列表接口") + @PostMapping("/searchStandData") + public String searchStandData(@RequestBody SearchStandContext searchStandContext){ + String resultJson = ""; + if(StringUtils.isEmpty(searchStandContext.getUid()) + || StringUtils.isEmpty(searchStandContext.getUsername()) + || StringUtils.isEmpty(searchStandContext.getVppsCode())){ + return StandResult.toJson(StandResult.error(verifyObj(searchStandContext.getUid()), + StandMessageCodeEnum.SOURCE.getCode(), StandMessageCodeEnum.ERROR_PARAM.getCode(), + "uid/username/vppsCode 为必填项")); + } + return iStandDataService.searchStandData(searchStandContext); + } + + private String verifyObj(String str){ + return (str == null || str.equals("")) ? "" : str; + } +} + diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java new file mode 100644 index 00000000..34ebf87d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java @@ -0,0 +1,31 @@ +package com.adc.da.slrs.regulations.dao; + +import com.adc.da.slrs.regulations.entity.FileResult; +import com.adc.da.slrs.regulations.entity.SearchStandContext; +import com.adc.da.slrs.regulations.entity.StandData; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStandExport; +import com.adc.da.slrs.sarStandardsInfo.entity.RecommendVO; +import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; +import com.adc.da.sys.entity.UserEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 标准信息表 Mapper 接口 + *

+ * + * @author super_liu + */ +@Repository +public interface StandDataDao extends BaseMapper { + + List searchStandData(SearchStandContext searchStandContext); + +} + diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/FileResult.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/FileResult.java new file mode 100644 index 00000000..ebed5298 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/FileResult.java @@ -0,0 +1,26 @@ +package com.adc.da.slrs.regulations.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 12:05 + */ +@Data +public class FileResult { + + @ApiModelProperty(value = "当前标准跳转到本系统内的链接地址") + @JSONField(ordinal=1) + private String documentName; + + @ApiModelProperty(value = "标准分类+空格+标准号+空格+标准名称") + @JSONField(ordinal=2) + private String documentUrl; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java new file mode 100644 index 00000000..763e70a3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java @@ -0,0 +1,63 @@ +package com.adc.da.slrs.regulations.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 12:05 + */ +@Data +public class SearchStandContext implements Serializable { + + // 标准查询条件 + @ApiModelProperty(value = "唯一标识") + private String uid; + + @ApiModelProperty(value = "用户ID") + private String username; + + @ApiModelProperty(value = "VPPS码") + private String vppsCode; + + @ApiModelProperty(value = "VPPS名称") + private String vppsName; + + //其他 + @ApiModelProperty(value = "物料号") + private String itemId; + + @ApiModelProperty(value = "零部件名称") + private String objectName; + + @ApiModelProperty(value = "版本") + private String itemRevisionId; + + @ApiModelProperty(value = "所有者") + private String owningUser; + + @ApiModelProperty(value = "发布状态") + private String releaseStatus; + + @ApiModelProperty(value = "功能分组码") + private String vsgCode; + + @ApiModelProperty(value = "功能分组名称") + private String vsgName; + + @ApiModelProperty(value = "功能位置码") + private String fpcCode; + + @ApiModelProperty(value = "功能位置名称") + private String fpcName; + + @ApiModelProperty(value = "项目编号") + private String ItemNumber; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandResult.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandResult.java new file mode 100644 index 00000000..c1516ef7 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandResult.java @@ -0,0 +1,55 @@ +package com.adc.da.slrs.regulations.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 12:05 + */ +@Data +public class SearchStandResult { + + @ApiModelProperty(value = "请求参数中的uid直接带入即可") + @JSONField(ordinal=1) + private String uid; + + @ApiModelProperty(value = "SRMS 固定字符串 系统唯一标识") + @JSONField(ordinal=2) + private String source; + + @ApiModelProperty(value = "返回状态 200 正常,-1 系统错误, -10 参数错误") + @JSONField(ordinal=3) + private String status; + + @ApiModelProperty(value = "正常返回空字符串,系统错误时返回系统异常信息及对应描述") + @JSONField(ordinal=4) + private String errorMessage; + + @ApiModelProperty(value = "返回结果集合") + @JSONField(ordinal=5) + @JsonProperty(value = "List") + private List List; + + public SearchStandResult(String uid, String source, String status,String errorMessage) { + this.uid = uid; + this.source = source; + this.status = status; + this.errorMessage = errorMessage; + } + + public SearchStandResult(String uid, String source, String status,String errorMessage, List List) { + this.uid = uid; + this.source = source; + this.status = status; + this.errorMessage = errorMessage; + this.List = List; + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandData.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandData.java new file mode 100644 index 00000000..ad9897ba --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandData.java @@ -0,0 +1,31 @@ +package com.adc.da.slrs.regulations.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 12:05 + */ +@Data +public class StandData { + + @ApiModelProperty(value = "标准ID") + private String standId; + + @ApiModelProperty(value = "标准类型") + private String standType; + + @ApiModelProperty(value = "标准分类") + private String standSort; + + @ApiModelProperty(value = "标准号") + private String standNumber; + + @ApiModelProperty(value = "标准名称") + private String standName; + + @ApiModelProperty(value = "标准分类+空格+标准号+空格+标准名称") + private String documentName; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandMessageCodeEnum.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandMessageCodeEnum.java new file mode 100644 index 00000000..52d9becc --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandMessageCodeEnum.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.regulations.entity; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 14:58 + */ +public enum StandMessageCodeEnum { + SUCCESS("200"), + ERROR_SYS("-1"), + ERROR_PARAM("-10"), + SOURCE("SRMS"); + + private String code; + + private StandMessageCodeEnum(String code) { + this.code = code; + } + + public String getCode() { + return this.code; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandResult.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandResult.java new file mode 100644 index 00000000..29eeb278 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/StandResult.java @@ -0,0 +1,32 @@ +package com.adc.da.slrs.regulations.entity; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.util.List; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年04月25日 14:56 + */ +public class StandResult { + + public static SearchStandResult success(String uid, String source, String status,String errorMessage, List List) { + return new SearchStandResult(uid,source,status,errorMessage,List); + } + + public static SearchStandResult error(String uid, String source, String status,String errorMessage) { + return new SearchStandResult(uid,source,status,errorMessage); + } + + public static String toJson(SearchStandResult searchStandResult){ + GsonBuilder gsonBuilder = getGsonBuilder(); + Gson json = gsonBuilder.create(); + return json.toJson(searchStandResult); + } + + private static GsonBuilder getGsonBuilder() { + return new GsonBuilder().disableHtmlEscaping().serializeNulls().enableComplexMapKeySerialization().serializeSpecialFloatingPointValues().setLenient(); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/IStandDataService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/IStandDataService.java new file mode 100644 index 00000000..cd01e72b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/IStandDataService.java @@ -0,0 +1,26 @@ +package com.adc.da.slrs.regulations.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.regulations.entity.FileResult; +import com.adc.da.slrs.regulations.entity.SearchStandContext; +import com.adc.da.slrs.regulations.entity.SearchStandResult; +import com.adc.da.slrs.regulations.entity.StandData; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStandExport; +import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 标准信息表 服务类 + *

+ * + * @author super_liu + */ +public interface IStandDataService extends IService { + + String searchStandData(SearchStandContext searchStandContext); +} + diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java new file mode 100644 index 00000000..aa7e520a --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java @@ -0,0 +1,75 @@ +package com.adc.da.slrs.regulations.service.impl; + +import com.adc.da.slrs.regulations.dao.StandDataDao; +import com.adc.da.slrs.regulations.entity.*; +import com.adc.da.slrs.regulations.service.IStandDataService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import sun.misc.BASE64Encoder; + +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + + +/** + *

+ * 标准信息表 服务实现类 + *

+ * + * @author super_liu + * @date: 2022年04月25日 14:56 + */ +@Service +public class StandDataServiceImpl extends ServiceImpl implements IStandDataService { + + private static final Logger logger = LoggerFactory.getLogger(StandDataServiceImpl.class); + + private String webUrl = "https://srms.foton.com.cn/#/loginStandDetails"; + + @Override + public String searchStandData(SearchStandContext searchStandContext){ + List fileResultList = new ArrayList<>(); + try { + List standDataQuery = this.baseMapper.searchStandData(searchStandContext); + if(!standDataQuery.isEmpty()){ + // 重组数据集合 只需documentName 及 documentUrl + standDataQuery.stream().peek(standData -> { + FileResult fileResult = new FileResult(); + fileResult.setDocumentName(verifyObj(standData.getStandSort(),standData.getStandNumber(),standData.getStandName())); + fileResult.setDocumentUrl(webUrl+"?userName="+encode(searchStandContext.getUsername())+"&dataId="+standData.getStandId()+"&datatype="+standData.getStandType()); + fileResultList.add(fileResult); + }).collect(Collectors.toList()); + } + }catch (Exception e){ + return StandResult.toJson(StandResult.error(searchStandContext.getUid(), + StandMessageCodeEnum.SOURCE.getCode(), + StandMessageCodeEnum.ERROR_SYS.getCode(), + errFilter(e.getMessage()))); + } + return StandResult.toJson(StandResult.success(searchStandContext.getUid(), StandMessageCodeEnum.SOURCE.getCode(), StandMessageCodeEnum.SUCCESS.getCode(),"",fileResultList)); + } + + private String verifyObj(String str1,String str2,String str3){ + String res1 = (str1 == null || str1.equals("")) ? "" : (str1+" "); + String res2 = (str2 == null || str2.equals("")) ? "" : (str2+" "); + String res3 = (str3 == null || str3.equals("")) ? "" : str3; + return res1 + res2 + res3; + } + private String encode(String str){ + String encodeStr = new BASE64Encoder().encodeBuffer(str.getBytes()).replaceAll("[\r\n]", "");; + return encodeStr; + } + + private String errFilter(String str){ + if (str.contains("Cause")){ + str = str.split("Cause")[0].replaceAll("\\r\\n###",""); + } + return str; + } +} diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml new file mode 100644 index 00000000..d13c738d --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + +