Commit 231a13b8 LN

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

1 个父辈 403eea59
......@@ -173,4 +173,10 @@ public class Constants {
*/
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;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean;
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.StringUtils;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
......@@ -169,10 +170,19 @@ public class NLMShelfHandler extends BaseDeviceHandler {
}
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秒后关闭
*/
private void openAndCloseLights(final Storage storage, final List<String> posNameList, final long delayCloseTime, String color) {
final String cid = storage.getCid();
if (posNameList == null) {
return;
......@@ -183,7 +193,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
DevicesStatusUtil.appendOp(cid, "open", lightOnStr);
allLightOnStr += lightOnStr + ",";
}
log.info("[" + cid + "]点亮库位:" + allLightOnStr);
log.info("[" + cid + "]点亮库位:" + allLightOnStr+",["+delayCloseTime+"]毫秒后自动灭灯");
//5秒后灭灯
Thread closeTask = new Thread(new Runnable() {
......@@ -347,7 +357,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
}
}
}
int delayCloseTime = 8000;
long delayCloseTime = GetCloseTime(8000) ;
String color = "red";
if (pos != null) {
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;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
@Api(tags = "SHELF: NLS(钢网料架)")
@Api(tags = "SHELF: NLS(扫码钢网料架)")
@Slf4j
public class NLSShelfHandler extends NLShelfHandler{
......
......@@ -135,14 +135,20 @@ public enum DeviceType {
NLL("storage.type.nll"),
/**
* 22 钢网料架 NLS
* 22 扫码钢网料架 NLS
*/
NLS("storage.type.nls"),
/**
* 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;
......@@ -164,6 +170,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,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!