Commit 23cc13c3 LN

1.1053:ML5页面料架显示修改。

1 个父辈 8c3d6f1c
package com.neotel.smfcore.custom.micron1053.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ML5ShelfDto implements Serializable {
@ApiModelProperty("物料名称")
private String materialType;
@ApiModelProperty("料架类型")
private String shelfType;
@ApiModelProperty("出料口")
private String outType;
@ApiModelProperty("工单物料数量")
private int num;
@ApiModelProperty("料架数量")
private int shelfNum;
}
...@@ -32,7 +32,7 @@ public class ML5StatusDto implements Serializable { ...@@ -32,7 +32,7 @@ public class ML5StatusDto implements Serializable {
private List<EquipMsg> msgList=null; private List<EquipMsg> msgList=null;
@ApiModelProperty("需要的料架列表,key=料架类型,value=数量") @ApiModelProperty("需要的料架列表")
private Map<String, Integer> needShelfs=null; private List< ML5ShelfDto> needShelfs=null;
} }
...@@ -4,6 +4,7 @@ import com.neotel.smfcore.core.system.service.po.DataLog; ...@@ -4,6 +4,7 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.micron1053.bean.EquipMsg; import com.neotel.smfcore.custom.micron1053.bean.EquipMsg;
import com.neotel.smfcore.custom.micron1053.bean.MicronEquipStatus; import com.neotel.smfcore.custom.micron1053.bean.MicronEquipStatus;
import com.neotel.smfcore.custom.micron1053.bean.dto.ML5ShelfDto;
import com.neotel.smfcore.custom.micron1053.bean.dto.ML5StatusDto; import com.neotel.smfcore.custom.micron1053.bean.dto.ML5StatusDto;
import com.neotel.smfcore.custom.micron1053.enums.MicronEquipName; import com.neotel.smfcore.custom.micron1053.enums.MicronEquipName;
import com.neotel.smfcore.custom.micron1053.util.MicronDataCache; import com.neotel.smfcore.custom.micron1053.util.MicronDataCache;
...@@ -30,18 +31,18 @@ public class MicronML5Controller { ...@@ -30,18 +31,18 @@ public class MicronML5Controller {
@GetMapping("/status") @GetMapping("/status")
@AnonymousAccess @AnonymousAccess
public ML5StatusDto ml5Status( ) { public ML5StatusDto ml5Status( ) {
ML5StatusDto dto = new ML5StatusDto(); ML5StatusDto resultDto = new ML5StatusDto();
MicronEquipStatus r1 = MicronDataCache.getStatus(MicronEquipName.ML5_R1.getName()); MicronEquipStatus r1 = MicronDataCache.getStatus(MicronEquipName.ML5_R1.getName());
MicronEquipStatus r2 = MicronDataCache.getStatus(MicronEquipName.ML5_R2.getName()); MicronEquipStatus r2 = MicronDataCache.getStatus(MicronEquipName.ML5_R2.getName());
MicronEquipStatus l1 = MicronDataCache.getStatus(MicronEquipName.ML5_L1.getName()); MicronEquipStatus l1 = MicronDataCache.getStatus(MicronEquipName.ML5_L1.getName());
MicronEquipStatus l2 = MicronDataCache.getStatus(MicronEquipName.ML5_L2.getName()); MicronEquipStatus l2 = MicronDataCache.getStatus(MicronEquipName.ML5_L2.getName());
dto.setL1Status(l1.getStatus()); resultDto.setL1Status(l1.getStatus());
dto.setL2Status(l2.getStatus()); resultDto.setL2Status(l2.getStatus());
dto.setR1Status(r1.getStatus()); resultDto.setR1Status(r1.getStatus());
dto.setR2Status(r2.getStatus()); resultDto.setR2Status(r2.getStatus());
dto.setNg1Count(l1.getNgCount()); resultDto.setNg1Count(l1.getNgCount());
dto.setNg2Count(r1.getNgCount()); resultDto.setNg2Count(r1.getNgCount());
List<EquipMsg> msgs = new ArrayList<>(); List<EquipMsg> msgs = new ArrayList<>();
if (r1.getMsgList() != null && r1.getMsgList().size() > 0) { if (r1.getMsgList() != null && r1.getMsgList().size() > 0) {
...@@ -57,35 +58,42 @@ public class MicronML5Controller { ...@@ -57,35 +58,42 @@ public class MicronML5Controller {
msgs.addAll(l2.getMsgList()); msgs.addAll(l2.getMsgList());
} }
if (msgs.size() > 0) { if (msgs.size() > 0) {
dto.setMsgList(msgs); resultDto.setMsgList(msgs);
} }
Map<String, Integer> needShelfs = new HashMap<>(); Map<String, ML5ShelfDto> needShelfs = new HashMap<>();
// 根据时间排序,获取所有任务,Wait和已完成的 任务不发 // 根据时间排序,获取所有任务,Wait和已完成的 任务不发
List<DataLog> dataLogs = taskService.getAllTasks(); List<DataLog> dataLogs = taskService.getAllTasks();
Collections.sort(dataLogs); Collections.sort(dataLogs);
for (DataLog task : dataLogs for (DataLog task : dataLogs
) { ) {
if(task.isPutInTask()|| task.isEnd()||task.isFinished()||task.isCancel()){ if (task.isPutInTask() || task.isEnd() || task.isFinished() || task.isCancel()) {
continue; continue;
} }
if(task.isCheckOutTask()&&task.isWait()){ if (task.isCheckOutTask() && task.isWait()) {
continue; //continue;
} }
String taskType = MicronDataCache.GetMaterialType(task); String materialType = MicronDataCache.GetMaterialType(task);
String shelf = MicronDataCache.getShelfType(taskType); String shelf = MicronDataCache.getShelfType(materialType);
if (needShelfs.containsKey(shelf)) { String outType = "L";
int newCount = needShelfs.get(shelf) + 1; if (shelf.equals("S007")) {
needShelfs.put(shelf, newCount); outType = "R";
} else {
needShelfs.put(shelf, 1);
} }
ML5ShelfDto shelfDto = needShelfs.getOrDefault(shelf, new ML5ShelfDto(materialType, shelf, outType, 0, 0));
shelfDto.setNum(shelfDto.getNum() + 1);
needShelfs.put(shelfDto.getShelfType(), shelfDto);
}
List<ML5ShelfDto> needList = new ArrayList<>();
for (ML5ShelfDto obj :
needShelfs.values()) {
obj.setShelfNum(MicronDataCache.getShelfNum(obj.getShelfType(), obj.getNum()));
needList.add(obj);
} }
if (needShelfs.size() > 0) { if (needShelfs.size() > 0) {
dto.setNeedShelfs(needShelfs); resultDto.setNeedShelfs(needList);
} }
return dto; return resultDto;
} }
} }
...@@ -66,7 +66,21 @@ public class MicronStatusController { ...@@ -66,7 +66,21 @@ public class MicronStatusController {
MicronEquipStatus s=MicronDataCache.getStatus(name); MicronEquipStatus s=MicronDataCache.getStatus(name);
if(!s.timeOut()){ if(!s.timeOut()){
dto.getStatusMap().put(s.getEquipName(),s.getStatus() ); dto.getStatusMap().put(s.getEquipName(),s.getStatus() );
if(s.getMsgList()!=null&&s.getMsgList().size()>0) { // if(s.getMsgList()!=null&&s.getMsgList().size()>0) {
// dto.getMsgList().addAll(s.getMsgList());
// }
}
}
//所有设备的报警都加上
List<MicronEquipStatus> statuses = new ArrayList<>();
statuses.addAll(MicronDataCache.equipStatusMap.values());
for (MicronEquipStatus s :
statuses) {
if (!s.timeOut()) {
if(!dto.getStatusMap().containsKey(s.getEquipName())){
dto.getStatusMap().put(s.getEquipName(),s.getStatus());
}
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
dto.getMsgList().addAll(s.getMsgList()); dto.getMsgList().addAll(s.getMsgList());
} }
} }
......
...@@ -43,13 +43,14 @@ public class MicronDataCache { ...@@ -43,13 +43,14 @@ public class MicronDataCache {
public static String REEL="reel"; public static String REEL="reel";
public static String GetMaterialType(String cid,String storageId,int w,int h){ public static String GetMaterialType(String cid,String storageId,int w,int h){
String[] pizzaCids=new String[]{"SBSH1","SBSH2","SBDH1-1","SBDH1-2","SBDH2-1","SBDH2-2"}; String[] pizzaCids=new String[]{"SBSH1","SBSH2","SBDH1-1","SBDH1-2","SBDH2-1","SBDH2-2"};
for (String pizzaCid : for (String pizzaCid :
pizzaCids) { pizzaCids) {
if (pizzaCid.equals(cid)) { if ( cid.contains(pizzaCid)) {
return PIZZABOX; return PIZZABOX;
} }
} }
if(cid.equals("SBDH3-1")) { if(cid.contains("SBDH3-1")) {
if (w== 310 && h == 80) { if (w== 310 && h == 80) {
return PCB; return PCB;
} else if (w == 330 &&h == 120) { } else if (w == 330 &&h == 120) {
...@@ -58,7 +59,7 @@ public class MicronDataCache { ...@@ -58,7 +59,7 @@ public class MicronDataCache {
return PCB; return PCB;
} }
} }
else if(cid.equals("SBDH3-2")){ else if(cid.contains("SBDH3-2")){
return PCB; return PCB;
} }
...@@ -67,21 +68,21 @@ public class MicronDataCache { ...@@ -67,21 +68,21 @@ public class MicronDataCache {
// } // }
return REEL; return REEL;
//SBSH1,SBSH2,SBDH1-1,SBDH1-2,SBDH2-1.SBDH2-2这些都是Pizza box,对应的料架是M01开头的,每个料架可以放5盘料 //SBSH1,SBSH2,SBDH1-1,SBDH1-2,SBDH2-1.SBDH2-2这些都是Pizza box,对应的料架是M01开头的,每个料架可以放5盘料
//SBDH3-1里面有pcb,对应的料架是M02开头,每个料架可以放5盘料。 //SBDH3-1里面有pcb,对应的料架是M02开头,每个料架可以放5盘料。 310*80是PCB, 330*120是tray
//SBDH3-2里面是pcb物料
// tray对应的料架是M03开头,每个料架可以放4盘料, // tray对应的料架是M03开头,每个料架可以放4盘料,
// 还有reel料盘尺寸是13*44,13*56,13*72 // 还有reel料盘尺寸是13*44,13*56,13*72
//SBDH3-2里面是pcb物料
// 310*80是PCB //
// 330*120是tray //
// 13*72的入13*44,13*56,13*72的料盘 // 13*72的入13*44,13*56,13*72的料盘
//386*86的这个库位设计的时候错了,就不使用了 //386*86的这个库位设计的时候错了,就不使用了
//pizzaBox (料架M01,每个料架5盘) SBSH1,SBSH2,SBDH1-1,SBDH1-2,SBDH2-1.SBDH2-2 //pizzaBox (料架M01,每个料架5盘) SBSH1,SBSH2,SBDH1-1,SBDH1-2,SBDH2-1.SBDH2-2
//pcb (料架M02,每个料架5盘) SBDH3-2,SBDH3-1部分 //pcb (料架M02,每个料架5盘) SBDH3-2,SBDH3-1部分
//tray (料架M03,每个料架4盘) SBDH3-1 里 //tray (料架M03,每个料架4盘) SBDH3-1 里
//reel (料架M01,每个料架5盘) SBDH3-1 13*44,13*56,13*72 //reel (料架S007,每个料架35盘) SBDH3-1 13*44,13*56,13*72
} }
public static String GetMaterialType(DataLog dataLog){ public static String GetMaterialType(DataLog dataLog){
return GetMaterialType(dataLog.getCid(),dataLog.getStorageId(),dataLog.getW(),dataLog.getH()); return GetMaterialType(dataLog.getCid(),dataLog.getStorageId(),dataLog.getW(),dataLog.getH());
...@@ -101,5 +102,23 @@ public class MicronDataCache { ...@@ -101,5 +102,23 @@ public class MicronDataCache {
return "S007"; return "S007";
} }
public static int getShelfNum(String shelfType, int taskNum){
if(taskNum<=0){
return 0;
}
int shelfN=5;
if(shelfType.equals("M01")||shelfType.equals("M02")){
shelfN=5;
}else if(shelfType.equals("M03")){
shelfN=4;
}else if(shelfType.equals("S007")){
shelfN=35;
}
if(taskNum%shelfN==0){
return taskNum/shelfN;
}else{
return (taskNum/shelfN)+1;
}
}
} }
...@@ -113,7 +113,7 @@ public class MicronInventoryReportsController { ...@@ -113,7 +113,7 @@ public class MicronInventoryReportsController {
@ApiOperation("Inventory Detial Report- Detailed full inventory history I3:库存表格") @ApiOperation("Inventory Detial Report- Detailed full inventory history I3:库存表格")
@GetMapping("/detialReport") @GetMapping("/detialReport")
@AnonymousAccess @AnonymousAccess
public PageData<StoragePosDto> storagePosFind(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request) { public PageData<StoragePosDto> detialReport(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request) {
Query query=getPosFindCriteria(criteria); Query query=getPosFindCriteria(criteria);
PageData<StoragePos> pages = storagePosManager.findByPage(query, pageable); PageData<StoragePos> pages = storagePosManager.findByPage(query, pageable);
List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent()); List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent());
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!