Commit 73358990 LN

AccShelf增加亮灯指引功能

1 个父辈 487e8abd
package com.neotel.smfcore.core.device.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists;
import com.neotel.smfcore.core.device.api.IOpAuthApi;
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.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
......@@ -21,25 +27,44 @@ public class AccShelfHandler extends BaseDeviceHandler{
public StatusBean handleClientRequest(StatusBean statusBean, HttpServletRequest request) {
handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean);
OrderSetting orderSetting = dataCache.getOrderSetting();
boolean openZhiYin = orderSetting.getShelfLightType().equals(1);
Map<String, List<DataLog>> outMap = new HashMap<>();
//亮灯
Collection<DataLog> queueTasks = taskService.getQueueTasks(statusBean.getCid());
for (DataLog queueTask : queueTasks) {
if(queueTask.isWait()){
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()){
if (color == null) {
if (queueTask.isPutInTask()) {
color = ORDER_COLOR.DARKGREEN;
}else{
color = ORDER_COLOR.BLUE;
} 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());
log.info("库位["+queueTask.getPosName()+"]+亮灯:" + color.name());
statusBean.addData("open", queueTask.getPosName() + "=" + color.name());
log.info("库位[" + queueTask.getPosName() + "]+亮灯:" + color.name());
}
}
List<DataLog> dataLogs = getLightGuideTask(outMap);
for (DataLog task :
dataLogs) {
statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
}
return statusBean;
}
......
......@@ -539,4 +539,16 @@ public class LiteOrderCache implements ITaskListener {
}
return "smfcore.order.supplementOutFail";
}
public LiteOrder getOrderSortItems(String sourceId) {
LiteOrder order = liteOrderManager.findByOrderNo(sourceId);
if (order != null && order.getOrderItems().size() > 0) {
List<LiteOrderItem> list = order.getOrderItems();
//根据站位号排序
Collections.sort(list);
order.setOrderItems(list);
return order;
}
return null;
}
}
......@@ -8,7 +8,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
@Data
@Document
public class LiteOrderItem extends BasePo implements Serializable {
public class LiteOrderItem extends BasePo implements Serializable ,Comparable<LiteOrderItem> {
/**
* 物料编号
*/
......@@ -78,4 +78,12 @@ public class LiteOrderItem extends BasePo implements Serializable {
public boolean isOutFinished(){
return outNum - needNum >=0;
}
@Override
public int compareTo(LiteOrderItem o) {
if(this.getOutNum()!=o.getOutNum()){
return this.outNum-o.getOutNum();
}
return this.getId().compareTo(o.getId());
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!