|
|
@ -23,6 +23,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedR |
|
|
|
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; |
|
|
@ -32,6 +33,8 @@ 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.dictcommon.DictCommonFeign; |
|
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; |
|
|
|
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
@ -145,6 +148,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
private LoanBucklePlanHistoryService loanBucklePlanHistoryService; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentScheduleService loanRepaymentScheduleService; |
|
|
|
@Autowired |
|
|
|
private DictCommonFeign dictCommonFeign; |
|
|
|
|
|
|
|
public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) { |
|
|
|
IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq); |
|
|
@ -778,7 +783,10 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) { |
|
|
|
voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney())); |
|
|
|
} |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){ |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -912,6 +920,228 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void pushBuckleVoucherNew(String businessSid) { |
|
|
|
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid); |
|
|
|
if (!records.isEmpty()) { |
|
|
|
GeneralVoucher generalVoucher = new GeneralVoucher();//月还划扣
|
|
|
|
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>(); |
|
|
|
Voucher voucher = new Voucher();//直还划扣
|
|
|
|
List<Voucher.VoucherResultDetailDto> voucherDetails2 = new ArrayList<>(); |
|
|
|
for (LoanBuckleApplyRecord v : records) { |
|
|
|
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid()); |
|
|
|
if (null != planDetails) { |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); |
|
|
|
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){//正常
|
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
// oweState 是否转累欠状态(0是,1否)
|
|
|
|
Integer oweState = planDetails.getOweState(); |
|
|
|
if (oweState == 1) { |
|
|
|
//获取收款日期的当月最后一天
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|
|
|
LocalDate localDate = LocalDate.parse(DateUtil.formatDate(new Date()), formatter); |
|
|
|
LocalDate date = localDate.withDayOfMonth(localDate.lengthOfMonth()); |
|
|
|
Date dueDate = planDetails.getDueDate(); //应还日期
|
|
|
|
// Date -> LocalDate
|
|
|
|
LocalDate localDueDate = dueDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
|
boolean after = localDueDate.isAfter(date); |
|
|
|
if (after) { |
|
|
|
voucherDetail.setSceneCode("15"); |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("01"); |
|
|
|
} |
|
|
|
} else if (oweState == 0) { |
|
|
|
List<FinUncollectedReceivablesDetailedJR> jrList = baseMapper.selFinJrList(planDetails.getSid()); |
|
|
|
if (null != jrList) { |
|
|
|
if (jrList.size() > 0) { |
|
|
|
voucherDetail.setSceneCode("03"); |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("02"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("02"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(planDetails.getBankName())) { |
|
|
|
String bankName = planDetails.getBankName(); |
|
|
|
voucherDetail.setBankName(bankName); |
|
|
|
} |
|
|
|
String useOrgSid = planDetails.getUseOrgSid(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid()); |
|
|
|
if (null != schedule) { |
|
|
|
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { |
|
|
|
voucherDetail.setDeptCode(schedule.getCwDeptNo()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
voucherDetail.setAmount(v.getActualMoney()); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
}else{ |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
voucher.setAccountBook(organizationVo.getOrgCode()); |
|
|
|
voucher.setVoucherNo(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
String customerNumber = ""; |
|
|
|
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); |
|
|
|
if (null != busSalesOrderVehicle && salesOrder != null) { |
|
|
|
|
|
|
|
//判断财务系统是否有客户
|
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); |
|
|
|
String linkNo = ""; |
|
|
|
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); |
|
|
|
if (!aBoolean) { |
|
|
|
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()); |
|
|
|
} |
|
|
|
} |
|
|
|
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
customerNumber = bdCustomer.getFNumber(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
customerNumber = busSalesOrderVehicle.getTemporaryNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
String deptCode = ""; |
|
|
|
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid()); |
|
|
|
if (null != schedule) { |
|
|
|
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { |
|
|
|
deptCode = schedule.getCwDeptNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(planDetails.getBankName())) { |
|
|
|
//借方
|
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); |
|
|
|
String bankName = planDetails.getBankName(); |
|
|
|
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(bankName, "investorsCode").getData(); |
|
|
|
if (null != dictCommonVo) { |
|
|
|
voucherResultDetailDtoJf.setSubjectNo(dictCommonVo.getDictValue()); |
|
|
|
} |
|
|
|
voucherResultDetailDtoJf.setSummary(bankName+"划扣"); |
|
|
|
voucherResultDetailDtoDf.setSummary(bankName+"划扣"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("1201.03.01"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf.setDimensionDept(deptCode); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoJf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoJf.setDebit(v.getActualMoney().toString()); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoDf.setDimensionDept(deptCode); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoDf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoDf.setCredit(v.getActualMoney().toString()); |
|
|
|
voucherDetails2.add(voucherResultDetailDtoJf); |
|
|
|
voucherDetails2.add(voucherResultDetailDtoDf); |
|
|
|
} |
|
|
|
|
|
|
|
boolean isTrue = false; |
|
|
|
List<FinUncollectedReceivablesDetailedJR> jrList = baseMapper.selFinJrList(planDetails.getSid()); |
|
|
|
if (null != jrList) { |
|
|
|
if (jrList.size() > 0) { |
|
|
|
isTrue = true; |
|
|
|
} |
|
|
|
} |
|
|
|
if(isTrue){ |
|
|
|
//借方
|
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoJf.setSummary(planDetails.getBankName()+"划扣"); |
|
|
|
voucherResultDetailDtoJf.setSubjectNo("1133.10.20"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf.setDimensionDept(deptCode); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoJf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoJf.setDebit(v.getActualMoney().toString()); |
|
|
|
voucherDetails2.add(voucherResultDetailDtoJf); |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); |
|
|
|
voucherResultDetailDtoDf.setSummary(planDetails.getBankName()+"划扣"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("1201.03.01"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoDf.setDimensionDept(deptCode); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoDf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoDf.setDebit(v.getActualMoney().toString()); |
|
|
|
voucherDetails2.add(voucherResultDetailDtoDf); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(!voucherDetails.isEmpty()){ |
|
|
|
generalVoucher.setVoucherDetails(voucherDetails); |
|
|
|
finKingDeeFeign.saveBuckleVoucher(generalVoucher); |
|
|
|
} |
|
|
|
if(!voucherDetails2.isEmpty()){ |
|
|
|
voucher.setResultDetails(voucherDetails2); |
|
|
|
finKingDeeFeign.saveVoucher(voucher); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ResultBean revokeProcess(BuckleTaskQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|