From de54d8a448ac0040f423eea49951a0f3774813df Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Thu, 24 Aug 2023 15:38:39 +0800 Subject: [PATCH 01/46] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=87=8D=E5=A4=8D=E8=A7=A3=E6=9E=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/core/task/SnEmailGatherTask.java | 621 +++++++++++++++--- 1 file changed, 537 insertions(+), 84 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index c43c6764..f8147784 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -7,6 +7,7 @@ import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONObject; import com.dxhy.common.constant.DbConstant; import com.dxhy.common.datasource.config.DynamicContextHolder; +import com.dxhy.common.util.FileUtil; import com.dxhy.common.util.MD5; import com.dxhy.common.util.UUIDUtils; import com.dxhy.core.job.entity.ScheduleJobEntity; @@ -19,8 +20,9 @@ import com.dxhy.core.service.mailGather.EmailMaintainService; import com.dxhy.core.service.mailGather.MailGatherLogService; import com.dxhy.core.service.openservice.IOpenServicePlatformService; import com.dxhy.core.service.openservice.impl.OpenServicePlatformServiceImpl; -import com.dxhy.core.service.openservice.model.ocr.SnpjInvoiceTypeEnum; +import com.dxhy.core.service.openservice.model.ocr.*; import com.dxhy.core.util.EmailParseUtils; +import com.github.pagehelper.util.StringUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.sun.mail.pop3.POP3Folder; @@ -39,6 +41,7 @@ import java.util.Date; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.stream.Collectors; @Component("snEmailGatherTask") @@ -102,15 +105,19 @@ public class SnEmailGatherTask { String password = Base64Decoder.decodeStr(maintainVo.getEmailPassword()); String emailName = maintainVo.getEmailAddress(); + String uid = maintainVo.getEmailUid(); + Folder folder = null; + Store store = null; + List uids = Lists.newArrayList(); try { - Store store = mailAuth(emailName, password); + store = mailAuth(emailName, password); if(store == null){ MailGatherLogVo gatherLogVo = new MailGatherLogVo(); gatherLogVo.setFromAddress(emailName); buildMsg(gatherLogVo,"1","邮箱认证失败"); return; } - Folder folder = store.getFolder("INBOX"); + folder = store.getFolder("INBOX"); //获取邮件列表 folder.open(Folder.READ_WRITE); // 由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数 @@ -120,9 +127,18 @@ public class SnEmailGatherTask { log.debug("新邮件: " + folder.getNewMessageCount()); // 获得收件箱中的邮件总数 log.debug("邮件总数: " + folder.getMessageCount()); - EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); - emailMaintainVo.setId(maintainVo.getId()); +// EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); +// emailMaintainVo.setId(maintainVo.getId()); Message[] messages = folder.getMessages(); + POP3Folder inbox = (POP3Folder) folder; + for (int i = 0; i < messages.length; i++) { + String euid = inbox.getUID(messages[i]); + uids.add(euid); + } + boolean flag = true; + if (StringUtils.isBlank(maintainVo.getEmailUid()) || !uids.contains(maintainVo.getEmailUid())){ + flag = false; + } for (int i = 0, count = messages.length; i < count; i++) { MimeMessage msg = (MimeMessage) messages[i]; log.debug("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); @@ -146,17 +162,21 @@ public class SnEmailGatherTask { // log.debug("是否需要回执:" + EmailParseUtils.isReplySign(msg)); log.debug("邮件大小:" + msg.getSize() * 1024 + "kb"); - POP3Folder inbox = (POP3Folder) folder; - String uid = inbox.getUID(msg); - if(StringUtils.isBlank(maintainVo.getEmailUid()) && i+1 == messages.length){ - emailMaintainVo.setEmailUid(uid); - buildEmailMaintainVo(emailMaintainVo); - } else if(i+1 == messages.length){ - emailMaintainVo.setEmailUid(uid); - buildEmailMaintainVo(emailMaintainVo); - } + uid = inbox.getUID(msg); +// if(StringUtils.isBlank(maintainVo.getEmailUid()) && i+1 == messages.length){ +// emailMaintainVo.setEmailUid(uid); +// buildEmailMaintainVo(emailMaintainVo); +// } else if(i+1 == messages.length){ +// emailMaintainVo.setEmailUid(uid); +// buildEmailMaintainVo(emailMaintainVo); +// } //增量处理 等于之后就跳过本地循环 - if(StringUtils.isNotBlank(maintainVo.getEmailUid()) && maintainVo.getEmailUid().equals(uid)){ + if (StringUtils.isNotBlank(uid) && uid.equals(maintainVo.getEmailUid())){ + flag = false; + log.debug("跳过本次循环: "+maintainVo.getEmailUid()+"===="+uid); + continue; + } + if(flag){ log.debug("跳过本次循环: "+maintainVo.getEmailUid()+"===="+uid); continue; } @@ -221,8 +241,8 @@ public class SnEmailGatherTask { } } // 释放资源 - folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 - store.close(); +// folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 +// store.close(); log.info("邮箱采集使用时间:{}",System.currentTimeMillis() - startTime); } catch (MessagingException e) { log.error("邮箱采集邮件解析异常:{}", e); @@ -230,6 +250,26 @@ public class SnEmailGatherTask { } catch (IOException e) { log.error("邮箱采集IO异常:{}", e); throw new RuntimeException(e); + }finally { + //更新uid信息 + if (uids.isEmpty() ||uids.indexOf(uid)>uids.indexOf(maintainVo.getEmailUid())){ + EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); + emailMaintainVo.setId(maintainVo.getId()); + emailMaintainVo.setEmailUid(uid); + buildEmailMaintainVo(emailMaintainVo); + } + // 释放资源 + // false为不更新邮件,true为更新,一般在删除邮件后使用 + try { + if (folder != null){ + folder.close(false); + } + if (store != null){ + store.close(); + } + } catch (MessagingException e) { + log.debug("关流失败"); + } } } @@ -327,90 +367,503 @@ public class SnEmailGatherTask { } public static void main(String[] args) { - //邮件接收协议 - String mail_protocol = "mail.store.protocol"; - //邮件接收协议类型 - String mail_protocol_type2 = "pop3"; - String mail_protocol_type = "pop"; - //邮件接收服务器端口 - String mail_port = "mail.pop3.port"; - //邮件接收服务器端口 - String port = "110"; - //邮件接收服务器地址 - String mail_host = "mail.pop3.host"; - String emailName = "1149953701@qq.com"; - String password = "pmdzleyabmlzgdhc"; - String mailSuffix = emailName.split("@")[1]; - //邮箱类型 - String mailType = mailSuffix.split("\\.")[0]; - Properties props = new Properties(); - if(mailType.equalsIgnoreCase("qq")){ - //qq邮箱 - props.setProperty(mail_protocol, mail_protocol_type2); // 协议 - props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 - props.setProperty(mail_port, port); // 端口 - }else { - props.setProperty(mail_protocol, mail_protocol_type2); // 协议 - props.setProperty(mail_host, mail_protocol_type2+"."+mailSuffix); // pop3服务器 - props.setProperty(mail_port, port); // 端口 - } - Session session = Session.getInstance(props); + EmailMaintainVo maintainVo = new EmailMaintainVo(); + maintainVo.setCompanyCode("9250"); + maintainVo.setEmailAddress("1191093413@qq.com"); + maintainVo.setEmailPassword("dWZobmdibGx5ZGRjZ2dlaA=="); + maintainVo.setEmailUid("ZL0006_d9LNZsKMdoguImQAO4OILd7sss"); + maintainVo.setId("RtDaFlwqZKU47MHi2Y_S4"); + + log.info("邮箱采集内部方法开始执行--"); + long startTime = System.currentTimeMillis(); + String password = Base64Decoder.decodeStr(maintainVo.getEmailPassword()); + String emailName = maintainVo.getEmailAddress(); + + String uid = maintainVo.getEmailUid(); + Folder folder = null; Store store = null; + List uids = Lists.newArrayList(); try { - store = session.getStore("pop3"); - store.connect(emailName, password); - //连接邮箱服务器 - //获取当前时间 - Date currentTime = new Date(); - // 获得收件箱 pop3协议只有一个有效的文件夹就是INBOX - Folder folder = store.getFolder("INBOX"); + //判断是否为QQ还是163 + //邮件接收协议 + String mail_protocol = "mail.store.protocol"; + //邮件接收协议类型 + String mail_protocol_type2 = "pop3"; + String mail_protocol_type = "pop"; + //邮件接收服务器端口 + String mail_port = "mail.pop3.port"; + //邮件接收服务器端口 + String port = "110"; + //邮件接收服务器地址 + String mail_host = "mail.pop3.host"; + String mailSuffix = emailName.split("@")[1]; + //邮箱类型 + String mailType = mailSuffix.split("\\.")[0]; + Properties props = new Properties(); + if(mailType.equalsIgnoreCase("qq")){ + //qq邮箱 + props.setProperty(mail_protocol, mail_protocol_type2); // 协议 + props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + }else { + props.setProperty(mail_protocol, mail_protocol_type); // 协议 + props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + } + Session session = Session.getInstance(props); + try { + store = session.getStore("pop3"); + store.connect(emailName, password); + } catch (Exception e) { + try { + store.close(); + } catch (MessagingException ex) { + throw new RuntimeException(ex); + } + store = null; + } + if(store == null){ + log.info("store为空"); + return; + } + folder = store.getFolder("INBOX"); //获取邮件列表 folder.open(Folder.READ_WRITE); // 由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数 - System.out.println("未读邮件数: " + folder.getUnreadMessageCount()); + log.debug("未读邮件数: " + folder.getUnreadMessageCount()); // 由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0 - System.out.println("删除邮件数: " + folder.getDeletedMessageCount()); - System.out.println("新邮件: " + folder.getNewMessageCount()); + log.debug("删除邮件数: " + folder.getDeletedMessageCount()); + log.debug("新邮件: " + folder.getNewMessageCount()); // 获得收件箱中的邮件总数 - System.out.println("邮件总数: " + folder.getMessageCount()); + log.debug("邮件总数: " + folder.getMessageCount()); + EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); + emailMaintainVo.setId(maintainVo.getId()); Message[] messages = folder.getMessages(); + POP3Folder inbox = (POP3Folder) folder; + for (int i = 0; i < messages.length; i++) { + String euid = inbox.getUID(messages[i]); + uids.add(euid); + } + boolean flag = true; + if (StringUtils.isBlank(maintainVo.getEmailUid()) || !uids.contains(maintainVo.getEmailUid())){ + flag = false; + } for (int i = 0, count = messages.length; i < count; i++) { MimeMessage msg = (MimeMessage) messages[i]; - System.out.println("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); - System.out.println("主题: " + EmailParseUtils.getSubject(msg)); - System.out.println("发件人: " + EmailParseUtils.getFrom(msg)); - System.out.println("收件人:" + EmailParseUtils.getReceiveAddress(msg, null)); - System.out.println("发送时间:" + EmailParseUtils.getSentDate(msg, null)); - System.out.println("是否已读:" + EmailParseUtils.isSeen(msg)); - System.out.println("邮件优先级:" + EmailParseUtils.getPriority(msg)); - System.out.println("是否需要回执:" + EmailParseUtils.isReplySign(msg)); - System.out.println("邮件大小:" + msg.getSize() * 1024 + "kb"); + log.debug("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); + + MailGatherLogVo gatherLogVo = new MailGatherLogVo(); + gatherLogVo.setId(IdUtil.nanoId()); + gatherLogVo.setSubject(EmailParseUtils.getSubject(msg)); + gatherLogVo.setFromAddress(emailName); + gatherLogVo.setReceiveAddress(emailName); + String sentDate = EmailParseUtils.getSentDate(msg, null); + gatherLogVo.setSentDate(sentDate); + gatherLogVo.setCreateTime(new Date()); + + log.debug("主题: " + EmailParseUtils.getSubject(msg)); + log.debug("发件人: " + EmailParseUtils.getFrom(msg)); + log.debug("发送时间:" + sentDate); + log.debug("是否已读:" + EmailParseUtils.isSeen(msg)); + log.debug("邮件大小:" + msg.getSize() * 1024 + "kb"); + + uid = inbox.getUID(msg); + log.info("uid{}",uid); + //增量处理 等于之后就跳过本地循环 + if (StringUtils.isNotBlank(uid) && uid.equals(maintainVo.getEmailUid())){ + flag = false; + log.debug("跳过本次循环: "+maintainVo.getEmailUid()+"===="+uid); + continue; + } + if(flag){ + log.debug("跳过本次循环: "+maintainVo.getEmailUid()+"===="+uid); + continue; + } + gatherLogVo.setMsgUid(uid); boolean isContainerAttachment = EmailParseUtils.isContainAttachment(msg); - POP3Folder inbox = (POP3Folder) folder; - String uid = inbox.getUID(msg); - System.out.println("uid: ------------------" + uid); - Flags flags = msg.getFlags(); - if (!flags.contains(Flags.Flag.SEEN)) { - //设置为已读 - msg.setFlag(Flags.Flag.SEEN, true); + log.debug("是否有附件: "+isContainerAttachment); + if(isContainerAttachment){ + List> mapList = Lists.newArrayList(); + EmailParseUtils.saveAttachment(msg, mapList); + log.debug("获取附件的数量:"+mapList.size()); + + String username = "一十七画生"; + maintainVo.setUserId(username); + + for (Map map : mapList) { + map.put("emailName",emailName); + String pdfStream = map.get("pdfStream"); + if(StringUtils.isNotBlank(pdfStream)){ + log.debug("开始调用山能OCR识别---------"); + //判断是否为图片流文件, 兼容公司平台进行base64解密 + String requestUrl = "http://192.168.33.102:30006/cci_ai/service/v1/receipt_crop_and_recog?crop_complete_image=1"; + log.info("调用山能OCR识别请求路径:"+requestUrl); + String result = FileUtil.uploadFile(requestUrl, Base64Decoder.decode(pdfStream)); + List openServices = Lists.newArrayList(); + if(StringUtils.isBlank(result)){ + log.info("调用山能ocr识别失败"); + }else { + OcrResponseVo ocrResponseVo = JSONObject.parseObject(result, OcrResponseVo.class); + if(ocrResponseVo != null && ocrResponseVo.getCode() == 200){ + List ocrDataListEntities = ocrResponseVo.getResult().getObjectList(); + for (OcrDataListEntity ocrDataListEntity : ocrDataListEntities) { + List> productList = ocrDataListEntity.getProductList(); + + List itemList = ocrDataListEntity.getItemList(); + + String type = ocrDataListEntity.getType(); + if("other".equals(type)){ + break; + } + Map itemData = itemList.stream().collect(Collectors.toMap(OcrItemListEntity::getKey, OcrItemListEntity::getValue)); + OpenServiceOcr openServiceOcr = new OpenServiceOcr(); + openServiceOcr.setIMAGE(ocrDataListEntity.getImage()); + openServiceOcr.setFPLXDM(OcrDataTypeEnum.getVal(type)); + OpenServiceOcr.InvoiceOcrData invoiceOcrData = new OpenServiceOcr.InvoiceOcrData(); + invoiceOcrData.setSFCY("0"); //是否查验 + //判断发票类型 + if("vat_special_invoice".equals(type) || "vat_electronic_invoice".equals(type) || "vat_common_invoice".equals(type) || "vat_electronic_toll_invoice".equals(type)){ + invoiceOcrData.setJYM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_CORRECT_CODE.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_DAIMA.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_HAOMA.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.VAT_INVOICE_ISSUE_DATE.getKey())); + invoiceOcrData.setGMFSBH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_RATE_PAYER_ID.getKey())); + invoiceOcrData.setJDHM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_JIDA_HAOMA.getKey())); + invoiceOcrData.setXHFMC(itemData.get(OcrDataTypeEnum.VAT_INVOICE_SELLER_NAME.getKey())); + invoiceOcrData.setXHFSBH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_SELLER_ID.getKey())); + invoiceOcrData.setXHFDZDH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_SELLER_ADDR_TELL.getKey())); + invoiceOcrData.setXHFYHZH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_SELLER_BANK_ACCOUNT.getKey())); + invoiceOcrData.setGMFMC(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PAYER_NAME.getKey())); + invoiceOcrData.setGMFDZDH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PAYER_ADDR_TELL.getKey())); + invoiceOcrData.setGMFYHZH(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PAYER_BANK_ACCOUNT.getKey())); + invoiceOcrData.setHJJE(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PRICE.getKey())); + invoiceOcrData.setSFDK(itemData.get(OcrDataTypeEnum.VAT_INVOICE_DAI_KAI_FLAG.getKey())); + invoiceOcrData.setHJSE(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TAX_TOTAL.getKey())); + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TOTAL_COVER_TAX_DIGITS.getKey())); + invoiceOcrData.setFPLC(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PAGE_NUMBER.getKey())); + openServiceOcr.setFPLXDM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TYPE.getKey())); + invoiceOcrData.setBZ(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TOTAL_NOTE.getKey())); + invoiceOcrData.setFWM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_CIPHER_FIELD.getKey())); + invoiceOcrData.setSKR(itemData.get(OcrDataTypeEnum.VAT_INVOICE_PAYEE.getKey())); + invoiceOcrData.setFHR(itemData.get(OcrDataTypeEnum.VAT_INVOICE_REVIEW.getKey())); + invoiceOcrData.setKPR(itemData.get(OcrDataTypeEnum.VAT_INVOICE_DRAWER.getKey())); + invoiceOcrData.setSFYGSYZ("False".equals(itemData.get(OcrDataTypeEnum.EXIST_STAMPLE.getKey()))?"0":"1"); + + List invoiceOcrDetailList = Lists.newArrayList(); + for (List productListEntities: productList) { + Map productMap = productListEntities.stream().collect(Collectors.toMap(OcrProductListEntity::getKey, OcrProductListEntity::getValue)); + OpenServiceOcr.InvoiceOcrDetail invoiceOcrDetail = new OpenServiceOcr.InvoiceOcrDetail(); + invoiceOcrDetail.setHWMC(productMap.get(OcrDataTypeEnum.VAT_INVOICE_GOODS.getKey())); + invoiceOcrDetail.setGGXH(productMap.get(OcrDataTypeEnum.VAT_INVOICE_PLATE_SPECIFIC.getKey())); + invoiceOcrDetail.setDW(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_UNIT.getKey())); + invoiceOcrDetail.setSPSL(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_QUANTITY.getKey())); + invoiceOcrDetail.setDJ(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_UNIT_PRICE.getKey())); + invoiceOcrDetail.setJE(productMap.get(OcrDataTypeEnum.VAT_INVOICE_PRICE.getKey())); + invoiceOcrDetail.setSL(productMap.get(OcrDataTypeEnum.VAT_INVOICE_TAX_RATE.getKey())); + invoiceOcrDetail.setSE(productMap.get(OcrDataTypeEnum.VAT_INVOICE_TAX.getKey())); + invoiceOcrDetailList.add(invoiceOcrDetail); + } + invoiceOcrData.setFPMX(invoiceOcrDetailList); + } else if ("vat_roll_invoice".equals(type)) { + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.DATE_OF_INVOICE.getKey())); + invoiceOcrData.setFPBT(itemData.get(OcrDataTypeEnum.INVOICE_HEAD.getKey())); + invoiceOcrData.setJYM(itemData.get(OcrDataTypeEnum.CHECK_NUMBER.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.INVOICE_NUMBER.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.INVOICE_NUMBER.getKey())); + invoiceOcrData.setJQBM(itemData.get(OcrDataTypeEnum.MACHINE_CODE.getKey())); + invoiceOcrData.setGMFSBH(itemData.get(OcrDataTypeEnum.BUY_TAX_NUMBER.getKey())); + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.TOTAL_MONEY.getKey())); + invoiceOcrData.setXHFMC(itemData.get(OcrDataTypeEnum.SOLD_NAME.getKey())); + invoiceOcrData.setXHFSBH(itemData.get(OcrDataTypeEnum.SOLD_TAX_NUMBER.getKey())); + invoiceOcrData.setGMFMC(itemData.get(OcrDataTypeEnum.BUY_NAME.getKey())); + invoiceOcrData.setSKR(itemData.get(OcrDataTypeEnum.CASHIER_NAME.getKey())); + invoiceOcrData.setSFYGSYZ("False".equals(itemData.get(OcrDataTypeEnum.EXIST_STAMPLE.getKey()))?"0":"1"); + + List invoiceOcrDetailList = Lists.newArrayList(); + for (List productListEntities : productList) { + Map productMap = productListEntities.stream().collect(Collectors.toMap(OcrProductListEntity::getKey, OcrProductListEntity::getValue)); + OpenServiceOcr.InvoiceOcrDetail invoiceOcrDetail = new OpenServiceOcr.InvoiceOcrDetail(); + invoiceOcrDetail.setHWMC(productMap.get(OcrDataTypeEnum.VAT_INVOICE_GOODS.getKey())); + invoiceOcrDetail.setGGXH(productMap.get(OcrDataTypeEnum.VAT_INVOICE_PLATE_SPECIFIC.getKey())); + invoiceOcrDetail.setDW(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_UNIT.getKey())); + invoiceOcrDetail.setSPSL(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_QUANTITY.getKey())); + invoiceOcrDetail.setDJ(productMap.get(OcrDataTypeEnum.VAT_INVOICE_ELECTRANS_UNIT_PRICE.getKey())); + invoiceOcrDetail.setJE(productMap.get(OcrDataTypeEnum.VAT_INVOICE_PRICE.getKey())); + invoiceOcrDetail.setSL(productMap.get(OcrDataTypeEnum.VAT_INVOICE_TAX_RATE.getKey())); + invoiceOcrDetail.setSE(productMap.get(OcrDataTypeEnum.VAT_INVOICE_TAX.getKey())); + invoiceOcrDetailList.add(invoiceOcrDetail); + } + invoiceOcrData.setFPMX(invoiceOcrDetailList); + } else if ("motor_vehicle_sale_invoice".equals(type)) { + // -------------机动车销售统一发票特殊字段-------------- + invoiceOcrData.setGMFMC(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_BUYER.getKey())); + invoiceOcrData.setGMFSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_BUYER_ID.getKey())); + invoiceOcrData.setCPXH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_CAR_MODEL.getKey())); + invoiceOcrData.setHGZH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_CERT_ID.getKey())); + invoiceOcrData.setFDJHM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_ENGINE_ID.getKey())); + invoiceOcrData.setCLSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_CAR_VIN.getKey())); + invoiceOcrData.setHJJE(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_PRICE_WITHOUT_TAX.getKey())); + invoiceOcrData.setZGSWJG(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_TAX_AUTHORITH.getKey())); + invoiceOcrData.setZGSWJGDM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_TAX_AUTHORITH_ID.getKey())); + + + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_TOTAL_PRICE_DIGITS.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_ISSUE_DATE.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_DAIMA.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_HAOMA.getKey())); + } else if ("used_car_purchase_invoice".equals(type)) { + // -------------二手车销售统一发票特殊字段-------------- + invoiceOcrData.setGMFMC(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_BUYER.getKey())); + invoiceOcrData.setGMFSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_BUYER_ID.getKey())); + invoiceOcrData.setXHFMC(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_SELLER.getKey())); + invoiceOcrData.setXHFSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_SELLER_ID.getKey())); + invoiceOcrData.setESCSC(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_MARKET.getKey())); + invoiceOcrData.setCPZH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_PLATE_NUM.getKey())); + invoiceOcrData.setDJZH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_CAR_MODEL.getKey())); + invoiceOcrData.setCLSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_VIN.getKey())); + invoiceOcrData.setCPXH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_CAR_MODEL.getKey())); + invoiceOcrData.setESCNSRSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_MARKET_TAX_ID.getKey())); + invoiceOcrData.setESCNSRSBH(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_MARKET_TAX_ID.getKey())); + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_TOTAL_PRICE_DIGITS.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_ISSUE_DATE.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_DAIMA.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.VEHICLE_INVOICE_HAOMA.getKey())); + } else if("vehicle_toll".equals(type)){ + // -------------过路费特殊字段-------------- + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.MONEY.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.DATE.getKey())); + invoiceOcrData.setSJ(itemData.get(OcrDataTypeEnum.TIME.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.TOLL_CODE.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.TOLL_NUMBER.getKey())); + + }else if ("quota_invoice".equals(type)) { + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.MONEY_SMALL.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.QUOTA_INVOICE_CODE.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.QUOTA_INVOICE_NUMBER.getKey())); + + } else if ("taxi_ticket".equals(type)) { + // -------------出租车发票特殊字段-------------- + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.SUM.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.INVOICE_CODE.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.INVOICE_NO.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.DATE.getKey())); + invoiceOcrData.setSCSJ(itemData.get(OcrDataTypeEnum.BOARDING_TIME.getKey())); + invoiceOcrData.setXCSJ(itemData.get(OcrDataTypeEnum.LANDING_TIME.getKey())); + invoiceOcrData.setLC(itemData.get(OcrDataTypeEnum.MILEAGE.getKey())); + invoiceOcrData.setSZD(itemData.get(OcrDataTypeEnum.LOCATION.getKey())); + invoiceOcrData.setCPZH(itemData.get(OcrDataTypeEnum.TAXI_NO.getKey())); + } else if("air_transport".equals(type)){ + invoiceOcrData.setXM(itemData.get(OcrDataTypeEnum.PASSENGER_NAME.getKey())); + invoiceOcrData.setSFZH(itemData.get(OcrDataTypeEnum.ID_NO.getKey())); + invoiceOcrData.setPZHM(itemData.get(OcrDataTypeEnum.E_TICKET_NO.getKey())); + invoiceOcrData.setTKRQ(itemData.get(OcrDataTypeEnum.ISSUED_DATE.getKey())); + invoiceOcrData.setTKDW(itemData.get(OcrDataTypeEnum.ISSUED_BY.getKey())); + invoiceOcrData.setPJ(itemData.get(OcrDataTypeEnum.FARE.getKey())); + invoiceOcrData.setMHFZJJ(itemData.get(OcrDataTypeEnum.CIVIL_AVIATION_FUND.getKey())); + invoiceOcrData.setRYFJF(itemData.get(OcrDataTypeEnum.FUEL_SURCHARGE.getKey())); + invoiceOcrData.setQTSF(itemData.get(OcrDataTypeEnum.OTHER_TAXES.getKey())); + invoiceOcrData.setZE(itemData.get(OcrDataTypeEnum.TOTAL.getKey())); + invoiceOcrData.setBXF(itemData.get(OcrDataTypeEnum.INSURANCE.getKey())); + } else if("train_ticket".equals(type)){ + // -------------火车票特殊字段-------------- +// invoiceOcrData.setPZHM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TYPE.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.DEPARTURE_DATE.getKey())); + invoiceOcrData.setSJ(itemData.get(OcrDataTypeEnum.DEPARTURE_DATE.getKey())); +// invoiceOcrData.setXM(itemData.get(OcrDataTypeEnum.VAT_INVOICE_TYPE.getKey())); + invoiceOcrData.setCFZD(itemData.get(OcrDataTypeEnum.DEPARTURE_STATION.getKey())); + invoiceOcrData.setDDZD(itemData.get(OcrDataTypeEnum.ARRIVAL_STATION.getKey())); + invoiceOcrData.setCC(itemData.get(OcrDataTypeEnum.TRAIN_NUMBER.getKey())); + invoiceOcrData.setZWDJ(itemData.get(OcrDataTypeEnum.CLASS.getKey())); + invoiceOcrData.setXLH(itemData.get(OcrDataTypeEnum.SEAT_NUMBER.getKey())); + invoiceOcrData.setSFZH(itemData.get(OcrDataTypeEnum.PASSENGER_ID.getKey())); + } else if ("general_machine_invoice".equals(type) || "highway_passenger_invoice".equals(type) || "shipping_invoice".equals(type) || "passenger_transport_invoice".equals(type)) { + //为 general_machine_invoice(通用机打发票)、 highway_passenger_invoice(公路客运发票)、shipping_invoice(船运客票)、passenger_transport_invoice(旅客运输普票) + + // -------------航空运输电子客票行程单特殊字段-------------- + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.MONEY.getKey())); + invoiceOcrData.setFPDM(itemData.get(OcrDataTypeEnum.INVOICE_CODE.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.INVOICE_NUMBER.getKey())); + invoiceOcrData.setKPRQ(itemData.get(OcrDataTypeEnum.DATE.getKey())); + invoiceOcrData.setSJ(itemData.get(OcrDataTypeEnum.TIME.getKey())); + } else if ("parking_invoice".equals(type)) { + invoiceOcrData.setJSHJ(itemData.get(OcrDataTypeEnum.MONEY.getKey())); + invoiceOcrData.setFPHM(itemData.get(OcrDataTypeEnum.INVOICE_NUMBER.getKey())); + } + openServiceOcr.setData(invoiceOcrData); + openServiceOcr.setRegion(ocrDataListEntity.getPosition()); + openServices.add(openServiceOcr); + } + } + } + + if(openServices != null && !openServices.isEmpty()){ + Map ocrResult = Maps.newHashMap(); + List resultToyxVoList = Lists.newArrayList(); + String batchId = String.valueOf(System.currentTimeMillis()); + ocrResult.put("batchId",batchId); + + for (int j = 0; j < openServices.size(); j++) { + OpenServiceOcr openServiceOcr = openServices.get(j); + OpenServiceOcr.InvoiceOcrData invoiceOcrData = openServiceOcr.getData(); + OcrResultToyxVo resultToyxVo = new OcrResultToyxVo(); + resultToyxVo.setCompanyId(maintainVo.getCompanyCode()); + resultToyxVo.setSource("01"); + resultToyxVo.setInvoiceCode(invoiceOcrData.getFPDM()); + resultToyxVo.setInvoiceNumber(invoiceOcrData.getFPHM()); + resultToyxVo.setTotalAmount(invoiceOcrData.getJSHJ()); + resultToyxVo.setBuyerName(invoiceOcrData.getGMFMC()); + resultToyxVo.setSellerName(invoiceOcrData.getXHFMC()); + resultToyxVo.setFileName(map.get("fileName")); + resultToyxVo.setFileType(SnpjInvoiceTypeEnum.getVal(openServiceOcr.getFPLXDM())); + resultToyxVo.setFileByte(map.get("pdfStream")); + resultToyxVo.setEmail(map.get("emailName")); + resultToyxVo.setEmployeeId(maintainVo.getUserId()); + resultToyxVoList.add(resultToyxVo); + } + ocrResult.put("list",resultToyxVoList); + try { + String md5Encode = MD5.getMd5Encode(ocrResult.get("batchId") + "e4b0190b2fadc0adbe54471ffd79a729"); + Map hashMap = Maps.newHashMap(); + hashMap.put("Authorization",md5Encode); + log.info("调用影像票夹接口,调用地址:{},请求头:{},请求参数:{}","http://192.168.33.105:2333/ticket/receive",hashMap,JSONObject.toJSONString(ocrResult)); + String body = HttpRequest.post("http://192.168.33.105:2333/ticket/receive").addHeaders(hashMap).body(JSONObject.toJSONString(ocrResult)).timeout(300000).execute().body(); + log.info("调用影像票夹接口返回参数:{}",body); + Map resultMap = JSONObject.parseObject(body, Map.class); + Object status = resultMap.get("status"); + log.info("status{}",status); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + + }else { + log.debug("山能OCR识别失败------"); + } + } + } + + }else { //无附件的不处理 + log.debug("没有附件跳过"); + continue; + } + //进行数据插入 + if(StringUtils.isNotBlank(gatherLogVo.getFpdm()) && StringUtils.isNotBlank(gatherLogVo.getFphm())){ + + }else { + log.info("未采集到有效数据"); } - System.out.println(""); } - System.out.println(""); - Date endTime = new Date(); - //计算耗时时间 -// double elapsedTime = CalendarUtil.arithDateTime(endTime, currentTime); - // 释放资源 - folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 - store.close(); - } catch (NoSuchProviderException e) { - throw new RuntimeException(e); + log.info("邮箱采集使用时间:{}",System.currentTimeMillis() - startTime); } catch (MessagingException e) { - throw new RuntimeException(e); - } catch (UnsupportedEncodingException e) { + log.error("邮箱采集邮件解析异常:{}", e.toString()); throw new RuntimeException(e); } catch (IOException e) { + log.error("邮箱采集IO异常:{}", e); throw new RuntimeException(e); + }finally { + if (uids.isEmpty() ||uids.indexOf(uid)>uids.indexOf(maintainVo.getEmailUid())){ + System.out.println("保存uid:"+uid); + } + // 释放资源 + // false为不更新邮件,true为更新,一般在删除邮件后使用 + try { + if (folder != null){ + folder.close(false); + } + if (store != null){ + store.close(); + } + } catch (MessagingException e) { + log.debug("关流失败"); + } + } + } +// public static void main(String[] args) { +// //邮件接收协议 +// String mail_protocol = "mail.store.protocol"; +// //邮件接收协议类型 +// String mail_protocol_type2 = "pop3"; +// String mail_protocol_type = "pop"; +// //邮件接收服务器端口 +// String mail_port = "mail.pop3.port"; +// //邮件接收服务器端口 +// String port = "110"; +// //邮件接收服务器地址 +// String mail_host = "mail.pop3.host"; +// String emailName = "1149953701@qq.com"; +// String password = "pmdzleyabmlzgdhc"; +// String mailSuffix = emailName.split("@")[1]; +// //邮箱类型 +// String mailType = mailSuffix.split("\\.")[0]; +// Properties props = new Properties(); +// if(mailType.equalsIgnoreCase("qq")){ +// //qq邮箱 +// props.setProperty(mail_protocol, mail_protocol_type2); // 协议 +// props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 +// props.setProperty(mail_port, port); // 端口 +// }else { +// props.setProperty(mail_protocol, mail_protocol_type2); // 协议 +// props.setProperty(mail_host, mail_protocol_type2+"."+mailSuffix); // pop3服务器 +// props.setProperty(mail_port, port); // 端口 +// } +// Session session = Session.getInstance(props); +// Store store = null; +// try { +// store = session.getStore("pop3"); +// store.connect(emailName, password); +// //连接邮箱服务器 +// //获取当前时间 +// Date currentTime = new Date(); +// // 获得收件箱 pop3协议只有一个有效的文件夹就是INBOX +// Folder folder = store.getFolder("INBOX"); +// //获取邮件列表 +// folder.open(Folder.READ_WRITE); +// // 由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数 +// System.out.println("未读邮件数: " + folder.getUnreadMessageCount()); +// // 由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0 +// System.out.println("删除邮件数: " + folder.getDeletedMessageCount()); +// System.out.println("新邮件: " + folder.getNewMessageCount()); +// // 获得收件箱中的邮件总数 +// System.out.println("邮件总数: " + folder.getMessageCount()); +// Message[] messages = folder.getMessages(); +// for (int i = 0, count = messages.length; i < count; i++) { +// MimeMessage msg = (MimeMessage) messages[i]; +// System.out.println("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); +// System.out.println("主题: " + EmailParseUtils.getSubject(msg)); +// System.out.println("发件人: " + EmailParseUtils.getFrom(msg)); +// System.out.println("收件人:" + EmailParseUtils.getReceiveAddress(msg, null)); +// System.out.println("发送时间:" + EmailParseUtils.getSentDate(msg, null)); +// System.out.println("是否已读:" + EmailParseUtils.isSeen(msg)); +// System.out.println("邮件优先级:" + EmailParseUtils.getPriority(msg)); +// System.out.println("是否需要回执:" + EmailParseUtils.isReplySign(msg)); +// System.out.println("邮件大小:" + msg.getSize() * 1024 + "kb"); +// boolean isContainerAttachment = EmailParseUtils.isContainAttachment(msg); +// POP3Folder inbox = (POP3Folder) folder; +// String uid = inbox.getUID(msg); +// System.out.println("uid: ------------------" + uid); +// Flags flags = msg.getFlags(); +// if (!flags.contains(Flags.Flag.SEEN)) { +// //设置为已读 +// msg.setFlag(Flags.Flag.SEEN, true); +// } +// System.out.println(""); +// } +// System.out.println(""); +// Date endTime = new Date(); +// //计算耗时时间 +//// double elapsedTime = CalendarUtil.arithDateTime(endTime, currentTime); +// // 释放资源 +// folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 +// store.close(); +// } catch (NoSuchProviderException e) { +// throw new RuntimeException(e); +// } catch (MessagingException e) { +// throw new RuntimeException(e); +// } catch (UnsupportedEncodingException e) { +// throw new RuntimeException(e); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } +// } } From 7e1db9df9eb5891e397d925cdc07f16504bb6821 Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Thu, 24 Aug 2023 15:54:36 +0800 Subject: [PATCH 02/46] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=A1=E9=AA=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mailGather/EmailMaintainController.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java index 084cec95..96408ebe 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java @@ -97,10 +97,11 @@ public class EmailMaintainController extends AbstractController { emailMaintain.setCreateUser(loginname); DynamicContextHolder.push(DbConstant.BASICS_READ); - EmailMaintainVo vo = new EmailMaintainVo(); - vo.setEmailAddress(emailMaintain.getEmailAddress()); - EmailMaintainVo maintainVo = emailMaintainService.getEmailMaintainVo(vo); - if(maintainVo != null){ +// EmailMaintainVo vo = new EmailMaintainVo(); +// vo.setEmailAddress(emailMaintain.getEmailAddress()); +// EmailMaintainVo maintainVo = emailMaintainService.getEmailMaintainVo(vo); + int count = emailMaintainService.selectByEmail(emailMaintain.getEmailAddress()); + if(count>0){ return ResponseEntity.ok(R.error("邮箱地址已存在!")); } boolean insert = this.emailMaintainService.insert(emailMaintain); From b3105f6e7e6898f1520068ffaaedfad00c873335 Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Thu, 24 Aug 2023 16:59:01 +0800 Subject: [PATCH 03/46] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 3 +++ .../main/resources/mapper/mailGather/EmailMaintainMapper.xml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index f8147784..4fd83721 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -101,6 +101,7 @@ public class SnEmailGatherTask { public void parseEmail(EmailMaintainVo maintainVo){ log.info("邮箱采集内部方法开始执行--"); + log.info("解析用户"+maintainVo.getUsername()+"邮箱"); long startTime = System.currentTimeMillis(); String password = Base64Decoder.decodeStr(maintainVo.getEmailPassword()); String emailName = maintainVo.getEmailAddress(); @@ -163,6 +164,7 @@ public class SnEmailGatherTask { log.debug("邮件大小:" + msg.getSize() * 1024 + "kb"); uid = inbox.getUID(msg); + log.info("uid{}",uid); // if(StringUtils.isBlank(maintainVo.getEmailUid()) && i+1 == messages.length){ // emailMaintainVo.setEmailUid(uid); // buildEmailMaintainVo(emailMaintainVo); @@ -256,6 +258,7 @@ public class SnEmailGatherTask { EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); emailMaintainVo.setId(maintainVo.getId()); emailMaintainVo.setEmailUid(uid); + log.debug("uid:"+emailMaintainVo.getEmailUid()); buildEmailMaintainVo(emailMaintainVo); } // 释放资源 diff --git a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml index f9ea5525..f47f3aa1 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml @@ -152,6 +152,9 @@ email_uid = #{emailUid}, + + modify_time = #{modifyTime}, + where id = #{id} From 0aa28d0b9e4128ca0a192dc5990ae6c1d0f74f8e Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Thu, 24 Aug 2023 17:16:09 +0800 Subject: [PATCH 04/46] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dxhy/core/model/mailGather/EmailMaintainVo.java | 3 +++ .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 2 +- .../main/resources/mapper/mailGather/EmailMaintainMapper.xml | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/model/mailGather/EmailMaintainVo.java b/dxhy-core/src/main/java/com/dxhy/core/model/mailGather/EmailMaintainVo.java index 6d31465c..9555324d 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/model/mailGather/EmailMaintainVo.java +++ b/dxhy-core/src/main/java/com/dxhy/core/model/mailGather/EmailMaintainVo.java @@ -1,6 +1,7 @@ package com.dxhy.core.model.mailGather; import com.dxhy.core.model.CommonDTO; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,8 @@ public class EmailMaintainVo extends CommonDTO { public String createUser; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date modifyTime; } diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 4fd83721..3e5f7d77 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -254,7 +254,7 @@ public class SnEmailGatherTask { throw new RuntimeException(e); }finally { //更新uid信息 - if (uids.isEmpty() ||uids.indexOf(uid)>uids.indexOf(maintainVo.getEmailUid())){ + if (StringUtils.isNotBlank(uid) && (uids.isEmpty() ||uids.indexOf(uid)>uids.indexOf(maintainVo.getEmailUid()))){ EmailMaintainVo emailMaintainVo = new EmailMaintainVo(); emailMaintainVo.setId(maintainVo.getId()); emailMaintainVo.setEmailUid(uid); diff --git a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml index f47f3aa1..19eaa752 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml @@ -152,7 +152,7 @@ email_uid = #{emailUid}, - + modify_time = #{modifyTime}, From 4e863aa69ebb75ad5dda1ef45f64441cf264115f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Fri, 1 Sep 2023 14:52:34 +0800 Subject: [PATCH 05/46] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/InterfaceController.java | 7 ++++++ .../main/java/com/dxhy/erp/model/ZDATAN.java | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATAN.java diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 70474ab8..8fef20a8 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1414,5 +1414,12 @@ public class InterfaceController extends AbstractController { } + public static void main(String[] args) { + String request = "{\"IS_INPUT\":{\"SYSID\":\"SAP\",\"IFYWID\":\"FI849\",\"SAPKEY\":\"GXC0612212150025\",\"ZFILED1\":\"FI\",\"ZFILED5\":850,\"ZDATA\":\"[{\\\"MANDT\\\":\\\"850\\\",\\\"ZBZDH\\\":\\\"GXC0612212150025\\\",\\\"ZFPDM\\\":\\\"\\\",\\\"ZFPHM\\\":\\\"\\\",\\\"JXSZC\\\":495.15,\\\"ZZCYY\\\":\\\"\\\",\\\"BUDAT\\\":\\\"2022-12-15\\\"}]\"}}"; + + ErpInvoiceData erpInvoiceData = JSON.parseObject(request, ErpInvoiceData.class); + System.out.println(erpInvoiceData); + } + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATAN.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATAN.java new file mode 100644 index 00000000..b6e3cf8e --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATAN.java @@ -0,0 +1,24 @@ +package com.dxhy.erp.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ZDATAN { + @JsonProperty(value = "IS_INPUT") + private String MANDT; + @JsonProperty(value = "IS_INPUT") + private String ZBZDH; + @JsonProperty(value = "IS_INPUT") + private String ZFPDM; + @JsonProperty(value = "IS_INPUT") + private String ZFPHM; + @JsonProperty(value = "IS_INPUT") + private BigDecimal JXSZC; + @JsonProperty(value = "IS_INPUT") + private String ZZCYY; + @JsonProperty(value = "IS_INPUT") + private String BUDAT; +} From 46be2cb67ee09e1e6247a14d83476f0f52dd7d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 4 Sep 2023 11:18:10 +0800 Subject: [PATCH 06/46] =?UTF-8?q?=E8=BF=9B=E9=A1=B9=E7=A8=8E=E8=BD=AC?= =?UTF-8?q?=E5=87=BA=E4=BF=AE=E6=94=B9=E8=AE=BE=E7=BD=AE=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=92=8C=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/InterfaceController.java | 69 +++++++++++++++++-- .../service/BaseIReceiptInvoiceService.java | 2 +- .../dxhy/erp/service/IReceiptOutService.java | 10 ++- .../impl/BaseIReceiptInvoiceServiceImpl.java | 2 +- .../service/impl/ReceiptOutServiceImpl.java | 39 +++++++---- 5 files changed, 101 insertions(+), 21 deletions(-) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 8fef20a8..b6173e29 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1259,7 +1259,7 @@ public class InterfaceController extends AbstractController { } } - public String transferOut(ErpInvoiceData erpInvoiceData){ + public String transferOuts(ErpInvoiceData erpInvoiceData){ String zdata = erpInvoiceData.getIS_INPUT().getZDATA(); List list = JSON.parseArray(zdata, Map.class); @@ -1414,12 +1414,69 @@ public class InterfaceController extends AbstractController { } - public static void main(String[] args) { - String request = "{\"IS_INPUT\":{\"SYSID\":\"SAP\",\"IFYWID\":\"FI849\",\"SAPKEY\":\"GXC0612212150025\",\"ZFILED1\":\"FI\",\"ZFILED5\":850,\"ZDATA\":\"[{\\\"MANDT\\\":\\\"850\\\",\\\"ZBZDH\\\":\\\"GXC0612212150025\\\",\\\"ZFPDM\\\":\\\"\\\",\\\"ZFPHM\\\":\\\"\\\",\\\"JXSZC\\\":495.15,\\\"ZZCYY\\\":\\\"\\\",\\\"BUDAT\\\":\\\"2022-12-15\\\"}]\"}}"; + public String transferOut(@RequestBody ErpInvoiceData erpInvoiceData){ + try { + //转化实体 + String zdata = erpInvoiceData.getIS_INPUT().getZDATA(); + List zdatans = JSONObject.parseArray(zdata, ZDATAN.class); + //返回结果实体 + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); - ErpInvoiceData erpInvoiceData = JSON.parseObject(request, ErpInvoiceData.class); - System.out.println(erpInvoiceData); - } + //校验发票号码 + boolean allMatch = zdatans.stream().allMatch(e -> StringUtils.isNotBlank(e.getZFPHM())); + //号码存在为空直接返回错误 + if (!allMatch) { + es.setZTYPE("E"); + es.setZMESSAGE("发票号码不能为空"); + outPut.setES_OUTPUT(es); + log.info("进项税转出传入发票存在没有发票号码发票"); + return JsonUtils.getInstance().toJsonString(outPut); + } + StringBuilder uuids = new StringBuilder(); + zdatans.forEach(e -> uuids.append(e.getZFPDM() == null ? "" : e.getZFPDM()).append(e.getZFPHM())); + + //根据uuid查询发票 + String[] ids = uuids.toString().split(","); + List tDxRecordInvoices = baseIReceiptInvoiceService.selectByUuids(ids); + if (tDxRecordInvoices == null || tDxRecordInvoices.size() == 0 || tDxRecordInvoices.size() != ids.length) { + es.setZTYPE("E"); + es.setZMESSAGE("发票在发票系统中不存在"); + outPut.setES_OUTPUT(es); + log.info("进项税转出传入发票在发票系统中不存在"); + return JsonUtils.getInstance().toJsonString(outPut); + } + List collect = tDxRecordInvoices.stream().filter(e -> "0".equals(e.getRzhYesorno())).collect(Collectors.toList()); + if (collect.size() > 0) { + es.setZTYPE("E"); + es.setZMESSAGE("发票未认证不可转出"); + outPut.setES_OUTPUT(es); + log.info("进项税转出传入发票存在未认证发票"); + return JsonUtils.getInstance().toJsonString(outPut); + } + //进项税转出或者取消转出 + UserInfo userInfo = getUserInfo(); + iReceiptOutService.transferOrcancelOut(zdatans,userInfo); + es.setZTYPE("Y"); + es.setZMESSAGE("操作成功"); + log.info("进项税转出成功"); + return JsonUtils.getInstance().toJsonString(es); + }catch (Exception e){ + e.printStackTrace(); + log.error("error", e.getMessage()); + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); + es.setZTYPE("E"); + es.setZMESSAGE("系统内部错误"); + outPut.setES_OUTPUT(es); + return JsonUtils.getInstance().toJsonString(outPut); + } + } + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java index d4ee01f7..f8c959a9 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java @@ -31,6 +31,6 @@ public interface BaseIReceiptInvoiceService { * 请求参数 * @return 返回结果 */ - String cancelOut(BaseReceiptOutCancelEditReqVO reqVO); + String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) throws Exception; } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java index 01f71d7d..ae08af61 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java @@ -2,7 +2,13 @@ package com.dxhy.erp.service; import com.dxhy.common.vo.UserInfo; import com.dxhy.erp.entity.BaseInvoiceEditVO; +import com.dxhy.erp.entity.BaseTDxRecordInvoice; import com.dxhy.erp.model.ErpInvoiceData; +import com.dxhy.erp.model.ZDATAN; +import org.junit.jupiter.api.parallel.Execution; + +import java.util.List; +import java.util.concurrent.ExecutionException; /** * @Author wangzhikun @@ -10,5 +16,7 @@ import com.dxhy.erp.model.ErpInvoiceData; */ public interface IReceiptOutService { - String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo); + String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo) throws Exception; + + String transferOrcancelOut(List zdatans,UserInfo userInfo) throws Exception; } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java index 4594ec06..b36e1e16 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java @@ -63,7 +63,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl invoices = baseIReceiptInvoiceService.selectByUuids(ids); - if(CollectionUtils.isEmpty(invoices)){ - return TransferContant.INVOICE_NOT_EXIT; - } - invoices = invoices.stream().filter(e -> !"0".equals(e.getRzhYesorno())).collect(Collectors.toList()); - if(CollectionUtils.isEmpty(invoices)){ - return TransferContant.NOT_RZ; - } + // second:根据uuids查询出转出明细并转为map,key=uuid ,value=转出明细 List outs = listByUuids(ids); Map outMap = @@ -80,11 +72,34 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl zdatans,UserInfo userInfo) throws Exception{ + String result = ""; + for (ZDATAN zdata : zdatans) { + //转出税额大于1则是转出 + if (zdata.getJXSZC().compareTo(BigDecimal.ZERO)==1){ + BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO(); + baseInvoiceEditVO.setPrimaryKey(zdata.getZFPDM()==null?"":zdata.getZFPDM()+zdata.getZFPHM()); + baseInvoiceEditVO.setOutReason(zdata.getZZCYY()); + baseInvoiceEditVO.setOutTax(zdata.getJXSZC().toPlainString()); + baseInvoiceEditVO.setOutStatus("1"); + baseInvoiceEditVO.setOutTaxPeriod(zdata.getBUDAT()); + this.transfer(baseInvoiceEditVO,userInfo); + }else {//转出税额小于0取消转出 + BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO(); + baseReceiptOutCancelEditReqVO.setPrimaryKey(zdata.getZFPDM()==null?"":zdata.getZFPDM()+zdata.getZFPHM()); + baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO); + } + } + return TransferContant.SUCCESS; + } + /** * 根据uuids查询进项税转出明细 * From c57856d3ec00832989d276adfac91d189569f631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 4 Sep 2023 13:31:27 +0800 Subject: [PATCH 07/46] =?UTF-8?q?=E8=BF=9B=E9=A1=B9=E7=A8=8E=E8=BD=AC?= =?UTF-8?q?=E5=87=BA=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E6=BA=90=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/dxhy/erp/controller/InterfaceController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index b6173e29..642dad74 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1440,6 +1440,7 @@ public class InterfaceController extends AbstractController { //根据uuid查询发票 String[] ids = uuids.toString().split(","); + DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); List tDxRecordInvoices = baseIReceiptInvoiceService.selectByUuids(ids); if (tDxRecordInvoices == null || tDxRecordInvoices.size() == 0 || tDxRecordInvoices.size() != ids.length) { es.setZTYPE("E"); @@ -1457,7 +1458,7 @@ public class InterfaceController extends AbstractController { return JsonUtils.getInstance().toJsonString(outPut); } //进项税转出或者取消转出 - UserInfo userInfo = getUserInfo(); + UserInfo userInfo = new UserInfo(); iReceiptOutService.transferOrcancelOut(zdatans,userInfo); es.setZTYPE("Y"); es.setZMESSAGE("操作成功"); From f3d5fddaba955bdc6ecb8d41e020e7264745c705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 4 Sep 2023 17:33:20 +0800 Subject: [PATCH 08/46] =?UTF-8?q?=E8=BF=9B=E9=A1=B9=E7=A8=8E=E8=BD=AC?= =?UTF-8?q?=E5=87=BA=E4=BF=AE=E6=94=B9=E8=AE=BE=E7=BD=AE=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=92=8C=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dxhy/erp/controller/InterfaceController.java | 2 +- .../com/dxhy/erp/service/BaseIReceiptInvoiceService.java | 2 +- .../main/java/com/dxhy/erp/service/IReceiptOutService.java | 4 ++-- .../erp/service/impl/BaseIReceiptInvoiceServiceImpl.java | 5 ++++- .../com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java | 4 ++-- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 642dad74..064eeb3d 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1436,7 +1436,7 @@ public class InterfaceController extends AbstractController { return JsonUtils.getInstance().toJsonString(outPut); } StringBuilder uuids = new StringBuilder(); - zdatans.forEach(e -> uuids.append(e.getZFPDM() == null ? "" : e.getZFPDM()).append(e.getZFPHM())); + zdatans.forEach(e -> uuids.append(e.getZFPDM() == null ? "" : e.getZFPDM()).append(e.getZFPHM()).append(",")); //根据uuid查询发票 String[] ids = uuids.toString().split(","); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java index f8c959a9..d4ee01f7 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java @@ -31,6 +31,6 @@ public interface BaseIReceiptInvoiceService { * 请求参数 * @return 返回结果 */ - String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) throws Exception; + String cancelOut(BaseReceiptOutCancelEditReqVO reqVO); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java index ae08af61..7418da4e 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java @@ -16,7 +16,7 @@ import java.util.concurrent.ExecutionException; */ public interface IReceiptOutService { - String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo) throws Exception; + String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo); - String transferOrcancelOut(List zdatans,UserInfo userInfo) throws Exception; + String transferOrcancelOut(List zdatans,UserInfo userInfo); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java index b36e1e16..d93f72c7 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java @@ -63,7 +63,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.set("out_status",condRecord.getOutStatus()); updateWrapper.set("out_reason",condRecord.getOutReason()); @@ -130,6 +132,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl zdatans,UserInfo userInfo) throws Exception{ + public String transferOrcancelOut(List zdatans,UserInfo userInfo){ String result = ""; for (ZDATAN zdata : zdatans) { //转出税额大于1则是转出 From e6b9081cc7676446beb4d390e718ebe3739da488 Mon Sep 17 00:00:00 2001 From: yefei Date: Thu, 7 Sep 2023 15:44:15 +0800 Subject: [PATCH 09/46] =?UTF-8?q?ariesy=20=E5=A2=9E=E5=8A=A0=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ckzrz/impl/DomesticExportCustomsCkServiceImpl.java | 3 +++ .../ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java index c35809ae..c4cc7d6d 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java @@ -84,6 +84,7 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl> result = this.baseMapper.querySgByPage(page, dto); + log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { // List lyModels = dictdetaServcice.selectDictdeta("jksSources"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -423,6 +424,7 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl result = this.baseMapper.queryBdkByPage(page, dto); + log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { @@ -546,6 +548,7 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl result = this.baseMapper.queryRzcxByPage(page, dto); + log.info("获取的结果为:{}",page.getRecords().get(0)); if (ResultData.isEmpty(result)) { for (int i = 0; i < page.getRecords().size(); i++) { Map map = result.getRecords().get(i); diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java index 8d1580ea..63459b6f 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java @@ -7,6 +7,7 @@ import java.util.*; import javax.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -44,6 +45,7 @@ import cn.hutool.core.codec.Base64; * @author dxhy */ @SuppressWarnings("AlibabaMethodTooLong") +@Slf4j @Service public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl implements DomesticExportInvoiceCkService { @@ -82,6 +84,7 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl> result = this.baseMapper.queryVatSgrz(page, dto); + log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { // List fpztModels = dictdetaServcice.selectDictdeta("INVOICE_STATUS"); @@ -399,7 +402,7 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl result = this.baseMapper.queryVatBdk(page, dto); - + log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { @@ -519,7 +522,7 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl> result = this.baseMapper.queryVatRzcx(page, dto); - + log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { @@ -530,7 +533,7 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl Date: Thu, 7 Sep 2023 20:04:07 +0800 Subject: [PATCH 10/46] =?UTF-8?q?ariesy=20=E8=A7=A3=E5=86=B3=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=A0=BC=E5=BC=8F=E4=B8=AD=E9=97=B4=E5=8A=A0=E4=B8=AA?= =?UTF-8?q?T?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CustomsRecordDkrzServiceImpl.java | 14 +++++++++++++ .../service/impl/CustomsSignServiceImpl.java | 9 ++++++++ .../DomesticExportCustomsCkServiceImpl.java | 13 ++++++++---- .../DomesticExportInvoiceCkServiceImpl.java | 21 +++++++++++++++++-- .../src/main/resources/bootstrap-test.yaml | 4 ++-- .../src/main/resources/bootstrap-test.yaml | 4 ++-- 6 files changed, 55 insertions(+), 10 deletions(-) diff --git a/dxhy-customs/src/main/java/com/dxhy/customs/service/impl/CustomsRecordDkrzServiceImpl.java b/dxhy-customs/src/main/java/com/dxhy/customs/service/impl/CustomsRecordDkrzServiceImpl.java index fd0b8fb8..5eccd675 100644 --- a/dxhy-customs/src/main/java/com/dxhy/customs/service/impl/CustomsRecordDkrzServiceImpl.java +++ b/dxhy-customs/src/main/java/com/dxhy/customs/service/impl/CustomsRecordDkrzServiceImpl.java @@ -3,6 +3,8 @@ package com.dxhy.customs.service.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -148,6 +150,12 @@ public class CustomsRecordDkrzServiceImpl extends MpBaseServiceImpl tDxTaxCurrents = customsTaxCurrentService @@ -937,6 +945,12 @@ public class CustomsRecordDkrzServiceImpl extends MpBaseServiceImpl Date: Tue, 12 Sep 2023 10:08:31 +0800 Subject: [PATCH 11/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E7=9A=84=E8=BF=94=E5=9B=9E=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dxhy-admin/src/main/java/com/dxhy/admin/sys/model/User.java | 2 ++ .../com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/model/User.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/model/User.java index c0c8ca7a..e902fd38 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/model/User.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/model/User.java @@ -51,6 +51,8 @@ public class User implements Serializable { private List companyCodes; + private List emailCodes; + private String qsStatus; private String webscoketUrl; diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java index fd22b3a2..6c733f9f 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java @@ -1,6 +1,7 @@ package com.dxhy.admin.sys.service.impl; import java.util.*; +import java.util.stream.Collectors; import javax.annotation.Resource; @@ -325,6 +326,7 @@ public class SysUserServiceImpl extends ServiceImpl i } //获取组织编码 List companyEntitys = sysUserOrgService.getOrgsByUserId(userEntity.getUserId()); + List emailCodes = new ArrayList<>(); if (companyEntitys != null && companyEntitys.size() > 0) { for (SysCompanyEntity companyEntity : companyEntitys) { if (companyEntity != null) { @@ -338,6 +340,7 @@ public class SysUserServiceImpl extends ServiceImpl i // company.setCompanyName("()暂无组织编码发票"); // company.setCompanyCode("88"); // companyEntitys.add(company); + emailCodes = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); } user = this.toUser(user, userEntity); @@ -345,7 +348,7 @@ public class SysUserServiceImpl extends ServiceImpl i user.setUserOrg(userOrgEntity); user.setUserBusiness(businessList); user.setCompanyCodes(companyEntitys); - + user.setEmailCodes(emailCodes); user.setUserModels(this.getUserCompanyList(userEntity.getCompany())); // 刷新菜单缓存处理 this.setMetnuRedis(userEntity.getUserId()); From 82f70f6d82bebb3ba4d6347dab50d8007d4df50f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 12 Sep 2023 11:03:38 +0800 Subject: [PATCH 12/46] =?UTF-8?q?=E6=B7=B1=E6=8B=B7=E8=B4=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java index 6c733f9f..062b6ce4 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java @@ -340,7 +340,8 @@ public class SysUserServiceImpl extends ServiceImpl i // company.setCompanyName("()暂无组织编码发票"); // company.setCompanyCode("88"); // companyEntitys.add(company); - emailCodes = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); + List collect = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); + Collections.copy(emailCodes,collect); } user = this.toUser(user, userEntity); From f6acf679ec0aa41fb5561fcefe4869fb50394612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 12 Sep 2023 14:29:16 +0800 Subject: [PATCH 13/46] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=B5=85=E6=8B=B7?= =?UTF-8?q?=E8=B4=9D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java index 062b6ce4..7d327cdb 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java @@ -341,7 +341,7 @@ public class SysUserServiceImpl extends ServiceImpl i // company.setCompanyCode("88"); // companyEntitys.add(company); List collect = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); - Collections.copy(emailCodes,collect); + emailCodes = JSONObject.parseArray(collect.toString()).toJavaList(SysCompanyEntity.class); } user = this.toUser(user, userEntity); From 95bd44e36dc2cab54163fe186f656a5c4ee22089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 12 Sep 2023 16:08:37 +0800 Subject: [PATCH 14/46] Default Changelist --- .../main/java/com/dxhy/admin/sys/dao/SysUserOrgDao.java | 2 ++ .../java/com/dxhy/admin/sys/service/SysUserOrgService.java | 2 ++ .../dxhy/admin/sys/service/impl/SysUserOrgServiceImpl.java | 7 +++++++ .../dxhy/admin/sys/service/impl/SysUserServiceImpl.java | 5 +---- dxhy-admin/src/main/resources/mapper/sys/SysUserOrgDao.xml | 7 +++++++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/dao/SysUserOrgDao.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/dao/SysUserOrgDao.java index e9e30a39..c1031bd5 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/dao/SysUserOrgDao.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/dao/SysUserOrgDao.java @@ -55,4 +55,6 @@ public interface SysUserOrgDao extends BaseMapper { * 用户id */ List getOrgsByUserId(Long userId); + + List getEmailOrgsByUserId(Long userId); } diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/SysUserOrgService.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/SysUserOrgService.java index eb552e13..7cd94660 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/SysUserOrgService.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/SysUserOrgService.java @@ -69,4 +69,6 @@ public interface SysUserOrgService extends IService { */ List getOrgsByUserId(Long userId); + List getEmailOrgsByUserId(Long userId); + } diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserOrgServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserOrgServiceImpl.java index 1bbf8a3f..335bd6ef 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserOrgServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserOrgServiceImpl.java @@ -89,6 +89,13 @@ public class SysUserOrgServiceImpl extends ServiceImpl getEmailOrgsByUserId(Long userId) { + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + + return baseMapper.getEmailOrgsByUserId(userId); + } + @Transactional(rollbackFor = Exception.class) public void deleteUserOrg(Long userId) { baseMapper.delete(new QueryWrapper().eq("userid", userId)); diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java index 7d327cdb..f678621b 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java @@ -326,7 +326,6 @@ public class SysUserServiceImpl extends ServiceImpl i } //获取组织编码 List companyEntitys = sysUserOrgService.getOrgsByUserId(userEntity.getUserId()); - List emailCodes = new ArrayList<>(); if (companyEntitys != null && companyEntitys.size() > 0) { for (SysCompanyEntity companyEntity : companyEntitys) { if (companyEntity != null) { @@ -340,8 +339,6 @@ public class SysUserServiceImpl extends ServiceImpl i // company.setCompanyName("()暂无组织编码发票"); // company.setCompanyCode("88"); // companyEntitys.add(company); - List collect = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); - emailCodes = JSONObject.parseArray(collect.toString()).toJavaList(SysCompanyEntity.class); } user = this.toUser(user, userEntity); @@ -349,10 +346,10 @@ public class SysUserServiceImpl extends ServiceImpl i user.setUserOrg(userOrgEntity); user.setUserBusiness(businessList); user.setCompanyCodes(companyEntitys); - user.setEmailCodes(emailCodes); user.setUserModels(this.getUserCompanyList(userEntity.getCompany())); // 刷新菜单缓存处理 this.setMetnuRedis(userEntity.getUserId()); + user.setEmailCodes(sysUserOrgService.getEmailOrgsByUserId(userEntity.getUserId())); } catch (Exception e) { e.printStackTrace(); } diff --git a/dxhy-admin/src/main/resources/mapper/sys/SysUserOrgDao.xml b/dxhy-admin/src/main/resources/mapper/sys/SysUserOrgDao.xml index 0c8a9ec7..a45debdc 100644 --- a/dxhy-admin/src/main/resources/mapper/sys/SysUserOrgDao.xml +++ b/dxhy-admin/src/main/resources/mapper/sys/SysUserOrgDao.xml @@ -79,4 +79,11 @@ where org.userid = #{userId} + + From b464b0de4313b820b92b7b4459a71a2ef89c0f98 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, 14 Sep 2023 14:23:40 +0800 Subject: [PATCH 15/46] =?UTF-8?q?=E5=AE=9A=E6=98=AF=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/dao/frTask/QueryDetailDataDao.java | 31 ++ .../core/dao/frTask/RecordToQueryDao.java | 37 +++ .../core/dao/frTask/VoucherRecordItemDao.java | 17 ++ .../java/com/dxhy/core/enmu/FplxEnmu.java | 120 ++++++++ .../java/com/dxhy/core/enmu/KjkmTaxEnmu.java | 49 ++++ .../dxhy/core/entity/frJob/FpTaxAmount.java | 10 + .../com/dxhy/core/entity/frJob/KjkmSl.java | 10 + .../entity/frJob/VoucherRecordItemEntity.java | 271 ++++++++++++++++++ .../core/entity/frJob/VoucherRecordQuery.java | 79 +++++ .../frJob/VoucherRecordQueryDetail.java | 92 ++++++ .../service/frJob/QueryDetailDataService.java | 19 ++ .../frJob/QueryDetailDataServiceImpl.java | 98 +++++++ .../service/frJob/RecordToQueryService.java | 17 ++ .../frJob/RecordToQueryServiceImpl.java | 188 ++++++++++++ .../frJob/VoucherRecordItemService.java | 8 + .../frJob/VoucherRecordItemServiceImpl.java | 75 +++++ .../java/com/dxhy/core/task/FrDataTask.java | 44 +++ .../mapper/frJob/QueryDetailDataDao.xml | 185 ++++++++++++ .../mapper/frJob/RecordToQueryDao.xml | 137 +++++++++ .../mapper/frJob/VoucherRecordItemDao.xml | 20 ++ 20 files changed, 1507 insertions(+) create mode 100644 dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/dao/frTask/VoucherRecordItemDao.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/enmu/FplxEnmu.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/enmu/KjkmTaxEnmu.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FpTaxAmount.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/KjkmSl.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordItemEntity.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQuery.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQueryDetail.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java create mode 100644 dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml create mode 100644 dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml create mode 100644 dxhy-core/src/main/resources/mapper/frJob/VoucherRecordItemDao.xml diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java new file mode 100644 index 00000000..c2bd606b --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java @@ -0,0 +1,31 @@ +package com.dxhy.core.dao.frTask; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +@Mapper +public interface QueryDetailDataDao extends BaseMapper { + + Date getBeginTime(String kjkmbh); + + Date getBeginTimefromRecord(); + + List getDataFromRecord(@Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("kjkmbh") String kjkmbh); + + void insertDataToItem(List voucherRecordQueryDetails); + + List getDataFromRecordJe(@Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("kjkmbh") String kjkmbh); + + List getDataFromRecordXx(@Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("kjkmbh") String kjkmbh); +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java new file mode 100644 index 00000000..b73a8bf6 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java @@ -0,0 +1,37 @@ +package com.dxhy.core.dao.frTask; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dxhy.core.entity.frJob.FpTaxAmount; +import com.dxhy.core.entity.frJob.VoucherRecordQuery; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +@Mapper +public interface RecordToQueryDao extends BaseMapper { + + List getDataFromRecordItems(@Param("start")String beginTime, + @Param("end") String endTime, + @Param("kjkmbh")String kjkmbh); + + Date getBeginTime(String kjkmbh); + + Date getBeginTimefromRecord(); + + void insertDataToQuery(List voucherRecordQuerys); + + List getTaxAmount(List bzdhs); + + List getDataXFromRecordItems(@Param("start") String start, + @Param("end") String end, + @Param("kjkmbh")String kjkmbh); + + List getXTaxAmount(List bzdhs); + + List getDataZFromRecordItems(@Param("start") String start, + @Param("end") String end, + @Param("kjkmbh") String kjkmbh); + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/VoucherRecordItemDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/VoucherRecordItemDao.java new file mode 100644 index 00000000..b1142d12 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/VoucherRecordItemDao.java @@ -0,0 +1,17 @@ +package com.dxhy.core.dao.frTask; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface VoucherRecordItemDao extends BaseMapper { + + List getByTime(@Param("start")String start, + @Param("end") String end, + @Param("kjkmbh") String kjkmbh); +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/enmu/FplxEnmu.java b/dxhy-core/src/main/java/com/dxhy/core/enmu/FplxEnmu.java new file mode 100644 index 00000000..80d0999b --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/enmu/FplxEnmu.java @@ -0,0 +1,120 @@ +package com.dxhy.core.enmu; + + +import com.google.common.collect.Maps; + +import java.util.Map; + +public enum FplxEnmu { + /** + * 专票代码 + */ + ZP("01", "增值税专用发票"), + /** + * 机动车代码 + */ + JDC("03","机动车销售统一发票"), + /** + * 普票代码 + */ + PP("04", "增值税普通发票"), + + /** + * 电子票代码 + */ + DZP("10", "增值税电子普通发票"), + /** + * 卷式发票代码 + */ + JSP("11", "增值税普通发票(卷票)"), + /** + * 通行费发票代码 + */ + TXF("14", "增值税电子普通发票(通行费)"), + + ESC("15", "二手车销售统一发票"), + /** + * 电子专票 + */ + DZZP("08", "增值税电子专用发票"), + /** + * 海关缴款书 + */ + HGJKS("17", "海关缴款书"), + /** + * 电子发票(增值税专用发票) + */ + QDZZP("31", "电子发票(增值税专用发票)"), + /** + * 电子发票(普通发票) + */ + QDPP("32", "电子发票(普通发票)"), + /** + * 机动车销售电子统一发票 + */ + JDCDZ("183", "机动车销售电子统一发票"), + /** + * 二手车销售电子统一发票 + */ + ESCDZ("184", "二手车销售电子统一发票"), + /** + * 纸质发票(增值税专用发票) + */ + ZZDZ("185", "纸质发票(增值税专用发票)"), + /** + * 纸质发票(普通发票) + */ + ZZPP("186", "纸质发票(普通发票)"), + /** + * 纸质发票(机动车销售统一发票) + */ + ZZJDC("187", "纸质发票(机动车销售统一发票)"), + /** + * 纸质发票(二手车销售统一发票) + */ + ZZESC("188", "纸质发票(二手车销售统一发票)"), + /** + * 增加电子发票(铁路电子客票) + */ + TLKP("283", "增加电子发票(铁路电子客票)"), + /** + * 电子发票(航空运输客票电子行程单) + */ + HKDZFP("161", "电子发票(航空运输客票电子行程单)"), + /** + * 货物运输业增值税专用发票 + */ + HWYH("02", "货物运输业增值税专用发票"); + + private String fplxDm; + private String fplxMc; + + FplxEnmu(String fplxDm, String fplxMc) { + this.fplxDm = fplxDm; + this.fplxMc = fplxMc; + } + + public String getFplxDm() { + return fplxDm; + } + + public void setFplxDm(String fplxDm) { + this.fplxDm = fplxDm; + } + + public String getfplxMc() { + return fplxMc; + } + + public void setFplxMc(String fplxMc) { + this.fplxMc = fplxMc; + } + + public static Map getFplxMap(){ + Map fplxMap = Maps.newHashMap(); + for (FplxEnmu value : FplxEnmu.values()) { + fplxMap.put(value.fplxDm,value.fplxMc); + } + return fplxMap; + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/enmu/KjkmTaxEnmu.java b/dxhy-core/src/main/java/com/dxhy/core/enmu/KjkmTaxEnmu.java new file mode 100644 index 00000000..549961a6 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/enmu/KjkmTaxEnmu.java @@ -0,0 +1,49 @@ +package com.dxhy.core.enmu; + +import com.google.common.collect.Maps; + +import java.util.Map; + +public enum KjkmTaxEnmu { + + YJJXZZSSL("2221010101","16"), + YJJXZZSSS("2221010102","13"), + YJJXZZSS("2221010103","10"), + YJJXZZSJ("2221010104","9"), + YJJXZZSL("2221010105","6"), + YJJXZZSW("2221010106","5"), + YJJXZZST("2221010107","3"), + YJJXZZSE("2221010108","2"), + YJJXZZSZ("2221010109","0"), + YJJXZZSSQ("2221010110","17"), + YJJXZZSSY("2221010111","11"), + YJJXZZSY("2221010112","1"), + YJJXZZSYW("2221010113","1.5"), + YJXXZZSSL("2221010201","16"), + YJXXZZSSS("2221010202","13"), + YJXXZZSS("2221010203","10"), + YJXXZZSJ("2221010204","9"), + YJXXZZSL("2221010205","6"), + YJXXZZSW("2221010206","5"), + YJXXZZST("2221010207","3"), + YJXXZZSE("2221010208","2"), + YJXXZZSZ("2221010209","0"), + YJXXZZSSQ("2221010210","17"), + YJXXZZSSY("2221010211","11"), + YJXXZZSY("2221010212","1"); + + private String kjkm; + private String tax; + KjkmTaxEnmu(String kjkm,String tax){ + this.kjkm = kjkm; + this.tax = tax; + } + + public static Map getTaxMap(){ + Map taxMap = Maps.newHashMap(); + for (KjkmTaxEnmu value : KjkmTaxEnmu.values()) { + taxMap.put(value.kjkm,value.tax); + } + return taxMap; + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FpTaxAmount.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FpTaxAmount.java new file mode 100644 index 00000000..22e77252 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FpTaxAmount.java @@ -0,0 +1,10 @@ +package com.dxhy.core.entity.frJob; + +import lombok.Data; + +@Data +public class FpTaxAmount { + private String key; + private String fpse; + private String fpje; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/KjkmSl.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/KjkmSl.java new file mode 100644 index 00000000..65897e42 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/KjkmSl.java @@ -0,0 +1,10 @@ +package com.dxhy.core.entity.frJob; + +import lombok.Data; + +@Data +public class KjkmSl { + + private String kjkm; + private String sl; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordItemEntity.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordItemEntity.java new file mode 100644 index 00000000..684e9e33 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordItemEntity.java @@ -0,0 +1,271 @@ +package com.dxhy.core.entity.frJob; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("voucher_record_item") +public class VoucherRecordItemEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) + /** + * 主键 + */ + private Long id; + + /** + * 和主键关联的id + */ + private Long relationId; + + /** + * 行项目编码 + */ + private String docln; + + /** + * 借贷标识 + */ + private String drcrk; + + /** + * 借贷描述 s借 h贷 + */ + private String zdrcrk; + + /** + * 科目编码 + */ + private String racct; + + /** + * 科目描述 + */ + private String txt50; + + /** + * 借方金额 + */ + private String zwslj; + + /** + * 贷方金额 + */ + private String zwsld; + + /** + * 公司代码货币 + */ + private String rhcur; + + /** + * 交易货币 + */ + private String rwcur; + + /** + * 本位币借方金额 + */ + private String zhslj; + + /** + * 本位币贷方金额 + */ + private String zhsld; + + /** + * 公司代码货币 + */ + private String phcur; + + /** + * 供应商编码 + */ + private String lifnr; + + /** + * 供应商名称 + */ + private String zname; + + /** + * 客户编码 + */ + private String kunnr; + + /** + * 物料编码 + */ + private String matnr; + + /** + * 物料名称 + */ + private String maktx; + + /** + * 客户名称 + */ + private String zname2; + + /** + * 供应商名称 + */ + private String zname1; + + /** + * 数量 + */ + private String msl; + + /** + * 单位 + */ + private String runit; + + /** + * 税码 + */ + private String mwskz; + + /** + * 税率 + */ + private String kbetr; + + /** + * 成本中心 + */ + private String rcntr; + + /** + * 成本中心名称 + */ + private String ktext; + + /** + * wbs编码 + */ + private String psPosid; + + /** + * wbs名称 + */ + private String post1; + + /** + * 订单编号 + */ + private String aufnr; + + /** + * 订单描述 + */ + private String zktext; + + /** + * 销售订单 + */ + private String kdauf; + + /** + * 销售订单行 + */ + private String kdpos; + + /** + * 是否是集成销售业务 + */ + private String zzjcfflag; + + /** + * 资产编码 + */ + private String anln1; + + /** + * 资产名称 + */ + private String zaatxt50; + + /** + * 功能范围 + */ + private String rfarea; + + /** + * 功能范围名称 + */ + private String fkbtx; + + /** + * 矿别 + */ + private String ktype; + + /** + * 是否是集成销售业务,如果有销售订单号,则认为是集成销售设置为x + */ + private String zzjcflag; + + /** + * 矿别名称 + */ + private String zkname; + + /** + * zzfld1 + */ + private String zzfld1; + + /** + * zzfld2 + */ + private String zzfld2; + + /** + * zzfld3 + */ + private String zzfld3; + + /** + * zzfld4 + */ + private String zzfld4; + + /** + * zzfld5 + */ + private String zzfld5; + + /** + * zzfld6 + */ + private String zzfld6; + + /** + * zzfld7 + */ + private String zzfld7; + + /** + * zzfld8 + */ + private String zzfld8; + + /** + * zzfld9 + */ + private String zzfld9; + + /** + * zzfld10 + */ + private String zzfld10; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQuery.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQuery.java new file mode 100644 index 00000000..cf5712ba --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQuery.java @@ -0,0 +1,79 @@ +package com.dxhy.core.entity.frJob; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("voucher_record_query") +public class VoucherRecordQuery { + + private static final long serialVersionUID = 1L; + + + /** + * id + */ + private String id; + + /** + * zq + */ + private String zq; + + /** + * xfdm + */ + private String xfdm; + + /** + * xfmc + */ + private String xfmc; + + /** + * kb + */ + private String kb; + + /** + * kjkmbh + */ + private String kjkmbh; + + /** + * 会计科目 + */ + private String kjkm; + + /** + * sl + */ + private String sl; + + /** + * 报账单号 + */ + private String bzdh; + + /** + * 会计凭证 + */ + private String kjpz; + + /** + * 发票税额 + */ + private String fpse; + + /** + * sap税额 + */ + private String sapse; + + /** + * 创建时间 + */ + private Date createTime; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQueryDetail.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQueryDetail.java new file mode 100644 index 00000000..ffe41bc4 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/VoucherRecordQueryDetail.java @@ -0,0 +1,92 @@ +package com.dxhy.core.entity.frJob; + +import lombok.Data; + +@Data +public class VoucherRecordQueryDetail { + private static final long serialVersionUID = 1L; + /** + * id + */ + private String id; + + /** + * uuid + */ + private String uuid; + + /** + * zq + */ + private String zq; + + /** + * xfdm + */ + private String xfdm; + + /** + * xfmc + */ + private String xfmc; + + /** + * kb + */ + private String kb; + + /** + * 报账单号 + */ + private String bzdh; + + /** + * 会计凭证 + */ + private String kjpz; + + /** + * 发票税额 + */ + private String fpse; + + /** + * 会计科目 + */ + private String kjkm; + + /** + * kjkmbh + */ + private String kjkmbh; + + /** + * sl + */ + private String sl; + + /** + * fpdm + */ + private String fpdm; + + /** + * fphm + */ + private String fphm; + + /** + * fplx + */ + private String fplx; + + /** + * fplxmc + */ + private String fplxmc; + + /** + * 创建时间 + */ + private String createTime; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java new file mode 100644 index 00000000..42891ecc --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java @@ -0,0 +1,19 @@ +package com.dxhy.core.service.frJob; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; + + +import java.text.ParseException; + +public interface QueryDetailDataService extends IService { + //插入进项数据 + void insertJxDataToQueryDetail(); + + //插入销项数据 + void insertXxDataToQueryDetail(); + + //插入主营业务收入数据 + void insertZyDataToQueryDetail(); + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java new file mode 100644 index 00000000..95e6409d --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java @@ -0,0 +1,98 @@ +package com.dxhy.core.service.frJob; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + + +import com.dxhy.core.dao.frTask.QueryDetailDataDao; +import com.dxhy.core.enmu.FplxEnmu; +import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; +import org.apache.commons.lang.ObjectUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Service("queryDetailDataService") +public class QueryDetailDataServiceImpl extends ServiceImpl + implements QueryDetailDataService { + + @Autowired + private QueryDetailDataDao queryDetailDataDao; + + private static final String JXZZS = "22210101"; + + private static final String XXZZS = "22210102"; + + private static final String ZYYWSR = "6001"; + + + @Override + public void insertJxDataToQueryDetail(){ + //1.查询时间 + String[] time = getTime(JXZZS); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecord(time[0], time[1],JXZZS); + //3.添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + this.saveOrUpdateBatch(dataFromRecordItems); + } + } + + @Override + public void insertXxDataToQueryDetail(){ + //1.查询时间 + String[] time = getTime(XXZZS); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecordXx(time[0], time[1],XXZZS); + //3.添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + this.saveOrUpdateBatch(dataFromRecordItems); + } + } + + @Override + public void insertZyDataToQueryDetail(){ + //1.查询时间 + String[] time = getTime(ZYYWSR); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecordJe(time[0], time[1],ZYYWSR); + //3添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + this.saveOrUpdateBatch(dataFromRecordItems); + } + } + + String[] getTime(String km){ + //1.获取增量数据开始时间 + Date beginTime = queryDetailDataDao.getBeginTime(km); + //2.第一次取原表时间 + if (beginTime == null){ + beginTime = queryDetailDataDao.getBeginTimefromRecord(); + } + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + //3.时间转换求结束日期 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(beginTime); + calendar.add(Calendar.DAY_OF_MONTH,-1); + //4.开始时间减一天 + String begin = format.format(calendar.getTime()); + //5.结束时间为现在加一天 + calendar.setTime(new Date()); + calendar.add(Calendar.DAY_OF_MONTH,1); + String end = format.format(calendar.getTime()); + + String[] time = {begin,end}; + return time; + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java new file mode 100644 index 00000000..34b82f79 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java @@ -0,0 +1,17 @@ +package com.dxhy.core.service.frJob; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dxhy.core.entity.frJob.VoucherRecordQuery; + +public interface RecordToQueryService extends IService{ + + void insertJxDataToQuery(); + + void insertXxDataToQuery(); + + void insertZyDataToQuery(); + + void insertOutDataToQuery(); + + void getDataForFr(); +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java new file mode 100644 index 00000000..3cfe436b --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -0,0 +1,188 @@ +package com.dxhy.core.service.frJob; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dxhy.core.dao.frTask.RecordToQueryDao; +import com.dxhy.core.enmu.KjkmTaxEnmu; +import com.dxhy.core.entity.frJob.FpTaxAmount; +import com.dxhy.core.entity.frJob.VoucherRecordQuery; +import jdk.nashorn.internal.ir.annotations.Reference; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("recordToQueryService") +public class RecordToQueryServiceImpl extends ServiceImpl implements RecordToQueryService { + + @Resource + private RecordToQueryDao recordToQueryDao; + + @Resource + private QueryDetailDataService queryDetailDataService; + + @Resource + private VoucherRecordItemService voucherRecordItemService; + + private final String JXZZS = "22210101"; + + private final String XXZZS = "22210102"; + + private final String ZYYWSR = "6001"; + + private final String JXSZC = "2221010900"; + + + + @Override + public void getDataForFr() { + //清洗sap错误税率 + voucherRecordItemService.refreshTax(); + + } + @Override + public void insertJxDataToQuery() { + + //1.获取时间 + String[] time = getTime(JXZZS); + + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v->{v.setSl(taxMap.get(v.getKjkmbh()));}); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size()>0){ + Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); + //7.添加税率 + voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); + } + //8.保存或更新 + this.saveOrUpdateBatch(voucherRecordQuerys); + + } + } + + @Override + public void insertXxDataToQuery() { + //1.获取时间 + String[] time = getTime(XXZZS); + + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v -> { + v.setSl(taxMap.get(v.getKjkmbh())); + }); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); + + //7.添加税率 + voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); + } + + //8.保存或更新 + this.saveOrUpdateBatch(voucherRecordQuerys); + } + } + + @Override + public void insertZyDataToQuery() { + //1.获取时间 + String[] time = getTime(ZYYWSR); + + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + + //3.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //4.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpje)); + + //5.添加税率 + voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); + } + + //6.保存或更新 + this.saveOrUpdateBatch(voucherRecordQuerys); + } + } + + @Override + public void insertOutDataToQuery() { + //获取时间 + String[] time = this.getTime(JXSZC); + //查询数据 + List dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); + + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + + this.saveOrUpdateBatch(dataFromRecordItems); + + } + + } + + String[] getTime(String km){ + //1.获取增量数据对应时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + Date beginTime = recordToQueryDao.getBeginTime(km); + + //第一次数据为空 + if (beginTime == null){ + beginTime = recordToQueryDao.getBeginTimefromRecord(); + } + Calendar cal = Calendar.getInstance(); + + cal.setTime(beginTime); + cal.add(Calendar.DAY_OF_MONTH,-1); + + String start = sdf.format(cal.getTime()); + //结束日期设置为明天 + cal.setTime(new Date()); + cal.add(Calendar.DAY_OF_MONTH,1); + String end = sdf.format(cal.getTime()); + + String[] time = {start,end}; + return time; + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java new file mode 100644 index 00000000..a28c277f --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java @@ -0,0 +1,8 @@ +package com.dxhy.core.service.frJob; + +import java.text.ParseException; + +public interface VoucherRecordItemService { + + void refreshTax(); +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java new file mode 100644 index 00000000..6c9548c0 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java @@ -0,0 +1,75 @@ +package com.dxhy.core.service.frJob; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dxhy.core.dao.frTask.QueryDetailDataDao; +import com.dxhy.core.dao.frTask.VoucherRecordItemDao; +import com.dxhy.core.enmu.KjkmTaxEnmu; +import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service("voucherRecordItemService") +public class VoucherRecordItemServiceImpl extends ServiceImpl implements VoucherRecordItemService { + + @Autowired + private VoucherRecordItemDao voucherRecordItemDao; + + @Autowired + private QueryDetailDataDao queryDetailDataDao; + + private static final String JXZZS = "22210101"; + + private static final String XXZZS = "22210102"; + + + @Override + public void refreshTax(){ + String[] jxTime = getTime(JXZZS); + //查询进项数据 + List jxVoucherRecordItems = voucherRecordItemDao.getByTime(jxTime[0], jxTime[1], JXZZS); + //税率枚举 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + if (jxVoucherRecordItems != null && jxVoucherRecordItems.size() != 0){ + jxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); + this.updateBatchById(jxVoucherRecordItems); + } + String[] xxTime = getTime(XXZZS); + //查询销项数据 + List xxVoucherRecordItems = voucherRecordItemDao.getByTime(xxTime[0], xxTime[1], XXZZS); + if (xxVoucherRecordItems != null && xxVoucherRecordItems.size() != 0){ + xxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); + this.updateBatchById(xxVoucherRecordItems); + } + + } + + String[] getTime(String km){ + //1.获取增量数据开始时间 + Date beginTime = queryDetailDataDao.getBeginTime(km); + //2.第一次取原表时间 + if (beginTime == null){ + beginTime = queryDetailDataDao.getBeginTimefromRecord(); + } + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + //3.时间转换求结束日期 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(beginTime); + calendar.add(Calendar.DAY_OF_MONTH,-1); + //4.开始时间减一天 + String begin = format.format(calendar.getTime()); + //5.结束时间为现在加一天 + calendar.setTime(new Date()); + calendar.add(Calendar.DAY_OF_MONTH,1); + String end = format.format(calendar.getTime()); + + String[] time = {begin,end}; + return time; + } +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java new file mode 100644 index 00000000..bce76918 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java @@ -0,0 +1,44 @@ +package com.dxhy.core.task; + +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; +import com.dxhy.core.job.entity.ScheduleJobEntity; +import com.dxhy.core.job.service.ScheduleJobService; +import com.dxhy.core.service.frJob.RecordToQueryService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component("frDataTask") +@Slf4j +public class FrDataTask { + @Resource + private ScheduleJobService scheduleJobService; + @Resource + private RecordToQueryService recordToQueryService; + + public void frIncrementData() { + log.info("帆软抽取增量数据定时任务开始--"); + DynamicContextHolder.push(DbConstant.BASICS_READ); + ScheduleJobEntity scheduleJobEntity = scheduleJobService.queryByBeanName("frDataTask", "frIncrementData"); + if (scheduleJobEntity != null && "0".equals(scheduleJobEntity.getJobStatus())) { + try { + scheduleJobEntity.setJobStatus("1"); + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + scheduleJobService.updateById(scheduleJobEntity); + recordToQueryService.getDataForFr(); + log.info("帆软抽取增量数据定时任务结束--"); + } catch (Exception e) { + e.printStackTrace(); + log.error("帆软定时任务异常信息{}",e.getMessage()); + } finally { + log.info("帆软抽取增量数据定时--重置执行状态"); + scheduleJobEntity.setJobStatus("0"); + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + scheduleJobService.updateById(scheduleJobEntity); + } + } + } + +} diff --git a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml new file mode 100644 index 00000000..74d38a5f --- /dev/null +++ b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert IGNORE into voucher_record_query_item( `id`, `uuid`, `bzdh`, `kjpz`, `fpdm`, `fphm`, `fplx`, + `fpje`, `fpse`, `createTime`) values + + (#{voucherRecordQueryItem.id},#{voucherRecordQueryItem.uuid},#{voucherRecordQueryItem.bzdh}, + #{voucherRecordQueryItem.kjpz},#{voucherRecordQueryItem.fpdm},#{voucherRecordQueryItem.fphm}, + #{voucherRecordQueryItem.fplx},#{voucherRecordQueryItem.fpje},#{voucherRecordQueryItem.createTimev}) + + + + + + + + diff --git a/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml new file mode 100644 index 00000000..434d88f8 --- /dev/null +++ b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert IGNORE into voucher_record_query( `id`, `zq`, `xfdm`, `xfmc`, `kb`, `kjkmbh`, `kjkm`, + `sapje`, `gysmc`, `gysdm`, `pzh` ,`gfmc`,`gsdm`,`bzdh`,`create_time`) values + + (#{voucherRecordQuery.id},#{voucherRecordQuery.zq},#{voucherRecordQuery.xfdm},#{voucherRecordQuery.xfmc}, + #{voucherRecordQuery.kb},#{voucherRecordQuery.kjkmbh},#{voucherRecordQuery.kjkm},#{voucherRecordQuery.sapje}, + #{voucherRecordQuery.gysmc},#{voucherRecordQuery.gysdm},#{voucherRecordQuery.pzh},#{voucherRecordQuery.gfmc}, + #{voucherRecordQuery.gsdm},#{voucherRecordQuery.bzdh},#{voucherRecordQuery.create_time}) + + + + + + + + + + + diff --git a/dxhy-core/src/main/resources/mapper/frJob/VoucherRecordItemDao.xml b/dxhy-core/src/main/resources/mapper/frJob/VoucherRecordItemDao.xml new file mode 100644 index 00000000..4abe76ce --- /dev/null +++ b/dxhy-core/src/main/resources/mapper/frJob/VoucherRecordItemDao.xml @@ -0,0 +1,20 @@ + + + + + + + + + + From bef3462aeb922bf4c8794354822feab1c50eae6b 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, 14 Sep 2023 14:27:44 +0800 Subject: [PATCH 16/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java index f678621b..c9ae4164 100644 --- a/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java +++ b/dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java @@ -326,6 +326,7 @@ public class SysUserServiceImpl extends ServiceImpl i } //获取组织编码 List companyEntitys = sysUserOrgService.getOrgsByUserId(userEntity.getUserId()); + List emailCodes = new ArrayList<>(); if (companyEntitys != null && companyEntitys.size() > 0) { for (SysCompanyEntity companyEntity : companyEntitys) { if (companyEntity != null) { @@ -339,6 +340,8 @@ public class SysUserServiceImpl extends ServiceImpl i // company.setCompanyName("()暂无组织编码发票"); // company.setCompanyCode("88"); // companyEntitys.add(company); + List collect = companyEntitys.stream().filter(e -> StringUtils.isNotBlank(e.getGfsh())).collect(Collectors.toList()); + emailCodes = JSON.parseArray(JSON.toJSONString(collect), SysCompanyEntity.class); } user = this.toUser(user, userEntity); @@ -349,7 +352,7 @@ public class SysUserServiceImpl extends ServiceImpl i user.setUserModels(this.getUserCompanyList(userEntity.getCompany())); // 刷新菜单缓存处理 this.setMetnuRedis(userEntity.getUserId()); - user.setEmailCodes(sysUserOrgService.getEmailOrgsByUserId(userEntity.getUserId())); + user.setEmailCodes(emailCodes); } catch (Exception e) { e.printStackTrace(); } From 2754c94849593ad64294dc8da20f806f11e7d983 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, 14 Sep 2023 15:10:54 +0800 Subject: [PATCH 17/46] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/frJob/QueryDetailDataService.java | 2 + .../frJob/QueryDetailDataServiceImpl.java | 3 +- .../frJob/RecordToQueryServiceImpl.java | 34 ++++++++- .../frJob/VoucherRecordItemService.java | 2 +- .../frJob/VoucherRecordItemServiceImpl.java | 76 +++++++------------ 5 files changed, 64 insertions(+), 53 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java index 42891ecc..61a5c9b1 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java @@ -16,4 +16,6 @@ public interface QueryDetailDataService extends IService voucherRecordQuerys = + recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v->{v.setSl(taxMap.get(v.getKjkmbh()));}); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size()>0){ + Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); + //7.添加税率 + voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); + } + //8.保存或更新 + this.saveOrUpdateBatch(voucherRecordQuerys); + + } } @Override @@ -75,7 +101,7 @@ public class RecordToQueryServiceImpl extends ServiceImplv.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); } //8.保存或更新 - this.saveOrUpdateBatch(voucherRecordQuerys); + boolean b = this.saveOrUpdateBatch(voucherRecordQuerys); } } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java index a28c277f..01bcdeb9 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemService.java @@ -4,5 +4,5 @@ import java.text.ParseException; public interface VoucherRecordItemService { - void refreshTax(); + boolean refreshTax(); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java index 6c9548c0..9a3d1390 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java @@ -1,14 +1,12 @@ package com.dxhy.core.service.frJob; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dxhy.core.dao.frTask.QueryDetailDataDao; import com.dxhy.core.dao.frTask.VoucherRecordItemDao; import com.dxhy.core.enmu.KjkmTaxEnmu; import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.text.ParseException; +import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; @@ -16,60 +14,44 @@ import java.util.List; import java.util.Map; @Service("voucherRecordItemService") +@Slf4j public class VoucherRecordItemServiceImpl extends ServiceImpl implements VoucherRecordItemService { - @Autowired + @Resource private VoucherRecordItemDao voucherRecordItemDao; - @Autowired - private QueryDetailDataDao queryDetailDataDao; - + @Resource + private QueryDetailDataService queryDetailDataService; private static final String JXZZS = "22210101"; private static final String XXZZS = "22210102"; @Override - public void refreshTax(){ - String[] jxTime = getTime(JXZZS); - //查询进项数据 - List jxVoucherRecordItems = voucherRecordItemDao.getByTime(jxTime[0], jxTime[1], JXZZS); - //税率枚举 - Map taxMap = KjkmTaxEnmu.getTaxMap(); - if (jxVoucherRecordItems != null && jxVoucherRecordItems.size() != 0){ - jxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); - this.updateBatchById(jxVoucherRecordItems); - } - String[] xxTime = getTime(XXZZS); - //查询销项数据 - List xxVoucherRecordItems = voucherRecordItemDao.getByTime(xxTime[0], xxTime[1], XXZZS); - if (xxVoucherRecordItems != null && xxVoucherRecordItems.size() != 0){ - xxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); - this.updateBatchById(xxVoucherRecordItems); - } - - } - - String[] getTime(String km){ - //1.获取增量数据开始时间 - Date beginTime = queryDetailDataDao.getBeginTime(km); - //2.第一次取原表时间 - if (beginTime == null){ - beginTime = queryDetailDataDao.getBeginTimefromRecord(); + public boolean refreshTax(){ + try { + String[] jxTime = queryDetailDataService.getTime(JXZZS); + //查询进项数据 + List jxVoucherRecordItems = voucherRecordItemDao.getByTime(jxTime[0], jxTime[1], JXZZS); + //税率枚举 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + if (jxVoucherRecordItems != null && jxVoucherRecordItems.size() != 0){ + jxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); + this.updateBatchById(jxVoucherRecordItems); + } + String[] xxTime = queryDetailDataService.getTime(XXZZS); + //查询销项数据 + List xxVoucherRecordItems = voucherRecordItemDao.getByTime(xxTime[0], xxTime[1], XXZZS); + if (xxVoucherRecordItems != null && xxVoucherRecordItems.size() != 0){ + xxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); + this.updateBatchById(xxVoucherRecordItems); + } + }catch (Exception e){ + e.printStackTrace(); + log.error("税率刷新时错误信息为{}",e.getMessage()); + return false; } - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //3.时间转换求结束日期 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(beginTime); - calendar.add(Calendar.DAY_OF_MONTH,-1); - //4.开始时间减一天 - String begin = format.format(calendar.getTime()); - //5.结束时间为现在加一天 - calendar.setTime(new Date()); - calendar.add(Calendar.DAY_OF_MONTH,1); - String end = format.format(calendar.getTime()); - String[] time = {begin,end}; - return time; + return true; } } From 959d80412b7fe189f4f180fdf6a444471b2e00f6 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, 14 Sep 2023 15:32:08 +0800 Subject: [PATCH 18/46] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E6=97=B6=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/controller/mailGather/EmailMaintainController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java index 5be951a3..071e8352 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java @@ -67,7 +67,7 @@ public class EmailMaintainController extends AbstractController { // } Object deptId = pramsMap.get("deptId"); if(deptId == null || "".equals(String.valueOf(deptId))){ - return ResponseEntity.ok(R.error("查询参数有误!")); + return ResponseEntity.ok(R.error("该组织未配置税号,请先联系管理员")); } if("99".equals(String.valueOf(deptId))){ pramsMap.put("deptId",""); @@ -141,6 +141,10 @@ public class EmailMaintainController extends AbstractController { data.put("data", ""); return ResponseEntity.ok(data); } + int count = emailMaintainService.selectByEmail(emailMaintain.getEmailAddress()); + if(count>0){ + return ResponseEntity.ok(R.error("邮箱地址已存在!")); + } boolean b = emailMaintainService.update(emailMaintain); if(b){ From 0a2c2fb96c07689be0fb3ba03ec61d36da594aac 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, 14 Sep 2023 16:02:51 +0800 Subject: [PATCH 19/46] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/frJob/RecordToQueryService.java | 9 +--- .../frJob/RecordToQueryServiceImpl.java | 44 ++++--------------- 2 files changed, 10 insertions(+), 43 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java index 34b82f79..e801fc44 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java @@ -5,13 +5,6 @@ import com.dxhy.core.entity.frJob.VoucherRecordQuery; public interface RecordToQueryService extends IService{ - void insertJxDataToQuery(); - - void insertXxDataToQuery(); - - void insertZyDataToQuery(); - - void insertOutDataToQuery(); - void getDataForFr(); + } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java index ece41196..3d7a69bd 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -40,41 +40,16 @@ public class RecordToQueryServiceImpl extends ServiceImpl voucherRecordQuerys = - recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); - - if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ - //3.查询税率 - Map taxMap = KjkmTaxEnmu.getTaxMap(); - //4.清洗税率 - voucherRecordQuerys.forEach(v->{v.setSl(taxMap.get(v.getKjkmbh()));}); - - //5.报账单号去重 - List bzdhs - = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) - .distinct().collect(Collectors.toList()); - - //6.根据报账单号获取发票税额 - List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); - if (taxAmounts != null && taxAmounts.size()>0){ - Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); - //7.添加税率 - voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); - } - //8.保存或更新 - this.saveOrUpdateBatch(voucherRecordQuerys); - + boolean b = voucherRecordItemService.refreshTax(); + if (!b){ + throw new RuntimeException("刷新sap传送数据税率失败"); } + } - @Override - public void insertJxDataToQuery() { + public boolean insertJxDataToQuery() { + boolean flag = false; //1.获取时间 String[] time = getTime(JXZZS); @@ -101,12 +76,12 @@ public class RecordToQueryServiceImpl extends ServiceImplv.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); } //8.保存或更新 - boolean b = this.saveOrUpdateBatch(voucherRecordQuerys); + flag = this.saveOrUpdateBatch(voucherRecordQuerys); } + return flag; } - @Override public void insertXxDataToQuery() { //1.获取时间 String[] time = getTime(XXZZS); @@ -142,7 +117,6 @@ public class RecordToQueryServiceImpl extends ServiceImpl Date: Thu, 14 Sep 2023 17:03:18 +0800 Subject: [PATCH 20/46] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/controller/mailGather/EmailMaintainController.java | 2 +- .../java/com/dxhy/core/dao/mailGather/EmailMaintainDao.java | 1 + .../dxhy/core/service/mailGather/EmailMaintainService.java | 2 ++ .../service/mailGather/impl/EmailMaintainServiceImpl.java | 5 +++++ .../resources/mapper/mailGather/EmailMaintainMapper.xml | 6 ++++++ .../resources/mapper/mailGather/MailGatherLogMapper.xml | 3 +++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java index 071e8352..9f7661e9 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java @@ -141,7 +141,7 @@ public class EmailMaintainController extends AbstractController { data.put("data", ""); return ResponseEntity.ok(data); } - int count = emailMaintainService.selectByEmail(emailMaintain.getEmailAddress()); + int count = emailMaintainService.selectByEmailAddressAndId(emailMaintain); if(count>0){ return ResponseEntity.ok(R.error("邮箱地址已存在!")); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/mailGather/EmailMaintainDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/mailGather/EmailMaintainDao.java index 4f58914a..5a55c27f 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/dao/mailGather/EmailMaintainDao.java +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/mailGather/EmailMaintainDao.java @@ -90,4 +90,5 @@ public interface EmailMaintainDao extends BaseMapper { String getUserName(@Param("userCode") String userCode); String getUserByUsername(@Param("username") String username); + int selectEmailWithId(@Param("email") EmailMaintainVo emailMaintainVo); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/EmailMaintainService.java b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/EmailMaintainService.java index 9db4ec0f..2457d882 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/EmailMaintainService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/EmailMaintainService.java @@ -56,4 +56,6 @@ public interface EmailMaintainService { int selectByEmail(String email); EmailMaintainVo getEmailMaintainVo(EmailMaintainVo emailMaintain); + + int selectByEmailAddressAndId(EmailMaintainVo emailMaintainVo); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java index 4c1a166e..96e69b24 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java @@ -144,6 +144,11 @@ public class EmailMaintainServiceImpl implements EmailMaintainService { return emailMaintainDao.getEmailMaintainVo(emailMaintain); } + @Override + public int selectByEmailAddressAndId(EmailMaintainVo emailMaintainVo) { + return emailMaintainDao.selectEmailWithId(emailMaintainVo); + } + //根据用户名进行查询 public void getdeptInfo(String deptId){ DynamicContextHolder.push(DbConstant.BASICS_READ); diff --git a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml index 19eaa752..f7ba5c48 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml @@ -176,5 +176,11 @@ select count(1) from email_maintain where email_address = #{email} + diff --git a/dxhy-core/src/main/resources/mapper/mailGather/MailGatherLogMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/MailGatherLogMapper.xml index eb3bf18f..b6657704 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/MailGatherLogMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/MailGatherLogMapper.xml @@ -34,6 +34,9 @@ mail_gather_log m LEFT JOIN email_maintain e ON m.from_address = e.email_address + + and e.company_code = #{companyCode} + and e.dept_id = #{deptId} From 46e5131ef8d1261b3495442f5db5164851e4c5e4 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, 14 Sep 2023 17:52:14 +0800 Subject: [PATCH 21/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/core/task/SnEmailGatherTask.java | 221 +++++++++++------- 1 file changed, 133 insertions(+), 88 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 3e5f7d77..43c87c1e 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -102,6 +102,7 @@ public class SnEmailGatherTask { public void parseEmail(EmailMaintainVo maintainVo){ log.info("邮箱采集内部方法开始执行--"); log.info("解析用户"+maintainVo.getUsername()+"邮箱"); + log.info("邮箱:{}密码:{}",maintainVo.getEmailAddress(),maintainVo.getEmailPassword()); long startTime = System.currentTimeMillis(); String password = Base64Decoder.decodeStr(maintainVo.getEmailPassword()); String emailName = maintainVo.getEmailAddress(); @@ -369,7 +370,51 @@ public class SnEmailGatherTask { return store; } - public static void main(String[] args) { + public static void main3(String[] args){ + //判断是否为QQ还是163 + //邮件接收协议 + String emailName = "1149953701@qq.com"; + String password = "pmdzleyabmlzgdhc"; + String mail_protocol = "mail.store.protocol"; + //邮件接收协议类型 + String mail_protocol_type2 = "pop3"; + String mail_protocol_type = "pop"; + //邮件接收服务器端口 + String mail_port = "mail.pop3.port"; + //邮件接收服务器端口 + String port = "110"; + //邮件接收服务器地址 + String mail_host = "mail.pop3.host"; + String mailSuffix = emailName.split("@")[1]; + //邮箱类型 + String mailType = mailSuffix.split("\\.")[0]; + Properties props = new Properties(); + if(mailType.equalsIgnoreCase("qq")){ + //qq邮箱 + props.setProperty(mail_protocol, mail_protocol_type2); // 协议 + props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + }else { + props.setProperty(mail_protocol, mail_protocol_type); // 协议 + props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + } + Session session = Session.getInstance(props); + Store store = null; + try { + store = session.getStore("pop3"); + store.connect(emailName, password); + } catch (Exception e) { + try { + store.close(); + } catch (MessagingException ex) { + throw new RuntimeException(ex); + } + store = null; + } + } + + public static void main1(String[] args) { EmailMaintainVo maintainVo = new EmailMaintainVo(); maintainVo.setCompanyCode("9250"); maintainVo.setEmailAddress("1191093413@qq.com"); @@ -782,91 +827,91 @@ public class SnEmailGatherTask { } } -// public static void main(String[] args) { -// //邮件接收协议 -// String mail_protocol = "mail.store.protocol"; -// //邮件接收协议类型 -// String mail_protocol_type2 = "pop3"; -// String mail_protocol_type = "pop"; -// //邮件接收服务器端口 -// String mail_port = "mail.pop3.port"; -// //邮件接收服务器端口 -// String port = "110"; -// //邮件接收服务器地址 -// String mail_host = "mail.pop3.host"; -// String emailName = "1149953701@qq.com"; -// String password = "pmdzleyabmlzgdhc"; -// String mailSuffix = emailName.split("@")[1]; -// //邮箱类型 -// String mailType = mailSuffix.split("\\.")[0]; -// Properties props = new Properties(); -// if(mailType.equalsIgnoreCase("qq")){ -// //qq邮箱 -// props.setProperty(mail_protocol, mail_protocol_type2); // 协议 -// props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 -// props.setProperty(mail_port, port); // 端口 -// }else { -// props.setProperty(mail_protocol, mail_protocol_type2); // 协议 -// props.setProperty(mail_host, mail_protocol_type2+"."+mailSuffix); // pop3服务器 -// props.setProperty(mail_port, port); // 端口 -// } -// Session session = Session.getInstance(props); -// Store store = null; -// try { -// store = session.getStore("pop3"); -// store.connect(emailName, password); -// //连接邮箱服务器 -// //获取当前时间 -// Date currentTime = new Date(); -// // 获得收件箱 pop3协议只有一个有效的文件夹就是INBOX -// Folder folder = store.getFolder("INBOX"); -// //获取邮件列表 -// folder.open(Folder.READ_WRITE); -// // 由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数 -// System.out.println("未读邮件数: " + folder.getUnreadMessageCount()); -// // 由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0 -// System.out.println("删除邮件数: " + folder.getDeletedMessageCount()); -// System.out.println("新邮件: " + folder.getNewMessageCount()); -// // 获得收件箱中的邮件总数 -// System.out.println("邮件总数: " + folder.getMessageCount()); -// Message[] messages = folder.getMessages(); -// for (int i = 0, count = messages.length; i < count; i++) { -// MimeMessage msg = (MimeMessage) messages[i]; -// System.out.println("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); -// System.out.println("主题: " + EmailParseUtils.getSubject(msg)); -// System.out.println("发件人: " + EmailParseUtils.getFrom(msg)); -// System.out.println("收件人:" + EmailParseUtils.getReceiveAddress(msg, null)); -// System.out.println("发送时间:" + EmailParseUtils.getSentDate(msg, null)); -// System.out.println("是否已读:" + EmailParseUtils.isSeen(msg)); -// System.out.println("邮件优先级:" + EmailParseUtils.getPriority(msg)); -// System.out.println("是否需要回执:" + EmailParseUtils.isReplySign(msg)); -// System.out.println("邮件大小:" + msg.getSize() * 1024 + "kb"); -// boolean isContainerAttachment = EmailParseUtils.isContainAttachment(msg); -// POP3Folder inbox = (POP3Folder) folder; -// String uid = inbox.getUID(msg); -// System.out.println("uid: ------------------" + uid); -// Flags flags = msg.getFlags(); -// if (!flags.contains(Flags.Flag.SEEN)) { -// //设置为已读 -// msg.setFlag(Flags.Flag.SEEN, true); -// } -// System.out.println(""); -// } -// System.out.println(""); -// Date endTime = new Date(); -// //计算耗时时间 -//// double elapsedTime = CalendarUtil.arithDateTime(endTime, currentTime); -// // 释放资源 -// folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 -// store.close(); -// } catch (NoSuchProviderException e) { -// throw new RuntimeException(e); -// } catch (MessagingException e) { -// throw new RuntimeException(e); -// } catch (UnsupportedEncodingException e) { -// throw new RuntimeException(e); -// } catch (IOException e) { -// throw new RuntimeException(e); -// } -// } + public static void main(String[] args) { + //邮件接收协议 + String mail_protocol = "mail.store.protocol"; + //邮件接收协议类型 + String mail_protocol_type2 = "pop3"; + String mail_protocol_type = "pop"; + //邮件接收服务器端口 + String mail_port = "mail.pop3.port"; + //邮件接收服务器端口 + String port = "110"; + //邮件接收服务器地址 + String mail_host = "mail.pop3.host"; + String emailName = "1149953701@qq.com"; + String password = "pmdzleyabmlzgdhc"; + String mailSuffix = emailName.split("@")[1]; + //邮箱类型 + String mailType = mailSuffix.split("\\.")[0]; + Properties props = new Properties(); + if(mailType.equalsIgnoreCase("qq")){ + //qq邮箱 + props.setProperty(mail_protocol, mail_protocol_type2); // 协议 + props.setProperty(mail_host, mail_protocol_type+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + }else { + props.setProperty(mail_protocol, mail_protocol_type2); // 协议 + props.setProperty(mail_host, mail_protocol_type2+"."+mailSuffix); // pop3服务器 + props.setProperty(mail_port, port); // 端口 + } + Session session = Session.getInstance(props); + Store store = null; + try { + store = session.getStore("pop3"); + store.connect(emailName, password); + //连接邮箱服务器 + //获取当前时间 + Date currentTime = new Date(); + // 获得收件箱 pop3协议只有一个有效的文件夹就是INBOX + Folder folder = store.getFolder("INBOX"); + //获取邮件列表 + folder.open(Folder.READ_WRITE); + // 由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数 + System.out.println("未读邮件数: " + folder.getUnreadMessageCount()); + // 由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0 + System.out.println("删除邮件数: " + folder.getDeletedMessageCount()); + System.out.println("新邮件: " + folder.getNewMessageCount()); + // 获得收件箱中的邮件总数 + System.out.println("邮件总数: " + folder.getMessageCount()); + Message[] messages = folder.getMessages(); + for (int i = 0, count = messages.length; i < count; i++) { + MimeMessage msg = (MimeMessage) messages[i]; + System.out.println("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- "); + System.out.println("主题: " + EmailParseUtils.getSubject(msg)); + System.out.println("发件人: " + EmailParseUtils.getFrom(msg)); + System.out.println("收件人:" + EmailParseUtils.getReceiveAddress(msg, null)); + System.out.println("发送时间:" + EmailParseUtils.getSentDate(msg, null)); + System.out.println("是否已读:" + EmailParseUtils.isSeen(msg)); + System.out.println("邮件优先级:" + EmailParseUtils.getPriority(msg)); + System.out.println("是否需要回执:" + EmailParseUtils.isReplySign(msg)); + System.out.println("邮件大小:" + msg.getSize() * 1024 + "kb"); + boolean isContainerAttachment = EmailParseUtils.isContainAttachment(msg); + POP3Folder inbox = (POP3Folder) folder; + String uid = inbox.getUID(msg); + System.out.println("uid: ------------------" + uid); + Flags flags = msg.getFlags(); + if (!flags.contains(Flags.Flag.SEEN)) { + //设置为已读 + msg.setFlag(Flags.Flag.SEEN, true); + } + System.out.println(""); + } + System.out.println(""); + Date endTime = new Date(); + //计算耗时时间 +// double elapsedTime = CalendarUtil.arithDateTime(endTime, currentTime); + // 释放资源 + folder.close(false); // false为不更新邮件,true为更新,一般在删除邮件后使用 + store.close(); + } catch (NoSuchProviderException e) { + throw new RuntimeException(e); + } catch (MessagingException e) { + throw new RuntimeException(e); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } From 83431c821c7c28dc45edbb7ef9ac397b190b824f 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, 14 Sep 2023 18:56:43 +0800 Subject: [PATCH 22/46] =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frJob/RecordToQueryServiceImpl.java | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java index 3d7a69bd..abbdaec4 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -6,6 +6,7 @@ import com.dxhy.core.dao.frTask.RecordToQueryDao; import com.dxhy.core.enmu.KjkmTaxEnmu; import com.dxhy.core.entity.frJob.FpTaxAmount; import com.dxhy.core.entity.frJob.VoucherRecordQuery; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -40,13 +41,27 @@ public class RecordToQueryServiceImpl extends ServiceImpl Date: Thu, 14 Sep 2023 18:57:56 +0800 Subject: [PATCH 23/46] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dxhy/core/service/frJob/RecordToQueryServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java index abbdaec4..887c513b 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -61,7 +61,7 @@ public class RecordToQueryServiceImpl extends ServiceImpl Date: Fri, 15 Sep 2023 09:29:03 +0800 Subject: [PATCH 24/46] =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dxhy/core/service/frJob/QueryDetailDataServiceImpl.java | 6 ++++++ .../dxhy/core/service/frJob/RecordToQueryServiceImpl.java | 6 ++++++ .../core/service/frJob/VoucherRecordItemServiceImpl.java | 3 +++ .../src/main/resources/mapper/frJob/QueryDetailDataDao.xml | 3 +++ .../src/main/resources/mapper/frJob/RecordToQueryDao.xml | 2 ++ 5 files changed, 20 insertions(+) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java index d531d038..9bfd8996 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java @@ -3,6 +3,8 @@ package com.dxhy.core.service.frJob; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.core.dao.frTask.QueryDetailDataDao; import com.dxhy.core.enmu.FplxEnmu; import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; @@ -33,6 +35,7 @@ public class QueryDetailDataServiceImpl extends ServiceImpl dataFromRecordItems = queryDetailDataDao.getDataFromRecord(time[0], time[1],JXZZS); @@ -47,6 +50,7 @@ public class QueryDetailDataServiceImpl extends ServiceImpl dataFromRecordItems = queryDetailDataDao.getDataFromRecordXx(time[0], time[1],XXZZS); @@ -61,6 +65,7 @@ public class QueryDetailDataServiceImpl extends ServiceImpl dataFromRecordItems = queryDetailDataDao.getDataFromRecordJe(time[0], time[1],ZYYWSR); @@ -75,6 +80,7 @@ public class QueryDetailDataServiceImpl extends ServiceImpl dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java index 9a3d1390..398cf43d 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/VoucherRecordItemServiceImpl.java @@ -1,6 +1,8 @@ package com.dxhy.core.service.frJob; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.core.dao.frTask.VoucherRecordItemDao; import com.dxhy.core.enmu.KjkmTaxEnmu; import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; @@ -30,6 +32,7 @@ public class VoucherRecordItemServiceImpl extends ServiceImpl jxVoucherRecordItems = voucherRecordItemDao.getByTime(jxTime[0], jxTime[1], JXZZS); diff --git a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml index 74d38a5f..3cbd9faf 100644 --- a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml +++ b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml @@ -60,6 +60,7 @@ on i.relation_id = r.id where i.racct like CONCAT(#{kjkmbh},'%') and r.create_time between #{beginTime} and #{endTime} + and r.zbzdh != '' group by r.zbzdh,i.racct ) v on t.bzdh = v.zbzdh where d.tax_rate = v.sl @@ -130,6 +131,7 @@ on i.relation_id = r.id where i.racct like CONCAT(#{kjkmbh},'%') and r.create_time between #{beginTime} and #{endTime} + and r.zbzdh != '' group by r.zbzdh,i.racct ) v on t.bzdh = v.zbzdh where d.tax_rate = v.sl @@ -176,6 +178,7 @@ on i.relation_id = r.id where i.racct like CONCAT(#{kjkmbh},'%') and r.create_time between #{beginTime} and #{endTime} + and r.zbzdh != '' group by r.zbzdh,i.racct ) v on t.bzdh = v.zbzdh where d.tax_rate = v.sl diff --git a/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml index 434d88f8..4e65e378 100644 --- a/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml +++ b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml @@ -37,6 +37,7 @@ ON v.id = i.relation_id where i.racct like CONCAT(#{kjkmbh},'%') and DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} + and v.zbzdh != '' group by v.zbzdh,i.racct @@ -96,6 +97,7 @@ ON v.id = i.relation_id where i.racct like CONCAT(#{kjkmbh},'%') and DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} + and v.zbzdh != '' group by v.zbzdh,i.racct From cc85aa46c981e80abbc3400a3b5b51b235d1754c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Fri, 15 Sep 2023 09:53:22 +0800 Subject: [PATCH 25/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java | 2 +- dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java index 20ef4c5b..0b43b17d 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -54,7 +54,7 @@ public class RecordToQueryServiceImpl extends ServiceImpl From fb986f0a2950272cb0d7abd8461b8b94b28f9c47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Fri, 15 Sep 2023 14:43:14 +0800 Subject: [PATCH 27/46] =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/InterfaceController.java | 13 ++++++++++++- .../service/impl/ReceiptOutServiceImpl.java | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 064eeb3d..7b2ccb4f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1464,7 +1464,18 @@ public class InterfaceController extends AbstractController { es.setZMESSAGE("操作成功"); log.info("进项税转出成功"); return JsonUtils.getInstance().toJsonString(es); - }catch (Exception e){ + }catch(RuntimeException e){ + e.printStackTrace(); + log.error("error", e.getMessage()); + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); + es.setZTYPE("E"); + es.setZMESSAGE(e.getMessage()); + outPut.setES_OUTPUT(es); + return JsonUtils.getInstance().toJsonString(outPut); + } catch (Exception e){ e.printStackTrace(); log.error("error", e.getMessage()); OutPut outPut = new OutPut(); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java index 685657cc..1552fcd1 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java @@ -19,6 +19,7 @@ import com.dxhy.erp.service.BaseIReceiptInvoiceService; import com.dxhy.erp.service.IReceiptOutService; import com.dxhy.erp.utils.JsonUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -152,10 +153,19 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl0){ + throw new RuntimeException("累计转出税额不能大于发票税额"); + } // 转出金额 condRecord.setOutInvoiceAmout(record.getInvoiceAmount()); // 转出税额 condRecord.setOutTaxAmount(record.getDkTaxAmount()); + if (condRecord.getOutTaxAmount() == null){ + condRecord.setOutTaxAmount(new BigDecimal(condVO.getOutTax())); + } + if (condRecord.getOutTaxAmount().compareTo(record.getTaxAmount()) > 0){ + throw new RuntimeException("转出税额不能大于发票税额"); + } } /*部分转出 */ if (JxszcZtEnum.BFZC.getZcztDm().equals(condVO.getOutStatus())) { @@ -221,10 +231,19 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl0){ + throw new RuntimeException("累计转出税额不能大于发票税额"); + } // 转出金额 record.setOutInvoiceAmout(invoice.getInvoiceAmount()); // 转出税额 record.setOutTaxAmount(invoice.getDkTaxAmount()); + if (record.getOutTaxAmount() == null){ + record.setOutTaxAmount(new BigDecimal(condVO.getOutTax())); + } + if (record.getOutTaxAmount().compareTo(invoice.getTaxAmount()) > 0){ + throw new RuntimeException("转出税额不能大于发票税额"); + } } /* 部分转出 */ if (JxszcZtEnum.BFZC.getZcztDm().equals(condVO.getOutStatus())) { From d0f49ff19bd0b45c9326cb1eb8a390dee36e1bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 18 Sep 2023 13:45:59 +0800 Subject: [PATCH 28/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 43c87c1e..387a437f 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -360,6 +360,8 @@ public class SnEmailGatherTask { store = session.getStore("pop3"); store.connect(emailName, password); } catch (Exception e) { + e.printStackTrace(); + log.error("连接邮箱异常信息{}",e.getMessage()); try { store.close(); } catch (MessagingException ex) { From 9b7d664675b56190354049ecb0d806e759b3fca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 18 Sep 2023 16:21:53 +0800 Subject: [PATCH 29/46] =?UTF-8?q?=E7=A8=8E=E9=A2=9D=E5=B0=8F=E4=BA=8E?= =?UTF-8?q?=E9=9B=B6=E7=9A=84=E4=B8=8D=E8=83=BD=E8=BD=AC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dxhy/erp/controller/InterfaceController.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 7b2ccb4f..11e2deda 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -1457,6 +1457,14 @@ public class InterfaceController extends AbstractController { log.info("进项税转出传入发票存在未认证发票"); return JsonUtils.getInstance().toJsonString(outPut); } + List collect1 = tDxRecordInvoices.stream().filter(e -> BigDecimal.ZERO.compareTo(e.getTaxAmount()) > 0).collect(Collectors.toList()); + if (collect1 != null && collect1.size()>0){ + es.setZTYPE("E"); + es.setZMESSAGE("税额小于零不可转出"); + outPut.setES_OUTPUT(es); + log.info("进项税转出传入发票存在税额小于零发票"); + return JsonUtils.getInstance().toJsonString(outPut); + } //进项税转出或者取消转出 UserInfo userInfo = new UserInfo(); iReceiptOutService.transferOrcancelOut(zdatans,userInfo); From 27c15d8c1fbf37683fcd0c869aa56f2a09957b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 19 Sep 2023 11:27:30 +0800 Subject: [PATCH 30/46] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dxhy/core/task/SnEmailGatherTask.java | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 387a437f..a95f8b33 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -29,11 +29,14 @@ import com.sun.mail.pop3.POP3Folder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.mail.*; +import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeUtility; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; @@ -114,9 +117,6 @@ public class SnEmailGatherTask { try { store = mailAuth(emailName, password); if(store == null){ - MailGatherLogVo gatherLogVo = new MailGatherLogVo(); - gatherLogVo.setFromAddress(emailName); - buildMsg(gatherLogVo,"1","邮箱认证失败"); return; } folder = store.getFolder("INBOX"); @@ -148,8 +148,9 @@ public class SnEmailGatherTask { MailGatherLogVo gatherLogVo = new MailGatherLogVo(); gatherLogVo.setId(IdUtil.nanoId()); gatherLogVo.setSubject(EmailParseUtils.getSubject(msg)); - gatherLogVo.setFromAddress(emailName); -// String address = EmailParseUtils.getReceiveAddress(msg, null); +// String address = EmailParseUtils.getReceiveAddress(msg, null); + String from = getFrom(msg); + gatherLogVo.setFromAddress(from); gatherLogVo.setReceiveAddress(emailName); String sentDate = EmailParseUtils.getSentDate(msg, null); gatherLogVo.setSentDate(sentDate); @@ -213,9 +214,9 @@ public class SnEmailGatherTask { log.info("调用影像票夹接口返回参数:{}",body); Map resultMap = JSONObject.parseObject(body, Map.class); Object status = resultMap.get("status"); + gatherLogVo.setFileType(map.get("contentType")); + gatherLogVo.setFileName(map.get("fileName")); if(status != null && "200".equals(String.valueOf(status))){ - gatherLogVo.setFileName(map.get("fileName")); - gatherLogVo.setFileType(map.get("contentType")); buildMsg(gatherLogVo,"0","推送影像票夹成功"); }else { gatherLogVo.setFphm(""); @@ -317,6 +318,32 @@ public class SnEmailGatherTask { return hashMap; } + /** + * 获得邮件发件人 + * + * @param msg 邮件内容 + * @return 姓名 + * @throws MessagingException + * @throws UnsupportedEncodingException + */ + public String getFrom(MimeMessage msg) throws MessagingException, UnsupportedEncodingException { + String from = ""; + Address[] froms = msg.getFrom(); + if (froms.length < 1){ + return ""; + } + + InternetAddress address = (InternetAddress) froms[0]; + String person = address.getPersonal(); + if (person != null) { + person = MimeUtility.decodeText(person) + " "; + } else { + person = ""; + } + from = person + "<" + address.getAddress() + ">"; + + return from; + } public Store mailAuth(String emailName, String password){ //判断是否为QQ还是163 @@ -356,12 +383,21 @@ public class SnEmailGatherTask { // }); //Session session = Session.getInstance(props); Store store = null; + MailGatherLogVo gatherLogVo = new MailGatherLogVo(); + gatherLogVo.setFromAddress(emailName); try { store = session.getStore("pop3"); store.connect(emailName, password); + }catch(AuthenticationFailedException e){ + buildMsg(gatherLogVo,"1","密码错误连接邮箱失败"); + e.printStackTrace(); + log.error("连接邮箱异常信息{}",e); } catch (Exception e) { + buildMsg(gatherLogVo,"1","未知连接异常"); e.printStackTrace(); - log.error("连接邮箱异常信息{}",e.getMessage()); + log.error("连接邮箱异常信息{}",e); + + }finally { try { store.close(); } catch (MessagingException ex) { From e8dca0ba2feba46eb08c2ab0e1a1d1715d12b6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 19 Sep 2023 12:14:00 +0800 Subject: [PATCH 31/46] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index a95f8b33..0b53be8d 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -26,6 +26,7 @@ import com.github.pagehelper.util.StringUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.sun.mail.pop3.POP3Folder; +import com.sun.mail.util.MailConnectException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; @@ -392,6 +393,10 @@ public class SnEmailGatherTask { buildMsg(gatherLogVo,"1","密码错误连接邮箱失败"); e.printStackTrace(); log.error("连接邮箱异常信息{}",e); + }catch(MailConnectException e){ + buildMsg(gatherLogVo,"1","连接超时"); + e.printStackTrace(); + log.error("连接邮箱异常信息{}",e); } catch (Exception e) { buildMsg(gatherLogVo,"1","未知连接异常"); e.printStackTrace(); From 058c35b0ef5bebd85e6c6a85f92561c2ddf5cfcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 19 Sep 2023 13:52:46 +0800 Subject: [PATCH 32/46] =?UTF-8?q?=E5=85=B3=E6=B5=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dxhy/core/task/SnEmailGatherTask.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 0b53be8d..70a95cff 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -393,16 +393,26 @@ public class SnEmailGatherTask { buildMsg(gatherLogVo,"1","密码错误连接邮箱失败"); e.printStackTrace(); log.error("连接邮箱异常信息{}",e); + try { + store.close(); + } catch (MessagingException ex) { + throw new RuntimeException(ex); + } + store = null; }catch(MailConnectException e){ buildMsg(gatherLogVo,"1","连接超时"); e.printStackTrace(); log.error("连接邮箱异常信息{}",e); + try { + store.close(); + } catch (MessagingException ex) { + throw new RuntimeException(ex); + } + store = null; } catch (Exception e) { buildMsg(gatherLogVo,"1","未知连接异常"); e.printStackTrace(); log.error("连接邮箱异常信息{}",e); - - }finally { try { store.close(); } catch (MessagingException ex) { From 1a52b865ae27961683a124aa66521c547e2c31b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=90=A6?= Date: Tue, 19 Sep 2023 13:56:49 +0800 Subject: [PATCH 33/46] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java | 2 +- .../service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java index 94db5b12..779d130b 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java @@ -84,7 +84,7 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl> result = this.baseMapper.querySgByPage(page, dto); - log.info("返回的结果是:{}",result.getRecords().get(0)); +// log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { // List lyModels = dictdetaServcice.selectDictdeta("jksSources"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java index 03364bea..d990d481 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java @@ -86,7 +86,7 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl> result = this.baseMapper.queryVatSgrz(page, dto); - log.info("返回的结果是:{}",result.getRecords().get(0)); +// log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { // List fpztModels = dictdetaServcice.selectDictdeta("INVOICE_STATUS"); From a598dfc75c78bb6aba224d2cd1767b418dbd939a Mon Sep 17 00:00:00 2001 From: yefei Date: Tue, 19 Sep 2023 14:08:26 +0800 Subject: [PATCH 34/46] =?UTF-8?q?ariesy=20=E5=8E=BB=E6=8E=89=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java | 1 - .../service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java index 779d130b..d924f882 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java @@ -84,7 +84,6 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl> result = this.baseMapper.querySgByPage(page, dto); -// log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { // List lyModels = dictdetaServcice.selectDictdeta("jksSources"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java index d990d481..296a0ffa 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java @@ -86,8 +86,6 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl> result = this.baseMapper.queryVatSgrz(page, dto); -// log.info("返回的结果是:{}",result.getRecords().get(0)); - if (ResultData.isEmpty(result)) { // List fpztModels = dictdetaServcice.selectDictdeta("INVOICE_STATUS"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); From 013dbba5b0d57a188e149c0894c92cad1de351e9 Mon Sep 17 00:00:00 2001 From: yefei Date: Tue, 19 Sep 2023 14:28:00 +0800 Subject: [PATCH 35/46] =?UTF-8?q?ariesy=20=E5=8E=BB=E6=8E=89=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java | 1 - .../service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java index d924f882..479a151a 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java @@ -428,7 +428,6 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl result = this.baseMapper.queryBdkByPage(page, dto); - log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java index 296a0ffa..0afb882e 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportInvoiceCkServiceImpl.java @@ -408,7 +408,6 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl result = this.baseMapper.queryVatBdk(page, dto); - log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { @@ -534,7 +533,6 @@ public class DomesticExportInvoiceCkServiceImpl extends ServiceImpl> result = this.baseMapper.queryVatRzcx(page, dto); - log.info("返回的结果是:{}",result.getRecords().get(0)); if (ResultData.isEmpty(result)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < page.getRecords().size(); i++) { From 6acc0c267e63865e771e12ce6a4c0081d98d6e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=90=A6?= Date: Tue, 19 Sep 2023 14:32:53 +0800 Subject: [PATCH 36/46] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E7=9A=84=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 70a95cff..38d28602 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -106,7 +106,7 @@ public class SnEmailGatherTask { public void parseEmail(EmailMaintainVo maintainVo){ log.info("邮箱采集内部方法开始执行--"); log.info("解析用户"+maintainVo.getUsername()+"邮箱"); - log.info("邮箱:{}密码:{}",maintainVo.getEmailAddress(),maintainVo.getEmailPassword()); +// log.info("邮箱:{}密码:{}",maintainVo.getEmailAddress(),maintainVo.getEmailPassword()); long startTime = System.currentTimeMillis(); String password = Base64Decoder.decodeStr(maintainVo.getEmailPassword()); String emailName = maintainVo.getEmailAddress(); From c86caf2b81d2026c2da390a9c95de1ce5d6ee0bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 19 Sep 2023 14:36:28 +0800 Subject: [PATCH 37/46] =?UTF-8?q?=E7=A8=8E=E9=A2=9D=E5=B0=8F=E4=BA=8E?= =?UTF-8?q?=E9=9B=B6=E7=9A=84=E4=B8=8D=E8=83=BD=E8=BD=AC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dxhy/core/task/SnEmailGatherTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 70a95cff..586b6c9b 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -151,8 +151,8 @@ public class SnEmailGatherTask { gatherLogVo.setSubject(EmailParseUtils.getSubject(msg)); // String address = EmailParseUtils.getReceiveAddress(msg, null); String from = getFrom(msg); - gatherLogVo.setFromAddress(from); - gatherLogVo.setReceiveAddress(emailName); + gatherLogVo.setFromAddress(emailName); + gatherLogVo.setReceiveAddress(from); String sentDate = EmailParseUtils.getSentDate(msg, null); gatherLogVo.setSentDate(sentDate); gatherLogVo.setCreateTime(new Date()); From c85cfe763a190fae1d6e1a443d841cda5f1f44c0 Mon Sep 17 00:00:00 2001 From: yefei Date: Tue, 19 Sep 2023 14:51:14 +0800 Subject: [PATCH 38/46] =?UTF-8?q?ariesy=20=E6=89=93=E5=8D=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domestic/controller/DomesticExportCustomsRzdkController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/controller/DomesticExportCustomsRzdkController.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/controller/DomesticExportCustomsRzdkController.java index b52d0379..ead42a49 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/controller/DomesticExportCustomsRzdkController.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/controller/DomesticExportCustomsRzdkController.java @@ -91,6 +91,7 @@ public class DomesticExportCustomsRzdkController extends AbstractController { .ok(R.ok().put("data", domesticExportCustomsCkService.queryRzcxByPage(page, dto, this.getUserInfo()))); } catch (Exception e) { e.printStackTrace(); + log.info("报错信息为:{}",e); return ResponseEntity.ok(R.error(CommonConstants.MSG_ERR_DEFAULT)); } } From e6ec32057e006d76f40a95f471f4532791b861c2 Mon Sep 17 00:00:00 2001 From: yefei Date: Tue, 19 Sep 2023 15:02:12 +0800 Subject: [PATCH 39/46] =?UTF-8?q?ariesy=20=E6=89=93=E5=8D=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java index 479a151a..c78b3820 100644 --- a/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java +++ b/dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/ckzrz/impl/DomesticExportCustomsCkServiceImpl.java @@ -551,7 +551,6 @@ public class DomesticExportCustomsCkServiceImpl extends ServiceImpl result = this.baseMapper.queryRzcxByPage(page, dto); - log.info("获取的结果为:{}",page.getRecords().get(0)); if (ResultData.isEmpty(result)) { for (int i = 0; i < page.getRecords().size(); i++) { Map map = result.getRecords().get(i); From c56bb6fdf98602a5e03ae9052e510c0f58fac75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Tue, 19 Sep 2023 17:10:12 +0800 Subject: [PATCH 40/46] =?UTF-8?q?=E9=94=80=E9=A1=B9=E7=A5=A8=E8=B4=A6?= =?UTF-8?q?=E5=AF=B9=E6=AF=94=E5=92=8C=E4=B8=BB=E8=90=A5=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=94=B6=E5=85=A5=E5=AF=B9=E6=AF=94=E7=A8=8E=E7=8E=87=C3=97100?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/frJob/QueryDetailDataDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml index 3cbd9faf..c8676f7f 100644 --- a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml +++ b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml @@ -134,7 +134,7 @@ and r.zbzdh != '' group by r.zbzdh,i.racct ) v on t.bzdh = v.zbzdh - where d.tax_rate = v.sl + where d.tax_rate * 100 = v.sl and t.invoice_type in ('01','03','08','14','31','183') group by d.uuid,d.tax_rate @@ -181,7 +181,7 @@ and r.zbzdh != '' group by r.zbzdh,i.racct ) v on t.bzdh = v.zbzdh - where d.tax_rate = v.sl + where d.tax_rate * 100 = v.sl and t.invoice_type in ('01','03','08','14','31','183') group by d.uuid,d.tax_rate From 5256daabe5ca8e221bb2d4dd6c4f9f201b989339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Wed, 20 Sep 2023 10:34:43 +0800 Subject: [PATCH 41/46] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BF=AE=E6=94=B9=E4=B8=BA=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E7=BB=B4=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mailGather/EmailMaintainController.java | 12 ++++-------- .../mapper/mailGather/EmailMaintainMapper.xml | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java index 9f7661e9..013b5883 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java @@ -65,15 +65,11 @@ public class EmailMaintainController extends AbstractController { // return ResponseEntity.ok(R.ok().put("data", "")); // } // } - Object deptId = pramsMap.get("deptId"); - if(deptId == null || "".equals(String.valueOf(deptId))){ - return ResponseEntity.ok(R.error("该组织未配置税号,请先联系管理员")); + String companyCode = (String) pramsMap.get("companyCode"); + if(StringUtils.isBlank(companyCode)){ + return ResponseEntity.ok(R.error("组织编码不能为空")); } - if("99".equals(String.valueOf(deptId))){ - pramsMap.put("deptId",""); - } - UserInfo userInfo = getUserInfo(); - log.debug("用户信息:{}", JSONObject.toJSONString(userInfo)); + String loginname = getUserInfo().getLoginname(); pramsMap.put("createUser",loginname); return ResponseEntity.ok(R.ok().put("data",this.emailMaintainService.queryByPage(pramsMap))); diff --git a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml index f7ba5c48..8d34677c 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml @@ -32,8 +32,8 @@ id, dept_id, company_code, dept_name, username, user_id, email_address,email_password, create_time, del_status, modify_time from email_maintain - - and dept_id = #{deptId} + + and company_code = #{companyCode} and username = #{username} From a49a7d6691ca1544384fd595c96533675bbcc4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Wed, 20 Sep 2023 14:00:17 +0800 Subject: [PATCH 42/46] =?UTF-8?q?=E6=9C=AA=E8=A1=A5=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dxhy/base/controller/BaseFpcjController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseFpcjController.java b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseFpcjController.java index 7f0aa28f..88889a21 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseFpcjController.java +++ b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseFpcjController.java @@ -161,6 +161,12 @@ public class BaseFpcjController extends AbstractController { @SysLog("调用未补发票明细列表接口") public ResponseEntity listWbfpmx(@RequestBody Map map) { String gfsh = (String)map.get("gfsh"); + if (map.get("cjksrq") != null && !"".equals(map.get("cjksyf"))) { + map.put("cjksrq", DateUtils.getMorning(DateUtils.strToDate(map.get("cjksrq").toString()))); + } + if (map.get("cjjsrq") != null && !"".equals(map.get("cjjsrq"))) { + map.put("cjjsrq", DateUtils.getNight(DateUtils.strToDate(map.get("cjjsrq").toString()))); + } String cjksrq = (String)map.get("cjksrq"); String cjjsrq = (String)map.get("cjjsrq"); String invoiceNo = (String)map.get("invoiceNo"); From a5bb4b5acc3cff79d4143368c6de7836463e3081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Wed, 20 Sep 2023 16:21:42 +0800 Subject: [PATCH 43/46] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mailGather/EmailMaintainController.java | 5 +++-- .../mailGather/impl/EmailMaintainServiceImpl.java | 2 +- .../java/com/dxhy/core/task/SnEmailGatherTask.java | 11 ++++++----- .../mapper/mailGather/EmailMaintainMapper.xml | 6 +++++- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java index 013b5883..e5259985 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java @@ -180,7 +180,8 @@ public class EmailMaintainController extends AbstractController { @RequestMapping("/emailUpload") public ResponseEntity emailUpload(@RequestParam(value = "file") MultipartFile file, @RequestParam(value = "deptId") String deptId, - @RequestParam(value = "deptName") String deptName) { + @RequestParam(value = "deptName") String deptName, + @RequestParam (value = "companyCode") String companyCode) { try { List emailMaintainExcels = @@ -237,7 +238,7 @@ public class EmailMaintainController extends AbstractController { EmailMaintainVo maintainVo = new EmailMaintainVo(); maintainVo.setId(UUIDUtils.generateShortUuid()); - maintainVo.setCompanyCode(deptId); + maintainVo.setCompanyCode(companyCode); maintainVo.setDeptId(deptId); maintainVo.setDeptName(deptName); maintainVo.setUsername(userName); diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java index 96e69b24..087d2e31 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java @@ -125,7 +125,7 @@ public class EmailMaintainServiceImpl implements EmailMaintainService { @Override public String getUserByUsername(String username) { - DynamicContextHolder.push("business_itax_read"); + DynamicContextHolder.push(DbConstant.BASICS_READ); return emailMaintainDao.getUserByUsername(username); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java index 79c12a8c..35fc58a9 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/SnEmailGatherTask.java @@ -192,11 +192,12 @@ public class SnEmailGatherTask { List> mapList = Lists.newArrayList(); EmailParseUtils.saveAttachment(msg, mapList); log.debug("获取附件的数量:"+mapList.size()); - if(StringUtils.isNotEmpty(maintainVo.getUserId())){ - String username = emailMaintainService.getUserByUsername(maintainVo.getUserId()); - if(StringUtils.isNotEmpty(username)){ - maintainVo.setUserId(username); - } + if(StringUtils.isNotEmpty(maintainVo.getCreateUser())){ +// String username = emailMaintainService.getUserByUsername(maintainVo.getUserId()); +// if(StringUtils.isNotEmpty(username)){ +// maintainVo.setUserId(username); +// } + maintainVo.setUserId(maintainVo.getCreateUser()); } for (Map map : mapList) { map.put("emailName",emailName); diff --git a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml index 8d34677c..a9ab7a55 100644 --- a/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml +++ b/dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml @@ -168,8 +168,12 @@ select username from sys_user where loginname = #{userCode} + + + +