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 72859f31..5885e07f 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 @@ -718,7 +718,7 @@ public class LoginServiceImpl implements ILoginService { if(!result.isSuccess()) { return result; } - if (checkSysPermission(sysUser.getUsername())) { + if (checkSysPermission(sysUser.getUsername()) && !userName.equals("etton")) { return Result.error("该用户无权限,请联系管理员"); } //用户登录信息 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 f1a30ce7..ad331527 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,6 +1,7 @@ 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; @@ -168,23 +169,28 @@ public class SrmsApiController { return srmsApiService.syncPartStandard(); } -// @ApiOperation("E采通获取标准信息") + @ApiOperation("E采通获取标准信息") @AutoLog(value = "E采通获取标准信息") @PostMapping("/getEStandardInfo") - public JSONObject getEStandardInfo(@RequestBody JSONObject json, HttpServletRequest req){ + public JSONObject getEStandardInfo(@RequestBody JSONObject json, HttpServletRequest req) { + JSONObject messageHandler = JSON.parseObject(JSON.toJSONString(json.get(MESSAGE_HEADER))); + String uuid = messageHandler.get("UUID").toString(); try { - // todo - Result> re = srmsApiService.getEStandardInfo(json,req); - if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage(),re.getCode())); - } - JSONObject jsonPage = new JSONObject(); + Result re = srmsApiService.getEStandardInfo(json, req); + JSONArray rows = re.getResult(); + JSONObject resultJson = new JSONObject(); + resultJson.put("MessageHeader", srmsApiService.getMessageHandler("CNHTC_PO1000402", uuid, "SCM")); 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("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); + if (!Objects.isNull(rows)) { + jsonResponses.put("Rows", rows); + } + resultJson.put("Responses", jsonResponses); + return resultJson; + } catch (Exception e) { + log.error("E采通获取标准信息异常:", e); + return ResponsesUtil.getJsonResult( + srmsApiService.getMessageHandler("interface_id", uuid, "SCM"), + ResponsesUtil.getJsonErrUpper("操作失败", CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -196,7 +202,7 @@ public class SrmsApiController { try { List rows = srmsApiService.getBindPartStandardInfo(json); JSONObject resultJson = new JSONObject(); - resultJson.put("MessageHeader", srmsApiService.getMessageHandler("CNHTC_PO1000496", uuid)); + resultJson.put("MessageHeader", srmsApiService.getMessageHandler("CNHTC_PO1000496", uuid, "PDM")); JSONObject jsonResponses = ResponsesUtil.getJsonOkUpper(); if (!Objects.isNull(rows)) { jsonResponses.put("Rows", rows); @@ -206,7 +212,7 @@ public class SrmsApiController { } catch (Exception e) { log.error("PDM获取零部件号绑定的法规数据信息异常:", e); return ResponsesUtil.getJsonResult( - srmsApiService.getMessageHandler("interface_id", uuid), + srmsApiService.getMessageHandler("interface_id", uuid, "PDM"), ResponsesUtil.getJsonErrUpper("操作失败", CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } 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 36081466..180eb3a0 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,12 +1,12 @@ package com.jero.modules.docking.srms.service; +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.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; import com.jero.modules.docking.srms.vo.StandardTree; -import com.jero.modules.docking.bindPart.entity.LawsBindPart; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -102,31 +102,14 @@ public interface SrmsApiService { * @param req * @return com.jero.common.api.vo.Result> */ - Result> getEStandardInfo(JSONObject json, HttpServletRequest req); + Result getEStandardInfo(JSONObject json, HttpServletRequest req); /** * 获取固定的MessageHandler * @param interfaceId * @return com.jero.common.api.vo.Result> */ - JSONObject getMessageHandler(String interfaceId, String uuid); - - /** - * PDM验证零部件号是否可修改 - * - * @return com.jero.common.api.vo.Result> - * @author CHH - * @date 2024/4/28 15:08 - */ - void validPartNoEdit(String partNo, String partName, String bindUserInfo); - - /** - * PDM校验某个零部件是否所属于某个零部件分类 - * @author CHH - * @date 2024/4/28 15:08 - * @return com.jero.common.api.vo.Result> - */ - boolean validPartBelong(String partNo, String partName, String partCategoryNum); + JSONObject getMessageHandler(String interfaceId, String uuid, String receiver); /** * 获取零部件号绑定的法规数据 @@ -136,5 +119,4 @@ public interface SrmsApiService { * @return com.jero.common.api.vo.Result> */ List getBindPartStandardInfo(JSONObject json); - } 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 8c225153..b8b80076 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 @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.CaseFormat; +import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; @@ -18,6 +19,7 @@ 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.bindPart.entity.BindPartStandardVO; import com.jero.modules.docking.srms.dto.ByTokenRequests; import com.jero.modules.docking.srms.dto.ProductDesign; import com.jero.modules.docking.srms.entity.LawsPartStandard; @@ -27,10 +29,11 @@ import com.jero.modules.docking.srms.service.ILawsPartStandardService; 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.docking.bindPart.entity.LawsBindPart; -import com.jero.modules.docking.bindPart.service.ILawsBindPartService; +import com.jero.modules.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.service.ILawsBindPartService; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper; +import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel; import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -44,13 +47,14 @@ 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.sys.utils.UserUtils; 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.shiro.SecurityUtils; -import org.jetbrains.annotations.NotNull; +import org.apache.shiro.authc.AuthenticationException; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; @@ -62,7 +66,6 @@ import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.net.URLEncoder; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -104,18 +107,18 @@ public class SrmsApiServiceImpl implements SrmsApiService { private ILawsPartStandardService lawsPartStandardService; @Resource private RestTemplate restTemplate; - @Resource private ILawsBindPartService lawsBindPartService; - @Resource private ILawsEnterpriseStandardService esService; - @Resource private ILawsDomesticStandardService gbService; - @Resource private ILawsOverseasStandardService fbService; + @Resource + private IDocumentSplitService documentSplitService; + @Resource + private CommonAPI commonAPI; @Value("${srms.font_url_pdf}") private String fontUrlPdf; @@ -133,24 +136,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String ettonSysUser; @Value("${srms.part_standard_url}") private String partStandardRewriteUrl; - @Value("${bindPart.pdm_Ip}") - private String pdmIp; - - @Value("${bindPart.edit_valid_url}") - private String editValidUrl; - - @Value("${bindPart.part_belong_url}") - private String partBelongUrl; - + private String poIp; @Value("${bindPart.auth_username}") private String authUsername; - @Value("${bindPart.auth_password}") private String authPassword; private static final String REQUESTS = "Requests"; - private static final String MESSAGE_HANDLER = "MessageHeader"; private static final String SYS_ERR = "访问受限,token授权过期"; private static final String STANDARD_NAME = "standardName"; @@ -723,7 +716,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { List list = listOfChunks.get(i); // 判断数据量是否大于指定大小 JSONObject all = new JSONObject(); - all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000400", null)); + all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000400", null, "PDM")); JSONObject requests = new JSONObject(); // 批次信息 requests.put("BatchId", batchId); @@ -749,9 +742,9 @@ public class SrmsApiServiceImpl implements SrmsApiService { HttpEntity entity = new HttpEntity<>(all.toString(), headers); // 打印完整的请求报文信息 log.info("零部件分类回写相关信息"); - log.info("IP: " + pdmIp + partStandardRewriteUrl); + log.info("IP: " + poIp + partStandardRewriteUrl); log.info("Headers: " + headers); - JSONObject reData = restTemplate.postForObject(pdmIp + partStandardRewriteUrl, entity, JSONObject.class); + JSONObject reData = restTemplate.postForObject(poIp + partStandardRewriteUrl, entity, JSONObject.class); try { Thread.sleep(3000); } catch (InterruptedException e) { @@ -763,7 +756,8 @@ public class SrmsApiServiceImpl implements SrmsApiService { } @Override - public Result> getEStandardInfo(JSONObject json, HttpServletRequest req) { + public Result getEStandardInfo(JSONObject json, HttpServletRequest req) { + String token = TokenUtils.getTokenByRequest(req); // 验证token try { // 验证Token有效性 @@ -779,27 +773,187 @@ public class SrmsApiServiceImpl implements SrmsApiService { if (CollectionUtils.isEmpty(rows)) { return Result.error(ADD_NOT_NULL); } + List partNumList = new ArrayList<>(); for (Object request : rows) { JSONObject js = JSON.parseObject(JSON.toJSONString(request)); if (js.containsKey("PartNum") && StringUtils.isBlank(js.getString("PartNum"))) { return Result.error(ADD_NOT_NULL); } + partNumList.add(js.getString("PartNum")); } + // 根据所有零部件分类码获取相关联的标准 + LambdaQueryWrapper partStandardQueryWrapper = new LambdaQueryWrapper<>(); + partStandardQueryWrapper.in(LawsPartStandard::getPartCategoryNum, partNumList); + List partStandardList = lawsPartStandardService.list(partStandardQueryWrapper); + Set standardIdSet = partStandardList.stream().map(LawsPartStandard::getStandardId).collect(Collectors.toSet()); + + // 获取所有可选的标准 + List allStandardInfoList = this.getAllStandardInfo(); + // 筛选出需要的标准数据后填充剩余字段 + allStandardInfoList = allStandardInfoList.stream() + .filter(e -> standardIdSet.contains(e.getId())) + .collect(Collectors.toList()); + // 填充字段 + this.fillColumn(allStandardInfoList, token); + // 转换为Map + Map allStandardInfoMap = allStandardInfoList.stream() + .filter(e -> standardIdSet.contains(e.getId())) + .collect(Collectors.toMap(BindPartStandardVO::getId, e -> e)); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { - List listObj = new ArrayList<>(); - for (Object request : rows) { - // todo + JSONArray resultRows = new JSONArray(); + Map parameter = new HashMap<>(); + parameter.put("pageNo", "1"); + parameter.put("pageSize", String.valueOf(Integer.MAX_VALUE)); + for (String standardId : standardIdSet) { + // 获取标准相关信息 + BindPartStandardVO standard = allStandardInfoMap.get(standardId); + // 判断是否有拆分信息 + String infoId = standard.getInfoId(); + boolean isSplit = StrUtil.isNotBlank(infoId); + // 根据info_id 获取所有拆分数据 后按照拆分数据条数填充rows + if (isSplit) { + parameter.put("info_id", infoId); + IPage> data = documentSplitService.queryDocumentSplitDetail(parameter, false); + List> records = data.getRecords(); + for (Map r : records) { + JSONObject row = new JSONObject(); + row.put("standardNumber", standard.getStandardNumber()); + row.put("standardName", standard.getStandardName()); + row.put("standardState_dictText", standard.getStandardState()); + row.put("standardUrl", standard.getStandardUrl()); + row.put("CreateTime", format.format(standard.getCreateTime())); + row.put("UpdateTime", format.format(standard.getUpdateTime())); + row.put("ReleaseDate", format.format(standard.getReleaseDate())); + row.put("ImplementationDate", format.format(standard.getImplementationDate())); + row.put("Remark1", ""); + row.put("Remark2", ""); + row.put("Remark3", ""); + JSONObject documentSplitDetail = new JSONObject(); + documentSplitDetail.put("id", r.get("id")); + documentSplitDetail.put("itemNum", r.get("item_num")); + documentSplitDetail.put("itemTitle", r.get("item_title")); + documentSplitDetail.put("itemContent", r.get("item_content")); + documentSplitDetail.put("Remark1", ""); + documentSplitDetail.put("Remark2", ""); + documentSplitDetail.put("Remark3", ""); + row.put("documentSplitDetail", documentSplitDetail); + resultRows.add(row); + } + } else { + // 只填充一条数据 + JSONObject row = new JSONObject(); + row.put("standardNumber", standard.getStandardNumber()); + row.put("standardName", standard.getStandardName()); + row.put("standardState_dictText", standard.getStandardState()); + row.put("standardUrl", standard.getStandardUrl()); + row.put("CreateTime", format.format(standard.getCreateTime())); + row.put("UpdateTime", format.format(standard.getUpdateTime())); + row.put("ReleaseDate", format.format(standard.getReleaseDate())); + row.put("ImplementationDate", format.format(standard.getImplementationDate())); + row.put("Remark1", ""); + row.put("Remark2", ""); + row.put("Remark3", ""); + resultRows.add(row); + } } - return Result.OK(listObj); + return Result.OK(resultRows); } catch (Exception e) { - log.error("设计导航-产品设计条款查询异常:", e); + log.error("E采通获取标准信息失败:", e); return Result.error("操作失败" + e.getMessage()); } } + private void fillColumn(List allStandardInfoList, String token) { + if (CollectionUtils.isEmpty(allStandardInfoList)) { + return; + } + // 获取所有标准id 找到各自的ossFile文件 + List standardIdList = allStandardInfoList.stream().map(BindPartStandardVO::getId).collect(Collectors.toList()); + LambdaQueryWrapper ossFileLambdaQueryWrapper = new LambdaQueryWrapper<>(); + ossFileLambdaQueryWrapper.in(OSSFile::getStandardId, standardIdList); + ossFileLambdaQueryWrapper.in(OSSFile::getStandardFileType, PUBLISH_OF_ORIGINAL); + List ossFileList = ossFileService.list(ossFileLambdaQueryWrapper); + Map> ossFileMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(ossFileList)) { + ossFileMap = ossFileList.stream().collect(Collectors.groupingBy(OSSFile::getStandardId)); + } + for (BindPartStandardVO standard : allStandardInfoList) { + String code = standard.getStandardType() + .equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue()) ? "es_status" : "standard_state"; + // 填充预览地址 + standard.setStandardUrl(this.getStandardUrl(standard, ossFileMap, token)); + // 填充标准状态 + standard.setStandardState(commonAPI.translateDict(code, standard.getStandardState())); + } + } + + /** + * 根据标准相关信息获取默认预览链接 + * @param standard 标准信息 + * @param ossFileMap 相关文件 + * @param token token + * @return + */ + private String getStandardUrl(BindPartStandardVO standard, Map> ossFileMap, String token) { + String type = standard.getStandardType(); + OSSFile finalOssFile = null; + List ossFileList = ossFileMap.get(standard.getId()); + if (CollectionUtils.isEmpty(ossFileList)) { + return null; + } + // 如果是国标外标 则找最新的pdf进行预览 + if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(type) || + TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(type)) { + ossFileList = ossFileList.stream() + .filter(o -> o.getUrl().endsWith(".pdf")) + .sorted(Comparator.comparing(OSSFile::getId).reversed()) + .collect(Collectors.toList()); + finalOssFile = ossFileList.get(0); + return this.getUrl(finalOssFile, token); + } else if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(type)) { + // 如果是企标则找docx和pdf中最新的 + ossFileList = ossFileList.stream() + .filter(o -> o.getUrl().endsWith(".pdf") || o.getUrl().endsWith(".docx")) + .sorted(Comparator.comparing(OSSFile::getId).reversed()) + .collect(Collectors.toList()); + finalOssFile = ossFileList.get(0); + // 如果是docx则需要查找是否有绑定的pdf + if (finalOssFile.getUrl().endsWith(".docx")) { + LambdaQueryWrapper bindWrapper = new LambdaQueryWrapper<>(); + bindWrapper.eq(OSSFile::getBindId, finalOssFile.getId()); + List list = ossFileService.list(bindWrapper); + if (CollectionUtils.isNotEmpty(list)) { + finalOssFile = list.get(0); + } + } + return this.getUrl(finalOssFile, token); + } + return ""; + } + + private List getAllStandardInfo() { + List result = new ArrayList<>(); + BindPartStandardVO vo = new BindPartStandardVO(); + // 国标 + vo.setStandardType(TableNameEnum.DOMESTIC_REGULATIONS.getValue()); + List gbRecords = lawsBindPartService.selectStandard(vo, 1, Integer.MAX_VALUE).getRecords(); + result.addAll(gbRecords); + // 外标 + vo.setStandardType(TableNameEnum.FOREIGN_REGULATIONS.getValue()); + List fbRecords = lawsBindPartService.selectStandard(vo, 1, Integer.MAX_VALUE).getRecords(); + result.addAll(fbRecords); + // 企标 + vo.setStandardType(TableNameEnum.ENTERPRISE_STANDARDS.getValue()); + List esRecords = lawsBindPartService.selectStandard(vo, 1, Integer.MAX_VALUE).getRecords(); + result.addAll(esRecords); + return result; + } + @Override - public JSONObject getMessageHandler(String interfaceId, String uuid) { + public JSONObject getMessageHandler(String interfaceId, String uuid, String receiver) { if (StrUtil.isBlank(uuid)) { uuid = UUID.randomUUID().toString(); } @@ -809,7 +963,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { messageHeader.put("UUID", uuid); messageHeader.put("MessageId", ""); messageHeader.put("Sender", "SRMS"); - messageHeader.put("Receiver", "PDM"); + messageHeader.put("Receiver", receiver); messageHeader.put("SendDate", date.substring(0, 8)); messageHeader.put("SendTime", date.substring(8)); return messageHeader; @@ -827,107 +981,6 @@ public class SrmsApiServiceImpl implements SrmsApiService { return headers; } - @Override - public void validPartNoEdit(@NotNull String partNo, String partName, @NotNull String bindUserInfo) { - JSONObject all = new JSONObject(); - all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000495", null)); - JSONObject requests = new JSONObject(); - requests.put("PartNum", partNo); - requests.put("PartName", partName); - requests.put("BindUserInfo", bindUserInfo); - requests.put("Remark1", ""); - requests.put("Remark2", ""); - requests.put("Remark3", ""); - all.put(REQUESTS, requests); - - // 创建 HttpEntity 包含请求体和头信息 - HttpHeaders headers = this.getBasicAuthHeaders(); - HttpEntity entity = new HttpEntity<>(all.toString(), headers); - // 打印完整的请求报文信息 - log.info("发送验证零部件是否可修改请求"); - log.info("IP: " + pdmIp + editValidUrl); - log.info("Headers: " + headers.toString()); - log.info("Request body: " + all.toString()); - - JSONObject reData = restTemplate.postForObject(pdmIp + editValidUrl, entity, JSONObject.class); - log.info("接收验证零部件是否可修改请求返回"); - log.info("返回报文: " + JSON.toJSONString(reData)); - JSONObject response = null; - if (!Objects.isNull(reData) && reData.containsKey("Responses")) { - response = reData.getJSONObject("Responses"); - } - if (!Objects.isNull(response) && response.containsKey("Success")) { - String success = response.getString("Success"); - String message = ""; - if (response.containsKey("Message")) { - message = response.getString("Message"); - } - if ("true".equals(success)) { - log.info("验证零部件号是否可修改接口成功"); - return; - } - if ("false".equals(success)) { - log.error("验证零部件号是否可修改接口失败"); - log.error("验证零部件号是否可修改接口失败原因: " + message); - throw new JeroBootException(message); - } - } - throw new JeroBootException("零部件号" + partNo + "不可新增"); - } - - @Override - public boolean validPartBelong(String partNo, String partName, String partCategoryNum) { - try { - JSONObject all = new JSONObject(); - all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000497", null)); - JSONObject requests = new JSONObject(); - requests.put("PartNum", partNo); - requests.put("PartName", partName); - requests.put("PartCategoryNum", partCategoryNum); - requests.put("PartCategoryName", ""); - requests.put("Remark1", ""); - requests.put("Remark2", ""); - requests.put("Remark3", ""); - all.put(REQUESTS, requests); - - // 创建 HttpEntity 包含请求体和头信息 - HttpHeaders headers = this.getBasicAuthHeaders(); - HttpEntity entity = new HttpEntity<>(all.toString(), headers); - // 打印完整的请求报文信息 - log.info("发送校验某个零部件是否属于某个零部件分类请求"); - log.info("IP: " + pdmIp + editValidUrl); - log.info("Headers: " + headers.toString()); - log.info("Request body: " + all.toString()); - - JSONObject reData = restTemplate.postForObject(pdmIp + partBelongUrl, entity, JSONObject.class); - log.info("接收校验某个零部件是否属于某个零部件分类返回"); - log.info("返回报文: " + JSON.toJSONString(reData)); - JSONObject response = null; - if (!Objects.isNull(reData) && reData.containsKey("Responses")) { - response = reData.getJSONObject("Responses"); - } - if (!Objects.isNull(response) && response.containsKey("Success")) { - String success = response.getString("Success"); - String message = ""; - if (response.containsKey("Message")) { - message = response.getString("Message"); - } - if ("true".equals(success)) { - log.info("校验某个零部件是否所属于某个零部件分类接口成功"); - return true; - } - if ("false".equals(success)) { - log.error("校验某个零部件是否所属于某个零部件分类接口失败"); - log.error("失败原因: " + message); - return false; - } - } - } catch (Exception e) { - log.error("校验某个零部件是否所属于某个零部件分类异常", e); - } - return false; - } - @Override public List getBindPartStandardInfo(JSONObject json) { JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java index fb689079..15aa267f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java @@ -12,11 +12,13 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicatio import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.bindPart.docking.DockingService; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.tag.enums.TableNameEnum; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.ExecutionListener; @@ -25,6 +27,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; +import static com.jero.modules.bindPart.docking.DockingServiceImpl.STANDARD_ABOLISH; + /** * @author: Mzaxd * @Date: 2023/10/10 14:14 @@ -39,6 +43,9 @@ public class ProcessESAbolishEndListener implements ExecutionListener { @Resource private ProcessEsAbolishService esAbolishService; + @Resource + private DockingService dockingService; + /** * 企标废止流程结束之后需要把标准状态设为废止 * @param delegateExecution @@ -52,10 +59,18 @@ public class ProcessESAbolishEndListener implements ExecutionListener { abolishLambdaQueryWrapper.eq(ProcessEsAbolish::getProcessInstanceId, processInstanceId); ProcessEsAbolish abolish = esAbolishService.getOne(abolishLambdaQueryWrapper); String standNo = abolish.getStandardNumber(); + LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); + esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo); + LawsEnterpriseStandard one = esService.getOne(esWrapper); log.info("企标废止流程监听执行器开始执行,企标编号为:{}", standNo); esService.update(new LambdaUpdateWrapper() .set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue()) .eq(LawsEnterpriseStandard::getStandardNumber, standNo)); + try { + dockingService.sendStandardChangeToSCM(one.getId(), TableNameEnum.ENTERPRISE_STANDARDS.getValue(), STANDARD_ABOLISH, null); + } catch (Exception e) { + log.error("E采通同步标准信息出错", e); + } log.info("企标废止流程结束监听执行器执行结束"); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java b/laws-modules/src/main/java/com/jero/modules/bindPart/controller/LawsBindPartController.java similarity index 96% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/controller/LawsBindPartController.java index 649acfe0..c834d5d7 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/controller/LawsBindPartController.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.bindPart.controller; +package com.jero.modules.bindPart.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; @@ -6,9 +6,9 @@ import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.exception.JeroBootException; import com.jero.common.util.MessageUtils; -import com.jero.modules.docking.bindPart.entity.BindPartStandardVO; -import com.jero.modules.docking.bindPart.entity.LawsBindPart; -import com.jero.modules.docking.bindPart.service.ILawsBindPartService; +import com.jero.modules.bindPart.entity.BindPartStandardVO; +import com.jero.modules.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.service.ILawsBindPartService; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.page.SarFileSplitMenuEOPage; diff --git a/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingService.java b/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingService.java new file mode 100644 index 00000000..588d7b4e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingService.java @@ -0,0 +1,30 @@ +package com.jero.modules.bindPart.docking; + +public interface DockingService { + + /** + * PDM验证零部件号是否可修改 + * + * @return com.jero.common.api.vo.Result> + * @author CHH + * @date 2024/4/28 15:08 + */ + void validPartNoEdit(String partNo, String partName, String bindUserInfo); + + /** + * PDM校验某个零部件是否所属于某个零部件分类 + * @author CHH + * @date 2024/4/28 15:08 + * @return com.jero.common.api.vo.Result> + */ + boolean validPartBelong(String partNo, String partName, String partCategoryNum); + + /** + * E采通接收消息接口 + * @author CHH + * @date 2024/5/20 15:08 + * @return com.jero.common.api.vo.Result> + */ + void sendStandardChangeToSCM(String standardId, String standardType, String operateType, String bindPartId); + +} diff --git a/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingServiceImpl.java new file mode 100644 index 00000000..de301592 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/docking/DockingServiceImpl.java @@ -0,0 +1,280 @@ +package com.jero.modules.bindPart.docking; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.service.ILawsBindPartService; +import com.jero.modules.laws.standard.entity.LawsDomesticStandard; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.entity.LawsOverseasStandard; +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.tag.enums.TableNameEnum; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.*; + +@Slf4j +@Service +public class DockingServiceImpl implements DockingService{ + + @Resource + private RestTemplate restTemplate; + @Resource + private ILawsBindPartService lawsBindPartService; + @Resource + private ILawsEnterpriseStandardService esService; + @Resource + private ILawsDomesticStandardService gbService; + @Resource + private ILawsOverseasStandardService fbService; + + @Value("${bindPart.pdm_Ip}") + private String poIp; + @Value("${bindPart.edit_valid_url}") + private String editValidUrl; + @Value("${bindPart.part_belong_url}") + private String partBelongUrl; + @Value("${srms.etton_message_url}") + private String etton_message_url; + @Value("${bindPart.auth_username}") + private String authUsername; + @Value("${bindPart.auth_password}") + private String authPassword; + + private static final String REQUESTS = "Requests"; + private static final String MESSAGE_HANDLER = "MessageHeader"; + private static final String STANDARD_NUMBER = "standardNumber"; + private static final String STANDARD_NAME = "standardName"; + public static final String BIND_RELATION_CHANGE = "1"; + public static final String STANDARD_EDIT = "2"; + public static final String STANDARD_ABOLISH = "3"; + + @Override + public void validPartNoEdit(@NotNull String partNo, String partName, @NotNull String bindUserInfo) { + JSONObject all = new JSONObject(); + all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000495", null, "PDM")); + JSONObject requests = new JSONObject(); + requests.put("PartNum", partNo); + requests.put("PartName", partName); + requests.put("BindUserInfo", bindUserInfo); + requests.put("Remark1", ""); + requests.put("Remark2", ""); + requests.put("Remark3", ""); + all.put(REQUESTS, requests); + + // 创建 HttpEntity 包含请求体和头信息 + HttpHeaders headers = this.getBasicAuthHeaders(); + HttpEntity entity = new HttpEntity<>(all.toString(), headers); + // 打印完整的请求报文信息 + log.info("发送验证零部件是否可修改请求"); + log.info("IP: " + poIp + editValidUrl); + log.info("Headers: " + headers); + log.info("Request body: " + all); + + JSONObject reData = restTemplate.postForObject(poIp + editValidUrl, entity, JSONObject.class); + log.info("接收验证零部件是否可修改请求返回"); + log.info("返回报文: " + JSON.toJSONString(reData)); + JSONObject response = null; + if (!Objects.isNull(reData) && reData.containsKey("Responses")) { + response = reData.getJSONObject("Responses"); + } + if (!Objects.isNull(response) && response.containsKey("Success")) { + String success = response.getString("Success"); + String message = ""; + if (response.containsKey("Message")) { + message = response.getString("Message"); + } + if ("true".equals(success)) { + log.info("验证零部件号是否可修改接口成功"); + return; + } + if ("false".equals(success)) { + log.error("验证零部件号是否可修改接口失败"); + log.error("验证零部件号是否可修改接口失败原因: " + message); + throw new JeroBootException(message); + } + } + throw new JeroBootException("零部件号" + partNo + "不可新增"); + } + + @Override + public boolean validPartBelong(String partNo, String partName, String partCategoryNum) { + try { + JSONObject all = new JSONObject(); + all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000497", null, "PDM")); + JSONObject requests = new JSONObject(); + requests.put("PartNum", partNo); + requests.put("PartName", partName); + requests.put("PartCategoryNum", partCategoryNum); + requests.put("PartCategoryName", ""); + requests.put("Remark1", ""); + requests.put("Remark2", ""); + requests.put("Remark3", ""); + all.put(REQUESTS, requests); + + // 创建 HttpEntity 包含请求体和头信息 + HttpHeaders headers = this.getBasicAuthHeaders(); + HttpEntity entity = new HttpEntity<>(all.toString(), headers); + // 打印完整的请求报文信息 + log.info("发送校验某个零部件是否属于某个零部件分类请求"); + log.info("IP: " + poIp + editValidUrl); + log.info("Headers: " + headers); + log.info("Request body: " + all); + + JSONObject reData = restTemplate.postForObject(poIp + partBelongUrl, entity, JSONObject.class); + log.info("接收校验某个零部件是否属于某个零部件分类返回"); + log.info("返回报文: " + JSON.toJSONString(reData)); + JSONObject response = null; + if (!Objects.isNull(reData) && reData.containsKey("Responses")) { + response = reData.getJSONObject("Responses"); + } + if (!Objects.isNull(response) && response.containsKey("Success")) { + String success = response.getString("Success"); + String message = ""; + if (response.containsKey("Message")) { + message = response.getString("Message"); + } + if ("true".equals(success)) { + log.info("校验某个零部件是否所属于某个零部件分类接口成功"); + return true; + } + if ("false".equals(success)) { + log.error("校验某个零部件是否所属于某个零部件分类接口失败"); + log.error("失败原因: " + message); + return false; + } + } + } catch (Exception e) { + log.error("校验某个零部件是否所属于某个零部件分类异常", e); + } + return false; + } + + @Override + public void sendStandardChangeToSCM(String standardId, String standardType, String operateType, String bindPartId) { + LawsBindPart lawsBindPart = null; + if (BIND_RELATION_CHANGE.equals(operateType)) { + lawsBindPart = lawsBindPartService.getById(bindPartId); + standardId = lawsBindPart.getStandardId(); + } else if (STANDARD_EDIT.equals(operateType) || STANDARD_ABOLISH.equals(operateType)) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(LawsBindPart::getStandardId, standardId); + List list = lawsBindPartService.list(lambdaQueryWrapper); + if (CollectionUtils.isEmpty(list)) { + log.info("没有标准Id为{}的零部件绑定关系,不向E采通发送消息", standardId); + return; + } + lawsBindPart = list.get(0); + } else { + throw new JeroBootException("E采通接收消息接口失败,参数不正确,未发送"); + } + // 根据操作类型和标准id 填充标准编号和标准名称字段 + if (standardType == null || TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(standardType)) { + LawsDomesticStandard gb = gbService.getById(standardId); + if (gb != null) { + standardType = TableNameEnum.DOMESTIC_REGULATIONS.getValue(); + lawsBindPart.setStandardNo(gb.getStandardNumber()); + lawsBindPart.setStandardName(gb.getStandardName()); + } + } + if (standardType == null || TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(standardType)) { + LawsOverseasStandard fb = fbService.getById(standardId); + if (fb != null) { + standardType = TableNameEnum.FOREIGN_REGULATIONS.getValue(); + lawsBindPart.setStandardNo(fb.getStandardNumber()); + lawsBindPart.setStandardName(fb.getStandardName()); + } + } + if (standardType == null || TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(standardType)) { + LawsEnterpriseStandard es = esService.getById(standardId); + if (es != null) { + standardType = TableNameEnum.ENTERPRISE_STANDARDS.getValue(); + lawsBindPart.setStandardNo(es.getStandardNumber()); + lawsBindPart.setStandardName(es.getStandardName()); + } + } + try { + JSONObject all = new JSONObject(); + all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000401", null, "SCM")); + JSONObject requests = new JSONObject(); + requests.put("partNum", lawsBindPart.getPartNo()); + requests.put("partName", lawsBindPart.getPartName()); + requests.put(STANDARD_NUMBER, lawsBindPart.getStandardNo()); + requests.put(STANDARD_NAME, lawsBindPart.getStandardName()); + requests.put("type", Integer.valueOf(operateType)); + all.put(REQUESTS, requests); + + // 创建 HttpEntity 包含请求体和头信息 + HttpHeaders headers = this.getBasicAuthHeaders(); + HttpEntity entity = new HttpEntity<>(all.toString(), headers); + // 打印完整的请求报文信息 + log.info("发送E采通接收消息请求"); + log.info("IP: " + poIp + etton_message_url); + log.info("Headers: " + headers); + log.info("Request body: " + all); + + JSONObject reData = restTemplate.postForObject(poIp + etton_message_url, entity, JSONObject.class); + log.info("接收E采通接收消息接口返回"); + log.info("返回报文: " + JSON.toJSONString(reData)); + JSONObject response = null; + if (!Objects.isNull(reData) && reData.containsKey("Responses")) { + response = reData.getJSONObject("Responses"); + } + if (!Objects.isNull(response) && response.containsKey("success")) { + String success = response.getString("success"); + if ("true".equals(success)) { + log.info("E采通接收消息接口成功"); + } + if ("false".equals(success)) { + log.error("E采通接收消息接口失败"); + } + } + } catch (Exception e) { + log.error("E采通接收消息接口异常", e); + } + } + + // 创建 HttpHeaders 并设置 Basic Auth + private HttpHeaders getBasicAuthHeaders() { + // 创建 HttpHeaders 并设置 Basic Auth + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + String auth = authUsername + ":" + authPassword; // 用户名:密码 + byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.US_ASCII)); + String authHeader = "Basic " + new String(encodedAuth); + headers.set("Authorization", authHeader); + return headers; + } + + public JSONObject getMessageHandler(String interfaceId, String uuid, String receiver) { + if (StrUtil.isBlank(uuid)) { + uuid = UUID.randomUUID().toString(); + } + JSONObject messageHeader = new JSONObject(); + String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + messageHeader.put("Interface_ID", interfaceId); + messageHeader.put("UUID", uuid); + messageHeader.put("MessageId", ""); + messageHeader.put("Sender", "SRMS"); + messageHeader.put("Receiver", receiver); + messageHeader.put("SendDate", date.substring(0, 8)); + messageHeader.put("SendTime", date.substring(8)); + return messageHeader; + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/BindPartStandardVO.java b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/BindPartStandardVO.java similarity index 65% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/BindPartStandardVO.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/entity/BindPartStandardVO.java index 51c5fd16..d4965bb3 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/BindPartStandardVO.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/BindPartStandardVO.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.bindPart.entity; +package com.jero.modules.bindPart.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; @@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -51,19 +53,39 @@ public class BindPartStandardVO implements Serializable { */ @ApiModelProperty(value = "发布日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") private Date releaseDate; + /**实施日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "实施日期") + private java.util.Date implementationDate; + /**创建时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /**更新时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; /** * 标准类型(1:国内,2:海外,3:企业) */ @ApiModelProperty(value = "标准类型(1:国内,2:海外,3:企业)") @Dict(dicCode = "standard_source") private String standardType; - /** * 拆分条款记录Id(选择条款用) */ @ApiModelProperty(value = "拆分条款记录Id(选择条款用)") private String infoId; + /** + * 预览地址 + */ + @ApiModelProperty(value = "预览地址") + private String standardUrl; @TableField(exist = false) private static final long serialVersionUID = 1L; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPart.java b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPart.java similarity index 98% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPart.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPart.java index 1038c7c0..f24f7eea 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPart.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPart.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.bindPart.entity; +package com.jero.modules.bindPart.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPartDoc.java b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPartDoc.java similarity index 96% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPartDoc.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPartDoc.java index 9b020dd1..b19b5bd4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/entity/LawsBindPartDoc.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/LawsBindPartDoc.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.bindPart.entity; +package com.jero.modules.bindPart.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/laws-modules/src/main/java/com/jero/modules/bindPart/entity/SAMStandardInfo.java b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/SAMStandardInfo.java new file mode 100644 index 00000000..ec82845a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/entity/SAMStandardInfo.java @@ -0,0 +1,45 @@ +package com.jero.modules.bindPart.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SAMStandardInfo implements Serializable { + + /** + * id + */ + @ApiModelProperty(value = "id") + private String id; + /** + * 标准号 + */ + @ApiModelProperty(value = "标准号") + private String standardNumber; + /** + * 标准名称 + */ + @ApiModelProperty(value = "标准名称") + private String standardName; + /** + * 标准状态 + */ + @ApiModelProperty(value = "标准状态") + private String standardState; + /** + * 预览链接 + */ + @ApiModelProperty(value = "预览链接") + private String standardUrl; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartDocMapper.java b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartDocMapper.java similarity index 74% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartDocMapper.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartDocMapper.java index deadc844..5f93be30 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartDocMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartDocMapper.java @@ -1,6 +1,6 @@ -package com.jero.modules.docking.bindPart.mapper; +package com.jero.modules.bindPart.mapper; -import com.jero.modules.docking.bindPart.entity.LawsBindPartDoc; +import com.jero.modules.bindPart.entity.LawsBindPartDoc; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartMapper.java b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartMapper.java similarity index 82% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartMapper.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartMapper.java index acd1b3fe..3113609f 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/LawsBindPartMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/LawsBindPartMapper.java @@ -1,7 +1,7 @@ -package com.jero.modules.docking.bindPart.mapper; +package com.jero.modules.bindPart.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.jero.modules.docking.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.entity.LawsBindPart; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartDocMapper.xml b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartDocMapper.xml similarity index 83% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartDocMapper.xml rename to laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartDocMapper.xml index 75787075..70874465 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartDocMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartDocMapper.xml @@ -2,9 +2,9 @@ - + - + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartMapper.xml b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartMapper.xml similarity index 93% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartMapper.xml rename to laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartMapper.xml index bba0e8ae..fae77d09 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/mapper/xml/LawsBindPartMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/mapper/xml/LawsBindPartMapper.xml @@ -1,8 +1,8 @@ - + - + @@ -25,7 +25,7 @@ bind_user,bind_time - SELECT bp.id, bp.part_no, diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartDocService.java b/laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartDocService.java similarity index 70% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartDocService.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartDocService.java index d4d3aacf..df6bfd9d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartDocService.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartDocService.java @@ -1,6 +1,6 @@ -package com.jero.modules.docking.bindPart.service; +package com.jero.modules.bindPart.service; -import com.jero.modules.docking.bindPart.entity.LawsBindPartDoc; +import com.jero.modules.bindPart.entity.LawsBindPartDoc; import com.baomidou.mybatisplus.extension.service.IService; /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java b/laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartService.java similarity index 90% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartService.java index 5a10c9ab..6db263d4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/service/ILawsBindPartService.java @@ -1,8 +1,8 @@ -package com.jero.modules.docking.bindPart.service; +package com.jero.modules.bindPart.service; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.jero.modules.docking.bindPart.entity.BindPartStandardVO; -import com.jero.modules.docking.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.entity.BindPartStandardVO; +import com.jero.modules.bindPart.entity.LawsBindPart; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartDocServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartDocServiceImpl.java similarity index 60% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartDocServiceImpl.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartDocServiceImpl.java index 2ec5b2f1..35947997 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartDocServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartDocServiceImpl.java @@ -1,9 +1,9 @@ -package com.jero.modules.docking.bindPart.service.impl; +package com.jero.modules.bindPart.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.jero.modules.docking.bindPart.entity.LawsBindPartDoc; -import com.jero.modules.docking.bindPart.mapper.LawsBindPartDocMapper; -import com.jero.modules.docking.bindPart.service.ILawsBindPartDocService; +import com.jero.modules.bindPart.mapper.LawsBindPartDocMapper; +import com.jero.modules.bindPart.entity.LawsBindPartDoc; +import com.jero.modules.bindPart.service.ILawsBindPartDocService; import org.springframework.stereotype.Service; /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartServiceImpl.java similarity index 90% rename from laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java rename to laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartServiceImpl.java index c645abbf..e93424a8 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/bindPart/service/impl/LawsBindPartServiceImpl.java @@ -1,4 +1,4 @@ -package com.jero.modules.docking.bindPart.service.impl; +package com.jero.modules.bindPart.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; @@ -11,18 +11,17 @@ import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.process.common.enums.StandardStateEnum; -import com.jero.modules.docking.bindPart.entity.BindPartStandardVO; -import com.jero.modules.docking.bindPart.entity.LawsBindPart; -import com.jero.modules.docking.bindPart.entity.LawsBindPartDoc; -import com.jero.modules.docking.bindPart.mapper.LawsBindPartMapper; -import com.jero.modules.docking.bindPart.service.ILawsBindPartDocService; -import com.jero.modules.docking.bindPart.service.ILawsBindPartService; -import com.jero.modules.docking.srms.service.SrmsApiService; +import com.jero.modules.bindPart.docking.DockingService; +import com.jero.modules.bindPart.mapper.LawsBindPartMapper; +import com.jero.modules.bindPart.entity.BindPartStandardVO; +import com.jero.modules.bindPart.entity.LawsBindPart; +import com.jero.modules.bindPart.entity.LawsBindPartDoc; +import com.jero.modules.bindPart.service.ILawsBindPartDocService; +import com.jero.modules.bindPart.service.ILawsBindPartService; + import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; -import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper; -import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -30,7 +29,6 @@ import com.jero.modules.laws.standard.entity.LawsOverseasStandard; 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.message.handle.ISendMsgHandle; import com.jero.modules.onlyoffice.entity.StandardFileType; import com.jero.modules.split.entity.SarFileSplitInfoEO; import com.jero.modules.split.service.ISarFileSplitInfoService; @@ -45,6 +43,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.jero.common.constant.CommonConstant.HAS_SEND; +import static com.jero.modules.bindPart.docking.DockingServiceImpl.BIND_RELATION_CHANGE; /** * @author ThinkBook @@ -74,7 +73,7 @@ public class LawsBindPartServiceImpl extends ServiceImpl ids) { // 访问PDM校验该零部件号是否可以修改 this.pdmValidPartEdit(ids); + for (String id : ids) { + try { + dockingService.sendStandardChangeToSCM(null, null, BIND_RELATION_CHANGE, id); + } catch (Exception e) { + log.error("E采通同步标准信息出错", e); + } + } removeByIds(ids); removeBindPartDoc(ids.stream().map(String::valueOf).collect(Collectors.joining(","))); } @@ -282,6 +303,7 @@ public class LawsBindPartServiceImpl extends ServiceImpl { @@ -340,7 +362,7 @@ public class LawsBindPartServiceImpl extends ServiceImpl