Commit ce7d2943 LN

修改BUG:锡膏料仓任务数量错误

1 个父辈 0b9bbb19
......@@ -17,6 +17,7 @@ import com.neotel.smfcore.core.kanban.rest.bean.dto.*;
import com.neotel.smfcore.core.kanban.rest.bean.mapstruct.BoxTaskMapper;
import com.neotel.smfcore.core.kanban.rest.bean.query.BoxTaskQueryCriter;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.solder.util.SolderBoxCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
......@@ -68,6 +69,8 @@ public class BoxKanbanController {
@Autowired
IStoragePosManager storagePosManager;
@Autowired
SolderBoxCache solderBoxCache;
@RequestMapping(value = "/rest/api/mes/boxInfo")
@ResponseBody
......@@ -410,6 +413,10 @@ public class BoxKanbanController {
}
}
}
if(storage.isSolderPaste()){
outTask=solderBoxCache.getSpTaskCount(storage.getId());
}
int allCount = inTask + outTask;
BoxStatusDto boxDto = new BoxStatusDto(storage.getId(), storage.getName(), storage.getCid(), false, 0,
"0", "0","0", "", allCount, inTask, outTask,
......
......@@ -25,9 +25,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import javax.annotation.PostConstruct;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
......@@ -55,6 +53,8 @@ public class SolderBoxCache {
@Autowired
private ISolderLogManager solderLogManager;
private Map<String,List<StoragePos>> spTaskMap=new HashMap<>();
@PostConstruct
public void init(){
ExecutorService executorService = Executors.newSingleThreadExecutor();
......@@ -75,6 +75,26 @@ public class SolderBoxCache {
}
public void updateSpTasks(String storageId, List<StoragePos> taskPosList){
if(spTaskMap==null){
spTaskMap=new HashMap<>();
}
if(spTaskMap.containsKey(storageId)){
spTaskMap.remove(storageId);
}
spTaskMap.put(storageId,taskPosList);
}
public Integer getSpTaskCount(String storageId){
if(spTaskMap!=null){
List<StoragePos> taskPosList=spTaskMap.get(storageId);
if(taskPosList!=null&&taskPosList.size()>0){
return spTaskMap.get(storageId).size();
}
}
return 0;
}
public void runTimer(){
Collection<Storage> allStorage = dataCache.getAllStorage().values();
......@@ -88,6 +108,7 @@ public class SolderBoxCache {
.and("barcode.solderStatus").nin(SOLDER_STATUS.NONE.name(),SOLDER_STATUS.UNDER_REFRIGERATION.name(),SOLDER_STATUS.RETREAT_STORAGE.name());
List<StoragePos> taskPosList = storagePosManager.findByQuery(new Query(c));
updateSpTasks(storage.getId(),taskPosList);
for (StoragePos storagePos : taskPosList) {
try{
Barcode barcode = storagePos.getBarcode();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!