From 5e161d7456c1dc4f9a163bfdf84b176bd7b9fd23 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 8 Feb 2025 14:59:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(REQ-3300)=20-=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8F=98=E6=B4=BD=E7=AD=BE=E8=BF=BD=E5=8A=A0=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/changerecord/ChangeRecordApi.java | 5 ++- .../changerecord/ChangeRecordRelationApi.java | 11 ++++- .../request/ChangeRecordAppendAttachReq.java | 39 +++++++++++++++++ .../ChangeRecordRelationController.java | 7 ++++ .../visa/server/rpc/WorkflowGateway.java | 6 ++- .../service/ChangeRecordRelationService.java | 10 +++++ .../impl/ChangeRecordRelationServiceImpl.java | 42 +++++++++++++++++++ 7 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeRecordAppendAttachReq.java diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordApi.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordApi.java index 08c52b37..c845bd4f 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordApi.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordApi.java @@ -124,16 +124,19 @@ public interface ChangeRecordApi { /** * IM 变洽签群,“重新发起”按钮 + * * @return */ @PostMapping("/api/visa/change/reDecision") ApiResult reDecisionChangeRecord(@Validated @RequestBody ChangeRecordButtonOperationReq req); /** - * IM 变洽签全,“发起执行”按钮 + * IM 变洽签群,“发起执行”按钮 + * * @param req * @return */ @PostMapping("/api/visa/change/execute") ApiResult executeChangeRecord(@Validated @RequestBody ChangeRecordButtonOperationReq req); + } diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordRelationApi.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordRelationApi.java index 33b2d56e..e6f09f10 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordRelationApi.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/changerecord/ChangeRecordRelationApi.java @@ -1,10 +1,11 @@ package cn.axzo.nanopart.visa.api.changerecord; import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.nanopart.visa.api.request.ChangeRecordAppendAttachReq; +import cn.axzo.nanopart.visa.api.request.ImGroupOperationReq; import cn.axzo.nanopart.visa.api.request.ImGroupTipsQueryReq; import cn.axzo.nanopart.visa.api.request.VisaRelationReq; import cn.axzo.nanopart.visa.api.response.ImGroupTipsResp; -import cn.axzo.nanopart.visa.api.request.ImGroupOperationReq; import cn.axzo.nanopart.visa.api.response.VisaRelationResp; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; @@ -30,4 +31,12 @@ public interface ChangeRecordRelationApi { @PostMapping("/api/visa/relation/im/tips") ApiResult queryImGroupTips(@Validated @RequestBody ImGroupTipsQueryReq req); + /** + * 变洽签追加附件 + * + * @param req + * @return + */ + @PostMapping("/api/visa/relation/attach/append") + ApiResult appendAttachment(@Validated @RequestBody ChangeRecordAppendAttachReq req); } diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeRecordAppendAttachReq.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeRecordAppendAttachReq.java new file mode 100644 index 00000000..5e82d694 --- /dev/null +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeRecordAppendAttachReq.java @@ -0,0 +1,39 @@ +package cn.axzo.nanopart.visa.api.request; + +import cn.axzo.workflow.common.model.dto.UploadFieldDTO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 变洽签增加附件 + * + * @author wangli + * @since 2025-02-08 14:19 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ChangeRecordAppendAttachReq { + + /** + * 变洽签主键 ID + */ + @NotNull(message = "变洽签主键 ID") + private Long visaId; + + /** + * 新增的附件 + */ + private List attach; + + private Long operatorPersonId; + + private Long operatorOuId; + +} diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordRelationController.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordRelationController.java index 0e1bc9df..c298ba66 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordRelationController.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordRelationController.java @@ -2,6 +2,7 @@ package cn.axzo.nanopart.visa.server.controller; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.nanopart.visa.api.changerecord.ChangeRecordRelationApi; +import cn.axzo.nanopart.visa.api.request.ChangeRecordAppendAttachReq; import cn.axzo.nanopart.visa.api.request.ImGroupOperationReq; import cn.axzo.nanopart.visa.api.request.ImGroupTipsQueryReq; import cn.axzo.nanopart.visa.api.request.VisaRelationReq; @@ -45,4 +46,10 @@ public class ChangeRecordRelationController implements ChangeRecordRelationApi { public ApiResult queryImGroupTips(ImGroupTipsQueryReq req) { return ApiResult.ok(changeRecordRelationService.queryImGroupTips(req)); } + + @Override + public ApiResult appendAttachment(ChangeRecordAppendAttachReq req) { + changeRecordRelationService.appendAttachment(req); + return ApiResult.ok(); + } } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/WorkflowGateway.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/WorkflowGateway.java index 587e4025..a97e148e 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/WorkflowGateway.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/WorkflowGateway.java @@ -1,9 +1,9 @@ package cn.axzo.nanopart.visa.server.rpc; -import cn.axzo.pokonyan.util.RpcUtil; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCheckApproverDTO; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO; +import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO; import cn.axzo.workflow.starter.api.WorkflowCoreService; import cn.axzo.workflow.starter.api.WorkflowManageService; import cn.azxo.framework.common.logger.MethodAroundLog; @@ -48,4 +48,8 @@ public class WorkflowGateway { } + @MethodAroundLog(target = "workflow-engine", source = "nanopart", value = "更新指定流程表单最后一次编辑的内容") + public Boolean updateInstanceFormData(FormVariablesUpdateDTO dto) { + return workflowCoreService.updateInstanceFormVariables(dto); + } } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordRelationService.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordRelationService.java index bc2d79c3..25577540 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordRelationService.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordRelationService.java @@ -1,6 +1,7 @@ package cn.axzo.nanopart.visa.server.service; import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum; +import cn.axzo.nanopart.visa.api.request.ChangeRecordAppendAttachReq; import cn.axzo.nanopart.visa.api.request.ImGroupOperationClearReq; import cn.axzo.nanopart.visa.api.request.ImGroupOperationReq; import cn.axzo.nanopart.visa.api.request.ImGroupTipsQueryReq; @@ -33,6 +34,7 @@ public interface ChangeRecordRelationService extends IService findByVisaAndVarName(Long visaId, String varName); boolean deleteByVisaId(Long visaId, List relationTypes); + /** * IM 群聊中,保存 IM 用户操作横条的人 * @@ -43,6 +45,7 @@ public interface ChangeRecordRelationService extends IService existsAttach = findByCondition(VisaRelationDto.builder() + .visaId(req.getVisaId()) + .varName(VisaRelationFieldEnum.ATTACHMENT.name()) + .build()); + AssertUtil.isTrue(existsAttach.size() < 30, "已达到附件数量限制"); + AssertUtil.isTrue(existsAttach.size() + req.getAttach().size() <= 30, "新增的附件数量超过限制"); + + List attach = req.getAttach().stream() + .map(item -> { + ChangeRecordRelation changeRecordRelation = new ChangeRecordRelation(); + changeRecordRelation.setVisaId(req.getVisaId()); + changeRecordRelation.setVarName(VisaRelationFieldEnum.ATTACHMENT.name()); + changeRecordRelation.setVarType(VisaRelationVarTypeEnum.JSON.getType()); + changeRecordRelation.setContent(JSON.toJSONString(item)); + changeRecordRelation.setCreateBy(req.getOperatorPersonId()); + changeRecordRelation.setUpdateBy(req.getOperatorPersonId()); + return changeRecordRelation; + }) + .collect(Collectors.toList()); + saveBatch(attach); + + if (Objects.equals(PROCESSING.getStatus(), visa.getApprovalStatus())) { + FormVariablesUpdateDTO formUpdateDto = new FormVariablesUpdateDTO(); + formUpdateDto.setProcessInstanceId(visa.getApprovalId()); + formUpdateDto.setFormVariables(Maps.of(FORM_FIELD_ATTACH, req.getAttach())); + workflowGateway.updateInstanceFormData(formUpdateDto); + } + + } } From d253c15437952c99ff7387b973f4f5f8b3e6b849 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 8 Feb 2025 15:08:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(REQ-3300)=20-=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8F=98=E6=B4=BD=E7=AD=BE=E8=BF=BD=E5=8A=A0=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/service/impl/ChangeRecordRelationServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordRelationServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordRelationServiceImpl.java index 5185cd1a..e2d445e7 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordRelationServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordRelationServiceImpl.java @@ -298,6 +298,9 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl existsAttach = findByCondition(VisaRelationDto.builder() .visaId(req.getVisaId())