From 160c6266d36f295a5237a5bd197be5879a82e269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 19 Jan 2024 17:15:07 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0srms=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/service/ILoginService.java | 7 + .../system/service/impl/LoginServiceImpl.java | 23 ++ .../srms/controller/SrmsApiController.java | 88 +++++++ .../docking/srms/dto/ByFileListRequests.java | 27 ++ .../docking/srms/dto/ByTokenRequests.java | 27 ++ .../modules/docking/srms/dto/StandardVO.java | 41 +++ .../srms/mapper/LawsStandardMapper.java | 28 ++ .../srms/mapper/xml/LawsStandardMapper.xml | 69 +++++ .../docking/srms/service/SrmsApiService.java | 35 +++ .../srms/service/impl/SrmsApiServiceImpl.java | 245 ++++++++++++++++++ .../modules/docking/srms/vo/ByFileRows.java | 63 +++++ .../docking/srms/vo/DocumentSplitDetail.java | 35 +++ .../docking/srms/vo/SarFileSplitMenu.java | 37 +++ .../modules/docking/srms/vo/SplitResult.java | 24 ++ .../modules/docking/utils/ResponsesUtil.java | 48 ++++ .../service/ISarFileSplitMenuEOService.java | 2 + .../impl/SarFileSplitMenuEOServiceImpl.java | 45 ++++ .../src/main/resources/application-dev.yml | 7 + 18 files changed, 851 insertions(+) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByFileListRequests.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByTokenRequests.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/ByFileRows.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/DocumentSplitDetail.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SarFileSplitMenu.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SplitResult.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ILoginService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ILoginService.java index ff3610b9..24e398cf 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ILoginService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ILoginService.java @@ -113,4 +113,11 @@ public interface ILoginService{ * @return com.jero.common.api.vo.Result */ public Result getRSAPublicKey(); + + /** + * srms获取token + * @param username 用户名 + * @return + */ + public Result srmsByToken(String username); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java index 143e4a9f..7fff47bd 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java @@ -625,6 +625,8 @@ public class LoginServiceImpl implements ILoginService { return result; } + + /** * 用户信息 * @@ -706,4 +708,25 @@ public class LoginServiceImpl implements ILoginService { result.setMessage("登录成功"); return result; } + + @Override + public Result srmsByToken(String userName) { + // 获取用户信息 + SysUser sysUser = sysUserService.getUserByName(userName); + // 校验用户是否有效 + Result result = sysUserService.checkUserIsEffective(sysUser); + if(!result.isSuccess()) { + return result; + } + if (checkSysPermission(sysUser.getUsername())) { + return Result.error("该用户无权限,请联系管理员"); + } + //用户登录信息 + userInfo(sysUser, result); + //update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员 + LoginUser loginUser = new LoginUser(); + BeanUtils.copyProperties(sysUser, loginUser); + baseCommonService.addLog(USER_NAME + userName + LOGIN_SUCCEED, CommonConstant.LOG_TYPE_1, null,loginUser); + return result; + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java new file mode 100644 index 00000000..d300c8d8 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -0,0 +1,88 @@ +package com.jero.modules.docking.srms.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.docking.srms.service.SrmsApiService; +import com.jero.modules.docking.srms.vo.ByFileRows; +import com.jero.modules.docking.utils.ResponsesUtil; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 9:52 + */ +@Slf4j +@RestController +@RequestMapping("/srms") +public class SrmsApiController { + @Resource + private SrmsApiService srmsApiService; + + private static final String MESSAGE_HEADER = MESSAGE_HEADER; + + @ApiOperation("获取token") + @PostMapping("/getByToken") + public JSONObject getByToken(@RequestBody JSONObject json){ + try { + Result re = srmsApiService.getByToken(json); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + } + String token = re.getResult().get("token").toString(); + JSONObject jsonResponses = ResponsesUtil.getJsonOk(); + jsonResponses.put("token",token); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("获取token异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + } + } + + @ApiOperation("标准法规文档查询") + @PostMapping("/getByLawsFileList") + public JSONObject getByLawsFileList(@RequestBody JSONObject json, HttpServletRequest req){ + try { + Result> re = srmsApiService.getByLawsFileList(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + } + List list = re.getResult(); + JSONObject jsonResponses = ResponsesUtil.getJsonOk(); + jsonResponses.put("Rows",list); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("获取token异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + } + } + +// @ApiOperation("设计导航-产品设计条款查询") +// @PostMapping("/getByLawsDesignNavigation") +// public JSONObject getByLawsDesignNavigation(@RequestBody JSONObject json, HttpServletRequest req){ +// try { +// Result re = srmsApiService.getByLawsFileList(json,req); +// if(!re.isSuccess()){ +// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); +// } +// JSONArray jsonArray = re.getResult(); +// JSONObject jsonResponses = ResponsesUtil.getJsonOk(); +// jsonResponses.put("Rows",jsonArray); +// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); +// }catch (Exception e){ +// log.error("获取token异常:",e); +// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); +// } +// } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByFileListRequests.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByFileListRequests.java new file mode 100644 index 00000000..9c571fc5 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByFileListRequests.java @@ -0,0 +1,27 @@ +package com.jero.modules.docking.srms.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 10:10 + */ +@Data +public class ByFileListRequests implements Serializable { + + /** + * 工号(唯一值) + */ + private String partCategoryNum; + /** + * 系统的key值(对接时SRMS提供) + */ + private String partCategoryName; + /** + * 系统对应秘钥(对接时SRMS提供) + */ + private String secret; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByTokenRequests.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByTokenRequests.java new file mode 100644 index 00000000..903a93ea --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ByTokenRequests.java @@ -0,0 +1,27 @@ +package com.jero.modules.docking.srms.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 10:10 + */ +@Data +public class ByTokenRequests implements Serializable { + + /** + * 工号(唯一值) + */ + private String username; + /** + * 系统的key值(对接时SRMS提供) + */ + private String appkey; + /** + * 系统对应秘钥(对接时SRMS提供) + */ + private String secret; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java new file mode 100644 index 00000000..36c543e9 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java @@ -0,0 +1,41 @@ +package com.jero.modules.docking.srms.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 14:58 + */ +@Data +public class StandardVO implements Serializable { + + /** + * 零部件-分类内部码(精准查询) + */ + private String partCategoryNum; + /** + * 零部件-分类名称 + */ + private String partCategoryName; + /** + * 标准编号 + */ + private String standardNumber; + /** + * 标准名称 + */ + private String standardName; + /** + * 标准状态 + */ + private String standardState; + /** + * 是否存在拆分信息,1 成功 2 null + */ + private String hasSplit; + + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java new file mode 100644 index 00000000..9eb2a97e --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java @@ -0,0 +1,28 @@ +package com.jero.modules.docking.srms.mapper; + +import com.jero.modules.docking.srms.dto.StandardVO; +import com.jero.modules.docking.srms.vo.ByFileRows; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Description: ASMS国内法规 + * @Author: jero-boot + * @Date: 2023-10-20 + * @Version: V1.0 + */ +@Mapper +public interface LawsStandardMapper{ + + /** + * + * @author LQT + * @date 2024/1/19 15:43 + * @param standard + * @return java.util.List + */ + List getStandard(@Param("standard") StandardVO standard); + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml new file mode 100644 index 00000000..a05fcd9d --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -0,0 +1,69 @@ + + + + + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java new file mode 100644 index 00000000..af4ca3f9 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java @@ -0,0 +1,35 @@ +package com.jero.modules.docking.srms.service; + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.docking.srms.vo.ByFileRows; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 9:49 + */ +public interface SrmsApiService { + + /** + * 获取token + * @author LQT + * @date 2024/1/18 15:41 + * @param json + * @return com.jero.common.api.vo.Result + */ + Result getByToken(JSONObject json); + + /** + * 标准法规文档查询 + * @author LQT + * @date 2024/1/18 16:59 + * @param json + * @param req + * @return com.alibaba.fastjson.JSONObject + */ + Result> getByLawsFileList(JSONObject json, HttpServletRequest req); +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java new file mode 100644 index 00000000..c26cd20c --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -0,0 +1,245 @@ +package com.jero.modules.docking.srms.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.vo.Result; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.util.JwtUtil; +import com.jero.common.util.RedisUtil; +import com.jero.common.util.TokenUtils; +import com.jero.modules.docking.srms.dto.ByTokenRequests; +import com.jero.modules.docking.srms.dto.StandardVO; +import com.jero.modules.docking.srms.mapper.LawsStandardMapper; +import com.jero.modules.docking.srms.service.SrmsApiService; +import com.jero.modules.docking.srms.vo.ByFileRows; +import com.jero.modules.docking.srms.vo.DocumentSplitDetail; +import com.jero.modules.docking.srms.vo.SarFileSplitMenu; +import com.jero.modules.docking.srms.vo.SplitResult; +import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; +import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper; +import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.split.entity.SarFileSplitInfoEO; +import com.jero.modules.split.entity.SarFileSplitMenuEO; +import com.jero.modules.split.page.SarFileSplitMenuEOPage; +import com.jero.modules.split.service.ISarFileSplitInfoService; +import com.jero.modules.split.service.ISarFileSplitMenuEOService; +import com.jero.modules.system.service.ILoginService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 9:53 + */ +@Slf4j +@Service +public class SrmsApiServiceImpl implements SrmsApiService { + + @Resource + private ILoginService loginService; + @Resource + private RedisUtil redisUtil; + @Resource + private ILawsDomesticStandardService lawsDomesticStandardService; + @Resource + private ILawsOverseasStandardService lawsOverseasStandardService; + @Resource + private ILawsEnterpriseStandardService lawsEnterpriseStandardService; + @Resource + private ISarFileSplitMenuEOService sarFileSplitMenuEOService; + @Resource + private ISarFileSplitInfoService sarFileSplitInfoService; + @Resource + private LawsDocumentSplitMapper lawsDocumentSplitMapper; + @Resource + private LawsStandardMapper lawsStandardMapper; + + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private IOSSFileService ossFileService; + + @Value("${srms.app_key}") + private String appKey; + @Value("${srms.secret}") + private String secret; + + private static final String SRMS_TOKEN = "srms_token_"; + + + @Override + public Result getByToken(JSONObject json) { + try { + ByTokenRequests byTokenRequests = JSON.parseObject(JSON.toJSONString(json.get("Requests")),ByTokenRequests.class); + // 验证数据必填项 + if(StringUtils.isAllBlank(byTokenRequests.getUsername()) + || StringUtils.isBlank(byTokenRequests.getAppkey()) + || StringUtils.isBlank(byTokenRequests.getSecret())){ + return Result.error("必填项不能为空"); + } + if(!Objects.equals(appKey,byTokenRequests.getAppkey()) || !Objects.equals(secret,byTokenRequests.getSecret())){ + return Result.error("系统验证失败"); + } + Result re = Result.OK(); + String tokenKey = SRMS_TOKEN + byTokenRequests.getUsername(); + // 验证用户是否存在token,存在不再重复获取 + if(redisUtil.hasKey(tokenKey)){ + JSONObject js = new JSONObject(); + js.put("token",redisUtil.get(tokenKey)); + re.setResult(js); + }else{ + re = loginService.srmsByToken(byTokenRequests.getUsername()); + String token = re.getResult().get("token").toString(); + redisUtil.set(tokenKey,token,JwtUtil.EXPIRE_TIME / 1000); + } + return re; + }catch (Exception e){ + log.error("获取token异常:",e); + return Result.error("操作失败"); + } + } + + @Override + public Result> getByLawsFileList(JSONObject json, HttpServletRequest req) { + try { + // 验证token + String token = req.getHeader("X-Access-Token"); + if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ + Result.error("系统验证失败"); + } + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get("Requests"))); + StandardVO standardVO = new StandardVO(); + // 零部件-分类内部码(精准查询) + String partCategoryNum = getStr(requests, "partCategoryNum"); + if(StringUtils.isBlank(partCategoryNum)){ + Result.error("零部件-分类内部码不能为空"); + } + standardVO.setPartCategoryNum(partCategoryNum); + // 零部件-分类名称 + String partCategoryName = getStr(requests, "partCategoryName"); + standardVO.setPartCategoryName(partCategoryName); + // 标准编号 + String standardNumber = getStr(requests, "standardNumber"); + standardVO.setStandardNumber(standardNumber); + // 标准名称 + String standardName = getStr(requests, "standardName"); + standardVO.setStandardName(standardName); + // 标准状态 + String standardState = getStr(requests, "standardState"); + standardVO.setStandardState(standardState); + // 是否存在拆分信息,默认false; true-是,false-否 + if(!Objects.isNull(requests.get("hasSplit"))){ + Boolean hasSplit = Boolean.parseBoolean(requests.get("hasSplit").toString()); + if(hasSplit){ + standardVO.setHasSplit("1"); + }else{ + standardVO.setHasSplit("2"); + } + } + // 备用字段1 + String remark1 = getStr(requests, "Remark1"); + // 备用字段2 + String remark2 = getStr(requests, "Remark2"); + // 备用字段3 + String remark3 = getStr(requests, "Remark3"); + // 备用字段4 + String remark4 = getStr(requests, "Remark4"); + + List listByFileRows = lawsStandardMapper.getStandard(standardVO); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if(!CollectionUtils.isEmpty(listByFileRows)){ + List listFileId = listByFileRows.stream().map(ByFileRows::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryOssFile = new LambdaQueryWrapper<>(); + queryOssFile.in(OSSFile::getStandardId,listFileId); + queryOssFile.eq(OSSFile::getStandardFileType,"publish_of_original"); + queryOssFile.orderByDesc(OSSFile::getCreateTime); + List listOssFile = ossFileService.list(queryOssFile); + for (ByFileRows byFileRows : listByFileRows) { + byFileRows.setPartCategoryNum(partCategoryNum); + byFileRows.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", byFileRows.getStandardState())); + if(!CollectionUtils.isEmpty(listOssFile)){ + List listFile = listOssFile.stream().filter(o->Objects.equals(o.getStandardId(),byFileRows.getId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listFile)){ + listFile = listFile.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); + byFileRows.setStandardUrl(listFile.get(0).getUrl()); + } + } + LambdaQueryWrapper querySarFileSplitInfoEo = new LambdaQueryWrapper<>(); + querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getStandardId,byFileRows.getId()); + querySarFileSplitInfoEo.isNull(SarFileSplitInfoEO::getPublishBeforeId); + querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getFileType,"publish_of_original"); + SarFileSplitInfoEO sarFileSplitInfoEo = sarFileSplitInfoService.getOne(querySarFileSplitInfoEo,false); + if(!Objects.isNull(sarFileSplitInfoEo)){ + SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); + page.setValidFlag("0"); + page.setOrderBy("display_seq asc"); + page.setInfoId(sarFileSplitInfoEo.getId()); + List getList = sarFileSplitMenuEOService.queryByApiList(page); + if(!CollectionUtils.isEmpty(getList)){ + List listSarFileSplitMenu = new ArrayList<>(); + for (SarFileSplitMenuEO sarFileSplitMenuEo : getList) { + SarFileSplitMenu sarFileSplitMenu = new SarFileSplitMenu(); + sarFileSplitMenu.setId(sarFileSplitMenuEo.getId()); + sarFileSplitMenu.setPid(sarFileSplitMenuEo.getPId()); + sarFileSplitMenu.setItemName(sarFileSplitMenuEo.getItemName()); + sarFileSplitMenu.setName(sarFileSplitMenuEo.getName()); + listSarFileSplitMenu.add(sarFileSplitMenu); + } + SplitResult splitResult = new SplitResult(); + if(!CollectionUtils.isEmpty(listSarFileSplitMenu)){ + List listIds = listSarFileSplitMenu.stream().map(SarFileSplitMenu::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryLawsDocumentSplit = new LambdaQueryWrapper<>(); + queryLawsDocumentSplit.in(LawsDocumentSplit::getMenuId,listIds); + queryLawsDocumentSplit.eq(LawsDocumentSplit::getDelFlag,"0"); + List listLawsDocumentSplit = lawsDocumentSplitMapper.selectList(queryLawsDocumentSplit); + if(!CollectionUtils.isEmpty(listLawsDocumentSplit)){ + List listDocumentSplitDetail = JSON.parseArray(JSON.toJSONString(listLawsDocumentSplit),DocumentSplitDetail.class); + splitResult.setDocumentSplitDetail(listDocumentSplitDetail); + } + + List finalResult = listSarFileSplitMenu; + listSarFileSplitMenu = listSarFileSplitMenu.stream().filter(v -> StringUtils.isBlank(v.getPid())) + .peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); + splitResult.setSarFileSplitMenuEO(JSON.toJSONString(listSarFileSplitMenu)); + } + + byFileRows.setSplitResult(splitResult); + } + } + } + } + return Result.OK(listByFileRows); + }catch (Exception e){ + log.error("标准法规文档查询异常:",e); + return Result.error("操作失败" + e.getMessage()); + } + } + + private String getStr(JSONObject requests, String partCategoryNum) { + return requests.containsKey(partCategoryNum) ? requests.get(partCategoryNum).toString() : ""; + } + + private List createChildList(SarFileSplitMenu testTree, List treeList) { + return treeList.stream().filter(v -> testTree.getId().equals(v.getPid())) + .peek(v -> v.setChildren(createChildList(v, treeList))) + .collect(Collectors.toList()); + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/ByFileRows.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/ByFileRows.java new file mode 100644 index 00000000..2ba7e0d0 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/ByFileRows.java @@ -0,0 +1,63 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 8:51 + */ +@Data +public class ByFileRows implements Serializable { + /** + * id + */ + private String id; + /** + * 零部件-分类内部码(精准查询) + */ + private String partCategoryNum; + /** + * 零部件-分类名称 + */ + private String partCategoryName; + /** + * 标准编号 + */ + private String standardNumber; + /** + * 标准名称 + */ + private String standardName; + /** + * 标准英文名称 + */ + private String standardEnglishName; + + /** + * 标准状态 + */ + private String standardState; + /** + * 标准状态 + */ + private String standardState_dictText; + /** + * 发布日期(转成字符串传) + * 示例:2024-01-05 + */ + private String releaseDate; + /** + * 实施日期 + * 示例:2024-01-05 + */ + private String implementationDate; + /** + * 标准跳转链接,即发布稿查看链接(url+at信息),试验存在 + */ + private String standardUrl; + + private SplitResult splitResult; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/DocumentSplitDetail.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/DocumentSplitDetail.java new file mode 100644 index 00000000..0cb5df25 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/DocumentSplitDetail.java @@ -0,0 +1,35 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 8:58 + */ +@Data +public class DocumentSplitDetail implements Serializable { + + /** + * 条款主键 + */ + private String id; + /** + * 目录id 和sarFileSplitMenuEO中对应 + */ + private String menuId; + /** + * 条款内容 + */ + private String itemContent; + /** + * 条款号 + */ + private String itemNum; + /** + * 条款标题 + */ + private String itemTitle; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SarFileSplitMenu.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SarFileSplitMenu.java new file mode 100644 index 00000000..f147e09a --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SarFileSplitMenu.java @@ -0,0 +1,37 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 13:55 + */ +@Data +public class SarFileSplitMenu implements Serializable { + + /** + * id + */ + private String id; + /** + * + */ + private String itemName; + /** + * + */ + private String name; + /** + * + */ + private String pid; + + /** + * + */ + private List children; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SplitResult.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SplitResult.java new file mode 100644 index 00000000..c12b6fac --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/SplitResult.java @@ -0,0 +1,24 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 8:57 + */ +@Data +public class SplitResult implements Serializable { + + /** + * 文档拆分详情 + */ + private List documentSplitDetail; + /** + * 条款信息的全部内容 + */ + private String sarFileSplitMenuEO; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java new file mode 100644 index 00000000..ca2c43d8 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java @@ -0,0 +1,48 @@ +package com.jero.modules.docking.utils; + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.constant.CommonConstant; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/18 14:45 + */ +public class ResponsesUtil { + + + public static JSONObject getJsonResult(Object jsonMessageHeader,JSONObject jsonResponses) { + JSONObject json = new JSONObject(); + json.put("MessageHeader",jsonMessageHeader); + json.put("Responses",jsonResponses); + return json; + } + + public static JSONObject getJsonOk() { + return getJsonOk(""); + } + + public static JSONObject getJsonOk(String message) { + JSONObject jsonResponses = new JSONObject(); + jsonResponses.put("srmsCode",CommonConstant.SC_OK_200); + jsonResponses.put("message",message); + jsonResponses.put("success",true); + jsonResponses.put("timestamp",System.currentTimeMillis()); + return jsonResponses; + } + + public static JSONObject getJsonErr() { + return getJsonErr(""); + } + + public static JSONObject getJsonErr(String message) { + JSONObject jsonResponses = new JSONObject(); + jsonResponses.put("srmsCode",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); + jsonResponses.put("message",message); + jsonResponses.put("success",false); + jsonResponses.put("timestamp",System.currentTimeMillis()); + return jsonResponses; + } + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java index c3e8a567..07647548 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java @@ -47,6 +47,8 @@ public interface ISarFileSplitMenuEOService extends IService List queryByList(SarFileSplitMenuEOPage page); + List queryByApiList(SarFileSplitMenuEOPage page); + int queryByCount(SarFileSplitMenuEOPage page); List queryByPage(SarFileSplitMenuEOPage page); diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index 990cab04..73e3328f 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -223,6 +223,51 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); } + @Override + public List queryByApiList(SarFileSplitMenuEOPage page) { + String itemName; + if (StringUtils.isNotBlank(page.getName())){ + itemName = page.getName(); + page.setName(null); + } else { + itemName = ""; + } + List result = dao.queryByList(page); + + // 处理数据是否可以上下移动标识 + for (SarFileSplitMenuEO sarFileSplitMenuEO : result) { + // 如果数据的同级别 该数据是第一条数据,不能向上移动, 该数据是最后一条数据 不能向下移动, 如果该级别只有这一条数据,不可向上或向下移动 + boolean moveUpFlag = false; + boolean moveDownFlag = false; + Long displaySeq = sarFileSplitMenuEO.getDisplaySeq(); + for (SarFileSplitMenuEO fileSplitMenuEO : result) { + if(StringUtils.equals(sarFileSplitMenuEO.getPId(),fileSplitMenuEO.getPId())){ + if(displaySeq > fileSplitMenuEO.getDisplaySeq()){ + moveUpFlag = true; + }else if(displaySeq < fileSplitMenuEO.getDisplaySeq()){ + moveDownFlag = true; + } + } + } + sarFileSplitMenuEO.setMoveUpFlag(moveUpFlag); + sarFileSplitMenuEO.setMoveDownFlag(moveDownFlag); + } + + // 关键字查询 + if (StringUtils.isNotBlank(itemName) && !result.isEmpty()){ + List trees = result.stream() + .filter(v -> (StringUtils.isNotBlank(v.getItemName()) + && v.getItemName().contains(itemName)) || v.getName().contains(itemName)) + .collect(Collectors.toList()); + // 递归查找所有符合项的父节点 + List newTrees = new ArrayList<>(trees); + queryTreeFather(result, trees, newTrees); + // 过滤重复项 + result = newTrees.stream().distinct().collect(Collectors.toList()); + } + return result; + } + private void queryTreeFather(List treeList, List trees, List newTrees) { for (SarFileSplitMenuEO tree : trees) { // 父节点 diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index ca8c3b0b..79c02353 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -476,3 +476,10 @@ watermark: margin: top: 100 left: 60 + +# srms 接口对接 +srms: + # 系统的key值 + app_key: eeabe117f06a4d99a15582a143d3be54 + # 系统对应秘钥 + secret: 7ddbafa5b7ba4104bff5ffae9d775998 From bf6d7fe86a199ee795ab813ec5d29c02a6e1d2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 19 Jan 2024 17:15:38 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0srms=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/docking/srms/controller/SrmsApiController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index d300c8d8..b1661597 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -30,7 +30,7 @@ public class SrmsApiController { @Resource private SrmsApiService srmsApiService; - private static final String MESSAGE_HEADER = MESSAGE_HEADER; + private static final String MESSAGE_HEADER = "MessageHeader"; @ApiOperation("获取token") @PostMapping("/getByToken") @@ -82,7 +82,7 @@ public class SrmsApiController { // return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); // }catch (Exception e){ // log.error("获取token异常:",e); -// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); +// return ResponsesUtil.getJsonResult(json.get("MessageHeader"),ResponsesUtil.getJsonErr("操作失败")); // } // } } From 4387eed5a279c8bf8d546013dcacd5c5bf6a7796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 19 Jan 2024 18:50:50 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0srms=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/config/shiro/ShiroConfig.java | 7 + .../srms/controller/SrmsApiController.java | 35 +-- .../docking/srms/dto/ProductDesign.java | 30 +++ .../srms/mapper/LawsStandardMapper.java | 13 +- .../srms/mapper/xml/LawsStandardMapper.xml | 43 +++- .../docking/srms/service/SrmsApiService.java | 11 + .../srms/service/impl/SrmsApiServiceImpl.java | 237 +++++++++++------- .../docking/srms/{dto => vo}/StandardVO.java | 2 +- 8 files changed, 257 insertions(+), 121 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ProductDesign.java rename laws-modules-docking/src/main/java/com/jero/modules/docking/srms/{dto => vo}/StandardVO.java (93%) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index 830fa96a..ff802ee8 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -150,6 +150,13 @@ public class ShiroConfig { //拆分标准查看图片 filterChainDefinitionMap.put("/sys/split/file/getImage", "anon"); + // 获取token + filterChainDefinitionMap.put("/srms/getByToken", "anon"); + // 标准法规文档查询 + filterChainDefinitionMap.put("/srms/getByLawsFileList", "anon"); + // 设计导航-产品设计条款查询 + filterChainDefinitionMap.put("/srms/getByLawsProductDesign", "anon"); + // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap<>(1); //如果cloudServer为空 则说明是单体 需要加载跨域配置【微服务跨域切换】 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index b1661597..462f1a59 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.utils.ResponsesUtil; @@ -68,21 +69,21 @@ public class SrmsApiController { } } -// @ApiOperation("设计导航-产品设计条款查询") -// @PostMapping("/getByLawsDesignNavigation") -// public JSONObject getByLawsDesignNavigation(@RequestBody JSONObject json, HttpServletRequest req){ -// try { -// Result re = srmsApiService.getByLawsFileList(json,req); -// if(!re.isSuccess()){ -// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); -// } -// JSONArray jsonArray = re.getResult(); -// JSONObject jsonResponses = ResponsesUtil.getJsonOk(); -// jsonResponses.put("Rows",jsonArray); -// return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); -// }catch (Exception e){ -// log.error("获取token异常:",e); -// return ResponsesUtil.getJsonResult(json.get("MessageHeader"),ResponsesUtil.getJsonErr("操作失败")); -// } -// } + @ApiOperation("设计导航-产品设计条款查询") + @PostMapping("/getByLawsProductDesign") + public JSONObject getByLawsProductDesign(@RequestBody JSONObject json, HttpServletRequest req){ + try { + Result> re = srmsApiService.getByLawsProductDesign(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + } + List list = re.getResult(); + JSONObject jsonResponses = ResponsesUtil.getJsonOk(); + jsonResponses.put("Rows",list); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("获取token异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + } + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ProductDesign.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ProductDesign.java new file mode 100644 index 00000000..4aed4c10 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/ProductDesign.java @@ -0,0 +1,30 @@ +package com.jero.modules.docking.srms.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 17:48 + */ +@Data +public class ProductDesign implements Serializable { + /** + * 设计导航唯一值 + */ + private String id; + /** + * 标准编号 + */ + private String standardNumber; + /** + * 条款标签 + */ + private String queryLabels; + /** + * 条款内容 + */ + private String itemContent; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java index 9eb2a97e..637cf9c1 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java @@ -1,6 +1,6 @@ package com.jero.modules.docking.srms.mapper; -import com.jero.modules.docking.srms.dto.StandardVO; +import com.jero.modules.docking.srms.vo.StandardVO; import com.jero.modules.docking.srms.vo.ByFileRows; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,4 +25,15 @@ public interface LawsStandardMapper{ */ List getStandard(@Param("standard") StandardVO standard); + /** + * + * @author LQT + * @date 2024/1/19 15:43 + * @param standardNumber + * @param queryLabels + * @return java.util.List + */ + String getStandardByProductDesign(@Param("standardNumber") String standardNumber, + @Param("queryLabels") String queryLabels); + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index a05fcd9d..01887a34 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -13,10 +13,10 @@ from laws_domestic_standard where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 - and standard_number = #{standard.standardNumber} + and standard_number like concat(concat('%',#{standard.standardNumber}),'%') - and standard_name = #{standard.standardName} + and standard_name like concat(concat('%',#{standard.standardName}),'%') and standard_state = #{standard.standardState} @@ -28,10 +28,10 @@ from laws_overseas_standard where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 - and standard_number = #{standard.standardNumber} + and standard_number like concat(concat('%',#{standard.standardNumber}),'%') - and standard_name = #{standard.standardName} + and standard_name like concat(concat('%',#{standard.standardName}),'%') and standard_state = #{standard.standardState} @@ -43,10 +43,10 @@ from laws_enterprise_standard where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 - and standard_number = #{standard.standardNumber} + and standard_number like concat(concat('%',#{standard.standardNumber}),'%') - and standard_name = #{standardVO.standardName} + and standard_name like concat(concat('%',#{standard.standardName}),'%') and standard_state = #{standard.standardState} @@ -66,4 +66,35 @@ + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java index af4ca3f9..cf1b0ee3 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java @@ -2,6 +2,7 @@ package com.jero.modules.docking.srms.service; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.vo.ByFileRows; import javax.servlet.http.HttpServletRequest; @@ -32,4 +33,14 @@ public interface SrmsApiService { * @return com.alibaba.fastjson.JSONObject */ Result> getByLawsFileList(JSONObject json, HttpServletRequest req); + + /** + * 设计导航-产品设计条款查询 + * @author LQT + * @date 2024/1/19 17:32 + * @param json + * @param req + * @return com.jero.common.api.vo.Result + */ + Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index c26cd20c..c912b897 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.modules.docking.srms.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.vo.Result; @@ -9,7 +10,8 @@ import com.jero.common.system.util.JwtUtil; import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.docking.srms.dto.ByTokenRequests; -import com.jero.modules.docking.srms.dto.StandardVO; +import com.jero.modules.docking.srms.dto.ProductDesign; +import com.jero.modules.docking.srms.vo.StandardVO; import com.jero.modules.docking.srms.mapper.LawsStandardMapper; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; @@ -18,9 +20,6 @@ import com.jero.modules.docking.srms.vo.SarFileSplitMenu; import com.jero.modules.docking.srms.vo.SplitResult; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper; -import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; -import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; -import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.split.entity.SarFileSplitInfoEO; @@ -32,12 +31,12 @@ import com.jero.modules.system.service.ILoginService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -58,12 +57,6 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Resource private RedisUtil redisUtil; @Resource - private ILawsDomesticStandardService lawsDomesticStandardService; - @Resource - private ILawsOverseasStandardService lawsOverseasStandardService; - @Resource - private ILawsEnterpriseStandardService lawsEnterpriseStandardService; - @Resource private ISarFileSplitMenuEOService sarFileSplitMenuEOService; @Resource private ISarFileSplitInfoService sarFileSplitInfoService; @@ -83,12 +76,15 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String secret; private static final String SRMS_TOKEN = "srms_token_"; + private static final String REQUESTS = "Requests"; + private static final String SYS_ERR = "系统验证失败"; + @Override public Result getByToken(JSONObject json) { try { - ByTokenRequests byTokenRequests = JSON.parseObject(JSON.toJSONString(json.get("Requests")),ByTokenRequests.class); + ByTokenRequests byTokenRequests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS)),ByTokenRequests.class); // 验证数据必填项 if(StringUtils.isAllBlank(byTokenRequests.getUsername()) || StringUtils.isBlank(byTokenRequests.getAppkey()) @@ -96,7 +92,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { return Result.error("必填项不能为空"); } if(!Objects.equals(appKey,byTokenRequests.getAppkey()) || !Objects.equals(secret,byTokenRequests.getSecret())){ - return Result.error("系统验证失败"); + return Result.error(SYS_ERR); } Result re = Result.OK(); String tokenKey = SRMS_TOKEN + byTokenRequests.getUsername(); @@ -119,19 +115,19 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsFileList(JSONObject json, HttpServletRequest req) { + // 验证token + String token = req.getHeader("X-Access-Token"); + if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ + Result.error(SYS_ERR); + } + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); + // 零部件-分类内部码(精准查询) + String partCategoryNum = getStr(requests, "partCategoryNum"); + if(StringUtils.isBlank(partCategoryNum)){ + Result.error("零部件-分类内部码不能为空"); + } try { - // 验证token - String token = req.getHeader("X-Access-Token"); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - Result.error("系统验证失败"); - } - JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get("Requests"))); StandardVO standardVO = new StandardVO(); - // 零部件-分类内部码(精准查询) - String partCategoryNum = getStr(requests, "partCategoryNum"); - if(StringUtils.isBlank(partCategoryNum)){ - Result.error("零部件-分类内部码不能为空"); - } standardVO.setPartCategoryNum(partCategoryNum); // 零部件-分类名称 String partCategoryName = getStr(requests, "partCategoryName"); @@ -146,14 +142,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { String standardState = getStr(requests, "standardState"); standardVO.setStandardState(standardState); // 是否存在拆分信息,默认false; true-是,false-否 - if(!Objects.isNull(requests.get("hasSplit"))){ - Boolean hasSplit = Boolean.parseBoolean(requests.get("hasSplit").toString()); - if(hasSplit){ - standardVO.setHasSplit("1"); - }else{ - standardVO.setHasSplit("2"); - } - } + setHasSplit(requests, standardVO); // 备用字段1 String remark1 = getStr(requests, "Remark1"); // 备用字段2 @@ -162,70 +151,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { String remark3 = getStr(requests, "Remark3"); // 备用字段4 String remark4 = getStr(requests, "Remark4"); - - List listByFileRows = lawsStandardMapper.getStandard(standardVO); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - if(!CollectionUtils.isEmpty(listByFileRows)){ - List listFileId = listByFileRows.stream().map(ByFileRows::getId).collect(Collectors.toList()); - LambdaQueryWrapper queryOssFile = new LambdaQueryWrapper<>(); - queryOssFile.in(OSSFile::getStandardId,listFileId); - queryOssFile.eq(OSSFile::getStandardFileType,"publish_of_original"); - queryOssFile.orderByDesc(OSSFile::getCreateTime); - List listOssFile = ossFileService.list(queryOssFile); - for (ByFileRows byFileRows : listByFileRows) { - byFileRows.setPartCategoryNum(partCategoryNum); - byFileRows.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", byFileRows.getStandardState())); - if(!CollectionUtils.isEmpty(listOssFile)){ - List listFile = listOssFile.stream().filter(o->Objects.equals(o.getStandardId(),byFileRows.getId())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listFile)){ - listFile = listFile.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); - byFileRows.setStandardUrl(listFile.get(0).getUrl()); - } - } - LambdaQueryWrapper querySarFileSplitInfoEo = new LambdaQueryWrapper<>(); - querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getStandardId,byFileRows.getId()); - querySarFileSplitInfoEo.isNull(SarFileSplitInfoEO::getPublishBeforeId); - querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getFileType,"publish_of_original"); - SarFileSplitInfoEO sarFileSplitInfoEo = sarFileSplitInfoService.getOne(querySarFileSplitInfoEo,false); - if(!Objects.isNull(sarFileSplitInfoEo)){ - SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); - page.setValidFlag("0"); - page.setOrderBy("display_seq asc"); - page.setInfoId(sarFileSplitInfoEo.getId()); - List getList = sarFileSplitMenuEOService.queryByApiList(page); - if(!CollectionUtils.isEmpty(getList)){ - List listSarFileSplitMenu = new ArrayList<>(); - for (SarFileSplitMenuEO sarFileSplitMenuEo : getList) { - SarFileSplitMenu sarFileSplitMenu = new SarFileSplitMenu(); - sarFileSplitMenu.setId(sarFileSplitMenuEo.getId()); - sarFileSplitMenu.setPid(sarFileSplitMenuEo.getPId()); - sarFileSplitMenu.setItemName(sarFileSplitMenuEo.getItemName()); - sarFileSplitMenu.setName(sarFileSplitMenuEo.getName()); - listSarFileSplitMenu.add(sarFileSplitMenu); - } - SplitResult splitResult = new SplitResult(); - if(!CollectionUtils.isEmpty(listSarFileSplitMenu)){ - List listIds = listSarFileSplitMenu.stream().map(SarFileSplitMenu::getId).collect(Collectors.toList()); - LambdaQueryWrapper queryLawsDocumentSplit = new LambdaQueryWrapper<>(); - queryLawsDocumentSplit.in(LawsDocumentSplit::getMenuId,listIds); - queryLawsDocumentSplit.eq(LawsDocumentSplit::getDelFlag,"0"); - List listLawsDocumentSplit = lawsDocumentSplitMapper.selectList(queryLawsDocumentSplit); - if(!CollectionUtils.isEmpty(listLawsDocumentSplit)){ - List listDocumentSplitDetail = JSON.parseArray(JSON.toJSONString(listLawsDocumentSplit),DocumentSplitDetail.class); - splitResult.setDocumentSplitDetail(listDocumentSplitDetail); - } - - List finalResult = listSarFileSplitMenu; - listSarFileSplitMenu = listSarFileSplitMenu.stream().filter(v -> StringUtils.isBlank(v.getPid())) - .peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); - splitResult.setSarFileSplitMenuEO(JSON.toJSONString(listSarFileSplitMenu)); - } - - byFileRows.setSplitResult(splitResult); - } - } - } - } + List listByFileRows = getByFileRows(partCategoryNum, standardVO); return Result.OK(listByFileRows); }catch (Exception e){ log.error("标准法规文档查询异常:",e); @@ -233,6 +159,85 @@ public class SrmsApiServiceImpl implements SrmsApiService { } } + @Nullable + private List getByFileRows(String partCategoryNum, StandardVO standardVO) { + List listByFileRows = lawsStandardMapper.getStandard(standardVO); + if(CollectionUtils.isEmpty(listByFileRows)) { + return listByFileRows; + } + List listFileId = listByFileRows.stream().map(ByFileRows::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryOssFile = new LambdaQueryWrapper<>(); + queryOssFile.in(OSSFile::getStandardId,listFileId); + queryOssFile.eq(OSSFile::getStandardFileType,"publish_of_original"); + queryOssFile.orderByDesc(OSSFile::getCreateTime); + List listOssFile = ossFileService.list(queryOssFile); + for (ByFileRows byFileRows : listByFileRows) { + byFileRows.setPartCategoryNum(partCategoryNum); + byFileRows.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", byFileRows.getStandardState())); + if(!CollectionUtils.isEmpty(listOssFile)){ + List listFile = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),byFileRows.getId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listFile)){ + listFile = listFile.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); + byFileRows.setStandardUrl(listFile.get(0).getUrl()); + } + } + LambdaQueryWrapper querySarFileSplitInfoEo = new LambdaQueryWrapper<>(); + querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getStandardId,byFileRows.getId()); + querySarFileSplitInfoEo.isNull(SarFileSplitInfoEO::getPublishBeforeId); + querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getFileType,"publish_of_original"); + SarFileSplitInfoEO sarFileSplitInfoEo = sarFileSplitInfoService.getOne(querySarFileSplitInfoEo,false); + if(!Objects.isNull(sarFileSplitInfoEo)){ + SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); + page.setValidFlag("0"); + page.setOrderBy("display_seq asc"); + page.setInfoId(sarFileSplitInfoEo.getId()); + List getList = sarFileSplitMenuEOService.queryByApiList(page); + if(!CollectionUtils.isEmpty(getList)){ + List listSarFileSplitMenu = new ArrayList<>(); + for (SarFileSplitMenuEO sarFileSplitMenuEo : getList) { + SarFileSplitMenu sarFileSplitMenu = new SarFileSplitMenu(); + sarFileSplitMenu.setId(sarFileSplitMenuEo.getId()); + sarFileSplitMenu.setPid(sarFileSplitMenuEo.getPId()); + sarFileSplitMenu.setItemName(sarFileSplitMenuEo.getItemName()); + sarFileSplitMenu.setName(sarFileSplitMenuEo.getName()); + listSarFileSplitMenu.add(sarFileSplitMenu); + } + SplitResult splitResult = new SplitResult(); + if(!CollectionUtils.isEmpty(listSarFileSplitMenu)){ + List listIds = listSarFileSplitMenu.stream().map(SarFileSplitMenu::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryLawsDocumentSplit = new LambdaQueryWrapper<>(); + queryLawsDocumentSplit.in(LawsDocumentSplit::getMenuId,listIds); + queryLawsDocumentSplit.eq(LawsDocumentSplit::getDelFlag,"0"); + List listLawsDocumentSplit = lawsDocumentSplitMapper.selectList(queryLawsDocumentSplit); + if(!CollectionUtils.isEmpty(listLawsDocumentSplit)){ + List listDocumentSplitDetail = JSON.parseArray(JSON.toJSONString(listLawsDocumentSplit),DocumentSplitDetail.class); + splitResult.setDocumentSplitDetail(listDocumentSplitDetail); + } + + List finalResult = listSarFileSplitMenu; + listSarFileSplitMenu = listSarFileSplitMenu.stream().filter(v -> StringUtils.isBlank(v.getPid())) + .peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); + splitResult.setSarFileSplitMenuEO(JSON.toJSONString(listSarFileSplitMenu)); + } + + byFileRows.setSplitResult(splitResult); + } + } + } + return listByFileRows; + } + + private void setHasSplit(JSONObject requests, StandardVO standardVO) { + if(!Objects.isNull(requests.get("hasSplit"))){ + Boolean hasSplit = Boolean.parseBoolean(requests.get("hasSplit").toString()); + if(hasSplit){ + standardVO.setHasSplit("1"); + }else{ + standardVO.setHasSplit("2"); + } + } + } + private String getStr(JSONObject requests, String partCategoryNum) { return requests.containsKey(partCategoryNum) ? requests.get(partCategoryNum).toString() : ""; } @@ -242,4 +247,44 @@ public class SrmsApiServiceImpl implements SrmsApiService { .peek(v -> v.setChildren(createChildList(v, treeList))) .collect(Collectors.toList()); } + + @Override + public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { + // 验证token + String token = req.getHeader("X-Access-Token"); + if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ + Result.error(SYS_ERR); + } + JSONArray requests = JSON.parseArray(JSON.toJSONString(json.get(REQUESTS))); + if(CollectionUtils.isEmpty(requests)){ + Result.error("必填项不能为空"); + } + List listProductDesign = new ArrayList<>(); + for (Object request : requests) { + JSONObject js = JSON.parseObject(JSON.toJSONString(request)); + // todo || !js.containsKey("queryLabels") + if(!js.containsKey("ID") || !js.containsKey("standardNumber") ){ + Result.error("必填项不能为空"); + } + // todo || Objects.isNull(js.get("queryLabels")) + if(Objects.isNull(js.get("ID")) || Objects.isNull(js.get("standardNumber"))){ + Result.error("必填项不能为空"); + } + ProductDesign productDesign = new ProductDesign(); + productDesign.setId(js.get("ID").toString()); + productDesign.setStandardNumber(js.get("standardNumber").toString()); + productDesign.setQueryLabels(js.get("queryLabels").toString()); + listProductDesign.add(productDesign); + } + try { + for (ProductDesign productDesign : listProductDesign) { + String str = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); + productDesign.setItemContent(str); + } + return Result.OK(listProductDesign); + }catch (Exception e){ + log.error("标准法规文档查询异常:",e); + return Result.error("操作失败" + e.getMessage()); + } + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardVO.java similarity index 93% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardVO.java index 36c543e9..9bac12cb 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/dto/StandardVO.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardVO.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.srms.dto; +package com.jero.modules.docking.srms.vo; import lombok.Data; From 019cd9bf86cf7262cfc95392b57ce84a12696248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 22 Jan 2024 14:11:59 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0srms=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srms/controller/SrmsApiController.java | 50 ++- .../srms/mapper/LawsStandardMapper.java | 10 +- .../srms/mapper/xml/LawsStandardMapper.xml | 20 + .../docking/srms/service/SrmsApiService.java | 24 ++ .../srms/service/impl/SrmsApiServiceImpl.java | 352 ++++++++++++++---- .../docking/srms/vo/StandardPageVO.java | 64 ++++ .../modules/docking/srms/vo/StandardTree.java | 27 ++ 7 files changed, 470 insertions(+), 77 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardPageVO.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardTree.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index 462f1a59..91186f7b 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -1,12 +1,14 @@ package com.jero.modules.docking.srms.controller; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; +import com.jero.modules.docking.srms.vo.StandardPageVO; +import com.jero.modules.docking.srms.vo.StandardTree; import com.jero.modules.docking.utils.ResponsesUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -64,7 +66,7 @@ public class SrmsApiController { jsonResponses.put("Rows",list); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ - log.error("获取token异常:",e); + log.error("标准法规文档查询异常:",e); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); } } @@ -82,7 +84,49 @@ public class SrmsApiController { jsonResponses.put("Rows",list); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ - log.error("获取token异常:",e); + log.error("设计导航-产品设计条款查询异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + } + } + + @ApiOperation("获取所有体系数据") + @PostMapping("/getByLawsSystem") + public JSONObject getByLawsSystem(@RequestBody JSONObject json, HttpServletRequest req){ + try { + Result> re = srmsApiService.getByLawsSystem(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + } + List list = re.getResult(); + JSONObject jsonResponses = ResponsesUtil.getJsonOk(); + jsonResponses.put("Rows",JSON.toJSONString(list)); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("获取所有体系数据异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + } + } + + @ApiOperation("分页查询标准数据") + @PostMapping("/getByLawsStandardPage") + public JSONObject getByLawsStandardPage(@RequestBody JSONObject json, HttpServletRequest req){ + try { + Result> re = srmsApiService.getByLawsStandardPage(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + } + IPage page = re.getResult(); + JSONObject jsonPage = new JSONObject(); + jsonPage.put("current",page.getCurrent()); + jsonPage.put("pages",page.getPages()); + jsonPage.put("size",page.getSize()); + jsonPage.put("total",page.getTotal()); + jsonPage.put("Rows_Result",page.getRecords()); + JSONObject jsonResponses = ResponsesUtil.getJsonOk(); + jsonResponses.put("Result",jsonPage); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("分页查询标准数据异常:",e); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java index 637cf9c1..a9c54e6d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java @@ -1,7 +1,12 @@ package com.jero.modules.docking.srms.mapper; -import com.jero.modules.docking.srms.vo.StandardVO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.docking.srms.vo.ByFileRows; +import com.jero.modules.docking.srms.vo.StandardPageVO; +import com.jero.modules.docking.srms.vo.StandardVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -36,4 +41,7 @@ public interface LawsStandardMapper{ String getStandardByProductDesign(@Param("standardNumber") String standardNumber, @Param("queryLabels") String queryLabels); + IPage getByLawsStandardPage(Page page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index 01887a34..3447bc96 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -97,4 +97,24 @@ left join laws_document_split l on s.id = l.info_id and l.del_flag = 0 where l.item_content is not null and l.item_content != '' limit 1 + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java index cf1b0ee3..791ec047 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java @@ -1,9 +1,12 @@ package com.jero.modules.docking.srms.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.vo.ByFileRows; +import com.jero.modules.docking.srms.vo.StandardPageVO; +import com.jero.modules.docking.srms.vo.StandardTree; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -43,4 +46,25 @@ public interface SrmsApiService { * @return com.jero.common.api.vo.Result */ Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req); + + /** + * 获取所有体系数据 + * @author LQT + * @date 2024/1/19 17:32 + * @param json + * @param req + * @return com.jero.common.api.vo.Result + */ + Result> getByLawsSystem(JSONObject json, HttpServletRequest req); + + /** + * 分页查询标准数据 + * @author LQT + * @date 2024/1/19 17:32 + * @param json + * @param req + * @return com.jero.common.api.vo.Result + */ + Result> getByLawsStandardPage(JSONObject json, HttpServletRequest req); + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index c912b897..17013a1d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.util.JwtUtil; @@ -11,15 +14,15 @@ import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.docking.srms.dto.ByTokenRequests; import com.jero.modules.docking.srms.dto.ProductDesign; -import com.jero.modules.docking.srms.vo.StandardVO; import com.jero.modules.docking.srms.mapper.LawsStandardMapper; import com.jero.modules.docking.srms.service.SrmsApiService; -import com.jero.modules.docking.srms.vo.ByFileRows; -import com.jero.modules.docking.srms.vo.DocumentSplitDetail; -import com.jero.modules.docking.srms.vo.SarFileSplitMenu; -import com.jero.modules.docking.srms.vo.SplitResult; +import com.jero.modules.docking.srms.vo.*; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper; +import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel; +import com.jero.modules.laws.standard.entity.PartName; +import com.jero.modules.laws.standard.service.ILawsTreeNodeService; +import com.jero.modules.laws.standard.service.PartNameService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.split.entity.SarFileSplitInfoEO; @@ -28,19 +31,18 @@ import com.jero.modules.split.page.SarFileSplitMenuEOPage; import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.split.service.ISarFileSplitMenuEOService; import com.jero.modules.system.service.ILoginService; +import com.jero.modules.tag.enums.TableNameEnum; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.regexp.RE; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -64,11 +66,15 @@ public class SrmsApiServiceImpl implements SrmsApiService { private LawsDocumentSplitMapper lawsDocumentSplitMapper; @Resource private LawsStandardMapper lawsStandardMapper; - @Resource private ISysBaseAPI sysBaseAPI; @Resource private IOSSFileService ossFileService; + @Resource + private ILawsTreeNodeService lawsTreeNodeService; + @Resource + private PartNameService partNameService; + @Value("${srms.app_key}") private String appKey; @@ -78,6 +84,11 @@ public class SrmsApiServiceImpl implements SrmsApiService { private static final String SRMS_TOKEN = "srms_token_"; private static final String REQUESTS = "Requests"; private static final String SYS_ERR = "系统验证失败"; + private static final String STANDARD_NAME = "standardName"; + private static final String STANDARD_NUMBER = "standardNumber"; + private static final String PUBLISH_OF_ORIGINAL = "publish_of_original"; + private static final String X_ACCESS_TOKEN = "X-Access-Token"; + private static final String ADD_NOT_NULL = "必填项不能为空"; @@ -89,7 +100,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { if(StringUtils.isAllBlank(byTokenRequests.getUsername()) || StringUtils.isBlank(byTokenRequests.getAppkey()) || StringUtils.isBlank(byTokenRequests.getSecret())){ - return Result.error("必填项不能为空"); + return Result.error(ADD_NOT_NULL); } if(!Objects.equals(appKey,byTokenRequests.getAppkey()) || !Objects.equals(secret,byTokenRequests.getSecret())){ return Result.error(SYS_ERR); @@ -116,15 +127,15 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsFileList(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader("X-Access-Token"); + String token = req.getHeader(X_ACCESS_TOKEN); if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - Result.error(SYS_ERR); + return Result.error(SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); // 零部件-分类内部码(精准查询) String partCategoryNum = getStr(requests, "partCategoryNum"); if(StringUtils.isBlank(partCategoryNum)){ - Result.error("零部件-分类内部码不能为空"); + return Result.error("零部件-分类内部码不能为空"); } try { StandardVO standardVO = new StandardVO(); @@ -133,24 +144,16 @@ public class SrmsApiServiceImpl implements SrmsApiService { String partCategoryName = getStr(requests, "partCategoryName"); standardVO.setPartCategoryName(partCategoryName); // 标准编号 - String standardNumber = getStr(requests, "standardNumber"); + String standardNumber = getStr(requests, STANDARD_NUMBER); standardVO.setStandardNumber(standardNumber); // 标准名称 - String standardName = getStr(requests, "standardName"); + String standardName = getStr(requests, STANDARD_NAME); standardVO.setStandardName(standardName); // 标准状态 String standardState = getStr(requests, "standardState"); standardVO.setStandardState(standardState); // 是否存在拆分信息,默认false; true-是,false-否 setHasSplit(requests, standardVO); - // 备用字段1 - String remark1 = getStr(requests, "Remark1"); - // 备用字段2 - String remark2 = getStr(requests, "Remark2"); - // 备用字段3 - String remark3 = getStr(requests, "Remark3"); - // 备用字段4 - String remark4 = getStr(requests, "Remark4"); List listByFileRows = getByFileRows(partCategoryNum, standardVO); return Result.OK(listByFileRows); }catch (Exception e){ @@ -168,11 +171,20 @@ public class SrmsApiServiceImpl implements SrmsApiService { List listFileId = listByFileRows.stream().map(ByFileRows::getId).collect(Collectors.toList()); LambdaQueryWrapper queryOssFile = new LambdaQueryWrapper<>(); queryOssFile.in(OSSFile::getStandardId,listFileId); - queryOssFile.eq(OSSFile::getStandardFileType,"publish_of_original"); + queryOssFile.eq(OSSFile::getStandardFileType,PUBLISH_OF_ORIGINAL); queryOssFile.orderByDesc(OSSFile::getCreateTime); List listOssFile = ossFileService.list(queryOssFile); + // 查询零件名称 + LambdaQueryWrapper queryPartName = new LambdaQueryWrapper<>(); + queryPartName.eq(PartName::getCode,partCategoryNum); + PartName partName = partNameService.getOne(queryPartName,false); + for (ByFileRows byFileRows : listByFileRows) { byFileRows.setPartCategoryNum(partCategoryNum); + if(!Objects.isNull(partName)){ + byFileRows.setPartCategoryName(partName.getName()); + } + byFileRows.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", byFileRows.getStandardState())); if(!CollectionUtils.isEmpty(listOssFile)){ List listFile = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),byFileRows.getId())).collect(Collectors.toList()); @@ -184,52 +196,56 @@ public class SrmsApiServiceImpl implements SrmsApiService { LambdaQueryWrapper querySarFileSplitInfoEo = new LambdaQueryWrapper<>(); querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getStandardId,byFileRows.getId()); querySarFileSplitInfoEo.isNull(SarFileSplitInfoEO::getPublishBeforeId); - querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getFileType,"publish_of_original"); + querySarFileSplitInfoEo.eq(SarFileSplitInfoEO::getFileType,PUBLISH_OF_ORIGINAL); SarFileSplitInfoEO sarFileSplitInfoEo = sarFileSplitInfoService.getOne(querySarFileSplitInfoEo,false); - if(!Objects.isNull(sarFileSplitInfoEo)){ - SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); - page.setValidFlag("0"); - page.setOrderBy("display_seq asc"); - page.setInfoId(sarFileSplitInfoEo.getId()); - List getList = sarFileSplitMenuEOService.queryByApiList(page); - if(!CollectionUtils.isEmpty(getList)){ - List listSarFileSplitMenu = new ArrayList<>(); - for (SarFileSplitMenuEO sarFileSplitMenuEo : getList) { - SarFileSplitMenu sarFileSplitMenu = new SarFileSplitMenu(); - sarFileSplitMenu.setId(sarFileSplitMenuEo.getId()); - sarFileSplitMenu.setPid(sarFileSplitMenuEo.getPId()); - sarFileSplitMenu.setItemName(sarFileSplitMenuEo.getItemName()); - sarFileSplitMenu.setName(sarFileSplitMenuEo.getName()); - listSarFileSplitMenu.add(sarFileSplitMenu); - } - SplitResult splitResult = new SplitResult(); - if(!CollectionUtils.isEmpty(listSarFileSplitMenu)){ - List listIds = listSarFileSplitMenu.stream().map(SarFileSplitMenu::getId).collect(Collectors.toList()); - LambdaQueryWrapper queryLawsDocumentSplit = new LambdaQueryWrapper<>(); - queryLawsDocumentSplit.in(LawsDocumentSplit::getMenuId,listIds); - queryLawsDocumentSplit.eq(LawsDocumentSplit::getDelFlag,"0"); - List listLawsDocumentSplit = lawsDocumentSplitMapper.selectList(queryLawsDocumentSplit); - if(!CollectionUtils.isEmpty(listLawsDocumentSplit)){ - List listDocumentSplitDetail = JSON.parseArray(JSON.toJSONString(listLawsDocumentSplit),DocumentSplitDetail.class); - splitResult.setDocumentSplitDetail(listDocumentSplitDetail); - } - - List finalResult = listSarFileSplitMenu; - listSarFileSplitMenu = listSarFileSplitMenu.stream().filter(v -> StringUtils.isBlank(v.getPid())) - .peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); - splitResult.setSarFileSplitMenuEO(JSON.toJSONString(listSarFileSplitMenu)); - } - - byFileRows.setSplitResult(splitResult); - } - } + addSarFileSplitInfoEO(byFileRows, sarFileSplitInfoEo); } return listByFileRows; } + private void addSarFileSplitInfoEO(ByFileRows byFileRows, SarFileSplitInfoEO sarFileSplitInfoEo) { + if(!Objects.isNull(sarFileSplitInfoEo)){ + SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); + page.setValidFlag("0"); + page.setOrderBy("display_seq asc"); + page.setInfoId(sarFileSplitInfoEo.getId()); + List getList = sarFileSplitMenuEOService.queryByApiList(page); + if(!CollectionUtils.isEmpty(getList)){ + List listSarFileSplitMenu = new ArrayList<>(); + for (SarFileSplitMenuEO sarFileSplitMenuEo : getList) { + SarFileSplitMenu sarFileSplitMenu = new SarFileSplitMenu(); + sarFileSplitMenu.setId(sarFileSplitMenuEo.getId()); + sarFileSplitMenu.setPid(sarFileSplitMenuEo.getPId()); + sarFileSplitMenu.setItemName(sarFileSplitMenuEo.getItemName()); + sarFileSplitMenu.setName(sarFileSplitMenuEo.getName()); + listSarFileSplitMenu.add(sarFileSplitMenu); + } + SplitResult splitResult = new SplitResult(); + if(!CollectionUtils.isEmpty(listSarFileSplitMenu)){ + List listIds = listSarFileSplitMenu.stream().map(SarFileSplitMenu::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryLawsDocumentSplit = new LambdaQueryWrapper<>(); + queryLawsDocumentSplit.in(LawsDocumentSplit::getMenuId,listIds); + queryLawsDocumentSplit.eq(LawsDocumentSplit::getDelFlag,"0"); + List listLawsDocumentSplit = lawsDocumentSplitMapper.selectList(queryLawsDocumentSplit); + if(!CollectionUtils.isEmpty(listLawsDocumentSplit)){ + List listDocumentSplitDetail = JSON.parseArray(JSON.toJSONString(listLawsDocumentSplit),DocumentSplitDetail.class); + splitResult.setDocumentSplitDetail(listDocumentSplitDetail); + } + + List finalResult = listSarFileSplitMenu; + listSarFileSplitMenu = listSarFileSplitMenu.stream().filter(v -> StringUtils.isBlank(v.getPid())) + .peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList()); + splitResult.setSarFileSplitMenuEO(JSON.toJSONString(listSarFileSplitMenu)); + } + + byFileRows.setSplitResult(splitResult); + } + } + } + private void setHasSplit(JSONObject requests, StandardVO standardVO) { if(!Objects.isNull(requests.get("hasSplit"))){ - Boolean hasSplit = Boolean.parseBoolean(requests.get("hasSplit").toString()); + boolean hasSplit = Boolean.parseBoolean(requests.get("hasSplit").toString()); if(hasSplit){ standardVO.setHasSplit("1"); }else{ @@ -251,28 +267,28 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader("X-Access-Token"); + String token = req.getHeader(X_ACCESS_TOKEN); if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - Result.error(SYS_ERR); + return Result.error(SYS_ERR); } JSONArray requests = JSON.parseArray(JSON.toJSONString(json.get(REQUESTS))); if(CollectionUtils.isEmpty(requests)){ - Result.error("必填项不能为空"); + return Result.error(ADD_NOT_NULL); } List listProductDesign = new ArrayList<>(); for (Object request : requests) { JSONObject js = JSON.parseObject(JSON.toJSONString(request)); // todo || !js.containsKey("queryLabels") - if(!js.containsKey("ID") || !js.containsKey("standardNumber") ){ - Result.error("必填项不能为空"); + if(!js.containsKey("ID") || !js.containsKey(STANDARD_NUMBER) ){ + Result.error(ADD_NOT_NULL); } // todo || Objects.isNull(js.get("queryLabels")) - if(Objects.isNull(js.get("ID")) || Objects.isNull(js.get("standardNumber"))){ - Result.error("必填项不能为空"); + if(Objects.isNull(js.get("ID")) || Objects.isNull(js.get(STANDARD_NUMBER))){ + Result.error(ADD_NOT_NULL); } ProductDesign productDesign = new ProductDesign(); productDesign.setId(js.get("ID").toString()); - productDesign.setStandardNumber(js.get("standardNumber").toString()); + productDesign.setStandardNumber(js.get(STANDARD_NUMBER).toString()); productDesign.setQueryLabels(js.get("queryLabels").toString()); listProductDesign.add(productDesign); } @@ -283,8 +299,198 @@ public class SrmsApiServiceImpl implements SrmsApiService { } return Result.OK(listProductDesign); }catch (Exception e){ - log.error("标准法规文档查询异常:",e); + log.error("设计导航-产品设计条款查询异常:",e); return Result.error("操作失败" + e.getMessage()); } } + + @Override + public Result> getByLawsSystem(JSONObject json, HttpServletRequest req) { + // 验证token + String token = req.getHeader(X_ACCESS_TOKEN); + if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ + return Result.error(SYS_ERR); + } + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); + String nodeName = ""; + if(!Objects.isNull(requests) && requests.containsKey("nodeName")){ + nodeName = requests.get("nodeName").toString(); + } + try { + List listStandardTreeAll = new ArrayList<>(); + // 企业标准 + List listEnterprise = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.ENTERPRISE_STANDARDS.getValue(), nodeName, "1"); + getStandardTree(listStandardTreeAll, listEnterprise); + // 国内标准 + List listDomestic = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.DOMESTIC_REGULATIONS.getValue(), nodeName, "1"); + getStandardTree(listStandardTreeAll, listDomestic); + // 海外标准 + List listForeign = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.FOREIGN_REGULATIONS.getValue(), nodeName, "1"); + getStandardTree(listStandardTreeAll, listForeign); + + return Result.OK(listStandardTreeAll); + }catch (Exception e){ + log.error("获取所有体系数据异常:",e); + return Result.error("操作失败" + e.getMessage()); + } + } + + private void getStandardTree(List listStandardTreeAll, List listEnterprise) { + if (!CollectionUtils.isEmpty(listEnterprise)) { + Optional op = listEnterprise.stream().filter(o -> StringUtils.isBlank(o.getParentId())).findFirst(); + if (op.isPresent()) { + LawsTreeNodeModel lawsTreeNodeModel = op.get(); + StandardTree standardTree = new StandardTree(); + standardTree.setNodeCode(lawsTreeNodeModel.getNodeCode()); + standardTree.setNodeName(lawsTreeNodeModel.getNodeName()); + if (!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren())) { + List sub = getTree(lawsTreeNodeModel.getChildren()); + if (!CollectionUtils.isEmpty(sub)) { + standardTree.setChildren(sub); + } + } + listStandardTreeAll.add(standardTree); + } + } + } + + private List getTree(List listEnterprise){ + if(CollectionUtils.isEmpty(listEnterprise)){ + return Collections.emptyList(); + } + List list = new ArrayList<>(); + for (LawsTreeNodeModel treeNodeModel : listEnterprise) { + StandardTree obj = new StandardTree(); + obj.setNodeCode(treeNodeModel.getNodeCode()); + obj.setNodeName(treeNodeModel.getNodeName()); + List listSub = treeNodeModel.getChildren(); + if(!CollectionUtils.isEmpty(listSub)){ + List listStandardTree = getTree(listSub); + if(!CollectionUtils.isEmpty(listStandardTree)){ + obj.setChildren(listStandardTree); + } + } + list.add(obj); + } + return list; + } + + @Override + public Result> getByLawsStandardPage(JSONObject json, HttpServletRequest req) { + // 验证token + String token = req.getHeader(X_ACCESS_TOKEN); + if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ + return Result.error(SYS_ERR); + } + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); + if(Objects.isNull(requests)){ + return Result.error(ADD_NOT_NULL); + } + String pageNoKey = "pageNo"; + String pageSizeKey = "pageSize"; + if(!requests.containsKey(pageNoKey) || !requests.containsKey(pageSizeKey) ){ + return Result.error(ADD_NOT_NULL); + } + try { + Long.parseLong(requests.get(pageNoKey).toString()); + Long.parseLong(requests.get(pageSizeKey).toString()); + }catch (Exception e){ + return Result.error(ADD_NOT_NULL); + } + QueryWrapper queryStandardPageVO = new QueryWrapper<>(); + setQuery(requests, queryStandardPageVO); + String columnKey = "column"; + if(requests.containsKey(columnKey) && !StringUtils.isBlank(requests.get(columnKey).toString())){ + String[] column = requests.get(columnKey).toString().split(","); + String[] order = null; + String orderKey = "order"; + if(requests.containsKey(orderKey) && StringUtils.isBlank(requests.get(orderKey).toString())){ + order = requests.get(orderKey).toString().split(","); + if(column.length != order.length){ + return Result.error("排序参数异常"); + } + } + setOrder(queryStandardPageVO, column, order); + } + Page page = new Page<>(Long.parseLong(requests.get(pageNoKey).toString()), + Long.parseLong(requests.get(pageSizeKey).toString())); + IPage pageList =lawsStandardMapper.getByLawsStandardPage(page,queryStandardPageVO); + getListStandardPageVO(pageList); + return Result.OK(pageList); + } + + private void setQuery(JSONObject requests, QueryWrapper queryStandardPageVO) { + String nodeCodeKey = "nodeCode"; + if(requests.containsKey(nodeCodeKey) && !StringUtils.isEmpty(requests.get(nodeCodeKey).toString())){ + String nodeCode = requests.get(nodeCodeKey).toString(); + queryStandardPageVO.eq(!StringUtils.isEmpty(nodeCode),"l.node_code",nodeCode); + } + if(requests.containsKey(STANDARD_NUMBER) && !StringUtils.isEmpty(requests.get(STANDARD_NUMBER).toString())){ + String standardNumber = requests.get(STANDARD_NUMBER).toString(); + queryStandardPageVO.like("standard_number",standardNumber); + } + if(requests.containsKey(STANDARD_NAME) && !StringUtils.isEmpty(requests.get(STANDARD_NAME).toString())){ + String standardName = requests.get(STANDARD_NAME).toString(); + queryStandardPageVO.like("standard_name",standardName); + } + } + + private void setOrder(QueryWrapper queryStandardPageVO, String[] column, String[] order) { + for (int i = 0; i < column.length; i++) { + if(Objects.isNull(order)){ + queryStandardPageVO.orderByDesc(column[i]); + }else{ + if(Objects.equals(order[i],"asc") || Objects.equals(order[i],"ASC")){ + queryStandardPageVO.orderByAsc(column[i]); + }else{ + queryStandardPageVO.orderByDesc(column[i]); + } + } + } + } + + private void getListStandardPageVO(IPage pageList) { + List listStandardPageVO = pageList.getRecords(); + if(CollectionUtils.isEmpty(listStandardPageVO)){ + return; + } + List listFileId = listStandardPageVO.stream().map(StandardPageVO::getId).collect(Collectors.toList()); + QueryWrapper queryOssFile = new QueryWrapper<>(); + queryOssFile.eq("lower(right(url, 4))",".pdf"); + queryOssFile.lambda().in(OSSFile::getStandardId,listFileId); + queryOssFile.lambda().eq(OSSFile::getStandardFileType,PUBLISH_OF_ORIGINAL); + queryOssFile.lambda().orderByDesc(OSSFile::getCreateTime); + List listOssFile = ossFileService.list(queryOssFile); + + List listStandardPageVOPartName = listStandardPageVO.stream().filter(o->!StringUtils.isBlank(o.getPartCategoryNum())).collect(Collectors.toList()); + List listPartName = new ArrayList<>(); + if(!CollectionUtils.isEmpty(listStandardPageVOPartName)){ + List listPartCategoryNum = listStandardPageVOPartName.stream().map(StandardPageVO::getPartCategoryNum).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listPartCategoryNum)){ + // 零件号查询 + LambdaQueryWrapper queryPartName = new LambdaQueryWrapper<>(); + queryPartName.in(PartName::getCode, Arrays.stream(String.join(",",listPartCategoryNum).split(",")).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList())); + listPartName = partNameService.list(queryPartName); + } + } + + for (StandardPageVO standardPageVO : listStandardPageVO) { + standardPageVO.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", standardPageVO.getStandardState())); + if(!CollectionUtils.isEmpty(listOssFile)){ + List listOssFileOne = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),standardPageVO.getId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listOssFileOne)){ + listOssFileOne = listOssFileOne.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); + standardPageVO.setStandardUrl(listOssFileOne.get(0).getUrl()); + } + } + // 零件号查询 + if(!CollectionUtils.isEmpty(listPartName)){ + List listPartNameNew = listPartName.stream().filter(o->Arrays.asList(standardPageVO.getPartCategoryNum().split(",")).contains(o.getCode())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listPartNameNew)){ + List listName = listPartNameNew.stream().map(PartName::getName).collect(Collectors.toList()); + standardPageVO.setPartCategoryName(String.join(",",listName)); + } + } + } + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardPageVO.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardPageVO.java new file mode 100644 index 00000000..f5481cb5 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardPageVO.java @@ -0,0 +1,64 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/19 14:58 + */ +@Data +public class StandardPageVO implements Serializable { + + /** + * id + */ + private String id; + /** + * 零部件-分类内部码(精准查询) + */ + private String partCategoryNum; + /** + * 零部件-分类名称 + */ + private String partCategoryName; + /** + * 标准编号 + */ + private String standardNumber; + /** + * 标准名称 + */ + private String standardName; + /** + * 标准英文名称 + */ + private String standardEnglishName; + + /** + * 标准状态 + */ + private String standardState; + /** + * 标准状态 + */ + private String standardState_dictText; + /** + * 发布日期(转成字符串传) + * 示例:2024-01-05 + */ + private String releaseDate; + /** + * 实施日期 + * 示例:2024-01-05 + */ + private String implementationDate; + /** + * 标准跳转链接,即发布稿查看链接(url+at信息),试验存在 + */ + private String standardUrl; + + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardTree.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardTree.java new file mode 100644 index 00000000..de999997 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/vo/StandardTree.java @@ -0,0 +1,27 @@ +package com.jero.modules.docking.srms.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author lqt + * @version 1.0 + * @date 2024/1/21 18:44 + */ +@Data +public class StandardTree implements Serializable { + /** + * 节点编码 + */ + private String nodeCode; + /** + * 节点名称 + */ + private String nodeName; + /** + * 子集 + */ + private List children; +} From 1189670ffd6fd8f6428f6f8e1333fbf1cbe54cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Wed, 24 Jan 2024 14:33:13 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9srms=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/config/filter/csrf/CsrfFilter.java | 2 +- .../com/jero/config/shiro/ShiroConfig.java | 4 - .../srms/mapper/xml/LawsStandardMapper.xml | 23 ++-- .../srms/service/impl/SrmsApiServiceImpl.java | 110 +++++++++++++----- .../src/main/resources/application-dev.yml | 10 ++ 5 files changed, 106 insertions(+), 43 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java index 9c617f73..de22e377 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java @@ -56,7 +56,7 @@ public class CsrfFilter implements Filter { String url = req.getRequestURL().toString(); // 获取来源 String referurl = req.getHeader("Referer"); - if(isWhiteReq(referurl) || Objects.equals(upgrade,"websocket") || url.contains("view") || url.contains("doc.html")){ + if(isWhiteReq(referurl) || Objects.equals(upgrade,"websocket") || url.contains("view") || url.contains("/srms/") || url.contains("doc.html")){ chain.doFilter(request, response); }else{ String log = ""; diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index ff802ee8..90be6a80 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -152,10 +152,6 @@ public class ShiroConfig { // 获取token filterChainDefinitionMap.put("/srms/getByToken", "anon"); - // 标准法规文档查询 - filterChainDefinitionMap.put("/srms/getByLawsFileList", "anon"); - // 设计导航-产品设计条款查询 - filterChainDefinitionMap.put("/srms/getByLawsProductDesign", "anon"); // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap<>(1); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index 3447bc96..8ce573c0 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -58,10 +58,10 @@ and l1.name = #{standard.partCategoryName} - + and s1.split_result = '成功' - + and s1.split_result is null @@ -101,20 +101,27 @@ diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 17013a1d..82f4b70e 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -7,9 +7,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.base.CaseFormat; +import com.google.common.base.Charsets; import com.jero.common.api.vo.Result; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.util.JwtUtil; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.MD5Util; import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.docking.srms.dto.ByTokenRequests; @@ -35,13 +39,16 @@ import com.jero.modules.tag.enums.TableNameEnum; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.regexp.RE; +import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -80,6 +87,19 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String appKey; @Value("${srms.secret}") private String secret; + @Value("${srms.font_url_pdf}") + private String fontUrlPdf; + @Value("${srms.back_url_pdf}") + private String backUrlPdf; + @Value("${srms.font_url_other}") + private String fontUrlOther; + @Value("${srms.back_url_other}") + private String backUrlOther; + @Value("${srms.other_md5_mark}") + private String otherMd5Mark; + + + private static final String SRMS_TOKEN = "srms_token_"; private static final String REQUESTS = "Requests"; @@ -154,7 +174,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { standardVO.setStandardState(standardState); // 是否存在拆分信息,默认false; true-是,false-否 setHasSplit(requests, standardVO); - List listByFileRows = getByFileRows(partCategoryNum, standardVO); + List listByFileRows = getByFileRows(partCategoryNum, standardVO,token); return Result.OK(listByFileRows); }catch (Exception e){ log.error("标准法规文档查询异常:",e); @@ -163,7 +183,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { } @Nullable - private List getByFileRows(String partCategoryNum, StandardVO standardVO) { + private List getByFileRows(String partCategoryNum, StandardVO standardVO,String token) { List listByFileRows = lawsStandardMapper.getStandard(standardVO); if(CollectionUtils.isEmpty(listByFileRows)) { return listByFileRows; @@ -190,7 +210,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { List listFile = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),byFileRows.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(listFile)){ listFile = listFile.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); - byFileRows.setStandardUrl(listFile.get(0).getUrl()); + byFileRows.setStandardUrl(getUrl(listFile.get(0),token)); } } LambdaQueryWrapper querySarFileSplitInfoEo = new LambdaQueryWrapper<>(); @@ -318,16 +338,15 @@ public class SrmsApiServiceImpl implements SrmsApiService { } try { List listStandardTreeAll = new ArrayList<>(); - // 企业标准 - List listEnterprise = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.ENTERPRISE_STANDARDS.getValue(), nodeName, "1"); - getStandardTree(listStandardTreeAll, listEnterprise); // 国内标准 List listDomestic = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.DOMESTIC_REGULATIONS.getValue(), nodeName, "1"); getStandardTree(listStandardTreeAll, listDomestic); // 海外标准 List listForeign = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.FOREIGN_REGULATIONS.getValue(), nodeName, "1"); getStandardTree(listStandardTreeAll, listForeign); - + // 企业标准 + List listEnterprise = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.ENTERPRISE_STANDARDS.getValue(), nodeName, "1"); + getStandardTree(listStandardTreeAll, listEnterprise); return Result.OK(listStandardTreeAll); }catch (Exception e){ log.error("获取所有体系数据异常:",e); @@ -382,6 +401,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ return Result.error(SYS_ERR); } + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); if(Objects.isNull(requests)){ return Result.error(ADD_NOT_NULL); @@ -414,12 +434,13 @@ public class SrmsApiServiceImpl implements SrmsApiService { } Page page = new Page<>(Long.parseLong(requests.get(pageNoKey).toString()), Long.parseLong(requests.get(pageSizeKey).toString())); - IPage pageList =lawsStandardMapper.getByLawsStandardPage(page,queryStandardPageVO); - getListStandardPageVO(pageList); + IPage pageList = lawsStandardMapper.getByLawsStandardPage(page,queryStandardPageVO); + getListStandardPageVO(pageList,token); return Result.OK(pageList); } private void setQuery(JSONObject requests, QueryWrapper queryStandardPageVO) { + queryStandardPageVO.eq("'1'","1"); String nodeCodeKey = "nodeCode"; if(requests.containsKey(nodeCodeKey) && !StringUtils.isEmpty(requests.get(nodeCodeKey).toString())){ String nodeCode = requests.get(nodeCodeKey).toString(); @@ -437,19 +458,20 @@ public class SrmsApiServiceImpl implements SrmsApiService { private void setOrder(QueryWrapper queryStandardPageVO, String[] column, String[] order) { for (int i = 0; i < column.length; i++) { + String c = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, column[i]); if(Objects.isNull(order)){ - queryStandardPageVO.orderByDesc(column[i]); + queryStandardPageVO.orderByDesc(c); }else{ if(Objects.equals(order[i],"asc") || Objects.equals(order[i],"ASC")){ - queryStandardPageVO.orderByAsc(column[i]); + queryStandardPageVO.orderByAsc(c); }else{ - queryStandardPageVO.orderByDesc(column[i]); + queryStandardPageVO.orderByDesc(c); } } } } - private void getListStandardPageVO(IPage pageList) { + private void getListStandardPageVO(IPage pageList,String token) { List listStandardPageVO = pageList.getRecords(); if(CollectionUtils.isEmpty(listStandardPageVO)){ return; @@ -463,6 +485,29 @@ public class SrmsApiServiceImpl implements SrmsApiService { List listOssFile = ossFileService.list(queryOssFile); List listStandardPageVOPartName = listStandardPageVO.stream().filter(o->!StringUtils.isBlank(o.getPartCategoryNum())).collect(Collectors.toList()); + List listPartName = getPartNames(listStandardPageVOPartName); + + for (StandardPageVO standardPageVO : listStandardPageVO) { + standardPageVO.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", standardPageVO.getStandardState())); + if(!CollectionUtils.isEmpty(listOssFile)){ + List listOssFileOne = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),standardPageVO.getId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listOssFileOne)){ + listOssFileOne = listOssFileOne.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); + standardPageVO.setStandardUrl(getUrl(listOssFileOne.get(0),token)); + } + } + // 零件号查询 + if(!CollectionUtils.isEmpty(listPartName) && !StringUtils.isBlank(standardPageVO.getPartCategoryNum())){ + List listPartNameNew = listPartName.stream().filter(o->Arrays.asList(standardPageVO.getPartCategoryNum().split(",")).contains(o.getCode())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listPartNameNew)){ + List listName = listPartNameNew.stream().map(PartName::getName).collect(Collectors.toList()); + standardPageVO.setPartCategoryName(String.join(",",listName)); + } + } + } + } + + private List getPartNames(List listStandardPageVOPartName) { List listPartName = new ArrayList<>(); if(!CollectionUtils.isEmpty(listStandardPageVOPartName)){ List listPartCategoryNum = listStandardPageVOPartName.stream().map(StandardPageVO::getPartCategoryNum).collect(Collectors.toList()); @@ -473,24 +518,29 @@ public class SrmsApiServiceImpl implements SrmsApiService { listPartName = partNameService.list(queryPartName); } } + return listPartName; + } - for (StandardPageVO standardPageVO : listStandardPageVO) { - standardPageVO.setStandardState_dictText(sysBaseAPI.translateDict("standard_state", standardPageVO.getStandardState())); - if(!CollectionUtils.isEmpty(listOssFile)){ - List listOssFileOne = listOssFile.stream().filter(o-> Objects.equals(o.getStandardId(),standardPageVO.getId())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listOssFileOne)){ - listOssFileOne = listOssFileOne.stream().sorted(Comparator.comparing(OSSFile::getCreateTime).reversed()).collect(Collectors.toList()); - standardPageVO.setStandardUrl(listOssFileOne.get(0).getUrl()); - } - } - // 零件号查询 - if(!CollectionUtils.isEmpty(listPartName)){ - List listPartNameNew = listPartName.stream().filter(o->Arrays.asList(standardPageVO.getPartCategoryNum().split(",")).contains(o.getCode())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listPartNameNew)){ - List listName = listPartNameNew.stream().map(PartName::getName).collect(Collectors.toList()); - standardPageVO.setPartCategoryName(String.join(",",listName)); - } + private String getUrl(OSSFile ossFile,String token){ + String url = ""; + try{ + if(ossFile.getFileName().toUpperCase().lastIndexOf(".PDF") > 0){ + // 拼接url pdf预览 + String back = backUrlPdf.replace("{id}",ossFile.getId()).replace("{token}",token); + url = fontUrlPdf.replace("{back_url_pdf}", URLEncoder.encode(back, StandardCharsets.UTF_8.name())); + }else{ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String mark = loginUser.getUsername() + loginUser.getRealname() + LocalDateTime.now(); + String markMd5 = MD5Util.MD5Encode(mark + otherMd5Mark,null); + String backOther = backUrlOther.replace("{id}",ossFile.getId()).replace("{token}",token) + .replace("{file_name}",ossFile.getFileName()); + url = fontUrlOther.replace("{back_url_other}",URLEncoder.encode(Base64.getEncoder().encodeToString(backOther.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8.name())) + .replace("{mark}",URLEncoder.encode(mark, StandardCharsets.UTF_8.name())) + .replace("{mark_md5}",markMd5); } + }catch (Exception e){ + log.error("拼接url异常",e); } + return url; } } diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 79c02353..1ee77ea9 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -483,3 +483,13 @@ srms: app_key: eeabe117f06a4d99a15582a143d3be54 # 系统对应秘钥 secret: 7ddbafa5b7ba4104bff5ffae9d775998 + # pdf预览 前端url http://ip:port 替换前端地址 + font_url_pdf: http://localhost:3334/pdfjs/web/viewer.html?file={back_url_pdf}&.pdf + # pdf预览 后端url + back_url_pdf: /laws-sinotruk/sys/common/view/{id}?type=view&at={token} + # 其他文件预览 替换kkfileviewurl + font_url_other: http://127.0.0.1:8012/onlinePreview?url={back_url_other}&watermarkTxt={mark}&watermarkSign={mark_md5} + # 其他文件预览 后端url 替换侯丹地址 + back_url_other: http://localhost:8184/${srms.back_url_pdf}&fullfilename={file_name} + # 其他文件水印标识 + other_md5_mark: cnhtc From 13e90fa9ff267f3c47aa58b4860e5aa6154221f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 25 Jan 2024 15:59:00 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20app=5Fkey=E3=80=81se?= =?UTF-8?q?cret=E5=8A=A8=E6=80=81=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/srms/entity/LawsSysApiInfo.java | 50 +++++++++++++++++++ .../srms/mapper/LawsSysApiInfoMapper.java | 16 ++++++ .../srms/mapper/xml/LawsSysApiInfoMapper.xml | 5 ++ .../srms/service/ILawsSysApiInfoService.java | 14 ++++++ .../impl/ILawsSysApiInfoServiceImpl.java | 18 +++++++ .../srms/service/impl/SrmsApiServiceImpl.java | 23 ++++----- .../src/main/resources/application-dev.yml | 4 -- 7 files changed, 113 insertions(+), 17 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsSysApiInfo.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsSysApiInfoMapper.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsSysApiInfoMapper.xml create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/ILawsSysApiInfoService.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/ILawsSysApiInfoServiceImpl.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsSysApiInfo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsSysApiInfo.java new file mode 100644 index 00000000..f50f2b80 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsSysApiInfo.java @@ -0,0 +1,50 @@ +package com.jero.modules.docking.srms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + + +/** + * @Description: 系统对接信息 + * @Author: jero-boot + * @Date: 2023-10-18 + * @Version: V1.0 + */ +@Data +@TableName("laws_sys_api_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="laws_sys_api_info对象", description="系统对接信息") +public class LawsSysApiInfo implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键ID*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键ID") + private String id; + /**系统中文名称*/ + @ApiModelProperty(value = "系统中文名称") + private String sysName; + /**系统唯一标识*/ + @ApiModelProperty(value = "系统唯一标识") + private String sysCode; + /**系统的key值*/ + @ApiModelProperty(value = "系统的key值") + private String appKey; + /**系统对应秘钥*/ + @ApiModelProperty(value = "系统对应秘钥") + private String secret; + /**限制IP*/ + @ApiModelProperty(value = "限制IP") + private String ip; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsSysApiInfoMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsSysApiInfoMapper.java new file mode 100644 index 00000000..3a4be91c --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsSysApiInfoMapper.java @@ -0,0 +1,16 @@ +package com.jero.modules.docking.srms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.docking.srms.entity.LawsSysApiInfo; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Description: + * @Author: jero-boot + * @Date: 2023-10-18 + * @Version: V1.0 + */ +@Mapper +public interface LawsSysApiInfoMapper extends BaseMapper { + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsSysApiInfoMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsSysApiInfoMapper.xml new file mode 100644 index 00000000..e813e363 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsSysApiInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/ILawsSysApiInfoService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/ILawsSysApiInfoService.java new file mode 100644 index 00000000..4579e4e5 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/ILawsSysApiInfoService.java @@ -0,0 +1,14 @@ +package com.jero.modules.docking.srms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.docking.srms.entity.LawsSysApiInfo; + +/** + * @Description: 系统对接信息 + * @Author: jero-boot + * @Date: 2023-10-18 + * @Version: V1.0 + */ +public interface ILawsSysApiInfoService extends IService { + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/ILawsSysApiInfoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/ILawsSysApiInfoServiceImpl.java new file mode 100644 index 00000000..84e15929 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/ILawsSysApiInfoServiceImpl.java @@ -0,0 +1,18 @@ +package com.jero.modules.docking.srms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.docking.srms.entity.LawsSysApiInfo; +import com.jero.modules.docking.srms.mapper.LawsSysApiInfoMapper; +import com.jero.modules.docking.srms.service.ILawsSysApiInfoService; +import org.springframework.stereotype.Service; + +/** + * @Description: + * @Author: jero-boot + * @Date: 2023-10-18 + * @Version: V1.0 + */ +@Service +public class ILawsSysApiInfoServiceImpl extends ServiceImpl implements ILawsSysApiInfoService { + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 82f4b70e..8f199309 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.CaseFormat; -import com.google.common.base.Charsets; import com.jero.common.api.vo.Result; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.util.JwtUtil; @@ -18,7 +17,9 @@ import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.docking.srms.dto.ByTokenRequests; import com.jero.modules.docking.srms.dto.ProductDesign; +import com.jero.modules.docking.srms.entity.LawsSysApiInfo; import com.jero.modules.docking.srms.mapper.LawsStandardMapper; +import com.jero.modules.docking.srms.service.ILawsSysApiInfoService; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.*; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; @@ -81,12 +82,9 @@ public class SrmsApiServiceImpl implements SrmsApiService { private ILawsTreeNodeService lawsTreeNodeService; @Resource private PartNameService partNameService; + @Resource + private ILawsSysApiInfoService lawsSysApiInfoService; - - @Value("${srms.app_key}") - private String appKey; - @Value("${srms.secret}") - private String secret; @Value("${srms.font_url_pdf}") private String fontUrlPdf; @Value("${srms.back_url_pdf}") @@ -98,9 +96,6 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Value("${srms.other_md5_mark}") private String otherMd5Mark; - - - private static final String SRMS_TOKEN = "srms_token_"; private static final String REQUESTS = "Requests"; private static final String SYS_ERR = "系统验证失败"; @@ -110,8 +105,6 @@ public class SrmsApiServiceImpl implements SrmsApiService { private static final String X_ACCESS_TOKEN = "X-Access-Token"; private static final String ADD_NOT_NULL = "必填项不能为空"; - - @Override public Result getByToken(JSONObject json) { try { @@ -122,11 +115,15 @@ public class SrmsApiServiceImpl implements SrmsApiService { || StringUtils.isBlank(byTokenRequests.getSecret())){ return Result.error(ADD_NOT_NULL); } - if(!Objects.equals(appKey,byTokenRequests.getAppkey()) || !Objects.equals(secret,byTokenRequests.getSecret())){ + LambdaQueryWrapper queryLawsSysApiInfo = new LambdaQueryWrapper<>(); + queryLawsSysApiInfo.eq(LawsSysApiInfo::getAppKey,byTokenRequests.getAppkey()); + queryLawsSysApiInfo.eq(LawsSysApiInfo::getSecret,byTokenRequests.getSecret()); + long l = lawsSysApiInfoService.count(queryLawsSysApiInfo); + if(l == 0){ return Result.error(SYS_ERR); } Result re = Result.OK(); - String tokenKey = SRMS_TOKEN + byTokenRequests.getUsername(); + String tokenKey = SRMS_TOKEN + byTokenRequests.getUsername() + byTokenRequests.getAppkey(); // 验证用户是否存在token,存在不再重复获取 if(redisUtil.hasKey(tokenKey)){ JSONObject js = new JSONObject(); diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 1ee77ea9..0fdcc2bb 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -479,10 +479,6 @@ watermark: # srms 接口对接 srms: - # 系统的key值 - app_key: eeabe117f06a4d99a15582a143d3be54 - # 系统对应秘钥 - secret: 7ddbafa5b7ba4104bff5ffae9d775998 # pdf预览 前端url http://ip:port 替换前端地址 font_url_pdf: http://localhost:3334/pdfjs/web/viewer.html?file={back_url_pdf}&.pdf # pdf预览 后端url From 5daef6739db136e80bd211e3ceead1fc8d058229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 25 Jan 2024 17:24:28 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/docking/srms/controller/SrmsApiController.java | 2 +- .../modules/docking/srms/mapper/xml/LawsStandardMapper.xml | 2 +- .../docking/srms/service/impl/SrmsApiServiceImpl.java | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index 91186f7b..7a74f7ae 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -99,7 +99,7 @@ public class SrmsApiController { } List list = re.getResult(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); - jsonResponses.put("Rows",JSON.toJSONString(list)); + jsonResponses.put("result",JSON.toJSONString(list)); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("获取所有体系数据异常:",e); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index 8ce573c0..0edf0d02 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -56,7 +56,7 @@ left join sar_file_split_info s1 on s1.standard_id = law.id and s1.file_type = 'publish_of_original' and s1.publish_before_id is null and s1.del_flag = 0 - and l1.name = #{standard.partCategoryName} + and l1.name like concat(concat('%',#{standard.partCategoryName}),'%') and s1.split_result = '成功' diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 8f199309..6d21fb9f 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -288,12 +288,13 @@ public class SrmsApiServiceImpl implements SrmsApiService { if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ return Result.error(SYS_ERR); } - JSONArray requests = JSON.parseArray(JSON.toJSONString(json.get(REQUESTS))); - if(CollectionUtils.isEmpty(requests)){ + JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); + JSONArray rows = JSON.parseArray(JSON.toJSONString(requests.get("Rows"))); + if(CollectionUtils.isEmpty(rows)){ return Result.error(ADD_NOT_NULL); } List listProductDesign = new ArrayList<>(); - for (Object request : requests) { + for (Object request : rows) { JSONObject js = JSON.parseObject(JSON.toJSONString(request)); // todo || !js.containsKey("queryLabels") if(!js.containsKey("ID") || !js.containsKey(STANDARD_NUMBER) ){ From ce698cb30d59be8dd7378aabed3fb21b969c2b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 25 Jan 2024 17:40:25 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srms/service/impl/SrmsApiServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 6d21fb9f..5401dc31 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -338,13 +338,13 @@ public class SrmsApiServiceImpl implements SrmsApiService { List listStandardTreeAll = new ArrayList<>(); // 国内标准 List listDomestic = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.DOMESTIC_REGULATIONS.getValue(), nodeName, "1"); - getStandardTree(listStandardTreeAll, listDomestic); + getStandardTree(listStandardTreeAll, listDomestic,nodeName); // 海外标准 List listForeign = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.FOREIGN_REGULATIONS.getValue(), nodeName, "1"); - getStandardTree(listStandardTreeAll, listForeign); + getStandardTree(listStandardTreeAll, listForeign,nodeName); // 企业标准 List listEnterprise = lawsTreeNodeService.queryTreeNodeList(TableNameEnum.ENTERPRISE_STANDARDS.getValue(), nodeName, "1"); - getStandardTree(listStandardTreeAll, listEnterprise); + getStandardTree(listStandardTreeAll, listEnterprise,nodeName); return Result.OK(listStandardTreeAll); }catch (Exception e){ log.error("获取所有体系数据异常:",e); @@ -352,7 +352,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { } } - private void getStandardTree(List listStandardTreeAll, List listEnterprise) { + private void getStandardTree(List listStandardTreeAll, List listEnterprise,String nodeName) { if (!CollectionUtils.isEmpty(listEnterprise)) { Optional op = listEnterprise.stream().filter(o -> StringUtils.isBlank(o.getParentId())).findFirst(); if (op.isPresent()) { @@ -366,7 +366,13 @@ public class SrmsApiServiceImpl implements SrmsApiService { standardTree.setChildren(sub); } } - listStandardTreeAll.add(standardTree); + if(!StringUtils.isBlank(nodeName)){ + if(!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren()) || lawsTreeNodeModel.getNodeName().contains(nodeName)){ + listStandardTreeAll.add(standardTree); + } + }else{ + listStandardTreeAll.add(standardTree); + } } } } From fba591ea386f0a1defac979a9649029d25e4e4d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 25 Jan 2024 17:51:53 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srms/controller/SrmsApiController.java | 4 +- .../docking/srms/service/SrmsApiService.java | 3 +- .../srms/service/impl/SrmsApiServiceImpl.java | 47 +++++++++++-------- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index 7a74f7ae..c84fc3ce 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -75,11 +75,11 @@ public class SrmsApiController { @PostMapping("/getByLawsProductDesign") public JSONObject getByLawsProductDesign(@RequestBody JSONObject json, HttpServletRequest req){ try { - Result> re = srmsApiService.getByLawsProductDesign(json,req); + Result> re = srmsApiService.getByLawsProductDesign(json,req); if(!re.isSuccess()){ return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); } - List list = re.getResult(); + List list = re.getResult(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); jsonResponses.put("Rows",list); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java index 791ec047..92c8a46a 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java @@ -3,7 +3,6 @@ package com.jero.modules.docking.srms.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; -import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; import com.jero.modules.docking.srms.vo.StandardTree; @@ -45,7 +44,7 @@ public interface SrmsApiService { * @param req * @return com.jero.common.api.vo.Result */ - Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req); + Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req); /** * 获取所有体系数据 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 5401dc31..08ad0cd4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -282,7 +282,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { } @Override - public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { + public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ @@ -311,11 +311,17 @@ public class SrmsApiServiceImpl implements SrmsApiService { listProductDesign.add(productDesign); } try { + List listObj = new ArrayList<>(); for (ProductDesign productDesign : listProductDesign) { String str = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); - productDesign.setItemContent(str); + JSONObject obj = new JSONObject(); + obj.put("ID",productDesign.getId()); + obj.put("queryLabels",productDesign.getQueryLabels()); + obj.put("itemContent",str); + obj.put(STANDARD_NUMBER,productDesign.getStandardNumber()); + listObj.add(obj); } - return Result.OK(listProductDesign); + return Result.OK(listObj); }catch (Exception e){ log.error("设计导航-产品设计条款查询异常:",e); return Result.error("操作失败" + e.getMessage()); @@ -353,26 +359,27 @@ public class SrmsApiServiceImpl implements SrmsApiService { } private void getStandardTree(List listStandardTreeAll, List listEnterprise,String nodeName) { - if (!CollectionUtils.isEmpty(listEnterprise)) { - Optional op = listEnterprise.stream().filter(o -> StringUtils.isBlank(o.getParentId())).findFirst(); - if (op.isPresent()) { - LawsTreeNodeModel lawsTreeNodeModel = op.get(); - StandardTree standardTree = new StandardTree(); - standardTree.setNodeCode(lawsTreeNodeModel.getNodeCode()); - standardTree.setNodeName(lawsTreeNodeModel.getNodeName()); - if (!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren())) { - List sub = getTree(lawsTreeNodeModel.getChildren()); - if (!CollectionUtils.isEmpty(sub)) { - standardTree.setChildren(sub); - } + if (CollectionUtils.isEmpty(listEnterprise)) { + return; + } + Optional op = listEnterprise.stream().filter(o -> StringUtils.isBlank(o.getParentId())).findFirst(); + if (op.isPresent()) { + LawsTreeNodeModel lawsTreeNodeModel = op.get(); + StandardTree standardTree = new StandardTree(); + standardTree.setNodeCode(lawsTreeNodeModel.getNodeCode()); + standardTree.setNodeName(lawsTreeNodeModel.getNodeName()); + if (!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren())) { + List sub = getTree(lawsTreeNodeModel.getChildren()); + if (!CollectionUtils.isEmpty(sub)) { + standardTree.setChildren(sub); } - if(!StringUtils.isBlank(nodeName)){ - if(!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren()) || lawsTreeNodeModel.getNodeName().contains(nodeName)){ - listStandardTreeAll.add(standardTree); - } - }else{ + } + if(!StringUtils.isBlank(nodeName)){ + if(!CollectionUtils.isEmpty(lawsTreeNodeModel.getChildren()) || lawsTreeNodeModel.getNodeName().contains(nodeName)){ listStandardTreeAll.add(standardTree); } + }else{ + listStandardTreeAll.add(standardTree); } } } From ffe778306daec3470a7936df62c5fc6f9fb936a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 29 Jan 2024 09:52:27 +0800 Subject: [PATCH 10/13] =?UTF-8?q?srms=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srms/controller/SrmsApiController.java | 40 ++++++++- .../srms/mapper/xml/LawsStandardMapper.xml | 20 ++--- .../docking/srms/service/SrmsApiService.java | 20 +++++ .../srms/service/impl/SrmsApiServiceImpl.java | 83 ++++++++++++++----- .../modules/docking/utils/ResponsesUtil.java | 28 ++++++- .../src/main/resources/application-dev.yml | 4 + 6 files changed, 160 insertions(+), 35 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index c84fc3ce..be580249 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; -import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; @@ -130,4 +129,43 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); } } + +// @ApiOperation("零部件分类树同步接口") + @PostMapping("/syncPartData") + public JSONObject syncPartData(@RequestBody JSONObject json, HttpServletRequest req){ + try { + Result re = srmsApiService.syncPartData(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage())); + } + JSONObject jsonResponses = ResponsesUtil.getJsonOkUpper(); + jsonResponses.put("Result",re.getResult()); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("零部件分类树同步接口异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败")); + } + } + + + +// @ApiOperation("E采通获取标准信息") + @PostMapping("/getEStandardInfo") + public JSONObject getEStandardInfo(@RequestBody JSONObject json, HttpServletRequest req){ + try { + // todo + Result> re = srmsApiService.getEStandardInfo(json,req); + if(!re.isSuccess()){ + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage())); + } + List page = re.getResult(); + JSONObject jsonPage = new JSONObject(); + JSONObject jsonResponses = ResponsesUtil.getJsonOkUpper(); + jsonResponses.put("Result",jsonPage); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); + }catch (Exception e){ + log.error("E采通获取标准信息异常:",e); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败")); + } + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index 0edf0d02..7a8f0e58 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -73,29 +73,29 @@ and standard_number = #{standardNumber} - - and standard_number = #{queryLabels} - union all select id from laws_overseas_standard where del_flag = 0 and standard_state = 6 and standard_number = #{standardNumber} - - and standard_number = #{queryLabels} - union all select id from laws_enterprise_standard where del_flag = 0 and standard_state = 6 and standard_number = #{standardNumber} - - and standard_number = #{queryLabels} - ) law left join sar_file_split_info s on s.standard_id = law.id and s.del_flag = 0 left join laws_document_split l on s.id = l.info_id and l.del_flag = 0 - where l.item_content is not null and l.item_content != '' limit 1 + where + l.item_content is not null + and l.item_content != '' + + and + + FIND_IN_SET(#{item},l.property_tag) + + + limit 1 select law.*, #{standard.partCategoryNum} as partCategoryNum, - l1.name as partCategoryName + (select name from laws_part_name where code = #{standard.partCategoryNum} limit 1) as partCategoryName from ( select id,standard_number,standard_name,standard_english_name,standard_state, DATE_FORMAT(release_date,'%Y-%m-%d') as release_date, - DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date + DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date, + part_name, + (select GROUP_CONCAT(name) from laws_part_name where + FIND_IN_SET(code,laws_domestic_standard.part_name) ) as p_name from laws_domestic_standard - where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 + where del_flag = 0 and standard_number like concat(concat('%',#{standard.standardNumber}),'%') @@ -21,12 +24,18 @@ and standard_state = #{standard.standardState} + + and FIND_IN_SET(#{standard.partCategoryNum},part_name) + union all select id,standard_number,standard_name,standard_english_name,standard_state, DATE_FORMAT(release_date,'%Y-%m-%d') as release_date, - DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date + DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date, + part_name, + (select GROUP_CONCAT(name) from laws_part_name where + FIND_IN_SET(code,laws_overseas_standard.part_name) ) as p_name from laws_overseas_standard - where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 + where del_flag = 0 and standard_number like concat(concat('%',#{standard.standardNumber}),'%') @@ -36,12 +45,18 @@ and standard_state = #{standard.standardState} + + and FIND_IN_SET(#{standard.partCategoryNum},part_name) + union all select id,standard_number,standard_name,standard_english_name,standard_state, DATE_FORMAT(release_date,'%Y-%m-%d') as release_date, - DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date + DATE_FORMAT(implementation_date,'%Y-%m-%d') as implementation_date, + part_name, + (select GROUP_CONCAT(name) from laws_part_name where + FIND_IN_SET(code,laws_enterprise_standard.part_name) ) as p_name from laws_enterprise_standard - where del_flag = 0 and instr(part_name,#{standard.partCategoryNum}) > 0 + where del_flag = 0 and standard_number like concat(concat('%',#{standard.standardNumber}),'%') @@ -51,12 +66,14 @@ and standard_state = #{standard.standardState} + + and FIND_IN_SET(#{standard.partCategoryNum},part_name) + ) law - left join laws_part_name l1 on l1.code = #{standard.partCategoryNum} and l1.del_flag = 0 left join sar_file_split_info s1 on s1.standard_id = law.id and s1.file_type = 'publish_of_original' and s1.publish_before_id is null and s1.del_flag = 0 - and l1.name like concat(concat('%',#{standard.partCategoryName}),'%') + and p_name like concat(concat('%',#{standard.partCategoryName}),'%') and s1.split_result = '成功' @@ -66,37 +83,7 @@ - + + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 3f3189e0..734bd1a8 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -100,7 +100,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String ettonSysUser; private static final String REQUESTS = "Requests"; - private static final String SYS_ERR = "系统验证失败"; + private static final String SYS_ERR = "访问受限,token授权过期"; private static final String STANDARD_NAME = "standardName"; private static final String STANDARD_NUMBER = "standardNumber"; private static final String PUBLISH_OF_ORIGINAL = "publish_of_original"; @@ -122,7 +122,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { queryLawsSysApiInfo.eq(LawsSysApiInfo::getSecret,byTokenRequests.getSecret()); LawsSysApiInfo lawsSysApiInfo = lawsSysApiInfoService.getOne(queryLawsSysApiInfo,false); if(Objects.isNull(lawsSysApiInfo)){ - return Result.error(SYS_ERR); + return Result.error(403,SYS_ERR); } Result re; // E彩通访问,使用默认账户 @@ -145,8 +145,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { public Result> getByLawsFileList(JSONObject json, HttpServletRequest req) { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); // 零部件-分类内部码(精准查询) @@ -284,9 +290,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); JSONArray rows = JSON.parseArray(JSON.toJSONString(requests.get("Rows"))); @@ -313,13 +324,16 @@ public class SrmsApiServiceImpl implements SrmsApiService { try { List listObj = new ArrayList<>(); for (ProductDesign productDesign : listProductDesign) { - String str = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); - JSONObject obj = new JSONObject(); - obj.put("ID",productDesign.getId()); - obj.put(queryLabels,productDesign.getQueryLabels()); - obj.put("itemContent",str); - obj.put(STANDARD_NUMBER,productDesign.getStandardNumber()); - listObj.add(obj); + List> list = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); + for (Map stringStringMap : list) { + JSONObject obj = new JSONObject(); + obj.put("ID",productDesign.getId()); + obj.put(queryLabels,productDesign.getQueryLabels()); + obj.put("itemContent",stringStringMap.get("item_content")); + obj.put(STANDARD_NUMBER,stringStringMap.get("standard_number")); + listObj.add(obj); + } + } return Result.OK(listObj); }catch (Exception e){ @@ -331,9 +345,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsSystem(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); String nodeName = ""; @@ -409,8 +428,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { public Result> getByLawsStandardPage(JSONObject json, HttpServletRequest req) { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); @@ -561,7 +586,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); JSONArray rows = JSON.parseArray(JSON.toJSONString(requests.get("Rows"))); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java index fb016bc4..94fcbccd 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java @@ -45,12 +45,12 @@ public class ResponsesUtil { } public static JSONObject getJsonErrUpper() { - return getJsonErrUpper(""); + return getJsonErrUpper("",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); } - public static JSONObject getJsonErrUpper(String message) { + public static JSONObject getJsonErrUpper(String message,Integer code) { JSONObject jsonResponses = new JSONObject(); - jsonResponses.put("SrmsCode",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); + jsonResponses.put("SrmsCode",code); jsonResponses.put("Message",message); jsonResponses.put("Success",false); jsonResponses.put("Timestamp",System.currentTimeMillis()); @@ -58,12 +58,12 @@ public class ResponsesUtil { } public static JSONObject getJsonErr() { - return getJsonErr(""); + return getJsonErr("",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); } - public static JSONObject getJsonErr(String message) { + public static JSONObject getJsonErr(String message,Integer code) { JSONObject jsonResponses = new JSONObject(); - jsonResponses.put("srmsCode",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); + jsonResponses.put("srmsCode",code); jsonResponses.put("message",message); jsonResponses.put("success",false); jsonResponses.put("timestamp",System.currentTimeMillis());