From 291d41fd386bce884291f6f3738ab9693e8b7a63 Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Tue, 1 Aug 2023 19:12:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9FI849?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dxhy/common/constant/TransferContant.java | 15 ++++ .../erp/controller/InterfaceController.java | 88 ++++++++----------- .../dxhy/erp/service/IReceiptOutService.java | 2 +- .../impl/BaseIReceiptInvoiceServiceImpl.java | 3 +- .../service/impl/ReceiptOutServiceImpl.java | 21 ++--- 5 files changed, 61 insertions(+), 68 deletions(-) create mode 100644 dxhy-common/src/main/java/com/dxhy/common/constant/TransferContant.java diff --git a/dxhy-common/src/main/java/com/dxhy/common/constant/TransferContant.java b/dxhy-common/src/main/java/com/dxhy/common/constant/TransferContant.java new file mode 100644 index 00000000..3ebe73ec --- /dev/null +++ b/dxhy-common/src/main/java/com/dxhy/common/constant/TransferContant.java @@ -0,0 +1,15 @@ +package com.dxhy.common.constant; + +public class TransferContant { + + public static final String SUCCESS = "SUCCESS"; + + public static final String INVOICE_NO_NOT_EXIT = "INVOICE_NO_NOT_EXIT"; + + public static final String INVOICE_NOT_EXIT = "INVOICE_NOT_EXIT"; + + public static final String NOT_RZ = "NOT_RZ"; + + public static final String CANCEL_SUCCESS = "CANCEL_SUCCESS"; + +} 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 6b3db213..bb092d58 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 @@ -2,11 +2,13 @@ package com.dxhy.erp.controller; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.druid.sql.ast.statement.SQLIfStatement; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.dxhy.common.constant.ConfigureConstant; import com.dxhy.common.constant.ConfigurerInfo; import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.constant.TransferContant; import com.dxhy.common.controller.AbstractController; import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.common.enums.RespStatusEnum; @@ -30,6 +32,7 @@ import com.dxhy.erp.utils.HmacSHA1Util; import com.dxhy.erp.utils.JsonUtils; import com.dxhy.erp.utils.OpenApiUtils; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; @@ -1278,46 +1281,6 @@ public class InterfaceController extends AbstractController { "/po", JSONObject.toJSONString(fpdms),JSONObject.toJSONString(fphms), "transferOut"); transferOutRecord.setBzdh(JSONObject.toJSONString(bzdhs)); - boolean fphmNotBlank = list.stream().allMatch(e -> StringUtils.isNotBlank((String)e.get("ZFPHM"))); - boolean fpdmNotBlank = list.stream().allMatch(e -> StringUtils.isNotBlank((String)e.get("ZFPDM"))); - if (!fpdmNotBlank || !fphmNotBlank){ - OutPut outPut = new OutPut(); - EsOutPutResp es = new EsOutPutResp(); - es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); - es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); - es.setZTYPE("E"); - es.setZMESSAGE("传入数据存在没有发票号码或发票代码问题"); - outPut.setES_OUTPUT(es); - return JsonUtils.getInstance().toJsonString(outPut); - } - - StringBuilder uuids = new StringBuilder(); - for (int i = 0; i < list.size(); i++) { - String invoiceCode =(String) list.get(i).get("ZFPDM"); - String invoiceNo = (String)list.get(i).get("ZFPHM"); - uuids.append(invoiceCode).append(invoiceNo); - if (i invoices = baseIReceiptInvoiceService.selectByUuids(ids); - log.info("849查询到发票信息{}",invoices); - invoices = invoices.stream().filter(e->!"0".equals(e.getRzhYesorno())).collect(Collectors.toList()); - log.info("过滤后发票信息{}",invoices); - if (CollectionUtils.isEmpty(invoices)){ - OutPut outPut = new OutPut(); - EsOutPutResp es = new EsOutPutResp(); - es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); - es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); - es.setZTYPE("E"); - es.setZMESSAGE("底账数据不存在可转出发票"); - outPut.setES_OUTPUT(es); - return JsonUtils.getInstance().toJsonString(outPut); - } // for(Map map:list){ // String invoiceCode =(String) map.get("ZFPDM"); @@ -1354,13 +1317,21 @@ public class InterfaceController extends AbstractController { try{ /** * 根据金额判断是转入还是转出 - * - * */ + String transfer =""; + + List invoiceNoNotExit = Lists.newArrayList(); + List invoiceNotExit = Lists.newArrayList(); + List notRz = Lists.newArrayList(); + List success = Lists.newArrayList(); for(Map map:list) { String invoiceCode =(String) map.get("ZFPDM"); String invoiceNo = (String)map.get("ZFPHM"); + if (StringUtils.isBlank(invoiceNo)){ + invoiceNoNotExit.add((String)map.get("ID")); + continue; + } BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC"); String outReason = (String)map.get("ZZCYY"); String outTaxPeriod = (String)map.get("BUDAT"); @@ -1373,20 +1344,21 @@ public class InterfaceController extends AbstractController { baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod); UserInfo userInfo = new UserInfo(); if(bigDecimal.compareTo(BigDecimal.ZERO)==1){ - transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo); + transfer = iReceiptOutService.transfer(baseInvoiceEditVO, userInfo); + if (TransferContant.INVOICE_NOT_EXIT.equals(transfer)){ + invoiceNotExit.add((String)map.get("ZFPHM")); + }else if (TransferContant.NOT_RZ.equals(transfer)){ + notRz.add((String)map.get("ZFPHM")); + }else if (TransferContant.SUCCESS.equals(transfer)){ + success.add((String)map.get("ZFPHM")); + } + }else { BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO(); baseReceiptOutCancelEditReqVO.setPrimaryKey(uuid); String s = baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO); - if(s.equals("取消转出成功")){ - OutPut outPut = new OutPut(); - EsOutPutResp es = new EsOutPutResp(); - es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); - es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); - es.setZTYPE("S"); - es.setZMESSAGE("处理成功"); - outPut.setES_OUTPUT(es); - transfer = JsonUtils.getInstance().toJsonString(outPut); + if(TransferContant.CANCEL_SUCCESS.equals(s)){ + success.add((String)map.get("ZFPHM")); } } } @@ -1398,7 +1370,17 @@ public class InterfaceController extends AbstractController { log.error("FI849接口记录保存失败,errormsg:{}",e); } - return transfer; + StringBuilder message = new StringBuilder(); + message.append("ID:").append(invoiceNoNotExit).append("的发票未传入发票号码,").append("发票号码:") + .append(invoiceNotExit).append("的发票不存在,").append("发票号码:").append(notRz).append("的发票未认证,") + .append("发票号码:").append(success).append("处理成功"); + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setZTYPE("S"); + es.setZMESSAGE(message.toString()); + return JsonUtils.getInstance().toJsonString(outPut); }catch (Exception e){ log.error("error", e); OutPut outPut = new OutPut(); 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 565291f6..01f71d7d 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 @@ -10,5 +10,5 @@ import com.dxhy.erp.model.ErpInvoiceData; */ public interface IReceiptOutService { - String transfer(ErpInvoiceData erpInvoiceData, BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo); + String transfer(BaseInvoiceEditVO baseInvoiceEditVO, 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 e873db33..4594ec06 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 @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.constant.TransferContant; import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.common.enums.JxszcCancelEnum; import com.dxhy.common.enums.JxszcZtEnum; @@ -68,7 +69,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl invoices = baseIReceiptInvoiceService.selectByUuids(ids); if(CollectionUtils.isEmpty(invoices)){ - es.setZTYPE("E"); - es.setZMESSAGE("底账数据不存在"); - outPut.setES_OUTPUT(es); - return JsonUtils.getInstance().toJsonString(outPut); + 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 = @@ -87,8 +82,8 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl