发票批量录入查询结果

This commit is contained in:
hecan 2025-04-17 17:16:45 +08:00
parent adf2c70d74
commit 203953ad8e
11 changed files with 189 additions and 6 deletions

View File

@ -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;
}
}

View File

@ -4,5 +4,6 @@
<bean name="MakeInvoicePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.MakeInvoicePluginInitializer" />
<bean name="InvoiceDistributePluginInitializer" class="com.hzya.frame.plugin.ht.plugin.InvoiceDistributePluginInitializer" />
<bean name="QueryInvoiceResultPluginInitializer" class="com.hzya.frame.plugin.ht.plugin.QueryInvoiceResultPluginInitializer" />
<bean name="QueryInputInvoiceResultPluginInitializer" class="com.hzya.frame.plugin.ht.plugin.QueryInputInvoiceResultPluginInitializer" />
</beans>

View File

@ -59,4 +59,14 @@ public interface IInvoiceDao extends IBaseDao<InvoiceEntity,String> {
* @Date 2025-04-14 16:35
* **/
Integer updateInvoiceResult(InvoiceEntity entity);
/**
*
* @content 进项发票推送结果查询查询发票批量录入结果
* @Param
* @Return
* @Author hecan
* @Date 2025-04-17 15:19
* **/
List<InvoiceEntity> queryInputInvoiceResult(InvoiceEntity entity);
}

View File

@ -56,4 +56,10 @@ public class InvoiceDaoImpl extends MybatisGenericDao<InvoiceEntity,String> impl
public Integer updateInvoiceResult(InvoiceEntity entity) {
return super.update("updateInvoiceResult",entity);
}
@DS("#entity.dataSourceCode")
@Override
public List<InvoiceEntity> queryInputInvoiceResult(InvoiceEntity entity) {
return (List<InvoiceEntity>)super.selectList("queryInputInvoiceResult",entity);
}
}

View File

@ -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;

View File

@ -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='申请单处理中')
</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 ${tabName} set ${url_field} =#{url} where id=#{id}
@ -101,9 +107,10 @@
<update id="updateInvoiceResult" parameterType = "com.hzya.frame.seeyon.invoice.entity.InvoiceEntity" >
update ${tabName} set
<trim suffix="" suffixOverrides=",">
<if test="invoiceCode != null and invoiceCode != ''"> invoice_code_field = #{invoiceCode},</if>
<if test="invoiceNumber != null and invoiceNumber != ''"> invoice_number_field = #{invoiceNumber},</if>
<if test="resultStatus != null and resultStatus != ''"> result_status_field = #{resultStatus},</if>
<if test="input_result_status != null and input_result_status != ''"> ${input_result_status_filed} = #{input_result_status},</if>
<if test="invoice_code != null and invoice_code != ''"> ${invoice_code_field} = #{invoice_code},</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>
where id=#{id}
</update>

View File

@ -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;
//

View File

@ -26,4 +26,14 @@ public interface IInvoiceService extends IBaseService<InvoiceEntity,String> {
* @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);
}

View File

@ -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<InvoiceEntity, String> imple
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){
JSONObject jsonObjectOfd = OARestUtil.fileUpload(file,"8000590003","8000590001");
if (jsonObjectOfd.getString("fileUrl") != null) {

View File

@ -76,7 +76,7 @@
<select id="queryResultIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
select
<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 id="queryElecIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">

View File

@ -195,6 +195,7 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
String data = attribute.getString("data");
logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
String decrypt = SM2Util.decrypt(data, privateKey);
logger.info("=======杭泰付款单调用中信支付结果查询返回参数明文为:{}", decrypt);
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
JSONArray jsonArray = jsonObjectData.getJSONArray("list");
if(CollectionUtils.isNotEmpty(jsonArray)){
@ -221,7 +222,7 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
logger.info("========杭泰付款单查询支付结果执行成功========");
return BaseResult.getSuccessMessageEntity("支付结果查询成功");
}catch (Exception e){
logger.info("=========查询中信返回的支付结果失败=======",e.getMessage());
logger.info("=========查询中信返回的支付结果失败:{}=======",e.getMessage());
e.printStackTrace();
}
return BaseResult.getFailureMessageEntity("支付结果查询失败");