发票批量录入查询结果
This commit is contained in:
parent
adf2c70d74
commit
203953ad8e
|
@ -0,0 +1,58 @@
|
||||||
|
package com.hzya.frame.plugin.ht.plugin;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.base.PluginBaseEntity;
|
||||||
|
import com.hzya.frame.plugin.zxBank.plugin.ZxBankResultPluginInitializer;
|
||||||
|
import com.hzya.frame.seeyon.invoice.service.impl.InvoiceServiceImpl;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
public class QueryInputInvoiceResultPluginInitializer extends PluginBaseEntity {
|
||||||
|
Logger logger = LoggerFactory.getLogger(QueryInputInvoiceResultPluginInitializer.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private InvoiceServiceImpl invoiceService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize() {
|
||||||
|
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
logger.info(getPluginLabel() + "執行銷毀方法destroy()");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginId() {
|
||||||
|
return "QueryInputInvoiceResultPluginInitializer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginName() {
|
||||||
|
return "查询发票批量录入返回结果插件";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginLabel() {
|
||||||
|
return "QueryInputInvoiceResultPluginInitializer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginType() {
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity executeBusiness(JSONObject requestJson) {
|
||||||
|
try {
|
||||||
|
logger.info("======开始执行查询税务进项发票批量录入返回结果========");
|
||||||
|
return invoiceService.queryInputInvoiceResult(requestJson);
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.info("======执行查询税务进项发票批量录入返回结果失败:{}========",e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,5 +4,6 @@
|
||||||
<bean name="MakeInvoicePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.MakeInvoicePluginInitializer" />
|
<bean name="MakeInvoicePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.MakeInvoicePluginInitializer" />
|
||||||
<bean name="InvoiceDistributePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.InvoiceDistributePluginInitializer" />
|
<bean name="InvoiceDistributePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.InvoiceDistributePluginInitializer" />
|
||||||
<bean name="QueryInvoiceResultPluginInitializer" class="com.hzya.frame.plugin.ht.plugin.QueryInvoiceResultPluginInitializer" />
|
<bean name="QueryInvoiceResultPluginInitializer" class="com.hzya.frame.plugin.ht.plugin.QueryInvoiceResultPluginInitializer" />
|
||||||
|
<bean name="QueryInputInvoiceResultPluginInitializer" class="com.hzya.frame.plugin.ht.plugin.QueryInputInvoiceResultPluginInitializer" />
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|
|
@ -59,4 +59,14 @@ public interface IInvoiceDao extends IBaseDao<InvoiceEntity,String> {
|
||||||
* @Date 2025-04-14 16:35
|
* @Date 2025-04-14 16:35
|
||||||
* **/
|
* **/
|
||||||
Integer updateInvoiceResult(InvoiceEntity entity);
|
Integer updateInvoiceResult(InvoiceEntity entity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 进项发票推送结果查询(查询发票批量录入结果)
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2025-04-17 15:19
|
||||||
|
* **/
|
||||||
|
List<InvoiceEntity> queryInputInvoiceResult(InvoiceEntity entity);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,4 +56,10 @@ public class InvoiceDaoImpl extends MybatisGenericDao<InvoiceEntity,String> impl
|
||||||
public Integer updateInvoiceResult(InvoiceEntity entity) {
|
public Integer updateInvoiceResult(InvoiceEntity entity) {
|
||||||
return super.update("updateInvoiceResult",entity);
|
return super.update("updateInvoiceResult",entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DS("#entity.dataSourceCode")
|
||||||
|
@Override
|
||||||
|
public List<InvoiceEntity> queryInputInvoiceResult(InvoiceEntity entity) {
|
||||||
|
return (List<InvoiceEntity>)super.selectList("queryInputInvoiceResult",entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,24 @@ public class InvoiceEntity extends BaseEntity {
|
||||||
private String result_status;// 开票结果
|
private String result_status;// 开票结果
|
||||||
|
|
||||||
private String summaryId;//
|
private String summaryId;//
|
||||||
|
private String input_result_status_filed;//进项发票结果字段
|
||||||
|
private String input_result_status;//进项发票结果
|
||||||
|
|
||||||
|
public String getInput_result_status_filed() {
|
||||||
|
return input_result_status_filed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInput_result_status_filed(String input_result_status_filed) {
|
||||||
|
this.input_result_status_filed = input_result_status_filed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInput_result_status() {
|
||||||
|
return input_result_status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInput_result_status(String input_result_status) {
|
||||||
|
this.input_result_status = input_result_status;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSummaryId() {
|
public String getSummaryId() {
|
||||||
return summaryId;
|
return summaryId;
|
||||||
|
|
|
@ -87,6 +87,12 @@
|
||||||
from v_hzya_invoice where push_status is not null and url is null and (result_status is null or result_status='申请单处理中')
|
from v_hzya_invoice where push_status is not null and url is null and (result_status is null or result_status='申请单处理中')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryInputInvoiceResult" resultMap="get-InvoiceEntity-result" parameterType="com.hzya.frame.seeyon.invoice.entity.InvoiceEntity">
|
||||||
|
select
|
||||||
|
*
|
||||||
|
from where
|
||||||
|
</select>
|
||||||
|
|
||||||
<!--通过主键修改方法-->
|
<!--通过主键修改方法-->
|
||||||
<update id="updateInvoiceUrl" parameterType = "com.hzya.frame.seeyon.invoice.entity.InvoiceEntity" >
|
<update id="updateInvoiceUrl" parameterType = "com.hzya.frame.seeyon.invoice.entity.InvoiceEntity" >
|
||||||
update ${tabName} set ${url_field} =#{url} where id=#{id}
|
update ${tabName} set ${url_field} =#{url} where id=#{id}
|
||||||
|
@ -101,9 +107,10 @@
|
||||||
<update id="updateInvoiceResult" parameterType = "com.hzya.frame.seeyon.invoice.entity.InvoiceEntity" >
|
<update id="updateInvoiceResult" parameterType = "com.hzya.frame.seeyon.invoice.entity.InvoiceEntity" >
|
||||||
update ${tabName} set
|
update ${tabName} set
|
||||||
<trim suffix="" suffixOverrides=",">
|
<trim suffix="" suffixOverrides=",">
|
||||||
<if test="invoiceCode != null and invoiceCode != ''"> invoice_code_field = #{invoiceCode},</if>
|
<if test="input_result_status != null and input_result_status != ''"> ${input_result_status_filed} = #{input_result_status},</if>
|
||||||
<if test="invoiceNumber != null and invoiceNumber != ''"> invoice_number_field = #{invoiceNumber},</if>
|
<if test="invoice_code != null and invoice_code != ''"> ${invoice_code_field} = #{invoice_code},</if>
|
||||||
<if test="resultStatus != null and resultStatus != ''"> result_status_field = #{resultStatus},</if>
|
<if test="invoice_number != null and invoice_number != ''"> ${invoice_number_field} = #{invoice_number},</if>
|
||||||
|
<if test="result_status != null and result_status != ''"> ${result_status_field} = #{result_status},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id=#{id}
|
where id=#{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
|
@ -6,7 +6,14 @@ public enum InvoiceState {
|
||||||
zero("0","申请单被关闭"),
|
zero("0","申请单被关闭"),
|
||||||
one("1","申请单开票成功"),
|
one("1","申请单开票成功"),
|
||||||
two("2","申请单处理中"),
|
two("2","申请单处理中"),
|
||||||
three("3","申请单开具异常");
|
three("3","申请单开具异常"),
|
||||||
|
inputZero("0","进行中"),
|
||||||
|
inputOne("1","全部成功"),
|
||||||
|
inputTwo("2","部分失败"),
|
||||||
|
inputThree("3","全部失败");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
//值
|
//值
|
||||||
|
|
|
@ -26,4 +26,14 @@ public interface IInvoiceService extends IBaseService<InvoiceEntity,String> {
|
||||||
* @Date 2025-04-02 14:10
|
* @Date 2025-04-02 14:10
|
||||||
* **/
|
* **/
|
||||||
JsonResultEntity queryInvoiceResult(JSONObject json);
|
JsonResultEntity queryInvoiceResult(JSONObject json);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 进项发票推送结果查询(查询发票批量录入结果)
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2025-04-17 15:11
|
||||||
|
* **/
|
||||||
|
JsonResultEntity queryInputInvoiceResult(JSONObject json);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import com.hzya.frame.seeyon.invoice.entity.InvoiceState;
|
||||||
import com.hzya.frame.seeyon.invoice.service.IInvoiceService;
|
import com.hzya.frame.seeyon.invoice.service.IInvoiceService;
|
||||||
import com.hzya.frame.seeyon.util.OARestUtil;
|
import com.hzya.frame.seeyon.util.OARestUtil;
|
||||||
import com.hzya.frame.seeyon.util.YzfSignUtil;
|
import com.hzya.frame.seeyon.util.YzfSignUtil;
|
||||||
|
import com.hzya.frame.seeyon.zxbank.entity.PayState;
|
||||||
import com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity;
|
import com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity;
|
||||||
import com.hzya.frame.sysnew.comparison.service.impl.ComparisonServiceImpl;
|
import com.hzya.frame.sysnew.comparison.service.impl.ComparisonServiceImpl;
|
||||||
import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity;
|
import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity;
|
||||||
|
@ -234,6 +235,70 @@ public class InvoiceServiceImpl extends BaseService<InvoiceEntity, String> imple
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//进项发票推送结果查询(查询发票批量录入结果)
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity queryInputInvoiceResult(JSONObject json) {
|
||||||
|
try {
|
||||||
|
InvoiceEntity invoiceEntity = json.toJavaObject(InvoiceEntity.class);
|
||||||
|
invoiceEntity.setDataSourceCode("HT-OA");
|
||||||
|
logger.info("=======开始查询杭泰税务的发票批量录入返回结果=========");
|
||||||
|
List<InvoiceEntity> invoiceEntities = invoiceDao.queryInputInvoiceResult(invoiceEntity);
|
||||||
|
if(CollectionUtils.isEmpty(invoiceEntities)){
|
||||||
|
logger.info("=====杭泰税务中没有需要查询发票批量录入返回结果的数据========");
|
||||||
|
return BaseResult.getSuccessMessageEntity("查询成功");
|
||||||
|
}
|
||||||
|
for (InvoiceEntity entity : invoiceEntities) {
|
||||||
|
long timestamp = System.currentTimeMillis();
|
||||||
|
Map<String, Object> parametersMap = new HashMap<>();
|
||||||
|
parametersMap.put("accessKey","6X3B526P5HqE6ums");
|
||||||
|
parametersMap.put("timestamp",timestamp);
|
||||||
|
String sign = YzfSignUtil.signRequest(parametersMap,"34e5fc32ac894a2ba2ade8c3852c7a0a");
|
||||||
|
JSONObject jsonObject=new JSONObject();
|
||||||
|
jsonObject.put("serialNumber",entity.getId());
|
||||||
|
jsonObject.put("accessKey","6X3B526P5HqE6ums");
|
||||||
|
jsonObject.put("sign",sign);
|
||||||
|
jsonObject.put("timestamp",timestamp);
|
||||||
|
logger.info("=======调用杭泰税务查询发票批量录入结果的请求参数为:{}=======",jsonObject.toJSONString());
|
||||||
|
//发送数据
|
||||||
|
String result = HttpRequest.post(url).
|
||||||
|
header("appId", "800060").
|
||||||
|
header("apiCode", "8000600006").
|
||||||
|
header("publicKey", "ZJYAmRjjYEDgqw4UXWHZNicYclErG0hsrwKQcHukPlP0K1pCe7eDIk+3zDUT+v578prj").
|
||||||
|
header("secretKey", "D6AHU3PL8UsNfK6A8I6mL4X1ma2NXckX/vM7AOzI/jmzJf+R1aY06Q6SBz7Y7drHj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=").
|
||||||
|
body(jsonObject.toJSONString()).
|
||||||
|
execute().
|
||||||
|
body();
|
||||||
|
logger.info("=====调用杭泰税务查询发票批量录入结果的返回参数为:{}===========",result);
|
||||||
|
JSONObject resultJson = JSONObject.parseObject(result);
|
||||||
|
if (!resultJson.getBoolean("flag")) {
|
||||||
|
saveTaskLivingDetails(entity.getId(), entity.getBusiness_no(), jsonObject.toJSONString(), resultJson.toJSONString(), false,"");
|
||||||
|
} else {
|
||||||
|
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||||
|
if("0".equals(attribute.getString("code"))) {
|
||||||
|
JSONObject jsonResult = JSONObject.parseObject(attribute.getString("result"));
|
||||||
|
if (null != jsonResult) {
|
||||||
|
String serialNumber = jsonResult.getString("serialNumber");//流水号
|
||||||
|
String status = jsonResult.getString("status");//发票批量录入返回结果状态
|
||||||
|
if(serialNumber.equals(entity.getId())){
|
||||||
|
//修改发票批量录入结果状态
|
||||||
|
logger.info("=========开始更新进项发票的结果==========");
|
||||||
|
entity.setInput_result_status(InvoiceState.invoiceStateGetValue(status));
|
||||||
|
entity.setDataSourceCode("HT-OA");
|
||||||
|
invoiceDao.updateInvoiceResult(entity);
|
||||||
|
logger.info("=========更新进项发票的结果完成==========");
|
||||||
|
saveTaskLivingDetails(entity.getId(),entity.getBusiness_no(),jsonObject.toJSONString(), resultJson.toJSONString(), true,"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.info("======查询杭泰税务发票批量录入结果失败====",e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private void ManyfileUpload(File file,InvoiceEntity entity,String sub_reference,String att_reference,JSONObject jsonObject){
|
private void ManyfileUpload(File file,InvoiceEntity entity,String sub_reference,String att_reference,JSONObject jsonObject){
|
||||||
JSONObject jsonObjectOfd = OARestUtil.fileUpload(file,"8000590003","8000590001");
|
JSONObject jsonObjectOfd = OARestUtil.fileUpload(file,"8000590003","8000590001");
|
||||||
if (jsonObjectOfd.getString("fileUrl") != null) {
|
if (jsonObjectOfd.getString("fileUrl") != null) {
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
<select id="queryResultIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
<select id="queryResultIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
||||||
select
|
select
|
||||||
<include refid="ZxBankEntity_Base_Column_List" />
|
<include refid="ZxBankEntity_Base_Column_List" />
|
||||||
from v_hzya_pay where push_status is not null and pay_result is null
|
from v_hzya_pay where push_status is not null and (pay_result is null or pay_result='支付中')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryElecIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
<select id="queryElecIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
||||||
|
|
|
@ -195,6 +195,7 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
||||||
String data = attribute.getString("data");
|
String data = attribute.getString("data");
|
||||||
logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
|
logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
|
||||||
String decrypt = SM2Util.decrypt(data, privateKey);
|
String decrypt = SM2Util.decrypt(data, privateKey);
|
||||||
|
logger.info("=======杭泰付款单调用中信支付结果查询返回参数明文为:{}", decrypt);
|
||||||
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
|
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
|
||||||
JSONArray jsonArray = jsonObjectData.getJSONArray("list");
|
JSONArray jsonArray = jsonObjectData.getJSONArray("list");
|
||||||
if(CollectionUtils.isNotEmpty(jsonArray)){
|
if(CollectionUtils.isNotEmpty(jsonArray)){
|
||||||
|
@ -221,7 +222,7 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
||||||
logger.info("========杭泰付款单查询支付结果执行成功========");
|
logger.info("========杭泰付款单查询支付结果执行成功========");
|
||||||
return BaseResult.getSuccessMessageEntity("支付结果查询成功");
|
return BaseResult.getSuccessMessageEntity("支付结果查询成功");
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
logger.info("=========查询中信返回的支付结果失败=======",e.getMessage());
|
logger.info("=========查询中信返回的支付结果失败:{}=======",e.getMessage());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return BaseResult.getFailureMessageEntity("支付结果查询失败");
|
return BaseResult.getFailureMessageEntity("支付结果查询失败");
|
||||||
|
|
Loading…
Reference in New Issue