ariesy 增加税码字段

release
yefei 2 years ago
parent 84d6d35c59
commit 44874a4314
  1. 1
      dxhy-core/src/main/java/com/dxhy/core/job/entity/TDxRecordInvoiceDetail.java
  2. 5
      dxhy-core/src/main/java/com/dxhy/core/model/CheckRecordInvoiceDetailVO.java
  3. 142
      dxhy-core/src/main/java/com/dxhy/core/service/invoicedetail/InvoiceDetailServiceImpl.java
  4. 4
      dxhy-erp/src/main/java/com/dxhy/erp/config/ErpWebConfiguration.java
  5. 4
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  6. 5
      dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java
  7. 5
      dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNInvoiceDetail.java
  8. 182
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  9. 54
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java

@ -91,4 +91,5 @@ public class TDxRecordInvoiceDetail implements Serializable {
* 商品编码 * 商品编码
*/ */
private String goodsNum; private String goodsNum;
} }

@ -50,6 +50,11 @@ public class CheckRecordInvoiceDetailVO {
*/ */
private String taxRate; private String taxRate;
/**
* 税码
*/
private String taxCode;
/** /**
* 税额 * 税额
*/ */

@ -46,7 +46,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoiceDao, TDxRecordInvoice> public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoiceDao, TDxRecordInvoice>
implements InvoiceDetailService { implements InvoiceDetailService {
@Resource @Resource
private InvoiceDetailDao invoiceDetailDao; private InvoiceDetailDao invoiceDetailDao;
@ -95,7 +95,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
JSONObject checkInfo = null; JSONObject checkInfo = null;
String invoiceCode = pramsMap.get("invoiceCode"); String invoiceCode = pramsMap.get("invoiceCode");
String invoiceNo = pramsMap.get("invoiceNo"); String invoiceNo = pramsMap.get("invoiceNo");
String uuid = (StringUtils.isEmpty(invoiceCode)?"":invoiceCode) + invoiceNo; String uuid = (StringUtils.isEmpty(invoiceCode) ? "" : invoiceCode) + invoiceNo;
DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ); DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ);
QueryWrapper<TDxRecordInvoice> queryWrapper = new QueryWrapper<>(); QueryWrapper<TDxRecordInvoice> queryWrapper = new QueryWrapper<>();
@ -144,22 +144,17 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
/** /**
* 根据数据拼接需要返回的报文 * 根据数据拼接需要返回的报文
* *
* @param invoiceRecord * @param invoiceRecord 底账表信息
* 底账表信息 * @param vehicleSaleInfo 机动车表信息
* @param vehicleSaleInfo * @param invoiceDetailList 底账明细表信息
* 机动车表信息 * @param img 图片信息
* @param invoiceDetailList
* 底账明细表信息
* @param img
* 图片信息
* @return 返回 * @return 返回
*
*/ */
private JSONObject createCheckInfo(TDxRecordInvoice invoiceRecord, TDxVehicleSaleInvoice vehicleSaleInfo, private JSONObject createCheckInfo(TDxRecordInvoice invoiceRecord, TDxVehicleSaleInvoice vehicleSaleInfo,
List<TDxRecordInvoiceDetail> invoiceDetailList, TDxInvoiceImg img) { List<TDxRecordInvoiceDetail> invoiceDetailList, TDxInvoiceImg img) {
JSONObject checkInfo = new JSONObject(); JSONObject checkInfo = new JSONObject();
InvoiceSubjectVO checkRecordVo = this.convertToCheckRecordVo(invoiceRecord, img,invoiceDetailList); InvoiceSubjectVO checkRecordVo = this.convertToCheckRecordVo(invoiceRecord, img, invoiceDetailList);
// 取发票上的价税合计 // 取发票上的价税合计
String totalAmount = checkRecordVo.getTotalAmount(); String totalAmount = checkRecordVo.getTotalAmount();
@ -172,7 +167,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
// 机动车部分信息 // 机动车部分信息
if (vehicleSaleInfo != null) { if (vehicleSaleInfo != null) {
CheckVehicleSaleVO checkVehicleSaleVo = this.convertToVehicleSaleVo(vehicleSaleInfo, CheckVehicleSaleVO checkVehicleSaleVo = this.convertToVehicleSaleVo(vehicleSaleInfo,
invoiceRecord.getInvoiceType(), invoiceRecord.getInvoicer()); invoiceRecord.getInvoiceType(), invoiceRecord.getInvoicer());
checkInfo.put("vehicle", JSON.toJSON(checkVehicleSaleVo)); checkInfo.put("vehicle", JSON.toJSON(checkVehicleSaleVo));
} else { } else {
checkInfo.put("vehicle", new JSONObject()); checkInfo.put("vehicle", new JSONObject());
@ -194,10 +189,10 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
} }
} }
checkInfo.put("invoiceDetails", detail); checkInfo.put("invoiceDetails", detail);
if("11".equals(invoiceRecord.getInvoiceType())){ if ("11".equals(invoiceRecord.getInvoiceType())) {
checkInfo.put("detailAmountSum", totalAmount); checkInfo.put("detailAmountSum", totalAmount);
checkInfo.put("taxAmountSum", checkRecordVo.getTaxAmount()); checkInfo.put("taxAmountSum", checkRecordVo.getTaxAmount());
}else { } else {
checkInfo.put("detailAmountSum", MathUtil.round(invoiceRecord.getInvoiceAmount().toPlainString())); checkInfo.put("detailAmountSum", MathUtil.round(invoiceRecord.getInvoiceAmount().toPlainString()));
if (StringUtils.isNotBlank(se) && invoiceRecord.getTaxAmount().compareTo(new BigDecimal(0)) == 0) { if (StringUtils.isNotBlank(se) && invoiceRecord.getTaxAmount().compareTo(new BigDecimal(0)) == 0) {
checkInfo.put("taxAmountSum", se); checkInfo.put("taxAmountSum", se);
@ -215,7 +210,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
return checkInfo; return checkInfo;
} }
private InvoiceSubjectVO convertToCheckRecordVo(TDxRecordInvoice invoiceRecord, TDxInvoiceImg img,List<TDxRecordInvoiceDetail> invoiceDetailList) { private InvoiceSubjectVO convertToCheckRecordVo(TDxRecordInvoice invoiceRecord, TDxInvoiceImg img, List<TDxRecordInvoiceDetail> invoiceDetailList) {
InvoiceSubjectVO checkRecordVo = new InvoiceSubjectVO(); InvoiceSubjectVO checkRecordVo = new InvoiceSubjectVO();
// 字典值转换 // 字典值转换
String fpzt = dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceRecord.getInvoiceStatus()); String fpzt = dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceRecord.getInvoiceStatus());
@ -230,22 +225,22 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
String dqskssq = invoiceRecord.getRzhBelongDate(); String dqskssq = invoiceRecord.getRzhBelongDate();
checkRecordVo.setConfirmDate( checkRecordVo.setConfirmDate(
(invoiceRecord.getConfirmDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getConfirmDate())); (invoiceRecord.getConfirmDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getConfirmDate()));
checkRecordVo checkRecordVo
.setGxDate((invoiceRecord.getGxDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getGxDate())); .setGxDate((invoiceRecord.getGxDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getGxDate()));
checkRecordVo.setInvoiceStatus(fpzt); checkRecordVo.setInvoiceStatus(fpzt);
checkRecordVo.setSourceSystem( checkRecordVo.setSourceSystem(
(StringUtils.isNotBlank(invoiceRecord.getSourceSystem()) && "1".equals(invoiceRecord.getSourceSystem())) (StringUtils.isNotBlank(invoiceRecord.getSourceSystem()) && "1".equals(invoiceRecord.getSourceSystem()))
? "查验" : "采集"); ? "查验" : "采集");
if (invoiceRecord.getCreateDate() != null) { if (invoiceRecord.getCreateDate() != null) {
checkRecordVo.setCreateDate(DateUtils.dateToStrLong(invoiceRecord.getCreateDate())); checkRecordVo.setCreateDate(DateUtils.dateToStrLong(invoiceRecord.getCreateDate()));
} else { } else {
checkRecordVo.setCreateDate(""); checkRecordVo.setCreateDate("");
} }
if ("01".equals(invoiceRecord.getInvoiceType()) || "03".equals(invoiceRecord.getInvoiceType()) if ("01".equals(invoiceRecord.getInvoiceType()) || "03".equals(invoiceRecord.getInvoiceType())
|| "14".equals(invoiceRecord.getInvoiceType())) { || "14".equals(invoiceRecord.getInvoiceType())) {
if ("0".equals(invoiceRecord.getInvoiceStatus())) { if ("0".equals(invoiceRecord.getInvoiceStatus())) {
if (StringUtils.isNotBlank(invoiceRecord.getGxUserAccount())) { if (StringUtils.isNotBlank(invoiceRecord.getGxUserAccount())) {
checkRecordVo.setGxState("是"); checkRecordVo.setGxState("是");
@ -267,20 +262,20 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
checkRecordVo.setInvoiceDate(sdf.format(invoiceRecord.getInvoiceDate())); checkRecordVo.setInvoiceDate(sdf.format(invoiceRecord.getInvoiceDate()));
checkRecordVo.setInvoiceAmount(invoiceRecord.getInvoiceAmount() == null ? "" checkRecordVo.setInvoiceAmount(invoiceRecord.getInvoiceAmount() == null ? ""
: MathUtil.round(invoiceRecord.getInvoiceAmount().toPlainString())); : MathUtil.round(invoiceRecord.getInvoiceAmount().toPlainString()));
checkRecordVo.setTaxAmount( checkRecordVo.setTaxAmount(
invoiceRecord.getTaxAmount() == null ? "" : MathUtil.round(invoiceRecord.getTaxAmount().toPlainString())); invoiceRecord.getTaxAmount() == null ? "" : MathUtil.round(invoiceRecord.getTaxAmount().toPlainString()));
if("11".equals(invoiceRecord.getInvoiceType())){ if ("11".equals(invoiceRecord.getInvoiceType())) {
BigDecimal detailAmount = new BigDecimal(0); BigDecimal detailAmount = new BigDecimal(0);
if(CollectionUtils.isNotEmpty(invoiceDetailList)){ if (CollectionUtils.isNotEmpty(invoiceDetailList)) {
for (TDxRecordInvoiceDetail tdxRecordInvoiceDetail:invoiceDetailList){ for (TDxRecordInvoiceDetail tdxRecordInvoiceDetail : invoiceDetailList) {
if(tdxRecordInvoiceDetail.getDetailAmount()!=null){ if (tdxRecordInvoiceDetail.getDetailAmount() != null) {
detailAmount = detailAmount.add(new BigDecimal(tdxRecordInvoiceDetail.getDetailAmount())); detailAmount = detailAmount.add(new BigDecimal(tdxRecordInvoiceDetail.getDetailAmount()));
} }
} }
} }
checkRecordVo.setTotalAmount(MathUtil.round(detailAmount.toPlainString())); checkRecordVo.setTotalAmount(MathUtil.round(detailAmount.toPlainString()));
}else { } else {
if (invoiceRecord.getTotalAmount() == null) { if (invoiceRecord.getTotalAmount() == null) {
BigDecimal add = invoiceRecord.getInvoiceAmount().add(invoiceRecord.getTaxAmount()); BigDecimal add = invoiceRecord.getInvoiceAmount().add(invoiceRecord.getTaxAmount());
checkRecordVo.setTotalAmount(MathUtil.round(add.toPlainString())); checkRecordVo.setTotalAmount(MathUtil.round(add.toPlainString()));
@ -301,12 +296,12 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
checkRecordVo.setId(String.valueOf(invoiceRecord.getId())); checkRecordVo.setId(String.valueOf(invoiceRecord.getId()));
checkRecordVo.setUuid(invoiceRecord.getUuid()); checkRecordVo.setUuid(invoiceRecord.getUuid());
checkRecordVo checkRecordVo
.setQsDate((invoiceRecord.getQsDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getQsDate())); .setQsDate((invoiceRecord.getQsDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getQsDate()));
checkRecordVo.setQsName(StringHelper.trimEnter(invoiceRecord.getQsName())); checkRecordVo.setQsName(StringHelper.trimEnter(invoiceRecord.getQsName()));
checkRecordVo.setQsStatus(qsStatus); checkRecordVo.setQsStatus(qsStatus);
checkRecordVo.setQsType(qsType); checkRecordVo.setQsType(qsType);
checkRecordVo.setRzhDate( checkRecordVo.setRzhDate(
(invoiceRecord.getRzhDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getRzhDate())); (invoiceRecord.getRzhDate() == null) ? "" : DateUtils.dateToStrLong(invoiceRecord.getRzhDate()));
checkRecordVo.setRzlx(rzlx); checkRecordVo.setRzlx(rzlx);
checkRecordVo.setRemark(invoiceRecord.getRemark()); checkRecordVo.setRemark(invoiceRecord.getRemark());
checkRecordVo.setRzhYesorno(rzhYesorno); checkRecordVo.setRzhYesorno(rzhYesorno);
@ -345,10 +340,8 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
/** /**
* 转义认证类型 * 转义认证类型
* *
* @param rzlx * @param rzlx 认证类型
* 认证类型
* @return 返回 * @return 返回
*
*/ */
private String getRzlx(String rzlx) { private String getRzlx(String rzlx) {
String rzlxmc = ""; String rzlxmc = "";
@ -365,10 +358,8 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
/** /**
* 转义签收方式 * 转义签收方式
* *
* @param qsType * @param qsType 前首富昂视
* 前首富昂视
* @return 类型 * @return 类型
*
*/ */
private String getQsType(String qsType) { private String getQsType(String qsType) {
String qsfs = ""; String qsfs = "";
@ -391,10 +382,8 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
/** /**
* 转义签收状态 * 转义签收状态
* *
* @param qsStatus * @param qsStatus 签收状态
* 签收状态
* @return 返回 * @return 返回
*
*/ */
private String getQsStatus(String qsStatus) { private String getQsStatus(String qsStatus) {
String qszt = ""; String qszt = "";
@ -409,10 +398,8 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
/** /**
* 转义认证方式 * 转义认证方式
* *
* @param rzhType * @param rzhType 认证方式
* 认证方式
* @return 返回 * @return 返回
*
*/ */
private String getRztype(String rzhType) { private String getRztype(String rzhType) {
String rzType = ""; String rzType = "";
@ -481,7 +468,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
} }
private CheckVehicleSaleVO convertToVehicleSaleVo(TDxVehicleSaleInvoice vehicleSaleInfo, String invoiceType, private CheckVehicleSaleVO convertToVehicleSaleVo(TDxVehicleSaleInvoice vehicleSaleInfo, String invoiceType,
String invoicer) { String invoicer) {
String taxRate = StringHelper.trimEnter(vehicleSaleInfo.getTaxRate()); String taxRate = StringHelper.trimEnter(vehicleSaleInfo.getTaxRate());
CheckVehicleSaleVO checkVehicleSaleVo = new CheckVehicleSaleVO(); CheckVehicleSaleVO checkVehicleSaleVo = new CheckVehicleSaleVO();
checkVehicleSaleVo.setBuyerBank(StringHelper.trimEnter(vehicleSaleInfo.getBuyerBank())); checkVehicleSaleVo.setBuyerBank(StringHelper.trimEnter(vehicleSaleInfo.getBuyerBank()));
@ -520,12 +507,12 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
checkVehicleSaleVo.setBuyerUnitOrIndividual(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnit())); checkVehicleSaleVo.setBuyerUnitOrIndividual(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnit()));
checkVehicleSaleVo.setBuyerUnitCodeOrIdNo(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnitCode())); checkVehicleSaleVo.setBuyerUnitCodeOrIdNo(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnitCode()));
checkVehicleSaleVo checkVehicleSaleVo
.setBuyerUnitOrIndividualAddress(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnitAddress())); .setBuyerUnitOrIndividualAddress(StringHelper.trimEnter(vehicleSaleInfo.getBuyerUnitAddress()));
checkVehicleSaleVo.setBuyerPhone(StringHelper.trimEnter(vehicleSaleInfo.getBuyerPhone())); checkVehicleSaleVo.setBuyerPhone(StringHelper.trimEnter(vehicleSaleInfo.getBuyerPhone()));
checkVehicleSaleVo.setSellerUnitOrIndividual(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnit())); checkVehicleSaleVo.setSellerUnitOrIndividual(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnit()));
checkVehicleSaleVo.setSellerUnitCodeOrIdNo(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnitCode())); checkVehicleSaleVo.setSellerUnitCodeOrIdNo(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnitCode()));
checkVehicleSaleVo checkVehicleSaleVo
.setSellerUnitOrIndividualAddress(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnitAddress())); .setSellerUnitOrIndividualAddress(StringHelper.trimEnter(vehicleSaleInfo.getSellerUnitAddress()));
checkVehicleSaleVo.setSellerPhone(StringHelper.trimEnter(vehicleSaleInfo.getSellerPhone())); checkVehicleSaleVo.setSellerPhone(StringHelper.trimEnter(vehicleSaleInfo.getSellerPhone()));
if (StringUtils.isNotBlank(invoicer)) { if (StringUtils.isNotBlank(invoicer)) {
checkVehicleSaleVo.setInvoicer(StringHelper.trimEnter(invoicer)); checkVehicleSaleVo.setInvoicer(StringHelper.trimEnter(invoicer));
@ -538,15 +525,19 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
CheckRecordInvoiceDetailVO checkRecordDetailVo = new CheckRecordInvoiceDetailVO(); CheckRecordInvoiceDetailVO checkRecordDetailVo = new CheckRecordInvoiceDetailVO();
if (StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()).matches("[0-9]+")) { if (StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()).matches("[0-9]+")) {
checkRecordDetailVo.setTaxRate(StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()) + "%"); checkRecordDetailVo.setTaxRate(StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()) + "%");
} else if(tDxRecordInvoiceDetail.getTaxRate().contains(".")){ } else if (tDxRecordInvoiceDetail.getTaxRate().contains(".")) {
String taxRate = StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()); String taxRate = StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate());
if(taxRate.contains(".")){ if (taxRate.contains(".")) {
taxRate = taxRate.replace(".", "").replace("0", ""); taxRate = taxRate.replace(".", "").replace("0", "");
} }
checkRecordDetailVo.setTaxRate(taxRate + "%"); checkRecordDetailVo.setTaxRate(taxRate + "%");
}else { } else {
checkRecordDetailVo.setTaxRate(StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate())); checkRecordDetailVo.setTaxRate(StringHelper.trimEnter(tDxRecordInvoiceDetail.getTaxRate()));
} }
if (checkRecordDetailVo.getTaxRate() != null)
checkRecordDetailVo.setTaxCode(getZSM(checkRecordDetailVo.getTaxRate()));
checkRecordDetailVo.setCph(StringHelper.trimEnter(tDxRecordInvoiceDetail.getCph())); checkRecordDetailVo.setCph(StringHelper.trimEnter(tDxRecordInvoiceDetail.getCph()));
checkRecordDetailVo.setDetailAmount(StringHelper.trimEnter(tDxRecordInvoiceDetail.getDetailAmount())); checkRecordDetailVo.setDetailAmount(StringHelper.trimEnter(tDxRecordInvoiceDetail.getDetailAmount()));
checkRecordDetailVo.setDetailNo(StringHelper.trimEnter(tDxRecordInvoiceDetail.getDetailNo())); checkRecordDetailVo.setDetailNo(StringHelper.trimEnter(tDxRecordInvoiceDetail.getDetailNo()));
@ -569,7 +560,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
JSONObject checkInfo = null; JSONObject checkInfo = null;
String invoiceCode = pramsMap.get("invoiceCode"); String invoiceCode = pramsMap.get("invoiceCode");
String invoiceNo = pramsMap.get("invoiceNo"); String invoiceNo = pramsMap.get("invoiceNo");
String uuid = (StringUtils.isEmpty(invoiceCode)?"":invoiceCode) + invoiceNo; String uuid = (StringUtils.isEmpty(invoiceCode) ? "" : invoiceCode) + invoiceNo;
DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ); DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ);
@ -606,4 +597,55 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl<TDxRecordInvoice
} }
return this.createCheckInfo(invoiceRecord, vehicleSaleInfo, invoiceDetailList, img); return this.createCheckInfo(invoiceRecord, vehicleSaleInfo, invoiceDetailList, img);
} }
private String getZSM(String taxRate) {
String sm = "";
switch (taxRate) {
// 发票采集
case "0.00":
sm = "J0";
break;
case "免税":
sm = "J0";
break;
case "16%":
sm = "J1";
break;
case "13%":
sm = "J2";
break;
case "10%":
sm = "J3";
break;
case "9%":
sm = "J4";
break;
case "6%":
sm = "J5";
break;
case "5%":
sm = "J6";
break;
case "3%":
sm = "J7";
break;
case "2%":
sm = "J8";
break;
case "1%":
sm = "J9";
break;
case "17%":
sm = "JC";
break;
default:
sm = "";
break;
}
return sm;
}
} }

