diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java index 76d917d2..909b5a74 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java @@ -147,6 +147,7 @@ public class SDNYMainProcessController extends AbstractController { //入票池 + //推送到SAP List invoiceInfoList = snRequestObject.getInvoiceInfoList(); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java index 6e5cffc2..fa18222e 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java @@ -3,21 +3,26 @@ package com.dxhy.erp.service; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dxhy.common.constant.DbConstant; import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.common.util.InvoiceUtil; import com.dxhy.common.vo.UserInfo; import com.dxhy.erp.dao.AreaDao; import com.dxhy.erp.dao.OrgUserInfoDao; +import com.dxhy.erp.entity.BaseTDxRecordInvoice; import com.dxhy.erp.entity.kfpt.ApiCheckInvoiceSingleRequest; import com.dxhy.erp.entity.kfpt.ApiRequest; import com.dxhy.erp.entity.kfpt.ApiResponse; import com.dxhy.erp.entity.kfpt.TokenResponse; import com.dxhy.erp.entity.sdny.InvoiceDetail; import com.dxhy.erp.entity.sdny.InvoiceInfo; +import com.dxhy.erp.entity.sdny.SNRequestObject; import com.dxhy.erp.entity.sdny.area.Area; import com.dxhy.erp.utils.*; +import com.google.gson.JsonArray; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -85,6 +90,45 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { return post; } + public String pushInvoiceToRecordInvoice(SNRequestObject snRequestObject) throws Exception { + + +// QueryWrapper currentWrapper = new QueryWrapper<>(); +// currentWrapper.eq("taxno", gfsbh); +// DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ); +// BaseTDxTaxCurrent current = baseTDxTaxCurrentDao.selectOne(currentWrapper); +// +// +// BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); +// recordInvoice.setUuid(fpdm + fphm); +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +// try { +// recordInvoice.setInvoiceDate(sdf.parse(kprq)); +// } catch (ParseException e) { +// e.printStackTrace(); +// } +// recordInvoice.setInvoiceCode(fpdm); +// recordInvoice.setInvoiceNo(fphm); +// recordInvoice.setInvoiceAmount(new BigDecimal(je)); +// recordInvoice.setTaxAmount(new BigDecimal(se)); +// recordInvoice.setXfTaxNo(xfsh); +// recordInvoice.setGfTaxNo(gfsbh); +// recordInvoice.setGfName(gfmc); +// recordInvoice.setRzlx("5"); +// recordInvoice.setYqsqStatus("1"); +// recordInvoice.setYqCurrentPeriod(current.getCurrentTaxPeriod()); +// recordInvoice.setCreateDate(new Date()); +// recordInvoice.setYqsqDate(new Date()); +// recordInvoice.setSourceSystem("2"); +// recordInvoice.setInvoiceStatus("0"); +// recordInvoice.setInvoiceType(invoiceType); +// recordInvoice.setCompany((String)pramsMap.get("company")); +// baseTDxRecordInvoiceDao.insert(recordInvoice); + + + return ""; + } + public JSONObject checkInvoice(Map pramsMap, UserInfo userInfo) { @@ -158,11 +202,12 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { private JSONObject convertToSnObject(String content, JSONObject jsonObject, String invoiceType) { - HashMap contentMap = JSONObject.parseObject(Base64.decode(content).toString(), HashMap.class); + String con = new String(Base64.decode(content)); + HashMap contentMap = JSONObject.parseObject(con, HashMap.class); if ("0000".equals(contentMap.get("code"))) { - HashMap invoiceData = (HashMap) contentMap.get("data"); + HashMap invoiceData = JSONObject.parseObject(contentMap.get("data").toString(), HashMap.class); jsonObject.put("invoiceType", invoiceType); jsonObject.put("administrativeDivisionNo", ""); @@ -212,26 +257,24 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { jsonObject.put("idcardNo", invoiceData.get("sfzh")); List> returnDetailList = new ArrayList<>(); - String detailListStr = invoiceData.get("detailList"); - List> detailList = JSONObject.parseObject(detailListStr, List.class); - int i = 1; - for (Map detail : detailList) { - + JSONArray detailList = (JSONArray) invoiceData.get("detailList"); + for (int i = 0;i snDetailMap = new HashMap(); snDetailMap.put("rowNo", i + ""); - snDetailMap.put("commodityCode", detail.get("mxbh")); - snDetailMap.put("commodityName", detail.get("hwmc")); - snDetailMap.put("specificationModel", detail.get("ggxh")); - snDetailMap.put("unit", detail.get("jldw")); - snDetailMap.put("quantity", detail.get("spsl")); - snDetailMap.put("unitPrice", detail.get("hsdj")); - snDetailMap.put("amount", detail.get("je")); - snDetailMap.put("taxRate", detail.get("sl")); - snDetailMap.put("tax", detail.get("se")); - snDetailMap.put("currentDateEnd", detail.get("txrqz")); - snDetailMap.put("currentDateStart", detail.get("txrqq")); - snDetailMap.put("licensePlateNum", detail.get("cph")); - snDetailMap.put("type", detail.get("lx")); + snDetailMap.put("commodityCode", detail.getString("mxbh")); + snDetailMap.put("commodityName", detail.getString("hwmc")); + snDetailMap.put("specificationModel", detail.getString("ggxh")); + snDetailMap.put("unit", detail.getString("jldw")); + snDetailMap.put("quantity", detail.getString("spsl")); + snDetailMap.put("unitPrice", detail.getString("hsdj")); + snDetailMap.put("amount", detail.getString("je")); + snDetailMap.put("taxRate", detail.getString("sl")); + snDetailMap.put("tax", detail.getString("se")); + snDetailMap.put("currentDateEnd", detail.getString("txrqz")); + snDetailMap.put("currentDateStart", detail.getString("txrqq")); + snDetailMap.put("licensePlateNum", detail.getString("cph")); + snDetailMap.put("type", detail.getString("lx")); returnDetailList.add(snDetailMap); i++; diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/utils/ApiUtils.java b/dxhy-erp/src/main/java/com/dxhy/erp/utils/ApiUtils.java index 36e8e58e..71b3ea15 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/utils/ApiUtils.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/utils/ApiUtils.java @@ -53,7 +53,7 @@ public class ApiUtils { apiRequest.setEntCode(entCode); apiRequest.setDataExchangeId(requestId); String body = JSONObject.toJSONString(apiRequest); - url = url + "?access_token=" + accessToken; + url = url + accessToken; String result = null; try { result = HttpClientUtils.post(url, body, contentType, charset, connTimeout, readTimeout);