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] =?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; +}