From 59b216b430b645845403309661a311adfba1ddc2 Mon Sep 17 00:00:00 2001 From: linfso Date: Fri, 2 Aug 2024 17:11:38 +0800 Subject: [PATCH] md --- .../erp/web/emis/EmisCommonController.java | 8 +- .../EmisSettleInvoiceChRecordController.java | 2 + .../EmisSettleInvoiceChRecordMapper.java | 9 +++ .../IEmisSettleInvoiceChRecordService.java | 2 + .../EmisSettleInvoiceChRecordServiceImpl.java | 81 ++++++++++--------- .../EmisSettleInvoiceChRecordMapper.xml | 10 ++- 6 files changed, 71 insertions(+), 41 deletions(-) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java index 9a66ce2de..485534725 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java @@ -80,9 +80,13 @@ public class EmisCommonController extends EmisBaseController @Autowired private IEmisPrintTplService emisPrintTplService; + @Autowired + private IEmisSettleInvoiceChRecordService emisSettleInvoiceChRecordService; + @Autowired RedissonService redissonService; + /** * 获取中心可用简单数 * @param prefix @@ -478,7 +482,7 @@ public class EmisCommonController extends EmisBaseController // 加锁查询 redissonService.lock(lockKey,300); try{ - emisBaseService.autoDoSmsSend(); + emisSettleInvoiceChRecordService.autoDoQueryOpenBillStatus(); }catch(Exception ex){ ex.printStackTrace(); log.error("autoQueryInvoiceStatusTrigger exception:"+ex.getMessage()); @@ -486,7 +490,7 @@ public class EmisCommonController extends EmisBaseController log.error("autoQueryInvoiceStatusTrigger end"); redissonService.unlock(lockKey); - return AjaxResult.success("发送成功"); + return AjaxResult.success("成功"); } diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java index 45f0a389e..ce7f48a48 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java @@ -50,6 +50,8 @@ public class EmisSettleInvoiceChRecordController extends BaseController @Autowired private IEmisSettleInvoiceChRecordService emisSettleInvoiceChRecordService; + + /** * 查询渠道开票记录表列表 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleInvoiceChRecordMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleInvoiceChRecordMapper.java index efa838ce0..f418ce29b 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleInvoiceChRecordMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleInvoiceChRecordMapper.java @@ -40,6 +40,15 @@ public interface EmisSettleInvoiceChRecordMapper extends BaseMapper selectEmisSettleInvoiceChRecordList(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord); + /** + * 获取待查询状态的数据 + * @return + */ + public List selectWaitQueryStatusList(); + + + + /** * 检查是否重复 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java index a31b249a6..363bf850c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java @@ -78,4 +78,6 @@ public interface IEmisSettleInvoiceChRecordService public int deleteEmisSettleInvoiceChRecordById(Long id); public int sendHXToOpen(Long id) throws EmisBizError; + + public void autoDoQueryOpenBillStatus(); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java index 354e44731..80d691f87 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java @@ -108,22 +108,20 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC EmisSettleInvoiceChRecord old=selectEmisSettleInvoiceChRecordById(id); - // 0-未发送 1-开票中 2-开票成功 3-开票失败 - if( - !"0".equals(old.getOpenChStatus()) - && !"3".equals(old.getOpenChStatus()) + if(old==null){ + throw new EmisBizError(EmisBizErrorType.FAIL,"航信开票记录不存在"); + } - ){ - throw new EmisBizError(EmisBizErrorType.FAIL,"当前状态不允许发送"); + // 0-未发送 1-开票中 2-开票成功 3-开票失败 + if("1".equals(old.getOpenChStatus()) || "2".equals(old.getOpenChStatus()) ){ + throw new EmisBizError(EmisBizErrorType.FAIL,"航信开票中或已开票状态不允许发送开票"); } EmisBaseInvoiceChInfo emisBaseInvoiceChInfo=emisBaseInvoiceChInfoMapper.selectEmisBaseInvoiceChInfoByTaxNo(old.getSalerCompanyTaxNo()); - HXOrderInfo order = new HXOrderInfo(); String token=HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(),emisBaseInvoiceChInfo.getAppSecret()); -// 91320104MA258WWMX2 丝路卡航(江苏)物流服务有限公司 4000251756 南京市秦淮区正学路1号南京晨光1865创意产业园F3幢1527号 交通银行股份有限公司南京新街口支行 320899991013001239978 2024-07-24 11:19:25 2024-07-24 11:45:21 order.setOrderNo(old.getReqNo()); order.setBuyerTaxNum(old.getCompanyTaxNo()); order.setBuyerName(old.getCompanyName()); @@ -137,7 +135,6 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC order.setWithTaxFlag( "1"); order.setShowBankAccountType("3"); - // 蓝票 order.setInvoiceType("1"); /* @@ -205,10 +202,8 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC newRecord.setId(old.getId()); newRecord.setOpenChStatus("1"); emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(newRecord); - - // 更新状态 - updateChOpenBillStatus(newRecord.getReqNo()); - + // 更新状态为已发送状态 + updateEmisSettleInvoiceChRecord(newRecord); } else{ EmisSettleInvoiceChRecord newRecord=new EmisSettleInvoiceChRecord(); @@ -220,32 +215,44 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC return 1; } - private void updateChOpenBillStatus(String reqNo){ - EmisSettleInvoiceChRecord old=emisSettleInvoiceChRecordMapper.selectEmisSettleInvoiceChRecordByReqNo(reqNo); + public void autoDoQueryOpenBillStatus(){ - EmisBaseInvoiceChInfo emisBaseInvoiceChInfo=emisBaseInvoiceChInfoMapper.selectEmisBaseInvoiceChInfoByTaxNo(old.getSalerCompanyTaxNo()); + List listWaitQuery=emisSettleInvoiceChRecordMapper.selectWaitQueryStatusList(); + for (EmisSettleInvoiceChRecord itemRecord:listWaitQuery) { + try { + doQueryAndUpdateChOpenBillStatus(itemRecord); + }catch (Exception ex){ + ex.printStackTrace(); + } + } - String token=HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(),emisBaseInvoiceChInfo.getAppSecret()); + } - EmisSettleInvoiceChRecord updRecord = new EmisSettleInvoiceChRecord(); - updRecord.setId(old.getId()); + private void doQueryAndUpdateChOpenBillStatus(EmisSettleInvoiceChRecord itemRecord){ - // 立即查询状态 - JSONObject jQRst=HXSdk.queryInvoiceResult(reqNo,token); - if( "00000".equals(jQRst.getString("code")) ){ - JSONObject data=jQRst.getJSONObject("data"); - JSONArray jInvoiceInfos=data.getJSONArray("invoiceInfos"); - if(!CollectionUtils.isEmpty(jInvoiceInfos)) { + EmisBaseInvoiceChInfo emisBaseInvoiceChInfo = emisBaseInvoiceChInfoMapper.selectEmisBaseInvoiceChInfoByTaxNo(itemRecord.getSalerCompanyTaxNo()); - JSONObject item0 = jInvoiceInfos.getJSONObject(0); - if("00000".equals(item0.getString("returnStatus"))){ - updRecord.setFilePath(item0.getString("pdfUrl")); - updRecord.setInvoiceNo(item0.getString("invoiceNo")); + String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret()); + + EmisSettleInvoiceChRecord updRecord = new EmisSettleInvoiceChRecord(); + updRecord.setId(itemRecord.getId()); + + // 立即查询状态 + JSONObject jQRst = HXSdk.queryInvoiceResult(itemRecord.getReqNo(), token); + if ("00000".equals(jQRst.getString("code"))) { + JSONObject data = jQRst.getJSONObject("data"); + JSONArray jInvoiceInfos = data.getJSONArray("invoiceInfos"); + if (!CollectionUtils.isEmpty(jInvoiceInfos)) { + + JSONObject item0 = jInvoiceInfos.getJSONObject(0); + if ("00000".equals(item0.getString("returnStatus"))) { + updRecord.setFilePath(item0.getString("pdfUrl")); + updRecord.setInvoiceNo(item0.getString("invoiceNo")); // updRecord.setRemark(jQRst.toJSONString()); - updRecord.setOpenChStatus(item0.getString("status")); + updRecord.setOpenChStatus(item0.getString("status")); - updRecord.setOpenChStatusDesc("已查询开票"); + updRecord.setOpenChStatusDesc("已查询开票"); /* status string Y 2 发票状态: 0:待开票; @@ -258,16 +265,16 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC */ - }else{ - updRecord.setOpenChStatus("-1"); - updRecord.setOpenChStatusDesc(item0.getString("returnStatusMsg")); - } + } else { + updRecord.setOpenChStatus("-1"); + updRecord.setOpenChStatusDesc(item0.getString("returnStatusMsg")); + } + emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(updRecord); - emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(updRecord); + } } - } } diff --git a/emis-biz/src/main/resources/mapper/EmisSettleInvoiceChRecordMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleInvoiceChRecordMapper.xml index bbb0c9209..09442e2ee 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleInvoiceChRecordMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleInvoiceChRecordMapper.xml @@ -160,6 +160,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from emis_settle_invoice_ch_record a where a.req_no = #{ReqNo} + + insert into emis_settle_invoice_ch_record @@ -308,11 +314,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from emis_settle_invoice_ch_record where id = #{id} + update emis_settle_invoice_ch_record set del_flag='0' where id = #{id} - delete from emis_settle_invoice_ch_record where id in + update emis_settle_invoice_ch_record set del_flag='0' where id in #{id}