This commit is contained in:
mashuai 2025-04-16 14:01:39 +08:00
parent 1c209385d0
commit d7dcbcddb6
4 changed files with 144 additions and 0 deletions

View File

@ -83,4 +83,20 @@ public class AppOcrController extends BaseController {
{ {
return appOcrService.submitOcrBack(bean); return appOcrService.submitOcrBack(bean);
} }
@ApiOperation(value = "获取ocr编码")
@PreventRepeatSubmit
@PostMapping("/getOcrCode")
public AjaxResult getOcrCode(@RequestBody MachineOcrBean bean)
{
return appOcrService.getOcrCode(bean);
}
@ApiOperation(value = "推送设备至第三方入库")
@PreventRepeatSubmit
@PostMapping("/addDeviceNumber")
public AjaxResult addDeviceNumber(@RequestBody MachineOcrBean bean)
{
return appOcrService.addDeviceNumber(bean);
}
} }

View File

@ -13,6 +13,7 @@ public class MachineOcrBean extends BaseEntity {
private String id; private String id;
private String epcCode; private String epcCode;
private String deviceName; private String deviceName;
private String deviceNumber;
private String deviceModel; private String deviceModel;
private String maCode; private String maCode;
private String batchStatus; private String batchStatus;

View File

@ -47,4 +47,18 @@ public interface AppOcrService {
* @return * @return
*/ */
AjaxResult submitOcrBack(MachineOcrBean bean); AjaxResult submitOcrBack(MachineOcrBean bean);
/**
* 获取ocr编码
* @param bean
* @return
*/
AjaxResult getOcrCode(MachineOcrBean bean);
/**
* 推送设备至第三方入库
* @param bean
* @return
*/
AjaxResult addDeviceNumber(MachineOcrBean bean);
} }

View File

@ -1,8 +1,10 @@
package com.bonus.material.app.service.impl; package com.bonus.material.app.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.config.AppOcrConfig; import com.bonus.common.biz.config.AppOcrConfig;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.utils.HttpHelper;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
@ -19,6 +21,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
/** /**
* @ClassName AppOcrServiceImpl * @ClassName AppOcrServiceImpl
@ -237,6 +241,115 @@ public class AppOcrServiceImpl implements AppOcrService {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/**
* 获取ocr编码
* @param bean
* @return
*/
@Override
public AjaxResult getOcrCode(MachineOcrBean bean) {
String url = "http://10.138.55.102:10000/api_gqj/pre";
JSONObject js = null;
try {
String jsonStr = JSONObject.toJSONString(bean);
String data = HttpHelper.sendHttpPostForToken(url, jsonStr);
js = JSONObject.parseObject(data);
} catch (Exception e) {
e.printStackTrace();
}
return AjaxResult.success(js);
}
/**
* 推送设备至第三方入库
* @param bean
* @return
*/
@Override
public AjaxResult addDeviceNumber(MachineOcrBean bean) {
if (bean == null) {
return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
}
String deviceNumber = bean.getDeviceNumber();
if (deviceNumber != null) {
String url = "http://10.138.55.102:10000/api_ruku_1/bianma_add";
JSONObject obj = ofObject(deviceNumber);
try {
String objJSONString = JSONObject.toJSONString(obj);
String result = HttpHelper.sendHttpPostForToken(url, objJSONString);
if (result != null) {
obj = JSONObject.parseObject(result);
if (obj.getInteger("code") == 0) {
// Java8 CompletableFuture异步工具类 ---- 推送nginx
CompletableFuture.runAsync(() -> {
// 输出异步执行的线程名称
System.out.println("Executing task in thread: " + Thread.currentThread().getName());
// 执行异步任务
pushNginxByDeviceNumber(deviceNumber);
// 异步任务执行结束
System.out.println("Task completed.");
});
return AjaxResult.success("设备编号添加成功");
} else {
return AjaxResult.error("设备编号添加失败,外部接口调用返回内容:" + obj.getString("msg"));
}
} else {
return AjaxResult.error("设备编号添加失败,外部接口调用返回内容为null");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
return AjaxResult.error("设备编号不能为空");
}
}
/**
* 循环10次请求nginx
* @param deviceNumber
* @return
*/
private static boolean pushNginxByDeviceNumber(String deviceNumber) {
boolean isSuccess = true;
String url = "http://10.138.55.102:10000/api_ruku_1/bianma_reload";
JSONObject obj = ofObject(deviceNumber);
String objJsonString = JSONObject.toJSONString(obj);
for (int i = 0; i < 10; i++) {
try {
String result = HttpHelper.sendHttpPostForToken(url, objJsonString);
if (result != null) {
obj = JSONObject.parseObject(result);
if (obj.getInteger("code") != 0) {isSuccess = false;}
} else {
isSuccess = false;
}
// 暂停3秒
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
System.err.println("线程被中断: " + e.getMessage());
} catch (Exception e){
throw new RuntimeException(e);
}
}
System.out.println("nginx推送结果:" + isSuccess);
return isSuccess;
}
/**
* 方法抽取
* @param deviceNumber
* @return
*/
private static JSONObject ofObject(String deviceNumber) {
JSONObject obj = new JSONObject();
obj.put("table_name", "bianmaku_1");
obj.put("name", "1");
obj.put("type", "2");
obj.put("number", deviceNumber);
return obj;
}
/** /**
* 修改ma_machine_type库存在库 * 修改ma_machine_type库存在库
* @param bean * @param bean