Browse Source

垫款申请流程接口开发

master
God 2 years ago
parent
commit
de47e88595
  1. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 32
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java
  3. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereCompleteDto.java
  4. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereNodeQuery.java
  5. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereNodeVo.java
  6. 48
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereTaskQuery.java
  7. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/SubmitLoanBePadsincereDto.java
  8. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.java
  9. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.xml
  10. 42
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  11. 332
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  12. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

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

@ -63,6 +63,7 @@ public enum ProcDefEnum {
BUSSOLUTIONSCHANGE("金融方案变更", "process_x6edjfoj:2:6055008"),
LOANBUCKLEAPPLLY("划扣申请", "process_50xtaucg:1:6757504"),
COLLECTIONPAYMENT("代收代付申请", "process_6upfyv8i:1:6972504"),
BEPADSINCEREAPPLY("逾期垫款申请", "process_h1mcb548:1:6712504"),
/******************************测试流程id*********************************************/

32
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java

@ -25,6 +25,8 @@
*********************************************************/
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply;
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo;
import io.swagger.annotations.Api;
@ -33,10 +35,12 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
@ -86,4 +90,32 @@ public interface LoanBePadsincereApplyFeign {
@PostMapping("/getExcelInfo")
@ResponseBody
public ResultBean<List<LoanBePadsincereVehDetailsVo>> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException, ParseException;
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitLoanBePadsincereDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody LoanBePadsincereCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap LoanBePadsincereNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap LoanBePadsincereNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody LoanBePadsincereTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody LoanBePadsincereTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody LoanBePadsincereTaskQuery query);
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereCompleteDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class LoanBePadsincereCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
private String orgPath;
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereNodeQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:04
* @Description
*/
@Data
public class LoanBePadsincereNodeQuery implements Query {
private static final long serialVersionUID = 9117613683840483366L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
private Integer next;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:03
* @Description
*/
@Data
public class LoanBePadsincereNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

48
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/LoanBePadsincereTaskQuery.java

@ -0,0 +1,48 @@
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:06
* @Description
*/
@Data
public class LoanBePadsincereTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@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(PC)")
private String instanceId;
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/flowable/SubmitLoanBePadsincereDto.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitLoanBePadsincereDto extends LoanBePadsincereApplyDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApply;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyVo;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-riskcenter(垫款申请) <br/>
@ -62,4 +63,6 @@ public interface LoanBePadsincereApplyMapper extends BaseMapper<LoanBePadsincere
@Select("select * from loan_be_padsincere_apply")
List<LoanBePadsincereApplyVo> selectListVo();
int updateFlowFiled(Map<String, Object> map);
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyMapper.xml

@ -10,4 +10,19 @@
<select id="selectListAllVo" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyVo">
SELECT * FROM loan_be_padsincere_apply <where> ${ew.sqlSegment} </where>
</select>
<update id="updateFlowFiled">
UPDATE loan_be_padsincere_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>

42
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java

@ -25,9 +25,13 @@
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loanbepadsincereapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo;
@ -119,4 +123,42 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign {
public ResultBean<List<LoanBePadsincereVehDetailsVo>> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException {
return loanBePadsincereApplyService.getExcelInfo(file, request);
}
@Override
public ResultBean submit(SubmitLoanBePadsincereDto dto) {
return loanBePadsincereApplyService.submit(dto);
}
@Override
public ResultBean complete(LoanBePadsincereCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BEPADSINCEREAPPLY.getProDefId());
return loanBePadsincereApplyService.complete(bv);
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(LoanBePadsincereNodeQuery query) {
return loanBePadsincereApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(LoanBePadsincereNodeQuery query) {
return loanBePadsincereApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean reject(LoanBePadsincereTaskQuery query) {
return loanBePadsincereApplyService.reject(query);
}
@Override
public ResultBean revokeProcess(LoanBePadsincereTaskQuery query) {
return loanBePadsincereApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(LoanBePadsincereTaskQuery query) {
return loanBePadsincereApplyService.breakProcess(query);
}
}

332
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -26,19 +26,34 @@
package com.yxt.anrui.riskcenter.biz.loanbepadsincereapply;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.BusValcustFilingNodeVo;
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.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.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.LoanBePadsincereNodeQuery;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.LoanBePadsincereNodeVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.LoanBePadsincereTaskQuery;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.SubmitLoanBePadsincereDto;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanCreateScheduleVinsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService;
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;
@ -60,13 +75,10 @@ import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-riskcenter(垫款申请) <br/>
@ -92,6 +104,12 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
private LoanRepaymentScheduleService loanRepaymentScheduleService;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<LoanBePadsincereApplyVo> listPageVo(PagerQuery<LoanBePadsincereApplyQuery> pq) {
LoanBePadsincereApplyQuery query = pq.getParams();
@ -154,19 +172,22 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
return p;
}
public void saveOrUpdateDto(LoanBePadsincereApplyDto dto) {
public ResultBean<String> saveOrUpdateDto(LoanBePadsincereApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
String sid = this.insertByDto(dto);
return rb.success().setData(sid);
}
this.updateByDto(dto);
return rb.success().setData(dtoSid);
}
public void insertByDto(LoanBePadsincereApplyDto dto) {
public String insertByDto(LoanBePadsincereApplyDto dto) {
LoanBePadsincereApply entity = new LoanBePadsincereApply();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
return entity.getSid();
}
public void updateByDto(LoanBePadsincereApplyDto dto) {
@ -423,4 +444,291 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
}
return obj;
}
public ResultBean submit(SubmitLoanBePadsincereDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanBePadsincereApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveOrUpdateDto(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanBePadsincereApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
bv.setOrgSidPath(loanBePadsincereApply.getOrgPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(loanBePadsincereApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.BEPADSINCEREAPPLY.getProDefId());
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
loanBePadsincereApply = 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(loanBePadsincereApply.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(loanBePadsincereApply.getTaskId());
bv.setTaskDefKey(loanBePadsincereApply.getNodeSid());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private synchronized int submitBusinessData(SubmitLoanBePadsincereDto dto, LoanBePadsincereApply loanBePadsincereApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanBePadsincereApply != null) {
String businessTaskId = loanBePadsincereApply.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);
}
public ResultBean<List<LoanBePadsincereNodeVo>> getPreviousNodesForReject(LoanBePadsincereNodeQuery query) {
ResultBean<List<LoanBePadsincereNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BEPADSINCEREAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanBePadsincereNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanBePadsincereNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LoanBePadsincereNodeVo>> getNextNodesForSubmit(LoanBePadsincereNodeQuery query) {
ResultBean<List<LoanBePadsincereNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BEPADSINCEREAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanBePadsincereNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanBePadsincereNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(LoanBePadsincereTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(businessSid);
if (loanBePadsincereApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanBePadsincereApply.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);
//极光推送
loanBePadsincereApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanBePadsincereApply.getProcInstSid();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(loanBePadsincereApply.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(loanBePadsincereApply.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(loanBePadsincereApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("逾期垫款申请");
messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(LoanBePadsincereTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanBePadsincereApply.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 complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanBePadsincereApply loanBePadsincereApply = 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(loanBePadsincereApply.getProcDefId())) {
flowProcessMapQuery.setProDefKey(bv.getModelId());
} else {
flowProcessMapQuery.setProDefKey(loanBePadsincereApply.getProcDefId());
}
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
//=======================================
bv.setFormVariables(variables);
bv.setOrgSidPath(loanBePadsincereApply.getOrgPath());
if (bv.getTaskId().equals(loanBePadsincereApply.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 {
//极光推送
loanBePadsincereApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(loanBePadsincereApply.getProcDefId());
ufVo.setProcInsId(loanBePadsincereApply.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("逾期垫款申请");
messageFlowableQuery.setMsgContent(loanBePadsincereApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("逾期垫款申请");
messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean breakProcess(LoanBePadsincereTaskQuery 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("请填写意见");
}
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanBePadsincereApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanBePadsincereApply.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("操作失败!提交的数据不一致!");
}
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

@ -362,10 +362,10 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
String urlAllVo = "";
List<File> filesList = new ArrayList<>();
//贷款人生成车辆买卖合同
/*List<File> xcmmContractUrls = commonContractFeign.xcmmContract(printConfirmDto).getData();
List<File> xcmmContractUrls = commonContractFeign.xcmmContract(printConfirmDto).getData();
for (File xcmmContractUrl : xcmmContractUrls) {
filesList.add(xcmmContractUrl);
}*/
}
if (conSetUpKey.equals("001")) {//一车一合同
for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) {
List<SalesOrderVehicle> salesOrderVehicles = new ArrayList<>();
@ -392,7 +392,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
busSalesOrderLoancontractDto.setBusName("资方终审确认");
String loanContractSid = busSalesOrderLoancontractFeign.save(busSalesOrderLoancontractDto).getData();
busSalesOrderVehicleFeign.updateXDCon(busSalesOrderVehicle.getSid(), loanContractSid);
/*//生成车辆融资协议
//生成车辆融资协议
String clrzxyUrl = generateCLRZXY(printConfirmDto);
//生成还款协议
String hkxyUrl = hkxy(printConfirmDto);
@ -421,7 +421,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
if (StringUtils.isNotBlank(gsgddwdbjy)) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + gsgddwdbjy);
filesList.add(file);
}*/
}
}
} else if (conSetUpKey.equals("002")) {//一人一合同
List<SalesOrderVehicle> salesOrderVehicles = new ArrayList<>();
@ -452,7 +452,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) {
busSalesOrderVehicleFeign.updateXDCon(busSalesOrderVehicle.getSid(), loanContractSid);
}
/* //生成车辆融资协议
//生成车辆融资协议
String clrzxyUrl = generateCLRZXY(printConfirmDto);
//生成还款协议
String hkxy = hkxy(printConfirmDto);
@ -481,7 +481,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
if (StringUtils.isNotBlank(gsgddwdbjy)) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + gsgddwdbjy);
filesList.add(file);
}*/
}
}
//合并pdf文件
if (filesList.size() > 0) {

Loading…
Cancel
Save