Commit 231a13b8 LN

增加NLSM类型:推荐库位的钢网料架

1 个父辈 403eea59
...@@ -173,4 +173,10 @@ public class Constants { ...@@ -173,4 +173,10 @@ public class Constants {
*/ */
public static final String CACHE_closeWorkOrder = "CACHE_closeWorkOrder"; public static final String CACHE_closeWorkOrder = "CACHE_closeWorkOrder";
/**
* 料架自动灭灯时间(毫秒),默认8000秒
*/
public static final String CACHE_shelfDelayCloseTime = "CACHE_shelfDelayCloseTime";
} }
...@@ -5,6 +5,7 @@ import com.google.common.base.Strings; ...@@ -5,6 +5,7 @@ import com.google.common.base.Strings;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
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.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.bean.CodeBean; import com.neotel.smfcore.core.barcode.bean.CodeBean;
...@@ -169,10 +170,19 @@ public class NLMShelfHandler extends BaseDeviceHandler { ...@@ -169,10 +170,19 @@ public class NLMShelfHandler extends BaseDeviceHandler {
} }
log.info(str+":"+allOpStr); log.info(str+":"+allOpStr);
} }
private long GetCloseTime(long delayCloseTime){
Long closeTime= dataCache.getCache(Constants.CACHE_shelfDelayCloseTime);
if(closeTime==null||closeTime<=0){
closeTime=delayCloseTime;
dataCache.updateCache(Constants.CACHE_shelfDelayCloseTime,closeTime);
}
return closeTime;
}
/** /**
* 开灯, 等6秒后关闭 * 开灯, 等6秒后关闭
*/ */
private void openAndCloseLights(final Storage storage, final List<String> posNameList, final long delayCloseTime, String color) { private void openAndCloseLights(final Storage storage, final List<String> posNameList, final long delayCloseTime, String color) {
final String cid = storage.getCid(); final String cid = storage.getCid();
if (posNameList == null) { if (posNameList == null) {
return; return;
...@@ -183,7 +193,7 @@ public class NLMShelfHandler extends BaseDeviceHandler { ...@@ -183,7 +193,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
DevicesStatusUtil.appendOp(cid, "open", lightOnStr); DevicesStatusUtil.appendOp(cid, "open", lightOnStr);
allLightOnStr += lightOnStr + ","; allLightOnStr += lightOnStr + ",";
} }
log.info("[" + cid + "]点亮库位:" + allLightOnStr); log.info("[" + cid + "]点亮库位:" + allLightOnStr+",["+delayCloseTime+"]毫秒后自动灭灯");
//5秒后灭灯 //5秒后灭灯
Thread closeTask = new Thread(new Runnable() { Thread closeTask = new Thread(new Runnable() {
...@@ -347,7 +357,7 @@ public class NLMShelfHandler extends BaseDeviceHandler { ...@@ -347,7 +357,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
} }
} }
} }
int delayCloseTime = 8000; long delayCloseTime = GetCloseTime(8000) ;
String color = "red"; String color = "red";
if (pos != null) { if (pos != null) {
log.info(barcode.getPartNumber() + " [ " + barcode.getBarcode() + " ] " + "入库到:" + currentStorage.getName() + "[" + currentStorage.getCid() + "] " + pos.getPosName()); log.info(barcode.getPartNumber() + " [ " + barcode.getBarcode() + " ] " + "入库到:" + currentStorage.getName() + "[" + currentStorage.getCid() + "] " + pos.getPosName());
......
package com.neotel.smfcore.core.device.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@Api(tags = "SHELF: NLSM(推荐库位钢网料架)")
@Slf4j
@Service
public class NLSMShelfHandler extends BaseDeviceHandler{
@Override
public DeviceType getDeviceType() {
return DeviceType.NLSM;
}
@Override
public StatusBean handleClientRequest(StatusBean statusBean, HttpServletRequest request) {
statusBean.setClientIp(request.getRemoteHost());
handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean);
OrderSetting orderSetting = dataCache.getOrderSetting();
boolean openZhiYin = orderSetting.getShelfLightType().equals(1);
Map<String, List<DataLog>> outMap = new HashMap<>();
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());
}
}
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()) {
queueTask.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(queueTask);
String rgb = queueTask.getLightColor();
ORDER_COLOR color = ORDER_COLOR.fromRgb(rgb);
if (color == null) {
// if(queueTask.isPutInTask()){
// color = ORDER_COLOR.DARKGREEN;
// }else{
if (openZhiYin && ObjectUtil.isNotEmpty(queueTask.getSourceId())) {
List<DataLog> dataLogList = outMap.get(queueTask.getSourceId());
if (dataLogList == null) {
dataLogList = new ArrayList<>();
}
dataLogList.add(queueTask);
outMap.put(queueTask.getSourceId(), dataLogList);
} else {
color = ORDER_COLOR.BLUE;
}
// }
}
// statusBean.addData("open",queueTask.getPosName()+"="+color.name());
addMergeData(statusBean, queueTask, "open", color.name());
log.info("库位[" + queueTask.getPosName() + "]+亮灯:" + color.name());
}
}
List<DataLog> dataLogs = getLightGuideTask(outMap,statusBean.getCid());
for (DataLog task :
dataLogs) {
// statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
if (StringUtils.isBlank(task.getLightColor())){
task.setLightColor(ORDER_COLOR.BLUE.getRgb());
}
String color = ORDER_COLOR.fromRgb(task.getLightColor()).name();
addMergeData(statusBean, task, "open", color);
}
return statusBean;
}
private StatusBean addMergeData(StatusBean statusBean, DataLog task, String opKey,String color){
StoragePos pos=storagePosManager.getByPosName(task.getPosName());
if(pos!=null){
List<String> relatedPosNames = pos.getMergePosList();
if(relatedPosNames == null || relatedPosNames.isEmpty()){
relatedPosNames = new ArrayList<>();
relatedPosNames.add(pos.getPosName());
// log.info("操作库位["+pos.getPosName()+"]" + opKey);
}else{
// log.info("操作合并库位["+pos.getPosName()+"]" + opKey);
}
for(String posName : relatedPosNames){
statusBean.addData(opKey,posName+"="+color);
}
}
return statusBean;
}
}
...@@ -4,7 +4,7 @@ import com.neotel.smfcore.core.storage.enums.DeviceType; ...@@ -4,7 +4,7 @@ import com.neotel.smfcore.core.storage.enums.DeviceType;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@Api(tags = "SHELF: NLS(钢网料架)") @Api(tags = "SHELF: NLS(扫码钢网料架)")
@Slf4j @Slf4j
public class NLSShelfHandler extends NLShelfHandler{ public class NLSShelfHandler extends NLShelfHandler{
......
...@@ -135,14 +135,20 @@ public enum DeviceType { ...@@ -135,14 +135,20 @@ public enum DeviceType {
NLL("storage.type.nll"), NLL("storage.type.nll"),
/** /**
* 22 钢网料架 NLS * 22 扫码钢网料架 NLS
*/ */
NLS("storage.type.nls"), NLS("storage.type.nls"),
/** /**
* 23 SMD_MIMO_G2 * 23 SMD_MIMO_G2
*/ */
SMD_MIMO_G2("storage.type.smdMimoG2") SMD_MIMO_G2("storage.type.smdMimoG2"),
/**
* 24 推荐库位钢网料架 NLSM
*/
NLSM("storage.type.nlsm"),
; ;
private String key; private String key;
...@@ -164,6 +170,6 @@ public enum DeviceType { ...@@ -164,6 +170,6 @@ public enum DeviceType {
} }
public static List<DeviceType> availableTypeList(){ 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,NLL,NLS,SMDBOX_THIRD,SMD_MIMO_G2); return Lists.newArrayList(AUTO,LINE,BATCH,SOLDERPASTE,VERTICALBOX,SMD_XL,SMD_DUO,SMD_XLC,SMD_XLR,VIRTUAL,NL,NLP,NLM,NLL,NLS,NLSM,SMDBOX_THIRD,SMD_MIMO_G2);
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!