This commit is contained in:
lvleigang 2025-09-03 10:25:52 +08:00
commit e905df8793
6 changed files with 45 additions and 7 deletions

View File

@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.entity.CInvoiceImportHEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmisPublicinfoEntity; import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmisPublicinfoEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity; import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity;
import com.hzya.frame.plugin.cinvoice.util.TaxCalculator; import com.hzya.frame.plugin.cinvoice.util.TaxCalculator;
@ -34,9 +35,11 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
String trainInvoice = jsonObject.getString("trainInvoice");//火车票 String trainInvoice = jsonObject.getString("trainInvoice");//火车票
String publicInvoice = jsonObject.getString("publicInvoice");//发票公共信息 String publicInvoice = jsonObject.getString("publicInvoice");//发票公共信息
String cInvoiceH = jsonObject.getString("cInvoiceH");
if (StrUtil.isNotEmpty(trainInvoice)){ if (StrUtil.isNotEmpty(trainInvoice)){
LexmiscivTrainticketEntity trainticketEntity = JSONObject.parseObject(trainInvoice, LexmiscivTrainticketEntity.class); LexmiscivTrainticketEntity trainticketEntity = JSONObject.parseObject(trainInvoice, LexmiscivTrainticketEntity.class);
LexmisPublicinfoEntity publicInfo = JSONObject.parseObject(publicInvoice, LexmisPublicinfoEntity.class); LexmisPublicinfoEntity publicInfo = JSONObject.parseObject(publicInvoice, LexmisPublicinfoEntity.class);
CInvoiceImportHEntity importHEntity = JSONObject.parseObject(cInvoiceH, CInvoiceImportHEntity.class);
if (null != trainticketEntity){ if (null != trainticketEntity){
// 1. 火车票号必填 // 1. 火车票号必填
param.put("hcph", trainticketEntity.getTT_CODE()); param.put("hcph", trainticketEntity.getTT_CODE());
@ -80,9 +83,9 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
// 18. 销方名称非必填 // 18. 销方名称非必填
param.put("xfmc", ""); param.put("xfmc", "");
// 19. 购方税号非必填 // 19. 购方税号非必填
param.put("gfsh", Convert.toStr(trainticketEntity.getTT_BUYERTAXNO(),publicInfo.getPI_BUYERTAXNO())); param.put("gfsh", Convert.toStr(trainticketEntity.getTT_BUYERTAXNO(),importHEntity.getMc_taxno()));
// 20. 购方名称非必填 // 20. 购方名称非必填
param.put("gfmc", Convert.toStr(trainticketEntity.getTT_BUYERNAME(),publicInfo.getPI_BUYERNAME())); param.put("gfmc", Convert.toStr(trainticketEntity.getTT_BUYERNAME(),importHEntity.getMc_name()));
// 21. 出发站拼音非必填 // 21. 出发站拼音非必填
param.put("cfzpy", ""); param.put("cfzpy", "");
// 22. 到达站拼音非必填 // 22. 到达站拼音非必填

View File

@ -10,6 +10,8 @@ import com.hzya.frame.web.entity.BaseEntity;
public class CInvoiceImportHEntity extends BaseEntity { public class CInvoiceImportHEntity extends BaseEntity {
//表名称 //表名称
private String tab_name; private String tab_name;
private String mc_name;//入账公司名称
private String mc_taxno;//入账公司税号
//单据类型 //单据类型
private String bill_type; private String bill_type;
//单据编码 //单据编码
@ -107,4 +109,20 @@ public class CInvoiceImportHEntity extends BaseEntity {
public void setStart_date_end(String start_date_end) { public void setStart_date_end(String start_date_end) {
this.start_date_end = start_date_end; this.start_date_end = start_date_end;
} }
public String getMc_name() {
return mc_name;
}
public void setMc_name(String mc_name) {
this.mc_name = mc_name;
}
public String getMc_taxno() {
return mc_taxno;
}
public void setMc_taxno(String mc_taxno) {
this.mc_taxno = mc_taxno;
}
} }

View File

@ -4,6 +4,8 @@
<resultMap id="get-CInvoiceImportHEntity-result" type="com.hzya.frame.plugin.cinvoice.entity.CInvoiceImportHEntity"> <resultMap id="get-CInvoiceImportHEntity-result" type="com.hzya.frame.plugin.cinvoice.entity.CInvoiceImportHEntity">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="tab_name" column="tab_name" /> <result property="tab_name" column="tab_name" />
<result property="mc_name" column="mc_name" />
<result property="mc_taxno" column="mc_taxno" />
<result property="yd_res_field" column="yd_res_field" /> <result property="yd_res_field" column="yd_res_field" />
<result property="bill_type" column="bill_type" /> <result property="bill_type" column="bill_type" />
<result property="bill_code" column="bill_code" /> <result property="bill_code" column="bill_code" />
@ -14,13 +16,14 @@
</resultMap> </resultMap>
<select id="entity_list_base" resultMap="get-CInvoiceImportHEntity-result" parameterType="com.hzya.frame.plugin.cinvoice.entity.CInvoiceImportHEntity"> <select id="entity_list_base" resultMap="get-CInvoiceImportHEntity-result" parameterType="com.hzya.frame.plugin.cinvoice.entity.CInvoiceImportHEntity">
select * from v_hzya_invoice_import f select f.*,m.mc_taxno from v_hzya_invoice_import f
left join (SELECT DISTINCT MC_NAME,mc_taxno from LEXMISCIV_MAINCONFIG GROUP BY MC_NAME,mc_taxno) m on m.MC_NAME = f.mc_name
<trim prefix="where" prefixOverrides="and"> <trim prefix="where" prefixOverrides="and">
<if test="id != null and id != ''">f.id = #{id}</if> <if test="id != null and id != ''">f.id = #{id}</if>
<if test="bill_code != null and bill_code != ''">and f.bill_code = #{bill_code}</if> <if test="bill_code != null and bill_code != ''">and f.bill_code = #{bill_code}</if>
<if test="start_date_start != null and start_date_start != ''">and f.start_date >= #{start_date_start}</if> <if test="start_date_start != null and start_date_start != ''">and f.start_date >= #{start_date_start}</if>
<if test="start_date_end != null and start_date_end != ''"><![CDATA[ and f.start_date <= #{start_date_end} ]]> </if> <if test="start_date_end != null and start_date_end != ''"><![CDATA[ and f.start_date <= #{start_date_end} ]]> </if>
and push_status is null and f.push_status is null
-- and start_date >= '2025-05-26' -- and start_date >= '2025-05-26'
</trim> </trim>
</select> </select>

View File

@ -29,6 +29,8 @@
<result property="PI_SALERNAME" column="PI_SALERNAME" /> <result property="PI_SALERNAME" column="PI_SALERNAME" />
<result property="PI_BUYERTAXNO" column="PI_BUYERTAXNO" /> <result property="PI_BUYERTAXNO" column="PI_BUYERTAXNO" />
<result property="PI_BUYERNAME" column="PI_BUYERNAME" /> <result property="PI_BUYERNAME" column="PI_BUYERNAME" />
<result property="PI_USEACCOUNTNM" column="PI_USEACCOUNTNM" />
<result property="PI_USEACCOUNTID" column="PI_USEACCOUNTID" />
<result property="PI_TAXRATE" column="PI_TAXRATE" /> <result property="PI_TAXRATE" column="PI_TAXRATE" />
<result property="PI_TAXAMOUNT" column="PI_TAXAMOUNT" /> <result property="PI_TAXAMOUNT" column="PI_TAXAMOUNT" />
<result property="PI_NOTAXAMOUNT" column="PI_NOTAXAMOUNT" /> <result property="PI_NOTAXAMOUNT" column="PI_NOTAXAMOUNT" />
@ -59,6 +61,8 @@
PI_SALERNAME, PI_SALERNAME,
PI_BUYERTAXNO, PI_BUYERTAXNO,
PI_BUYERNAME, PI_BUYERNAME,
PI_USEACCOUNTNM,
PI_USEACCOUNTID,
PI_TAXRATE, PI_TAXRATE,
PI_TAXAMOUNT, PI_TAXAMOUNT,
PI_NOTAXAMOUNT PI_NOTAXAMOUNT

View File

@ -147,7 +147,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
zzsInvoice(dataSourceCode, info, invoiceInfo, baseInfo); zzsInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
break; break;
case "LEXMISCIV_TRAINTICKET"://火车票 case "LEXMISCIV_TRAINTICKET"://火车票
trainInvoice(dataSourceCode, inputInfos, info, inputInfo, invoiceInfo, baseInfo); trainInvoice(dataSourceCode, inputInfos, info, inputInfo, invoiceInfo, baseInfo,cInvoiceH);
break; break;
case "LEXMISCIV_PLANETICKET"://飞机行程单 case "LEXMISCIV_PLANETICKET"://飞机行程单
planeInvoice(dataSourceCode, info, invoiceInfo, baseInfo); planeInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
@ -161,7 +161,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
} }
no++; no++;
} }
head.put("taxNo", publicinfoList.get(0).getPI_TAXNO());//当前企业税号 head.put("taxNo", cInvoiceH.getMc_taxno());//当前企业税号
} }
logger.info("调用有度发票批量导入接口请求参数:{}", head.toString()); logger.info("调用有度发票批量导入接口请求参数:{}", head.toString());
//调用税务接口 //调用税务接口
@ -305,7 +305,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
* @param invoiceInfo * @param invoiceInfo
* @param baseInfo * @param baseInfo
*/ */
private void trainInvoice(String dataSourceCode, JSONArray inputInfos, LexmisPublicinfoEntity info, JSONObject inputInfo, JSONObject invoiceInfo, JSONObject baseInfo) { private void trainInvoice(String dataSourceCode, JSONArray inputInfos, LexmisPublicinfoEntity info, JSONObject inputInfo, JSONObject invoiceInfo, JSONObject baseInfo,CInvoiceImportHEntity cInvoiceH) {
JSONObject contentInfo; JSONObject contentInfo;
ParamAssembler assembler; ParamAssembler assembler;
ParamAssemblerContext context;//策略上下文类 ParamAssemblerContext context;//策略上下文类
@ -317,6 +317,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
JSONObject trainObj = new JSONObject(); JSONObject trainObj = new JSONObject();
trainObj.put("trainInvoice", JSONObject.toJSONString(trainticket)); trainObj.put("trainInvoice", JSONObject.toJSONString(trainticket));
trainObj.put("publicInvoice", JSONObject.toJSONString(info)); trainObj.put("publicInvoice", JSONObject.toJSONString(info));
trainObj.put("cInvoiceH", JSONObject.toJSONString(cInvoiceH));
String fplx = "a2"; String fplx = "a2";
//1是电子票 //1是电子票
if ("1".equals(trainticket.getTT_ELECTRONIC())) { if ("1".equals(trainticket.getTT_ELECTRONIC())) {

View File

@ -3,6 +3,7 @@ package com.hzya.frame;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.plugin.CInvoiceImportPluginInitializer; import com.hzya.frame.plugin.cinvoice.plugin.CInvoiceImportPluginInitializer;
import com.hzya.frame.plugin.contract.plugin.ContractAuditPluginInitializer; import com.hzya.frame.plugin.contract.plugin.ContractAuditPluginInitializer;
import com.hzya.frame.seeyon.util.OARestUtil;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@ -20,10 +21,18 @@ import javax.annotation.Resource;
public class Test1 { public class Test1 {
@Resource
private OARestUtil oaRestUtil;
@Resource @Resource
private ContractAuditPluginInitializer contractPlugin; private ContractAuditPluginInitializer contractPlugin;
@Resource @Resource
private CInvoiceImportPluginInitializer cInvoiceImportPluginInitializer; private CInvoiceImportPluginInitializer cInvoiceImportPluginInitializer;
@Test
public void getToken(){
String token = oaRestUtil.getToken("hzya", "8000590001");
System.out.println(token);
}
@Test @Test
public void contractAuditPluginTest(){ public void contractAuditPluginTest(){
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();