@ -6,6 +6,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.util.ObjUtil ;
import cn.hutool.core.util.StrUtil ;
import cn.hutool.http.HttpUtil ;
import cn.hutool.json.JSONConfig ;
import cn.hutool.json.JSONUtil ;
import com.alibaba.druid.support.json.JSONUtils ;
@ -48,10 +49,8 @@ import com.jianshui.invoice.domain.dto.api.jcsk.CxhzTwoDTO;
import com.jianshui.invoice.domain.ele.* ;
import com.jianshui.invoice.domain.vo.InvoiceAllQycodeResultElEVO ;
import com.jianshui.invoice.domain.vo.jcsk.* ;
import com.jianshui.invoice.mapper.BillInfoMapper ;
import com.jianshui.invoice.mapper.InvoiceFileMapper ;
import com.jianshui.invoice.mapper.InvoiceMapper ;
import com.jianshui.invoice.mapper.RedinfoMapper ;
import com.jianshui.invoice.enums.InvoiceBackStatusEnum ;
import com.jianshui.invoice.mapper.* ;
import com.jianshui.invoice.service.IBillInfoService ;
import com.jianshui.invoice.service.IInvoiceApiService ;
import com.jianshui.invoice.task.QueryInvoiceTask ;
@ -133,6 +132,11 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
@Autowired
private InvoiceFileMapper invoiceFileMapper ;
@Autowired
private InvoiceBackMapper invoiceBackMapper ;
private static String ELE_File_URL ;
private static String ELE_File_URL_DC ;
@ -204,8 +208,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
// 订单票面信息
DDPCXX ddpcxx = new DDPCXX ( ) ;
// ddpcxx.setKPFS("1"); // 设置开票方式为手动开票
@ -430,8 +432,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} else if ( StringUtils . isNotEmpty ( billInfo . getOutTradeOrderno ( ) ) ) {
queryWrapper . eq ( "out_trade_orderno" , billInfo . getOutTradeOrderno ( ) ) ;
} else {
HXResponse response = new HXResponse ( "9997" , "订单号或流水号不能同时为空" ) ;
return response ;
return new HXResponse ( "9997" , "订单号或流水号不能同时为空" ) ;
}
queryWrapper . orderByDesc ( "id" ) ;
@ -1087,10 +1088,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
@Override
public void callBackAisino ( InvoiceBack invoiceBack , String callBackUrl , String identity , Long id ) {
}
/** 邮箱交付 */
@Override
@ -2996,4 +2994,413 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/** 批量开票接口 */
@Override
public HXResponse addInvoiceBeatch ( BillInfo billInfo , Companyservice companyservice ) throws IllegalAccessException , InstantiationException {
return submitAddInvoice ( billInfo , companyservice ) ;
}
@Override
public void callBackAisino ( InvoiceBack invoiceBack , String callBackUrl , String identity , Long id ) {
if ( id = = null ) {
log . info ( "【控制台】发票回调,id为空" ) ;
return ;
}
// 回调地址获取
if ( StrUtil . isEmpty ( callBackUrl ) ) {
ICompanyservicePropService companyserviceProp = SpringUtils . getBean ( ICompanyservicePropService . class ) ;
CompanyserviceProp secretIdProp = companyserviceProp . selectPropByKey ( Long . valueOf ( identity ) , "aisino_callback_url" ) ;
if ( BeanUtil . isNotEmpty ( secretIdProp ) & & secretIdProp . getValue ( ) ! = null & & ! "" . equals ( secretIdProp . getValue ( ) ) ) {
callBackUrl = secretIdProp . getValue ( ) ;
}
}
Invoice invoice = invoiceMapper . selectInvoiceById ( id ) ;
if ( invoice = = null ) {
log . info ( "【控制台】发票信息未查询到,id={}" , id ) ;
invoice = new Invoice ( ) ;
invoice . setOutTradeOrderno ( invoiceBack . getSystemOrderno ( ) ) ;
invoice . setState ( 22 ) ;
String resultMsg = invoiceBack . getResultMsg ( ) ;
String message = ( resultMsg ! = null & & resultMsg . length ( ) > 200 ) ? resultMsg . substring ( 0 , 200 ) : resultMsg ;
invoice . setMessage ( message ) ;
}
try {
log . info ( "【控制台】发票回调接口,发送数据开始,id={},callBackUrl={},param={}" , id , callBackUrl , JSONUtil . toJsonStr ( invoice ) ) ;
String result = HttpUtil . post ( callBackUrl , JSONUtil . toJsonStr ( invoice ) ) ;
log . info ( "【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}" , id , result ) ;
cn . hutool . json . JSONObject jsonObject = JSONUtil . parseObj ( result ) ;
if ( jsonObject ! = null ) {
String status = jsonObject . get ( "status" ) ! = null ? jsonObject . get ( "status" ) . toString ( ) : "" ;
String message = jsonObject . get ( "message" ) ! = null ? jsonObject . get ( "message" ) . toString ( ) : "" ;
if ( "0000" . equals ( status ) ) {
invoiceBack . setStatus ( "1" ) ;
invoiceBack . setBackMsg ( message ! = null ? message . substring ( 0 , Math . min ( message . length ( ) , 200 ) ) : "" ) ;
invoiceBack . setUpdateTime ( new Date ( ) ) ;
invoiceBackMapper . updateInvoiceBack ( invoiceBack ) ;
} else if ( "9999" . equals ( status ) ) {
invoiceBack . setStatus ( "3" ) ;
invoiceBack . setBackMsg ( message ! = null ? message . substring ( 0 , Math . min ( message . length ( ) , 200 ) ) : "" ) ;
invoiceBack . setUpdateTime ( new Date ( ) ) ;
invoiceBackMapper . updateInvoiceBack ( invoiceBack ) ;
} else {
invoiceBack . setStatus ( "2" ) ;
invoiceBack . setUpdateTime ( new Date ( ) ) ;
invoiceBack . setBackMsg ( status + message ! = null ? message . substring ( 0 , Math . min ( message . length ( ) , 200 ) ) : "" ) ;
invoiceBackMapper . updateInvoiceBack ( invoiceBack ) ;
}
}
} catch ( Exception e ) {
log . info ( "【控制台】发票回调接口,发送数据异常,id={},e={}" , id , e ) ;
invoiceBack . setStatus ( "2" ) ;
invoiceBack . setBackMsg ( "发送数据异常!" ) ;
invoiceBackMapper . updateInvoiceBack ( invoiceBack ) ;
}
}
/ * *
* @author kk
* @date 2024 / 4 / 8 14 : 55
* @param : [ billInfo , companyservice ]
* @return : 提交开票
* /
public HXResponse submitAddInvoice ( BillInfo billInfo , Companyservice companyservice ) throws IllegalAccessException , InstantiationException {
// 1.订单唯一校验。新增历史订单部分(删除)。
// 订单号唯一校验 start
String outNO = billInfo . getOutTradeOrderno ( ) ! = null ? billInfo . getOutTradeOrderno ( ) : "" ;
if ( StrUtil . isEmpty ( outNO ) ) {
return new HXResponse ( "批量开票:订单号为空,请检查报文!" ) ;
}
// update_by 0未删除 1已删除
Invoice invoiceValidateTemp = new Invoice ( ) ;
List < Invoice > invoicesValidate = invoiceMapper . selectByOutTradeOrdernoList ( companyservice . getCompanyid ( ) , outNO , "0" ) ;
// 开票回调失败防重复处理 start
if ( ! org . springframework . util . CollectionUtils . isEmpty ( invoicesValidate ) ) {
for ( Invoice invoice : invoicesValidate ) {
QueryWrapper < InvoiceBack > invoiceBackQueryWrapper = new QueryWrapper < > ( ) ;
invoiceBackQueryWrapper . eq ( "system_orderno" , invoice . getOutTradeOrderno ( ) ) ;
InvoiceBack invoiceBackVali = invoiceBackMapper . selectOne ( invoiceBackQueryWrapper ) ;
if ( BeanUtil . isEmpty ( invoiceBackVali ) ) {
invoiceBackVali = new InvoiceBack ( ) ;
invoiceBackVali . setSystemOrderno ( invoice . getOutTradeOrderno ( ) ) ;
invoiceBackVali . setCreateTime ( new Date ( ) ) ;
invoiceBackVali . setId ( IdUtils . randomUUID ( ) ) ;
invoiceBackVali . setIdentity ( companyservice . getIdentity ( ) ) ;
invoiceBackVali . setBackUrl ( "" ) ;
invoiceBackVali . setStatus ( "0" ) ;
invoiceBackVali . setCreateTime ( new Date ( ) ) ;
invoiceBackVali . setSystemOrderno ( invoice . getOutTradeOrderno ( ) ) ;
invoiceBackVali . setBackMsg ( "" ) ;
invoiceBackVali . setResultCode ( "0000" ) ;
invoiceBackVali . setResultMsg ( "开票成功!" ) ;
invoiceBackVali . setUpdateTime ( new Date ( ) ) ;
invoiceBackMapper . insertInvoiceBack ( invoiceBackVali ) ;
} else {
invoiceBackVali . setResultCode ( "0000" ) ;
invoiceBackVali . setResultMsg ( "开票成功!" ) ;
invoiceBackVali . setStatus ( "0" ) ;
invoiceBackVali . setUpdateTime ( new Date ( ) ) ;
invoiceBackMapper . updateInvoiceBack ( invoiceBackVali ) ;
}
// 再次推送
try {
callBackAisino ( invoiceBackVali , "" , companyservice . getIdentity ( ) , invoice . getId ( ) ) ;
} catch ( Exception e ) {
log . info ( "【批量开票】发票回调失败!invoiceId={}" , invoice . getId ( ) ) ;
}
}
return new HXResponse ( "0000" , "批量开票:重复订单已推送!" ) ;
}
// end
// 预处理
try {
billInfo = BillInfoUtils . processBillInfo ( billInfo , companyservice ) ;
} catch ( JianshuiParamErrorException e ) {
return new HXResponse ( e . getMessage ( ) ) ;
} catch ( Exception e ) {
log . error ( "【销项】【大象发票】【批量开票】开票接口校验异常" , e ) ;
return new HXResponse ( "格式校验失败,请检查报文" ) ;
}
// 订单头信息
DDTXX ddtxx = new DDTXX ( billInfo ) ;
CompanyserviceProp companyserviceProp = companyservicePropMapper . selectPropByKey ( companyservice . getCompanyid ( ) , "account_show" ) ;
if ( companyserviceProp ! = null & & "1" . equals ( companyserviceProp . getValue ( ) ) ) {
StringBuilder bz = new StringBuilder ( ) ;
if ( StringUtils . isNotBlank ( ddtxx . getBZ ( ) ) ) {
bz . append ( ddtxx . getBZ ( ) ) . append ( "\n" ) ;
}
String buyerBank = billInfo . getBuyerBank ( ) ;
String buyerAccount = billInfo . getBuyerAccount ( ) ;
String sellerAccount = billInfo . getSellerAccount ( ) ;
String sellerBank = billInfo . getSellerBank ( ) ;
bz . append ( "购方开户银行账号:" ) ;
if ( StringUtils . isNotBlank ( buyerBank ) ) {
bz . append ( "\t" ) . append ( buyerBank ) ;
}
if ( StringUtils . isNotBlank ( buyerAccount ) ) {
bz . append ( "\t" ) . append ( buyerAccount ) ;
}
bz . append ( "\n" ) ;
bz . append ( "销方开户银行账号:" ) ;
if ( StringUtils . isNotBlank ( sellerBank ) ) {
bz . append ( "\t" ) . append ( sellerBank ) ;
}
if ( StringUtils . isNotBlank ( sellerAccount ) ) {
bz . append ( "\t" ) . append ( sellerAccount ) ;
}
log . info ( "备注信息:\n{}" , bz ) ;
ddtxx . setBZ ( bz . toString ( ) ) ;
}
// 订单票面信息
DDPCXX ddpcxx = new DDPCXX ( ) ;
// ddpcxx.setKPFS("1"); // 设置开票方式为手动开票
ddpcxx . setDDQQPCH ( billInfo . getSystemOrderno ( ) ) ;
ddpcxx . setNSRSBH ( billInfo . getSellerTaxnum ( ) ) ;
ddpcxx . setKPZD ( billInfo . getTerminalNumber ( ) ) ;
String invioceType = billInfo . getInvoiceType ( ) ;
String fplxdm = ElephantUtils . transElephantType ( invioceType , 1 ) ;
ddpcxx . setFPLXDM ( fplxdm ) ;
//kk 2023/9/15 V6数电新增
// 标准开具
Qdtxx qdtxx = BeanUtil . copyProperties ( billInfo , Qdtxx . class ) ;
// 2023/9/22 特定要素类型代码处理
qdtxx . setTdys ( billInfo . getTdys ( ) ) ;
qdtxx . setQydm ( billInfo . getDqbm ( ) ) ;
qdtxx . setFJYSLIST ( billInfo . getFjyslist ( ) ) ; // 附加要素列表
qdtxx . setHWYSLIST ( billInfo . getHwysList ( ) ) ; // 货物运输
if ( billInfo . getBdcxsxxList ( ) ! = null & & ! billInfo . getBdcxsxxList ( ) . isEmpty ( ) ) {
qdtxx . setBDCXSXX ( billInfo . getBdcxsxxList ( ) . get ( 0 ) ) ; // 不动产销售信息
}
if ( billInfo . getJzfwList ( ) ! = null & & ! billInfo . getJzfwList ( ) . isEmpty ( ) ) {
qdtxx . setJZFWXX ( billInfo . getJzfwList ( ) . get ( 0 ) ) ; // 建筑服务信息
}
if ( billInfo . getBdczlxxList ( ) ! = null & & ! billInfo . getBdczlxxList ( ) . isEmpty ( ) ) {
qdtxx . setBDCZLXX ( billInfo . getBdczlxxList ( ) . get ( 0 ) ) ; // 不动产租赁信息
}
// qdtxx.setBDCZLXX(billInfo.getBdczlxxList()); //不动产租赁信息
// 特殊票种地请求接口名转换
String url = ElephantConstantsV6 . ADD_INVOICE_LOCALHOST ;
if ( CollectionUtils . isNotEmpty ( qdtxx . getHWYSLIST ( ) ) ) {
//GenerateQdHwysInvoice 货物运输
url = ElephantConstantsV6 . GENERATE_QD_HWYS_INVOICE ;
} else if ( BeanUtil . isNotEmpty ( qdtxx . getBDCXSXX ( ) ) ) {
// GenerateQdBdcxsInvoice 不动产销售信息
url = ElephantConstantsV6 . GENERATE_QD_BDCXS_INVOICE ;
} else if ( BeanUtil . isNotEmpty ( qdtxx . getJZFWXX ( ) ) ) {
// GenerateQdJzfwInvoice 建筑服务信息
url = ElephantConstantsV6 . GENERATE_QD_JZFW_INVOICE ;
} else if ( BeanUtil . isNotEmpty ( qdtxx . getBDCZLXX ( ) ) ) {
// GenerateQdBdczlInvoice 不动产租赁信息
url = ElephantConstantsV6 . GENERATE_QD_BDXZL_INVOICE ;
}
// 开始处理详情
List < BillDetail > details = billInfo . getBillDetailList ( ) ;
List < DDMXXX > ddmxxxList = new ArrayList < > ( ) ;
for ( int i = 0 ; i < details . size ( ) ; i + + ) {
BillDetail detail = details . get ( i ) ;
DDMXXX ddmxxx = new DDMXXX ( billInfo , detail ) ;
ddmxxxList . add ( ddmxxx ) ;
}
// 开始封装请求报文
ElephantInvoiceAddDTO elephantInvoiceAddDTO = new ElephantInvoiceAddDTO ( ) ;
elephantInvoiceAddDTO . setDDPCXX ( ddpcxx ) ;
DDZXX ddzxx = new DDZXX ( ) ;
ddzxx . setDDTXX ( ddtxx ) ;
ddzxx . setDDMXXX ( ddmxxxList ) ;
// 全电头信息
ddzxx . setQDTXX ( qdtxx ) ;
List < DDZXX > ddzxxes = new ArrayList < > ( ) ;
ddzxxes . add ( ddzxx ) ;
elephantInvoiceAddDTO . setDDZXX ( ddzxxes ) ;
AjaxResult queryResult = null ;
try {
queryResult = ElephantUtils . sendRequestWithoutTokenV6New ( url , "" , JSONUtil . parse ( elephantInvoiceAddDTO ) , companyservice ) ;
} catch ( UnsupportedEncodingException | NoSuchAlgorithmException | InvalidKeyException e ) {
log . error ( "【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}" , JSONUtil . parse ( elephantInvoiceAddDTO ) . toString ( ) , JSONObject . toJSONString ( companyservice ) ) ;
return new HXResponse ( "系统异常!" ) ;
}
log . info ( "【销项发票】【大象发票】发票开具请求结果{}" , queryResult . toString ( ) ) ;
// 判断外层报文是否成功
if ( queryResult . isError ( ) ) {
throw new JianshuiServiceException ( queryResult . getMsg ( ) ) ;
}
JSONObject result = queryResult . getJsonData ( ) ;
JSONObject contentJson = result ;
// 如果content不为空,判断状态代码
if ( contentJson ! = null ) {
String ztdm = contentJson . getString ( "ZTDM" ) ;
if ( ! StringUtils . equals ( "0000" , ztdm ) & & ! StringUtils . equals ( "010000" , ztdm ) ) {
return new HXResponse ( contentJson . getString ( "ZTXX" ) ) ;
}
}
billInfo . setState ( 20 ) ;
billInfoMapper . updateBillInfo ( billInfo ) ;
// 还需要单独调用下发票结果获取接口,获取订单结果
JSONObject queryBody = new JSONObject ( ) ;
queryBody . put ( "NSRSBH" , companyservice . getSellertax ( ) ) ;
// queryBody.put("DDQQPCH", billInfo.getSystemOrderno());
// queryBody.put("FPLXDM", fplxdm);
// queryBody.put("SFFHSBSJ", "0");
// TODO: 2023/10/8 数电
// 订单请求流水号
queryBody . put ( "DDQQLSH" , billInfo . getSystemOrderno ( ) ) ;
/ * // 提取码
queryBody . put ( "TQM" , "0" ) ;
// 订单号
queryBody . put ( "DDH" , "0" ) ;
// 红字确认单编号
queryBody . put ( "HZQRDBH" , "0" ) ;
// 版式文件(0:需要;1:不需要)
queryBody . put ( "BSWJ" , "0" ) ;
// 订单日期起
queryBody . put ( "DDRQQ" , "0" ) ;
// 订单日期止
queryBody . put ( "DDRQZ" , "0" ) ; * /
// queryResult = ElephantUtils.sendRequest(ElephantConstantsV6.ADD_INVOICE_RESULT, JSONUtil.parse(queryBody));
try {
queryResult = ElephantUtils . sendRequestWithoutTokenV6New ( ElephantConstantsV6 . ADD_INVOICE_RESULT_LOCALHOST , ElephantConstantsV6 . ADD_INVOICE_RESULT_METHOD , JSONUtil . parse ( queryBody ) , companyservice ) ;
} catch ( UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e ) {
log . error ( "【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}" , JSONUtil . parse ( elephantInvoiceAddDTO ) . toString ( ) , JSONObject . toJSONString ( companyservice ) ) ;
return new HXResponse ( "系统异常!" ) ;
}
log . info ( "【销项发票】【大象发票】发票开具请求拉取结果{}" , queryResult . toString ( ) ) ;
// 判断外层报文是否成功
if ( queryResult . isError ( ) ) {
return new HXResponse ( queryResult . getMsg ( ) ) ;
}
// 如果content不为空,判断状态代码
contentJson = queryResult . getJsonData ( ) ;
if ( contentJson ! = null ) {
String ztdm = contentJson . getString ( "ZTDM" ) ;
// 021002 020111
if ( ! StringUtils . equalsAny ( ztdm , "020111" , "020000" , "010000" , "000000" ) ) {
// 开票失败
if ( StringUtils . equals ( "020002" , ztdm ) ) {
billInfo . setState ( 22 ) ;
billInfoMapper . updateBillInfo ( billInfo ) ;
}
// kk: 2023/12/5 判断人脸识别的状态
String DDFPZXX = contentJson . getString ( "DDFPZXX" ) ! = null ? contentJson . getString ( "DDFPZXX" ) : "" ;
if ( StrUtil . isNotEmpty ( DDFPZXX ) ) {
DDFPZXX ddfpzxx = BeanUtil . copyProperties ( DDFPZXX , DDFPZXX . class ) ;
if ( ddfpzxx ! = null & & ddfpzxx . getDDFPXX ( ) ! = null & & "03200" . equals ( ddfpzxx . getDDFPXX ( ) . getDDZT ( ) ) ) {
return new HXResponse ( "E004" , ddfpzxx . getDDFPXX ( ) . getDDZTXX ( ) ! = null ? ddfpzxx . getDDFPXX ( ) . getDDZTXX ( ) : "发票开具失败,请确认是否人脸识别超期!" ) ;
}
}
return new HXResponse ( contentJson . getString ( "ZTXX" ) ) ;
}
// 如果全部开具成功
if ( StringUtils . equals ( "020000" , ztdm ) ) {
billInfo . setState ( 2 ) ;
billInfoMapper . updateBillInfo ( billInfo ) ;
}
}
// 更新结果为开票中,队列里去刷新开票结果,并进行推送
// 增加主动回调方式,可配置
ICompanyservicePropService companyservicePropT = SpringUtils . getBean ( ICompanyservicePropService . class ) ;
CompanyserviceProp secretIdProp = companyservicePropT . selectPropByKey ( companyservice . getCompanyid ( ) , "aisino_callback_url" ) ;
if ( BeanUtil . isNotEmpty ( secretIdProp ) & & secretIdProp . getValue ( ) ! = null & & ! "" . equals ( secretIdProp . getValue ( ) ) ) {
String callBackUrl = secretIdProp . getValue ( ) ;
InvoiceBack queryInvoiceBack = new InvoiceBack ( ) ;
queryInvoiceBack . setSystemOrderno ( billInfo . getOutTradeOrderno ( ) ) ;
List < InvoiceBack > invoiceBackList = invoiceBackMapper . selectInvoiceBackList ( queryInvoiceBack ) ;
if ( org . springframework . util . CollectionUtils . isEmpty ( invoiceBackList ) ) {
queryInvoiceBack . setId ( IdUtils . randomUUID ( ) ) ;
queryInvoiceBack . setIdentity ( companyservice . getIdentity ( ) ) ;
queryInvoiceBack . setBackUrl ( callBackUrl ) ;
queryInvoiceBack . setStatus ( InvoiceBackStatusEnum . IN_PROCESS . getCode ( ) ) ;
queryInvoiceBack . setCreateTime ( new Date ( ) ) ;
queryInvoiceBack . setSystemOrderno ( billInfo . getOutTradeOrderno ( ) ) ;
queryInvoiceBack . setBackMsg ( "" ) ;
queryInvoiceBack . setResultCode ( "0000" ) ;
queryInvoiceBack . setResultMsg ( "开票中,进入队列" ) ;
queryInvoiceBack . setUpdateTime ( new Date ( ) ) ;
invoiceBackMapper . insertInvoiceBack ( queryInvoiceBack ) ;
}
}
// 定时拉取保存发票
AsyncManager . me ( ) . execute ( new QueryInvoiceTask ( billInfo , companyservice , this ) ) ;
// 数电的加入金财表
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog ( ) ;
allApiLog . setUrl ( WebServiceConstant . LZFPKJ ) ;
allApiLog . setSendMsg ( "" ) ;
allApiLog . setResultMsg ( "" ) ;
allApiLog . setCompany ( companyservice . getSellertax ( ) ) ;
allApiLog . setIdentityId ( companyservice . getIdentity ( ) ) ;
allApiLog . setRequestId ( billInfo . getSystemOrderno ( ) ) ;
allApiLog . setCreateTime ( new Date ( ) ) ;
allApiLog . setCompanyName ( "批量大象V6" ) ;
allApiLogMapper . insertInvoiceAllApiLog ( allApiLog ) ;
HXResponse response = new HXResponse ( "0000" , "同步成功" ) ;
response . put ( "fpqqlsh" , billInfo . getSystemOrderno ( ) ) ;
return response ;
}
}