@ -59,9 +59,7 @@ public class ErpWebConfiguration implements WebMvcConfigurer {
*/ */
private ArrayList<String> getIncludePathPatterns() { private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>(); ArrayList<String> list = new ArrayList<>();
String[] urls = {"/order/**" String[] urls = {"/order/**"};
};
Collections.addAll(list, urls); Collections.addAll(list, urls);
return list; return list;
} }

@ -249,9 +249,7 @@ public class SDNYMainProcessController extends AbstractController {
for (SNInvoice invoice : invoiceInfoList) { for (SNInvoice invoice : invoiceInfoList) {
String fplxdm = ""; String fplxdm = "";
String snFplx = ""; String snFplx = "";
String invoiceCode = invoice.getInvoiceCode(); result = snPushCheckRecordService.updateInvoicePoll(company, taxNo, reimburse, invoice, fplxdm,imageId,compCode);
String invoiceNo = invoice.getInvoiceNumber();
result = snPushCheckRecordService.updateInvoicePoll(snRequestObject, company, taxNo, reimburse, invoice, fplxdm, invoiceCode, invoiceNo);
//价税分离判断 //价税分离判断
if (!"ok".equals(result) && !"0000".equals(result)) { if (!"ok".equals(result) && !"0000".equals(result)) {

@ -109,4 +109,9 @@ public class TDxRecordInvoiceDetail implements Serializable {
*/ */
private String goodsNum; private String goodsNum;
/**
* 税码
*/
private String taxCode;
} }

@ -75,4 +75,9 @@ public class SNInvoiceDetail {
*/ */
private String type = ""; private String type = "";
/**
* 类型
*/
private String taxCode = "";
} }

@ -109,7 +109,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
return post; return post;
} }
public String pushInvoiceToRecordInvoice(SNRequestObject snRequestObject, String taxNo, String company) throws Exception { public String pushInvoiceToRecordInvoice(SNInvoice snInvoice, String taxNo, String company) throws Exception {
QueryWrapper<BaseTDxTaxCurrent> currentWrapper = new QueryWrapper<>(); QueryWrapper<BaseTDxTaxCurrent> currentWrapper = new QueryWrapper<>();
currentWrapper.eq("taxno", taxNo); currentWrapper.eq("taxno", taxNo);
@ -117,103 +117,99 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
BaseTDxTaxCurrent current = baseTDxTaxCurrentDao.selectOne(currentWrapper); BaseTDxTaxCurrent current = baseTDxTaxCurrentDao.selectOne(currentWrapper);
List<SNInvoice> invoiceInfoList = snRequestObject.getInvoiceInfoList(); String fpdm = snInvoice.getInvoiceCode();
String fphm = snInvoice.getInvoiceNumber();
if (invoiceInfoList != null && invoiceInfoList.size() > 0) { QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
String uuid = "";
if (StringUtils.isNoneBlank(fpdm)) {
uuid = fpdm + fphm;
} else {
uuid = fpdm;
}
recordWrapper.eq("uuid", uuid);
for (SNInvoice snInvoice : invoiceInfoList) { BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper);
String fpdm = snInvoice.getInvoiceCode();
String fphm = snInvoice.getInvoiceNumber();
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>(); String kprq = snInvoice.getBillingDate();
String uuid = ""; String je = snInvoice.getTotalAmount();
if (StringUtils.isNoneBlank(fpdm)) { String xfsh = snInvoice.getSalesTaxNo();
uuid = fpdm + fphm; String se = snInvoice.getAmountTax();
} else { String gfsbh = snInvoice.getPurchaserTaxNo();
uuid = fpdm; String gfmc = snInvoice.getPurchaserName();
} String invoiceType = snInvoice.getInvoiceType();
recordWrapper.eq("uuid", uuid);
BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper);
String kprq = snInvoice.getBillingDate();
String je = snInvoice.getTotalAmount();
String xfsh = snInvoice.getSalesTaxNo();
String se = snInvoice.getAmountTax();
String gfsbh = snInvoice.getPurchaserTaxNo();
String gfmc = snInvoice.getPurchaserName();
String invoiceType = snInvoice.getInvoiceType();
BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice();
recordInvoice.setUuid(fpdm + fphm);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(kprq != null) {
recordInvoice.setInvoiceDate(sdf.parse(kprq));
}else{
recordInvoice.setInvoiceDate(new Date());
log.error("开票日期为空.请检查发票");
}
recordInvoice.setInvoiceCode(fpdm);
recordInvoice.setInvoiceNo(fphm);
recordInvoice.setInvoiceAmount(new BigDecimal(je));
if (se != null) {
recordInvoice.setTaxAmount(new BigDecimal(se));
}
recordInvoice.setXfTaxNo(xfsh); BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice();
recordInvoice.setGfTaxNo(gfsbh); recordInvoice.setUuid(fpdm + fphm);
recordInvoice.setGfName(gfmc); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
recordInvoice.setRzlx("5"); if (kprq != null) {
recordInvoice.setYqsqStatus("1"); recordInvoice.setInvoiceDate(sdf.parse(kprq));
recordInvoice.setYqCurrentPeriod(current.getCurrentTaxPeriod()); } else {
recordInvoice.setCreateDate(new Date()); recordInvoice.setInvoiceDate(new Date());
recordInvoice.setYqsqDate(new Date()); log.error("开票日期为空.请检查发票");
recordInvoice.setSourceSystem("2"); }
recordInvoice.setInvoiceStatus("0"); recordInvoice.setInvoiceCode(fpdm);
recordInvoice.setInvoiceType(invoiceType); recordInvoice.setInvoiceNo(fphm);
recordInvoice.setCompany(company);
if (je != null) {
if (baseTDxRecordInvoice != null) { recordInvoice.setInvoiceAmount(new BigDecimal(je));
baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); }
} else { if (se != null) {
baseTDxRecordInvoiceDao.insert(recordInvoice); recordInvoice.setTaxAmount(new BigDecimal(se));
} }
}
recordInvoice.setXfTaxNo(xfsh);
recordInvoice.setGfTaxNo(gfsbh);
recordInvoice.setGfName(gfmc);
recordInvoice.setRzlx("5");
recordInvoice.setYqsqStatus("1");
recordInvoice.setYqCurrentPeriod(current.getCurrentTaxPeriod());
recordInvoice.setCreateDate(new Date());
recordInvoice.setYqsqDate(new Date());
recordInvoice.setSourceSystem("2");
recordInvoice.setInvoiceStatus("0");
recordInvoice.setInvoiceType(invoiceType);
recordInvoice.setCompany(company);
if (baseTDxRecordInvoice != null) {
baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper);
} else {
baseTDxRecordInvoiceDao.insert(recordInvoice);
} }
return ""; return "";
} }
public Integer pushInvoiceToRecordInvoice2(SNRequestObject snRequestObject) { public Integer pushInvoiceToRecordInvoice2(SNInvoice snInvoice,String imageId,String compCode) {
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
int update = 0; int update = 0;
List<SNInvoice> invoiceInfoList = snRequestObject.getInvoiceInfoList();
String fpdm = snInvoice.getInvoiceCode();
if (invoiceInfoList != null && invoiceInfoList.size() > 0) { String fphm = snInvoice.getInvoiceNumber();
for (SNInvoice snInvoice : invoiceInfoList) { QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
String fpdm = snInvoice.getInvoiceCode(); recordWrapper.eq("uuid", fpdm + fphm);
String fphm = snInvoice.getInvoiceNumber(); BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice();
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>(); recordInvoice.setImageId(imageId);
recordWrapper.eq("uuid", fpdm + fphm); recordInvoice.setCompCode(compCode);
BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice();
recordInvoice.setImageId(snRequestObject.getImageId()); update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper);
recordInvoice.setCompCode(snRequestObject.getCompCode());
// if (invoiceInfoList != null && invoiceInfoList.size() > 0) {
update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); // for (SNInvoice snInvoice : invoiceInfoList) {
} //
} else { // }
String imageId = snRequestObject.getImageId(); // } else {
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>(); // String imageId = snRequestObject.getImageId();
recordWrapper.eq("image_id", imageId); // QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); // recordWrapper.eq("image_id", imageId);
recordInvoice.setImageId(""); // BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice();
recordInvoice.setCompCode(""); // recordInvoice.setImageId("");
// recordInvoice.setCompCode("");
update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); //
} // update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper);
// }
return update; return update;
} }
@ -512,7 +508,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
if (num > 9) { if (num > 9) {
taxRateDetail = "0." + taxRateDetail; taxRateDetail = "0." + taxRateDetail;
} else { } else {
if(!taxRateDetail.startsWith("0")){ if (!taxRateDetail.startsWith("0")) {
taxRateDetail = "0.0" + taxRateDetail; taxRateDetail = "0.0" + taxRateDetail;
} }
} }
@ -555,7 +551,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
return jsonObject; return jsonObject;
} }
public String updateInvoicePoll(@RequestBody SNRequestObject snRequestObject, String company, String taxNo, TDxInvoiceReimburse reimburse, SNInvoice invoice, String fplxdm, String invoiceCode, String invoiceNo) throws Exception { public String updateInvoicePoll(String company, String taxNo, TDxInvoiceReimburse reimburse, SNInvoice invoice, String fplxdm,String imageId,String compCode) throws Exception {
String result = "0000"; String result = "0000";
//判断发票类型 //判断发票类型
@ -573,16 +569,16 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
if (data != null) { if (data != null) {
invoice.setIsDeductible(data.getIsDeductible()); invoice.setIsDeductible(data.getIsDeductible());
invoice.setTaxRate(data.getTaxRate()); invoice.setTaxRate(data.getTaxRate());
if(data.getInvoiceAmount() != null) { if (data.getInvoiceAmount() != null) {
invoice.setTotalAmount(data.getInvoiceAmount().toString()); invoice.setTotalAmount(data.getInvoiceAmount().toString());
} }
if(data.getTaxAmount() != null) { if (data.getTaxAmount() != null) {
invoice.setTotalTax(data.getTaxAmount().toString()); invoice.setTotalTax(data.getTaxAmount().toString());
} }
} }
if (!"ok".equals(invoiceResult.getMsg()) && !"0000".equals(invoiceResult.getMsg())) { if (!"ok".equals(invoiceResult.getMsg()) && !"0000".equals(invoiceResult.getMsg())) {
log.info("价税分离失败:{}",invoiceResult.getMsg()); log.info("价税分离失败:{}", invoiceResult.getMsg());
return invoiceResult.getMsg(); return invoiceResult.getMsg();
} }
@ -608,11 +604,11 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
|| "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm) || "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm)
|| "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) { || "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) {
//可查验发票,已入库,更新票池 //可查验发票,已入库,更新票池
Integer integer = this.pushInvoiceToRecordInvoice2(snRequestObject); Integer integer = this.pushInvoiceToRecordInvoice2(invoice,imageId,compCode);
log.info("可查验发票,更新底账库完成"); log.info("可查验发票,更新底账库完成");
} else { } else {
//不可查验发票,未入库,插入票池 //不可查验发票,未入库,插入票池
this.pushInvoiceToRecordInvoice(snRequestObject, taxNo, company); this.pushInvoiceToRecordInvoice(invoice, taxNo, company);
log.info("不可查验发票,插入底账库成功"); log.info("不可查验发票,插入底账库成功");
} }
@ -621,7 +617,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
} }
private TDxInvoiceReimburse convertToReimburse(SNInvoice invoice, TDxInvoiceReimburse reimburse, String fplxdm, String company) { private TDxInvoiceReimburse convertToReimburse(SNInvoice invoice, TDxInvoiceReimburse reimburse, String fplxdm, String company) {
reimburse.setId(IdUtils.nextId());
reimburse.setInvoiceType(fplxdm); reimburse.setInvoiceType(fplxdm);
reimburse.setInvoiceCode(invoice.getInvoiceCode()); reimburse.setInvoiceCode(invoice.getInvoiceCode());
reimburse.setInvoiceNo(invoice.getInvoiceNumber()); reimburse.setInvoiceNo(invoice.getInvoiceNumber());

@ -307,6 +307,10 @@ public class SignSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<SignRecord
invoiceDetail.setUnitPrice(invoiceDetailQuery.getString("unitPrice")); invoiceDetail.setUnitPrice(invoiceDetailQuery.getString("unitPrice"));
invoiceDetail.setDetailAmount(invoiceDetailQuery.getString("detailAmount")); invoiceDetail.setDetailAmount(invoiceDetailQuery.getString("detailAmount"));
invoiceDetail.setTaxRate(invoiceDetailQuery.getString("taxRate")); invoiceDetail.setTaxRate(invoiceDetailQuery.getString("taxRate"));
if(invoiceDetailQuery.getString("taxRate") != null){
invoiceDetail.setTaxCode(getZSM(invoiceDetailQuery.getString("taxRate")));
}
invoiceDetail.setTaxAmount(invoiceDetailQuery.getString("taxAmount")); invoiceDetail.setTaxAmount(invoiceDetailQuery.getString("taxAmount"));
if (FplxEnum.TXF.getFplxDm().equals(invoiceType)) { if (FplxEnum.TXF.getFplxDm().equals(invoiceType)) {
// 通行费发票 // 通行费发票
@ -326,6 +330,56 @@ public class SignSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<SignRecord
} }
} }
private String getZSM(String taxRate) {
String sm = "";
switch (taxRate) {
// 发票采集
case "0.00":
sm = "J0";
break;
case "免税":
sm = "J0";
break;
case "0.16":
sm = "J1";
break;
case "0.13":
sm = "J2";
break;
case "0.10":
sm = "J3";
break;
case "0.09":
sm = "J4";
break;
case "0.06":
sm = "J5";
break;
case "0.05":
sm = "J6";
break;
case "0.03":
sm = "J7";
break;
case "0.02":
sm = "J8";
break;
case "0.01":
sm = "J9";
break;
case "0.17":
sm = "JC";
break;
default:
sm = "";
break;
}
return sm;
}
@Override @Override
public TDxVehicleSaleInvoice getVehicleSaleInvoice(JSONObject queryInvoiceResult) { public TDxVehicleSaleInvoice getVehicleSaleInvoice(JSONObject queryInvoiceResult) {
String invoiceType = queryInvoiceResult.getString("invoiceType"); String invoiceType = queryInvoiceResult.getString("invoiceType");

Loading…
Cancel
Save