Commit 795a6b14 LN

增加新设备类型SMDBOX_THIRD。datalog中增加出入库详细类型。

1 个父辈 19888dd5
......@@ -40,6 +40,8 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.service.po.Humiture;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.micron20031.Micron20031Api;
import com.neotel.smfcore.custom.micron20031.bean.MInOutType;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.custom.siemens.bean.LotCheckInfo;
import lombok.extern.slf4j.Slf4j;
......@@ -261,6 +263,17 @@ public class BaseDeviceHandler implements IDeviceHandler {
//查找库位,生成入库任务
DataLog putInTask = generatePutInTask(statusBean, barcodeSave, storage);
//如果是20031的锡膏料仓
if(Micron20031Api.isEnable()){
//如果工单任务,设置工单信息
if(ObjectUtil.isNotEmpty(storage.getInListName()) ){
putInTask.setSourceName(storage.getInListName());
putInTask.setInOutType(MInOutType.DESPOSIT);
}else{
putInTask.setInOutType(MInOutType.RETURNED);
}
}
String posId = putInTask.getPosName();
int plateW = barcodeSave.getPlateSize();
......
package com.neotel.smfcore.core.device.handler.impl;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Service
@Slf4j
public class ThirdBoxHandler extends BaseDeviceHandler{
@Override
public StatusBean handleClientRequest(StatusBean statusBean, HttpServletRequest request) {
statusBean.setClientIp(request.getRemoteHost());
String cid = statusBean.getCid();
Storage storage = dataCache.getStorage(cid);
if (storage == null) {
log.error("料仓cid: [" + cid + "]不存在");
return null;
}
handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean);
statusBean = handleInOutFinished(statusBean);
StatusBean humidityResult = handleHumidity(statusBean);
if (humidityResult != null) {
return humidityResult;
}
if (statusBean.getOp() == OP.PUT_IN) {
log.debug("入库:" + statusBean.toString());
statusBean = putInLine(storage, statusBean);
} else {
//查看是否有要出库的操作
statusBean =taskService.checkOut(storage, statusBean);
}
//获取操作
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(cid);
statusBean.putOp(opMap);
return statusBean;
}
@Override
public DeviceType getDeviceType() {
return DeviceType.SMDBOX_THIRD;
}
}
......@@ -122,7 +122,12 @@ public enum DeviceType {
/**
* 19 机器人料仓
*/
ROBOT_BOX("storage.type.robotBox");
ROBOT_BOX("storage.type.robotBox"),
/**
* 20 第三方料仓 麦康尼虚拟料仓
*/
SMDBOX_THIRD("storage.type.SMDBOX_THIRD");
;
private String key;
......@@ -144,6 +149,6 @@ public enum DeviceType {
}
public static List<DeviceType> availableTypeList(){
return Lists.newArrayList(AUTO,LINE,BATCH,SOLDERPASTE,VERTICALBOX,SMD_XL,SMD_DUO,SMD_XLC,SMD_XLR,VIRTUAL,NL,NLP,NLM);
return Lists.newArrayList(AUTO,LINE,BATCH,SOLDERPASTE,VERTICALBOX,SMD_XL,SMD_DUO,SMD_XLC,SMD_XLR,VIRTUAL,NL,NLP,NLM,SMDBOX_THIRD);
}
}
......@@ -107,9 +107,8 @@ public class TaskDto implements Serializable {
* 创建人
*/
private String creator;
/**
* 操作人
*/
@ApiModelProperty("操作人")
private String operator;
/**
......
......@@ -44,4 +44,18 @@ public class TaskQueryCondition {
private String groupId;
@ApiModelProperty("CID数组")
private String[] cids;
@QueryCondition
@ApiModelProperty("来源名称")
private String sourceName;
@QueryCondition
@ApiModelProperty("出入库类型")
private String inOutType;
@QueryCondition
@ApiModelProperty("操作人")
private String operator;
}
......@@ -209,6 +209,13 @@ public class DataLog extends BasePo implements Serializable {
*/
private String locInfo = "";
/**
* 出入库子类型
* 入库:1=
* deposit=1, return=2
* removed=1, withdrawn=2, offline=3
*/
private String inOutType="";
/**
* MSD附加信息
*/
private MSDAppendInfo msdAppendInfo;
......
......@@ -103,7 +103,7 @@ public class TaskService {
* @return
* @throws ValidateException
*/
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName) throws ValidateException {
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName,String outType) throws ValidateException {
if (pos.getBarcode() == null) {
String msg = "库位[" + pos.getPosName() + "]中已无物料,忽略";
log.info(msg);
......@@ -112,6 +112,7 @@ public class TaskService {
DataLog task = new DataLog(storage, pos.getBarcode(), pos);
task.setType(OP.CHECKOUT);
task.setInOutType(outType);
task.setPutInDate(pos.getBarcode().getPutInDate());
task.setStatus(OP_STATUS.WAIT.name());
task.setSingleOut(isSingleOut);
......@@ -119,7 +120,9 @@ public class TaskService {
addTaskToExecute(task);
return "";
}
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName) throws ValidateException {
return checkout(storage,pos,isSingleOut,opUserName,"");
}
/**
* 触发任务状态改变事件
*
......
......@@ -17,6 +17,7 @@ import com.neotel.smfcore.core.storage.service.manager.impl.StoragePosManagerImp
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.micron20031.bean.MInOutType;
import com.neotel.smfcore.custom.micron20031.bean.dto.SpUnloadDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -139,7 +140,7 @@ public class MicronSpUnloadController {
throw new ValidateException("smfcore.valueNotExist", "{0}[{1}]不存在", new String[]{"storageId", pos.getStorageId()});
}
log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】");
String outResult = taskService.checkout(storage, pos, true, SecurityUtils.getCurrentUsername());
String outResult = taskService.checkout(storage, pos, true, SecurityUtils.getCurrentUsername(), MInOutType.WITHDRAWN);
if (!Strings.isNullOrEmpty(outResult)) {
throw new ValidateException("smfcore.error", outResult);
}
......@@ -179,7 +180,7 @@ public class MicronSpUnloadController {
if (barcode != null) {
log.info("removal 料仓【" + storage.getName() + "_" + storage.getCid() + "】仓位【" + pos.getPosName() + "】 returnMaterial 成功,开始出库");
try {
String outResult = taskService.checkout(storage, pos, isSingleOut, SecurityUtils.getCurrentUsername());
String outResult = taskService.checkout(storage, pos, isSingleOut, SecurityUtils.getCurrentUsername(),MInOutType.REMOVED);
if (!Strings.isNullOrEmpty(outResult)) {
// throw new ValidateException("smfcore.error", outResult);
log.error("removal 料仓【" + storage.getName() + "_" + storage.getCid() + "】仓位【" + pos.getPosName() + "】 returnMaterial 成功,出库失败: "+outResult);
......
package com.neotel.smfcore.custom.micron20031.bean;
public class MInOutType {
/**
* 出入库子类型
* 入库:1=
* return=0, deposit=1,
* removed=0, withdrawn=1, offline=2
*/
public final static String RETURNED = "returned";
public final static String DESPOSIT = "deposit";
public final static String REMOVED = "removed";
public final static String WITHDRAWN = "withdrawn";
public final static String OFFLINE = "offline";
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!