From fdad19b0ccff9a834a49a452d24f9dfa28a67078 Mon Sep 17 00:00:00 2001
From: xiang2lin <251481237@qq.com>
Date: Fri, 23 May 2025 16:23:55 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E6=89=B9=E9=87=8F=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5=E6=94=B9=E6=88=90=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?=
=?UTF-8?q?=E6=89=A7=E8=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../entity/CInvoiceImportHEntity.java | 20 +
.../cinvoice/entity/CInvoiceImportHEntity.xml | 8 +
.../service/ICInvoiceImportHService.java | 7 +
.../impl/CInvoiceImportHServiceImpl.java | 18 +
.../impl/CInvoiceImportPluginServiceImpl.java | 365 +++++++++---------
5 files changed, 242 insertions(+), 176 deletions(-)
diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.java
index 4fc1d35b..600d51ce 100644
--- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.java
+++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.java
@@ -20,6 +20,10 @@ public class CInvoiceImportHEntity extends BaseEntity {
private String yd_result;
//发起时间
private String start_date;
+ //推送状态
+ private String push_status;
+ //推送字段
+ private String push_field;
public String getTab_name() {
return tab_name;
@@ -68,4 +72,20 @@ public class CInvoiceImportHEntity extends BaseEntity {
public void setStart_date(String start_date) {
this.start_date = start_date;
}
+
+ public String getPush_status() {
+ return push_status;
+ }
+
+ public void setPush_status(String push_status) {
+ this.push_status = push_status;
+ }
+
+ public String getPush_field() {
+ return push_field;
+ }
+
+ public void setPush_field(String push_field) {
+ this.push_field = push_field;
+ }
}
diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.xml
index fcc4d1e6..9b0fb4c8 100644
--- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.xml
+++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/entity/CInvoiceImportHEntity.xml
@@ -7,6 +7,8 @@
+
+
@@ -16,10 +18,16 @@
f.id = #{id}
and f.bill_code = #{bill_code}
+ and push_status is null
+ and start_date >= '2025-05-26'
update ${tab_name} set ${yd_res_field} = #{yd_result} where id = #{id}
+
+
+ update ${tab_name} set ${push_field} = '1' where id = #{id}
+
diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/service/ICInvoiceImportHService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/service/ICInvoiceImportHService.java
index 506a7685..4dfbcc76 100644
--- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/service/ICInvoiceImportHService.java
+++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/service/ICInvoiceImportHService.java
@@ -26,4 +26,11 @@ public interface ICInvoiceImportHService extends IBaseService cInvoiceImportHList = cInvoiceImportHService.queryInvoiceList(importHEntity);
- if (CollectionUtils.isNotEmpty(cInvoiceImportHList)){
+ if (CollectionUtils.isNotEmpty(cInvoiceImportHList)) {
ParamAssembler assembler = null;
CInvoiceImportHEntity cInvoiceH = cInvoiceImportHList.get(0);
+ cInvoiceH.setDataSourceCode(dataSourceCode);
//2、 查OA明细表
//3、 查迈瑞思发票表
//迈锐思发票公共信息表
- LexmisPublicinfoEntity lexmisPublicinfoEntity = new LexmisPublicinfoEntity(cInvoiceH.getId(),dataSourceCode);
+ LexmisPublicinfoEntity lexmisPublicinfoEntity = new LexmisPublicinfoEntity(cInvoiceH.getId(), dataSourceCode);
//lexmisPublicinfoEntity.setPI_ID("6952494198841691018");
List lexmisPublicinfoEntityList = lexmisPublicinfoService.query(lexmisPublicinfoEntity);
- if (CollectionUtils.isNotEmpty(lexmisPublicinfoEntityList)){
+ if (CollectionUtils.isNotEmpty(lexmisPublicinfoEntityList)) {
+ cInvoiceH.setPush_status("1");
+ cInvoiceImportHService.updateStatus(cInvoiceH);
//税务接口每次最多传50张发票
int size = lexmisPublicinfoEntityList.size();
int batchSize = 50;
- for (int i = 0; i < size; i += batchSize){
- int no = 1;//序号
- //4、 根据发票类型,组装不同参数
- JSONObject head = new JSONObject();
- JSONArray inputInfos = new JSONArray();
- head.put("inputInfos",inputInfos);//发票录入信息,单次最大50张
- // 获取当前批次的子列表
- List batchList = lexmisPublicinfoEntityList.subList(i, Math.min(i + batchSize, size));
- //使用stream方式 publicinfoList 按 PI_TABLENAME分组
- Map> groupedByPiTablename = batchList.stream()
- .collect(Collectors.groupingBy(LexmisPublicinfoEntity::getPI_TABLENAME));
- for (Map.Entry> entry : groupedByPiTablename.entrySet()){
- String key = entry.getKey();//对应发票类型的表名
- List publicinfoList = entry.getValue();
- for (LexmisPublicinfoEntity info : publicinfoList){
+ for (int i = 0; i < size; i += batchSize) {
+ try {
+ int no = 1;//序号
+ //4、 根据发票类型,组装不同参数
+ JSONObject head = new JSONObject();
+ JSONArray inputInfos = new JSONArray();
+ head.put("inputInfos", inputInfos);//发票录入信息,单次最大50张
+ // 获取当前批次的子列表
+ List batchList = lexmisPublicinfoEntityList.subList(i, Math.min(i + batchSize, size));
+ //使用stream方式 publicinfoList 按 PI_TABLENAME分组
+ Map> groupedByPiTablename = batchList.stream()
+ .collect(Collectors.groupingBy(LexmisPublicinfoEntity::getPI_TABLENAME));
+ for (Map.Entry> entry : groupedByPiTablename.entrySet()) {
+ String key = entry.getKey();//对应发票类型的表名
+ List publicinfoList = entry.getValue();
+ for (LexmisPublicinfoEntity info : publicinfoList) {
- JSONObject inputInfo = new JSONObject();
- inputInfos.add(inputInfo);
- inputInfo.put("no",no);//编号
- inputInfo.put("systemName","4");//来源系统 默认写4 代表OA
- inputInfo.put("businessNo",cInvoiceH.getBill_code());//业务单据号
- inputInfo.put("bookkeepingStatus","1");//记账状态,默认传1
- inputInfo.put("customFlag","2");//业务流转状态,默认传2
- JSONObject invoiceInfo = new JSONObject();//票面信息
- inputInfo.put("invoiceInfo", invoiceInfo);
- JSONObject baseInfo = new JSONObject();//发票基本信息
- JSONObject contentInfo = new JSONObject();//发票内容
- JSONArray taxturnsInfos = new JSONArray();//进项转出信息
- invoiceInfo.put("taxturnsInfos",taxturnsInfos);
+ JSONObject inputInfo = new JSONObject();
+ inputInfos.add(inputInfo);
+ inputInfo.put("no", no);//编号
+ inputInfo.put("systemName", "4");//来源系统 默认写4 代表OA
+ inputInfo.put("businessNo", cInvoiceH.getBill_code());//业务单据号
+ inputInfo.put("bookkeepingStatus", "1");//记账状态,默认传1
+ inputInfo.put("customFlag", "2");//业务流转状态,默认传2
+ JSONObject invoiceInfo = new JSONObject();//票面信息
+ inputInfo.put("invoiceInfo", invoiceInfo);
+ JSONObject baseInfo = new JSONObject();//发票基本信息
+ JSONObject contentInfo = new JSONObject();//发票内容
+ JSONArray taxturnsInfos = new JSONArray();//进项转出信息
+ invoiceInfo.put("taxturnsInfos", taxturnsInfos);
- switch (key){
- case "LEXMISCIV_INVOICEMAIN"://增值税发票
- zzsInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
- break;
- case "LEXMISCIV_TRAINTICKET"://火车票
- trainInvoice(dataSourceCode, inputInfos, info, inputInfo, invoiceInfo, baseInfo);
- break;
- case "LEXMISCIV_PLANETICKET"://飞机行程单
- planeInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
- break;
- case "LEXMISCIV_BUSINVOICE"://客运汽车票
- busInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
- break;
- default:
- logger.info("没有匹配到类型");
- break;
+ switch (key) {
+ case "LEXMISCIV_INVOICEMAIN"://增值税发票
+ zzsInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
+ break;
+ case "LEXMISCIV_TRAINTICKET"://火车票
+ trainInvoice(dataSourceCode, inputInfos, info, inputInfo, invoiceInfo, baseInfo);
+ break;
+ case "LEXMISCIV_PLANETICKET"://飞机行程单
+ planeInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
+ break;
+ case "LEXMISCIV_BUSINVOICE"://客运汽车票
+ busInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
+ break;
+ default:
+ logger.info("没有匹配到类型");
+ break;
+ }
+ no++;
}
- no++;
+ head.put("taxNo", publicinfoList.get(0).getPI_TAXNO());//当前企业税号
}
- head.put("taxNo",publicinfoList.get(0).getPI_TAXNO());//当前企业税号
- }
- logger.info("调用有度发票批量导入接口请求参数:{}",head.toString());
- //调用税务接口
- Map headerMap = MapBuilder.create(true)
- .put("apiCode", "8000600005")//有度发票导入接口
- .put("publicKey","ZJYA7f8FzV219otH8zhkReiyyWpXswpbY/+StvC2em0hf59Ce7eDIk+3zDUT+v578prj")//发起方应用
- .put("secretKey","xJ9J1Ev2F0faiJ/nQnCNklskAgtQp3QSm+ihO21uY/H0UADj0tSDPxmIhFfC4v6Fj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//发起方应用
- .put("appId","800060")
- .build();
- String body = HttpRequest.post(url).addHeaders(headerMap).body(head.toString()).timeout(60000).execute().body();
- //String body = null;
- logger.info("调用有度发票批量导入接口响应参数:{}",body);
- //保存操作日志
- if (StrUtil.isNotEmpty(body)){
- JSONObject jsonObject = JSONObject.parseObject(body);
- Boolean flag = jsonObject.getBoolean("flag");
- JSONObject resObj = jsonObject.getJSONObject("attribute");
- if (null != resObj && "0".equals(resObj.getString("code"))){
- String result = resObj.getString("result");
- if (StrUtil.isNotEmpty(result)){
- cInvoiceH.setDataSourceCode(dataSourceCode);
- cInvoiceH.setYd_result(result);
- cInvoiceImportHService.updateResultId(cInvoiceH);
+ logger.info("调用有度发票批量导入接口请求参数:{}", head.toString());
+ //调用税务接口
+ Map headerMap = MapBuilder.create(true)
+ .put("apiCode", "8000600005")//有度发票导入接口
+ .put("publicKey", "ZJYA7f8FzV219otH8zhkReiyyWpXswpbY/+StvC2em0hf59Ce7eDIk+3zDUT+v578prj")//发起方应用
+ .put("secretKey", "xJ9J1Ev2F0faiJ/nQnCNklskAgtQp3QSm+ihO21uY/H0UADj0tSDPxmIhFfC4v6Fj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//发起方应用
+ .put("appId", "800060")
+ .build();
+ String body = HttpRequest.post(url).addHeaders(headerMap).body(head.toString()).timeout(60000).execute().body();
+ //String body = null;
+ logger.info("调用有度发票批量导入接口响应参数:{}", body);
+ //保存操作日志
+ if (StrUtil.isNotEmpty(body)) {
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ Boolean flag = jsonObject.getBoolean("flag");
+ JSONObject resObj = jsonObject.getJSONObject("attribute");
+ if (null != resObj && "0".equals(resObj.getString("code"))) {
+ String result = resObj.getString("result");
+ if (StrUtil.isNotEmpty(result)) {
+ cInvoiceH.setDataSourceCode(dataSourceCode);
+ cInvoiceH.setYd_result(result);
+ cInvoiceImportHService.updateResultId(cInvoiceH);
+ }
}
+ //保存日志
+ IntegrationTaskLivingDetailsEntity taskLivingDetail = new IntegrationTaskLivingDetailsEntity();
+ taskLivingDetail.setCreate_time(new Date());
+ taskLivingDetail.setModify_time(new Date());
+ taskLivingDetail.setRootAppPk(cInvoiceH.getId());
+ taskLivingDetail.setRootAppBill(cInvoiceH.getBill_code());
+ taskLivingDetail.setPluginId("CInvoiceImportPluginInitializer");
+ taskLivingDetail.setRootAppNewData(head.toString());
+ taskLivingDetail.setNewTransmitInfo(body);
+ taskLivingDetail.setNewPushDate(new Date());
+ this.saveLog(id, flag, taskLivingDetail);
}
- //保存日志
- IntegrationTaskLivingDetailsEntity taskLivingDetail = new IntegrationTaskLivingDetailsEntity();
- taskLivingDetail.setCreate_time(new Date());
- taskLivingDetail.setModify_time(new Date());
- taskLivingDetail.setRootAppPk(cInvoiceH.getId());
- taskLivingDetail.setRootAppBill(cInvoiceH.getBill_code());
- taskLivingDetail.setPluginId("CInvoiceImportPluginInitializer");
- taskLivingDetail.setRootAppNewData(head.toString());
- taskLivingDetail.setNewTransmitInfo(body);
- taskLivingDetail.setNewPushDate(new Date());
- this.saveLog(id,flag,taskLivingDetail);
+ } catch (Exception e) {
+ logger.error("发票批量导入有度系统循环中出错:{}", e.getMessage());
}
- return body;
}
+ }else {
+ cInvoiceH.setPush_status("未查询到有效数据不推送");
+ cInvoiceImportHService.updateStatus(cInvoiceH);
}
}
@@ -193,39 +200,41 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
}
-
/**
* 保存日志
+ *
* @param integration_task_living_details_id
* @param flag
* @param taskLivingDetail
*/
- public void saveLog(String integration_task_living_details_id, Boolean flag, IntegrationTaskLivingDetailsEntity taskLivingDetail){
+ public void saveLog(String integration_task_living_details_id, Boolean flag, IntegrationTaskLivingDetailsEntity taskLivingDetail) {
try {
//判断,成功调用这个方法
- if (StrUtil.isEmpty(integration_task_living_details_id)){
- if (flag){
+ if (StrUtil.isEmpty(integration_task_living_details_id)) {
+ if (flag) {
taskLivingDetailsService.saveLogToSuccess(taskLivingDetail);
- }else {
+ } else {
//失败 调用这个方法
taskLivingDetailsService.saveLogToFail(taskLivingDetail);
}
- }else {
+ } else {
taskLivingDetail.setId(integration_task_living_details_id);
- if (flag){
+ if (flag) {
//如果是重试 成功调这个方法
taskLivingDetailsService.saveLogFailToSuccess(taskLivingDetail);
- }else {
+ } else {
//如果是重试 失败调这个方法
taskLivingDetailsService.updateLogFailToSuccess(taskLivingDetail);
}
}
- }catch (Exception e){
- logger.error("保存日志出错:{}",e);
+ } catch (Exception e) {
+ logger.error("保存日志出错:{}", e);
}
}
+
/**
* 机票
+ *
* @param dataSourceCode
* @param info
* @param invoiceInfo
@@ -236,43 +245,44 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
JSONObject contentInfo;
ParamAssembler assembler;
LexmiscivPlaneticketEntity planeticketH = lexmiscivPlaneticketService.queryOne(new LexmiscivPlaneticketEntity(info.getPI_DATAKEY(), dataSourceCode));
- if (null != planeticketH){
+ if (null != planeticketH) {
String fplx = "a4";
LexmiscivPlaneticketsEntity planeticketB = new LexmiscivPlaneticketsEntity(planeticketH.getPT_ID(), dataSourceCode);
//飞机行程单子表
List planeticketBList = lexmiscivPlaneticketsService.query(planeticketB);
JSONObject planeObj = new JSONObject();
- planeObj.put("planeticketH",JSONObject.toJSONString(planeticketH));
- planeObj.put("planeticketBList",JSONObject.toJSONString(planeticketBList));
+ planeObj.put("planeticketH", JSONObject.toJSONString(planeticketH));
+ planeObj.put("planeticketBList", JSONObject.toJSONString(planeticketBList));
//1表示电子行程单 先不区分试试,策略类内部判断来实现区分
- if ("1".equals(planeticketH.getPT_ELECTRONICMARK())){
- //assembler = new ElecFlightInvoiceAssembler(planeObj);
- fplx = "400";
- }
+ if ("1".equals(planeticketH.getPT_ELECTRONICMARK())) {
+ //assembler = new ElecFlightInvoiceAssembler(planeObj);
+ fplx = "400";
+ }
// else {
// assembler = new FlightInvoiceAssembler(planeObj);
// }
assembler = new ElecFlightInvoiceAssembler(planeObj);
context = new ParamAssemblerContext(assembler);
contentInfo = context.assemble();
- baseInfo.put("fphm",planeticketH.getPT_FPHM());//发票号码
- baseInfo.put("fpdm","");//发票代码
- baseInfo.put("fplx",fplx);//发票类型
- baseInfo.put("kprq",planeticketH.getPT_MAKEDATE());//开票日期
- baseInfo.put("bhszje",planeticketH.getPT_NOTAXAMOUNT());//不含税总金额
- baseInfo.put("jym",planeticketH.getPT_VALIDCODE());//校验码
- baseInfo.put("bxje",planeticketH.getPT_NOTAXAMOUNT());//不含税实际报销金额
- baseInfo.put("jsse","");//有效计算税额
- baseInfo.put("jsdkzq","");//计算抵扣账期
- baseInfo.put("signPerson","");//签收人
- baseInfo.put("signStatus","1");//签收状态,默认传1
+ baseInfo.put("fphm", planeticketH.getPT_FPHM());//发票号码
+ baseInfo.put("fpdm", "");//发票代码
+ baseInfo.put("fplx", fplx);//发票类型
+ baseInfo.put("kprq", planeticketH.getPT_MAKEDATE());//开票日期
+ baseInfo.put("bhszje", planeticketH.getPT_NOTAXAMOUNT());//不含税总金额
+ baseInfo.put("jym", planeticketH.getPT_VALIDCODE());//校验码
+ baseInfo.put("bxje", planeticketH.getPT_NOTAXAMOUNT());//不含税实际报销金额
+ baseInfo.put("jsse", "");//有效计算税额
+ baseInfo.put("jsdkzq", "");//计算抵扣账期
+ baseInfo.put("signPerson", "");//签收人
+ baseInfo.put("signStatus", "1");//签收状态,默认传1
invoiceInfo.put("baseInfo", baseInfo);
- invoiceInfo.put("contentInfo",contentInfo);
+ invoiceInfo.put("contentInfo", contentInfo);
}
}
/**
* 火车票发票
+ *
* @param dataSourceCode
* @param inputInfos
* @param info
@@ -287,34 +297,34 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
LexmiscivTrainticketEntity trainticketEntity = new LexmiscivTrainticketEntity(info.getPI_DATAKEY(), dataSourceCode);
trainticketEntity.setTT_BUSINESSTYPE(1);//1售票 2退票 3售票换开 4退票换开,3和4没遇到过,先查1
LexmiscivTrainticketEntity trainticket = lexmiscivTrainticketService.queryOne(trainticketEntity);
- if (null != trainticket){
+ if (null != trainticket) {
JSONObject trainObj = new JSONObject();
- trainObj.put("trainInvoice",JSONObject.toJSONString(trainticket));
- trainObj.put("publicInvoice",JSONObject.toJSONString(info));
+ trainObj.put("trainInvoice", JSONObject.toJSONString(trainticket));
+ trainObj.put("publicInvoice", JSONObject.toJSONString(info));
String fplx = "a2";
//1是电子票
- if ("1".equals(trainticket.getTT_ELECTRONIC())){
+ if ("1".equals(trainticket.getTT_ELECTRONIC())) {
assembler = new ElecTrainInvoiceAssembler(trainObj);
fplx = "200";
- }else {
+ } else {
assembler = new TrainInvoiceAssembler(trainObj);
}
context = new ParamAssemblerContext(assembler);
contentInfo = context.assemble();
- baseInfo.put("fphm",trainticket.getTT_CODE());//发票号码
- baseInfo.put("fpdm","");//发票代码 火车票不用传
- baseInfo.put("fplx",fplx);//发票类型
- baseInfo.put("kprq",DateUtil.format(trainticket.getTT_DATE(),"yyyy-MM-dd"));//开票日期
- baseInfo.put("bhszje",trainticket.getTT_NOTAXAMOUNT());//不含税总金额
- baseInfo.put("jym","");//校验码
- baseInfo.put("bxje",trainticket.getTT_NOTAXAMOUNT());//不含税实际报销金额
- baseInfo.put("jsse","");//有效计算税额
- baseInfo.put("jsdkzq","");//计算抵扣账期
- baseInfo.put("signPerson","");//签收人
- baseInfo.put("signStatus","1");//签收状态,默认传1
+ baseInfo.put("fphm", trainticket.getTT_CODE());//发票号码
+ baseInfo.put("fpdm", "");//发票代码 火车票不用传
+ baseInfo.put("fplx", fplx);//发票类型
+ baseInfo.put("kprq", DateUtil.format(trainticket.getTT_DATE(), "yyyy-MM-dd"));//开票日期
+ baseInfo.put("bhszje", trainticket.getTT_NOTAXAMOUNT());//不含税总金额
+ baseInfo.put("jym", "");//校验码
+ baseInfo.put("bxje", trainticket.getTT_NOTAXAMOUNT());//不含税实际报销金额
+ baseInfo.put("jsse", "");//有效计算税额
+ baseInfo.put("jsdkzq", "");//计算抵扣账期
+ baseInfo.put("signPerson", "");//签收人
+ baseInfo.put("signStatus", "1");//签收状态,默认传1
invoiceInfo.put("baseInfo", baseInfo);
- invoiceInfo.put("contentInfo",contentInfo);
- }else {
+ invoiceInfo.put("contentInfo", contentInfo);
+ } else {
inputInfos.remove(inputInfo);
logger.info("根据pi_datakey没有查到火车票发票信息:{},发票号:{}", info.getPI_DATAKEY());
}
@@ -322,10 +332,11 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
/**
* 增值税发票
+ *
* @param dataSourceCode 数据源编码
- * @param info 发票公共表
- * @param invoiceInfo 发票信息对象
- * @param baseInfo 发票基本数据对象
+ * @param info 发票公共表
+ * @param invoiceInfo 发票信息对象
+ * @param baseInfo 发票基本数据对象
*/
private void zzsInvoice(String dataSourceCode, LexmisPublicinfoEntity info, JSONObject invoiceInfo, JSONObject baseInfo) {
ParamAssemblerContext context;//策略上下文类
@@ -335,70 +346,72 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
//增值税发票表体
List zzsInvoiceBList = lexmiscivInvoicedetailService.query(new LexmiscivInvoicedetailEntity(zzsInvoiceH.getIM_ID(), dataSourceCode));
JSONObject zzs = new JSONObject();
- zzs.put("zzsInvoiceH",JSONObject.toJSONString(zzsInvoiceH));
- zzs.put("zzsInvoiceBList",JSONObject.toJSONString(zzsInvoiceBList));
+ zzs.put("zzsInvoiceH", JSONObject.toJSONString(zzsInvoiceH));
+ zzs.put("zzsInvoiceBList", JSONObject.toJSONString(zzsInvoiceBList));
assembler = new ZzsInvoiceAssembler(zzs);
context = new ParamAssemblerContext(assembler);
contentInfo = context.assemble();
- baseInfo.put("fphm",zzsInvoiceH.getIM_FPHM());//发票号码
- baseInfo.put("fpdm",zzsInvoiceH.getIM_FPDM());//发票代码
- baseInfo.put("fplx",convertZzsFplx(zzsInvoiceH.getIM_TYPE()));//发票类型
- baseInfo.put("kprq",DateUtil.format(zzsInvoiceH.getIM_DATE(),"yyyy-MM-dd"));//开票日期
- baseInfo.put("bhszje",zzsInvoiceH.getIM_NOTAXAMOUNT());//不含税总金额
- baseInfo.put("jym",zzsInvoiceH.getIM_CHECKCODE());//校验码
- baseInfo.put("bxje",zzsInvoiceH.getIM_NOTAXAMOUNT());//不含税实际报销金额
- baseInfo.put("jsse","");//有效计算税额
- baseInfo.put("jsdkzq","");//计算抵扣账期
- baseInfo.put("signPerson","");//签收人
- baseInfo.put("signStatus","1");//签收状态,默认传1
+ baseInfo.put("fphm", zzsInvoiceH.getIM_FPHM());//发票号码
+ baseInfo.put("fpdm", zzsInvoiceH.getIM_FPDM());//发票代码
+ baseInfo.put("fplx", convertZzsFplx(zzsInvoiceH.getIM_TYPE()));//发票类型
+ baseInfo.put("kprq", DateUtil.format(zzsInvoiceH.getIM_DATE(), "yyyy-MM-dd"));//开票日期
+ baseInfo.put("bhszje", zzsInvoiceH.getIM_NOTAXAMOUNT());//不含税总金额
+ baseInfo.put("jym", zzsInvoiceH.getIM_CHECKCODE());//校验码
+ baseInfo.put("bxje", zzsInvoiceH.getIM_NOTAXAMOUNT());//不含税实际报销金额
+ baseInfo.put("jsse", "");//有效计算税额
+ baseInfo.put("jsdkzq", "");//计算抵扣账期
+ baseInfo.put("signPerson", "");//签收人
+ baseInfo.put("signStatus", "1");//签收状态,默认传1
invoiceInfo.put("baseInfo", baseInfo);
- invoiceInfo.put("contentInfo",contentInfo);
+ invoiceInfo.put("contentInfo", contentInfo);
}
/**
* 客运汽车
+ *
* @param dataSourceCode 数据源编码
- * @param info 发票公共表嘻嘻
- * @param invoiceInfo 发票参数对象
- * @param baseInfo 发票base参数对象
+ * @param info 发票公共表嘻嘻
+ * @param invoiceInfo 发票参数对象
+ * @param baseInfo 发票base参数对象
*/
private void busInvoice(String dataSourceCode, LexmisPublicinfoEntity info, JSONObject invoiceInfo, JSONObject baseInfo) {
ParamAssemblerContext context;//策略上下文类
JSONObject contentInfo;
ParamAssembler assembler;
- LexmiscivBusinvoiceEntity businvoiceEntity = lexmiscivBusinvoiceService.queryOne(new LexmiscivBusinvoiceEntity(info.getPI_DATAKEY(),dataSourceCode));
- if (null != businvoiceEntity){
+ LexmiscivBusinvoiceEntity businvoiceEntity = lexmiscivBusinvoiceService.queryOne(new LexmiscivBusinvoiceEntity(info.getPI_DATAKEY(), dataSourceCode));
+ if (null != businvoiceEntity) {
JSONObject busObj = new JSONObject();
- busObj.put("busInvoice",JSONObject.toJSONString(businvoiceEntity));
- busObj.put("publicInfoice",JSONObject.toJSONString(info));
+ busObj.put("busInvoice", JSONObject.toJSONString(businvoiceEntity));
+ busObj.put("publicInfoice", JSONObject.toJSONString(info));
assembler = new BusInvoiceAssembler(busObj);
context = new ParamAssemblerContext(assembler);
contentInfo = context.assemble();
baseInfo.put("fphm", businvoiceEntity.getBI_FPHM());//发票号码
- baseInfo.put("fpdm",businvoiceEntity.getBI_FPDM());//发票代码
- baseInfo.put("fplx","a3");//发票类型
- baseInfo.put("kprq",DateUtil.format(businvoiceEntity.getBI_DATE(),"yyyy-MM-dd"));//开票日期
- baseInfo.put("bhszje",businvoiceEntity.getBI_NOTAXAMOUNT());//不含税总金额
- baseInfo.put("jym","");//校验码
- baseInfo.put("bxje",businvoiceEntity.getBI_NOTAXAMOUNT());//不含税金额
- baseInfo.put("jsse","");//有效计算税额
- baseInfo.put("jsdkzq","");//计算抵扣账期
- baseInfo.put("signPerson","");//签收人
- baseInfo.put("signStatus","1");//签收状态,默认传1
+ baseInfo.put("fpdm", businvoiceEntity.getBI_FPDM());//发票代码
+ baseInfo.put("fplx", "a3");//发票类型
+ baseInfo.put("kprq", DateUtil.format(businvoiceEntity.getBI_DATE(), "yyyy-MM-dd"));//开票日期
+ baseInfo.put("bhszje", businvoiceEntity.getBI_NOTAXAMOUNT());//不含税总金额
+ baseInfo.put("jym", "");//校验码
+ baseInfo.put("bxje", businvoiceEntity.getBI_NOTAXAMOUNT());//不含税金额
+ baseInfo.put("jsse", "");//有效计算税额
+ baseInfo.put("jsdkzq", "");//计算抵扣账期
+ baseInfo.put("signPerson", "");//签收人
+ baseInfo.put("signStatus", "1");//签收状态,默认传1
invoiceInfo.put("baseInfo", baseInfo);
- invoiceInfo.put("contentInfo",contentInfo);
+ invoiceInfo.put("contentInfo", contentInfo);
}
}
/**
* 迈锐思增值税类发票类型转换成有度发票类型
+ *
* @param fplx 迈锐思发票类型
* @return
*/
- private String convertZzsFplx(String fplx){
- if (StrUtil.isNotEmpty(fplx)){
+ private String convertZzsFplx(String fplx) {
+ if (StrUtil.isNotEmpty(fplx)) {
String youduFplx = null;
- switch (fplx){
+ switch (fplx) {
case "01"://增值税专用发票
youduFplx = "01";
break;
@@ -418,8 +431,8 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
youduFplx = "32";
break;
case "14"://电子发票(通行费)
- youduFplx = "14";
- break;
+ youduFplx = "14";
+ break;
}
return youduFplx;
}