From 203953ad8e3cf19eadc13e60dda89d88b749e8ba Mon Sep 17 00:00:00 2001 From: hecan <1718492867@qq.com> Date: Thu, 17 Apr 2025 17:16:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E6=89=B9=E9=87=8F=E5=BD=95?= =?UTF-8?q?=E5=85=A5=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ryInputInvoiceResultPluginInitializer.java | 58 +++++++++++++++++ .../ht/spring/spring-buildpackage-plugin.xml | 1 + .../frame/seeyon/invoice/dao/IInvoiceDao.java | 10 +++ .../invoice/dao/impl/InvoiceDaoImpl.java | 6 ++ .../seeyon/invoice/entity/InvoiceEntity.java | 18 +++++ .../seeyon/invoice/entity/InvoiceEntity.xml | 13 +++- .../seeyon/invoice/entity/InvoiceState.java | 9 ++- .../invoice/service/IInvoiceService.java | 10 +++ .../service/impl/InvoiceServiceImpl.java | 65 +++++++++++++++++++ .../seeyon/zxbank/entity/ZxBankEntity.xml | 2 +- .../service/impl/ZxBankServiceImpl.java | 3 +- 11 files changed, 189 insertions(+), 6 deletions(-) create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/QueryInputInvoiceResultPluginInitializer.java diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/QueryInputInvoiceResultPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/QueryInputInvoiceResultPluginInitializer.java new file mode 100644 index 00000000..52cd42ca --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/QueryInputInvoiceResultPluginInitializer.java @@ -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; + } +} diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/ht/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/ht/spring/spring-buildpackage-plugin.xml index cfef96a4..6758f61b 100644 --- a/base-buildpackage/src/main/resources/cfgHome/plugin/ht/spring/spring-buildpackage-plugin.xml +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/ht/spring/spring-buildpackage-plugin.xml @@ -4,5 +4,6 @@ + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/IInvoiceDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/IInvoiceDao.java index 57c91c0c..e8304591 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/IInvoiceDao.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/IInvoiceDao.java @@ -59,4 +59,14 @@ public interface IInvoiceDao extends IBaseDao { * @Date 2025-04-14 16:35 * **/ Integer updateInvoiceResult(InvoiceEntity entity); + + /** + * + * @content 进项发票推送结果查询(查询发票批量录入结果) + * @Param + * @Return + * @Author hecan + * @Date 2025-04-17 15:19 + * **/ + List queryInputInvoiceResult(InvoiceEntity entity); } diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/impl/InvoiceDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/impl/InvoiceDaoImpl.java index 24f56359..1d189240 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/impl/InvoiceDaoImpl.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/dao/impl/InvoiceDaoImpl.java @@ -56,4 +56,10 @@ public class InvoiceDaoImpl extends MybatisGenericDao impl public Integer updateInvoiceResult(InvoiceEntity entity) { return super.update("updateInvoiceResult",entity); } + + @DS("#entity.dataSourceCode") + @Override + public List queryInputInvoiceResult(InvoiceEntity entity) { + return (List)super.selectList("queryInputInvoiceResult",entity); + } } diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.java index b2d700af..239b0659 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.java @@ -73,6 +73,24 @@ public class InvoiceEntity extends BaseEntity { private String result_status;// 开票结果 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() { return summaryId; diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml index 2247a385..10213540 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml @@ -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='申请单处理中') + + update ${tabName} set ${url_field} =#{url} where id=#{id} @@ -101,9 +107,10 @@ update ${tabName} set - invoice_code_field = #{invoiceCode}, - invoice_number_field = #{invoiceNumber}, - result_status_field = #{resultStatus}, + ${input_result_status_filed} = #{input_result_status}, + ${invoice_code_field} = #{invoice_code}, + ${invoice_number_field} = #{invoice_number}, + ${result_status_field} = #{result_status}, where id=#{id} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceState.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceState.java index 38a119ba..cf584ee3 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceState.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceState.java @@ -6,7 +6,14 @@ public enum InvoiceState { zero("0","申请单被关闭"), one("1","申请单开票成功"), two("2","申请单处理中"), - three("3","申请单开具异常"); + three("3","申请单开具异常"), + inputZero("0","进行中"), + inputOne("1","全部成功"), + inputTwo("2","部分失败"), + inputThree("3","全部失败"); + + + private String type; //值 diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/IInvoiceService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/IInvoiceService.java index 45f34f2c..05d18405 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/IInvoiceService.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/IInvoiceService.java @@ -26,4 +26,14 @@ public interface IInvoiceService extends IBaseService { * @Date 2025-04-02 14:10 * **/ JsonResultEntity queryInvoiceResult(JSONObject json); + + /** + * + * @content 进项发票推送结果查询(查询发票批量录入结果) + * @Param + * @Return + * @Author hecan + * @Date 2025-04-17 15:11 + * **/ + JsonResultEntity queryInputInvoiceResult(JSONObject json); } diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java index af842b00..199745c8 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java @@ -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.util.OARestUtil; 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.sysnew.comparison.service.impl.ComparisonServiceImpl; import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; @@ -234,6 +235,70 @@ public class InvoiceServiceImpl extends BaseService imple return null; } + //进项发票推送结果查询(查询发票批量录入结果) + @Override + public JsonResultEntity queryInputInvoiceResult(JSONObject json) { + try { + InvoiceEntity invoiceEntity = json.toJavaObject(InvoiceEntity.class); + invoiceEntity.setDataSourceCode("HT-OA"); + logger.info("=======开始查询杭泰税务的发票批量录入返回结果========="); + List invoiceEntities = invoiceDao.queryInputInvoiceResult(invoiceEntity); + if(CollectionUtils.isEmpty(invoiceEntities)){ + logger.info("=====杭泰税务中没有需要查询发票批量录入返回结果的数据========"); + return BaseResult.getSuccessMessageEntity("查询成功"); + } + for (InvoiceEntity entity : invoiceEntities) { + long timestamp = System.currentTimeMillis(); + Map 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){ JSONObject jsonObjectOfd = OARestUtil.fileUpload(file,"8000590003","8000590001"); if (jsonObjectOfd.getString("fileUrl") != null) { diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/zxbank/entity/ZxBankEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/zxbank/entity/ZxBankEntity.xml index b8c383c8..74f290c8 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/zxbank/entity/ZxBankEntity.xml +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/zxbank/entity/ZxBankEntity.xml @@ -76,7 +76,7 @@