Commit dc37a63d zshaohui

功能优化提交

1 个父辈 8b0b4f09
......@@ -358,6 +358,7 @@ public class LiteOrderCache {
detail.setReelNewLong(task.getFullCode());
detail.setX(task.getX());
detail.setY(task.getY());
detail.setPartNumber(task.getPartNumber());
liteOrderItem.setOutDetailList(detail);
liteOrderItem.setPositionList(task.getPosName());
......@@ -501,6 +502,11 @@ public class LiteOrderCache {
return "没有空闲的出料口";
}
if (cacheOrder.isMaiZheng()){
//迈征的工单,通知迈征准备出库
maiZhengApi.prepareReelBox(cacheOrder.getOrderNo(), "ok",cacheOrder.getStartTime());
}
log.info("开始执行工单[" + orderNo + "] outBom=" + outBom);
cacheOrder.setTaskReelCount(0);
cacheOrder.setTaskFinishedTime(-1);
......@@ -579,7 +585,22 @@ public class LiteOrderCache {
}
try {
excludePosIds.add(pos.getId());
List<String> batchCheckReel = lizhenApi.batchCheckReel(Arrays.asList(pos.getBarcode()), "", orderItem.getModel());
String model = orderItem.getModel();
if (StringUtils.isEmpty(model)) {
//C02-3FSMT-18,C02-3FSMT-19,C02-3FSMT-09,C02-3FSMT-08
if ("C02-3FSMT-18".equals(cacheOrder.getLine())
|| "C02-3FSMT-19".equals(cacheOrder.getLine())
|| "C02-3FSMT-08".equals(cacheOrder.getLine())
|| "C02-3FSMT-09".equals(cacheOrder.getLine())
) {
model = "X8";
} else {
model = "EVEREST";
}
}
List<String> batchCheckReel = lizhenApi.batchCheckReel(Arrays.asList(pos.getBarcode()), "",model);
if (batchCheckReel != null && !batchCheckReel.isEmpty()){
throw new ValidateException("",pos.getBarcode().getBarcode()+"被禁用,库位为:"+pos.getPosName());
}
......
......@@ -24,11 +24,13 @@ import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_SOURCE;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderDto;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderItemDto;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderItemMapper;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapper;
import com.neotel.smfcore.core.order.rest.bean.query.OrderQueryCondition;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.ItemOutDetail;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.order.util.OrderFileWatch;
......@@ -47,6 +49,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -450,6 +453,29 @@ public class OrderController {
orderItem.setLack(isLack(lackItemList, orderItem));
}
List<String> partNumberList = new ArrayList<>();
List<String> reelList = new ArrayList<>();
List<ItemOutDetail> outDetailList = orderItem.getOutDetailList();
if (outDetailList != null && !outDetailList.isEmpty()){
for (ItemOutDetail detail : outDetailList) {
if (StringUtils.isNotEmpty(detail.getPartNumber())){
partNumberList.add(detail.getPartNumber());
}
if (StringUtils.isNotEmpty(detail.getReelNew())){
reelList.add(detail.getReelNew());
}
}
}
if (partNumberList != null && !partNumberList.isEmpty()){
orderItem.setOutPn(String.join(",",partNumberList));
} else {
orderItem.setOutPn("");
}
if (reelList != null && !reelList.isEmpty()){
orderItem.setOutReel(String.join(",",reelList));
} else {
orderItem.setOutReel("");
}
orderItemsByWarehouseCode.add(orderItem);
}
if (orderItemsByWarehouseCode != null && !orderItemsByWarehouseCode.isEmpty()){
......@@ -483,6 +509,29 @@ public class OrderController {
orderItem.setLack(isLack(lackItemList, orderItem));
}
List<String> partNumberList = new ArrayList<>();
List<String> reelList = new ArrayList<>();
List<ItemOutDetail> outDetailList = orderItem.getOutDetailList();
if (outDetailList != null && !outDetailList.isEmpty()){
for (ItemOutDetail detail : outDetailList) {
if (StringUtils.isNotEmpty(detail.getPartNumber())){
partNumberList.add(detail.getPartNumber());
}
if (StringUtils.isNotEmpty(detail.getReelNew())){
reelList.add(detail.getReelNew());
}
}
}
if (partNumberList != null && !partNumberList.isEmpty()){
orderItem.setOutPn(String.join(",",partNumberList));
} else {
orderItem.setOutPn("");
}
if (reelList != null && !reelList.isEmpty()){
orderItem.setOutReel(String.join(",",reelList));
} else {
orderItem.setOutReel("");
}
orderItemsByWarehouseCode.add(orderItem);
}
if (orderItemsByWarehouseCode != null && !orderItemsByWarehouseCode.isEmpty()){
......@@ -516,6 +565,8 @@ public class OrderController {
headerList.add(Arrays.asList("SubSlot"));
headerList.add(Arrays.asList("需求盘数"));
headerList.add(Arrays.asList("已出盘数"));
headerList.add(Arrays.asList("已出物料"));
headerList.add(Arrays.asList("已出PN"));
List<List<Object>> dataList = new ArrayList<>();
for (LiteOrderItem orderItem : liteOrder.getOrderItems()) {
......@@ -531,6 +582,33 @@ public class OrderController {
data.add(orderItem.getSubSlot());
data.add(orderItem.getNeedReelCount());
data.add(orderItem.getOutReelCount());
List<String> partNumberList = new ArrayList<>();
List<String> reelList = new ArrayList<>();
List<ItemOutDetail> outDetailList = orderItem.getOutDetailList();
if (outDetailList != null && !outDetailList.isEmpty()){
for (ItemOutDetail detail : outDetailList) {
if (StringUtils.isNotEmpty(detail.getPartNumber())){
partNumberList.add(detail.getPartNumber());
}
if (StringUtils.isNotEmpty(detail.getReelNew())){
reelList.add(detail.getReelNew());
}
}
}
if (partNumberList != null && !partNumberList.isEmpty()){
orderItem.setOutPn(String.join(",",partNumberList));
} else {
orderItem.setOutPn("");
}
if (reelList != null && !reelList.isEmpty()){
orderItem.setOutReel(String.join(",",reelList));
} else {
orderItem.setOutReel("");
}
data.add(orderItem.getOutReel());
data.add(orderItem.getOutPn());
dataList.add(data);
}
FileUtil.downloadExcel(headerList,dataList,response);
......
package com.neotel.smfcore.core.order.rest.bean.dto;
import com.neotel.smfcore.core.order.service.po.ItemOutDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Transient;
import java.util.Date;
import java.util.List;
@Getter
@Setter
......@@ -131,4 +133,11 @@ public class OrderItemDto {
@ApiModelProperty("楼层")
private String floor;
private String outReel;
private String outPn;
//@ApiModelProperty("工单出库详情")
//private List<ItemOutDetail> outDetailList;
}
......@@ -12,4 +12,6 @@ public class ItemOutDetail {
private String x;
private String y;
private String partNumber;
}
......@@ -250,6 +250,10 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private int itemNo;
private String outReel;
private String outPn;
public void setOutReelList(String reel) {
if (outReelList == null){
outReelList = new ArrayList<>();
......
......@@ -854,14 +854,14 @@ public class TaskService {
throw new ValidateException("smfcore.noValidStorage", "料仓列表中未找到可用的料仓");
}
availbleStorageList.sort(new Comparator<Storage>() {
/*availbleStorageList.sort(new Comparator<Storage>() {
@Override
public int compare(Storage o1, Storage o2) {
Integer taskCount1 = storageTaskCountMap.get(o1.getId());
Integer taskCount2 = storageTaskCountMap.get(o2.getId());
return taskCount1.compareTo(taskCount2);
}
});
});*/
return findEmptyPosInStorages(barcode, availbleStorageList, storageTaskCountMap, lastPosId);
}
......
......@@ -662,8 +662,13 @@ public class LizhenApi extends DefaultSmfApiListener {
paramMap.put("reel_id",task.getBarcode());
paramMap.put("ipn",task.getPartNumber());
paramMap.put("qty",task.getNum());
paramMap.put("station_id",task.getTableNo());
String tableNo = task.getTableNo();
if (StringUtils.isNotEmpty(tableNo)){
paramMap.put("stationInfo",task.getLine()+","+task.getSide()+","+task.getTableNo()+","+task.getSlot()+","+task.getSubSlot());
} else {
paramMap.put("stationInfo",task.getLine());
}
//发料类型(0:智能仓1:虚拟仓2:物料预警3:手动发料)
int type = 0;
if (StringUtils.isNotEmpty(task.getSourceId())) {
......
......@@ -58,7 +58,7 @@ public class KafkaService {
/**
* 料仓---设备状态
*/
@Scheduled(fixedRate = 1000 * 60 * 1)
@Scheduled(fixedRate = 1000 * 10)
public void setMachineStatus() {
log.info("发送设备状态开始");
Collection<Storage> storages = dataCache.getAllStorage().values();
......@@ -133,8 +133,9 @@ public class KafkaService {
for (Map<String, String> map : msgList) {
status.setErrorCode(map.get("errorCode"));
status.setErrorMsg(map.get("msg"));
status.setCurrentStatus("3");
String statusStr = JSON.toJSONString(status);
//log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
//log.info("返回结果为:" + JSON.toJSONString(future));
}
......@@ -147,7 +148,7 @@ public class KafkaService {
status.setErrorMsg("");
}
String statusStr = JSON.toJSONString(status);
//log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
//log.info("返回结果为:" + JSON.toJSONString(future));
}
......@@ -300,7 +301,7 @@ public class KafkaService {
/**
* 设备状态发送
*/
@Scheduled(fixedRate = 1000 * 60 * 5)
@Scheduled(fixedRate = 1000 * 10)
public void setStorageExportStatus() {
log.info("发送出料口信息开始");
......@@ -336,7 +337,7 @@ public class KafkaService {
machineStatus.setOccurrenceTime(dateStr);
machineStatus.setMachineID(StorageExportConfig.getMachineId(module));
machineStatus.setTopicType(KafkaConfig.MACHINESTATUS_TOPIC);
machineStatus.setCurrentStatus(currentStatus);
machineStatus.setCurrentStatus(3+"");
machineStatus.setErrorCode(equipMsg.getErrorCode());
machineStatus.setErrorMsg(equipMsg.getMsg());
machineStatus.setClientIP(statusBean.getClientIp());
......
......@@ -113,7 +113,7 @@ public class MaiZhengController {
log.info("开始处理:" + entry.getKey() + "的数据");
AskReelBox askReelBox = entry.getValue();
String result = createMaiZhengOrder(entry.getKey(),askReelBox);
maiZhengApi.prepareReelBox(entry.getKey(), result,askReelBox.getStartTime());
//maiZhengApi.prepareReelBox(entry.getKey(), result,askReelBox.getStartTime());
log.info("处理结束:" + entry.getKey() + "的数据,结果为:" + result);
}
askReelBoxMap.clear();
......@@ -194,7 +194,7 @@ public class MaiZhengController {
@AnonymousAccess
public AskReelIDStateResponse askReelIDState(@RequestBody AskReelIDStateRequest request) {
log.info("收到迈征请求指定Reel的位置:" + JSON.toJSONString(request));
/*log.info("收到迈征请求指定Reel的位置:" + JSON.toJSONString(request));
String sessionID = request.getSessionID();
String count = request.getCount();
......@@ -224,13 +224,13 @@ public class MaiZhengController {
}
}
responseList.add(reelIDResponse);
}
}*/
AskReelIDStateResponse response = new AskReelIDStateResponse();
response.setSessionID(sessionID);
/* response.setSessionID(sessionID);
response.setCount(count);
response.setList(responseList);
log.info(JSON.toJSONString(response));
log.info(JSON.toJSONString(response));*/
return response;
}
......
......@@ -122,7 +122,7 @@ public class MaiZhengDeviceController {
if (outDetailList != null && !outDetailList.isEmpty()){
for (ItemOutDetail detail : outDetailList) {
Map<String, Object> map = new HashMap<>();
map.put("PARTNUMBER",orderItem.getPn());
map.put("PARTNUMBER",detail.getPartNumber());
map.put("ReelNewLong",detail.getReelNewLong());
map.put("ReelNew",detail.getReelNew());
map.put("ReelOld",orderItem.getReel());
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!