Browse Source

欠款开票申请下载打印PDF

master
God 2 years ago
parent
commit
ce307b903f
  1. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  2. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  3. 44
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationGcListVo.java
  4. 42
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationSourceLCVo.java
  5. 48
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationZcListVo.java
  6. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  7. 285
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  8. 2435
      工作内容需要的文档/单据模板/欠款开票申请单单据打印模板/qkkpsqd.ftl
  9. 28
      工作内容需要的文档/单据模板/欠款开票申请单单据打印模板/欠款开票申请单.doc

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java

@ -102,6 +102,11 @@ public interface FinBillApplicationFeign {
@ResponseBody
public ResultBean<FinBillApplicationDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("生成欠款申请PDF")
@PostMapping("/createPdf")
@ResponseBody
public ResultBean<String> createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName);
/*************************公司开票流程管理接口********************************/
@ApiOperation("开票申请审批流程")

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java

@ -96,6 +96,11 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
return rb.setMsg("接口anrui-fin/finbillapplication/fetchDetailsBySid无法访问");
}
@Override
public ResultBean<String> createPdf(String sid, String userName) {
return null;
}
/*@Override
public ResultBean submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
return null;

44
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationGcListVo.java

@ -0,0 +1,44 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.fin.api.finbillapplication;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FinBillApplicationGcListVo implements Vo {
@ApiModelProperty(value = "序号")
private Integer idgc;
@ApiModelProperty(value = "挂车车架号")
private String gccjh;
@ApiModelProperty(value = "主车车架号")
private String zccjh;
@ApiModelProperty(value = "开票金额")
private String gckpje;
}

42
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationSourceLCVo.java

@ -0,0 +1,42 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.fin.api.finbillapplication;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FinBillApplicationSourceLCVo implements Vo {
@ApiModelProperty(value = "审批人姓名")
private String name;
@ApiModelProperty(value = "审批人意见")
private String comment;
@ApiModelProperty(value = "审批时间")
private String spsj;
}

48
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationZcListVo.java

@ -0,0 +1,48 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.fin.api.finbillapplication;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FinBillApplicationZcListVo implements Vo {
@ApiModelProperty(value = "序号")
private Integer idzc;
@ApiModelProperty(value = "车架号")
private String zccjh;
@ApiModelProperty(value = "合格证状态")
private String zchgz;
@ApiModelProperty(value = "开票类型")
private String zckplx;
@ApiModelProperty(value = "开票名称")
private String zckpmc;
@ApiModelProperty(value = "开票信息")
private String zckpxx;
}

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java

@ -121,6 +121,11 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
return rb.success().setData(vo);
}
@Override
public ResultBean<String> createPdf(String sid, String userName) {
return finBillApplicationService.createPdf(sid,userName);
}
/*@Override
public ResultBean submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
return finBillApplicationService.submitFinBillApplicationPageList(dto);

285
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basedistributor.BaseDistributorFeign;
import com.yxt.anrui.base.api.baseinternalpurchase.flow.GetNodeVo;
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo;
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo;
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign;
import com.yxt.anrui.base.api.basetrailer.TrailerVo;
@ -49,8 +50,14 @@ import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFL;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderSourceLCVo;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDiscountListVo;
import com.yxt.anrui.buscenter.api.bussalesorderinsurance.BusSalesOrderInsuranceDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
@ -84,30 +91,50 @@ 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.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserRoleQuery;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.Base64;
import com.yxt.common.base.utils.ConstantUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import static com.yxt.anrui.fin.biz.finpaymentrecord.FinPaymentrecordService.image2Base64;
import static java.util.Comparator.comparing;
/**
* Project: anrui-fin(开票申请管理) <br/>
* File: FinBillApplicationService.java <br/>
@ -172,6 +199,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
private FinCompanyInvoicingService finCompanyInvoicingService;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignPro;
@Autowired
private MessageListFeign messageListFeign;
private QueryWrapper<FinBillApplication> createQueryWrapper(FinBillApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -621,14 +652,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillVehicleVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillVehicleVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -664,14 +695,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillTrailerVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillTrailerVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -1919,14 +1950,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillVehicleVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillVehicleVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -1962,14 +1993,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillTrailerVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillTrailerVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -2348,7 +2379,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchByMainSid(sid);
String vinNos = "";
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
String vinNo = finBillVehicleVo.getVinNo().substring(finBillVehicleVo.getVinNo().length() - 8);;
String vinNo = finBillVehicleVo.getVinNo().substring(finBillVehicleVo.getVinNo().length() - 8);
;
vinNos = vinNos + vinNo + ",";
}
record.setVinNo(vinNos.substring(0, vinNos.lastIndexOf(",")));
@ -2412,7 +2444,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchByMainSid(sid);
String vinNos = "";
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
String vinNo = finBillVehicleVo.getVinNo().substring(finBillVehicleVo.getVinNo().length() - 8);;
String vinNo = finBillVehicleVo.getVinNo().substring(finBillVehicleVo.getVinNo().length() - 8);
;
vinNos = vinNos + vinNo + ",";
}
record.setVinNo(vinNos.substring(0, vinNos.lastIndexOf(",")));
@ -2432,7 +2465,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//判断是否领取发票原件,若是,则isTrue网关参数为true=============添加
bv.getFormVariables().put("isAdj", finBillApplication.getIsLQOrigInvoice().equals("是"));
//========================================
Map<String,Object> variables = bv.getFormVariables();
Map<String, Object> variables = bv.getFormVariables();
finBillApplication = fetchBySid(bv.getBusinessSid());
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
flowProcessMapQuery.setProDefKey(finBillApplication.getProcDefId());
@ -3100,14 +3133,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillVehicleVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillVehicleVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -3143,14 +3176,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finVehicleInvoiceDto.setBusinessState(finBillApplication.getBillStateValue());
finVehicleInvoiceDto.setUseOrgSid(finBillApplication.getUseOrgSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(finBillTrailerVo.getOpenTickSid());
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress());
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone());
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName());
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount());
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo());
finVehicleInvoiceDto.setIsTakeTicket("是");
}else {
} else {
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillTrailerVo.getOpenTickSid()).getData();
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile());
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber());
@ -3186,4 +3219,226 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<String> createPdf(String sid, String userName) {
ResultBean rb = ResultBean.fireFail();
List<String> photoList = new ArrayList<>();
List<String> imgList = new ArrayList<>();
FinBillApplication finBillApplication = fetchBySid(sid);
Map<String, Object> dataMap = new HashMap();
//获取审批记录
List<PCHistTaskListAndCommentList> flowRecordVo = flowableFeignPro.flowRecordAndComment(finBillApplication.getProcInstSid(), "1").getData();
List<FinBillApplicationSourceLCVo> finBillApplicationSourceLCVos = new ArrayList<>();
for (PCHistTaskListAndCommentList flowTask : flowRecordVo) {
if (flowTask.getFlowableRecordVo() != null) {
Map<String, Object> flowableRecordVo = flowTask.getFlowableRecordVo();
FinBillApplicationSourceLCVo finBillApplicationSourceLCVo = new FinBillApplicationSourceLCVo();
List<Map<String, Object>> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos");
Map<String, Object> comment = ConstantUtils.getMap(flowableRecordVo, "comment");
String assigneeName = (String) taskUserInfos.get(0).get("assigneeName");
String comment1 = (String) comment.get("comment");
finBillApplicationSourceLCVo.setName(assigneeName);
finBillApplicationSourceLCVo.setComment(comment1);
finBillApplicationSourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString());
finBillApplicationSourceLCVos.add(finBillApplicationSourceLCVo);
} else {
Map<String, Object> processCommentVo = flowTask.getProcessCommentVo();
FinBillApplicationSourceLCVo finBillApplicationSourceLCVo = new FinBillApplicationSourceLCVo();
finBillApplicationSourceLCVo.setName(processCommentVo.get("title").toString());
finBillApplicationSourceLCVo.setComment(processCommentVo.get("content").toString());
finBillApplicationSourceLCVo.setSpsj(processCommentVo.get("time").toString());
finBillApplicationSourceLCVos.add(finBillApplicationSourceLCVo);
List<String> fileList = (List) processCommentVo.get("fileList");
if (fileList.size() > 0) {
for (String s : fileList) {
imgList.add(s);
}
}
}
}
List<Message> messages = messageFeign.selectByBusinessSid(finBillApplication.getSid()).getData();
if (messages.size() > 0) {
for (Message message : messages) {
FinBillApplicationSourceLCVo finBillApplicationSourceLCVo = new FinBillApplicationSourceLCVo();
String receiverNames = "";
List<MessageList> messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData();
if (messageLists.size() > 0) {
for (MessageList messageList : messageLists) {
receiverNames = receiverNames + messageList.getReceiverName() + ",";
}
}
finBillApplicationSourceLCVo.setName("系统");
finBillApplicationSourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(",")));
finBillApplicationSourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
finBillApplicationSourceLCVos.add(finBillApplicationSourceLCVo);
}
}
finBillApplicationSourceLCVos.sort(comparing(FinBillApplicationSourceLCVo::getSpsj));
dataMap.put("lcList", finBillApplicationSourceLCVos);
//发起人
dataMap.put("fqr", finBillApplication.getCreateByName());
//发起部门
dataMap.put("fqbm", finBillApplication.getDeptName());
//发起日期
dataMap.put("fqrq", finBillApplication.getApplyDate());
//销售专员
dataMap.put("xszy", finBillApplication.getStaffName());
//销售部门
dataMap.put("xsbm", finBillApplication.getSaleDeptName());
//销售类型
dataMap.put("xslx", finBillApplication.getSaleTypeValue());
//合同编号
dataMap.put("htbh", finBillApplication.getContractNo());
//开票单位
dataMap.put("kpdw", finBillApplication.getOpenTickUnitName());
//客户名称
dataMap.put("khmc", finBillApplication.getCustomerName());
//单台开票金额
dataMap.put("zcdtkpje", finBillApplication.getOneBillMoney().toString());
//是否领取发票
dataMap.put("sflqfp", finBillApplication.getIsLQOrigInvoice());
//开票名称默认
dataMap.put("kpmcmr", finBillApplication.getOpenTickName());
//主车信息
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchByMainSid(sid);
List<FinBillApplicationZcListVo> finBillApplicationZcListVos = new ArrayList<>();
int zcId = 1;
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
FinBillApplicationZcListVo finBillApplicationZcListVo = new FinBillApplicationZcListVo();
finBillApplicationZcListVo.setIdzc(zcId);
finBillApplicationZcListVo.setZccjh(finBillVehicleVo.getVinNo());
finBillApplicationZcListVo.setZchgz(finBillVehicleVo.getCertificateStateValue());
finBillApplicationZcListVo.setZckplx(finBillVehicleVo.getBillTypeValue());
finBillApplicationZcListVo.setZckpmc(finBillVehicleVo.getOpenTickName());
finBillApplicationZcListVo.setZckpxx(finBillVehicleVo.getOpenTickRemarks());
finBillApplicationZcListVos.add(finBillApplicationZcListVo);
zcId = zcId + 1;
}
dataMap.put("zcxx", finBillApplicationZcListVos);
//欠款金额合计
dataMap.put("qkjehj", finBillApplication.getArrearsMoney());
//承诺回款日期
dataMap.put("cnhkrq", finBillApplication.getReturnedMoneyDate());
//欠款开票原因
dataMap.put("qkkpyy", finBillApplication.getArrearsOpenYYValue());
//欠款原因备注
dataMap.put("remarks", finBillApplication.getRemarks());
//挂车信息
List<FinBillTrailerVo> finBillTrailerVos = finBillTrailerService.fetchByMainSid(sid);
List<FinBillApplicationGcListVo> finBillApplicationGcListVos = new ArrayList<>();
int gcId = 1;
if (!finBillTrailerVos.isEmpty()){
for (FinBillTrailerVo finBillTrailerVo : finBillTrailerVos) {
FinBillApplicationGcListVo finBillApplicationGcListVo = new FinBillApplicationGcListVo();
finBillApplicationGcListVo.setIdgc(gcId);
finBillApplicationGcListVo.setGccjh(finBillTrailerVo.getGcVinNo());
finBillApplicationGcListVo.setZccjh(finBillTrailerVo.getVinNo());
finBillApplicationGcListVo.setGckpje(finBillTrailerVo.getOneBillMoney());
finBillApplicationGcListVos.add(finBillApplicationGcListVo);
gcId = gcId + 1;
}
}
dataMap.put("gcxx", finBillApplicationGcListVos);
//是否显示挂车信息
if (finBillApplicationGcListVos.size() > 0) {
dataMap.put("isXS", "是");
} else {
dataMap.put("isXS", "否");
}
//下载人
dataMap.put("downName", userName);
//下载时间
dataMap.put("downTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
//获取图片路径
List<FinBillFileVo> finBillFileVos = finBillFileService.fetchFileByBillSid(sid);
for (FinBillFileVo finBillFileVo : finBillFileVos) {
String fileUrl = finBillFileVo.getFileUrl();
String urlPrefix = fileUploadComponent.getUrlPrefix();
try {
fileUrl = urlPrefix + URLEncoder.encode(fileUrl, "utf-8");
String image2Base64 = image2Base64(fileUrl);
photoList.add(image2Base64);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if (imgList.size() > 0) {
for (String image : imgList) {
if (image.contains(fileUploadComponent.getUrlPrefix())) {
image = image.replace(fileUploadComponent.getUrlPrefix(), "");
try {
image = fileUploadComponent.getUrlPrefix() + URLEncoder.encode(image, "utf-8");
String image2Base64 = image2Base64(image);
photoList.add(image2Base64);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
}
dataMap.put("photoPath64", photoList);
//获取模板
//模板路径
String sourcePath = "D:\\anrui\\upload\\template\\";
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
//生成文件路径
String targetPath = sourcePath + dateStr;
WordUtils.creatWord(dataMap, "qkkpsqd", sourcePath, targetPath, typeName);
//新生成的word路径
String wordPath = targetPath + "\\" + typeName;
//生成欠款开票文件名
String pdfName = "欠款开票审批单" + finBillApplication.getContractNo() + ".pdf";
WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName);
return rb.success().setData("template/" + dateStr + "/" + pdfName);
}
public static String image2Base64(String imgUrl) {
URL url = null;
InputStream is = null;
ByteArrayOutputStream outStream = null;
HttpURLConnection httpUrl = null;
try {
url = new URL(imgUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
httpUrl.getInputStream();
is = httpUrl.getInputStream();
outStream = new ByteArrayOutputStream();
//创建一个Buffer字符串
byte[] buffer = new byte[1024];
//每次读取的字符串长度,如果为-1,代表全部读取完毕
int len = 0;
//使用一个输入流从buffer里把数据读取出来
while ((len = is.read(buffer)) != -1) {
//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
outStream.write(buffer, 0, len);
}
// 对字节数组Base64编码
return Base64.encode(outStream.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outStream != null) {
try {
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (httpUrl != null) {
httpUrl.disconnect();
}
}
return imgUrl;
}
}

2435
工作内容需要的文档/单据模板/欠款开票申请单单据打印模板/qkkpsqd.ftl

File diff suppressed because it is too large

28
工作内容需要的文档/单据模板/欠款开票申请单单据打印模板/欠款开票申请单.doc

@ -0,0 +1,28 @@
|欠款开票申请单 |
|发起人|${fqr!} |发起部|${fqbm!} |发起 |${fqrq!} |
| | |门 | |日期 | |
|销售专|${xszy!} |销售部|${xsbm!} |销售 |${xslx!} |
|员 | |门 | |类型 | |
|合同编|${htbh!} |开票单|${kpdw!} |客户 |${khmc!} |
|号 | |位 | |名称 | |
|主车开票信息 |
|单台开票|${zcdtkpje|是否领取 |${sflqfp|开票名称 |${kpmcmr!} |
|金额 |!} |发票 |!} |默认 | |
|序号 |车架号 |合格证 |开票类型 |开票名称 |开票信息 |
| | |状态 | | | |
|${z.i|${z.zccj|${z.zch|${z.kplx!} |${z.kpmc!} |${z.zckpxx!} |
|dzc!}|h!} |gz!} | | | |
|欠款金额合|${qkjehj!} |承诺回款日期|${cnhkrq!} |
|计 | | | |
|欠款开票原|${qkkpyy|${remarks!} |
|因 |!} | |
|挂车开票信息(挂车的开票类型、开票名称与主车相同) |
|序号 |挂车车架号 |主车车架号 |开票金额 |
|${g.idgc!} |${g.gccjh!} |${g.zccjh!} |${g.gckpje!} |
|审批流程 |${lc.comment!} |${lc.spsj! |
| |${lc.name!} | |
|下载人: |${downName!}|下载时间: |${downTime!} |
[pic]
Loading…
Cancel
Save