diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java index ae634f20bd..c82bb2beca 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java @@ -913,7 +913,7 @@ public class BusDeliveredApplyService extends MybatisBaseService trailerList = baseTrailerFeign.trailerList(busDeliveredApplyDetails.getVinSid(), busDeliveredApply.getContractNo()); - if(trailerList.getData() != null){ + if (trailerList.getData() != null) { if (trailerList.getData().getList().isEmpty()) { appCarListVo.setShowHandCarBtn(false); } else { appCarListVo.setShowHandCarBtn(true); } - }else{ + } else { appCarListVo.setShowHandCarBtn(false); } @@ -2318,14 +2318,14 @@ public class BusDeliveredApplyService extends MybatisBaseService carList = dto.getCarList(); if (!carList.isEmpty()) { List vinNoLists = new ArrayList<>(); - List vinSidLists = baseMapper.selectSid(dto.getContractId(),dto.getSid()); + List vinSidLists = baseMapper.selectSid(dto.getContractId(), dto.getSid()); //判断合同编号是否一致 for (int a = 0; a < carList.size(); a++) { BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByNoAndVinSid(dto.getContractId(), carList.get(a).getVinSid()); if (busSalesOrderVehicle == null) { return rb.setMsg("所选车辆与合同编号不匹配"); } - if(vinSidLists.contains(carList.get(a).getVinSid())){ + if (vinSidLists.contains(carList.get(a).getVinSid())) { vinNoLists.add(carList.get(a).getVinSid()); } } @@ -2335,9 +2335,9 @@ public class BusDeliveredApplyService extends MybatisBaseService num) { return rb.setMsg("本次出库为该订单最后一批出库,还存在未赠送的套餐,不允许提交"); @@ -2602,7 +2602,7 @@ public class BusDeliveredApplyService extends MybatisBaseService receiveSeleteVoList = receiveInvoiceVoResultBean.getData().getReceiveSeleteVoList(); List voList = Optional.ofNullable(receiveSeleteVoList).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), FinSelectVo.class)).collect(Collectors.toList()); - voList.removeAll(Collections.singleton(null)); - List finSelectVos = new ArrayList<>(); - if (!voList.isEmpty()) { - for (FinSelectVo finSelectVo : voList) { - String receivablesSid = finSelectVo.getReceivablesSid(); - FinSelectedReceivablesDetailed data = finSelectedReceivablesDetailedFeign.fetchByReceivablesSidLimt(receivablesSid).getData(); - if (data != null) { - String collSid = data.getCollSid(); - if (StringUtils.isNotBlank(data.getSubscriptionDate())) { - finSelectVo.setSubscriptionDate(data.getSubscriptionDate()); - } - FinCollectionConfirmationDetailsVo confirmationDetailsVo = finCollectionConfirmationFeign.fetchBySid(collSid).getData(); - if (null != confirmationDetailsVo) { - if (StringUtils.isNotBlank(confirmationDetailsVo.getCollectionBank())) { - finSelectVo.setCollectionBank(confirmationDetailsVo.getCollectionBank()); - } - if (StringUtils.isNotBlank(confirmationDetailsVo.getReceivingName())) { - finSelectVo.setReceivingName(confirmationDetailsVo.getReceivingName()); - } - if (StringUtils.isNotBlank(confirmationDetailsVo.getPayerName())) { - finSelectVo.setPayerName(confirmationDetailsVo.getPayerName()); - } - if (StringUtils.isNotBlank(confirmationDetailsVo.getCollectionDate())) { - finSelectVo.setCollectionDate(confirmationDetailsVo.getCollectionDate()); - } - } - } - finSelectVos.add(finSelectVo); - } - } - deliveredFinVo.setFinSelectVoList(finSelectVos); + deliveredFinVo.setFinSelectVoList(voList); InvoiceVo invoiceVo = receiveInvoiceVoResultBean.getData().getInvoiceVo(); if (invoiceVo != null) { VinInvoiceVo vinInvoiceVo = new VinInvoiceVo(); diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinDeliveredFinVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinDeliveredFinVo.java new file mode 100644 index 0000000000..aca3e2b583 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinDeliveredFinVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.fin.api.finvehicleinvoice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/8/10 13:34 + */ +@Data +public class FinDeliveredFinVo { + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("销售类型") + private String paymentMethod; + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("款项情况") + private List finSelectVoList = new ArrayList<>(); + @ApiModelProperty("发票情况") + private FinVinInvoiceVo vinInvoiceVo = new FinVinInvoiceVo(); + +} diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinSelectInvoiceVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinSelectInvoiceVo.java new file mode 100644 index 0000000000..552952e2a0 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinSelectInvoiceVo.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.fin.api.finvehicleinvoice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/8/10 13:35 + */ +@Data +public class FinSelectInvoiceVo { + + @ApiModelProperty("款项名称") + private String receivablesName; + @ApiModelProperty("付款方式") + private String collectionTypeValue; + @ApiModelProperty("已收金额") + private String subscriptionMoneyAll; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("付款时间") + private String subscriptionDate; + @ApiModelProperty("收款账号") + private String collectionBankNum; + @ApiModelProperty("收款账户") + private String receivingName; + @ApiModelProperty("付款人") + private String payerName; + @ApiModelProperty("收款时间") + private String collectionDate; + // @ApiModelProperty("应收金额") +// private String reveivableMoney; + // @ApiModelProperty("未收金额") +// private String notSubscriptionMoney; +} diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java index c3a8eb2bb3..a68ad29b53 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java @@ -118,5 +118,10 @@ public interface FinVehicleInvoiceFeign { @ResponseBody ResultBean selectByVinAndContractNo(@RequestParam("vinSid") String vinSid, @RequestParam("contractNo") String contractNo); + @ApiOperation("查看车辆的款票情况") + @GetMapping("/deliveredFinSelect") + @ResponseBody + ResultBean deliveredFinSelect(@RequestParam("contractNo") String contractNo, @RequestParam("vinSid") String vinSid); + } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java index 417998f3a9..e4826f9168 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java @@ -129,4 +129,9 @@ public class FinVehicleInvoiceFeignFallback implements FinVehicleInvoiceFeign { return null; } + @Override + public ResultBean deliveredFinSelect(String contractNo, String vinSid) { + return null; + } + } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVinInvoiceVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVinInvoiceVo.java new file mode 100644 index 0000000000..3d5fb2911e --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVinInvoiceVo.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.fin.api.finvehicleinvoice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/8/10 13:34 + */ +@Data +public class FinVinInvoiceVo { + //开票名称 + private String invoicingName; + //税号 + private String invoiceNo; + //开票单位 + private String invoiceTitle; + //开票类型 + private String invoiceType; + //开票状态 + private String billingState; + //开票金额 + private String invoiceAmount; + //开票日期 + private String invoiceDate; + //移交状态 + private String transferState; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("联系电话") + private String telPhone; + @ApiModelProperty("开户行") + private String openingBank; + @ApiModelProperty("银行账号") + private String bankNum; + @ApiModelProperty("接收人") + private String recipient; + @ApiModelProperty("移交日期") + private String transferTime; +} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java index ff25c31eef..fd063e76eb 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java @@ -68,4 +68,6 @@ public interface FinVehicleInvoiceMapper extends BaseMapper { @Update("update fin_vehicle_invoice set isTakeTicket = '是' where sid = #{sid}") void updateIsLPBySid(String sid); + + List getFinSelectInvoiceVoListByBusVinSid(String busVinSid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml index 16a90f3f52..4e50e226b2 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml @@ -260,4 +260,23 @@ where vehicleSid = #{vinSid} and contractNo = #{contractNo} + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java index 99ab3a9ec4..330f32a34e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java @@ -249,4 +249,9 @@ public class FinVehicleInvoiceRest implements FinVehicleInvoiceFeign { return finVehicleInvoiceService.selectByVinAndContractNo(vinSid, contractNo); } + @Override + public ResultBean deliveredFinSelect(String contractNo, String vinSid) { + return finVehicleInvoiceService.deliveredFinSelect(contractNo,vinSid); + } + } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java index 2ee839bc21..0ae4d5bfc2 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java @@ -1,6 +1,7 @@ package com.yxt.anrui.fin.biz.finvehicleinvoice; 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; @@ -11,14 +12,27 @@ import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateVo; import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; import com.yxt.anrui.base.common.enums.CertificState; +import com.yxt.anrui.buscenter.api.busdeliveredapply.DeliveredFinVo; +import com.yxt.anrui.buscenter.api.busdeliveredapply.FinSelectVo; +import com.yxt.anrui.buscenter.api.busdeliveredapply.VinInvoiceVo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bustransferrecords.BusTransferRecordEnum; import com.yxt.anrui.buscenter.api.bustransferrecords.BusTransferRecordsDto; import com.yxt.anrui.buscenter.api.bustransferrecords.BusTransferRecordsFeign; import com.yxt.anrui.fin.api.finbillfile.FinBillFileVo; +import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationDetailsVo; +import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveInvoiceVo; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveSeleteVo; import com.yxt.anrui.fin.api.finvehicleinvoice.*; import com.yxt.anrui.fin.biz.finbillfile.FinBillFileService; +import com.yxt.anrui.fin.biz.fincollectionconfirmation.FinCollectionConfirmationService; +import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService; +import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedService; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgByUserVo; @@ -40,6 +54,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * Project: anrui-fin(财务管理)
@@ -82,6 +97,15 @@ public class FinVehicleInvoiceService extends MybatisBaseService listPage(PagerQuery pq) { FinVehicleInvoiceQuery query = pq.getParams(); @@ -406,7 +430,7 @@ public class FinVehicleInvoiceService extends MybatisBaseService selectByVinSids(String vinSid) { ResultBean rb = ResultBean.fireFail(); VehicleInvoiceVo vehicleInvoiceVo = baseMapper.selectByVinSids(vinSid); - if(StringUtils.isNotBlank(vehicleInvoiceVo.getFilePath())){ + if (StringUtils.isNotBlank(vehicleInvoiceVo.getFilePath())) { List filePathList = Arrays.asList(vehicleInvoiceVo.getFilePath().split(",")); vehicleInvoiceVo.setInvoiceImages(filePathList); } @@ -434,11 +458,11 @@ public class FinVehicleInvoiceService extends MybatisBaseService deliveredFinSelect(String contractNo, String vinSid) { + ResultBean rb = ResultBean.fireFail(); + FinDeliveredFinVo deliveredFinVo = new FinDeliveredFinVo(); + //查询销售订单 + ResultBean resultBean = busSalesOrderFeign.getSaleOrderDetailsByContractNo(contractNo); + AppOrderDetailsVo appOrderDetailsVo = resultBean.getData(); + //根据合同号和车辆sid查询车辆 + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(contractNo, vinSid).getData(); + if (busSalesOrderVehicle != null) { + deliveredFinVo.setVinNo(busSalesOrderVehicle.getLinkNo()); + deliveredFinVo.setPaymentMethod(appOrderDetailsVo.getPayType()); + deliveredFinVo.setContractNo(contractNo); + deliveredFinVo.setCustomerName(appOrderDetailsVo.getName()); + deliveredFinVo.setModelName(appOrderDetailsVo.getModelInfo().getModelName()); + //根据销售订单车辆查询款项情况 + ResultBean receiveInvoiceVoResultBean = finUncollectedReceivablesDetailedService.receivedSelect(busSalesOrderVehicle.getSid(), busSalesOrderVehicle.getLinkSid()); + if (receiveInvoiceVoResultBean.getData() != null) { + List finSelectVoList = baseMapper.getFinSelectInvoiceVoListByBusVinSid(busSalesOrderVehicle.getSid()); + finSelectVoList.removeAll(Collections.singleton(null)); + if (!finSelectVoList.isEmpty()) { + deliveredFinVo.setFinSelectVoList(finSelectVoList); + } + InvoiceVo invoiceVo = receiveInvoiceVoResultBean.getData().getInvoiceVo(); + if (invoiceVo != null) { + FinVinInvoiceVo vinInvoiceVo = new FinVinInvoiceVo(); + BeanUtil.copyProperties(invoiceVo, vinInvoiceVo); + deliveredFinVo.setVinInvoiceVo(vinInvoiceVo); + } + } + } + return rb.success().setData(deliveredFinVo); + } } \ No newline at end of file