Commit dc37a63d zshaohui

功能优化提交

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