ariesy 修复bug v2

release
yefei 2 years ago
parent 98da3c4958
commit 54554e9b93
  1. 3
      dxhy-base/src/main/java/com/dxhy/base/service/receipt/BaseReceiptOutServiceImpl.java
  2. 2
      dxhy-common/src/main/java/com/dxhy/common/enums/SNFplxEnum.java
  3. 75
      dxhy-common/src/main/java/com/dxhy/common/util/InvoiceUtil.java
  4. 121
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  5. 6
      dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxInvoiceReimburse.java
  6. 208
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  7. 11
      dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java

@ -652,7 +652,8 @@ public class BaseReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutD
QueryWrapper<BaseTDxOutReason> query = new QueryWrapper<>(); QueryWrapper<BaseTDxOutReason> query = new QueryWrapper<>();
query.eq("reason_code", record.getOutReason()); query.eq("reason_code", record.getOutReason());
BaseTDxOutReason reason = baseTDxOutReasonDao.selectOne(query); BaseTDxOutReason reason = baseTDxOutReasonDao.selectOne(query);
vo.setReason(reason.getOutReason()); if (reason != null)
vo.setReason(reason.getOutReason() == null ? "" : reason.getOutReason());
// 认证日期 string类型的长日期转为string类型的短日期 // 认证日期 string类型的长日期转为string类型的短日期
String certDate = record.getCertDate(); String certDate = record.getCertDate();
Date date = DateUtils.strToDate(certDate); Date date = DateUtils.strToDate(certDate);

