From f958d0a68a2f8288c59780d63adc41326d300349 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 30 Apr 2024 17:13:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=91=E5=AE=9A=E9=9B=B6=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E6=96=B0=E5=A2=9E=E6=9B=B4=E6=94=B9=E5=88=A0=E9=99=A4?= =?UTF-8?q?PDM=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LawsBindPartController.java | 5 +- .../service/ILawsBindPartService.java | 2 +- .../service/impl/LawsBindPartServiceImpl.java | 112 +++++++++++++++++- .../srms/controller/SrmsApiController.java | 3 +- .../srms/service/impl/SrmsApiServiceImpl.java | 5 +- .../constant/MessageTemplateCodeCommon.java | 1 + 6 files changed, 118 insertions(+), 10 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java index 7d411ec6..1c465e27 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/controller/LawsBindPartController.java @@ -66,8 +66,9 @@ public class LawsBindPartController { @AutoLog(value = "绑定零部件-使用绑定关系") @ApiOperation(value="绑定零部件-使用绑定关系", notes="绑定零部件-使用绑定关系") @GetMapping(value = "/useBindRelation") - public Result useBindRelation(@RequestParam("id") String id) { - return Result.OK(lawsBindPartService.useBindRelation(id)); + public Result useBindRelation(@RequestParam("id") String id) { + lawsBindPartService.useBindRelation(id); + return Result.OK(); } /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java index 2690ce40..5a10c9ab 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/ILawsBindPartService.java @@ -78,7 +78,7 @@ public interface ILawsBindPartService extends IService { * @param id * @return */ - LawsBindPart useBindRelation(String id); + void useBindRelation(String id); /** * 使用绑定关系 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java index 6856b8d9..f799c509 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/bindPart/service/impl/LawsBindPartServiceImpl.java @@ -1,11 +1,13 @@ package com.jero.modules.docking.bindPart.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.dto.message.SendMessageDTO; +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; @@ -16,6 +18,11 @@ 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.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; @@ -23,10 +30,13 @@ 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; import com.jero.modules.sys.utils.UserUtils; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.tag.enums.TableNameEnum; import org.springframework.stereotype.Service; @@ -66,6 +76,15 @@ public class LawsBindPartServiceImpl extends ServiceImpl queryPage(LawsBindPart lawsBindPart, Integer pageNo, Integer pageSize) { IPage page = new Page<>(pageNo, pageSize); @@ -75,10 +94,19 @@ public class LawsBindPartServiceImpl extends ServiceImpl ids) { + List lawsBindParts = lawsBindPartMapper.selectBatchIds(ids); + if (CollectionUtil.isEmpty(lawsBindParts)) { + return; + } + // 转换为Map + Map lawsBindPartMap = lawsBindParts.stream().collect(Collectors.toMap(LawsBindPart::getId, e -> e)); + Set errPartSet = new HashSet<>(); + // 访问PDM校验该零部件号是否可以修改 + for (String id : ids) { + LawsBindPart existBindPart = lawsBindPartMap.get(id); + boolean canEdit = srmsApiService.validPartNoEdit(existBindPart.getPartNo(), + existBindPart.getPartName(), + getBindUsernameAndRealName(existBindPart.getBindUser())); + if (!canEdit) { + errPartSet.add(existBindPart.getPartNo()); + } + } + if (CollectionUtil.isNotEmpty(errPartSet)) { + throw new JeroBootException("零部件号" + String.join(",", errPartSet) + "不能修改"); + } + } + @Override public void editById(LawsBindPart lawsBindPart) { if (StrUtil.isBlank(lawsBindPart.getId())) { throw new JeroBootException("id不能为空"); } + this.pdmValidPartEdit(Collections.singletonList(lawsBindPart.getId())); updateById(lawsBindPart); // 清空关联关系 removeBindPartDoc(lawsBindPart.getId()); @@ -121,12 +182,16 @@ public class LawsBindPartServiceImpl extends ServiceImpl ids) { + // 访问PDM校验该零部件号是否可以修改 + this.pdmValidPartEdit(ids); removeByIds(ids); removeBindPartDoc(ids.stream().map(String::valueOf).collect(Collectors.joining(","))); } @@ -228,7 +293,7 @@ public class LawsBindPartServiceImpl extends ServiceImpl sendMap = new HashMap<>(); + if (StrUtil.isBlank(clauseIds)) { + sendMap.put("clause", ""); + } else { + List clauseIdList = Arrays.asList(clauseIds.split(",")); + List lawsDocumentSplits = documentSplitMapper.selectBatchIds(clauseIdList); + String clause = lawsDocumentSplits.stream().sorted() + .map(LawsDocumentSplit::getItemNum).collect(Collectors.joining(",")); + String msg = "的" + clause + "条款"; + sendMap.put("clause", msg); + } + String standardNumber = ""; + LawsEnterpriseStandard es = esService.getById(standardId); + if (es != null) { + standardNumber = es.getStandardNumber(); + } + LawsDomesticStandard gb = gbService.getById(standardId); + if (gb != null) { + standardNumber = gb.getStandardNumber(); + } + LawsOverseasStandard fb = fbService.getById(standardId); + if (fb != null) { + standardNumber = fb.getStandardNumber(); + } + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.BIND_PART_ADD); + sendMessageDTO.setToUserId(userId); + sendMap.put("standardNo", standardNumber); + sendMap.put("partNo", lawsBindPart.getPartNo() + lawsBindPart.getPartName()); + sendMessageDTO.setMap(sendMap); + sendMessageAPI.sendMessage(sendMessageDTO); + } } 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 e0b4a8a3..ba0cc106 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 @@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.CommonConstant; -import com.jero.common.exception.JeroBootException; -import com.jero.modules.docking.srms.entity.LawsPartStandard; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; @@ -198,6 +196,7 @@ public class SrmsApiController { try { List rows = srmsApiService.getBindPartStandardInfo(json); JSONObject resultJson = new JSONObject(); + // TODO interface_id resultJson.put("MessageHeader", srmsApiService.getMessageHandler("interface_id", uuid)); JSONObject jsonResponses = ResponsesUtil.getJsonOkUpper(); if (!Objects.isNull(rows)) { 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 3db477d4..8dd381a2 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 @@ -49,6 +49,7 @@ 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.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -783,10 +784,10 @@ public class SrmsApiServiceImpl implements SrmsApiService { } @Override - public boolean validPartNoEdit(String partNo, String partName, String bindUserInfo) { + public boolean validPartNoEdit(@NotNull String partNo, String partName, @NotNull String bindUserInfo) { try { JSONObject all = new JSONObject(); - // todo Interface_ID,UUID + // todo Interface_ID all.put(MESSAGE_HANDLER, getMessageHandler("interfaceId", null)); JSONObject requests = new JSONObject(); requests.put("PartNum", partNo); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java index 2dfcba15..520b850a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java @@ -31,5 +31,6 @@ public class MessageTemplateCodeCommon { public static final String ES_ANNUAL_REPORT_CONTACT_USER = "es_annual_report_contact_user"; // 【企标年度制修订-各部门主动上报】部门联络人下发 public static final String FB_STANDARD_PURCHASE = "fb_standard_purchase"; // 【法规采购】流程结束 public static final String NOT_MET_WARNING = "not_met_warning"; // 【未符合项跟踪流程】超期预警 + public static final String BIND_PART_ADD = "bind_part_add"; // 【绑定零部件】新增完成提醒 }