|
|
@ -50,6 +50,7 @@ import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryService; |
|
|
@ -603,22 +604,6 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
//流程中的参数赋值
|
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//若有网关,则赋值网关中判断的字段。
|
|
|
|
// boolean isTure = true;
|
|
|
|
// //去查询是否同意
|
|
|
|
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
|
|
|
|
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
|
|
|
|
// isTure = false;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// variables.put("isTure", isTure);
|
|
|
|
// if (bv.getTaskDefKey().equals("Activity_1078xxs")) {
|
|
|
|
// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) {
|
|
|
|
// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid());
|
|
|
|
// } else {
|
|
|
|
// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
@ -627,6 +612,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
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())) { |
|
|
|
LoanBuckleApply buckleApply = fetchBySid(businessSid); |
|
|
@ -651,27 +637,118 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("demo-pool-%d").build(); |
|
|
|
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10, |
|
|
|
1000, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); |
|
|
|
//推送划扣凭证
|
|
|
|
Future future = pool.submit(() -> { |
|
|
|
pushBuckleVoucher(businessSid); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("推送数据失败=========================" + e.getMessage()); |
|
|
|
return rb.setMsg("推送数据失败"); |
|
|
|
} |
|
|
|
//推送划扣凭证
|
|
|
|
pushBuckleVoucher(businessSid); |
|
|
|
//推送转累欠凭证
|
|
|
|
pushLaterBuckleVoucher(businessSid); |
|
|
|
} else { |
|
|
|
//极光推送
|
|
|
|
loanBuckleApply = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowVo.setProcDefId(loanBuckleApply.getProcDefId()); |
|
|
|
messageFlowVo.setProcInsId(loanBuckleApply.getProcInstId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("划扣申请"); |
|
|
|
messageFlowableQuery.setMsgContent(loanBuckleApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("划扣申请"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
} |
|
|
|
private void pushLaterBuckleVoucher(String businessSid) { |
|
|
|
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid); |
|
|
|
if (!records.isEmpty()) { |
|
|
|
List<String> planSids = new ArrayList<>(); |
|
|
|
List<String> finalPlanSids = new ArrayList<>(); |
|
|
|
records.stream().forEach(r -> { |
|
|
|
planSids.add(r.getRepaymentHistorySid()); |
|
|
|
}); |
|
|
|
if (!planSids.isEmpty()) { |
|
|
|
List<LoanPlanDetailsVoForLateVoucher> vouchers = loanRepaymentPlanDetailsService.selPushLaterVoucherOnBuckle(planSids); |
|
|
|
if (!vouchers.isEmpty()) { |
|
|
|
GeneralVoucher generalVoucher = new GeneralVoucher(); |
|
|
|
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>(); |
|
|
|
for (LoanPlanDetailsVoForLateVoucher planDetails : vouchers) { |
|
|
|
finalPlanSids.add(planDetails.getPlanSid()); |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
if (StringUtils.isNotBlank(planDetails.getUseOrgSid())) { |
|
|
|
String useOrgSid = planDetails.getUseOrgSid(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(planDetails.getDeptSid())) { |
|
|
|
String deptSid = planDetails.getDeptSid(); |
|
|
|
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); |
|
|
|
if (null != organizationDeptVo) { |
|
|
|
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); |
|
|
|
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); |
|
|
|
if (null != salesOrder) { |
|
|
|
if (null != busSalesOrderVehicle) { |
|
|
|
String customerNumber = ""; |
|
|
|
//判断财务系统是否有客户
|
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); |
|
|
|
String linkNo = ""; |
|
|
|
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); |
|
|
|
if (!aBoolean) { |
|
|
|
// List<BdCustomer> bdCustomers = new ArrayList<>();
|
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); |
|
|
|
bdCustomer.setFShortName(salesOrder.getContractNo()); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(data.getOrgCode()); |
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { |
|
|
|
String vinNo = busSalesOrderVehicle.getLinkNo(); |
|
|
|
if (vinNo.length() > 8) { |
|
|
|
linkNo = vinNo.substring(vinNo.length() - 8); |
|
|
|
} else { |
|
|
|
linkNo = busSalesOrderVehicle.getLinkNo(); |
|
|
|
} |
|
|
|
if (null != borrowerDetailsVo) { |
|
|
|
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (null != borrowerDetailsVo) { |
|
|
|
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); |
|
|
|
} |
|
|
|
} |
|
|
|
// bdCustomers.add(bdCustomer);
|
|
|
|
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
customerNumber = bdCustomer.getFNumber(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
customerNumber = busSalesOrderVehicle.getTemporaryNo(); |
|
|
|
} |
|
|
|
voucherDetail.setCustomerCode(customerNumber); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) { |
|
|
|
voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney())); |
|
|
|
} |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
|
|
|
|
} |
|
|
|
generalVoucher.setVoucherDetails(voucherDetails); |
|
|
|
finKingDeeFeign.saveLateVoucher(generalVoucher); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!finalPlanSids.isEmpty()) { |
|
|
|
int i = loanRepaymentPlanDetailsService.updateOweState(finalPlanSids); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void pushBuckleVoucher(String businessSid) { |
|
|
|
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid); |
|
|
@ -682,20 +759,20 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid()); |
|
|
|
if (null != planDetails) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(v.getRepaymentHistorySid()); |
|
|
|
if (StringUtils.isNotBlank(state)) { |
|
|
|
if (state.equals("2")) { |
|
|
|
voucherDetail.setSceneCode("01"); |
|
|
|
} else { |
|
|
|
if (v.getPayState() == 1) { |
|
|
|
voucherDetail.setSceneCode("01"); |
|
|
|
// oweState 是否转累欠状态(0是,1否)
|
|
|
|
Integer oweState = planDetails.getOweState(); |
|
|
|
if (oweState == 1) { |
|
|
|
voucherDetail.setSceneCode("01"); |
|
|
|
} else if (oweState == 0) { |
|
|
|
BigDecimal paymentMoney = planDetails.getPaymentMoney(); |
|
|
|
if (null != paymentMoney) { |
|
|
|
if (paymentMoney.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
voucherDetail.setSceneCode("03"); |
|
|
|
} else { |
|
|
|
if (state.equals("0")) { |
|
|
|
voucherDetail.setSceneCode("03"); |
|
|
|
} else if (state.equals("1")) { |
|
|
|
voucherDetail.setSceneCode("02"); |
|
|
|
} |
|
|
|
voucherDetail.setSceneCode("02"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("02"); |
|
|
|
} |
|
|
|
} |
|
|
|
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails); |
|
|
|