@ -81,7 +81,7 @@ public enum SNFplxEnum {
/** /**
* 客运汽车票 * 客运汽车票
*/ */
KYQCP("10505","94",16), KYQCP("10505","89",16),
/** /**
* 航空运输电子客票行程单 * 航空运输电子客票行程单

@ -5,6 +5,7 @@ import java.text.SimpleDateFormat;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import com.dxhy.common.enums.FplxEnum; import com.dxhy.common.enums.FplxEnum;
import org.apache.commons.lang3.StringUtils;
/** /**
* 发票信息校验处理类 * 发票信息校验处理类
@ -106,6 +107,13 @@ public class InvoiceUtil {
} }
} }
public InvoiceUtil(String fpdm,String fphm) {
if (fpdm != null && fpdm.length() >= 10) {
this.fpdm = fpdm;
this.getFplx(fpdm,fphm);
}
}
/** /**
* 根据发票代码获取发票类型 * 根据发票代码获取发票类型
* *
@ -172,6 +180,73 @@ public class InvoiceUtil {
} }
} }
/**
* 根据发票代码获取发票类型
*
* @param fpdm
* 发票代码
*
*  1 电子发票
* 特殊的发票代码包括'144031539110', '131001570151', '133011501118', '111001571071'如果发票代码为以上代码之一则判定为电子发票
* 代码长度为12位首位为0最后两位为11 2 通行费发票 代码长度为12位首位为0最后两位是12 3 增值税普通发票 代码长度为12位首位为0最后两位是04或05
* 代码长度为10位第8位是3或者6 4 卷式发票 代码长度为12位首位为0最后两位是06或07 5 机动车发票 代码长度为12位首位不是0第8位是2 6 增值税专用发票
* 代码长度为10位第8位为1或5 7 货物运输发票 代码长度为10位第8位为2或7 8 二手车发票 代码长度为12位首位为0最后两位是17
*/
private void getFplx(String fpdm,String fphm) {
String invoiceTypeCode;
invoiceTypeCode = fpdm.substring(7, 8);
if (fpdm.length() == 12) {
if (HD.contains(fpdm)) {
fplxdm = FplxEnum.DZP.getFplxDm();
fplxmc = FplxEnum.DZP.getFplxMc(FplxEnum.DZP.getIndex());
} else if ("0".equals(fpdm.substring(0, 1)) && "11".equals(fpdm.substring(10, 12))) {
fplxdm = FplxEnum.DZP.getFplxDm();
fplxmc = FplxEnum.DZP.getFplxMc(FplxEnum.DZP.getIndex());
} else if ("0".equals(fpdm.substring(0, 1)) && "12".equals(fpdm.substring(10, 12))) {
fplxdm = FplxEnum.TXF.getFplxDm();
fplxmc = FplxEnum.TXF.getFplxMc(FplxEnum.TXF.getIndex());
} else if (!"0".equals(fpdm.substring(0, 1)) && "2".equals(invoiceTypeCode)) {
fplxdm = FplxEnum.JDC.getFplxDm();
fplxmc = FplxEnum.JDC.getFplxMc(FplxEnum.JDC.getIndex());
} else if ("0".equals(fpdm.substring(0, 1))
&& ("06".equals(fpdm.substring(10, 12)) || "07".equals(fpdm.substring(10, 12)))) {
fplxdm = FplxEnum.JSP.getFplxDm();
fplxmc = FplxEnum.JSP.getFplxMc(FplxEnum.JSP.getIndex());
} else if ("0".equals(fpdm.substring(0, 1))
&& ("04".equals(fpdm.substring(10, 12)) || "05".equals(fpdm.substring(10, 12)))) {
fplxdm = FplxEnum.PP.getFplxDm();
fplxmc = FplxEnum.PP.getFplxMc(FplxEnum.PP.getIndex());
} else if ("0".equals(fpdm.substring(0, 1)) && "17".equals(fpdm.substring(10, 12))) {
fplxdm = FplxEnum.ESC.getFplxDm();
fplxmc = FplxEnum.ESC.getFplxMc(FplxEnum.ESC.getIndex());
} else if ("0".equals(fpdm.substring(0, 1)) && "13".equals(fpdm.substring(10, 12))) {
fplxdm = FplxEnum.DZZP.getFplxDm();
fplxmc = FplxEnum.DZZP.getFplxMc(FplxEnum.DZZP.getIndex());
} else {
fplxdm = null;
}
} else if (fpdm.length() == 10) {
if ("1".equals(invoiceTypeCode) || "5".equals(invoiceTypeCode)) {
fplxdm = FplxEnum.ZP.getFplxDm();
fplxmc = FplxEnum.ZP.getFplxMc(FplxEnum.ZP.getIndex());
} else if ("6".equals(invoiceTypeCode) || "3".equals(invoiceTypeCode)) {
fplxdm = FplxEnum.PP.getFplxDm();
fplxmc = FplxEnum.PP.getFplxMc(FplxEnum.PP.getIndex());
} else {
fplxdm = null;
}
} else if (StringUtils.isBlank(fpdm) && fphm.length() == 20) {
fplxdm = FplxEnum.QDZZP.getFplxDm();
fplxmc = FplxEnum.QDZZP.getFplxMc(FplxEnum.QDPP.getIndex());
} else {
fplxdm = null;
}
}
/** /**
* 判断发票代码位数是否合法 * 判断发票代码位数是否合法
* *

@ -16,13 +16,11 @@ import com.dxhy.common.util.InvoiceUtil;
import com.dxhy.common.util.UserInfoUtil; import com.dxhy.common.util.UserInfoUtil;
import com.dxhy.common.utils.BaseContextHandler; import com.dxhy.common.utils.BaseContextHandler;
import com.dxhy.common.utils.R; import com.dxhy.common.utils.R;
import com.dxhy.erp.entity.TDxInvoiceReimburse;
import com.dxhy.erp.entity.TdxCheckRecordInvoice; import com.dxhy.erp.entity.TdxCheckRecordInvoice;
import com.dxhy.erp.entity.TdxRecordInvoice; import com.dxhy.erp.entity.TdxRecordInvoice;
import com.dxhy.erp.entity.sdny.*; import com.dxhy.erp.entity.sdny.*;
import com.dxhy.erp.service.InvoiceQueryService; import com.dxhy.erp.service.*;
import com.dxhy.erp.service.SNPushCheckRecordService;
import com.dxhy.erp.service.SignCheckRecordService;
import com.dxhy.erp.service.SignSaveInvoiceInfoService;
import com.dxhy.erp.utils.HmacSHA1Util; import com.dxhy.erp.utils.HmacSHA1Util;
import com.dxhy.erp.utils.ServiceResult; import com.dxhy.erp.utils.ServiceResult;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
@ -69,6 +67,9 @@ public class SDNYMainProcessController extends AbstractController {
@Resource @Resource
private SignCheckRecordService signCheckRecordService; private SignCheckRecordService signCheckRecordService;
@Resource
private TDxInvoiceReimburseService tDxInvoiceReimburseService;
/** /**
* 查验发票 * 查验发票
*/ */
@ -85,10 +86,12 @@ public class SDNYMainProcessController extends AbstractController {
// String userid = getLoginName(); // String userid = getLoginName();
// String dbName = getUserInfo().getDbName(); // String dbName = getUserInfo().getDbName();
// String company = getUserInfo().getCompany(); // String company = getUserInfo().getCompany();
JSONObject checkInvoiceResult = null;
InvoiceUtil iu = new InvoiceUtil(pramsMap.get("invoiceCode")); InvoiceUtil iu = new InvoiceUtil(pramsMap.get("invoiceCode"));
String fplxdm = iu.getFplxdm(); String fplxdm = iu.getFplxdm();
if(fplxdm != null) {
//查验类发票,执行查验操作后入库
log.info("查验类发票,执行查验操作后入库");
//权限校验 //权限校验
if (pramsMap.get("invoiceNumber").isEmpty()) { if (pramsMap.get("invoiceNumber").isEmpty()) {
return ResponseEntity.ok(R.error("发票号码不能为空!")); return ResponseEntity.ok(R.error("发票号码不能为空!"));
@ -147,7 +150,7 @@ public class SDNYMainProcessController extends AbstractController {
return ResponseEntity.ok(data); return ResponseEntity.ok(data);
} }
JSONObject checkInvoiceResult = null;
try { try {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
} catch (Exception e) { } catch (Exception e) {
@ -169,9 +172,26 @@ public class SDNYMainProcessController extends AbstractController {
return ResponseEntity.ok(data); return ResponseEntity.ok(data);
} }
}else{
//其他类发票,直接入库
log.info("其他类发票,不做查验,直接入库");
TDxInvoiceReimburse reimburse = new TDxInvoiceReimburse();
int insert = tDxInvoiceReimburseService.getBaseMapper().insert(reimburse);
R data = new R(1000, "default success");
data.put("message", "success");
if (insert>0) {
checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber"));
checkInvoiceResult.put("company", company);
checkInvoiceResult.put("message", "入库成功");
log.info("返回给影像系统的结果为:{}", checkInvoiceResult);
}
//价税分离 data.put("data", checkInvoiceResult);
//snPushCheckRecordService.valoremTaxCount(); return ResponseEntity.ok(data);
}
return ResponseEntity.ok(R.error().put("data", checkInvoiceResult)); return ResponseEntity.ok(R.error().put("data", checkInvoiceResult));
} }
@ -188,6 +208,7 @@ public class SDNYMainProcessController extends AbstractController {
String userid = "101833"; String userid = "101833";
String dbName = "business"; String dbName = "business";
String company = "BIGB"; String company = "BIGB";
String taxNo = "9111112222333344DD";
// // 入参统一在入口处理 // // 入参统一在入口处理
// String userid = getLoginName(); // String userid = getLoginName();
@ -200,56 +221,27 @@ public class SDNYMainProcessController extends AbstractController {
// } // }
String result = ""; String result = "";
//入票池
try { try {
Integer integer = snPushCheckRecordService.pushInvoiceToRecordInvoice2(snRequestObject);
//推送到SAP
List<SNInvoice> invoiceInfoList = snRequestObject.getInvoiceInfoList(); List<SNInvoice> invoiceInfoList = snRequestObject.getInvoiceInfoList();
String imageId = snRequestObject.getImageId(); String imageId = snRequestObject.getImageId();
String compCode = snRequestObject.getCompCode(); String compCode = snRequestObject.getCompCode();
TDxInvoiceReimburse reimburse = new TDxInvoiceReimburse();
reimburse.setImageId(imageId);
reimburse.setCompCode(compCode);
if (invoiceInfoList != null && invoiceInfoList.size() > 0) { if (invoiceInfoList != null && invoiceInfoList.size() > 0) {
for (SNInvoice invoice : invoiceInfoList) { for (SNInvoice invoice : invoiceInfoList) {
String fplxdm = ""; String fplxdm = "";
String snFplx = ""; String snFplx = "";
String invoiceCode = invoice.getInvoiceCode(); String invoiceCode = invoice.getInvoiceCode();
if(StringUtils.isNoneBlank(invoiceCode)) { String invoiceNo = invoice.getInvoiceNumber();
InvoiceUtil iu = new InvoiceUtil(invoiceCode); reimburse = snPushCheckRecordService.updateInvoicePoll(snRequestObject, company, taxNo, reimburse, invoice, fplxdm, invoiceCode, invoiceNo);
fplxdm = iu.getFplxdm();
}else{
snFplx = invoice.getInvoiceType();
if(SNFplxEnum.HCP.getSnFplxDm().equals(snFplx)){
fplxdm = "92";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.KYQCP.getSnFplxDm().equals(snFplx)){
fplxdm = "94";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.JPXCD.getSnFplxDm().equals(snFplx)){
fplxdm = "90";
invoice.setInvoiceType(fplxdm);
}
}
//价税分离
if(SNFplxEnum.HCP.getFplxDm().equals(fplxdm) || SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm) || SNFplxEnum.JPXCD.getFplxDm().equals(fplxdm)){
InvoiceInfo invoiceInfo = convertToInvoiceInfo(invoice);
ServiceResult<InvoiceInfo> invoiceResult = snPushCheckRecordService.valoremTaxCount(invoiceInfo, "Y");
InvoiceInfo data = invoiceResult.getData();
invoice.setIsDeductible(data.getIsDeductible());
invoice.setTaxRate(data.getTaxRate());
invoice.setTotalAmount(data.getInvoiceAmount().toString());
invoice.setTotalTax(data.getTaxAmount().toString());
}
//推送到SAP
SNSAPObject object = convertToSapOnject(invoice, imageId,compCode); SNSAPObject object = convertToSapOnject(invoice, imageId,compCode);
log.info("推送山能数据:{}",JSONObject.toJSONString(object)); log.info("推送山能数据:{}",JSONObject.toJSONString(object));
@ -276,6 +268,12 @@ public class SDNYMainProcessController extends AbstractController {
return ResponseEntity.ok(R.error(CommonConstants.MSG_ERR_DEFAULT)); return ResponseEntity.ok(R.error(CommonConstants.MSG_ERR_DEFAULT));
} }
/** /**
* 查验发票 * 查验发票
*/ */
@ -305,38 +303,7 @@ public class SDNYMainProcessController extends AbstractController {
return signature; return signature;
} }
private InvoiceInfo convertToInvoiceInfo(SNInvoice snInvoice) {
InvoiceInfo invoice = new InvoiceInfo();
invoice.setInvoiceTypeCode(snInvoice.getInvoiceType());
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
try {
date = ft.parse(snInvoice.getBillingDate());
} catch (ParseException e) {
e.printStackTrace();
}
invoice.setInvoiceDate(date);
invoice.setIdentityNumber(snInvoice.getIdcardNo());
invoice.setPassenger(snInvoice.getRiderName());
invoice.setDepartCity(snInvoice.getStationGetOn());
invoice.setArriveCity(snInvoice.getStationGetOff());
if("92".equals(invoice.getInvoiceTypeCode())){
if(snInvoice.getAmountTax() != null)
invoice.setInvoiceAmount(new BigDecimal(snInvoice.getAmountTax()));
}
if("90".equals(invoice.getInvoiceTypeCode())) {
invoice.setFare(snInvoice.getNoTaxAmount());
invoice.setFuelSurcharge(snInvoice.getFuelSurcharge());
}
if(snInvoice.getNoTaxAmount() != null){
BigDecimal amount = new BigDecimal(snInvoice.getNoTaxAmount());
invoice.setInvoiceAmount(amount);
}
return invoice;
}
private SNSAPObject convertToSapOnject(SNInvoice snInvoice, String imageId,String compCode) { private SNSAPObject convertToSapOnject(SNInvoice snInvoice, String imageId,String compCode) {

@ -77,4 +77,10 @@ public class TDxInvoiceReimburse {
private String company; private String company;
private String voucherNumber; private String voucherNumber;
private String currency; private String currency;
private String snVoucherNumber;
private String postingTime = "";
private String imageId;
private String accountPeriod;
private String compCode;
} }

@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dxhy.common.constant.DbConstant; import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.SNFplxEnum;
import com.dxhy.common.util.InvoiceUtil; import com.dxhy.common.util.InvoiceUtil;
import com.dxhy.common.vo.UserInfo; import com.dxhy.common.vo.UserInfo;
import com.dxhy.erp.dao.AreaDao; import com.dxhy.erp.dao.AreaDao;
@ -16,6 +17,7 @@ import com.dxhy.erp.dao.BaseTDxTaxCurrentDao;
import com.dxhy.erp.dao.OrgUserInfoDao; import com.dxhy.erp.dao.OrgUserInfoDao;
import com.dxhy.erp.entity.BaseTDxRecordInvoice; import com.dxhy.erp.entity.BaseTDxRecordInvoice;
import com.dxhy.erp.entity.BaseTDxTaxCurrent; import com.dxhy.erp.entity.BaseTDxTaxCurrent;
import com.dxhy.erp.entity.TDxInvoiceReimburse;
import com.dxhy.erp.entity.TdxCheckRecordInvoice; import com.dxhy.erp.entity.TdxCheckRecordInvoice;
import com.dxhy.erp.entity.kfpt.ApiCheckInvoiceSingleRequest; import com.dxhy.erp.entity.kfpt.ApiCheckInvoiceSingleRequest;
import com.dxhy.erp.entity.kfpt.ApiRequest; import com.dxhy.erp.entity.kfpt.ApiRequest;
@ -35,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -95,6 +98,9 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
@Resource @Resource
private BaseTDxRecordInvoiceDao baseTDxRecordInvoiceDao; private BaseTDxRecordInvoiceDao baseTDxRecordInvoiceDao;
@Resource
private TDxInvoiceReimburseService tDxInvoiceReimburseService;
public String pushCheckResultToSAP(String requestParam) throws Exception { public String pushCheckResultToSAP(String requestParam) throws Exception {
log.info("获取请求参数:{} , 请求地址:{}", requestParam, snYxUrl); log.info("获取请求参数:{} , 请求地址:{}", requestParam, snYxUrl);
String post = HttpUtils.sendPo(snYxUrl, requestParam, userName, password); String post = HttpUtils.sendPo(snYxUrl, requestParam, userName, password);
@ -121,7 +127,13 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
String fphm = snInvoice.getInvoiceNumber(); String fphm = snInvoice.getInvoiceNumber();
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>(); QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
recordWrapper.eq("uuid", fpdm + fphm); String uuid = "";
if(StringUtils.isNoneBlank(fpdm)){
uuid = fpdm + fphm;
}else{
uuid = fpdm;
}
recordWrapper.eq("uuid", uuid);
BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper); BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper);
@ -537,6 +549,200 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
return jsonObject; return jsonObject;
} }
public TDxInvoiceReimburse updateInvoicePoll(@RequestBody SNRequestObject snRequestObject, String company, String taxNo, TDxInvoiceReimburse reimburse, SNInvoice invoice, String fplxdm, String invoiceCode, String invoiceNo) throws Exception {
//判断发票类型
fplxdm = getFplx(invoice, fplxdm);
//如果是可价税分离的票种,直接入报销库
if(SNFplxEnum.HCP.getFplxDm().equals(fplxdm) || SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)
|| SNFplxEnum.JPXCD.getFplxDm().equals(fplxdm) || SNFplxEnum.CP.getFplxDm().equals(fplxdm)
|| SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)){
InvoiceInfo invoiceInfo = convertToInvoiceInfo(invoice);
ServiceResult<InvoiceInfo> invoiceResult = this.valoremTaxCount(invoiceInfo, "Y");
InvoiceInfo data = invoiceResult.getData();
invoice.setIsDeductible(data.getIsDeductible());
invoice.setTaxRate(data.getTaxRate());
invoice.setTotalAmount(data.getInvoiceAmount().toString());
invoice.setTotalTax(data.getTaxAmount().toString());
reimburse = convertToReimburse(invoice,reimburse,fplxdm,company);
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
int insert = 0;
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("uuid",reimburse.getUuid());
TDxInvoiceReimburse reimburse1 = tDxInvoiceReimburseService.getBaseMapper().selectOne(wrapper);
if(reimburse1 != null){
insert = tDxInvoiceReimburseService.getBaseMapper().updateById(reimburse1);
}else{
insert = tDxInvoiceReimburseService.getBaseMapper().insert(reimburse);
}
if(insert > 0){
log.info("实名客票插入报销库成功");
}
}else{
//如果是可查验类型,直接更新数据库
InvoiceUtil iu = new InvoiceUtil(invoiceCode,invoiceNo);
fplxdm = iu.getFplxdm();
if(fplxdm != null) {
//可查验发票,已入库,更新票池
Integer integer = this.pushInvoiceToRecordInvoice2(snRequestObject);
log.info("可查验发票,更新票池完成");
}else{
//不可查验发票,未入库,插入票池
this.pushInvoiceToRecordInvoice(snRequestObject,taxNo,company);
log.info("不可查验发票,更新票池完成");
}
}
return reimburse;
}
private TDxInvoiceReimburse convertToReimburse(SNInvoice invoice, TDxInvoiceReimburse reimburse,String fplxdm,String company) {
reimburse.setInvoiceType(fplxdm);
reimburse.setInvoiceCode(invoice.getInvoiceCode());
reimburse.setInvoiceNo(invoice.getInvoiceNumber());
reimburse.setInvoiceDate(invoice.getBillingDate());
reimburse.setPassenger(invoice.getRiderName());
if(invoice.getTotalAmount() != null) {
reimburse.setInvoiceAmount(new BigDecimal(invoice.getTotalAmount()));
}
if(invoice.getAmountTax() != null) {
reimburse.setTotalAmount(new BigDecimal(invoice.getAmountTax()));
}
if(invoice.getTotalTax() != null) {
reimburse.setTaxAmount(new BigDecimal(invoice.getTotalTax()));
}
reimburse.setInvoiceStatus(invoice.getState());
reimburse.setDepartureCity(invoice.getStationGetOn());
reimburse.setReachingCity(invoice.getStationGetOff());
reimburse.setTrainNumber(invoice.getTrainNumber());
reimburse.setPassengerSFZH(invoice.getIdcardNo());
reimburse.setXfName(invoice.getSalesName());
reimburse.setXfTaxNo(invoice.getSalesTaxNo());
reimburse.setXfAddressAndPhone(invoice.getSalesAddressPhone());
reimburse.setXfBankAndNo(invoice.getSalesBank());
reimburse.setGfTaxNo(invoice.getPurchaserTaxNo());
reimburse.setGfName(invoice.getPurchaserName());
reimburse.setGfAddressAndPhone(invoice.getPurchaserAddressPhone());
reimburse.setGfBankAndNo(invoice.getPurchaserBank());
reimburse.setTaxRate(invoice.getTaxRate());
reimburse.setIsDeduction(invoice.getIsDeductible());
if(StringUtils.isNoneBlank(reimburse.getInvoiceCode())){
reimburse.setUuid(reimburse.getInvoiceCode() + reimburse.getInvoiceNo());
}else{
reimburse.setUuid(reimburse.getInvoiceNo());
}
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(date);
reimburse.setCreateDate(format);
reimburse.setUpdateDate(date);
reimburse.setCheckCode(invoice.getCheckCode());
reimburse.setFare(invoice.getNoTaxAmount());
reimburse.setFuelSurcharge(invoice.getFuelSurcharge());
reimburse.setCompany(company);
reimburse.setPostingTime(format);
reimburse.setAccountPeriod("");
return reimburse;
}
private InvoiceInfo convertToInvoiceInfo(SNInvoice snInvoice) {
InvoiceInfo invoice = new InvoiceInfo();
invoice.setInvoiceTypeCode(snInvoice.getInvoiceType());
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
try {
date = ft.parse(snInvoice.getBillingDate());
} catch (ParseException e) {
e.printStackTrace();
}
invoice.setInvoiceDate(date);
invoice.setIdentityNumber(snInvoice.getIdcardNo());
invoice.setPassenger(snInvoice.getRiderName());
invoice.setDepartCity(snInvoice.getStationGetOn());
invoice.setArriveCity(snInvoice.getStationGetOff());
if("92".equals(invoice.getInvoiceTypeCode())){
if(snInvoice.getAmountTax() != null)
invoice.setInvoiceAmount(new BigDecimal(snInvoice.getAmountTax()));
}
if("90".equals(invoice.getInvoiceTypeCode())) {
invoice.setFare(snInvoice.getNoTaxAmount());
invoice.setFuelSurcharge(snInvoice.getFuelSurcharge());
}
if(snInvoice.getNoTaxAmount() != null){
BigDecimal amount = new BigDecimal(snInvoice.getNoTaxAmount());
invoice.setInvoiceAmount(amount);
}
return invoice;
}
private String getFplx(SNInvoice invoice, String fplxdm) {
String snFplx = invoice.getInvoiceType();
if(SNFplxEnum.HCP.getSnFplxDm().equals(snFplx)){
fplxdm = "92";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.KYQCP.getSnFplxDm().equals(snFplx)){
fplxdm = "94";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.JPXCD.getSnFplxDm().equals(snFplx)){
fplxdm = "90";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.DEFP.getSnFplxDm().equals(snFplx)){
fplxdm = "95";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.JDFP.getSnFplxDm().equals(snFplx)){
fplxdm = "97";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.CZCFP.getSnFplxDm().equals(snFplx)){
fplxdm = "91";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.KYQCP.getSnFplxDm().equals(snFplx)){
fplxdm = "89";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.GLF.getSnFplxDm().equals(snFplx)){
fplxdm = "101";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.CP.getSnFplxDm().equals(snFplx)){
fplxdm = "88";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.GJXP.getSnFplxDm().equals(snFplx)){
fplxdm = "99";
invoice.setInvoiceType(fplxdm);
}
if(SNFplxEnum.QTFP.getSnFplxDm().equals(snFplx)){
fplxdm = "00";
invoice.setInvoiceType(fplxdm);
}
return fplxdm;
}
/** /**
* 客票价税计算 * 客票价税计算

@ -96,9 +96,13 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl<DomesticExpo
map.put("xh", String.valueOf((((page.getCurrent() == 0 ? 1 : page.getCurrent()) - 1) * page.getSize()) + i + 1)); map.put("xh", String.valueOf((((page.getCurrent() == 0 ? 1 : page.getCurrent()) - 1) * page.getSize()) + i + 1));
if (map.get("invoiceDate") != null) { if (map.get("invoiceDate") != null) {
String invoiceDate = map.get("invoiceDate").toString(); String invoiceDate = map.get("invoiceDate").toString();
if (invoiceDate.length() > 10)
invoiceDate = invoiceDate.substring(0, 10);
log.info("invoiceDate={}", invoiceDate); log.info("invoiceDate={}", invoiceDate);
if (invoiceDate != null && StringUtils.isNotBlank(invoiceDate)) if (invoiceDate != null && StringUtils.isNotBlank(invoiceDate))
map.put("invoiceDate", sdf.format(invoiceDate)); map.put("invoiceDate", invoiceDate);
} }
map.put("invoiceStatus", dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus)); map.put("invoiceStatus", dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus));
@ -414,10 +418,11 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl<DomesticExpo
String invoiceDate = map.get("invoiceDate").toString(); String invoiceDate = map.get("invoiceDate").toString();
if (invoiceDate.length() > 10) if (invoiceDate.length() > 10)
invoiceDate = invoiceDate.substring(0, 10); invoiceDate = invoiceDate.substring(0, 10);
log.info("invoiceDate={}", invoiceDate); log.info("DomesticExportInvoiceCkServiceImpl-invoiceDate={}", invoiceDate);
if (invoiceDate != null && StringUtils.isNotBlank(invoiceDate)) if (invoiceDate != null && StringUtils.isNotBlank(invoiceDate))
map.put("invoiceDate", sdf.format(invoiceDate)); map.put("invoiceDate", invoiceDate);
} }
// 字典转换 // 字典转换
map.put("invoiceStatus", dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus)); map.put("invoiceStatus", dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus));
map.put("authStatus", dictdetaServcice.queryDictName(DictConstant.BDK_AUTH_STATUS, authStatus)); map.put("authStatus", dictdetaServcice.queryDictName(DictConstant.BDK_AUTH_STATUS, authStatus));

Loading…
Cancel
Save