diff --git a/dxhy-common/src/main/java/com/dxhy/common/enums/ExcelServiceTypeEnum.java b/dxhy-common/src/main/java/com/dxhy/common/enums/ExcelServiceTypeEnum.java index f8ccb36a..7d3e5633 100644 --- a/dxhy-common/src/main/java/com/dxhy/common/enums/ExcelServiceTypeEnum.java +++ b/dxhy-common/src/main/java/com/dxhy/common/enums/ExcelServiceTypeEnum.java @@ -233,6 +233,7 @@ public enum ExcelServiceTypeEnum { //乐企,异常海关缴款书导出 LQ_CUSTOM_FPYCXX(68,68); + private int serviceType; private int index; diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/FpxxZhDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/FpxxZhDao.java index a974fc30..a71797be 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/dao/FpxxZhDao.java +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/FpxxZhDao.java @@ -36,4 +36,11 @@ public interface FpxxZhDao extends BaseMapper { * @return java.util.List */ List selectTaxRebateByPramsMap(Map pramsMap); + + /** + * 功能描述 + * @param pramsMap + * @return java.util.List + */ + List selectByparams(Map pramsMap); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtAddTaxInvoice.java b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtAddTaxInvoice.java index 76777b12..8897e60a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtAddTaxInvoice.java +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtAddTaxInvoice.java @@ -272,4 +272,7 @@ public class ExtAddTaxInvoice implements Serializable { private String imageId; private String accountPeriod; private String compCode; + private String bzdh; + + } diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtOtherInvoice.java b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtOtherInvoice.java index 7f9ef0f9..dde5ba4d 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtOtherInvoice.java +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtOtherInvoice.java @@ -93,4 +93,6 @@ public class ExtOtherInvoice implements Serializable { private String imageId; private String accountPeriod; private String compCode; + private String inAccountStatus; + private String bzdh; } diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/TicketInvoiceModel.java b/dxhy-core/src/main/java/com/dxhy/core/entity/TicketInvoiceModel.java index 9d11c847..361c4f64 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/entity/TicketInvoiceModel.java +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/TicketInvoiceModel.java @@ -106,6 +106,8 @@ public class TicketInvoiceModel implements Serializable { private String businessDocumentNumber; private String createDate; + private String bzdh; + private String inAccountStatus; private String snVoucherNumber; private String postingTime; private String imageId; diff --git a/dxhy-core/src/main/java/com/dxhy/core/model/FpRzRespVO.java b/dxhy-core/src/main/java/com/dxhy/core/model/FpRzRespVO.java index 9a920466..a990e26a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/model/FpRzRespVO.java +++ b/dxhy-core/src/main/java/com/dxhy/core/model/FpRzRespVO.java @@ -211,4 +211,16 @@ public class FpRzRespVO implements Serializable { * 全电发票号码 */ private String eleInvoiceNo; + + private String snVoucherNumber; + + private String imageNumber; + + private String bzdh; + + private String compCode; + + private String postingTime; + + private String accountPeriod; } diff --git a/dxhy-core/src/main/java/com/dxhy/core/model/JkszhcxRespVO.java b/dxhy-core/src/main/java/com/dxhy/core/model/JkszhcxRespVO.java index 8d6ac70a..4e87426f 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/model/JkszhcxRespVO.java +++ b/dxhy-core/src/main/java/com/dxhy/core/model/JkszhcxRespVO.java @@ -159,4 +159,5 @@ public class JkszhcxRespVO implements Serializable { private String imageId; private String accountPeriod; private String compCode; + private String bzdh; } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/export/RzFpxxService.java b/dxhy-core/src/main/java/com/dxhy/core/service/export/RzFpxxService.java index c6650a73..a8c2dcc9 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/export/RzFpxxService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/export/RzFpxxService.java @@ -37,4 +37,22 @@ public interface RzFpxxService extends MpBaseService { * @return com.alibaba.fastjson.JSONObject */ JSONObject getTaxRebateList(Map pramsMap, int curr, int size); + + /** + * 功能描述 + * @return java.lang.String + */ + String getblocName(String s); + + /** + * @param gfsh + * @return java.lang.String + */ + String getGfName(String gfsh); + + /** + * @param pramsMap + * @return JSONObject + */ + JSONObject selectWithParams(Map pramsMap,int curr,int size); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/CustomsServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/CustomsServiceImpl.java index fb412c75..dce573e8 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/CustomsServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/CustomsServiceImpl.java @@ -56,13 +56,20 @@ public class CustomsServiceImpl extends MpBaseServiceImpl 0) { for (int i = 0; i < pageList.size(); i++) { JkszhcxRespVO vo = pageList.get(i); - String[] dataArray = new String[32]; + String[] dataArray = new String[36]; // xh dataArray[0] = String.valueOf((curr - 1) * size + i + 1); // 缴款书号码 dataArray[1] = vo.getCustomsCode(); // 管理状态 - dataArray[2] = dictdetaServcice.queryDictName(DictConstant.GLZT, vo.getGlzt()); + if (vo.getGlzt() != null && "0".equals(vo.getGlzt())){ + dataArray[2] = "正常"; + }else if (vo.getGlzt() != null && "1".equals(vo.getGlzt())){ + dataArray[2] = "异常"; + }else if (vo.getGlzt() != null && "2".equals(vo.getGlzt())){ + dataArray[2] = "疑似非正常"; + } +// dataArray[2] = dictdetaServcice.queryDictName(DictConstant.GLZT, vo.getGlzt()); // 填发日期 dataArray[3] = vo.getFillInDate(); // 缴款单位名称 @@ -126,6 +133,13 @@ public class CustomsServiceImpl extends MpBaseServiceImpl 0) { for (int i = 0; i < pageList.size(); i++) { - String[] dataArray = new String[17]; + String[] dataArray = new String[20]; dataArray[0] = String.valueOf((curr - 1) * size + i + 1); // 发票类型 dataArray[1] = new InvoiceTypeUtils().invoiceTypeName(pageList.get(i).getInvoiceType()); @@ -161,6 +161,14 @@ public class PoolPaperServiceImpl extends MpBaseServiceImpl 0) { for (int i = 0; i < pageList.size(); i++) { - String[] dataArray = new String[36]; + String[] dataArray = new String[39]; dataArray[0] = String.valueOf((curr - 1) * size + i + 1); // 发票类型 dataArray[1] = new InvoiceTypeUtils().invoiceTypeName(pageList.get(i).getInvoiceType()); @@ -311,6 +319,13 @@ public class PoolPaperServiceImpl extends MpBaseServiceImpl 0) { for (int i = 0; i < pageList.size(); i++) { - String[] dataArray = new String[27]; + String[] dataArray = new String[30]; dataArray[0] = String.valueOf((curr - 1) * size + i + 1); // 发票类型 dataArray[1] = new InvoiceTypeUtils().invoiceTypeName(pageList.get(i).getInvoiceType()); @@ -406,6 +421,13 @@ public class PoolPaperServiceImpl extends MpBaseServiceImpl private DictdetaServcice dictdetaServcice; @Value("${dxhy.datasource.dxhy_admin:dxhy_admin}") private String dxhyAdmin; + @Resource + private PoolPaperService poolPaperService; @Override - public JSONObject selectByPramsMap(Map pramsMap, int curr, int size) { + public JSONObject selectWithParams(Map pramsMap, int curr, int size) { DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ); JSONObject json = new JSONObject(); try { @@ -59,7 +62,7 @@ public class RzFpxxServiceImpl extends MpBaseServiceImpl json.put("datalist", new ArrayList()); } else { PageHelper.startPage(curr, size); - List pageList = super.baseMapper.selectByPramsMap(pramsMap); + List pageList = super.baseMapper.selectByparams(pramsMap); PageInfo pageInfo = new PageInfo<>(pageList); json.put("hasNext", pageInfo.isHasNextPage()); json.put("nextPage", pageInfo.getNextPage()); @@ -68,44 +71,32 @@ public class RzFpxxServiceImpl extends MpBaseServiceImpl List returnList = new ArrayList<>(); if (resultList != null && resultList.size() > 0) { for (int i = 0; i < pageList.size(); i++) { - pageList.get(i).setXh(String.valueOf((curr - 1) * size + i + 1)); - // 字典转换 - pageList.get(i).setInAccountStatus(dictdetaServcice.queryDictName(DictConstant.DK_STATUS, - pageList.get(i).getInAccountStatus())); - pageList.get(i) - .setInvoiceType(new InvoiceTypeUtils().invoiceTypeName(pageList.get(i).getInvoiceType())); - String invoiceStatus = pageList.get(i).getInvoiceStatus(); - pageList.get(i).setInvoiceStatus( - dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus)); - String qsStatus = pageList.get(i).getQszt(); - pageList.get(i).setQszt(dictdetaServcice.queryDictName(DictConstant.QS_STATUS, qsStatus)); - pageList.get(i) - .setQsfs(dictdetaServcice.queryDictName(DictConstant.QS_TYPE, pageList.get(i).getQsfs())); - pageList.get(i).setRzzt( - dictdetaServcice.queryDictName(DictConstant.DEDU_STATUS, pageList.get(i).getRzzt())); - pageList.get(i).setRzclzt( - dictdetaServcice.queryDictName(DictConstant.AUTH_STATUS_ALL, pageList.get(i).getRzclzt())); - pageList.get(i).setRzlx( - dictdetaServcice.queryDictName(DictConstant.BDK_STATUS, pageList.get(i).getBdkStatus())); - pageList.get(i).setCxrzStatus( - dictdetaServcice.queryDictName(DictConstant.CXRZ_STATUS, pageList.get(i).getCxrzStatus())); - pageList.get(i).setPaymentStatus( - dictdetaServcice.queryDictName(DictConstant.FK_STATUS, pageList.get(i).getPaymentStatus())); + String[] dataArray = new String[21]; + dataArray[0] = String.valueOf((curr - 1) * size + i + 1); + dataArray[1] = pageList.get(i).getInvoiceCode(); + dataArray[2] = pageList.get(i).getInvoiceNo(); + dataArray[3] = dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS,pageList.get(i).getInvoiceStatus()); + dataArray[4] = pageList.get(i).getInvoiceDate(); + dataArray[5] = pageList.get(i).getGfName(); + dataArray[6] = pageList.get(i).getXfName(); + dataArray[7] = pageList.get(i).getInvoiceAmount(); + dataArray[8] = pageList.get(i).getTaxAmount(); + dataArray[9] = pageList.get(i).getDkTaxAmount(); + dataArray[10] = dictdetaServcice.queryDictName(DictConstant.QS_STATUS, pageList.get(i).getQsStatus()); + dataArray[11] = pageList.get(i).getQsDate(); + dataArray[12] = dictdetaServcice.queryDictName(DictConstant.QS_TYPE, pageList.get(i).getQsType()); + dataArray[13] = pageList.get(i).getQsName(); + dataArray[14] = pageList.get(i).getSnVoucherNumber(); + dataArray[15] = pageList.get(i).getPostingTime(); + dataArray[16] = pageList.get(i).getImageNumber(); + dataArray[17] = pageList.get(i).getAccountPeriod(); + dataArray[18] = pageList.get(i).getBzdh(); + dataArray[19] = pageList.get(i).getCompCode(); - if ("".equals(pageList.get(i).getInvoiceAmount())) { - pageList.get(i).setInvoiceAmount(MathUtil.round(pageList.get(i).getInvoiceAmount())); - } else { - pageList.get(i).setInvoiceAmount(MathUtil.round(pageList.get(i).getInvoiceAmount())); - } - if ("".equals(pageList.get(i).getTaxAmount())) { - pageList.get(i).setTaxAmount(MathUtil.round(pageList.get(i).getTaxAmount())); - } else { - pageList.get(i).setTaxAmount(MathUtil.round(pageList.get(i).getTaxAmount())); - } - pageList.get(i).setDkTaxAmount(MathUtil.round(pageList.get(i).getDkTaxAmount())); + returnList.add(dataArray); } } - json.put("datalist", pageList); + json.put("datalist", resultList); } } catch (Exception e) { // 统一设置操作异常标识 @@ -190,4 +181,87 @@ public class RzFpxxServiceImpl extends MpBaseServiceImpl } return json; } + + @Override + public String getblocName(String s) { + return poolPaperService.getblocName(s); + } + + @Override + public String getGfName(String gfsh) { + return poolPaperService.getGfName(gfsh); + } + + @Override + public JSONObject selectByPramsMap(Map pramsMap, int curr, int size) { + + DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ); + JSONObject json = new JSONObject(); + try { + List gfshList = (List)pramsMap.get("gfsh"); + String inAccountStatus = (String)pramsMap.get("inAccountStatus"); + if (gfshList.size() == 0) { + // 未从getUserInfo()获取到购方税号信息 + json.put("hjsl", "0"); + json.put("hjje", "0"); + json.put("hjse", "0"); + json.put("total", "0"); + json.put("datalist", new ArrayList()); + } else { + PageHelper.startPage(curr, size); + List pageList = super.baseMapper.selectByPramsMap(pramsMap); + PageInfo pageInfo = new PageInfo<>(pageList); + json.put("hasNext", pageInfo.isHasNextPage()); + json.put("nextPage", pageInfo.getNextPage()); + + List resultList = pageInfo.getList(); + List returnList = new ArrayList<>(); + if (resultList != null && resultList.size() > 0) { + for (int i = 0; i < pageList.size(); i++) { + pageList.get(i).setXh(String.valueOf((curr - 1) * size + i + 1)); + // 字典转换 + pageList.get(i).setInAccountStatus(dictdetaServcice.queryDictName(DictConstant.DK_STATUS, + pageList.get(i).getInAccountStatus())); + pageList.get(i) + .setInvoiceType(new InvoiceTypeUtils().invoiceTypeName(pageList.get(i).getInvoiceType())); + String invoiceStatus = pageList.get(i).getInvoiceStatus(); + pageList.get(i).setInvoiceStatus( + dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus)); + String qsStatus = pageList.get(i).getQszt(); + pageList.get(i).setQszt(dictdetaServcice.queryDictName(DictConstant.QS_STATUS, qsStatus)); + pageList.get(i) + .setQsfs(dictdetaServcice.queryDictName(DictConstant.QS_TYPE, pageList.get(i).getQsfs())); + pageList.get(i).setRzzt( + dictdetaServcice.queryDictName(DictConstant.DEDU_STATUS, pageList.get(i).getRzzt())); + pageList.get(i).setRzclzt( + dictdetaServcice.queryDictName(DictConstant.AUTH_STATUS_ALL, pageList.get(i).getRzclzt())); + pageList.get(i).setRzlx( + dictdetaServcice.queryDictName(DictConstant.BDK_STATUS, pageList.get(i).getBdkStatus())); + pageList.get(i).setCxrzStatus( + dictdetaServcice.queryDictName(DictConstant.CXRZ_STATUS, pageList.get(i).getCxrzStatus())); + pageList.get(i).setPaymentStatus( + dictdetaServcice.queryDictName(DictConstant.FK_STATUS, pageList.get(i).getPaymentStatus())); + + if ("".equals(pageList.get(i).getInvoiceAmount())) { + pageList.get(i).setInvoiceAmount(MathUtil.round(pageList.get(i).getInvoiceAmount())); + } else { + pageList.get(i).setInvoiceAmount(MathUtil.round(pageList.get(i).getInvoiceAmount())); + } + if ("".equals(pageList.get(i).getTaxAmount())) { + pageList.get(i).setTaxAmount(MathUtil.round(pageList.get(i).getTaxAmount())); + } else { + pageList.get(i).setTaxAmount(MathUtil.round(pageList.get(i).getTaxAmount())); + } + pageList.get(i).setDkTaxAmount(MathUtil.round(pageList.get(i).getDkTaxAmount())); + } + } + json.put("datalist", pageList); + } + } catch (Exception e) { + // 统一设置操作异常标识 + json = super.errorResult(e); + } + + return json; + } } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/TicketServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/TicketServiceImpl.java index 8e1b2755..922db438 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/TicketServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/export/impl/TicketServiceImpl.java @@ -137,7 +137,7 @@ public class TicketServiceImpl extends MpBaseServiceImpl exportLogs; + + private final RzFpxxService rzFpxxService; + + private final FileService fileService; + + private final Sender sender; + + private final IFeginWebsocket feginWebsocket; + private final TabulateRedisServiceImpl tabulateRedisService; + + public ManualAthensThread(IExcelExportlogService exportLogService, List exportLogs, + RzFpxxService rzFpxxService, FileService fileService, Sender sender, IFeginWebsocket feginWebsocket, + TabulateRedisServiceImpl tabulateRedisService) { + this.exportLogService = exportLogService; + this.exportLogs = exportLogs; + this.rzFpxxService = rzFpxxService; + this.fileService = fileService; + this.sender = sender; + this.feginWebsocket = feginWebsocket; + this.tabulateRedisService = tabulateRedisService; + } + + @Override + public void run() { + for (TDxExcelExportlog exportLog : exportLogs) { + // 日志表主键 + Long id = exportLog.getId(); + String userid = exportLog.getUserAccount(); + String userName = exportLog.getUserName(); + // 导出条件 + String condition = exportLog.getConditions(); + // 数据源名称 + String dbName = exportLog.getDbName(); + if (StringHelper.isBlank(dbName)) { + dbName = ""; + } + String createDate = DateUtils.dateToStrLong(exportLog.getCreateDate()); + + JSONObject msg = new JSONObject(); + + // 捕获异常,防止某一条日志导出出错,影响其它日志的导出 + try { + exportLogService.updateStart(id, dbName); + + // 应该保存的参数 + JSONObject prams = JSONObject.parseObject(condition); + String businessCode = prams.getString("businessCode"); + String bzdh = prams.getString("bzdh"); + String company = prams.getString("company"); + String companyCode = prams.getString("companyCode"); + String keyWord = prams.getString("keyWord"); + String gfsh = prams.getString("gfsh"); + String fpzt = prams.getString("invoiceStatus"); + String invoiceType = prams.getString("invoiceType"); + String qszt = prams.getString("qszt"); + String qsr = prams.getString("qsr"); + String qsfs = prams.getString("qsfs"); + String rzzt = prams.getString("rzzt"); + String rzlx = prams.getString("rzlx"); + String rzr = prams.getString("rzr"); + String cjksyf = prams.getString("cjksyf"); + String cjjsyf = prams.getString("cjjsyf"); + String gfTaxNo = prams.getString("gfTaxNo"); + String inAccountStatus = prams.getString("inAccountStatus"); + String inAccountMonth = prams.getString("inAccountMonth"); + JSONArray companyCodeArray = prams.getJSONArray("companyCodes"); + List companyCodes = companyCodeArray.toJavaList(String.class); + // 参数转换为需要的形式 + Map pramsMap = new HashMap<>(16); + pramsMap.put("dbName", dbName); + List gfshList = new ArrayList<>(); + if (!StringHelper.isBlank(gfsh)) { + gfshList = StringHelper.stringToList(gfsh); + pramsMap.put("gfsh", gfshList); + } else { + pramsMap.put("gfsh", gfshList); + } + if (cjksyf != null && !"".equals(cjksyf)) { + pramsMap.put("cjksyf", DateUtils.getMorning(DateUtils.strToDate(cjksyf))); + } + if (cjjsyf != null && !"".equals(cjjsyf)) { + pramsMap.put("cjjsyf", DateUtils.getNight(DateUtils.strToDate(cjjsyf))); + } + if (prams.get("kpksrq") != null && !"".equals(prams.get("kpksrq"))) { + pramsMap.put("kpksrq", + DateUtils.getMorning(DateUtils.strToDate(prams.get("kpksrq").toString()))); + } + if (prams.get("kpjsrq") != null && !"".equals(prams.get("kpjsrq"))) { + pramsMap.put("kpjsrq", DateUtils.getNight(DateUtils.strToDate(prams.get("kpjsrq").toString()))); + } + if (prams.get("skssq") != null && !"".equals(prams.get("skssq")) && "1".equals(prams.get("rzzt"))) { + pramsMap.put("skssq", prams.get("skssq").toString().replace("-", "")); + } else { + pramsMap.put("skssq", ""); + } + if (prams.get("qsyf") == null && "".equals(prams.get("qsyf")) && !"1".equals(prams.get("qszt"))) { + pramsMap.put("qsyf", ""); + }else { + pramsMap.put("qsyf", prams.get("qsyf")); + } + if (prams.get("inAccountMonth") == null && "".equals(prams.get("inAccountMonth")) + && !"1".equals(prams.get("inAccountStatus"))) { + pramsMap.put("inAccountMonth", ""); + }else { + pramsMap.put("inAccountMonth", inAccountMonth); + } + pramsMap.put("keyWord", keyWord); + pramsMap.put("qszt", qszt); + pramsMap.put("invoiceType", invoiceType); + pramsMap.put("qsr", qsr); + pramsMap.put("qsfs", qsfs); + pramsMap.put("fpzt", fpzt); + pramsMap.put("rzzt", rzzt); + pramsMap.put("rzlx", rzlx); + pramsMap.put("rzr", rzr); + pramsMap.put("inAccountStatus", inAccountStatus); + pramsMap.put("company", company); + pramsMap.put("invoiceSource",prams.getString("invoiceSource")); + pramsMap.put("companyCodes",companyCodes); + pramsMap.put("companyCode",companyCode); + pramsMap.put("snVoucherNumber", prams.getString("snVoucherNumber")); + pramsMap.put("postingTimeEnd", prams.getString("postingTimeEnd")); + pramsMap.put("postingTimeStart", prams.getString("postingTimeStart")); + pramsMap.put("imageNumber", prams.getString("imageNumber")); + if (prams.getString("accountPeriod") != null && !"".equals(prams.getString("accountPeriod"))) { + String accountPeriod = prams.getString("accountPeriod").substring(0,7); + pramsMap.put("accountPeriod", accountPeriod); + } + // 导出文件名 + StringBuilder ftpFileName = new StringBuilder(); + ftpFileName.append(fileNamePrefix); + ftpFileName.append(DateUtils.dateToMonthStr(new Date())); + ftpFileName.append(fileSplit); + if ("99".equals(gfTaxNo)) { + if (gfshList.size() > 0) { + ftpFileName.append(rzFpxxService.getblocName(gfshList.get(0))); + ftpFileName.append(fileSplit); + } + } else { + if (gfshList.size() > 0) { + for (String s : gfshList) { + ftpFileName.append(rzFpxxService.getGfName(s)); + ftpFileName.append(fileSplit); + } + } + } + + ftpFileName.append(DateUtils.getNowTimeStamp()); + title = ftpFileName.toString(); + ftpFileName.append(fileNameSurfix); + + // 本地文件存储路径 + StringBuilder excelFile = new StringBuilder(); + excelFile.append(fileService.getLocalPathDefault()); + excelFile.append(ftpFileName.toString()); + + File filePath = new File(getFilePath(excelFile.toString())); + if (!filePath.exists()) { + filePath.mkdirs(); + } + + File file = new File(excelFile.toString()); + if (!file.exists()) { + file.delete(); + } + + if (!file.exists()) { + file.createNewFile(); + } + OutputStream out = new FileOutputStream(excelFile.toString()); +// writer = new ExcelWriter(null, out, ExcelTypeEnum.XLSX, true, new CellWriteHandler()); + ExcelWriterBuilder builder = EasyExcel.write(excelFile.toString()); + builder.registerWriteHandler(new CustomCellWriteHandler()); + writer = builder.build(); + // 递归导出数据到excel 发票信息 + this.cicleExport(pramsMap, default_curr, excelFile.toString(), out, writer); + + writer.finish(); + // FTP文件存储路径 + String[] toDay = DateUtil.today().split("-"); + String ftpFilePath = fileService.getPathPrefix() + userName + "/" + "excelFile/" + toDay[0] + "/" + + toDay[1] + "/" + toDay[2] + "/" + ftpFileName.toString(); + // 文件上传ftp + fileService.uploadFile(ftpFilePath, excelFile.toString()); + + // 设置成功消息内容 + msg.put("title", super.getSuccTitle(title)); + msg.put("content", super.getSuccContent(createDate)); + msg.put("url", super.getUrl(id)); + msg.put("useraccount", userName); + + // 记录导出完成状态 + exportLogService.updateSucc(id, ftpFilePath, dbName); + + } catch (Exception e) { + String errmsg = ExceptionUtil.getExceptionDeteil(e, 4000); + // 设置失败消息内容 + msg.put("title", super.getFailTitle(title)); + msg.put("content", super.getFailContent(createDate, errmsg)); + msg.put("url", ""); + msg.put("useraccount", userName); + + log.error("", e); + // 记录导出出错状态 + exportLogService.updateFail(id, errmsg, dbName); + } finally { + // 发送导出消息到mq + String responseResult = JsonResponseUtils.responseResult(msg); + sender.sendToMsg(responseResult); + + // 申请成功后像websocket发送申请信息 + feginWebsocket.setMessageToWebsocket(userName); + } + } + } + + /** + * 递归导出数据到excel文件,防止jvm oom + * + * @param pramsMap + * 查询数据参数集合 + * @param curr + * 当前第几页 + * @param excelFile + * 导出的文件 + * @param writer + * @throws Exception + * + */ + + private boolean cicleExport(Map pramsMap, int curr, String excelFile, OutputStream out, + ExcelWriter writer) throws Exception { + // 查询指定页数的数据 + JSONObject pageData = rzFpxxService.selectWithParams(pramsMap, curr, default_size); + boolean hasNext = pageData.getBooleanValue("hasNext"); + List dataList = (List)pageData.get("datalist"); + boolean firstPage = false; + if (curr == default_curr) { + firstPage = true; + } + + // 数据不是最后一页 + if (hasNext) { + int nextPage = pageData.getIntValue("nextPage"); + // 写入当前页数据 + exportListArrayToExcel(excelFile, title, titleColumns, dataList, firstPage, false, 1, "发票信息", out, writer); + // 更新页数 + return cicleExport(pramsMap, nextPage, excelFile, out, writer); + } else { + // 写入最后一页数据 + exportListArrayToExcel(excelFile, title, titleColumns, dataList, firstPage, true, 1, "发票信息", out, writer); + return hasNext; + } + + } + + /** + * 递归导出数据到excel文件,防止jvm oom + * + * @param pramsMap + * 查询数据参数集合 + * @param curr + * 当前第几页 + * @param excelFile + * 导出的文件 + * @param writer + * @throws Exception + * + */ + + private boolean detailCicleExport(Map pramsMap, int curr, String excelFile, OutputStream out, + ExcelWriter writer) throws Exception { + // 查询指定页数的数据 + JSONObject pageData = rzFpxxService.getTaxRebateList(pramsMap, curr, default_size); + boolean hasNext = pageData.getBooleanValue("hasNext"); + List dataList = (List)pageData.get("datalist"); + boolean firstPage = false; + if (curr == default_curr) { + firstPage = true; + } + + // 数据不是最后一页 + if (hasNext) { + int nextPage = pageData.getIntValue("nextPage"); + // 写入当前页数据 + exportListArrayToExcel(excelFile, title, detailTitleColumns, dataList, firstPage, false, 2, "货物信息", out, + writer); + // 更新页数 + return detailCicleExport(pramsMap, nextPage, excelFile, out, writer); + } else { + // 写入最后一页数据 + exportListArrayToExcel(excelFile, title, detailTitleColumns, dataList, firstPage, true, 2, "货物信息", out, + writer); + return hasNext; + } + + } + + public void exportListArrayToExcel(String excelFile, String title, String[] titleColumns, List dataList, + boolean firstPage, boolean lastPage, int sheetNo, String sheetName, OutputStream out, ExcelWriter writer) { + + String[] datas; + if (firstPage) { + writeSheet = new WriteSheet(); + writeSheet.setSheetNo(sheetNo); + writeSheet.setSheetName(sheetName); + writeTable = new WriteTable(); + writeTable.setTableNo(sheetNo); + List> titles = new ArrayList<>(); + datas = titleColumns; + int var11 = titleColumns.length; + + for (int var12 = 0; var12 < var11; ++var12) { + String titleColumn = datas[var12]; + titles.add(Collections.singletonList(titleColumn)); + } + + writeTable.setHead(titles); + List> list = new ArrayList<>(); + + for (String[] strings : dataList) { + datas = strings; + list.add(Arrays.asList(datas)); + } + + this.writer.write(list, writeSheet, writeTable); + } else { + List> list = new ArrayList<>(); + + for (String[] strings : dataList) { + datas = strings; + list.add(Arrays.asList(datas)); + } + + this.writer.write(list, writeSheet, writeTable); + } + + } + + private static String getFilePath(String fileName) { + StringBuilder filePath = new StringBuilder(); + if (!fileName.contains(":")) { + filePath.append("/"); + } + + String[] filePaths = fileName.split("/"); + + for (int i = 0; i < filePaths.length - 1; ++i) { + if (!StringHelper.isBlank(filePaths[i])) { + filePath.append(filePaths[i]); + filePath.append("/"); + } + } + + return filePath.toString(); + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolAddTaxThread.java b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolAddTaxThread.java index 5faa415a..5b017882 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolAddTaxThread.java +++ b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolAddTaxThread.java @@ -68,7 +68,7 @@ public class PoolAddTaxThread extends BaseThread { */ private final String[] titleColumns = {"序号", "发票类型", "发票代码", "发票号码", "发票状态", "开票日期", "销方名称", "销方税号", "金额", "税额", "有效税额", "价税合计", "认证状态", "认证类型", "认证日期", "认证方式", "认证人", "采集状态", "底账库采集时间", "采集来源", "签收方式", "签收状态", "签收日期", "签收人", - "入账月份", "入账状态", "凭证号", "是否末次摊销", "摊销金额", "剩余金额", "业务单号", "入池时间","凭证号","过账时间","账期","影像id"}; + "入账月份", "入账状态", "凭证号", "是否末次摊销", "摊销金额", "剩余金额", "业务单号", "入池时间","凭证号","过账时间","账期","影像id","报账单号","入账状态","所属组织"}; /** * 导出excel的列名 diff --git a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolOtherThread.java b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolOtherThread.java index 09d03f00..bad300dc 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolOtherThread.java +++ b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolOtherThread.java @@ -55,7 +55,7 @@ public class PoolOtherThread extends BaseThread { * 导出excel的列名 */ private final String[] titleColumns = - {"序号", "发票类型", "发票代码", "发票号码", "开票日期", "金额", "签收状态", "签收日期", "签收方式", "签收人", "业务单号", "入池时间","凭证号", "过账时间", "影像号", "账期"}; + {"序号", "发票类型", "发票代码", "发票号码", "开票日期", "金额", "签收状态", "签收日期", "签收方式", "签收人", "业务单号", "入池时间","凭证号", "过账时间", "影像号", "账期","报账单号","入账状态","所属组织"}; private final IExcelExportlogService exportLogService; diff --git a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolSaleThread.java b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolSaleThread.java index e0b221db..8fc49e4a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/thread/PoolSaleThread.java +++ b/dxhy-core/src/main/java/com/dxhy/core/thread/PoolSaleThread.java @@ -72,7 +72,7 @@ public class PoolSaleThread extends BaseThread { */ private final String[] titleColumns = {"序号", "发票类型", "发票代码", "发票号码", "发票状态", "开票日期", "购方名称", "购方税号", "金额", "税额", "价税合计", "清单标志", "备注", "优惠政策类型", - "采集状态", "采集时间", "采集来源", "签收方式", "对接系统", "签收状态", "签收日期", "签收人", "入账月份", "入账状态", "凭证号", "业务单号", "入池时间"}; + "采集状态", "采集时间", "采集来源", "签收方式", "对接系统", "签收状态", "签收日期", "签收人", "入账月份", "入账状态", "凭证号", "业务单号", "入池时间","报账单号","入账状态","所属组织"}; /** * 导出excel的列名 diff --git a/dxhy-core/src/main/java/com/dxhy/core/thread/QypcsmkpExportThread.java b/dxhy-core/src/main/java/com/dxhy/core/thread/QypcsmkpExportThread.java index a72dec4c..a36eaad6 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/thread/QypcsmkpExportThread.java +++ b/dxhy-core/src/main/java/com/dxhy/core/thread/QypcsmkpExportThread.java @@ -61,7 +61,7 @@ public class QypcsmkpExportThread extends BaseThread { * 导出excel的列名 */ private final String[] titleColumns = {"序号", "发票类型", "发票代码", "发票号码", "开票日期", "销方名称", "乘坐人", "证件号", "班次/车次", "金额", - "税率(%)", "税额", "签收状态", "签收日期", "签收方式", "签收人", "抵扣状态", "业务单号", "入池时间","凭证号", "过账时间", "影像号", "账期"}; + "税率(%)", "税额", "签收状态", "签收日期", "签收方式", "签收人", "抵扣状态", "业务单号", "入池时间","凭证号", "过账时间", "影像号", "账期","报账单号","入账状态","所属组织"}; private final IExcelExportlogService exportLogService; diff --git a/dxhy-core/src/main/java/com/dxhy/core/thread/RzFpxxExportThread.java b/dxhy-core/src/main/java/com/dxhy/core/thread/RzFpxxExportThread.java index cc64ea54..e24c9531 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/thread/RzFpxxExportThread.java +++ b/dxhy-core/src/main/java/com/dxhy/core/thread/RzFpxxExportThread.java @@ -59,7 +59,7 @@ public class RzFpxxExportThread extends BaseThread { */ private String[] titleColumns = {"序号", "发票代码", "发票号码", "发票类型", "开票日期", "购方名称", "购方税号", "销方名称", "销方税号", "金额", "税额", "抵扣税额", "发票状态", "签收状态", - "签收日期", "签收方式", "签收人", "认证时间", "认证状态", "认证处理状态", "认证类型", "认证人", "税款所属期", "撤销认证处理状态", "业务单元"}; + "签收日期", "签收方式", "签收人", "认证时间", "认证状态", "认证处理状态", "认证类型", "认证人", "税款所属期", "撤销认证处理状态", "业务单元","报账单号","入账状态","所属组织"}; private final IExcelExportlogService exportLogService; @@ -234,7 +234,7 @@ public class RzFpxxExportThread extends BaseThread { if (StringUtils.isNotBlank(inAccountStatus)) { titleColumns = new String[] {"序号", "打款状态", "发票代码", "发票号码", "发票类型", "开票日期", "购方名称", "购方税号", "销方名称", "销方税号", "金额", "税额", "抵扣税额", "发票状态", "签收状态", "签收日期", "签收方式", "签收人", "认证时间", "认证状态", "认证处理状态", - "认证类型", "认证人", "税款所属期", "撤销认证处理状态", "业务单元"}; + "认证类型", "认证人", "税款所属期", "撤销认证处理状态", "业务单元","报账单号","入账状态","所属组织"}; } if ("1".equals(prams.getString("payment"))) { titleColumns = new String[] {"序号", "发票代码", "发票号码", "发票类型", "开票日期", "购方名称", "购方税号", "销方名称", "销方税号", diff --git a/dxhy-core/src/main/resources/mapper/CustomsMapper.xml b/dxhy-core/src/main/resources/mapper/CustomsMapper.xml index b22870c4..1872b5ee 100644 --- a/dxhy-core/src/main/resources/mapper/CustomsMapper.xml +++ b/dxhy-core/src/main/resources/mapper/CustomsMapper.xml @@ -33,6 +33,9 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dxhy-extend/src/main/java/com/dxhy/extend/controller/ExtCautionController.java b/dxhy-extend/src/main/java/com/dxhy/extend/controller/ExtCautionController.java index 51ca7d86..44bb8c99 100644 --- a/dxhy-extend/src/main/java/com/dxhy/extend/controller/ExtCautionController.java +++ b/dxhy-extend/src/main/java/com/dxhy/extend/controller/ExtCautionController.java @@ -1,6 +1,7 @@ package com.dxhy.extend.controller; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.annotation.Resource; @@ -118,4 +119,10 @@ public class ExtCautionController extends AbstractController { } } + @PostMapping("/list/notInAccount") + @SysLog("未入账发票预警") + public ResponseEntity notInAccount(@RequestBody Map params){ + return ResponseEntity.ok(R.ok()); + } + }