From e0c9018c03db1d45e1c67f46a9261f703ed7aa8a Mon Sep 17 00:00:00 2001 From: fanzongzhe0036 Date: Fri, 10 Jan 2025 14:43:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E8=9E=8D=E8=B4=B4=E6=81=AF=E8=B0=83?= =?UTF-8?q?=E5=B7=AE=E7=94=B3=E8=AF=B7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../costadjustmentsbill/data_FEntity.json | 93 +-- .../costadjustmentsbill/data_data.json | 11 +- .../costadjustmentsbill/data_model.json | 7 +- .../anrui/flowable/api/utils/ProcDefEnum.java | 1 + .../AdjustVehListQuery.java | 1 + .../ScmFinanceAdjustApplyFeign.java | 42 ++ .../ScmFinanceAdjustApplyFeignFallback.java | 49 ++ .../flow/AdjustCompleteDto.java | 41 ++ .../flow/AdjustDelegateQuery.java | 26 + .../flow/AdjustGetNodeQuery.java | 26 + .../flow/AdjustGetNodeVo.java | 25 + .../flow/AdjustTaskQuery.java | 56 ++ .../flow/SubmitAdjustDto.java | 20 + .../ScmFinanceAdjustDetailsQuery.java | 1 + .../ScmFinanceAdjustApplyMapper.java | 3 + .../ScmFinanceAdjustApplyMapper.xml | 27 +- .../ScmFinanceAdjustApplyRest.java | 54 ++ .../ScmFinanceAdjustApplyService.java | 562 +++++++++++++++++- .../ScmFinanceAdjustDetailsMapper.xml | 4 +- .../ScmFinanceAdjustDetailsService.java | 3 + 20 files changed, 944 insertions(+), 108 deletions(-) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustCompleteDto.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustDelegateQuery.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeQuery.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeVo.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustTaskQuery.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/SubmitAdjustDto.java diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json index 5b53ea7288..82f7c5053f 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json @@ -1,116 +1,31 @@ { - "FEntryID": "0", "FStockOrgID": { "FNumber": "@KD_FStockOrgID" }, "FMaterialID": { "FNumber": "@KD_FMaterialID" }, - "FAuxPropId": { - "FAUXPROPID__FF100001": { - "FNumber": "" - }, - "FAUXPROPID__FF100005": { - "FNumber": "" - }, - "FAUXPROPID__FF100002": { - "FNumber": "" - }, - "FAUXPROPID__FF100004": { - "FNumber": "" - }, - "FAUXPROPID__FF100006": { - "FNumber": "" - } - }, - "FLOT": { - "FNumber": "" - }, - "FBOMId": { - "FNumber": "" - }, "FSTOCKSTATUSID": { "FNumber": "KCZT01_SYS" }, "FAdjustmentAMOUNT": "@KD_FAdjustmentAMOUNT", - "FAdjustmentAMOUNTFor": "0", "FStockID": { "FNumber": "ARZSCK" }, "FOwnerID": { "FNumber": "@KD_FOwnerID" }, - "FSTOCKLOCID": { - "FSTOCKLOCID__FF100001": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100002": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100003": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100004": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100005": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100006": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100007": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100008": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100009": { - "FNumber": "" - }, - "FSTOCKLOCID__FF100010": { - "FNumber": "" - } - }, "FAcctgRangeID": { - "FNumber": "" - }, - "FMtoNo": "", - "FSeqId": "", - "FPROJECTNO": "", - "FOwnerTypeId": "", - "FPrice": "0", - "FSeqEntryId": "0", - "FInvoiceRateType": { - "FNumber": "" - }, - "FStockRateType": { - "FNumber": "" - }, - "FOriginalCurrencyId": { - "FNumber": "" - }, - "FStockRate": "0", - "FInvoiceRate": "0", - "FRateDiff": "0", - "FPriceDiff": "0", - "FQty": "0", - "FCostCenterID": { - "FNumber": "" - }, - "FSRCSEQ": "0", - "FSRCBILLNO": "", - "FSRCBILLTYPEID": { - "FNumber": "" + "FNumber": "HSFW000001_SYS" }, + "FOwnerTypeId": "BD_OwnerOrg", "FDepartmentId": { "FNUMBER": "@KD_FDepartmentId" }, "FExpense": [{ - "FExpenseEntryID": "0", "FExpenseID": { - "FNumber": "" + "FNumber": "FYXM01_SYS" }, - "FExpenseAmount": "0" + "FExpenseAmount": "@KD_FAdjustmentAMOUNT" }] } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json index a53918181a..ecb2570018 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json @@ -2,12 +2,13 @@ "Creator": "", "NeedUpDateFields": [], "NeedReturnFields": [], - "IsDeleteEntry": "True", + "IsDeleteEntry": "true", "SubSystemId": "", - "IsVerifyBaseDataField": "True", - "IsEntryBatchFill": "True", - "ValidateFlag": "True", - "NumberSearch": "True", + "IsVerifyBaseDataField": "false", + "IsEntryBatchFill": "true", + "ValidateFlag": "true", + "NumberSearch": "true", "InterationFlags": "", + "IsAutoSubmitAndAudit": "false", "Model": {} } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json index 26bbaace5f..a8946395d2 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json @@ -23,14 +23,15 @@ }, "FAdjustmentReason": "", "FAcctgId": "0", - "FDocumentStatus": "", + "FDocumentStatus": "Z", + "FCreateDate": "@KD_FDATE", "FCreateOrgId": { - "FNumber": "" + "FNumber": "@KD_FAcctOrgID" }, "FCreatorId": { "FUserID": "" }, - "FInOutIndex": "", + "FInOutIndex": "1", "F_PAEZ_Assistant": { "FNumber": "01" }, diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java index d938239201..8fafa5cc6d 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java @@ -83,6 +83,7 @@ public enum ProcDefEnum { LOANLAWSUITAPPLY("诉讼申请", "process_xc4lp97d:1:8380004"), LOANCASEENTRUSTLAWYERAPPLY("案件委托律师", "process_oe3nvzgn:1:8525004"), ENTERPRISEAPPLY("定点企业备案", "process_tvywp9ri:2:14197516"), + JTTXCYSQ("金融贴息差异调整申请", "process_q1yy2tlg:2:16682508"), /******************************测试流程id*********************************************/ diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListQuery.java index d6bb3ca026..b2b2fcb99f 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListQuery.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListQuery.java @@ -26,4 +26,5 @@ public class AdjustVehListQuery implements Query { @ApiModelProperty("用户sid") private String userSid; + private String[] sids; //已选择车辆sid } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java index b1c386a089..955fc355c7 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java @@ -25,14 +25,20 @@ *********************************************************/ package com.yxt.anrui.scm.api.scmfinanceadjustapply; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.util.List; + /** * Project: scm(金融贴息)
* File: ScmFinanceAdjustApplyFeign.java
@@ -86,5 +92,41 @@ public interface ScmFinanceAdjustApplyFeign { @ResponseBody public ResultBean> finAdjustList(@RequestBody PagerQuery pq); + //------------------------------流程接口---------------------------------------------- + + @ApiOperation("欠款客户备案提交") + @PostMapping("/submit") + public ResultBean submitRecordApplication(@RequestBody @Valid SubmitAdjustDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody AdjustCompleteDto dto); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody AdjustTaskQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody AdjustTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@RequestBody AdjustTaskQuery query); + + @ApiOperation(value = "流程历史流转记录") + @GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}") + public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap AdjustGetNodeQuery query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap AdjustGetNodeQuery query); + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody AdjustDelegateQuery distributorDelegateQuery); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java index 8c03432cf7..b22df77d37 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java @@ -25,11 +25,15 @@ *********************************************************/ package com.yxt.anrui.scm.api.scmfinanceadjustapply; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import javax.validation.Valid; +import java.util.List; + /** * Project: scm(金融贴息)
* File: ScmFinanceAdjustApplyFeignFallback.java
@@ -77,4 +81,49 @@ public class ScmFinanceAdjustApplyFeignFallback implements ScmFinanceAdjustApply public ResultBean> finAdjustList(PagerQuery pq) { return null; } + + @Override + public ResultBean submitRecordApplication(@Valid SubmitAdjustDto dto) { + return null; + } + + @Override + public ResultBean complete(@Valid AdjustCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(AdjustTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(AdjustTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(AdjustTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(@Valid AdjustGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(@Valid AdjustGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(AdjustDelegateQuery distributorDelegateQuery) { + return null; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustCompleteDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustCompleteDto.java new file mode 100644 index 0000000000..645fbf7c5e --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustCompleteDto.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 9:01 + * @Description + */ +@Data +public class AdjustCompleteDto implements Dto { + private static final long serialVersionUID = 3240453987322803352L; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "用户全路径sid") + private String orgSidPath; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:instanceId") + private String instanceId; + @ApiModelProperty(value = "意见") + @NotBlank(message = "参数错误:comment") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustDelegateQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustDelegateQuery.java new file mode 100644 index 0000000000..f7b379fd46 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class AdjustDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; + + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeQuery.java new file mode 100644 index 0000000000..fd06695a1d --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 10:42 + * @Description + */ +@Data +public class AdjustGetNodeQuery implements Query { + private static final long serialVersionUID = -5674867230708197611L; + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeVo.java new file mode 100644 index 0000000000..4e2ea93a8e --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustGetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/6/28 11:09 + * @Description + */ +@Data +public class AdjustGetNodeVo implements Vo { + private static final long serialVersionUID = 8802774014747063504L; + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustTaskQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustTaskQuery.java new file mode 100644 index 0000000000..a886a8e27f --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/AdjustTaskQuery.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/6/28 17:29 + * @Description 终止、撤回、驳回查询参数 + */ +@Data +public class AdjustTaskQuery implements Query { + private static final long serialVersionUID = -4006020771892400451L; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id") + private String instanceId; + /*@ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("节点") + private String targetKey; + @ApiModelProperty("流程变量信息") + private Map values = new HashMap<>(); + @ApiModelProperty("审批人") + private String assignee; + @ApiModelProperty("候选人") + private List candidateUsers = new ArrayList<>(); + @ApiModelProperty("审批组") + private List candidateGroups = new ArrayList<>();*/ +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/SubmitAdjustDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/SubmitAdjustDto.java new file mode 100644 index 0000000000..add65ba28a --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/flow/SubmitAdjustDto.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.flow; + +import com.yxt.anrui.scm.api.scmfinanceadjustapply.ScmFinanceAdjustApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/27 13:38 + * @Description + */ +@Data +public class SubmitAdjustDto extends ScmFinanceAdjustApplyDto { + private static final long serialVersionUID = 378585162071125756L; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsQuery.java index 76c16a885a..1753b1d1fd 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsQuery.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsQuery.java @@ -98,6 +98,7 @@ public class ScmFinanceAdjustDetailsQuery implements Query { * 车架号 */ private String vinNo; + private String adjustWay; } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.java index 53509cbb49..98934b5ef2 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.java @@ -39,6 +39,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; +import java.util.Map; /** * Project: scm(金融贴息)
@@ -73,4 +74,6 @@ public interface ScmFinanceAdjustApplyMapper extends BaseMapper map); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml index 3829c16a5e..cfeb1abf87 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml @@ -1,7 +1,22 @@ - + + UPDATE scm_finance_adjust_apply + SET nodeState=#{nodeState} + , nodeSid=#{taskDefKey} + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + SELECT COUNT(*) FROM base_internal_purchase - WHERE nodeState != '未提交' + WHERE nodeState != '待提交' and find_in_set(sid, #{list}) \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java index bab909b39d..3f471a9155 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java @@ -25,7 +25,11 @@ *********************************************************/ package com.yxt.anrui.scm.biz.scmfinanceadjustapply; +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.scm.api.scmfinanceadjustapply.*; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.anrui.scm.biz.scmfile.ScmFileService; import com.yxt.anrui.scm.biz.scmfinanceadjustdetails.ScmFinanceAdjustDetailsService; import com.yxt.common.core.query.PagerQuery; @@ -37,6 +41,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * Project: scm(金融贴息)
* File: ScmFinanceAdjustApplyFeignFallback.java
@@ -125,4 +131,52 @@ public class ScmFinanceAdjustApplyRest implements ScmFinanceAdjustApplyFeign { PagerVo pv = scmFinanceAdjustApplyService.finAdjustList(pq); return rb.success().setData(pv); } + + @Override + public ResultBean submitRecordApplication(SubmitAdjustDto dto) { + return scmFinanceAdjustApplyService.submitRecordApplication(dto); + } + + @Override + public ResultBean complete(AdjustCompleteDto dto) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(dto, bv); + bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); + return scmFinanceAdjustApplyService.complete(bv); + } + + @Override + public ResultBean revokeProcess(AdjustTaskQuery query) { + return scmFinanceAdjustApplyService.revokeProcess(query); + } + + @Override + public ResultBean taskReject(AdjustTaskQuery query) { + return scmFinanceAdjustApplyService.taskReject(query); + } + + @Override + public ResultBean breakProcess(AdjustTaskQuery query) { + return scmFinanceAdjustApplyService.breakProcess(query); + } + + @Override + public ResultBean flowRecord(String procInsId) { + return scmFinanceAdjustApplyService.flowRecord(procInsId); + } + + @Override + public ResultBean> getNextNodesForSubmit(AdjustGetNodeQuery query) { + return scmFinanceAdjustApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean> getPreviousNodesForReject(AdjustGetNodeQuery query) { + return scmFinanceAdjustApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean delegate(AdjustDelegateQuery delegateQuery) { + return scmFinanceAdjustApplyService.delegate(delegateQuery); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java index c3ae8c20ee..150df16bee 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java @@ -26,20 +26,36 @@ package com.yxt.anrui.scm.biz.scmfinanceadjustapply; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.PrivilegeVo; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.scm.api.scmfile.ScmFileDto; import com.yxt.anrui.scm.api.scmfile.ScmFileVo; import com.yxt.anrui.scm.api.scmfinanceadjustapply.*; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.anrui.scm.api.scmfinanceadjustdetails.ScmFinanceAdjustDetails; import com.yxt.anrui.scm.biz.scmfile.ScmFileService; import com.yxt.anrui.scm.biz.scmfinanceadjustdetails.ScmFinanceAdjustDetailsService; @@ -50,12 +66,17 @@ import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; /** * Project: scm(金融贴息)
@@ -73,6 +94,16 @@ import java.util.List; @Service public class ScmFinanceAdjustApplyService extends MybatisBaseService { + @Autowired + private MessageFeign messageFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; @Autowired private ScmFileService scmFileService; @Autowired @@ -173,7 +204,7 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService scmFileVos = scmFileService.fetchByMainSid(sid); if (!scmFileVos.isEmpty() && scmFileVos.size() > 0) { for (ScmFileVo scmFileVo : scmFileVos) { @@ -288,6 +320,14 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService page = PagerUtil.queryToPage(pq); @@ -357,4 +397,520 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean submitRecordApplication(SubmitAdjustDto dto) { + ResultBean rb = ResultBean.fireFail(); + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, scmFinanceAdjustApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveBill(dto); + ScmFinanceAdjustApply entity = fetchBySid(businessSid); + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getDeptSid())) { + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); + if (null != organizationVo) { + orgSidPath = organizationVo.getOrgSidPath(); + } + } else { + SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); + if (null != data) { + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List orgPathList = Arrays.asList(orgSidPath.split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { +// return rb.setMsg("当前所在的组织机构未设置主管人员"); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值 + Map variables = BeanUtil.beanToMap(dto); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (entity.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + String orderNames = "金融贴息差异调整申请"; + variables.put("orderNames", orderNames); + ScmFinanceAdjustApply scmFinanceAdjustApply1 = fetchBySid(businessSid); + String msgBusinessSid = scmFinanceAdjustApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(orgSidPath); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getCreateBySid()); + bv.setFormVariables(variables); + String nextNodeUserSids_ = sysOrganization.getManagerSid(); + if (isCustomer) { + if (StringUtils.isNotBlank(entity.getStaffSid())) { + bv.setNextNodeUserSids(entity.getStaffSid()); + } else { + bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + } + //流程定义id + bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(msgBusinessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply1.getCreateBySid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(scmFinanceAdjustApply2.getNodeSid()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + ScmFinanceAdjustApply entity = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(entity.getTaskId())) { + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getDeptSid())) { + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); + if (null != organizationVo) { + orgSidPath = organizationVo.getOrgSidPath(); + } + } + bv.setOrgSidPath(orgSidPath); + //流程中的参数赋值 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (entity.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + if (bv.getTaskDefKey().equals("Activity_049lvok")) { + if (StringUtils.isNotBlank(entity.getSalesManageSid())) { + bv.setNextNodeUserSids(entity.getSalesManageSid()); + } else { + bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + } + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); + scmFinanceAdjustApply.setClosingDate(new Date()); + baseMapper.updateById(scmFinanceAdjustApply); + + + } else { + //极光推送 + entity = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(entity.getProcDefId()); + messageFlowVo.setProcInsId(entity.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + messageFlowableQuery.setMsgContent(entity.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + + public ResultBean revokeProcess(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean taskReject(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); + if (scmFinanceAdjustApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + scmFinanceAdjustApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = scmFinanceAdjustApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(scmFinanceAdjustApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); +// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply.getCreateBySid()).getData(); + if (userVo != null) { + if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + } + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean breakProcess(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (org.apache.commons.lang3.StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(scmFinanceAdjustApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean flowRecord(String procInsId) { + return flowTaskFeign.businessFlowRecord(procInsId); + } + + public ResultBean> getNextNodesForSubmit(AdjustGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询信息 + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + bv.setFormVariables(variables); + bv.setModelId(scmFinanceAdjustApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getPreviousNodesForReject(AdjustGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产 + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + bv.setFormVariables(variables); + bv.setModelId(scmFinanceAdjustApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean delegate(AdjustDelegateQuery adjustDelegateQuery) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(adjustDelegateQuery, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustdetails/ScmFinanceAdjustDetailsMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustdetails/ScmFinanceAdjustDetailsMapper.xml index b90c2feaaf..f34353db57 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustdetails/ScmFinanceAdjustDetailsMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustdetails/ScmFinanceAdjustDetailsMapper.xml @@ -6,8 +6,8 @@