From 00bc62b0af3a15a1b275f77c1cd843ec5e3f562b Mon Sep 17 00:00:00 2001 From: wangzhikun Date: Fri, 17 Mar 2023 16:59:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=87=AD=E8=AF=81=E5=8F=B7?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E9=80=81=E8=AE=A4=E8=AF=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/InterfaceController.java | 11 ++- .../com/dxhy/erp/entity/SysDeptEntity.java | 5 + .../java/com/dxhy/erp/model/EsOutPutResp.java | 20 ++++ .../main/java/com/dxhy/erp/model/IsInput.java | 37 ++++++++ .../main/java/com/dxhy/erp/model/ZDATA.java | 36 +++++++ .../java/com/dxhy/erp/model/ZDATARESP.java | 15 +++ .../dxhy/erp/service/InvoiceAuthService.java | 4 + .../service/impl/InvoiceAuthServiceImpl.java | 94 +++++++++++++++++-- 8 files changed, 213 insertions(+), 9 deletions(-) create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/EsOutPutResp.java create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/IsInput.java create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATARESP.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 3e16f3fb..edd9565b 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 @@ -3,6 +3,7 @@ package com.dxhy.erp.controller; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -31,8 +32,7 @@ import com.dxhy.erp.entity.TDxInvoiceReimburse; import com.dxhy.erp.entity.V5.CheckResult; import com.dxhy.erp.entity.V5.DxhyInterfaceRequest; import com.dxhy.erp.entity.V5.DxhyInterfaceResponse; -import com.dxhy.erp.model.ReimburseReq; -import com.dxhy.erp.model.ReturnStateInfo; +import com.dxhy.erp.model.*; import com.dxhy.erp.model.auth.InterfaceCode; import com.dxhy.erp.service.*; import com.dxhy.erp.utils.HmacSHA1Util; @@ -1123,4 +1123,11 @@ public class InterfaceController extends AbstractController { } return returnResult; } + + @PostMapping("receiveErpInvoiceMessage") + public String receiveErpInvoiceMessage(@RequestBody IsInput isInput){ + EsOutPutResp esOutPutResp=invoiceAuthService.receiveErpInvoiceMessage(isInput); + return JsonUtils.getInstance().toJsonString(esOutPutResp); + } + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/entity/SysDeptEntity.java b/dxhy-erp/src/main/java/com/dxhy/erp/entity/SysDeptEntity.java index 97e5ab53..d26db4fd 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/entity/SysDeptEntity.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/entity/SysDeptEntity.java @@ -77,4 +77,9 @@ public class SysDeptEntity implements Serializable { /** 是否需要密码1需要 */ private String isPassword; private String password; + /** + * 是否自动认证 + * 1:自动认证 其他非自动认证 + */ + private String autoRz; } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/EsOutPutResp.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/EsOutPutResp.java new file mode 100644 index 00000000..183bbe2f --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/EsOutPutResp.java @@ -0,0 +1,20 @@ +package com.dxhy.erp.model; + +import lombok.Data; + +/** + * @Author wangzhikun + * @Date 2023/3/16 2023/3/16 + */ +@Data +public class EsOutPutResp { + private String BSKEY; + + private String SAPKEY; + + private String ZTYPE; + + private String ZMESSAGE; + + private ZDATARESP zdata; +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/IsInput.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/IsInput.java new file mode 100644 index 00000000..9196e079 --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/IsInput.java @@ -0,0 +1,37 @@ +package com.dxhy.erp.model; + +import lombok.Data; + +import java.util.List; + +/** + * @Author wangzhikun + * @Date 2023/3/16 2023/3/16 + */ +@Data +public class IsInput { + + private String SYSID; + + private String IFYWID; + + private String BSKEY; + + private String SAPKEY; + + private String ZORG; + + private String ZFILED1; + + private String ZFILED2; + + private String ZFILED3; + + private String ZFILED4; + + private String ZFILED5; + + private List ZDATA; + + +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java new file mode 100644 index 00000000..bb9eda43 --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java @@ -0,0 +1,36 @@ +package com.dxhy.erp.model; + +import lombok.Data; + +/** + * @Author wangzhikun + * @Date 2023/3/16 2023/3/16 + */ +@Data +public class ZDATA { + private String ID; + + private String ZBZDH; + + private String ZFPHM; + + private String ZFPDM; + + private String ZFPLX; + + private String ZYWZT; + + private String ZGSDM; + + private String ZGSDMT; + + private String ZJBR; + + private String ZJBRT; + + private String ZJBRSJ; + + private String BELNR; + + private String BUDAT; +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATARESP.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATARESP.java new file mode 100644 index 00000000..3f32ba3c --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATARESP.java @@ -0,0 +1,15 @@ +package com.dxhy.erp.model; + +import lombok.Data; + +/** + * @Author wangzhikun + * @Date 2023/3/16 2023/3/16 + */ +@Data +public class ZDATARESP { + + private String PROMSG; + + private String PROTYP; +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/InvoiceAuthService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/InvoiceAuthService.java index bf354e4f..e9dffd40 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/InvoiceAuthService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/InvoiceAuthService.java @@ -9,6 +9,8 @@ import com.dxhy.common.service.MpBaseService; import com.dxhy.common.util.pojo.Authorize; import com.dxhy.common.util.pojo.GlobalInfo; import com.dxhy.erp.entity.RecordInvoice; +import com.dxhy.erp.model.EsOutPutResp; +import com.dxhy.erp.model.IsInput; /** * @author dxhy @@ -40,4 +42,6 @@ public interface InvoiceAuthService extends MpBaseService { */ String getAuthResult(GlobalInfo globalInfo, Map map, HttpServletRequest request, HttpServletResponse response, Authorize authorize); + + EsOutPutResp receiveErpInvoiceMessage(IsInput isInput); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java index 4f54f308..facbf496 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java @@ -2,15 +2,16 @@ package com.dxhy.erp.service.impl; import java.math.BigDecimal; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.dxhy.common.enums.FplxEnum; +import com.dxhy.erp.model.*; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -30,9 +31,6 @@ import com.dxhy.erp.entity.AuthRecord; import com.dxhy.erp.entity.RecordInvoice; import com.dxhy.erp.entity.SysDeptEntity; import com.dxhy.erp.entity.TdxRecordInvoice; -import com.dxhy.erp.model.AuthDateReq; -import com.dxhy.erp.model.AuthStatus; -import com.dxhy.erp.model.ReturnStateInfo; import com.dxhy.erp.model.auth.InterfaceCode; import com.dxhy.erp.service.InvoiceAuthService; import com.dxhy.erp.utils.CheckUtils; @@ -319,6 +317,56 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl zdata = isInput.getZDATA(); + AuthDateReq authDateReq=new AuthDateReq(); + authDateReq.setBatchNo(isInput.getSAPKEY()); + authDateReq.setApplyRzlx("1"); + for(ZDATA zdata1:zdata){ + String uuid = zdata1.getZFPDM()+zdata1.getZFPHM(); + DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); + TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid); + if(recordInvoiceByUuid!=null){ + UpdateWrapper updateWrapper = new UpdateWrapper(); + updateWrapper.eq("uuid",uuid); + //会计凭证号 + updateWrapper.set("belnr",zdata1.getBELNR()); + //凭证过账日期 + updateWrapper.set("budat",zdata1.getBUDAT()); + //账期 + updateWrapper.set("zq",zdata1.getBUDAT()); + DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE); + int update = tDxrecordInvoiceDao.update(null, updateWrapper); + DynamicContextHolder.push(DbConstant.BASICS_READ); + SysDeptEntity org = sysDeptDao.getOrg(recordInvoiceByUuid.getGfTaxNo()); + zdata1.setZFPLX(convertFpzldm(zdata1.getZFPLX())); + //如果设置的自动认证走申请认证逻辑 + if("1".equals(org.getAutoRz()) && ("01".equals(zdata1.getZFPLX()) || "03".equals(zdata1.getZFPLX()) + || "08".equals(zdata1.getZFPLX()) || "14".equals(zdata1.getZFPLX()) + || "31".equals(zdata1.getZFPLX())) && StringUtils.isNotBlank(zdata1.getBUDAT())){ + if(!"4".equals(recordInvoiceByUuid.getAuthStatus()) && !"3".equals(recordInvoiceByUuid.getAuthStatus()) + && !"2".equals(recordInvoiceByUuid.getAuthStatus())){ + Map authState = new HashMap<>(); + authState.put("rz_user",zdata1.getZJBRT()); + authState.put("applyTaxPeriod",zdata1.getBUDAT().substring(0,7).replace("-","")); + tDxrecordInvoiceDao.updateRz(authState,"1","1",recordInvoiceByUuid.getUuid()); + } + } + }else { + flag=true; + } + } + return es; + } + public ReturnStateInfo getCheckData(List> authStateList, Integer contentRows) { ReturnStateInfo run = new ReturnStateInfo(); if (contentRows == null || authStateList.size() != contentRows) { @@ -366,5 +414,37 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl