|
|
@ -1913,6 +1913,69 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
return rb.success().setMsg("款项确认成功"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ResultBean asCashierConfirm(String sid, String userSid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
FinCollectionConfirmation confirmation = fetchBySid(sid); |
|
|
|
if (confirmation == null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
if (confirmation.getAuditState() == 3) { |
|
|
|
return rb.setMsg("该申请已审核通过,不允许重复操作"); |
|
|
|
} |
|
|
|
if (confirmation.getAuditState() == 2) { |
|
|
|
return rb.setMsg("该申请已驳回,不允许确认"); |
|
|
|
} |
|
|
|
if (confirmation.getAuditState() == 4) { |
|
|
|
return rb.setMsg("该申请已撤回,不允许确认"); |
|
|
|
} |
|
|
|
confirmation.setAuditState(3); |
|
|
|
//与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
|
|
|
|
confirmation.setPaymentState(3); |
|
|
|
baseMapper.updateById(confirmation); |
|
|
|
//查询该申请下的所有待审核的款项明细
|
|
|
|
BigDecimal subscriptionMoneyAll = new BigDecimal("0"); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1); |
|
|
|
if (finSelectedReceivablesDetailedVos.size() > 0) { |
|
|
|
finSelectedReceivablesDetailedVos.stream().forEach(v -> { |
|
|
|
//已选款项明细sid
|
|
|
|
String selectSid = v.getSid(); |
|
|
|
//应收未收款项明细sid
|
|
|
|
String receivablesSid = v.getReceivablesSid(); |
|
|
|
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid); |
|
|
|
if (v.getSubscribedOf() == 0) { |
|
|
|
//更新认款状态
|
|
|
|
finUncollectedReceivablesDetailed.setSubscriptionState(finUncollectedReceivablesDetailed.getCurrentReceivableMoney().compareTo(BigDecimal.ZERO) == 0 ? 3 : 2); |
|
|
|
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed); |
|
|
|
} |
|
|
|
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(selectSid); |
|
|
|
//更新已选款项明细的审核状态1待审核/2已驳回/3已审核
|
|
|
|
finSelectedReceivablesDetailed.setAuditState(3); |
|
|
|
//更新审核时间
|
|
|
|
finSelectedReceivablesDetailed.setAuditDate(DateUtil.today()); |
|
|
|
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed); |
|
|
|
}); |
|
|
|
//查询该申请已认款金额总数
|
|
|
|
subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
} |
|
|
|
confirmation = fetchBySid(sid); |
|
|
|
/* //与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
|
|
|
|
confirmation.setPaymentState(confirmation.getCollectionMoney().compareTo(subscriptionMoneyAll) <= 0 ? 3 : subscriptionMoneyAll.compareTo(BigDecimal.ZERO) == 0 ? 1 : 2);*/ |
|
|
|
//更新收款申请的余额以及审核状态
|
|
|
|
BigDecimal balanceBigDecimal = confirmation.getCollectionMoney().subtract(subscriptionMoneyAll); |
|
|
|
confirmation.setBalance(balanceBigDecimal); |
|
|
|
//查询当前登录人信息并更新审核人和审核时间
|
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid); |
|
|
|
if (userVoResultBean.getData() != null) { |
|
|
|
confirmation.setConfirmName(userVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
confirmation.setConfirmDate(DateUtil.today()); |
|
|
|
confirmation.setConfirmNameSid(userSid); |
|
|
|
baseMapper.updateById(confirmation); |
|
|
|
return rb.success().setMsg("款项确认成功"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void pushLoanDiff(FinCollectionConfirmation confirmation) { |
|
|
|
String sid = confirmation.getSid(); |
|
|
|
/** |
|
|
@ -3311,6 +3374,107 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
return rb.success().setData(finCollectionConfirmation); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<PdfPath> asCreatePdf(String skdSid, String printerType) { |
|
|
|
|
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
PdfPath pdfPath = new PdfPath(); |
|
|
|
//获取收款单信息
|
|
|
|
FinCollectionConfirmation finCollectionConfirmationDetailsVo = fetchBySid(skdSid); |
|
|
|
//获取车辆入库单车辆信息查询
|
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetaileds = finSelectedReceivablesDetailedService.fetchByCillSid(finCollectionConfirmationDetailsVo.getSid()); |
|
|
|
Map<String, Object> dataMap = new HashMap(); |
|
|
|
dataMap.put("collDate", finCollectionConfirmationDetailsVo.getCollectionDate()); |
|
|
|
dataMap.put("payee", finCollectionConfirmationDetailsVo.getPayerName()); |
|
|
|
dataMap.put("billNo", finCollectionConfirmationDetailsVo.getBillNo()); |
|
|
|
dataMap.put("settleType", finCollectionConfirmationDetailsVo.getCollectionTypeValue()); |
|
|
|
dataMap.put("remarks", finCollectionConfirmationDetailsVo.getRemarks()); |
|
|
|
List<FinCollectionConfirmationMaterial> finCollectionConfirmationMaterials = new ArrayList<>(); |
|
|
|
int id = 0; |
|
|
|
//循环获取车辆信息
|
|
|
|
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetaileds) { |
|
|
|
FinCollectionConfirmationMaterial finCollectionConfirmationMaterial = new FinCollectionConfirmationMaterial(); |
|
|
|
id = id + 1; |
|
|
|
//主车物料编码
|
|
|
|
String vinNo = ""; |
|
|
|
if (StringUtils.isNotBlank(finSelectedReceivablesDetailedVo.getVIN())) { |
|
|
|
if (finSelectedReceivablesDetailedVo.getVIN().length() > 7) { |
|
|
|
vinNo = finSelectedReceivablesDetailedVo.getVIN().substring(finSelectedReceivablesDetailedVo.getVIN().length() - 8); |
|
|
|
} else { |
|
|
|
vinNo = finSelectedReceivablesDetailedVo.getVIN(); |
|
|
|
} |
|
|
|
} |
|
|
|
String vehMark = ""; |
|
|
|
if (StringUtils.isNotBlank(finSelectedReceivablesDetailedVo.getContractSid())) { |
|
|
|
String asBillSid = finSelectedReceivablesDetailedVo.getContractSid(); // 售后维修单sid
|
|
|
|
FinBusrepairBillVo busrepairBillVo = asBusrepairBillFeign.fetchVehMarkAndTypeBySid(asBillSid); |
|
|
|
if (null != busrepairBillVo) { |
|
|
|
if (StringUtils.isNotBlank(busrepairBillVo.getVehMark())) { |
|
|
|
vehMark = busrepairBillVo.getVehMark(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
String vinAndVehMark = ""; |
|
|
|
if (StringUtils.isNotBlank(vinNo)) { |
|
|
|
if (StringUtils.isNotBlank(vehMark)) { |
|
|
|
vinAndVehMark = vinNo +"/" +vehMark; |
|
|
|
} else { |
|
|
|
vinAndVehMark = vinNo; |
|
|
|
} |
|
|
|
} |
|
|
|
finCollectionConfirmationMaterial.setVinNo(vinAndVehMark); |
|
|
|
finCollectionConfirmationMaterial.setId(String.valueOf(id)); |
|
|
|
finCollectionConfirmationMaterial.setCname(finSelectedReceivablesDetailedVo.getCustomerName()); |
|
|
|
finCollectionConfirmationMaterial.setPhone(finSelectedReceivablesDetailedVo.getCustomerPhone()); |
|
|
|
finCollectionConfirmationMaterial.setContractNo(finSelectedReceivablesDetailedVo.getContractNo()); |
|
|
|
finCollectionConfirmationMaterial.setCollPro(finSelectedReceivablesDetailedVo.getReceivablesName()); |
|
|
|
finCollectionConfirmationMaterial.setCollMoney(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|
|
|
finCollectionConfirmationMaterial.setCollNum(finCollectionConfirmationDetailsVo.getCollectionBankNum()); |
|
|
|
finCollectionConfirmationMaterials.add(finCollectionConfirmationMaterial); |
|
|
|
} |
|
|
|
dataMap.put("wlList", finCollectionConfirmationMaterials); |
|
|
|
dataMap.put("zcollMoney", finCollectionConfirmationDetailsVo.getCollectionMoney().toString()); |
|
|
|
String tPriceDX = TransformMoney.transform(finCollectionConfirmationDetailsVo.getCollectionMoney().toString()); |
|
|
|
dataMap.put("tPriceDX", tPriceDX); |
|
|
|
dataMap.put("makeName", finCollectionConfirmationDetailsVo.getCreateByName() + DateUtil.formatDate(new Date())); |
|
|
|
dataMap.put("confirmName", finCollectionConfirmationDetailsVo.getConfirmName() + finCollectionConfirmationDetailsVo.getConfirmDate()); |
|
|
|
String temp = "/template/"; |
|
|
|
String targetPath = docPdfComponent.getUploadTemplateUrl(); |
|
|
|
try { |
|
|
|
//获取模板
|
|
|
|
String streamPath = ""; |
|
|
|
if (printerType.equals("针孔式打印机")) { |
|
|
|
streamPath = "ftl/asskdzks.ftl"; |
|
|
|
} else if (printerType.equals("激光打印机")) { |
|
|
|
streamPath = "ftl/asskdjg.ftl"; |
|
|
|
} |
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(streamPath); |
|
|
|
//生成word文件名
|
|
|
|
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
long seconds = System.currentTimeMillis(); |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
File file = new File(targetPath + "templateASskd" + seconds + ".ftl"); |
|
|
|
File dir = new File(targetPath); |
|
|
|
WordConvertUtils.inputStreamToFile(inputStream, file); |
|
|
|
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir); |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + typeName; |
|
|
|
String pdfName = "收款单_" + dateStr + seconds + ".pdf"; |
|
|
|
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); |
|
|
|
pdfPath.setPdfPath(temp + pdfName); |
|
|
|
} catch (NoClassDefFoundError e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
String downNum = finCollectionConfirmationDetailsVo.getDownNum(); |
|
|
|
if (StringUtils.isBlank(downNum)) { |
|
|
|
downNum = "1"; |
|
|
|
} else { |
|
|
|
downNum = String.valueOf((Integer.parseInt(downNum) + 1)); |
|
|
|
} |
|
|
|
baseMapper.updateDown(skdSid, downNum); |
|
|
|
return rb.success().setData(pdfPath); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<PdfPath> createPdf(String skdSid, String printerType) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
PdfPath pdfPath = new PdfPath(); |
|
|
@ -5838,4 +6002,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl |
|
|
|
PagerVo<AsFinCollectionConfirmationVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|