Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe 1 year ago
parent
commit
69d32a13ce
  1. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeign.java
  3. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeignFallback.java
  4. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java
  5. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.xml
  6. 26
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java
  7. 323
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -64,6 +64,7 @@ public enum ProcDefEnum {
LOANBUCKLEAPPLLY("划扣申请", "process_50xtaucg:1:6757504"),
COLLECTIONPAYMENT("代收代付申请", "process_6upfyv8i:1:6972504"),
BEPADSINCEREAPPLY("逾期垫款申请", "process_h1mcb548:1:6712504"),
BECOLLECTIONAPPLY("催收措施申请", "process_7xz17xva:1:7417504"),
MONTHLYACCRUAL("当月应收计提申请", "process_7zpo52qj:1:7367504"),
/******************************测试流程id*********************************************/

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeign.java

@ -96,11 +96,11 @@ public interface LoanBeCollectionApplyFeign {
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap LoanBeCollectionApplyNodeQuery query);
ResultBean<List<LoanBeCollectionApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap LoanBeCollectionApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap LoanBeCollectionApplyNodeQuery query);
ResultBean<List<LoanBeCollectionApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap LoanBeCollectionApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeignFallback.java

@ -88,12 +88,12 @@ public class LoanBeCollectionApplyFeignFallback implements LoanBeCollectionApply
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(LoanBeCollectionApplyNodeQuery query) {
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getPreviousNodesForReject(LoanBeCollectionApplyNodeQuery query) {
return null;
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(LoanBeCollectionApplyNodeQuery query) {
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getNextNodesForSubmit(LoanBeCollectionApplyNodeQuery query) {
return null;
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApply;
import com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApplyVo;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-riskcenter(催收措施申请) <br/>
@ -64,4 +65,6 @@ public interface LoanBeCollectionApplyMapper extends BaseMapper<LoanBeCollection
List<LoanBeCollectionApplyVo> selectListVo();
String selectNum(String billNo);
int updateFlowFiled(Map<String, Object> map);
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.xml

@ -18,4 +18,19 @@
order by billNo desc
limit 1
</select>
<update id="updateFlowFiled">
UPDATE loan_be_collection_apply
SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstSid=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

26
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java

@ -25,6 +25,9 @@
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loanbecollectionapply;
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.riskcenter.api.loanbecollectionapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.LoanBePadsincereNodeVo;
import com.yxt.common.core.query.PagerQuery;
@ -109,41 +112,44 @@ public class LoanBeCollectionApplyRest implements LoanBeCollectionApplyFeign {
@Override
public ResultBean submit(SubmitLoanBeCollectionApplyDto dto) {
return null;
return loanBeCollectionApplyService.submit(dto);
}
@Override
public ResultBean complete(LoanBeCollectionApplyCompleteDto query) {
return null;
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BECOLLECTIONAPPLY.getProDefId());
return loanBeCollectionApplyService.complete(bv);
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(LoanBeCollectionApplyNodeQuery query) {
return null;
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getPreviousNodesForReject(LoanBeCollectionApplyNodeQuery query) {
return loanBeCollectionApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(LoanBeCollectionApplyNodeQuery query) {
return null;
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getNextNodesForSubmit(LoanBeCollectionApplyNodeQuery query) {
return loanBeCollectionApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean reject(LoanBeCollectionApplyTaskQuery query) {
return null;
return loanBeCollectionApplyService.reject(query);
}
@Override
public ResultBean revokeProcess(LoanBeCollectionApplyTaskQuery query) {
return null;
return loanBeCollectionApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(LoanBeCollectionApplyTaskQuery query) {
return null;
return loanBeCollectionApplyService.breakProcess(query);
}
@Override
public ResultBean delegate(LoanBeCollectionApplyDelegateQuery query) {
return null;
return loanBeCollectionApplyService.delegate(query);
}
}

323
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java

@ -27,6 +27,7 @@ package com.yxt.anrui.riskcenter.biz.loanbecollectionapply;
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.yxt.anrui.base.common.utils.Rule;
@ -36,6 +37,16 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice;
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeign;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
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.SysStaffOrgFeign;
@ -43,12 +54,16 @@ import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbecollectionapply.*;
import com.yxt.anrui.riskcenter.api.loanbecollectionapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordDto;
import com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDto;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehFile;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApply;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.LoanBePadsincereNodeVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.SubmitLoanBePadsincereDto;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomerDetailsVo;
@ -60,6 +75,9 @@ import com.yxt.anrui.riskcenter.biz.loanhomevisitinvestigate.LoanHomevisitInvest
import com.yxt.anrui.riskcenter.biz.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomerService;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.common.base.config.component.FileUploadComponent;
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 com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -71,6 +89,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-riskcenter(催收措施申请) <br/>
@ -112,6 +131,14 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowFeign flowFeign;
private QueryWrapper<LoanBeCollectionApply> createQueryWrapper(LoanBeCollectionApplyQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -184,7 +211,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
return p;
}
public void saveOrUpdateDto(LoanBeCollectionApplyDto dto) {
public String saveOrUpdateDto(LoanBeCollectionApplyDto dto) {
String dtoSid = dto.getSid();
List<LoanBeCollectionVehDto> loanBeCollectionVehDetails = dto.getLoanBeCollectionVehDetails();
List<LoanBeCollectionFileVo> files = dto.getFiles();
@ -233,7 +260,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
}
}
}
return;
return sid;
}
this.updateByDto(dto);
loanFileService.delByLinkSidOrType(dtoSid,LoanFileEnum.BECOLLECTIONAPPLY.getAttachType());
@ -270,6 +297,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
}
}
}
return dtoSid;
}
public String insertByDto(LoanBeCollectionApplyDto dto) {
@ -441,4 +469,295 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
loanBeCollectionApplyDetailsVo.setLoanBeCollectionVehDetails(loanBeCollectionVehDetailsVos);
return loanBeCollectionApplyDetailsVo;
}
public ResultBean submit(SubmitLoanBeCollectionApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanBeCollectionApply loanBeCollectionApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanBeCollectionApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
String businessSid = saveOrUpdateDto(dto);
loanBeCollectionApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
bv.setOrgSidPath(loanBeCollectionApply.getOrgPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(loanBeCollectionApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.BECOLLECTIONAPPLY.getProDefId());
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
loanBeCollectionApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("催收措施申请");
messageFlowableQuery.setMsgContent(loanBeCollectionApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("催收措施申请");
messageFeign.pushMessage(messageFlowableQuery);
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(loanBeCollectionApply.getTaskId());
bv.setTaskDefKey(loanBeCollectionApply.getNodeSid());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getPreviousNodesForReject(LoanBeCollectionApplyNodeQuery query) {
ResultBean<List<LoanBeCollectionApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BECOLLECTIONAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanBeCollectionApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanBeCollectionApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LoanBeCollectionApplyNodeVo>> getNextNodesForSubmit(LoanBeCollectionApplyNodeQuery query) {
ResultBean<List<LoanBeCollectionApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BECOLLECTIONAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanBeCollectionApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanBeCollectionApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(LoanBeCollectionApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanBeCollectionApply loanBeCollectionApply = fetchBySid(businessSid);
if (loanBeCollectionApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanBeCollectionApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
loanBeCollectionApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanBeCollectionApply.getProcInstSid();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(loanBeCollectionApply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("催收措施申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(loanBeCollectionApply.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(loanBeCollectionApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("催收措施申请");
messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(LoanBeCollectionApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanBeCollectionApply loanBeCollectionApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanBeCollectionApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> 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 breakProcess(LoanBeCollectionApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
LoanBeCollectionApply loanBeCollectionApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanBeCollectionApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanBeCollectionApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(LoanBeCollectionApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanBeCollectionApply loanBeCollectionApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
if (StringUtils.isBlank(loanBeCollectionApply.getProcDefId())) {
flowProcessMapQuery.setProDefKey(bv.getModelId());
} else {
flowProcessMapQuery.setProDefKey(loanBeCollectionApply.getProcDefId());
}
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
//=======================================
bv.setFormVariables(variables);
bv.setOrgSidPath(loanBeCollectionApply.getOrgPath());
if (bv.getTaskId().equals(loanBeCollectionApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
loanBeCollectionApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(loanBeCollectionApply.getProcDefId());
ufVo.setProcInsId(loanBeCollectionApply.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("催收措施申请");
messageFlowableQuery.setMsgContent(loanBeCollectionApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("催收措施申请");
messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
private synchronized int submitBusinessData(SubmitLoanBeCollectionApplyDto dto, LoanBeCollectionApply loanBeCollectionApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanBeCollectionApply != null) {
String businessTaskId = loanBeCollectionApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
}
Loading…
Cancel
Save