瀏覽代碼

车辆历史轨迹核验(运单详版)- 增加不一致,上游返回空的结果项

15810770710@163.com 3 年之前
父節點
當前提交
e2378ce7f6

+ 4 - 1
src/main/java/info/aspirecn/iov/yysj/product/check/common/ChannelRibbonHandle.java

@@ -9,6 +9,7 @@ import javax.annotation.Resource;
 
 import info.aspirecn.cloud.yysj.commons.lang.Constants;
 import info.aspirecn.iov.yysj.product.check.entity.ResponseObject;
+import org.apache.tomcat.util.bcel.Const;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -32,18 +33,20 @@ public class ChannelRibbonHandle {
 	@Autowired
 	Property property;
 
-	public ResponseObject channelRibbonHandle(String  token,String body) {
+	public ResponseObject channelRibbonHandle(String  token,String body, String userId) {
 		ResponseObject responseObject = null;
 		try{
 				RequestContext.getCurrentContext().set("connectTimeout", property.getConnetTimeOut());
 				RequestContext.getCurrentContext().set("readTimeout", property.getReadTimeOut()+1000);
 			HttpHeaders headers = new HttpHeaders();
+			log.info("channelRibbonHandle,userId:{}", userId);
 
 			restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
 			MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
 			headers.setContentType(type);
 			headers.add(Constants.HEADER_ACCEPT_KEY, MediaType.APPLICATION_JSON.toString()+";charset=UTF-8");
 			headers.add(Constants.HEADER_TOKEN_KEY, token);
+			headers.add(Constants.HEADER_USER_ID, userId);
 			HttpEntity <String>httpEntity =null;
 			ResponseEntity<ResponseObject> entity = null;
 				httpEntity = new HttpEntity<String>(body,

+ 42 - 11
src/main/java/info/aspirecn/iov/yysj/product/check/common/ZuulHelper.java

@@ -9,6 +9,8 @@ import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
 import info.aspirecn.cloud.yysj.commons.lang.BillItemResult;
 import info.aspirecn.cloud.yysj.commons.lang.Constants;
@@ -255,41 +257,70 @@ public class ZuulHelper {
 					// 核验不一致
 					result =Constants.inconsistent_code;
 					billItemResult.setDetail(String.valueOf(responseObject.getResultBody()));
+				} else {
+					// 查询失败
+					billItemResult.setResult(Constants.inconsistent_code);
+					errorResponse.setCode(Constants.ErrorCode.Exception.getErrorCode());
+					billItemResult.setExceptionInformation(errorResponse);
+				}
+			} else if(String.valueOf(productMap.get("clgjhy")).equals(String.valueOf(productId))){
+				if ("1".equals(responseObject.getResultCode())) {
+					// 核验一致
+					result =Constants.consistent_code;
+				} else if ("2".equals(responseObject.getResultCode())) {
+					// 核验不一致
+					result =Constants.inconsistent_code;
+					inconsistentList.add(String.valueOf(responseObject.getResultBody()));
+					errorResponse.setCode(Constants.ErrorCode.INCONSISTENT_DETAIL_STRING.getErrorCode());
+					errorResponse.setResultList(inconsistentList);
 				} else if ("4".equals(responseObject.getResultCode())) {
 					// 数据源为空
-					result = Constants.inconsistent_code;
-					emptyList.add(Constants.zxh_data);
+					result =Constants.inconsistent_code;
+					try {
+						JSONArray inconsistentArray = JSON.parseArray(JSON.toJSONString(responseObject.getResultBody()));
+						for (Object inconsistentObject : inconsistentArray) {
+							emptyList.add(String.valueOf(inconsistentObject));
+						}
+					} catch (JSONException e) {
+						emptyList.add(Constants.zxh_data);
+					}
 					errorResponse.setCode(Constants.ErrorCode.NULL.getErrorCode());
 					errorResponse.setResultList(emptyList);
 				} else {
 					// 查询失败
-					billItemResult.setResult(Constants.inconsistent_code);
+					result = Constants.inconsistent_code;
 					errorResponse.setCode(Constants.ErrorCode.Exception.getErrorCode());
 					billItemResult.setExceptionInformation(errorResponse);
 				}
-			} else if(String.valueOf(productMap.get("clgjhy")).equals(String.valueOf(productId))){
+			} else if (String.valueOf(productMap.get("rycyzgz")).equals(String.valueOf(productId))
+					|| String.valueOf(productMap.get("clcyzgz")).equals(String.valueOf(productId))
+					|| String.valueOf(productMap.get("qycyzgz")).equals(String.valueOf(productId))) {
 				if ("1".equals(responseObject.getResultCode())) {
 					// 核验一致
 					result =Constants.consistent_code;
 				} else if ("2".equals(responseObject.getResultCode())) {
 					// 核验不一致
 					result =Constants.inconsistent_code;
-					inconsistentList.add(String.valueOf(responseObject.getResultBody()));
+					log.info(JSON.toJSONString(responseObject.getResultBody()));
+					JSONArray inconsistentArray = JSON.parseArray(JSON.toJSONString(responseObject.getResultBody()));
+					for (Object inconsistentObject : inconsistentArray) {
+						inconsistentList.add(String.valueOf(inconsistentObject));
+					}
 					errorResponse.setCode(Constants.ErrorCode.INCONSISTENT_DETAIL.getErrorCode());
 					errorResponse.setResultList(inconsistentList);
 				} else if ("4".equals(responseObject.getResultCode())) {
 					// 数据源为空
 					result = Constants.inconsistent_code;
-					emptyList.add(Constants.zxh_data);
 					errorResponse.setCode(Constants.ErrorCode.NULL.getErrorCode());
 					errorResponse.setResultList(emptyList);
 				} else {
 					// 查询失败
-					billItemResult.setResult(Constants.inconsistent_code);
+					result = Constants.inconsistent_code;
 					errorResponse.setCode(Constants.ErrorCode.Exception.getErrorCode());
 					billItemResult.setExceptionInformation(errorResponse);
 				}
-			} else {
+			}
+			else {
 				log.info("codes:{},productCode:{}",property.getDetailProductCodes(),productCode);
 				if (!"1".equals(responseObject.getResultCode())&&!"1000".equals(responseObject.getResultCode())) {
 					/*if("3".equals(responseObject.getResultCode())){
@@ -454,7 +485,7 @@ public class ZuulHelper {
 			}
 		}
 	}
-	public ResponseObject getResult(SjjhTransferReq sjjhTransferReq,BillItemResult billItemResult,String  productCode) throws IOException {
+	public ResponseObject getResult(SjjhTransferReq sjjhTransferReq,BillItemResult billItemResult,String  productCode, String userId) throws IOException {
 		BillItemResult.ErrorResponse errorResponse = new BillItemResult.ErrorResponse();
 
 		billItemResult.setResult(Constants.consistent_code);
@@ -465,7 +496,7 @@ public class ZuulHelper {
 		String requestBodyStr = mapper.writeValueAsString(requestBody);
 		log.info("requestBodyStr:{}", requestBodyStr);
 		requestBodyStr = new String(requestBodyStr.getBytes(), "utf-8");
-		ResponseObject responseObject = channelRibbonHandle.channelRibbonHandle(sjjhTransferReq.getToken(), requestBodyStr);
+		ResponseObject responseObject = channelRibbonHandle.channelRibbonHandle(sjjhTransferReq.getToken(), requestBodyStr, userId);
 		if (responseObject == null) {//系统错误
 			billItemResult.setResult(Constants.inconsistent_code);
 			errorResponse.setCode(Constants.ErrorCode.Exception.getErrorCode());
@@ -487,7 +518,7 @@ public class ZuulHelper {
 		String requestBodyStr = mapper.writeValueAsString(requestBody);
 		log.info("requestBodyStr:{}", requestBodyStr);
 		requestBodyStr = new String(requestBodyStr.getBytes(), "utf-8");
-		ResponseObject responseObject = channelRibbonHandle.channelRibbonHandle(sjjhTransferReq.getToken(), requestBodyStr);
+		ResponseObject responseObject = channelRibbonHandle.channelRibbonHandle(sjjhTransferReq.getToken(), requestBodyStr, "");
 		if(responseObject!=null ){
 			if("1".equals(responseObject.getResultCode())) {
 

+ 5 - 5
src/main/java/info/aspirecn/iov/yysj/product/check/pre/WayBillFilter.java

@@ -50,13 +50,13 @@ public class WayBillFilter extends ZuulFilter {
 		BillItemResult billItemResult = new BillItemResult();
 		String accessId = UUID.randomUUID().toString().replace("-","");
 		HttpServletRequest request = RequestContext.getCurrentContext().getRequest();
-
-
 		try {
 			//从请求头中获取token
 			String token = request.getHeader(Constants.HEADER_TOKEN_KEY);
 			int price =0;
 			String yysjTraceId = request.getHeader(Constants.HEADER_TRACEID_KEY);
+			String userId = request.getHeader(Constants.USER_ID_KEY);
+			log.info("WayBillFilter.userId:{}", userId);
 
 			String body = helper.getCustomBody(request);
 			ProductCheckRequest productCheckRequest = mapper.readValue(body, ProductCheckRequest.class);
@@ -78,7 +78,7 @@ public class WayBillFilter extends ZuulFilter {
 				//设置云验平台资格校验项校验内容,用于返回结果一致性比较
 				sjjhTransferReq.setOriginCustomBody(customMap);
 				sjjhTransferReq.setToken(token);
-				ResponseObject responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode());
+				ResponseObject responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode(), userId);
 				price = responseObject.getPrice();
 			}else{
 
@@ -94,7 +94,7 @@ public class WayBillFilter extends ZuulFilter {
 				Map<String,String> customObject = transferParam.getCustomBody(customMap,sjjhProductId,emptyList);
 				sjjhTransferReq.setCustomBody(customObject);
 				sjjhTransferReq.setOriginCustomBody(customMap);
-				ResponseObject responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode());
+				ResponseObject responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode(), userId);
 				 result =billItemResult.getResult();
 				price = responseObject.getPrice();
 				if(Constants.consistent_code.equals(result)){
@@ -109,7 +109,7 @@ public class WayBillFilter extends ZuulFilter {
 					customObject = transferParam.getCustomBody(customMap,sjjhProductId,emptyList);
 					sjjhTransferReq.setCustomBody(customObject);
 					sjjhTransferReq.setOriginCustomBody(customMap);
-					responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode());
+					responseObject = helper.getResult(sjjhTransferReq,billItemResult,productCheckRequest.getProductCode(), userId);
 					result =responseObject.getReuslt();
 					price = price+responseObject.getPrice();
 				}