:feat: 项目立项审批通过同步推送HCS并回传失败原因
This commit is contained in:
+10
-1
@@ -40,6 +40,7 @@ import org.springblade.transport.excel.ProjectApplyExcel;
|
|||||||
import org.springblade.transport.pojo.entity.ProjectApply;
|
import org.springblade.transport.pojo.entity.ProjectApply;
|
||||||
import org.springblade.transport.pojo.vo.ProjectApplyVO;
|
import org.springblade.transport.pojo.vo.ProjectApplyVO;
|
||||||
import org.springblade.transport.service.IProjectApplyService;
|
import org.springblade.transport.service.IProjectApplyService;
|
||||||
|
import org.springblade.transport.support.hcs.HcsImmediatePushSupport;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@@ -63,6 +64,7 @@ import java.util.Map;
|
|||||||
public class ProjectApplyController extends BladeController {
|
public class ProjectApplyController extends BladeController {
|
||||||
|
|
||||||
private final IProjectApplyService projectApplyService;
|
private final IProjectApplyService projectApplyService;
|
||||||
|
private final HcsImmediatePushSupport hcsImmediatePushSupport;
|
||||||
|
|
||||||
@GetMapping("/detail")
|
@GetMapping("/detail")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@@ -119,7 +121,14 @@ public class ProjectApplyController extends BladeController {
|
|||||||
@ApiOperationSupport(order = 6)
|
@ApiOperationSupport(order = 6)
|
||||||
@Operation(summary = "审批通过", description = "传入id")
|
@Operation(summary = "审批通过", description = "传入id")
|
||||||
public R approve(@Parameter(description = "主键", required = true) @RequestParam Long id) {
|
public R approve(@Parameter(description = "主键", required = true) @RequestParam Long id) {
|
||||||
return R.status(projectApplyService.approve(id));
|
projectApplyService.approve(id);
|
||||||
|
// 审批事务已提交,再同步推送合规;失败原因以警告文案返回(data=false 供前端区分提示样式),照正式结算单审批接口
|
||||||
|
hcsImmediatePushSupport.pushProjectAndWait(id);
|
||||||
|
String syncFailure = HcsImmediatePushSupport.pollSyncFailure();
|
||||||
|
if (syncFailure != null) {
|
||||||
|
return R.data(Boolean.FALSE, "审批通过,但合规推送失败:" + syncFailure);
|
||||||
|
}
|
||||||
|
return R.success("审批通过");
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/reject")
|
@PostMapping("/reject")
|
||||||
|
|||||||
+1
-4
@@ -49,7 +49,6 @@ import org.springblade.transport.pojo.entity.TemporaryCreditLimit;
|
|||||||
import org.springblade.transport.pojo.vo.ProjectApplyVO;
|
import org.springblade.transport.pojo.vo.ProjectApplyVO;
|
||||||
import org.springblade.transport.service.IProjectApplyService;
|
import org.springblade.transport.service.IProjectApplyService;
|
||||||
import org.springblade.transport.support.TransportBusinessSupport;
|
import org.springblade.transport.support.TransportBusinessSupport;
|
||||||
import org.springblade.transport.support.hcs.HcsImmediatePushSupport;
|
|
||||||
import org.springblade.transport.wrapper.ProjectApplyWrapper;
|
import org.springblade.transport.wrapper.ProjectApplyWrapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -96,7 +95,6 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
private final TemporaryCreditLimitMapper temporaryCreditLimitMapper;
|
private final TemporaryCreditLimitMapper temporaryCreditLimitMapper;
|
||||||
private final FormalSettlementMapper formalSettlementMapper;
|
private final FormalSettlementMapper formalSettlementMapper;
|
||||||
private final ReceiptClaimSettlementMapper receiptClaimSettlementMapper;
|
private final ReceiptClaimSettlementMapper receiptClaimSettlementMapper;
|
||||||
private final HcsImmediatePushSupport hcsImmediatePushSupport;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<ProjectApplyVO> selectProjectApplyPage(IPage<ProjectApply> page, ProjectApplyVO projectApply) {
|
public IPage<ProjectApplyVO> selectProjectApplyPage(IPage<ProjectApply> page, ProjectApplyVO projectApply) {
|
||||||
@@ -214,9 +212,8 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
projectApply.setCurrentNode("审批通过");
|
projectApply.setCurrentNode("审批通过");
|
||||||
projectApply.setCurrentProcessor(AuthUtil.getUserName());
|
projectApply.setCurrentProcessor(AuthUtil.getUserName());
|
||||||
projectApply.setApprovedTime(LocalDateTime.now());
|
projectApply.setApprovedTime(LocalDateTime.now());
|
||||||
// HCS 推送:审批通过置待同步状态,事务提交后即时推送,扫描任务保留兜底(ADR-0001 修订,前端接入设计 §6)
|
// HCS 推送:审批通过置待同步状态,事务提交后由 Controller 同步推送并回传失败原因,扫描任务保留兜底
|
||||||
projectApply.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
|
projectApply.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
|
||||||
hcsImmediatePushSupport.pushProjectAfterCommit(id);
|
|
||||||
return updateById(projectApply);
|
return updateById(projectApply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user