feature:山能易行发票推送

release
gaorl 2 years ago
parent fd41a367d0
commit 34eebfcee0
  1. 233
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java

@ -85,6 +85,7 @@ import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 推送企业数据servcie实现类 * 推送企业数据servcie实现类
@ -459,6 +460,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
|| ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) { || ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) {
DxhyInterfaceResponse dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class); DxhyInterfaceResponse dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class);
if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())) { if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())) {
//TODO 山能易行回传流水号重置
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class); PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class);
EsOutput es_output = poCommonResponseParam.getES_OUTPUT(); EsOutput es_output = poCommonResponseParam.getES_OUTPUT();
@ -634,11 +636,6 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
} }
} }
public static void main(String[] args) {
String salt = "e4b0190b2fadc0adbe54471ffd79a729";
}
private OutputInvoiceRequest buildInvoiceRequest(DdfpxxV5 ddfpxx){ private OutputInvoiceRequest buildInvoiceRequest(DdfpxxV5 ddfpxx){
@ -1194,13 +1191,16 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
} }
private void updatePushErrorMsgToDb(String fpqqlsh, String errorMessage, List<String> shList) { private void updatePushErrorMsgToDb(String fpqqlsh, String errorMessage, List<String> shList) {
OrderInvoiceInfo orderQuery = new OrderInvoiceInfo(); String[] split = fpqqlsh.split(",");
orderQuery.setFpqqlsh(fpqqlsh); for (String fpqqlshItem : split) {
orderQuery.setPushStatus(OrderInfoEnum.PUSH_STATUS_2.getKey()); OrderInvoiceInfo orderQuery = new OrderInvoiceInfo();
orderQuery.setInvoicePushSbyy(errorMessage); orderQuery.setFpqqlsh(fpqqlshItem);
int updateByPrimaryKeySelective = orderInvoiceInfoService.updateOrderInvoiceInfoByFpqqlsh(orderQuery, shList); orderQuery.setPushStatus(OrderInfoEnum.PUSH_STATUS_2.getKey());
if (updateByPrimaryKeySelective <= 0) { orderQuery.setInvoicePushSbyy(errorMessage);
log.error("{}推送状态更新失败", LOGGER_MSG); int updateByPrimaryKeySelective = orderInvoiceInfoService.updateOrderInvoiceInfoByFpqqlsh(orderQuery, shList);
if (updateByPrimaryKeySelective <= 0) {
log.error("{}推送状态更新失败", LOGGER_MSG);
}
} }
} }
@ -1237,16 +1237,19 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
if (ObjectUtil.isNotEmpty(pushRspBO.getDDFPTS())) { if (ObjectUtil.isNotEmpty(pushRspBO.getDDFPTS())) {
ddfptsBOList.addAll(pushRspBO.getDDFPTS()); ddfptsBOList.addAll(pushRspBO.getDDFPTS());
} else { } else {
DdfptsBO ddfptsBO = new DdfptsBO(); String[] split = fpqqlsh.split(",");
ddfptsBO.setDDQQLSH(fpqqlsh); for (String fpqqlshSplit : split) {
ddfptsBO.setNSRSBH(nsrsbh); DdfptsBO ddfptsBO = new DdfptsBO();
if (ConfigureConstant.STRING_0000.equals(pushRspBO.getZTDM()) || ConfigureConstant.STRING_000000.equals(pushRspBO.getZTDM())) { ddfptsBO.setDDQQLSH(fpqqlshSplit);
ddfptsBO.setZTDM(ConfigureConstant.STRING_000000); ddfptsBO.setNSRSBH(nsrsbh);
} else { if (ConfigureConstant.STRING_0000.equals(pushRspBO.getZTDM()) || ConfigureConstant.STRING_000000.equals(pushRspBO.getZTDM())) {
ddfptsBO.setZTDM(ConfigureConstant.STRING_009999); ddfptsBO.setZTDM(ConfigureConstant.STRING_000000);
} } else {
ddfptsBO.setZTDM(ConfigureConstant.STRING_009999);
}
ddfptsBOList.add(ddfptsBO); ddfptsBOList.add(ddfptsBO);
}
} }
for (DdfptsBO ddfptsBO : ddfptsBOList) { for (DdfptsBO ddfptsBO : ddfptsBOList) {
@ -1319,102 +1322,105 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
List<GsClient> gsClients = gsClientMapper.selectByGsdm(orderProcessInfo.getGsdm()); List<GsClient> gsClients = gsClientMapper.selectByGsdm(orderProcessInfo.getGsdm());
//发票开具推送 //发票开具推送
DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class); List<DdfpzxxV5> ddfpzxxV5s = JsonUtils.getInstance().jsonToList(content, DdfpzxxV5.class);
DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX(); //DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class);
List<DdmxxxV5> ddmxxx = ddfpzxxV5.getDDMXXX();
List<FpkjtsReqSap> mainList = new ArrayList<>(); List<FpkjtsReqSap> mainList = new ArrayList<>();
FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap(); for (DdfpzxxV5 ddfpzxxV5 : ddfpzxxV5s) {
List<FpkjtsMxSap> itemList = new ArrayList<>(); DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX();
//主信息 List<DdmxxxV5> ddmxxx = ddfpzxxV5.getDDMXXX();
if(!OrderInfoEnum.SYS_SOURCE_FPPAGE.getKey().equals(orderProcessInfo.getXtly())){ FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap();
fpkjtsReqSap.setZJSDH(orderProcessInfo.getOriginDdh()); List<FpkjtsMxSap> itemList = new ArrayList<>();
}else {
fpkjtsReqSap.setZJSDH("");
}
fpkjtsReqSap.setZFPDM(ddfpxx.getFPDM());
fpkjtsReqSap.setZFPHM(ddfpxx.getFPHM());
fpkjtsReqSap.setZFPLX(CommonUtils.transToSnFplxdm(ddfpxx.getFPLXDM()));
fpkjtsReqSap.setZXFBM(ddfpxx.getXHFSBH());
fpkjtsReqSap.setZGFBH(ddfpxx.getGMFSBH());
fpkjtsReqSap.setZBHSJEY(ddfpxx.getHJJE());
fpkjtsReqSap.setZZSEY(ddfpxx.getHJSE());
fpkjtsReqSap.setZHSJEY(ddfpxx.getJSHJ());
fpkjtsReqSap.setZZBZ(ddfpxx.getBZ());
fpkjtsReqSap.setZFPZT(ConfigureConstant.STRING_0);//0-正常、1-作废
String formatKprq = "";
try {
Date date = (Date) new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ddfpxx.getKPRQ());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
formatKprq = sdf.format(date);
}catch (Exception e){
log.error("{}发票推送SAP格式化开票日期错误:{}",LOGGER_MSG,e);
}
fpkjtsReqSap.setZKPRQ(formatKprq);
fpkjtsReqSap.setZGFMC(ddfpxx.getGMFMC());
fpkjtsReqSap.setZGFSH(ddfpxx.getGMFSBH());
fpkjtsReqSap.setZXFMC(ddfpxx.getXHFMC());
fpkjtsReqSap.setZXFSH(ddfpxx.getXHFSBH());
fpkjtsReqSap.setZTID(ddfpxx.getFPDM()+ddfpxx.getFPHM()+ddfpxx.getFPLXDM());
fpkjtsReqSap.setZGFZH(ddfpxx.getGMFZH());
fpkjtsReqSap.setZGFDH(ddfpxx.getGMFDH());
fpkjtsReqSap.setZXFDH(ddfpxx.getXHFDH());
fpkjtsReqSap.setZXFZH(ddfpxx.getXHFZH());
fpkjtsReqSap.setZGSDM(orderProcessInfo.getGsdm());
fpkjtsReqSap.setZYWDJ(orderProcessInfo.getBzdh());
fpkjtsReqSap.setIMGID(orderInvoiceInfo.getDocuId());
if(OrderInfoEnum.SYS_SOURCE_DSXT01.getKey().equals(orderProcessInfo.getXtly()) ||
OrderInfoEnum.SYS_SOURCE_DSXT02.getKey().equals(orderProcessInfo.getXtly())){
fpkjtsReqSap.setPDFZJL(ddfpxx.getPDFZJL());
fpkjtsReqSap.setZJLLX(ddfpxx.getZJLLX());
}
//明细信息
ddmxxx.stream().forEach(f -> {
FpkjtsMxSap detail = new FpkjtsMxSap();
//主信息 //主信息
detail.setZJSDH(StringUtils.isNotBlank(orderProcessInfo.getOriginDdh())?orderProcessInfo.getOriginDdh():orderProcessInfo.getDdh()); if(!OrderInfoEnum.SYS_SOURCE_FPPAGE.getKey().equals(orderProcessInfo.getXtly())){
// detail.setZJSDH(ddfpxx.getDDH()); fpkjtsReqSap.setZJSDH(orderProcessInfo.getOriginDdh());
detail.setZFPDM(ddfpxx.getFPDM());
detail.setZFPHM(ddfpxx.getFPHM());
detail.setZFPHH(f.getXH());
if(ObjectUtil.isNull(f.getZXBM()) || StrUtil.isBlank(f.getZXBM())){
detail.setMATNR("");
}else { }else {
// DecimalFormat g1=new DecimalFormat("000000000000000000"); fpkjtsReqSap.setZJSDH("");
detail.setMATNR(f.getZXBM());
} }
detail.setZGGXH(f.getGGXH()); fpkjtsReqSap.setZFPDM(ddfpxx.getFPDM());
detail.setZSLDW(f.getDW()); fpkjtsReqSap.setZFPHM(ddfpxx.getFPHM());
detail.setZZSL(f.getSPSL()); fpkjtsReqSap.setZFPLX(CommonUtils.transToSnFplxdm(ddfpxx.getFPLXDM()));
detail.setZTAX(new BigDecimal(f.getSL()).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString()); fpkjtsReqSap.setZXFBM(ddfpxx.getXHFSBH());
detail.setZBHSJEY(f.getJE()); fpkjtsReqSap.setZGFBH(ddfpxx.getGMFSBH());
detail.setZZSEY(f.getSE()); fpkjtsReqSap.setZBHSJEY(ddfpxx.getHJJE());
detail.setZHSJEY(new BigDecimal(f.getJE()).add(new BigDecimal(f.getSE())).toString()); fpkjtsReqSap.setZZSEY(ddfpxx.getHJSE());
if(StrUtil.isBlank(f.getDJ())){ fpkjtsReqSap.setZHSJEY(ddfpxx.getJSHJ());
detail.setZZDJFP(""); fpkjtsReqSap.setZZBZ(ddfpxx.getBZ());
}else { fpkjtsReqSap.setZFPZT(ConfigureConstant.STRING_0);//0-正常、1-作废
detail.setZZDJFP(f.getDJ()); String formatKprq = "";
// detail.setZZDJFP(new BigDecimal(f.getDJ()).multiply(new BigDecimal(f.getSL()).add(BigDecimal.ONE)).setScale(ConfigureConstant.INT_8,BigDecimal.ROUND_HALF_EVEN).toString()); try {
Date date = (Date) new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ddfpxx.getKPRQ());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
formatKprq = sdf.format(date);
}catch (Exception e){
log.error("{}发票推送SAP格式化开票日期错误:{}",LOGGER_MSG,e);
} }
detail.setINVOICEDATE(ddfpxx.getKPRQ()); fpkjtsReqSap.setZKPRQ(formatKprq);
detail.setINVOICETYPE(ddfpxx.getFPLXDM()); fpkjtsReqSap.setZGFMC(ddfpxx.getGMFMC());
detail.setZHWMC(f.getXMMC()); fpkjtsReqSap.setZGFSH(ddfpxx.getGMFSBH());
detail.setZSM(ObjectUtil.isNull(smMap.get(f.getSL()))?"":smMap.get(f.getSL()).toString()); fpkjtsReqSap.setZXFMC(ddfpxx.getXHFMC());
itemList.add(detail); fpkjtsReqSap.setZXFSH(ddfpxx.getXHFSBH());
}); fpkjtsReqSap.setZTID(ddfpxx.getFPDM()+ddfpxx.getFPHM()+ddfpxx.getFPLXDM());
fpkjtsReqSap.setITITEM(itemList); fpkjtsReqSap.setZGFZH(ddfpxx.getGMFZH());
IsInput isInput = new IsInput(); fpkjtsReqSap.setZGFDH(ddfpxx.getGMFDH());
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey()); fpkjtsReqSap.setZXFDH(ddfpxx.getXHFDH());
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey()); fpkjtsReqSap.setZXFZH(ddfpxx.getXHFZH());
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); fpkjtsReqSap.setZGSDM(orderProcessInfo.getGsdm());
isInput.setZORG(""); fpkjtsReqSap.setZYWDJ(orderProcessInfo.getBzdh());
isInput.setZFILED5(gsClients.size()>0?gsClients.get(0).getClient():""); fpkjtsReqSap.setIMGID(orderInvoiceInfo.getDocuId());
mainList.add(fpkjtsReqSap); if(OrderInfoEnum.SYS_SOURCE_DSXT01.getKey().equals(orderProcessInfo.getXtly()) ||
String jsonString = JsonUtils.getInstance().toJsonString(mainList); OrderInfoEnum.SYS_SOURCE_DSXT02.getKey().equals(orderProcessInfo.getXtly())){
isInput.setZDATA(jsonString); fpkjtsReqSap.setPDFZJL(ddfpxx.getPDFZJL());
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); fpkjtsReqSap.setZJLLX(ddfpxx.getZJLLX());
poCommonRequestParam.setIS_INPUT(isInput); }
//明细信息
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam); ddmxxx.stream().forEach(f -> {
FpkjtsMxSap detail = new FpkjtsMxSap();
//主信息
detail.setZJSDH(StringUtils.isNotBlank(orderProcessInfo.getOriginDdh())?orderProcessInfo.getOriginDdh():orderProcessInfo.getDdh());
// detail.setZJSDH(ddfpxx.getDDH());
detail.setZFPDM(ddfpxx.getFPDM());
detail.setZFPHM(ddfpxx.getFPHM());
detail.setZFPHH(f.getXH());
if(ObjectUtil.isNull(f.getZXBM()) || StrUtil.isBlank(f.getZXBM())){
detail.setMATNR("");
}else {
// DecimalFormat g1=new DecimalFormat("000000000000000000");
detail.setMATNR(f.getZXBM());
}
detail.setZGGXH(f.getGGXH());
detail.setZSLDW(f.getDW());
detail.setZZSL(f.getSPSL());
detail.setZTAX(new BigDecimal(f.getSL()).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString());
detail.setZBHSJEY(f.getJE());
detail.setZZSEY(f.getSE());
detail.setZHSJEY(new BigDecimal(f.getJE()).add(new BigDecimal(f.getSE())).toString());
if(StrUtil.isBlank(f.getDJ())){
detail.setZZDJFP("");
}else {
detail.setZZDJFP(f.getDJ());
// detail.setZZDJFP(new BigDecimal(f.getDJ()).multiply(new BigDecimal(f.getSL()).add(BigDecimal.ONE)).setScale(ConfigureConstant.INT_8,BigDecimal.ROUND_HALF_EVEN).toString());
}
detail.setINVOICEDATE(ddfpxx.getKPRQ());
detail.setINVOICETYPE(ddfpxx.getFPLXDM());
detail.setZHWMC(f.getXMMC());
detail.setZSM(ObjectUtil.isNull(smMap.get(f.getSL()))?"":smMap.get(f.getSL()).toString());
itemList.add(detail);
});
fpkjtsReqSap.setITITEM(itemList);
IsInput isInput = new IsInput();
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey());
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey());
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey());
isInput.setZORG("");
isInput.setZFILED5(gsClients.size()>0?gsClients.get(0).getClient():"");
mainList.add(fpkjtsReqSap);
String jsonString = JsonUtils.getInstance().toJsonString(mainList);
isInput.setZDATA(jsonString);
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam();
poCommonRequestParam.setIS_INPUT(isInput);
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
}
}else if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())){ }else if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())){
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(fpTsMqData.getZfTsMqData().getFpdm(), fpTsMqData.getZfTsMqData().getFphm(), null); OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(fpTsMqData.getZfTsMqData().getFpdm(), fpTsMqData.getZfTsMqData().getFphm(), null);
@ -1479,6 +1485,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
return null; return null;
} }
orderProcessInfoList.addAll(orderProcessInfos); orderProcessInfoList.addAll(orderProcessInfos);
String fpqqlsh = orderProcessInfos.stream().map(t -> t.getFpqqlsh()).collect(Collectors.joining(","));
fpTsMqData.setFpqqlsh(fpqqlsh);
log.info("山能易行发票回推重置流水号{}",fpqqlsh);
}else{ }else{
orderProcessInfoList.add(orderProcessInfo); orderProcessInfoList.add(orderProcessInfo);
} }

Loading…
Cancel
Save