From b0edb1ddfe8bae0b78813b08fa489dbe676662ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Thu, 2 Nov 2023 16:29:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=A2=E5=AD=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=A1=A8=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/ElephantInvoiceApiV6ServiceImpl.java | 161 ++++++++++++------ 1 file changed, 113 insertions(+), 48 deletions(-) diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java index 118ab1b..c6b8f88 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java @@ -5,9 +5,9 @@ import cn.hutool.core.codec.Base64; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSON; import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -699,6 +699,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { * @param companyservice * @return */ + @Override public HXResponse scopeQueryInvoices(JSONObject queryJson, Companyservice companyservice) { // 获取基本参数 QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -1247,6 +1248,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { InvoiceAllApiLog allApiLog = new InvoiceAllApiLog(); allApiLog.setUrl(WebServiceConstant.SQHZFPXXQRD); allApiLog.setSendMsg(""); + // 添加对应uuid allApiLog.setResultMsg(""); allApiLog.setCompany(companyservice.getSellertax()); allApiLog.setIdentityId(companyservice.getIdentity()); @@ -1456,6 +1458,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { * @param companyservice * @return */ + @Override public HXResponse deprecateQueryInvoice(DeprecateQueryInvoiceDTO deprecateQueryInvoiceDTO, Companyservice companyservice) { Invoice invoice = new Invoice(); invoice.setSellerTaxnum(companyservice.getSellertax()); @@ -1491,6 +1494,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { * @param companyservice * @return */ + @Override public HXResponse queryPrinter(QueryPrinterDTO queryPrinterDTO, Companyservice companyservice) { JSONObject query = new JSONObject(); query.put("NSRSBH", companyservice.getSellertax()); @@ -1992,8 +1996,31 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { return response; }else if (WebServiceConstant.QRCODE.equals(finalServiceId)) { // 获取人脸二维码 - //查询状态还是返回二维码数据 - //用不用入库 + + //获取税局用户名称 + JSONObject param = new JSONObject(); + param.put("NSRSBH",companyservice.getSellertax()); + HXResponse hxResponse = queryRpaTaxAccount(param, companyservice); + if (!StringUtils.equals("000000",hxResponse.getCode())){ + return hxResponse; + } + JSONObject resp = JSONObject.parseObject(JSON.toJSONString(hxResponse.getData())); + + Map reqParam = new HashMap<>(); + reqParam.put("NSRSBH",companyservice.getSellertax()); + reqParam.put("YHM",resp.getString("YHM")); + reqParam.put("RZID",allApiLog.getResultMsg()); + + HXResponse rpaAuthStatus = getRpaAuthStatus(new JSONObject(reqParam), companyservice); + + if (StringUtils.equals("000000",rpaAuthStatus.getCode())){ + rpaAuthStatus.setCode("200"); + rpaAuthStatus.setMessage("处理成功"); + JSONObject data = JSONObject.parseObject(JSON.toJSONString(rpaAuthStatus.getData())); + String ewm = data.getString("EWM"); + rpaAuthStatus.setData(new HashMap<>().put("ewm",ewm)); + } + return rpaAuthStatus; }else if (WebServiceConstant.SQHZFPXXQRD.equals(finalServiceId)) { // 申请红字信息表 @@ -2002,7 +2029,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Redinfo::getFpqqlsh,requestId); Redinfo redinfo = redinfoMapper.selectOne(queryWrapper); - HXResponse hxResponse = queryRedInfoByElepant(redinfo,companyservice); + HXResponse hxResponse = queryRedInfoByElepant(redinfo,companyservice,allApiLog); return hxResponse; @@ -2054,8 +2081,8 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { } - @Transactional(rollbackFor = Exception.class) - public HXResponse queryRedInfoByElepant(Redinfo redinfo, Companyservice companyservice) { +// @Transactional(rollbackFor = Exception.class) + public HXResponse queryRedInfoByElepant(Redinfo redinfo, Companyservice companyservice,InvoiceAllApiLog apiLog) { //返回信息 if (ObjectUtils.isEmpty(redinfo)){ @@ -2068,8 +2095,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { //封装请求参数 JSONObject param = new JSONObject(); param.put("NSRSBH",companyservice.getSellertax()); - //TODO 上传红字信息表需要存入uuid - param.put("UUID",""); + param.put("UUID",apiLog.getResultMsg()); param.put("XSFNSRSBH",companyservice.getSellertax()); debugLog("红字信息表申请查询断点1",uuid,System.currentTimeMillis()); @@ -2097,6 +2123,24 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { debugLog("断点8", uuid, System.currentTimeMillis()); ElephantRedInfo elephantRedInfo = queryResultDTO.getDATA(); + //原发票处理 + String originFphm = redinfo.getOriginFphm(); + QueryWrapper invoiceQueryWrapper = new QueryWrapper<>(); + invoiceQueryWrapper.eq("fphm", originFphm); + Invoice invoice = invoiceMapper.selectOne(invoiceQueryWrapper); + //更新蓝字发票状态为冲红 99 + invoice.setState(99); + invoiceMapper.updateInvoice(invoice); + invoice.setId(null); + invoice.setOriginFphm(invoice.getFphm()); + invoice.setFphm(elephantRedInfo.getHZFPHM()); + invoice.setBillInfoId(redinfo.getId()); + invoice.setSystemOrderno(redinfo.getSystemOrderno()); + invoice.setOutTradeOrderno(apiLog.getRequestId()); + invoice.setFpqqlsh(redinfo.getFpqqlsh()); + invoice.setKprq(DateUtil.parse(elephantRedInfo.getHZKPRQ())); + invoice.setState(2); + invoiceMapper.insertInvoice(invoice); //红字信息表主信息封装 redinfo.setRedInfoNo(elephantRedInfo.getHZFPXXQRDBH()); redinfo.setSqlb(elephantRedInfo.getLRFSF()); @@ -2116,52 +2160,73 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { redinfo.setBillInputTime(elephantRedInfo.getHZKPRQ()); int i = redinfoMapper.updateRedinfo(redinfo); + debugLog("断点9", uuid, System.currentTimeMillis()); if (i<1){ debugLog("红字订单更新主表信息失败",uuid,System.currentTimeMillis()); throw new JianshuiServiceException("红字订单更新主表信息失败"); } - List redinfodetailList = new ArrayList<>(); - - List redinfodetails = redinfoMapper.selectRedinfoDetailList(redinfo.getId()); - - Map redInfoMapByIndex = redinfodetails.stream().collect(Collectors.toMap(e -> e.getIndex(), e -> e)); - - for (ElephantRedInfoDetail elephantRedInfoDetail : elephantRedInfo.getHZQRXXMXLIST()) { - - Redinfodetail redinfodetail = redInfoMapByIndex.get(elephantRedInfoDetail.getXH().longValue()); - redinfodetail.setBillno(redinfo.getRedInfoNo()); - redinfodetail.setRedinfoId(redinfo.getId()); - redinfodetail.setIndex(elephantRedInfoDetail.getXH()); - redinfodetail.setGoodName(elephantRedInfoDetail.getXMMC()); - redinfodetail.setSpec(elephantRedInfoDetail.getGGXH()); - redinfodetail.setUnit(elephantRedInfoDetail.getDW()); - redinfodetail.setPrice(new BigDecimal(elephantRedInfoDetail.getFPSPDJ())); - // TODO 不确定金额是否为含税金额 - redinfodetail.setTaxamt(new BigDecimal(elephantRedInfoDetail.getJE())); - redinfodetail.setTax(new BigDecimal(elephantRedInfoDetail.getSE())); - redinfodetail.setTaxfreeamt(redinfodetail.getTaxamt().subtract(redinfodetail.getTax())); - - redinfodetail.setTaxrate(new BigDecimal(elephantRedInfoDetail.getSLV())); - redinfodetail.setCreateTime(new Date()); - redinfodetailList.add(redinfodetail); - } - - //删除红字信息明细 - redinfoMapper.deleteRedinfodetailByRedinfoId(redinfo.getId()); - //批量插入 - int count = redinfoMapper.batchRedinfodetail(redinfodetailList); - if(count <1){ - debugLog("红字订单更新明细信息失败",uuid,System.currentTimeMillis()); - throw new JianshuiServiceException("红字订单更新明细信息失败"); - } - - //TODO 返回啥看看文档 - - redinfo.setRedinfodetailList(redinfodetailList); - - return new HXResponse("200","查询成功",redinfo); + //返回报文 + AddRedInfoInvoiceTWOVO addRedInfoInvoiceTWO = new AddRedInfoInvoiceTWOVO(); + + addRedInfoInvoiceTWO.setHzfpxxqrdZtdm(elephantRedInfo.getHZFPXXQRDBH()); + addRedInfoInvoiceTWO.setHzfpxxqrdid(elephantRedInfo.getUUID()); + addRedInfoInvoiceTWO.setHzfpxxqrdZtdm(queryResultDTO.getZTDM()); + + AddRedInfoInvoiceJsonDataTWOVO addRedInfoInvoiceJsonDataTWOVO = new AddRedInfoInvoiceJsonDataTWOVO(); + addRedInfoInvoiceJsonDataTWOVO.setFpqqlsh(redinfo.getFpqqlsh()); + addRedInfoInvoiceJsonDataTWOVO.setFphm(elephantRedInfo.getHZFPHM()); + addRedInfoInvoiceJsonDataTWOVO.setGmfnsrsbh(elephantRedInfo.getGMFNSRSBH()); + addRedInfoInvoiceJsonDataTWOVO.setGmfmc(elephantRedInfo.getGMFMC()); + addRedInfoInvoiceJsonDataTWOVO.setKprq(elephantRedInfo.getHZKPRQ()); + addRedInfoInvoiceJsonDataTWOVO.setXsfmc(elephantRedInfo.getXSFMC()); + addRedInfoInvoiceJsonDataTWOVO.setXsfnsrsbh(elephantRedInfo.getXSFNSRSBH()); + + addRedInfoInvoiceTWO.setHzfpxx(addRedInfoInvoiceJsonDataTWOVO); + + //金财没有处理明细 + +// List redinfodetailList = new ArrayList<>(); +// +// List redinfodetails = redinfoMapper.selectRedinfoDetailList(redinfo.getId()); +// +// Map redInfoMapByIndex = redinfodetails.stream().collect(Collectors.toMap(e -> e.getIndex(), e -> e)); +// +// for (ElephantRedInfoDetail elephantRedInfoDetail : elephantRedInfo.getHZQRXXMXLIST()) { +// +// Redinfodetail redinfodetail = redInfoMapByIndex.get(elephantRedInfoDetail.getXH().longValue()); +// redinfodetail.setBillno(redinfo.getRedInfoNo()); +// redinfodetail.setRedinfoId(redinfo.getId()); +// redinfodetail.setIndex(elephantRedInfoDetail.getXH()); +// redinfodetail.setGoodName(elephantRedInfoDetail.getXMMC()); +// redinfodetail.setSpec(elephantRedInfoDetail.getGGXH()); +// redinfodetail.setUnit(elephantRedInfoDetail.getDW()); +// redinfodetail.setPrice(new BigDecimal(elephantRedInfoDetail.getFPSPDJ())); +// // TODO 不确定金额是否为含税金额 +// redinfodetail.setTaxamt(new BigDecimal(elephantRedInfoDetail.getJE())); +// redinfodetail.setTax(new BigDecimal(elephantRedInfoDetail.getSE())); +// redinfodetail.setTaxfreeamt(redinfodetail.getTaxamt().subtract(redinfodetail.getTax())); +// +// redinfodetail.setTaxrate(new BigDecimal(elephantRedInfoDetail.getSLV())); +// redinfodetail.setCreateTime(new Date()); +// redinfodetailList.add(redinfodetail); +// } +// +// //删除红字信息明细 +// redinfoMapper.deleteRedinfodetailByRedinfoId(redinfo.getId()); +// debugLog("断点10", uuid, System.currentTimeMillis()); +// //批量插入 +// int count = redinfoMapper.batchRedinfodetail(redinfodetailList); +// debugLog("断点11", uuid, System.currentTimeMillis()); +// if(count <1){ +// debugLog("红字订单更新明细信息失败",uuid,System.currentTimeMillis()); +// throw new JianshuiServiceException("红字订单更新明细信息失败"); +// } + + + return new HXResponse("0000","查询成功",addRedInfoInvoiceTWO); } + }