同步凭证号,发送认证逻辑开发

release
wangzhikun 2 years ago
parent 56fcdd07ab
commit 51b10d06ab
  1. 25
      dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java
  2. 15
      dxhy-erp/src/main/java/com/dxhy/erp/model/ErpInvoiceData.java
  3. 23
      dxhy-erp/src/main/java/com/dxhy/erp/model/IsInput.java
  4. 27
      dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java
  5. 50
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java

@ -964,6 +964,7 @@ public class InterfaceController extends AbstractController {
@PostMapping("/reimbursementSync")
public String reimbursementSync(HttpServletRequest request, HttpServletResponse response) {
String authorize1 = request.getParameter("authorize");
String returnResult = null;
ObjectMapper mapper = new ObjectMapper();
GlobalInfo globalInfo = null;
@ -987,6 +988,7 @@ public class InterfaceController extends AbstractController {
log.info("接收票据:{}", requestParam.get("data"));
ReimburseReq reimburseReq = JSONObject.parseObject(requestParam.get("data"), ReimburseReq.class);
DynamicContextHolder.push(DbConstant.BASICS_READ);
/**
SysDeptEntity deptEntity = sysDeptDao.getOrgType(reimburseReq.getGfTaxNo());
if (deptEntity == null) {
run.setReturnCode(ReturnCodeEnum.JTSHBF.getFhzDm());
@ -995,6 +997,9 @@ public class InterfaceController extends AbstractController {
interfaceCode.setReturnStateInfo(run);
return JSON.toJSONString(interfaceCode);
}
*/
SysDeptEntity deptEntity = new SysDeptEntity();
deptEntity.setDbName("business");
TDxInvoiceReimburse reimburse = tDxInvoiceReimburseService.invoiceHandle(reimburseReq, deptEntity);
if ("1".equals(reimburse.getQsStatus())) {
run.setReturnCode(ReturnCodeEnum.CLCG.getFhzDm());
@ -1125,9 +1130,23 @@ public class InterfaceController extends AbstractController {
}
@PostMapping("receiveErpInvoiceMessage")
public String receiveErpInvoiceMessage(@RequestBody IsInput isInput){
EsOutPutResp esOutPutResp=invoiceAuthService.receiveErpInvoiceMessage(isInput);
return JsonUtils.getInstance().toJsonString(esOutPutResp);
public String receiveErpInvoiceMessage(@RequestBody ErpInvoiceData erpInvoiceData){
try {
EsOutPutResp esOutPutResp=invoiceAuthService.receiveErpInvoiceMessage(erpInvoiceData.getIS_INPUT());
return JsonUtils.getInstance().toJsonString(esOutPutResp);
}catch (Exception e){
log.info("{}接收erp发票数据出错,sapkey:{}",e,erpInvoiceData.getIS_INPUT().getSAPKEY());
e.printStackTrace();
EsOutPutResp esOutPutResp = new EsOutPutResp();
esOutPutResp.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
esOutPutResp.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
esOutPutResp.setZTYPE("E");
esOutPutResp.setZMESSAGE("程序内部错误");
return JsonUtils.getInstance().toJsonString(esOutPutResp);
}
}
}

@ -0,0 +1,15 @@
package com.dxhy.erp.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @Author wangzhikun
* @Date 2023/3/17 2023/3/17
*/
@Data
public class ErpInvoiceData {
@JsonProperty(value = "IS_INPUT")
private IsInput IS_INPUT;
}

@ -1,5 +1,6 @@
package com.dxhy.erp.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@ -10,27 +11,27 @@ import java.util.List;
*/
@Data
public class IsInput {
@JsonProperty(value = "SYSID")
private String SYSID;
@JsonProperty(value = "IFYWID")
private String IFYWID;
@JsonProperty(value = "BSKEY")
private String BSKEY;
@JsonProperty(value = "SAPKEY")
private String SAPKEY;
@JsonProperty(value = "ZORG")
private String ZORG;
@JsonProperty(value = "ZFILED1")
private String ZFILED1;
@JsonProperty(value = "ZFILED2")
private String ZFILED2;
@JsonProperty(value = "ZFILED3")
private String ZFILED3;
@JsonProperty(value = "ZFILED4")
private String ZFILED4;
@JsonProperty(value = "ZFILED5")
private String ZFILED5;
@JsonProperty(value = "ZDATA")
private List<ZDATA> ZDATA;

@ -1,5 +1,6 @@
package com.dxhy.erp.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
@ -8,29 +9,31 @@ import lombok.Data;
*/
@Data
public class ZDATA {
private String ID;
@JsonProperty(value = "ID")
private String ID;
@JsonProperty(value = "ZBZDH")
private String ZBZDH;
@JsonProperty(value = "ZFPHM")
private String ZFPHM;
@JsonProperty(value = "ZFPDM")
private String ZFPDM;
@JsonProperty(value = "ZFPLX")
private String ZFPLX;
@JsonProperty(value = "ZYWZT")
private String ZYWZT;
@JsonProperty(value = "ZGSDM")
private String ZGSDM;
@JsonProperty(value = "ZGSDMT")
private String ZGSDMT;
@JsonProperty(value = "ZJBR")
private String ZJBR;
@JsonProperty(value = "ZJBRT")
private String ZJBRT;
@JsonProperty(value = "ZJBRSJ")
private String ZJBRSJ;
@JsonProperty(value = "BELNR")
private String BELNR;
@JsonProperty(value = "BUDAT")
private String BUDAT;
}

@ -36,6 +36,7 @@ import com.dxhy.erp.service.InvoiceAuthService;
import com.dxhy.erp.utils.CheckUtils;
import cn.hutool.core.codec.Base64;
import org.springframework.transaction.annotation.Transactional;
/**
* @author dxhy
@ -325,12 +326,14 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
es.setZTYPE("S");
ZDATARESP zdataresp = new ZDATARESP();
StringBuilder promsg = new StringBuilder();
boolean flag = false;
List<ZDATA> zdata = isInput.getZDATA();
AuthDateReq authDateReq=new AuthDateReq();
authDateReq.setBatchNo(isInput.getSAPKEY());
authDateReq.setApplyRzlx("1");
for(ZDATA zdata1:zdata){
//成功或者失败标识
boolean flag = false;
String uuid = zdata1.getZFPDM()+zdata1.getZFPHM();
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid);
@ -338,32 +341,45 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("uuid",uuid);
//会计凭证号
updateWrapper.set("belnr",zdata1.getBELNR());
updateWrapper.set("snVoucherNumber",zdata1.getBELNR());
//凭证过账日期
updateWrapper.set("budat",zdata1.getBUDAT());
updateWrapper.set("postingTime",zdata1.getBUDAT());
//账期
updateWrapper.set("zq",zdata1.getBUDAT());
updateWrapper.set("accountPeriod",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<String,Object> 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());
if(update>0){
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<String,Object> 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 {
flag=true;
}
if(!flag){
promsg.append("票据号码:"+zdata1.getZFPHM()+"绑定成功! ");
}else {
}
}
zdataresp.setPROMSG(promsg.toString());
zdataresp.setPROTYP("s");
es.setZdata(zdataresp);
return es;
}

Loading…
Cancel
Save