Commit ce7d2943 LN

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

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