|
|
@ -26,16 +26,41 @@ |
|
|
|
package com.yxt.anrui.riskcenter.biz.loancreditappealapply; |
|
|
|
|
|
|
|
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.base.api.basetrailer.BaseTrailerDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
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.utils.ProcDefEnum; |
|
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
|
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.loancreditappealapply.flowable.LoanCreditApplyNodeQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyNodeVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyTaskQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.SubmitLoanCreditApplyDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyDetailsVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyVo; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanpreloancreditapply.LoanPreloanCreditApplyService; |
|
|
|
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; |
|
|
@ -52,7 +77,9 @@ import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyF |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* Project: anrui-riskcenter(信用审核申诉) <br/> |
|
|
@ -70,174 +97,380 @@ import java.util.List; |
|
|
|
@Service |
|
|
|
public class LoanCreditAppealApplyService extends MybatisBaseService<LoanCreditAppealApplyMapper, LoanCreditAppealApply> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
|
@Autowired |
|
|
|
private LoanCreditAppealPeoService loanCreditAppealPeoService; |
|
|
|
@Autowired |
|
|
|
private CommonAppendixFeign commonAppendixFeign; |
|
|
|
@Autowired |
|
|
|
private FileUploadComponent fileUploadComponent; |
|
|
|
|
|
|
|
public PagerVo<LoanCreditAppealApplyVo> listPageVo(PagerQuery<LoanCreditAppealApplyQuery> pq) { |
|
|
|
LoanCreditAppealApplyQuery query = pq.getParams(); |
|
|
|
QueryWrapper<LoanCreditAppealApply> qw = new QueryWrapper<>(); |
|
|
|
if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { |
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgSidPath()); |
|
|
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
|
|
|
privilegeQuery.setMenuSid(query.getMenuSid()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgSidPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("lc.createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getApplyDeptName())) { |
|
|
|
qw.like("lc.applyDeptName", query.getApplyDeptName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCreateByName())) { |
|
|
|
qw.like("lc.createByName", query.getCreateByName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getModelName())) { |
|
|
|
qw.like("lp.modelName", query.getModelName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCustTypeValue())) { |
|
|
|
qw.like("lp.custTypeValue", query.getCustTypeValue()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getKhqyName())) { |
|
|
|
qw.and(wrapper -> wrapper.like("lp.custName", query.getKhqyName()).or().like("lp.qyName", query.getKhqyName())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getIdCard())) { |
|
|
|
qw.like("lp.idCard", query.getIdCard()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getPhone())) { |
|
|
|
qw.like("lp.phone", query.getPhone()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGsfkjg())) { |
|
|
|
qw.like("lp.gsfkjg", query.getGsfkjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getZffkjg())) { |
|
|
|
qw.like("lp.zffkjg", query.getZffkjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSsjg())) { |
|
|
|
qw.like("lp.ssjg", query.getSsjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getName())) { |
|
|
|
} |
|
|
|
IPage<LoanCreditAppealApply> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<LoanCreditAppealApplyVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean saveOrUpdateDto(LoanCreditAppealApplyDto dto){ |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
|
@Autowired |
|
|
|
private LoanCreditAppealPeoService loanCreditAppealPeoService; |
|
|
|
@Autowired |
|
|
|
private CommonAppendixFeign commonAppendixFeign; |
|
|
|
@Autowired |
|
|
|
private FileUploadComponent fileUploadComponent; |
|
|
|
@Autowired |
|
|
|
private LoanPreloanCreditApplyService loanPreloanCreditApplyService; |
|
|
|
@Autowired |
|
|
|
private FlowableFeign flowableFeign; |
|
|
|
@Autowired |
|
|
|
private MessageFeign messageFeign; |
|
|
|
@Autowired |
|
|
|
private FlowTaskFeign flowTaskFeign; |
|
|
|
|
|
|
|
public PagerVo<LoanCreditAppealApplyVo> listPageVo(PagerQuery<LoanCreditAppealApplyQuery> pq) { |
|
|
|
LoanCreditAppealApplyQuery query = pq.getParams(); |
|
|
|
QueryWrapper<LoanCreditAppealApply> qw = new QueryWrapper<>(); |
|
|
|
if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { |
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgSidPath()); |
|
|
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
|
|
|
privilegeQuery.setMenuSid(query.getMenuSid()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgSidPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("lc.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("lc.createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getUseOrgName())) { |
|
|
|
qw.like("lc.useOrgName", query.getUseOrgName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getApplyDeptName())) { |
|
|
|
qw.like("lc.applyDeptName", query.getApplyDeptName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCreateByName())) { |
|
|
|
qw.like("lc.createByName", query.getCreateByName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getModelName())) { |
|
|
|
qw.like("lp.modelName", query.getModelName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCustTypeValue())) { |
|
|
|
qw.like("lp.custTypeValue", query.getCustTypeValue()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getKhqyName())) { |
|
|
|
qw.and(wrapper -> wrapper.like("lp.custName", query.getKhqyName()).or().like("lp.qyName", query.getKhqyName())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getIdCard())) { |
|
|
|
qw.like("lp.idCard", query.getIdCard()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getPhone())) { |
|
|
|
qw.like("lp.phone", query.getPhone()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGsfkjg())) { |
|
|
|
qw.like("lp.gsfkjg", query.getGsfkjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getZffkjg())) { |
|
|
|
qw.like("lp.zffkjg", query.getZffkjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSsjg())) { |
|
|
|
qw.like("lp.ssjg", query.getSsjg()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getName())) { |
|
|
|
} |
|
|
|
IPage<LoanCreditAppealApply> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<LoanCreditAppealApplyVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
PagerVo<LoanCreditAppealApplyVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveOrUpdateDto(LoanCreditAppealApplyDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String dtoSid = dto.getSid(); |
|
|
|
List<LoanCreditAppealPeoDto> loanCreditAppealPeos = dto.getLoanCreditAppealPeos(); |
|
|
|
List<String> ssImages = dto.getSsImages(); |
|
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
|
String sid = this.insertByDto(dto); |
|
|
|
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { |
|
|
|
loanCreditAppealPeo.setMainSid(sid); |
|
|
|
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); |
|
|
|
} |
|
|
|
for (String ssImage : ssImages) { |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|
|
|
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
} |
|
|
|
commonAppendixDto.setLinkSid(sid); |
|
|
|
commonAppendixDto.setFilePath(ssImage); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
this.updateByDto(dto); |
|
|
|
loanCreditAppealPeoService.delByMainSid(dtoSid); |
|
|
|
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { |
|
|
|
loanCreditAppealPeo.setMainSid(dtoSid); |
|
|
|
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); |
|
|
|
} |
|
|
|
commonAppendixFeign.deleteFiles(dtoSid); |
|
|
|
for (String ssImage : ssImages) { |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|
|
|
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
} |
|
|
|
commonAppendixDto.setLinkSid(dtoSid); |
|
|
|
commonAppendixDto.setFilePath(ssImage); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
return rb.success().setData(dtoSid); |
|
|
|
} |
|
|
|
|
|
|
|
public String insertByDto(LoanCreditAppealApplyDto dto) { |
|
|
|
LoanCreditAppealApply entity = new LoanCreditAppealApply(); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
entity.setNodeState("待提交"); |
|
|
|
baseMapper.insert(entity); |
|
|
|
return entity.getSid(); |
|
|
|
} |
|
|
|
|
|
|
|
public void updateByDto(LoanCreditAppealApplyDto dto) { |
|
|
|
String dtoSid = dto.getSid(); |
|
|
|
List<LoanCreditAppealPeoDto> loanCreditAppealPeos = dto.getLoanCreditAppealPeos(); |
|
|
|
List<String> ssImages = dto.getSsImages(); |
|
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
|
String sid = this.insertByDto(dto); |
|
|
|
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { |
|
|
|
loanCreditAppealPeo.setMainSid(sid); |
|
|
|
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); |
|
|
|
} |
|
|
|
for (String ssImage : ssImages) { |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|
|
|
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
} |
|
|
|
commonAppendixDto.setLinkSid(sid); |
|
|
|
commonAppendixDto.setFilePath(ssImage); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
this.updateByDto(dto); |
|
|
|
loanCreditAppealPeoService.delByMainSid(dtoSid); |
|
|
|
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) { |
|
|
|
loanCreditAppealPeo.setMainSid(dtoSid); |
|
|
|
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo); |
|
|
|
} |
|
|
|
commonAppendixFeign.deleteFiles(dtoSid); |
|
|
|
for (String ssImage : ssImages) { |
|
|
|
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|
|
|
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|
|
|
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
} |
|
|
|
commonAppendixDto.setLinkSid(dtoSid); |
|
|
|
commonAppendixDto.setFilePath(ssImage); |
|
|
|
commonAppendixFeign.save(commonAppendixDto); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public String insertByDto(LoanCreditAppealApplyDto dto){ |
|
|
|
LoanCreditAppealApply entity = new LoanCreditAppealApply(); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
entity.setNodeState("待提交"); |
|
|
|
baseMapper.insert(entity); |
|
|
|
return entity.getSid(); |
|
|
|
} |
|
|
|
|
|
|
|
public void updateByDto(LoanCreditAppealApplyDto dto){ |
|
|
|
String dtoSid = dto.getSid(); |
|
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
|
return; |
|
|
|
} |
|
|
|
LoanCreditAppealApply entity = fetchBySid(dtoSid); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
baseMapper.updateById(entity); |
|
|
|
} |
|
|
|
|
|
|
|
public LoanCreditAppealApplyDetailsVo fetchDetailsVoBySid(String sid){ |
|
|
|
LoanCreditAppealApply entity = fetchBySid(sid); |
|
|
|
LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); |
|
|
|
BeanUtil.copyProperties(entity, vo); |
|
|
|
return vo; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean delAll(String[] sids) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
} |
|
|
|
delBySids(sids); |
|
|
|
for (String sid : sids) { |
|
|
|
commonAppendixFeign.deleteFiles(sid); |
|
|
|
loanCreditAppealPeoService.delByMainSid(sid); |
|
|
|
} |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
|
} |
|
|
|
LoanCreditAppealApply entity = fetchBySid(dtoSid); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
baseMapper.updateById(entity); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<LoanCreditAppealApplyDetailsVo> fetchDetailsVoBySid(String sid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
LoanCreditAppealApply entity = fetchBySid(sid); |
|
|
|
LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); |
|
|
|
BeanUtil.copyProperties(entity, vo); |
|
|
|
String creditApplySid = entity.getCreditApplySid(); |
|
|
|
LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(creditApplySid); |
|
|
|
vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo); |
|
|
|
List<LoanCreditAppealPeoDetailsVo> loanCreditAppealPeoDetailsVos = loanCreditAppealPeoService.fetchByMainSid(sid); |
|
|
|
vo.setLoanCreditAppealPeos(loanCreditAppealPeoDetailsVos); |
|
|
|
List<CommonAppendixVo> data = commonAppendixFeign.selByLinkSid(sid).getData(); |
|
|
|
List<String> ssImages = new ArrayList<>(); |
|
|
|
for (CommonAppendixVo datum : data) { |
|
|
|
ssImages.add(datum.getFilePath()); |
|
|
|
} |
|
|
|
vo.setSsImages(ssImages); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ResultBean<LoanCreditAppealApplyDetailsVo> init(String sid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo(); |
|
|
|
LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(sid); |
|
|
|
vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean delAll(String[] sids) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
} |
|
|
|
delBySids(sids); |
|
|
|
for (String sid : sids) { |
|
|
|
commonAppendixFeign.deleteFiles(sid); |
|
|
|
loanCreditAppealPeoService.delByMainSid(sid); |
|
|
|
} |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
LoanCreditAppealApply loanCreditAppealApply = fetchBySid(dto.getSid()); |
|
|
|
int r = submitBusinessData(dto, loanCreditAppealApply); |
|
|
|
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(); |
|
|
|
//创建BusinessVariables实体对象
|
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
|
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//用户的部门全路径sid
|
|
|
|
bv.setOrgSidPath(dto.getOrgSidPath()); |
|
|
|
//业务sid
|
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
//用户sid
|
|
|
|
bv.setUserSid(dto.getCreateBySid()); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
|
//流程定义id
|
|
|
|
bv.setModelId(ProcDefEnum.LOANCREDITAPPEALAPPLY.getProDefId()); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
if (r == 1) { |
|
|
|
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv); |
|
|
|
UpdateFlowFieldVo ufVo = voResultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(ufVo)); |
|
|
|
//极光推送
|
|
|
|
loanCreditAppealApply = 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(loanCreditAppealApply.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(loanCreditAppealApply.getTaskId()); |
|
|
|
bv.setTaskDefKey(loanCreditAppealApply.getNodeSid()); |
|
|
|
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); |
|
|
|
bv.setInstanceId(dto.getInstanceId()); |
|
|
|
return complete(bv); |
|
|
|
} |
|
|
|
return rb; |
|
|
|
} |
|
|
|
|
|
|
|
private int updateFlowFiled(Map<String, Object> map) { |
|
|
|
return baseMapper.updateFlowFiled(map); |
|
|
|
} |
|
|
|
|
|
|
|
private synchronized int submitBusinessData(SubmitLoanCreditApplyDto dto, LoanCreditAppealApply loanCreditAppealApply) { |
|
|
|
int r = 0; |
|
|
|
if (StringUtils.isBlank(dto.getSid())) { |
|
|
|
r = 1; |
|
|
|
} else { |
|
|
|
if (loanCreditAppealApply != null) { |
|
|
|
String businessTaskId = loanCreditAppealApply.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; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean complete(BusinessVariables bv) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String businessSid = bv.getBusinessSid(); |
|
|
|
LoanCreditAppealApply loanCreditAppealApply = 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(loanCreditAppealApply.getProcDefId())){ |
|
|
|
flowProcessMapQuery.setProDefKey(bv.getModelId()); |
|
|
|
}else { |
|
|
|
flowProcessMapQuery.setProDefKey(loanCreditAppealApply.getProcDefId()); |
|
|
|
} |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
//=======================================
|
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setOrgSidPath(loanCreditAppealApply.getOrgSidPath()); |
|
|
|
if (bv.getTaskId().equals(loanCreditAppealApply.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 { |
|
|
|
//极光推送
|
|
|
|
loanCreditAppealApply = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
ufVo.setProcDefId(loanCreditAppealApply.getProcDefId()); |
|
|
|
ufVo.setProcInsId(loanCreditAppealApply.getProcInstSid()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("信用审核申诉"); |
|
|
|
messageFlowableQuery.setMsgContent(loanCreditAppealApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("信用审核申诉"); |
|
|
|
messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<List<LoanCreditApplyNodeVo>> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) { |
|
|
|
ResultBean<List<LoanCreditApplyNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<LoanCreditApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<List<LoanCreditApplyNodeVo>> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) { |
|
|
|
ResultBean<List<LoanCreditApplyNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<LoanCreditApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean reject(LoanCreditApplyTaskQuery query) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean breakProcess(LoanCreditApplyTaskQuery query) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
} |