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