Commit 7d58d994 sunke

转储入库不记录用户问题修正

1 个父辈 2f4317f0
......@@ -242,7 +242,7 @@ public class StatusBean {
public void addOp(Map<String, String> opMap){
if(opMap != null && !opMap.isEmpty()){
for (Map.Entry<String, String> op : opMap.entrySet()) {
data.put(op.getKey(), op.getValue());
addData(op.getKey(), op.getValue());
}
}
}
......
......@@ -57,87 +57,30 @@ public class NLPShelfHandler extends BaseDeviceHandler{
}
private ResultBean testPutIn(String loginUser, String groupId,String storageId,Barcode barcode,String token) {
// CodeBean codeBean = codeResolve.resolveSingleCode(codeStr);
if (barcode == null || barcode.getBarcode() == null) {
return ResultBean.newErrorResult(1, "smfcore.error.barcode.noValidCode", "无效的条码");
}
String pn = barcode.getPartNumber();
String reelId = barcode.getBarcode();
String num = barcode.getAmount() + "";
Integer qty = barcode.getAmount();
String msl = barcode.getMsl();
try {
//需要模拟一个库位
DataLog dataLog = new DataLog();
dataLog.setBarcode(reelId);
dataLog.setPartNumber(pn);
dataLog.setType(OP.PUT_IN);
barcode.setPutInTime(System.currentTimeMillis());
barcode.updateSluggishTime(dataCache.getPNsluggishDay(barcode.getPartNumber()));
barcodeManager.saveBarcode(barcode);
dataLog.setNum(barcode.getAmount());
dataLog.setStatus(OP_STATUS.WAIT.name());
dataLog.setGroupId(groupId);
dataLog.setStorageId(storageId);
dataLog.setMemo(barcode.getMemo());
dataLog.setOperator(loginUser);
if (ObjectUtil.isNotEmpty(storageId)) {
Storage storage = dataCache.getStorageById(storageId);
if (storage != null) {
dataLog.setCid(storage.getCid());
dataLog.setStorageName(storage.getName());
}
}
try {
taskService.addTaskToExecute(dataLog);
} catch (Exception e) {
return ResultBean.newErrorResult(-1,"smfclient.nlp.error","入库失败:"+e.getMessage(),new String[]{e.getMessage()});
}
} catch (ValidateException e) {
log.error(e.toString());
return ResultBean.newErrorResult(1, e.getMsgKey(), e.getDefaultMsg());
}
return ResultBean.newOkResult("");
}
/**
* 从API接口解析条码,通常料架使用(其他设备会有尺寸信息且会有多个条码所以不适用此方法)
*/
protected Barcode resolveBarcodeFromApiForShelf(CodeValidateParam param) throws ValidateException{
for (IOpAuthApi opAuthApi : opAuthApiList) {
Barcode responseBarcode = opAuthApi.resolveBarcode(param);
if(responseBarcode != null){
return responseBarcode;
}
}
return null;
}
@Override
public StatusBean handleClientRequest(StatusBean statusBean, HttpServletRequest request) {
statusBean.setClientIp(request.getRemoteHost());
handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean);
if (statusBean != null) {
String cid = statusBean.getCid();
List<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
if(finishedTask.getCid().equals(cid) && finishedTask.isCheckOutTask() && finishedTask.isCancel()){
//取消的任务,需要关灯
taskService.removeFinishedTask(finishedTask);
statusBean.addData("close",finishedTask.getPosName());
}
}
// OrderSetting orderSetting = dataCache.getOrderSetting();
// boolean openZhiYin = orderSetting.getShelfLightType().equals(1);
// Map<String, List<DataLog>> outMap = new HashMap<>();
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid());
statusBean.addOp(opMap);
}
//亮灯
Collection<DataLog> queueTasks = taskService.getQueueTasks(statusBean.getCid());
for (DataLog queueTask : queueTasks) {
if(queueTask.isWait()) {
ORDER_COLOR color = null;
if (queueTask.isPutInTask()) {
//入库默认深绿色 YELLOW
......@@ -173,18 +116,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
}
}
}
// else if(queueTask.isCancel()){
// if(queueTask.isCheckOutTask()){
//
// statusBean.addData("open",queueTask.getPosName()+"="+"orange" );
// log.info("库位["+queueTask.getPosName()+"]+取消:open=orange" );
// //从任务列表中删除
// taskService.removeFinishedTask(queueTask);
// }
// }
}
return statusBean;
}
......@@ -475,6 +407,43 @@ public class NLPShelfHandler extends BaseDeviceHandler{
List<String> posList = dataCache.getUsedPosNameList(cid);
return ResultBean.newOkResult(posList);
}
/**
* 手动出库
*/
@RequestMapping("/api/material/manualOut")
@ResponseBody
@AnonymousAccess
public ResultBean manualOut(@RequestBody Map<String, String> paramMap, HttpServletRequest request){
try{
String barcodeStr = paramMap.get("barcode");
log.info("手动出库条码:" + barcodeStr);
Barcode barcode = codeResolve.resolveOneValideBarcode(barcodeStr);
StoragePos pos = storagePosManager.getByBarcode(barcode.getBarcode());
if(pos == null){
return ResultBean.newErrorResult(-1,"smfcore.manualOut.notFound","库存中未找到此料盘");
}
DataLog outTask = null;
for (DataLog queueTask : taskService.getQueueTasks()) {
if(queueTask.isCheckOutTask()){
if(queueTask.getBarcode().equals(barcode.getBarcode())){
outTask = queueTask;
}
}
}
if(outTask == null){
return ResultBean.newErrorResult(-1,"smfcore.manualOut.noTask","未找到此料盘的出库任务");
}
super.finishedOutPos(outTask.getCid(),outTask.getPosName());
//关闭库位灯
DevicesStatusUtil.appendOp(outTask.getCid(),"close",outTask.getPosName());
}catch (Exception e){
log.info("手动出库失败:" + e.getMessage());
return ResultBean.newErrorResult(-1,"smfcore.manualOut.failed","手动出库失败:"+e.getMessage());
}
return ResultBean.newOkResult("出库成功");
}
@Override
public DeviceType getDeviceType() {
return DeviceType.NLP;
......
......@@ -319,6 +319,7 @@ public class OutListCache implements ITaskListener {
task.setSubSourceId(outListItem.getId());
task.setSubSourceInfo(outListItem.getBaseCode());
task.setType(OP.CHECKOUT);
task.setOperator(userName);
task.setStatus(OP_STATUS.WAIT.name());
//判断出库类型
......
......@@ -118,7 +118,7 @@ public class WebSocketServer {
* 实现服务器主动推送
*/
private void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
//this.session.getBasicRemote().sendText(message);
}
// /**
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!