Commit dc5bb044 LN

调用mes接口完善

1 个父辈 fe0b0488
package com.neotel.smfcore.core.device.handler.impl; package com.neotel.smfcore.core.device.handler.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.api.CodeValidateParam; import com.neotel.smfcore.core.device.api.CodeValidateParam;
import com.neotel.smfcore.core.device.api.IOpAuthApi; import com.neotel.smfcore.core.device.api.IOpAuthApi;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP; import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR; import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.storage.enums.DeviceType; import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
...@@ -22,17 +19,15 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil; ...@@ -22,17 +19,15 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.websocket.MsgType; import com.neotel.smfcore.core.system.websocket.MsgType;
import com.neotel.smfcore.core.system.websocket.SocketMsg; import com.neotel.smfcore.core.system.websocket.SocketMsg;
import com.neotel.smfcore.core.system.websocket.WebSocketServer; import com.neotel.smfcore.core.system.websocket.WebSocketServer;
import com.neotel.smfcore.hikvision.HikApi;
import com.neotel.smfcore.hikvision.bean.InOutApiInfo;
import com.neotel.smfcore.security.TokenProvider; import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.po.Group;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -371,6 +366,10 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -371,6 +366,10 @@ public class NLPShelfHandler extends BaseDeviceHandler{
String msg = queueTask.getBarcode() + "入库到" + pos.getPosName() + "成功"; String msg = queueTask.getBarcode() + "入库到" + pos.getPosName() + "成功";
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.inputOk",new String[]{queueTask.getBarcode(),pos.getPosName()})); WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.inputOk",new String[]{queueTask.getBarcode(),pos.getPosName()}));
//入库完成,调用 7.5入库上架过账接口
boolean result= HikApi.putInApi("", InOutApiInfo.inputInfo(queueTask.getInType(),queueTask.getBarcode(),queueTask.getNum()));
break; break;
} catch (Exception e) { } catch (Exception e) {
log.error("入库出错", e); log.error("入库出错", e);
...@@ -417,6 +416,10 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -417,6 +416,10 @@ public class NLPShelfHandler extends BaseDeviceHandler{
String msg = queueTask.getBarcode()+ "从"+ posName+"出库成功"; String msg = queueTask.getBarcode()+ "从"+ posName+"出库成功";
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.outputOk",new String[]{queueTask.getBarcode(),posName})); WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.outputOk",new String[]{queueTask.getBarcode(),posName}));
//出库完成,调用 ,7.6出库下架过账接口
boolean result= HikApi.checkOutApi("",InOutApiInfo.outInfo( queueTask.getOutType(),queueTask.getBarcode(),queueTask.getNum(),queueTask.getBaseCode(),queueTask.getLgort()));
break; break;
} catch (Exception e) { } catch (Exception e) {
log.error("出库出错",e); log.error("出库出错",e);
......
...@@ -23,6 +23,8 @@ import com.neotel.smfcore.core.system.util.TaskService; ...@@ -23,6 +23,8 @@ import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.core.system.websocket.MsgType; import com.neotel.smfcore.core.system.websocket.MsgType;
import com.neotel.smfcore.core.system.websocket.SocketMsg; import com.neotel.smfcore.core.system.websocket.SocketMsg;
import com.neotel.smfcore.core.system.websocket.WebSocketServer; import com.neotel.smfcore.core.system.websocket.WebSocketServer;
import com.neotel.smfcore.hikvision.HikApi;
import com.neotel.smfcore.hikvision.bean.api.ResponseParam;
import com.neotel.smfcore.security.TokenProvider; import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.service.manager.IUserManager; import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.Group; import com.neotel.smfcore.security.service.po.Group;
...@@ -163,6 +165,28 @@ public class SingleInController { ...@@ -163,6 +165,28 @@ public class SingleInController {
} }
Barcode barcode = resolveBarcode(code); Barcode barcode = resolveBarcode(code);
//唯一码校验接口
ResponseParam param= HikApi.riCheckApi(SecurityUtils.getCurrentUsername(),barcode.getBarcode(),"","");
if(ObjectUtil.isNotEmpty(param)) {
if (param.getCode().equals(HikApi.CODE_OK)) {
//唯一码验证成功
} else {
throw new ValidateException("smfcore.riCheckApi.error", "唯一码[" + barcode.getBarcode() + "]验证失败:" + param.getCode() + "=" + param.getMessage() + "", new String[]{param.getCode(), param.getMessage()});
}
}
//判断如果是退料入库,需要获取数量
if(inType.equals(4)) {
int num = HikApi.returnMaterialApi(SecurityUtils.getCurrentUsername(), barcode.getBarcode());
if (num > 0) {
barcode.setAmount(num);
barcodeManager.saveBarcode(barcode);
log.info("退料入库,二维码 " + barcode.getBarcode() + " 从接口获得新数量:" + num + ",并更新");
}
}
String pn = barcode.getPartNumber(); String pn = barcode.getPartNumber();
String reelId = barcode.getBarcode(); String reelId = barcode.getBarcode();
String num = barcode.getAmount() + ""; String num = barcode.getAmount() + "";
......
...@@ -125,6 +125,10 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -125,6 +125,10 @@ public class LiteOrder extends BasePo implements Serializable {
* 工单类型,默认1=PN,2=RI * 工单类型,默认1=PN,2=RI
*/ */
private int type=1; private int type=1;
/**
* 操作用户名
*/
private String operateUser;
/** /**
* 订单的详细信息 * 订单的详细信息
......
...@@ -92,6 +92,14 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -92,6 +92,14 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
return this.getId().compareTo(o.getId()); return this.getId().compareTo(o.getId());
} }
public void UpdateData(LiteOrderItem item){
setReason(item.getReason());
setIncrement(item.getIncrement());
setOverFlag(item.getOverFlag());
setQty(item.getQty());
setStation(item.getStation());
}
// /** // /**
// * 物料编号 materialNo // * 物料编号 materialNo
......
...@@ -208,8 +208,20 @@ public class DataLog extends BasePo implements Serializable { ...@@ -208,8 +208,20 @@ public class DataLog extends BasePo implements Serializable {
* 入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库 * 入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库
*/ */
private int inType; private int inType;
/**
* 出库类型: 0=普通出库,1=并盘出库 ,2=湿敏出库
*/
private int outType;
/** /**
* 基地
*/
private String baseCode;
/**
* 库位
*/
private String lgort;
/**
* MSD附加信息 * MSD附加信息
*/ */
private MSDAppendInfo msdAppendInfo; private MSDAppendInfo msdAppendInfo;
......
...@@ -108,12 +108,13 @@ public class HikvisionApiController { ...@@ -108,12 +108,13 @@ public class HikvisionApiController {
order.UpdateOutInfo(outInfo); order.UpdateOutInfo(outInfo);
LiteOrderItem item = outInfo.crateOrderItem(orderNo); LiteOrderItem item = outInfo.crateOrderItem(orderNo);
item = liteOrderItemManager.save(item);
List<LiteOrderItem> items = order.getOrderItems(); order = liteOrderCache.updateOrderItem(order, item);
items.add(item); // item = liteOrderItemManager.save(item);
order.setOrderItems(items); // List<LiteOrderItem> items = order.getOrderItems();
liteOrderManager.save(order); // items.add(item);
// order.setOrderItems(items);
// liteOrderManager.save(order);
liteOrderCache.addOrderToMap(order); liteOrderCache.addOrderToMap(order);
} }
......
...@@ -25,6 +25,16 @@ public class InOutApiInfo { ...@@ -25,6 +25,16 @@ public class InOutApiInfo {
// qty Integer 是 数量 // qty Integer 是 数量
// baseCode String 16 是 基地 // baseCode String 16 是 基地
// lgort String 16 是 库位 // lgort String 16 是 库位
public static InOutApiInfo inputInfo(int inType,String trayId,int qty)
{
return new InOutApiInfo(inType,0,trayId,qty,"","");
}
public static InOutApiInfo outInfo(int outType,String trayId,int qty,String baseCode,String lgort){
return new InOutApiInfo(0,outType,trayId,qty,baseCode,lgort);
}
/** /**
* 入库类型(0普通入库1退料入库2并盘入库3截料入库) * 入库类型(0普通入库1退料入库2并盘入库3截料入库)
*/ */
......
package com.neotel.smfcore.hikvision.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*7.10 预留单转储出库接口 返回列表
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReservedOrderItem {
/**
* docNo String 32 单据号
*/
private String docNo;
/**
* outLgort String 16 转出库位
*/
private String outLgort;
/**
* inLgort String 16 转入库位
*/
private String inLgort;
/**
* materialNo String 16 物料号
*/
private String materialNo;
/**
*baseCode String 16 基地编号
*/
private String baseCode;
/**
* dumpQty Integer 转出数量
*/
private Integer dumpQty;
}
...@@ -2,6 +2,8 @@ server: ...@@ -2,6 +2,8 @@ server:
port: 8800 port: 8800
hik: hik:
server: server:
baseCode: baseCode
lgort: lgort
# 文件存储路径 # 文件存储路径
file: file:
...@@ -30,6 +32,5 @@ spring: ...@@ -30,6 +32,5 @@ spring:
rsa: rsa:
private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A== private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A==
app: app:
version: '@project.version@'
\ No newline at end of file \ No newline at end of file
version: '1.23.2909'
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!