feature 1.电商逻辑

release
zhenghaiyang@ele-cloud.com 2 years ago
parent 7ab10f950c
commit f001bf9a6b
  1. 3
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
  2. 261
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
  3. 7
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjReqSap.java
  4. 3
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -403,7 +403,10 @@ public enum OrderInfoEnum {
* 系统来源(SAP:SAP)
*/
SYS_SOURCE_SAP("SAP","SAP"),
SYS_SOURCE_FPPAGE("FPPAGE","FPPAGE"),
SYS_SOURCE_DSXT("DSXT","DSXT"),
SYS_SOURCE_DSXT01("DSXT01","DSXT01"),
SYS_SOURCE_DSXT02("DSXT02","DSXT02"),
/**
* 订单类型0:原始订单,1:拆分后订单,2:合并后订单,3:系统冲红订单,4:自动开票订单,5:作废重开订单;6:历史数据订单;7:发票修复数据

@ -410,10 +410,16 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
log.warn("税号:{},组装请求报文为空,不进行推送数据", fpTsMqData.getNsrsbh());
continue;
}
OrderProcessInfo orderProcessInfo = null;
Map<String, String> requestMap = commonDisposeService.getRequestParameter(pushInfo.getNsrsbh(), pushInfo.getZipCode(), pushInfo.getEncryptCode(), content, pushInfo.getPushUrl(), pushInfo.getInterfaceType(), pushInfo.getVersionIdent());
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
fptsParam = convertToYwxtParam(fpTsMqData,xtly,content);
if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())) {
orderProcessInfo = orderProcessService.queryOrderProcessInfoByFpqqlsh(fpTsMqData.getFpTsMqData().getFpqqlsh(), null);
} else if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())){
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(fpTsMqData.getZfTsMqData().getFpdm(), fpTsMqData.getZfTsMqData().getFphm(), null);
orderProcessInfo = orderProcessService.selectByOrderId(orderInvoiceInfo.getOrderInfoId(), null);
}
if(StringUtils.isNotBlank(pushInfo.getByzd1())){
fptsParam = convertToYwxtParam(fpTsMqData,content);
}else {
fptsParam = JsonUtils.getInstance().toJsonString(requestMap);
}
@ -428,7 +434,15 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
String result = "";
if (ConfigurerInfo.INTERFACE_VERSION_V5.equals(pushInfo.getVersionIdent())
|| ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) {
result = HttpUtils.sendPo(pushInfo.getPushUrl(), fptsParam,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword());
if (StringUtils.isNotBlank(pushInfo.getByzd1()) && OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(pushInfo.getByzd1())) {
result = HttpUtils.sendPo(pushInfo.getPushUrl(), fptsParam,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword());
}else if(OrderInfoEnum.SYS_SOURCE_DSXT01.getKey().equals(orderProcessInfo.getXtly()) && StringUtils.isNotBlank(pushInfo.getByzd1())
&& pushInfo.getByzd1().equals(orderProcessInfo.getXtly())){
result = HttpUtils.sendPo(pushInfo.getPushUrl(), fptsParam,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword());
} else if (OrderInfoEnum.SYS_SOURCE_DSXT02.getKey().equals(orderProcessInfo.getXtly()) && StringUtils.isNotBlank(pushInfo.getByzd1())
&& pushInfo.getByzd1().equals(orderProcessInfo.getXtly())) {
result = HttpUtils.sendPo(pushInfo.getPushUrl(), fptsParam,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword());
}
} else {
result = HttpUtils.doPost(pushInfo.getPushUrl(), requestMap);
}
@ -1288,7 +1302,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
return content;
}
public String convertToYwxtParam(CommonTsMqData fpTsMqData,String xtly,String content){
public String convertToYwxtParam(CommonTsMqData fpTsMqData,String content){
String ywxtParam = "";
@ -1300,137 +1314,138 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
List<GsClient> gsClients = gsClientMapper.selectByGsdm(orderProcessInfo.getGsdm());
//发票开具推送
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class);
DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX();
List<DdmxxxV5> ddmxxx = ddfpzxxV5.getDDMXXX();
List<FpkjtsReqSap> mainList = new ArrayList<>();
FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap();
List<FpkjtsMxSap> itemList = new ArrayList<>();
DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class);
DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX();
List<DdmxxxV5> ddmxxx = ddfpzxxV5.getDDMXXX();
List<FpkjtsReqSap> mainList = new ArrayList<>();
FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap();
List<FpkjtsMxSap> itemList = new ArrayList<>();
//主信息
if(!OrderInfoEnum.SYS_SOURCE_FPPAGE.getKey().equals(orderProcessInfo.getXtly())){
fpkjtsReqSap.setZJSDH(orderProcessInfo.getOriginDdh());
}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();
//主信息
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(orderProcessInfo.getXtly())){
fpkjtsReqSap.setZJSDH(orderProcessInfo.getOriginDdh());
detail.setZJSDH(orderProcessInfo.getOriginDdh());
}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);
detail.setZJSDH("");
}
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());
fpkjtsReqSap.setPDFZJL(ddfpxx.getPDFZJL());
fpkjtsReqSap.setZJLLX(ddfpxx.getZJLLX());
//明细信息
ddmxxx.stream().forEach(f -> {
FpkjtsMxSap detail = new FpkjtsMxSap();
//主信息
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(orderProcessInfo.getXtly())){
detail.setZJSDH(orderProcessInfo.getOriginDdh());
}else {
detail.setZJSDH("");
}
// 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 {
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.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);
}
}
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())){
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(fpTsMqData.getZfTsMqData().getFpdm(), fpTsMqData.getZfTsMqData().getFphm(), null);
OrderProcessInfo orderProcessInfo = orderProcessService.selectByOrderId(orderInvoiceInfo.getOrderInfoId(), null);
List<GsClient> gsClients = gsClientMapper.selectByGsdm(orderProcessInfo.getGsdm());
//发票作废推送
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
ZffptsV5 zffptsV5 = JsonUtils.getInstance().parseObject(content, ZffptsV5.class);
List<FpzftsReqSap> zfList = new ArrayList<>();
FpzftsReqSap fpzftsReqSap = new FpzftsReqSap();
fpzftsReqSap.setZFPDM(zffptsV5.getFPDM());
fpzftsReqSap.setZFPHM(zffptsV5.getFPHM());
//0 是正常 1是作废
fpzftsReqSap.setZFPZT(ConfigureConstant.STRING_1);
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(orderProcessInfo.getXtly())){
fpzftsReqSap.setZJSDH(orderProcessInfo.getOriginDdh());
}else {
fpzftsReqSap.setZBZDH(orderProcessInfo.getBzdh());
}
IsInput isInput = new IsInput();
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey());
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPZFTS.getKey());
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey());
isInput.setZORG("");
isInput.setZFILED5(gsClients.size()>0?gsClients.get(0).getClient():"");
zfList.add(fpzftsReqSap);
String jsonString = JsonUtils.getInstance().toJsonString(zfList);
isInput.setZDATA(jsonString);
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam();
poCommonRequestParam.setIS_INPUT(isInput);
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
ZffptsV5 zffptsV5 = JsonUtils.getInstance().parseObject(content, ZffptsV5.class);
List<FpzftsReqSap> zfList = new ArrayList<>();
FpzftsReqSap fpzftsReqSap = new FpzftsReqSap();
fpzftsReqSap.setZFPDM(zffptsV5.getFPDM());
fpzftsReqSap.setZFPHM(zffptsV5.getFPHM());
//0 是正常 1是作废
fpzftsReqSap.setZFPZT(ConfigureConstant.STRING_1);
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(orderProcessInfo.getXtly())){
fpzftsReqSap.setZJSDH(orderProcessInfo.getOriginDdh());
}else {
fpzftsReqSap.setZBZDH(orderProcessInfo.getBzdh());
}
IsInput isInput = new IsInput();
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey());
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPZFTS.getKey());
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey());
isInput.setZORG("");
isInput.setZFILED5(gsClients.size()>0?gsClients.get(0).getClient():"");
zfList.add(fpzftsReqSap);
String jsonString = JsonUtils.getInstance().toJsonString(zfList);
isInput.setZDATA(jsonString);
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam();
poCommonRequestParam.setIS_INPUT(isInput);
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
}
return ywxtParam;

@ -87,8 +87,6 @@ public class FpkjReqSap {
* 行项目结构
*/
private List<FpkjMxSap> ITITEM;
//是否为电商系统数据
private String ZDSXT;
//是否独立开票抬头
private String ZDLKPTT;
//金税开票抬头名称
@ -103,4 +101,9 @@ public class FpkjReqSap {
private String ZKPKHH;
//金税开票银行账号
private String ZKPZH;
//电商业务分类 01 表示物资公司业务
//02 表示煤炭化工业务
private String ZDSYWFL;
//是否为电商系统数据 如果为X,表示数据来自电商系统,开票完成后需要推送给电商系统开票数据及板式文件。
private String ZDSXT;
}

@ -3521,6 +3521,9 @@ public class BeanTransitionUtils {
ddtxxBO.setGMFZH(req.getZKPZH());
ddtxxBO.setGMFBM("");
}
if(StringUtils.isNotBlank(req.getZDSXT()) && StringUtils.isNotBlank(req.getZDSYWFL())){
ddtxxBO.setXTLY(OrderInfoEnum.SYS_SOURCE_DSXT.getKey()+req.getZDSYWFL());
}
ddtxxBO.setGSDM(req.getBUKRS());
ddtxxBO.setENTID(deptEntity.getDeptId());
ddtxxBO.setBHZT(ConfigureConstant.STRING_0);

Loading…
Cancel
Save