Browse Source

售后认款模块出纳确认

master
fanzongzhe 5 months ago
parent
commit
3918e8b4b9
  1. 8
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeign.java
  2. 10
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeignFallback.java
  3. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/as/AsDetailsOfReceivablesAndUncollectedItemsVo.java
  4. 10
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationRest.java
  5. 167
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  6. 3907
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/asskdjg.ftl
  7. 3035
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/asskdzks.ftl
  8. 3907
      工作内容需要的文档/单据模板/售后/售后收款单/asskdjg.ftl
  9. 3035
      工作内容需要的文档/单据模板/售后/售后收款单/asskdzks.ftl
  10. 11
      工作内容需要的文档/单据模板/售后/售后收款单/售后收款单模板(激光打印机).doc
  11. 10
      工作内容需要的文档/单据模板/售后/售后收款单/售后收款单模板(针式打印机).doc

8
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeign.java

@ -132,6 +132,14 @@ public interface FinCollectionConfirmationFeign {
@PostMapping("/asListPagess")
public ResultBean<PagerVo<AsFinCollectionConfirmationVo>> asListPagess(@RequestBody PagerQuery<AsFinCollectionConfirmationQuery> pq);
@ApiOperation("售后出纳确认")
@PostMapping("/asCashierConfirm")
public ResultBean asCashierConfirm(@RequestParam("sid") String sid, @RequestParam("userSid") String userSid);
@ApiOperation("生成售后收款单pdf")
@PostMapping("/asCreatePdf")
@ResponseBody
ResultBean<PdfPath> asCreatePdf(@RequestParam("skdSid") String skdSid, @RequestParam("printerType") String printerType);
/*----------------------金融认款申请---------------------------*/

10
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeignFallback.java

@ -133,6 +133,16 @@ public class FinCollectionConfirmationFeignFallback implements FinCollectionConf
return null;
}
@Override
public ResultBean asCashierConfirm(String sid, String userSid) {
return null;
}
@Override
public ResultBean<PdfPath> asCreatePdf(String skdSid, String printerType) {
return null;
}
@Override
public ResultBean saveRsk(FinCollectionConfirmationRskDto dto) {
return null;

1
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/as/AsDetailsOfReceivablesAndUncollectedItemsVo.java

@ -17,6 +17,7 @@ public class AsDetailsOfReceivablesAndUncollectedItemsVo {
@ApiModelProperty("维修单号")
private String billNo; // 维修单号
@ApiModelProperty("车架号")
@JsonProperty("VIN")
private String VIN; // 车架号
private String vehMark; // 车牌号
private String customerPhone; // 电话

10
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationRest.java

@ -159,6 +159,16 @@ public class FinCollectionConfirmationRest implements FinCollectionConfirmationF
return rb.success().setData(pv);
}
@Override
public ResultBean asCashierConfirm(String sid, String userSid) {
return finCollectionConfirmationService.asCashierConfirm(sid,userSid);
}
@Override
public ResultBean<PdfPath> asCreatePdf(String skdSid, String printerType) {
return finCollectionConfirmationService.asCreatePdf(skdSid,printerType);
}
//------------------------金融认款申请-----------------------------------
@Override
public ResultBean saveRsk(FinCollectionConfirmationRskDto dto) {

167
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -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;
}
}

3907
anrui-fin/anrui-fin-biz/src/main/resources/ftl/asskdjg.ftl

File diff suppressed because it is too large

3035
anrui-fin/anrui-fin-biz/src/main/resources/ftl/asskdzks.ftl

File diff suppressed because it is too large

3907
工作内容需要的文档/单据模板/售后/售后收款单/asskdjg.ftl

File diff suppressed because it is too large

3035
工作内容需要的文档/单据模板/售后/售后收款单/asskdzks.ftl

File diff suppressed because it is too large

11
工作内容需要的文档/单据模板/售后/售后收款单/售后收款单模板(激光打印机).doc

@ -0,0 +1,11 @@
|收款单 |
|收款日期:|${collDate!} |付款方: |${payee!} |单据编 |${billNo!} |
| | | | |号: | |
|结算方式:|${settleType!} |备注: |${remarks!} |
|序号 |客户姓名 |
-----------------------
第 1 页 共 1 页

10
工作内容需要的文档/单据模板/售后/售后收款单/售后收款单模板(针式打印机).doc

@ -0,0 +1,10 @@
|收款单 |
|收款日期:|${collDate!} |付款方:|${payee!} |单据编号:|${billNo!} |
|结算方式:|${settleType!} |备注: |${remarks!} |
|序号 |客户姓名 |
-----------------------
第 1 页 共 1 页
Loading…
Cancel
Save