Commit 8b01f2ca 孙克

接收到需求单后,先返回接收OK消息, 后台执行挑料绑定等操作

1 个父辈 c48be333
......@@ -31,6 +31,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
......@@ -71,6 +73,8 @@ public class QisdaApiController extends BaseController {
private IDataLogDao dataLogDao;
protected final static Logger log = LogManager.getLogger(QisdaApiController.class);
private static ExecutorService threadPool = Executors.newCachedThreadPool();
/**
* 基础数据同步
*/
......@@ -529,26 +533,13 @@ public class QisdaApiController extends BaseController {
}
}
/**
* 创建需求单
*/
@RequestMapping(value = "/out",method = RequestMethod.POST)
@ResponseBody
public Object out(HttpServletRequest request) {
List<String> failedReelIdList = new ArrayList<>();
try {
String paramInfo = receiveParamInfo(request,"paramInfo");
log.info("收到需求单请求:"+paramInfo);
if(paramInfo == null){
return ResultBean.newErrorResult(-1,"参数为空");
}
List<RequestOutItemBean> items = JsonUtil.toList(paramInfo, RequestOutItemBean.class);
private void handleOutRequest(List<RequestOutItemBean> items){
try {
//key为需求单号
Map<String, OutInfo> outInfoMap = new HashMap<>();
log.info("需求单请求解析成功,开始处理");
log.info("开始处理需求单");
for (RequestOutItemBean itemBean : items) {
OutItem outItem = new OutItem(itemBean);
String hSerial = outItem.gethSerial();
......@@ -570,7 +561,6 @@ public class QisdaApiController extends BaseController {
if(bindSlot > 0 || barcode.hasCutInfo()){
//已经真实绑定过
log.error("料盘["+reelID+"]已经真实绑定过,不允许出库");
failedReelIdList.add(reelID);
}else{
//未真实绑定过,可以出库,绑定
appendInfo.sethSerial(outItem.gethSerial());
......@@ -596,7 +586,6 @@ public class QisdaApiController extends BaseController {
}else{
//未找到指定料盘
log.error("料盘["+reelID+"]未找到,可能已经出库,不允许出库");
failedReelIdList.add(reelID);
}
}else{
//不是指定料
......@@ -631,14 +620,38 @@ public class QisdaApiController extends BaseController {
outInfoCache.addOutInfo(outInfo);
}
} catch (Exception e) {
log.error("需求单处理出错", e);
}
}
/**
* 创建需求单
*/
@RequestMapping(value = "/out",method = RequestMethod.POST)
@ResponseBody
public Object out(HttpServletRequest request) {
List<String> failedReelIdList = new ArrayList<>();
try {
String paramInfo = receiveParamInfo(request,"paramInfo");
log.info("收到需求单请求:"+paramInfo);
if(paramInfo == null){
return ResultBean.newErrorResult(-1,"参数为空");
}
final List<RequestOutItemBean> items = JsonUtil.toList(paramInfo, RequestOutItemBean.class);
threadPool.execute(new Runnable() {
@Override
public void run() {
handleOutRequest(items);
}
});
} catch (Exception e) {
log.error("需求单请求处理出错", e);
return ResultBean.newErrorResult(1001,"内部错误:" + e.getMessage());
}
if(!failedReelIdList.isEmpty()){
String data = String.join(";",failedReelIdList);
return ResultBean.newOkResult(data);
}
return ResultBean.newOkResult("");
}
......
......@@ -12,6 +12,23 @@
<div class="row">
<div class="col-md-12">
<ul class="timeline">
<li class="timeline-grey">
<div class="timeline-time">
<span class="date">2023</span>
<span class="time">08-17</span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2023081717</h2>
<div class="timeline-content">
<ul>
接收到需求单后,先返回接收OK消息, 后台执行挑料绑定等操作
</ul>
</div>
</div>
</li>
<li class="timeline-purple">
<div class="timeline-time">
<span class="date">2023</span>
......
......@@ -239,7 +239,7 @@
<div class="page-footer-inner">
2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a>
</div>
<span class="right" style="color: #a3a3a3;">Version: V2023081413</span>
<span class="right" style="color: #a3a3a3;">Version: V2023081717</span>
<div class="scroll-to-top">
<i class="icon-arrow-up"></i>
</div>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!