查验bug修复

beta-enc
kane 2 years ago
parent 8bfe607587
commit b6e0563ae4
  1. 33
      jianshui-admin/src/main/java/com/jianshui/api/config/WebserviceResponseHandler.java
  2. 98
      jianshui-admin/src/main/java/com/jianshui/api/controller/webservice/income/v1/impl/InvoiceCheckWebServiceImpl.java

@ -77,7 +77,34 @@ public class WebserviceResponseHandler implements SOAPHandler<SOAPMessageContext
}
}
// public static void addCDataToLeafNodes(Node node) {
// NodeList childNodes = node.getChildNodes();
// for (int i = 0; i < childNodes.getLength(); i++) {
// Node childNode = childNodes.item(i);
// if (childNode.getNodeType() == Node.ELEMENT_NODE) {
// addCDataToLeafNodes(childNode);
// String cdatameg = "<"+childNode.getNodeName()+">"+childNode.getNodeValue()+"</"+childNode.getNodeName()+">";
// CDATASection cdata = childNode.getOwnerDocument().createCDATASection(cdatameg);
// node.removeChild(childNode);
// node.appendChild(cdata);
// }
// else if (childNode.getNodeType() == Node.TEXT_NODE) {
// if (!childNode.getNodeValue().isEmpty()) {
// CDATASection cdata = childNode.getOwnerDocument().createCDATASection(childNode.getNodeValue());
// node.removeChild(childNode);
// node.appendChild(cdata);
// }
// }
// }
// }
// 提到外面的
// TODO 未修完成
// public static void addCDataToLeafNodes(Node node){
// NodeList childNodes = node.getChildNodes();
// for (int i = 0; i < childNodes.getLength(); i++){
@ -87,7 +114,11 @@ public class WebserviceResponseHandler implements SOAPHandler<SOAPMessageContext
// addCDataToLeafNodes(childNode);
// }
// else if (xiaochildNode!=null&&xiaochildNode.getNodeType() == Node.TEXT_NODE) {
// String cdatameg = "<"+childNode.getNodeName()+">"+xiaochildNode.getNodeValue()+"</"+childNode.getNodeName()+">";
// String cdatameg = "<"+childNode.getNodeName()+">"+"<![CDATA["+xiaochildNode.getNodeValue()+"]]&gt;"+"</"+childNode.getNodeName()+">";
// CDATASection cdata = childNode.getOwnerDocument().createCDATASection(cdatameg);
// node.replaceChild(cdata,childNode);
// }else {
// String cdatameg = "<"+childNode.getNodeName()+">"+"<![CDATA[]]&gt;"+"</"+childNode.getNodeName()+">";
// CDATASection cdata = childNode.getOwnerDocument().createCDATASection(cdatameg);
// node.replaceChild(cdata,childNode);
// }

@ -33,6 +33,7 @@ import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@ -133,7 +134,7 @@ public class InvoiceCheckWebServiceImpl {
return buildResult(result, "1", "开票日期不能为空", null);
}
boolean isMatch = ReUtil.isMatch("^\\d{4}-\\d{2}-\\d{2}$", InvTime);
if(!isMatch){
if (!isMatch) {
return buildResult(result, "1", "开票日期格式错误 yyyy-MM-dd", null);
}
// 如果Jym这个参数为空,我就去判断InvOther是否为6位且不带小数点,如果确实如此,那就直接将InvOther作为校验码传给大象
@ -200,7 +201,7 @@ public class InvoiceCheckWebServiceImpl {
request.put("fphm", InvNo);
request.put("jym", Jym);
AjaxResult invoiceResult = incomeService.checkInvoiceSingle(companyservice, request);
log.info("【发票查询结果】companyid:{},serviceKey:{},param:{},invoiceResult:{}", companyservice.getCompanyid(), serviceKey, request,JSONObject.toJSONString(invoiceResult));
log.info("【发票查询结果】companyid:{},serviceKey:{},param:{},invoiceResult:{}", companyservice.getCompanyid(), serviceKey, request, JSONObject.toJSONString(invoiceResult));
// JSONObject data = JSONObject.parseObject("{\n" +
// " \"robUserMoney\": 0,\n" +
// " \"resultContent\": {\n" +
@ -291,16 +292,16 @@ public class InvoiceCheckWebServiceImpl {
// " }");
// AjaxResult invoiceResult = AjaxResult.success(data);
if (invoiceResult.isError()) {
if ("超过该张票当天查验次数".equals(invoiceResult.getMsg())){
return buildResult(result,"002","超过该张发票当日查验次数(请于次日再次查验)!",null);
}else if ("查验异常".equals(invoiceResult.getMsg())){
return buildResult(result,"084","开票金额或校验码不合法!",null);
}else if ("请求不合法".equals(invoiceResult.getMsg())){
return buildResult(result,"005","请求不合法!",null);
}else if ("发票不存在".equals(invoiceResult.getMsg())){
return buildResult(result,"009","查无此票!",null);
}else {
return buildResult(result, StrUtil.padPre(String.valueOf(invoiceResult.getCode()), 3, '0') , invoiceResult.getMsg(), null);
if ("超过该张票当天查验次数".equals(invoiceResult.getMsg())) {
return buildResult(result, "002", "超过该张发票当日查验次数(请于次日再次查验)!", null);
} else if ("查验异常".equals(invoiceResult.getMsg())) {
return buildResult(result, "084", "开票金额或校验码不合法!", null);
} else if ("请求不合法".equals(invoiceResult.getMsg())) {
return buildResult(result, "005", "请求不合法!", null);
} else if ("发票不存在".equals(invoiceResult.getMsg())) {
return buildResult(result, "009", "查无此票!", null);
} else {
return buildResult(result, StrUtil.padPre(String.valueOf(invoiceResult.getCode()), 3, '0'), invoiceResult.getMsg(), null);
}
}
@ -329,7 +330,7 @@ public class InvoiceCheckWebServiceImpl {
} catch (ParseException e) {
new JianshuiServiceException("日期转换错误");
}
if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
//二手车相关结果
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -362,7 +363,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFplx(invoiceCheck.getFpzl());
getInvoiceVO.setZfbz(invoiceCheck.getZfbz());
getInvoiceVO.setBz(invoiceCheck.getBz());
}else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
//机动车相关结果
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -377,9 +378,9 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setSjdh(invoiceCheck.getInvoiceCheckCar().getSjdh());
getInvoiceVO.setFdjhm(invoiceCheck.getInvoiceCheckCar().getFdjhm());
getInvoiceVO.setClsbdh(invoiceCheck.getInvoiceCheckCar().getClsbh());
if (invoiceCheck.getInvoiceCheckCar().getJszmsh() == null){
if (invoiceCheck.getInvoiceCheckCar().getJszmsh() == null) {
getInvoiceVO.setJkzmsh("");
}else {
} else {
getInvoiceVO.setJkzmsh(invoiceCheck.getInvoiceCheckCar().getJszmsh());
}
getInvoiceVO.setXfmc(invoiceCheck.getXhfmc());
@ -399,7 +400,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else if (InvoiceType.JUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.JUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
//卷票
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -420,7 +421,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
getInvoiceVO.setZfbz(invoiceCheck.getZfbz());
}else if (InvoiceType.QUAN_DIAN_ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl()) || InvoiceType.QUAN_DIAN_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.QUAN_DIAN_ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl()) || InvoiceType.QUAN_DIAN_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
getInvoiceVO.setKprq(newKprq);
@ -441,7 +442,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
getInvoiceVO.setZfbz(invoiceCheck.getZfbz());
}else if (InvoiceType.TONG_XING_FEI_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.TONG_XING_FEI_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
getInvoiceVO.setKprq(newKprq);
@ -461,7 +462,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else if (InvoiceType.ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 专票结果
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -482,7 +483,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else if (InvoiceType.DIAN_ZI_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.DIAN_ZI_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 电子普票
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -503,7 +504,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else if (InvoiceType.ZHENG_ZHI_SHUI_PU_TONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.ZHENG_ZHI_SHUI_PU_TONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 增值税普通发票
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -524,7 +525,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else if (InvoiceType.DIAN_ZI_ZHUAN_YONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.DIAN_ZI_ZHUAN_YONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 电子专用发票
getInvoiceVO.setFpdm(invoiceCheck.getFpdm());
getInvoiceVO.setFphm(invoiceCheck.getFphm());
@ -545,28 +546,28 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceVO.setFpje(invoiceCheck.getFpje());
getInvoiceVO.setFpse(invoiceCheck.getFpse());
getInvoiceVO.setJshj(invoiceCheck.getJshj());
}else {
} else {
//通用结果
getInvoiceVO.setXfmc(invoiceCheck.getXhfmc());
getInvoiceVO.setXfsbh(invoiceCheck.getXhfsbh());
getInvoiceVO.setXfdzdh(invoiceCheck.getXhfdzdh());
getInvoiceVO.setXfyhzh(invoiceCheck.getXhfyhzh());
BeanUtils.copyProperties(invoiceCheck, getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckToll(),getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckFreight(),getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckHangkong(),getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckTielu(),getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckToll(), getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckFreight(), getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckHangkong(), getInvoiceVO);
BeanUtils.copyProperties(invoiceCheck.getInvoiceCheckTielu(), getInvoiceVO);
getInvoiceVO.setZfbz(invoiceCheck.getZfbz());
getInvoiceVO.setKprq(newKprq);
}
String zfbz = getInvoiceVO.getZfbz();
if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 二手车不用返回红冲标志
invoiceCheck.getFpzl();
}else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 机动车不用返回红冲标志
invoiceCheck.getFpzl();
}else {
} else {
if (StringUtils.equals(zfbz, "Y")) {
getInvoiceVO.setZfbz("Y");
getInvoiceVO.setHcbz("N");
@ -585,7 +586,7 @@ public class InvoiceCheckWebServiceImpl {
if (CollectionUtil.isNotEmpty(details)) {
for (InvoiceCheckDetail detail : details) {
GetInvoiceSphVO getInvoiceSphVO = new GetInvoiceSphVO();
if (InvoiceType.JUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())){
if (InvoiceType.JUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 卷票详情
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -603,7 +604,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVO.setSpsl(detail.getSpsl());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.QUAN_DIAN_ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl()) || InvoiceType.QUAN_DIAN_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.QUAN_DIAN_ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl()) || InvoiceType.QUAN_DIAN_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 全电专票详情
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -616,10 +617,10 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVO.setSpsl(detail.getSpsl());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.JI_DONG_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 机动车没有详情
getInvoiceSphVO.getLx();
}else if (InvoiceType.TONG_XING_FEI_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.TONG_XING_FEI_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 通行发票
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setCph(detail.getCph());
@ -631,10 +632,10 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSl(detail.getSl());
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.ER_SHOU_CHE_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 二手车没有详情
getInvoiceVO.getFplx();
}else if (InvoiceType.ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.ZHUAN_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 专票详情
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -646,7 +647,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSl(detail.getSl());
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.DIAN_ZI_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.DIAN_ZI_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 电子普票
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -658,7 +659,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSl(detail.getSl());
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.ZHENG_ZHI_SHUI_PU_TONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.ZHENG_ZHI_SHUI_PU_TONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 增值税普通发票
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -670,7 +671,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSl(detail.getSl());
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else if (InvoiceType.DIAN_ZI_ZHUAN_YONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())){
} else if (InvoiceType.DIAN_ZI_ZHUAN_YONG_FA_PIAO.getCode().equals(invoiceCheck.getFpzl())) {
// 电子专用发票
getInvoiceSphVO.setHwmc(detail.getHwmc());
getInvoiceSphVO.setGgxh(detail.getGgxh());
@ -682,7 +683,7 @@ public class InvoiceCheckWebServiceImpl {
getInvoiceSphVO.setSl(detail.getSl());
getInvoiceSphVO.setSsflbm(detail.getSsflbm());
getInvoiceSphVOList.add(getInvoiceSphVO);
}else {
} else {
getInvoiceSphVO.setSsflbm(detail.getSpbmjc());
BeanUtils.copyProperties(detail, getInvoiceSphVO);
// 含税金额
@ -695,10 +696,9 @@ public class InvoiceCheckWebServiceImpl {
}
// getInvoiceVO转成JSONObject
// JSONObject getInvoiceVOJson = (JSONObject) JSONObject.toJSON(getInvoiceVO);
String getInvoiceVOJsonStr = JSON.toJSONString(getInvoiceVO,SerializerFeature.WriteSlashAsSpecial);
String getInvoiceVOJsonStr = JSON.toJSONString(getInvoiceVO, SerializerFeature.WriteSlashAsSpecial);
JSONObject getInvoiceVOJson = JSONObject.parseObject(getInvoiceVOJsonStr);
Element getInvoiceDoc = json2Element(result, "Fp", getInvoiceVOJson);
@ -708,19 +708,13 @@ public class InvoiceCheckWebServiceImpl {
// 航信明细行从1开始
getInvoiceSphVO.setId(getInvoiceSphVO.getId() + count);
// 防止转义
if (!InvoiceType.DIAN_ZI_PU_PIAO.getCode().equals(invoiceCheck.getFpzl())){
String getInvoiceSphVOJsonStr = JSON.toJSONString(getInvoiceSphVO, SerializerFeature.WriteSlashAsSpecial);
getInvoiceSphVOJsonStr = getInvoiceSphVOJsonStr.replace("免税","0.0%").replace("***","0.00");
// getInvoiceSphVOJsonStr = getInvoiceSphVOJsonStr.replace("免税","0.0%").replace("***","0.00");
JSONObject getInvoiceSphVOJson = JSONObject.parseObject(getInvoiceSphVOJsonStr);
Element sphElement = json2Element(result, "Sph", getInvoiceSphVOJson);
getInvoiceDoc.appendChild(sphElement);
}else {
String getInvoiceSphVOJsonStr = JSON.toJSONString(getInvoiceSphVO, SerializerFeature.WriteSlashAsSpecial);
JSONObject getInvoiceSphVOJson = JSONObject.parseObject(getInvoiceSphVOJsonStr);
Element sphElement = json2Element(result, "Sph", getInvoiceSphVOJson);
getInvoiceDoc.appendChild(sphElement);
}
count ++;
count++;
}
return buildResult(result, "1", "查验成功", getInvoiceDoc);

Loading…
Cancel
Save