feature: 红字查询返回报文修改

jianshui-ui
xingze 11 months ago
parent 23cf7bc97d
commit 2774c07907
  1. 5
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 65
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/response/AisinoInvoiceResponseAdapterImpl.java
  3. 11
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java

@ -383,13 +383,14 @@ public class InvoiceController {
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse tempResult = invoiceService.findReadInfoByHzqrdbh(billInfo, companyservice);
result.add(tempResult.getData());
HXResponse hxResponse = new HXResponse("0000", "查询成功", result);
HXResponse hxResponse = new HXResponse(tempResult.getStatus(), tempResult.getMessage(), result);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey);
return invoiceResponseService.response(hxResponse, companyservice, "query");
Object query = invoiceResponseService.response(hxResponse, companyservice, "hzqrdFind");
return query;
}

@ -99,6 +99,71 @@ public class AisinoInvoiceResponseAdapterImpl implements IInvoiceResponseService
queryResult.put("list", new ArrayList<>());
}
// 红字确认单查询
if (StringUtils.equals("hzqrdFind", query)) {
// 判断有无data
Object datas = result.getData();
// 如果datas不为Null
if (datas != null) {
// 如果返回将诶过为invioce
List<AisinoJnInvoiceResponse> responses = new ArrayList<>();
if (datas instanceof List) {
for (int ij = 0; ij < ((List<?>) datas).size(); ij++) {
Object data = ((List<?>) datas).get(ij);
// 转为HxInvoice
Invoice invoice = (Invoice) data;
if (invoice == null) {
continue;
}
AisinoJnInvoiceResponse invoiceResponse = new AisinoJnInvoiceResponse();
BeanUtils.copyProperties(invoice, invoiceResponse);
String invoiceType = DictUtils.getDictLabel("invoice_type", invoice.getInvoiceType());
if (invoiceType != null) {
invoiceResponse.setInvoiceType(invoiceType);
}
// 处理发票状态
// 处理Detail
List<InvoiceDetail> detailList = invoice.getInvoiceDetailList();
if (detailList != null) {
List<AisinoJnInvoiceDetailResponse> invoiceDetailResponses = new ArrayList<>();
for (int i = 0; i < detailList.size(); i++) {
AisinoJnInvoiceDetailResponse response = new AisinoJnInvoiceDetailResponse();
InvoiceDetail tempDetail = detailList.get(i);
BeanUtils.copyProperties(tempDetail, response);
Integer hsbz = tempDetail.getHsbz();
if (hsbz == 0) {
response.setHsbz("false");
response.setTaxamt(null);
// 如果不含税
} else {
// 如果含税
response.setHsbz("true");
response.setTaxfreeamt(response.getTaxamt());
}
invoiceDetailResponses.add(response);
}
invoiceResponse.setInvoiceDetailList(invoiceDetailResponses);
}
responses.add(invoiceResponse);
}
JSONObject queryResult = new JSONObject();
queryResult.put("message", result.getMessage());
queryResult.put("list", responses);
queryResult.put("status", result.getStatus());
return queryResult;
}
}
JSONObject queryResult = new JSONObject();
queryResult.put("result", result.getMessage());
queryResult.put("list", new ArrayList<>());
}
// 如果是开具红票
if (StringUtils.equals("add_redinfo", query)) {
return result;

@ -1260,11 +1260,11 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) {
log.error("【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(queryBody).toString(), JSONObject.toJSONString(companyservice));
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
return new HXResponse("9999", "系统异常!");
}
// 判断外层报文是否成功
if (queryResult.isError()) {
throw new JianshuiServiceException(queryResult.getMsg());
return new HXResponse("9999", "未查询到发票结果");
}
JSONObject contentJson = queryResult.getJsonData();
ElephantInvoiceQueryResultDTO queryResultDTO = contentJson.toJavaObject(ElephantInvoiceQueryResultDTO.class);
@ -1281,13 +1281,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
if (billInfo.getFpqqlsh() != null) {
tempInvoice.setFpqqlsh(billInfo.getFpqqlsh());
}
return new HXResponse(queryResultDTO.getZTXX(), tempInvoice);
return new HXResponse("9999", queryResultDTO.getZTXX());
}
List<DDFPZXX> ddfpzxxes = queryResultDTO.getDDFPZXX();
if (ddfpzxxes.size() > 1) {
HXResponse response = new HXResponse("9996", "一次只能查询一张发票");
return response;
return new HXResponse("9999", "一次只能查询一张发票");
}
DDFPZXX ddfpzxx = ddfpzxxes.get(0);
DDFPXX ddfpxx = ddfpzxx.getDDFPXX();
@ -1378,7 +1377,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} catch (ParseException e) {
e.printStackTrace();
log.error("【销项发票】【大象接口】【订单查询】 发票格式化日期错误。请求报文{},大象返回报文{},原始报文{}", queryBody.toJSONString(), queryResult.toString(), JSONObject.toJSONString(billInfo));
throw new JianshuiServiceException("日期处理错误,请联系管理员!");
return new HXResponse("9999", "日期处理错误,请联系管理员!");
}
invoice.setBuyerName(ddfpxx.getGMFMC()); // "购方名称"
invoice.setBuyerTaxnum(ddfpxx.getGMFSBH()); // "购方税号"

Loading…
Cancel
Save