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 b05aa4f1..7dd82fce 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 @@ -1147,6 +1147,7 @@ public class InterfaceController extends AbstractController { //进项税转出 }else if("FI849".equals(requestParam.getIS_INPUT().getIFYWID())){ resultString = transferOut(requestParam); + //票账比对数据推送 }else if("FI848".equals(requestParam.getIS_INPUT().getIFYWID())){ resultString = insertVouncherRecord(requestParam); } 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 cbcc8b1f..a2ef0578 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 @@ -9,9 +9,12 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dxhy.common.enums.FplxEnum; +import com.dxhy.erp.entity.*; import com.dxhy.erp.model.*; +import com.dxhy.erp.service.TDxInvoiceReimburseService; import com.dxhy.erp.utils.JsonUtils; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -28,10 +31,6 @@ import com.dxhy.erp.dao.AuthRecordDao; import com.dxhy.erp.dao.RecordInvoiceDao; import com.dxhy.erp.dao.SysDeptDao; import com.dxhy.erp.dao.TdxRecordInvoiceDao; -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.auth.InterfaceCode; import com.dxhy.erp.service.InvoiceAuthService; import com.dxhy.erp.utils.CheckUtils; @@ -53,6 +52,8 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl map, HttpServletRequest request, @@ -334,12 +335,35 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl fplxList = new ArrayList<>(); + fplxList.add("01"); + fplxList.add("03"); + fplxList.add("04"); + fplxList.add("08"); + fplxList.add("10"); + fplxList.add("11"); + fplxList.add("14"); + fplxList.add("31"); + fplxList.add("32"); for(ZDATA zdata1:zdata){ String uuid = zdata1.getZFPDM()+zdata1.getZFPHM(); - TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid); - if(recordInvoiceByUuid==null){ - errorMsg.append("发票号码:"+zdata1.getZFPHM()); + zdata1.setZFPLX(convertFpzldm(zdata1.getZFPLX())); + + if(fplxList.contains(zdata1.getZFPLX())){ + TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid); + if(recordInvoiceByUuid==null){ + errorMsg.append("发票号码:"+zdata1.getZFPHM()); + } + }else { + //查询票池 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uuid",uuid); + TDxInvoiceReimburse tDxInvoiceReimburse = tDxInvoiceReimburseService.getBaseMapper().selectOne(queryWrapper); + if(tDxInvoiceReimburseService==null){ + errorMsg.append("发票号码"+zdata1.getZFPHM()); + } } + } if(errorMsg.length()>1){ es.setZMESSAGE(errorMsg.toString()+"不存在"); @@ -352,8 +376,42 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl0){ + DynamicContextHolder.push(DbConstant.BASICS_READ); + SysDeptEntity org = sysDeptDao.getOrg(recordInvoiceByUuid.getGfTaxNo()); + zdata1.setZFPLX(convertFpzldm(zdata1.getZFPLX())); + //如果设置的自动认证走申请认证逻辑 + if(org!=null && "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("-","")); + DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE); + tDxrecordInvoiceDao.updateRz(authState,"1","1",recordInvoiceByUuid.getUuid()); + } + } + }else { + flag=true; + } + } + }else { UpdateWrapper updateWrapper = new UpdateWrapper(); updateWrapper.eq("uuid",uuid); //会计凭证号 @@ -362,29 +420,11 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl0){ - DynamicContextHolder.push(DbConstant.BASICS_READ); - SysDeptEntity org = sysDeptDao.getOrg(recordInvoiceByUuid.getGfTaxNo()); - zdata1.setZFPLX(convertFpzldm(zdata1.getZFPLX())); - //如果设置的自动认证走申请认证逻辑 - if(org!=null && "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("-","")); - DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE); - tDxrecordInvoiceDao.updateRz(authState,"1","1",recordInvoiceByUuid.getUuid()); - } - } - }else { - flag=true; - } + tDxInvoiceReimburseService.getBaseMapper().update(null,updateWrapper); } + if(!flag){ promsg.append("票据号码:"+zdata1.getZFPHM()+"绑定成功! "); } diff --git a/dxhy-extend/src/main/java/com/dxhy/extend/controller/VouncherSyncController.java b/dxhy-extend/src/main/java/com/dxhy/extend/controller/VouncherSyncController.java index 478139bf..dd8d094e 100644 --- a/dxhy-extend/src/main/java/com/dxhy/extend/controller/VouncherSyncController.java +++ b/dxhy-extend/src/main/java/com/dxhy/extend/controller/VouncherSyncController.java @@ -2,6 +2,7 @@ package com.dxhy.extend.controller; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; +import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.http.HttpUtils; import com.dxhy.common.constant.CommonConstants; @@ -16,9 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; +import java.util.*; /** * @Author wangzhikun @@ -42,6 +41,9 @@ public class VouncherSyncController { String startTime= map.get("startTime"); //结束日期 String month=map.get("endTime"); + //GJAHR nian + String gjahr=map.get("gjahr"); + SNSAPObject object = new SNSAPObject(); object.setSYSID("FPXT"); object.setIFYWID("FI842"); @@ -54,12 +56,13 @@ public class VouncherSyncController { // object.setZFILED4(""); object.setZFILED5("200"); Map requestMap = new HashMap<>(); + List list = new ArrayList<>(); requestMap.put("ZGSDM",companyCode); - requestMap.put("GJAHR",""); + requestMap.put("GJAHR",gjahr); requestMap.put("MONAT",month); requestMap.put("ZDATEF",startTime); requestMap.put("ZFLAG",ifAll); - object.setZDATA(requestMap); + object.setZDATA(JSONObject.toJSONString(requestMap)); JSONObject request = new JSONObject(); request.put("IS_INPUT",object); try{ @@ -91,14 +94,15 @@ public class VouncherSyncController { // object.setZFILED2(""); // object.setZFILED3(""); // object.setZFILED4(""); - object.setZFILED5("200"); + Map requestMap = new HashMap<>(); requestMap.put("ZGSDM","123"); requestMap.put("GJAHR",""); requestMap.put("MONAT",""); requestMap.put("ZDATEF","2023"); requestMap.put("ZFLAG","X"); - object.setZDATA(requestMap); + object.setZDATA(JSONObject.toJSONString(requestMap)); + object.setZFILED5("200"); JSONObject request = new JSONObject(); request.put("IS_INPUT",object); System.out.println(JSONObject.toJSONString(request)); diff --git a/dxhy-extend/src/main/java/com/dxhy/extend/model/SNSAPObject.java b/dxhy-extend/src/main/java/com/dxhy/extend/model/SNSAPObject.java index fa770b0b..1fdee22f 100644 --- a/dxhy-extend/src/main/java/com/dxhy/extend/model/SNSAPObject.java +++ b/dxhy-extend/src/main/java/com/dxhy/extend/model/SNSAPObject.java @@ -1,9 +1,11 @@ package com.dxhy.extend.model; import com.alibaba.fastjson.annotation.JSONField; +import com.alibaba.fastjson.annotation.JSONType; import lombok.Data; @Data +@JSONType(orders = {"SYSID","IFYWID","BSKEY","SAPKEY","ZORG","ZFILED1","ZFILED2","ZFILED3","ZFILED4","ZFILED5","ZDATA"}) public class SNSAPObject { /** diff --git a/dxhy-extend/src/main/java/com/dxhy/extend/service/bb/impl/VouncherSyncServiceImpl.java b/dxhy-extend/src/main/java/com/dxhy/extend/service/bb/impl/VouncherSyncServiceImpl.java index 506ac6a8..0741502c 100644 --- a/dxhy-extend/src/main/java/com/dxhy/extend/service/bb/impl/VouncherSyncServiceImpl.java +++ b/dxhy-extend/src/main/java/com/dxhy/extend/service/bb/impl/VouncherSyncServiceImpl.java @@ -27,7 +27,7 @@ public class VouncherSyncServiceImpl implements VouncherSyncService { log.info("请求同步凭证号数据{}",request); HttpRequest httpRequest = new HttpRequest(url); httpRequest.basicAuth(userName,password); - String body = httpRequest.body(request).timeout(300000).execute().body(); + String body = httpRequest.body(request).timeout(300000).header("Content-Type","application/json").execute().body(); long endTime = System.currentTimeMillis(); log.debug("以字符串调用post请求url:{},耗时:{},返回参数{}", url, endTime - startTime,body); return body;