fix:查询sap报账单号状态结果解析

release
kane 2 years ago
parent bc96333fb9
commit fc91916c4b
  1. 52
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java

@ -68,8 +68,13 @@ import com.dxhy.order.model.qdsk.taxpayerinfo.Qdjcxx;
import com.dxhy.order.model.queue.CommonTsMqData; import com.dxhy.order.model.queue.CommonTsMqData;
import com.dxhy.order.model.queue.FpTsMqData; import com.dxhy.order.model.queue.FpTsMqData;
import com.dxhy.order.utils.*; import com.dxhy.order.utils.*;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -201,7 +206,6 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private RabbitMqSendMessageService rabbitMqSendMessageService; private RabbitMqSendMessageService rabbitMqSendMessageService;
DecimalFormat format = new DecimalFormat("#.###"); DecimalFormat format = new DecimalFormat("#.###");
@Override @Override
@ -2073,7 +2077,6 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
@Override @Override
public R mergeOrderItem(String entId, String orderInfoId, List<String> itemList) throws Exception { public R mergeOrderItem(String entId, String orderInfoId, List<String> itemList) throws Exception {
@ -2156,7 +2159,6 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
/** /**
*
* @param operation 0 开票1 作废 2冲红 * @param operation 0 开票1 作废 2冲红
* @param params发票请求流水号集合信息表编号 * @param params发票请求流水号集合信息表编号
* @return * @return
@ -2280,6 +2282,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
/** /**
* 功能描述: 替换报账单号 * 功能描述: 替换报账单号
*
* @param replaceOddDTO * @param replaceOddDTO
* @return : com.dxhy.order.model.R * @return : com.dxhy.order.model.R
*/ */
@ -2293,6 +2296,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
log.error("{},替换报账单号接口传入报账单号为空", LOGGER_MSG); log.error("{},替换报账单号接口传入报账单号为空", LOGGER_MSG);
return R.error("传入报账单号为空"); return R.error("传入报账单号为空");
} }
ObjectMapper objectMapper = new ObjectMapper();
try { try {
// 调用sap获取报账单号状态 // 调用sap获取报账单号状态
String poClient = baseServiceConfig.getPoClient(); String poClient = baseServiceConfig.getPoClient();
@ -2311,27 +2315,36 @@ public class OrderInfoServiceImpl implements OrderInfoService {
poCommonRequestParam.setIS_INPUT(isInput); poCommonRequestParam.setIS_INPUT(isInput);
String param = JsonUtils.getInstance().toJsonString(poCommonRequestParam); String param = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
log.info("{}获取公司client入参:{}", LOGGER_MSG, param); log.info("{}获取公司client入参:{}", LOGGER_MSG, param);
String result = HttpUtils.sendPo(baseServiceConfig.getPoUrl(), param,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword()); String result = HttpUtils.sendPo(baseServiceConfig.getPoUrl(), param,
baseServiceConfig.getPoUserName(), baseServiceConfig.getPoPassword());
log.info("{}获取公司client出参:{}", LOGGER_MSG, result); log.info("{}获取公司client出参:{}", LOGGER_MSG, result);
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();
String ztype = es_output.getZTYPE(); String ztype = es_output.getZTYPE();
String zmessage = es_output.getZMESSAGE(); String zmessage = es_output.getZMESSAGE();
Object zdata = es_output.getZDATA(); log.info("{},替换报账单号,替换信息:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(poCommonResponseParam));
log.info("{},替换报账单号,替换信息:{}",JsonUtils.getInstance().toJsonString(poCommonResponseParam)); // 解析sap返回结果
List<String> statusList = new ArrayList<>();
if (OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)) { if (OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)) {
List<Map<String,String>> gsClientList = JsonUtils.getInstance().parseObject(zdata.toString(), List.class); JsonNode rootNode = objectMapper.readTree(result);
gsClientList.stream().forEach(f -> { JsonNode esOutputNode = rootNode.get("ES_OUTPUT");
String status = ObjectUtil.isNull(f.get("BZDZT"))?"":f.get("BZDZT").toString(); JsonNode zDataNode = esOutputNode.get("ZDATA");
statusList.add(status); if (StringUtils.isBlank(zDataNode.toString())) {
}); log.error("{}sap返回的data是空", LOGGER_MSG);
for (String bzdzt : statusList) { return R.error("未在sap系统中查询到该报账单号");
if ("50".equals(bzdzt)){ }
log.error("{}sap报账单号状态不允许替换,报账单号状态:{}",LOGGER_MSG,bzdzt); String bzdzt = zDataNode.asText();
JsonNode bzdztNode = objectMapper.readTree(bzdzt);
String bzdztValue = bzdztNode.get("BZDZT").asText();
if (StringUtils.isBlank(bzdztValue)) {
log.error("{}sap返回的报账单号状态为空", LOGGER_MSG);
return R.error("未在sap系统中查询到该报账单号");
}
log.info("{}sap返回报账单号状态:{}", LOGGER_MSG, bzdztValue);
if ("50".equals(bzdztValue)) {
log.error("{}sap报账单号状态不允许替换,报账单号状态:{}", LOGGER_MSG, bzdztValue);
return R.error("该报账单号状态不允许替换"); return R.error("该报账单号状态不允许替换");
} }
}
OrderInfo newOrderInfo = orderMapper.findByFpqqlish(replaceOddDTO.getBzdh()); OrderInfo newOrderInfo = orderMapper.findByFpqqlish(replaceOddDTO.getBzdh());
if (newOrderInfo == null) { if (newOrderInfo == null) {
log.error("{}输入报账单号在该系统未查询到信息,不允许替换", LOGGER_MSG); log.error("{}输入报账单号在该系统未查询到信息,不允许替换", LOGGER_MSG);
@ -2473,6 +2486,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
/** /**
* 红字信息表不存在清单的对比订单和红字信息表 * 红字信息表不存在清单的对比订单和红字信息表
*
* @param order , hzxxb * @param order , hzxxb
* @return * @return
*/ */
@ -2541,9 +2555,9 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
/** /**
* 红字信息表存在清单的对比订单和红字信息表 * 红字信息表存在清单的对比订单和红字信息表
*
* @param order , hzxxb * @param order , hzxxb
* @return * @return
*/ */
@ -2570,6 +2584,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
/** /**
* 对比订单和红字信息表的购销方信息 * 对比订单和红字信息表的购销方信息
*
* @param order , hzxxb * @param order , hzxxb
* @return * @return
*/ */
@ -2648,6 +2663,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
/** /**
* 校验红字信息表否在销项系统中存在 并且状态是不是审核通过 * 校验红字信息表否在销项系统中存在 并且状态是不是审核通过
*
* @param hzxxbbhList * @param hzxxbbhList
* @return * @return
*/ */

Loading…
Cancel
Save