From 7a7aae20c07e28f55f67ec5318e5c227635d3c9d Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 6 Feb 2025 18:52:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3300)=20-=20=E6=B7=BB=E5=8A=A0=20IM=20?= =?UTF-8?q?=E7=BE=A4=E8=81=8ATips=20=E7=9A=84=E6=8F=90=E4=BA=A4=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/changerecord/ChangeRecordApi.java | 2 +- .../api/request/VisaChangeApproveOnlyReq.java | 6 ++ .../api/request/VisaChangeTempCreateReq.java | 6 ++ .../controller/ChangeRecordController.java | 4 +- .../visa/server/domain/ChangeRecord.java | 23 +++++++- .../server/service/ChangeRecordService.java | 9 +++ .../visa/server/service/VisaHelper.java | 1 + .../impl/ChangeRecordConfirmServiceImpl.java | 13 +++- .../service/impl/ChangeRecordServiceImpl.java | 59 +++++++++++++------ 9 files changed, 98 insertions(+), 25 deletions(-) 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 dc0684d2..7dca3645 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 @@ -112,7 +112,7 @@ public interface ChangeRecordApi { * @return */ @PostMapping("/api/visa/change/approve/only/create") - ApiResult approveExistsVisaChangeRecord(@Validated @RequestBody VisaChangeApproveOnlyReq req); + ApiResult approveCreateOnlyVisaChangeRecord(@Validated @RequestBody VisaChangeApproveOnlyReq req); /** * IM 变洽签群,“废止”按钮 diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeApproveOnlyReq.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeApproveOnlyReq.java index 1bdbd0af..f3118b88 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeApproveOnlyReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeApproveOnlyReq.java @@ -38,4 +38,10 @@ public class VisaChangeApproveOnlyReq { */ private List approvePersonInfoList; + private Long operatorPersonId; + + private Long operatorOuId; + + private Long operatorWorkspaceId; + } diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java index fa5e4614..1bec835a 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java @@ -64,6 +64,11 @@ public class VisaChangeTempCreateReq { @NotNull(message = "请选择工程") @Min(value = 1, message = "请选择工程") private Long relationProject; + /** + * 工程名称 + */ + @NotBlank(message = "工程名称不能为空") + private String relationProjectName; /** * 区域集合 @@ -108,6 +113,7 @@ public class VisaChangeTempCreateReq { /** * 有符号的变更金额 */ + @NotNull(message = "变更金额不能为空") private BigDecimal amountChange; /** diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordController.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordController.java index e1383352..6a1d5fed 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordController.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/controller/ChangeRecordController.java @@ -103,8 +103,8 @@ public class ChangeRecordController implements ChangeRecordApi { } @Override - public ApiResult approveExistsVisaChangeRecord(VisaChangeApproveOnlyReq req) { - return null; + public ApiResult approveCreateOnlyVisaChangeRecord(VisaChangeApproveOnlyReq req) { + return ApiResult.ok(changeRecordService.approveCreateOnlyVisaChangeRecord(req)); } @Override diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java index 3cd997e9..b3ef1b9d 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java @@ -58,8 +58,29 @@ public class ChangeRecord extends BaseEntity { /** * 区域集合 + *
+     * [
+     *     {
+     *         "areaId": 249556,
+     *         "childrenAreaList": [
+     *             {
+     *                 "areaId": 249739,
+     *                 "childrenAreaList": []
+     *             }
+     *         ]
+     *     },
+     *     {
+     *         "areaId": 249556,
+     *         "childrenAreaList": [
+     *             {
+     *                 "areaId": 249739,
+     *                 "childrenAreaList": []
+     *             }
+     *         ]
+     *     }
+     * ]
+     *  
*/ - @TableField(value = "relation_area", typeHandler = FastjsonTypeHandler.class) private JSONArray relationArea; diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordService.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordService.java index ed4919a6..033c234b 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordService.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordService.java @@ -5,6 +5,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.request.ChangeRecordForbidReq; import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest; import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq; +import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq; import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq; import cn.axzo.nanopart.visa.api.request.VisaChangeExportReq; import cn.axzo.nanopart.visa.api.request.VisaChangePageSearchReq; @@ -104,4 +105,12 @@ public interface ChangeRecordService extends IService { * @param req */ void forbid(ChangeRecordForbidReq req); + + /** + * IM 群聊中提交审批 + * + * @param req + * @return + */ + Long approveCreateOnlyVisaChangeRecord(VisaChangeApproveOnlyReq req); } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java index 8f37d189..87538520 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java @@ -4,6 +4,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest; import cn.axzo.nanopart.visa.server.dto.VisaAddLogContext; import cn.axzo.nanopart.visa.server.dto.VisaLogParam; +import com.alibaba.fastjson.JSONArray; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java index 0ee65ae0..61eb1d12 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java @@ -37,7 +37,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -360,8 +359,16 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl personMap = buildPersonDtoMap(list.stream() .map(ChangeRecordConfirm::getPersonId) .collect(Collectors.toSet())); - list.stream().map(i-> VisaChangeApproveCreateReq.ApprovePersonInfo.builder().build()) + return list.stream().map(i -> VisaChangeApproveCreateReq.ApprovePersonInfo.builder() + .workspaceId(i.getWorkspaceId()) + .ouId(i.getOuId()) + .nodeId(i.getNodeId()) + .personId(i.getPersonId()) + .realName(personMap.getOrDefault(i.getPersonId(), new PersonProfileDto()) + .getRealName()) + .avatarUrl(personMap.getOrDefault(i.getPersonId(), new PersonProfileDto()) + .getAvatarUrl()) + .build()) .collect(Collectors.toList()); - return null; } } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index 5979473a..9bb57f35 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -31,6 +31,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.nanopart.visa.api.request.ChangeRecordForbidReq; import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest; import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq; +import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq; import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq; import cn.axzo.nanopart.visa.api.request.VisaChangeExportReq; import cn.axzo.nanopart.visa.api.request.VisaChangePageSearchReq; @@ -552,7 +553,25 @@ public class ChangeRecordServiceImpl extends ServiceImpl 0) { + amountDesc = "增加" + req.getAmountChange().toPlainString() + "元"; + } else if (req.getAmountChange().compareTo(BigDecimal.ZERO) < 0) { + amountDesc = "减少" + req.getAmountChange().toPlainString() + "元"; + } + formVariables.put(FORM_FIELD_AMOUNT_CHANGE, amountDesc); // 三种单据 if (MapUtils.isNotEmpty(req.getRelationOrderMap())) { @@ -604,20 +628,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl pendingVariables = new HashMap<>(); pendingVariables.put(WORKFLOW_PENDING_TOPIC, req.getTopic()); processDto.setPendingVariables(pendingVariables); - String processInstanceId = workflowGateway.processInstanceCreate(processDto); - - // 更新主表中的审批字段,记录变量表的审批的信息 - updateApprovalInfo(visaId, processInstanceId); - - // 更新主表状态 - changeStatus(ChangeStatusRequest.builder() - .visaId(visaId) - .updateStatus(VisaStatusEnum.APPROVING) - .personId(req.getOperatorPersonId()) - .ouId(req.getOperatorOuId()) - .workspaceId(req.getRelationWorkspaceId()) - .build()); - return visaId; + return workflowGateway.processInstanceCreate(processDto); } /** @@ -1045,6 +1056,18 @@ public class ChangeRecordServiceImpl extends ServiceImpl