|
|
@@ -121,49 +121,46 @@ public class CheckService {
|
|
|
String[] checkItem = labCheckIn.split(",");
|
|
|
File toFile = multipartFileToFile(file);
|
|
|
for (String code : checkItem) {
|
|
|
- //========= 获取算法INFO ===========
|
|
|
- AlgorithmYml.CheckValid checkValid = algorithmYml.getCheckValid(Integer.valueOf(code));
|
|
|
- MultiValueMap<String, Object> params = getStringObjectMultiValueMap(checkValid, String.valueOf(id));
|
|
|
- HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(toFile, params);
|
|
|
- //添加一条算法请求记录
|
|
|
- R alg = insertRequestRecordLog(orgImgUrl, subId, checkValid);
|
|
|
- logger.info("【调用算法服务】 添加算法调用日志,添加结果:"+JSONObject.toJSONString(alg));
|
|
|
-
|
|
|
- //请求算法服务
|
|
|
- ImgPostResponse<AnalysisReturnData> send = HttpUtils.sendV5(restTemplateLocal, files, algorithmYml);
|
|
|
- AlgorithmResponseResult responseResult = getResponseResult(send);
|
|
|
- //添加成功,更新算法日志记录
|
|
|
- if (alg.getCode() == 200) {
|
|
|
- updateRequestRecordLog(alg.getData() != null?Long.valueOf(alg.getData()+""):null, responseResult);
|
|
|
- logger.info("【调用算法服务】 更新算法调用日志记录");
|
|
|
- }
|
|
|
- //判断算法
|
|
|
- if (responseResult.getCode() == 1000) {
|
|
|
- //通过
|
|
|
- if (responseResult.getIsPass()) {
|
|
|
- alarmNum++;
|
|
|
+ try {
|
|
|
+ //========= 获取算法INFO ===========
|
|
|
+ AlgorithmYml.CheckValid checkValid = algorithmYml.getCheckValid(Integer.valueOf(code));
|
|
|
+ MultiValueMap<String, Object> params = getStringObjectMultiValueMap(checkValid, String.valueOf(id));
|
|
|
+ HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(toFile, params);
|
|
|
+ //添加一条算法请求记录
|
|
|
+ R alg = insertRequestRecordLog(orgImgUrl, subId, checkValid);
|
|
|
+ logger.info("【调用算法服务】 添加算法调用日志,添加结果:"+JSONObject.toJSONString(alg));
|
|
|
+
|
|
|
+ //请求算法服务
|
|
|
+ ImgPostResponse<AnalysisReturnData> send = HttpUtils.sendV5(restTemplateLocal, files, algorithmYml);
|
|
|
+ AlgorithmResponseResult responseResult = getResponseResult(send);
|
|
|
+ //添加成功,更新算法日志记录
|
|
|
+ if (alg.getCode() == 200) {
|
|
|
+ updateRequestRecordLog(alg.getData() != null?Long.valueOf(alg.getData()+""):null, responseResult);
|
|
|
+ logger.info("【调用算法服务】 更新算法调用日志记录");
|
|
|
+ }
|
|
|
+ //判断算法
|
|
|
+ if (responseResult.getCode() == 1000) {
|
|
|
+ //通过
|
|
|
+ if (responseResult.getIsPass()) {
|
|
|
+ alarmNum++;
|
|
|
+ } else {
|
|
|
+ //不跳过
|
|
|
+ if (executeSkipped(id, labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
+ return R.fail(300, "算法识别未通过", code);
|
|
|
+ }
|
|
|
+ Boolean f = send.getStatus_code() == 1000;
|
|
|
+ String msg = f ? "解析成功!" : "解析失败!";
|
|
|
+ send(code, id, f, msg);
|
|
|
} else {
|
|
|
//不跳过
|
|
|
- if (StringUtils.isNotEmpty(labSkipped) && labSkipped.equals("1")) {
|
|
|
- //如果没有通过则次数加一
|
|
|
- //键为前缀+签到id +下划线+验证类型
|
|
|
- String key = BaseConstants.SINGIN_CHECK_JUMP_KEY +id+ "_" + code;
|
|
|
- Long increment = redisTemplate.opsForValue().increment(key);
|
|
|
- redisService.expire(key, BaseConstants.SINGIN_OUT_TIME);
|
|
|
- if (increment != null && increment >= Integer.parseInt(labCheckCount)) {
|
|
|
- //黎晨这里让把跳过时状态码改为700,所以700的含义为检查失败并且跳过
|
|
|
- return R.fail(700, "符合跳过条件执行跳过");
|
|
|
- }
|
|
|
- }
|
|
|
- return R.fail(300, "算法识别未通过", code);
|
|
|
+ if (executeSkipped(id, labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
+ assert send != null;
|
|
|
+ logger.error("【调用算法服务】 算法服务调用失败,响应信息:"+ JSONObject.toJSONString(send));
|
|
|
+ return R.fail("算法服务错误,请重试!");
|
|
|
}
|
|
|
- Boolean f = send.getStatus_code() == 1000;
|
|
|
- String msg = f ? "解析成功!" : "解析失败!";
|
|
|
- send(code, id, f, msg);
|
|
|
- } else {
|
|
|
- assert send != null;
|
|
|
- logger.error("【调用算法服务】 算法服务调用失败,响应信息:"+ JSONObject.toJSONString(send));
|
|
|
- return R.fail("算法服务错误,请重试!");
|
|
|
+ }catch (Exception e){
|
|
|
+ //不跳过
|
|
|
+ if (executeSkipped(id, labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
}
|
|
|
}
|
|
|
if (alarmNum == checkItem.length) {
|
|
|
@@ -175,6 +172,29 @@ public class CheckService {
|
|
|
return R.fail();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 跳过公用方法
|
|
|
+ * @param id
|
|
|
+ * @param labSkipped
|
|
|
+ * @param labCheckCount
|
|
|
+ * @param code
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean executeSkipped(Long id, String labSkipped, String labCheckCount, String code) {
|
|
|
+ if (StringUtils.isNotEmpty(labSkipped) && labSkipped.equals("1")) {
|
|
|
+ //如果没有通过则次数加一
|
|
|
+ //键为前缀+签到id +下划线+验证类型
|
|
|
+ String key = BaseConstants.SINGIN_CHECK_JUMP_KEY +id+ "_" + code;
|
|
|
+ Long increment = redisTemplate.opsForValue().increment(key);
|
|
|
+ redisService.expire(key, BaseConstants.SINGIN_OUT_TIME);
|
|
|
+ if (increment != null && increment >= Integer.parseInt(labCheckCount)) {
|
|
|
+ //黎晨这里让把跳过时状态码改为700,所以700的含义为检查失败并且跳过
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 合并检查 三合一套餐
|
|
|
@@ -212,45 +232,39 @@ public class CheckService {
|
|
|
String[] checkItem = labCheckIn.split(",");
|
|
|
File toFile = multipartFileToFile(file);
|
|
|
for (String code : checkItem) {
|
|
|
- //========= 获取算法INFO ===========
|
|
|
- AlgorithmYml.CheckValid checkValid = algorithmYml.getCheckValid(Integer.valueOf(code));
|
|
|
- MultiValueMap<String, Object> params = getStringObjectMultiValueMap(checkValid, String.valueOf(id));
|
|
|
- HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(toFile, params);
|
|
|
- //添加一条算法请求记录
|
|
|
- R alg = insertRequestRecordLog(orgImgUrl, subId, checkValid);
|
|
|
- logger.info("【调用算法服务】 添加算法调用日志,添加结果:"+JSONObject.toJSONString(alg));
|
|
|
-
|
|
|
- //请求算法服务
|
|
|
- ImgPostResponse<AnalysisReturnData> send = HttpUtils.sendV5(restTemplateLocal, files, algorithmYml);
|
|
|
- AlgorithmResponseResult responseResult = getResponseResult(send);
|
|
|
- //添加成功,更新算法日志记录
|
|
|
- if (alg.getCode() == 200) {
|
|
|
- updateRequestRecordLog(alg.getData() != null?Long.valueOf(alg.getData()+""):null, responseResult);
|
|
|
- logger.info("【调用算法服务】 更新算法调用日志记录");
|
|
|
- }
|
|
|
- //判断算法
|
|
|
- if (responseResult.getCode() == 1000) {
|
|
|
- //通过
|
|
|
- if (responseResult.getIsPass()) {
|
|
|
- alarmNum++;
|
|
|
- } else {
|
|
|
- //不跳过
|
|
|
- if (StringUtils.isNotEmpty(labSkipped) && labSkipped.equals("1")) {
|
|
|
- //如果没有通过则次数加一
|
|
|
- //键为前缀+签到id +下划线+验证类型
|
|
|
- String key = BaseConstants.SINGIN_CHECK_JUMP_KEY + id + "_" + code;
|
|
|
- Long increment = redisTemplate.opsForValue().increment(key);
|
|
|
- redisService.expire(key, BaseConstants.SINGIN_OUT_TIME);
|
|
|
- if (increment != null && increment >= Integer.parseInt(labCheckCount)) {
|
|
|
- //黎晨这里让把跳过时状态码改为700,所以700的含义为检查失败并且跳过
|
|
|
- return R.fail(700, "符合跳过条件执行跳过");
|
|
|
- }
|
|
|
+ try {
|
|
|
+ //========= 获取算法INFO ===========
|
|
|
+ AlgorithmYml.CheckValid checkValid = algorithmYml.getCheckValid(Integer.valueOf(code));
|
|
|
+ MultiValueMap<String, Object> params = getStringObjectMultiValueMap(checkValid, String.valueOf(id));
|
|
|
+ HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(toFile, params);
|
|
|
+ //添加一条算法请求记录
|
|
|
+ R alg = insertRequestRecordLog(orgImgUrl, subId, checkValid);
|
|
|
+ logger.info("【调用算法服务】 添加算法调用日志,添加结果:"+JSONObject.toJSONString(alg));
|
|
|
+ //请求算法服务
|
|
|
+ ImgPostResponse<AnalysisReturnData> send = HttpUtils.sendV5(restTemplateLocal, files, algorithmYml);
|
|
|
+ AlgorithmResponseResult responseResult = getResponseResult(send);
|
|
|
+ //添加成功,更新算法日志记录
|
|
|
+ if (alg.getCode() == 200) {
|
|
|
+ updateRequestRecordLog(alg.getData() != null?Long.valueOf(alg.getData()+""):null, responseResult);
|
|
|
+ logger.info("【调用算法服务】 更新算法调用日志记录");
|
|
|
+ }
|
|
|
+ //判断算法
|
|
|
+ if (responseResult.getCode() == 1000) {
|
|
|
+ //通过
|
|
|
+ if (responseResult.getIsPass()) {
|
|
|
+ alarmNum++;
|
|
|
+ } else {
|
|
|
+ //不跳过
|
|
|
+ if (executeSkipped(Long.parseLong(id), labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
+ return R.fail(300, "算法识别未通过", code);
|
|
|
}
|
|
|
- return R.fail(300, "算法识别未通过", code);
|
|
|
+ } else {
|
|
|
+ if (executeSkipped(Long.parseLong(id), labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
+ assert send != null;
|
|
|
+ return R.fail("算法服务错误,请重试!");
|
|
|
}
|
|
|
- } else {
|
|
|
- assert send != null;
|
|
|
- return R.fail("算法服务错误,请重试!");
|
|
|
+ }catch (Exception e){
|
|
|
+ if (executeSkipped(Long.parseLong(id), labSkipped, labCheckCount, code)) return R.fail(700, "符合跳过条件执行跳过");
|
|
|
}
|
|
|
}
|
|
|
if (alarmNum == checkItem.length) {
|