From 5de29342a9ec4ac6621fca5af803219a8ac0ce42 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 05 八月 2024 13:46:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 14 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 1
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 3
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java | 10 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java | 8
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 10 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 132 ++++++++------
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java | 37 +++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml | 29 +++
hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java | 4
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 163 +++--------------
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java | 9
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 12
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java | 27 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 3
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 3
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java | 5
21 files changed, 270 insertions(+), 220 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index f5bda8f..2ea5807 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -53,6 +53,7 @@
public static final Integer GLASS_STATE_TAKE = 200;
public static final Integer GLASS_STATE_DAMAGE = 201;
public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103, 104);
+ public static final List<Integer> GLASS_STATE_IN_ALL_ZERO = Arrays.asList(0, 100, 102, 103, 104);
/**
* 鍗у紡鐞嗙墖绗艰鎯呰〃鐜荤拑鐘舵��
@@ -159,7 +160,7 @@
*/
public static final List<Integer> G06_WORK_STATION = Arrays.asList(1, 2, 3);
public static final List<Integer> G11_WORK_STATION = Arrays.asList(4, 5, 6);
- public static final List<Integer> G13_WORK_STATION = Arrays.asList(7);
+ public static final int G13_WORK_STATION = 7;
/**
* 鍚敤 1
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index dccec5e..aae4a9a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -24,7 +24,7 @@
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author wu
@@ -42,17 +42,17 @@
* 鏌ヨ鎶ュ伐淇℃伅
*/
@Override
- public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure){
- LambdaQueryWrapper<Damage> damageSelectWrapper =new LambdaQueryWrapper<>();
- damageSelectWrapper.between(Damage::getDamageTime,startTime,endTime);
- if (type!=0){
- damageSelectWrapper.eq(Damage::getType,type);
+ public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) {
+ LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
+ damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime);
+ if (type != 0) {
+ damageSelectWrapper.eq(Damage::getType, type);
}
- if (status!=0){
- damageSelectWrapper.eq(Damage::getStatus,status);
+ if (status != 0) {
+ damageSelectWrapper.eq(Damage::getStatus, status);
}
- if(!"0".equals(workingProcedure)){
- damageSelectWrapper.eq(Damage::getWorkingProcedure,workingProcedure);
+ if (!"0".equals(workingProcedure)) {
+ damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
}
List<Damage> damageList = baseMapper.selectList(damageSelectWrapper);
@@ -66,116 +66,23 @@
* 鎻愪氦鎶ュ伐
*/
@Override
- public void submitDamage(List<Damage> damageList){
- Map<String, Map<String, Map<String, Map<String, List<Damage>>>>> resultMap = damageList.stream()
- .collect(Collectors.groupingBy(
- Damage::getProcessId,
- Collectors.groupingBy(
- Damage::getWorkingProcedure,
- Collectors.groupingBy(
- Damage::getDeviceName,
- Collectors.groupingBy(Damage::getTeamsGroupsName)
- )
- )
- ));
- // 閬嶅巻 resultMap
- for (Map.Entry<String, Map<String, Map<String, Map<String, List<Damage>>>>> processEntry : resultMap.entrySet()) {
- String processId = processEntry.getKey();
- System.out.println("ProcessId: " + processId);
+ public void submitDamage(List<Damage> damageList) {
+ Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+ + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
- // 鑾峰彇绗簩灞傜殑 Map锛屾寜 workingProcedure 鍒嗙粍鐨勭粨鏋�
- Map<String, Map<String, Map<String, List<Damage>>>> workingProcedureMap = processEntry.getValue();
+ for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) {
+ String key = entry.getKey();
+ List<Damage> damages = entry.getValue();
- // 閬嶅巻 workingProcedureMap
- for (Map.Entry<String, Map<String, Map<String, List<Damage>>>> workingProcedureEntry : workingProcedureMap.entrySet()) {
- String workingProcedure = workingProcedureEntry.getKey();
- System.out.println(" WorkingProcedure: " + workingProcedure);
+ System.out.println("Key: " + key);
- // 鑾峰彇绗笁灞傜殑 Map锛屾寜 deviceName 鍒嗙粍鐨勭粨鏋�
- Map<String, Map<String, List<Damage>>> deviceNameMap = workingProcedureEntry.getValue();
+ Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+ + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
- // 閬嶅巻 deviceNameMap
- for (Map.Entry<String, Map<String, List<Damage>>> deviceNameEntry : deviceNameMap.entrySet()) {
- String deviceName = deviceNameEntry.getKey();
- System.out.println(" DeviceName: " + deviceName);
+ for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) {
- // 鑾峰彇绗洓灞傜殑 Map锛屾寜 teamsGroupsName 鍒嗙粍鐨勭粨鏋�
- Map<String, List<Damage>> teamsGroupsNameMap = deviceNameEntry.getValue();
-
- // 閬嶅巻 teamsGroupsNameMap
- for (Map.Entry<String, List<Damage>> teamsGroupsNameEntry : teamsGroupsNameMap.entrySet()) {
- String teamsGroupsName = teamsGroupsNameEntry.getKey();
- System.out.println(" TeamsGroupsName: " + teamsGroupsName);
-
- // 鑾峰彇 Damage 鍒楄〃
- List<Damage> damageListForTeamsGroupsName = teamsGroupsNameEntry.getValue();
- //鎶ュ伐涓昏〃鏁版嵁
- ReportingWork reportingWork=new ReportingWork();
- reportingWork.setProcessId(processId);
- reportingWork.setThisProcess(workingProcedure);
- reportingWork.setDeviceName(deviceName);
- reportingWork.setTeamsGroupsName(teamsGroupsName);
-
- Map<Integer, Map<Integer, Map<String, List<Damage>>>> groupedByOrderTechBreakage = damageListForTeamsGroupsName.stream()
- .map(damage -> Optional.ofNullable(damage)) // 浣跨敤Optional澶勭悊鍙兘涓簄ull鐨勫厓绱�
- .filter(Optional::isPresent) // 杩囨护鎺夌┖鐨凮ptional
- .map(Optional::get) // 鑾峰彇闈炵┖鐨凞amage瀵硅薄
- .collect(Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getOrderNumber()).orElse(0), // 浣跨敤orElse璁剧疆榛樿鍊硷紝浠ュ鐞唍ull鍊�
- Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getTechnologyNumber()).orElse(0), // 鍚屾牱澶勭悊technologyNumber鍙兘涓簄ull鐨勬儏鍐�
- Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getBreakageType()).orElse("Unknown"), // 澶勭悊breakageType鍙兘涓簄ull鐨勬儏鍐�
- Collectors.toList()
- )
- )
- ));
-
- // 閬嶅巻 groupedByOrderTechBreakage
- for (Map.Entry<Integer, Map<Integer, Map<String, List<Damage>>>> orderEntry : groupedByOrderTechBreakage.entrySet()) {
- Integer orderNumber = orderEntry.getKey();
- System.out.println(" OrderNumber: " + orderNumber);
-
- // 鑾峰彇绗簩灞傜殑 Map锛屾寜 technologyNumber 鍒嗙粍鐨勭粨鏋�
- Map<Integer, Map<String, List<Damage>>> technologyNumberMap = orderEntry.getValue();
-
- // 閬嶅巻 technologyNumberMap
- for (Map.Entry<Integer, Map<String, List<Damage>>> technologyEntry : technologyNumberMap.entrySet()) {
- Integer technologyNumber = technologyEntry.getKey();
- System.out.println(" TechnologyNumber: " + technologyNumber);
-
- // 鑾峰彇绗笁灞傜殑 Map锛屾寜 breakageType 鍒嗙粍鐨勭粨鏋�
- Map<String, List<Damage>> breakageTypeMap = technologyEntry.getValue();
-
- // 閬嶅巻 breakageTypeMap
- for (Map.Entry<String, List<Damage>> breakageTypeEntry : breakageTypeMap.entrySet()) {
- String breakageType = breakageTypeEntry.getKey();
- System.out.println(" BreakageType: " + breakageType);
-
-
- // 鑾峰彇 Damage 鍒楄〃
- List<Damage> damageListForBreakageType = breakageTypeEntry.getValue();
- int completedQuantity=0;
- int breakageQuantity=0;
- // 閬嶅巻 Damage 鍒楄〃
- for (Damage damage : damageListForBreakageType) {
- // 鎵撳嵃鎴栧鐞嗘瘡涓� Damage 瀵硅薄
- System.out.println(" Damage: " + damage.toString());
- if(damage.getType()==1){
- completedQuantity+=1;
- }else if(damage.getType()==2){
- breakageQuantity+=1;
- }
- }
- }
- }
- }
- }
- }
}
}
-
-
}
@@ -184,26 +91,26 @@
* 娣诲姞鎶ュ伐淇℃伅
*/
@Override
- public void insertDamage(Damage damage){
- LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper=new LambdaQueryWrapper<>();
- glassInfoSelectWrapper.eq(GlassInfo::getGlassId,damage.getGlassId());
- GlassInfo glassInfo=glassInfoMapper.selectOne(glassInfoSelectWrapper);
+ public void insertDamage(Damage damage) {
+ LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
+ glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
+ GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper);
BeanUtils.copyProperties(glassInfo, damage);
- LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper=new LambdaQueryWrapper<>();
+ LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>();
workAssignmentSelectWrapper
- .eq(WorkAssignment::getLine,damage.getLine())
- .eq(WorkAssignment::getWorkProcesses,damage.getWorkingProcedure());
- WorkAssignment workAssignment=workAssignmentMapper.selectOne(workAssignmentSelectWrapper);
- if(workAssignment!=null){
+ .eq(WorkAssignment::getLine, damage.getLine())
+ .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure());
+ WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper);
+ if (workAssignment != null) {
damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
damage.setDeviceName(workAssignment.getDeviceName());
- damage.setProcessId(glassInfo.getFlowCardId());
- damage.setOrderNumber(glassInfo.getGlassType());
- damage.setTechnologyNumber(glassInfo.getLayer());
- damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
- damage.setType(2);
- baseMapper.insert(damage);
}
+ damage.setProcessId(glassInfo.getFlowCardId());
+ damage.setOrderNumber(glassInfo.getGlassType());
+ damage.setTechnologyNumber(glassInfo.getLayer());
+ damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
+ damage.setType(2);
+ baseMapper.insert(damage);
}
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index b4c28b8..fd28610 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -31,6 +31,7 @@
import javax.print.attribute.standard.MediaSize;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -183,8 +184,10 @@
*/
@Override
public List<Map<String, Object>> selectCurrentCutTerritory(String current) {
-
- return optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+ //鏈�缁堣繑鍥炵粨鏋�
+ List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
+ //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
+ List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
.selectAll(OptimizeDetail.class)
.selectAs(OptimizeLayout::getWidth, "olWidth")
.selectAs(OptimizeLayout::getWidth, "olHeight")
@@ -193,6 +196,26 @@
.eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
.eq(OptimizeDetail::getProjectNo, current)
);
+
+ Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+ .selectAll(EdgStorageCageDetails.class)
+ .eq(EdgStorageCageDetails::getEngineerId,current)
+ .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
+
+ for (Map<String, Object> cutTerritory : cutTerritorys) {
+// log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
+ if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
+ log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}",cutTerritorys);
+ return new ArrayList<>();
+ }else if(edgMaps.get(cutTerritory.get("glass_id"))!=null){
+ cutTerritory.put("glass_state",edgMaps.get(cutTerritory.get("glass_id")).getState());
+ }else{
+ cutTerritory.put("glass_state",0);
+ }
+ ResultcutTerritorys.add(cutTerritory);
+ }
+ return ResultcutTerritorys;
//Sql鐗堟湰
// return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
// .select("ol.width as olwidth","ol.height as olheight")
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index ddbc9a9..0dd3ec0 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -87,6 +87,8 @@
@Value("${mes.min.two.secondLength}")
private String minTwoSecondLength;
+ public static String engineerId="";
+
@Scheduled(fixedDelay = 1000)
public void plcHomeEdgTask() {
Date startDate = new Date();
@@ -696,9 +698,17 @@
@Scheduled(fixedDelay = 1000)
public void CacheGlassTasks() {
JSONObject jsonObject = new JSONObject();
- //璇嗗埆鎽嗙墖
- List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+ List<Map<String, Object>> currentCutTerritorys= edgStorageCageDetailsService.selectCutTerritory();
+// List<Map<String, Object>> currentCutTerritorys=new ArrayList<>();
+// if(engineerId==null||engineerId.isEmpty()){
+// //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁
+// currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+// }else{
+// //璇嗗埆鎽嗙墖 姝ngineerId 宸ョ▼鐗堝浘鏁版嵁
+// currentCutTerritorys = edgStorageCageDetailsService.selectCurrentCutTerritory(engineerId);
+// }
jsonObject.append("currentCutTerritory", currentCutTerritorys);
+ //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
//纾ㄨ竟淇℃伅
List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 6f09fea..8122b36 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -13,6 +13,8 @@
import java.util.List;
import java.util.Map;
+import static com.mes.job.CacheGlassTask.engineerId;
+
/**
* <p>
* 鍓嶇鎺у埗鍣�
@@ -38,6 +40,7 @@
@PostMapping("/cutTerritory")
@ResponseBody
public Result cutTerritory(String current) {
+ //engineerId=current;
List<Map<String, Object>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
return Result.build(200,"鎴愬姛",h);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 1abe8aa..3a702c3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -13,12 +13,16 @@
mes:
threshold: 3
ratio: 10
- max:
+ max: # 绗簩鏉$嚎鐨勬渶澶у昂瀵镐俊鎭�
firstLength: 3500
secondLength: 2500
min:
- firstLength: 600
- secondLength: 350
+ one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+ firstLength: 600
+ secondLength: 350
+ two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+ firstLength: 400
+ secondLength: 300
sequence:
order: false
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
index 19a87ce..8264682 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -137,6 +137,12 @@
}
@Test
+ public void testEngineerCutTerritory() {
+ List<Map<String, Object>> map = edgStorageCageDetailsService.selectCurrentCutTerritory("P24051806");
+ log.info("鍒囧壊宸ョ▼鐗堝浘淇℃伅锛歿}", Arrays.asList(map));
+ }
+
+ @Test
public void testidentWorn() {
Map<String, String> arguments=new HashMap<>();
arguments.put("glassId","P24060403|3|6");//鐜荤拑ID
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
index 0752d30..b6f1cbd 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -1,11 +1,8 @@
package com.mes.bigstorage.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.bigstorage.entity.BigStorageCage;
-import com.mes.bigstorage.entity.BigStorageCageDetails;
-import com.mes.glassinfo.entity.GlassInfo;
-import org.apache.ibatis.annotations.Update;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +16,7 @@
*/
public interface BigStorageCageMapper extends MPJBaseMapper<BigStorageCage> {
+ List<Integer> queryFreeDeviceByUsed(@Param(value = "thickness") double thickness);
+
+ List<Integer> queryFreeDeviceByNotUsed(@Param(value = "thickness") double thickness);
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
index ab90c99..9ba368b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -31,4 +31,8 @@
List<Map<String, Object>> selectBigStorageCageUsage();
void updateStorageCageDisabled(int slot, int enableState);
+
+ List<Integer> queryFreeDeviceByUsed(double thickness);
+
+ List<Integer> queryFreeDeviceByNotUsed(double thickness);
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index a1f0079..7138c20 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -30,6 +30,7 @@
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -49,6 +50,7 @@
* @author zhoush
* @since 2024-03-27
*/
+@Slf4j
@Service
public class BigStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
@@ -88,7 +90,7 @@
@Override
- public List<BigStorageCageDetails> selectFeedTask(){
+ public List<BigStorageCageDetails> selectFeedTask() {
//杩涚墖浠诲姟鏁版嵁
LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
feedWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW);
@@ -101,38 +103,38 @@
List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
.collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
- Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
- while (iterator.hasNext()) {
- BigStorageCageDetails bigStorageCageDetails = iterator.next();
- BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
- }
- return bigStorageCageDetailsList;
+ Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+ while (iterator.hasNext()) {
+ BigStorageCageDetails bigStorageCageDetails = iterator.next();
+ BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+ }
+ return bigStorageCageDetailsList;
}
@Override
- public List<BigStorageCageDetails> selectOutTask(){
- LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
- outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING,Const.GLASS_STATE_SCHEDULE_ING);
- List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
- LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
- outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
- List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
+ public List<BigStorageCageDetails> selectOutTask() {
+ LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
+ outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING, Const.GLASS_STATE_SCHEDULE_ING);
+ List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
+ LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
+ outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
+ List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
- Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
- .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
- for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
- BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
- }
- Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
- while (iterator.hasNext()) {
- BigStorageCageDetails bigStorageCageDetails = iterator.next();
- BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
- }
- return bigStorageCageDetailsList;
+ Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
+ .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
+ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+ BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
}
+ Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+ while (iterator.hasNext()) {
+ BigStorageCageDetails bigStorageCageDetails = iterator.next();
+ BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
+ }
+ return bigStorageCageDetailsList;
+ }
/**
@@ -266,7 +268,8 @@
.selectAll(BigStorageCage.class)
.leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCageDetails::getEngineerId,glassInfo.getEngineerId())
+ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+ .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
.eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
.gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
.last("limit 1");
@@ -277,6 +280,7 @@
}
BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
if (null != bigStorageCage) {
+ log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
bigStorageDTO = new BigStorageDTO();
bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
bigStorageDTO.setSlot(bigStorageCage.getSlot());
@@ -286,11 +290,12 @@
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
.eq(BigStorageCage::getRemainWidth, slotWidth)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
.inSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where engineer_id = "+glassInfo.getEngineerId()+" and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+ "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
.last("limit 1"));
if (null != bigStorageCage) {
+ log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
bigStorageDTO = new BigStorageDTO();
bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
bigStorageDTO.setSlot(bigStorageCage.getSlot());
@@ -298,35 +303,42 @@
return bigStorageDTO;
}
- //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .notInSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where state in (100,102,103)")
- .ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
- .orderByAsc(BigStorageCage::getDeviceId)
- .last("limit 1"));
- if (null != bigStorageCage) {
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
+ //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+ List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+ for (Integer item : deviceUsedList) {
+ bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+ .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .eq(BigStorageCage::getDeviceId, item)
+ .last("limit 1"));
+ if (null != bigStorageCage) {
+ log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+ bigStorageDTO = new BigStorageDTO();
+ bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+ bigStorageDTO.setSlot(bigStorageCage.getSlot());
+ bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+ return bigStorageDTO;
+ }
}
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
- .orderByAsc(BigStorageCage::getDeviceId)
- .last("limit 1"));
+
+ //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+ List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
+ for (Integer item : deviceNotUsedList) {
+ bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+ .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .eq(BigStorageCage::getDeviceId, item)
+ .last("limit 1"));
+ if (null != bigStorageCage) {
+ log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
+ bigStorageDTO = new BigStorageDTO();
+ bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+ bigStorageDTO.setSlot(bigStorageCage.getSlot());
+ bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+ return bigStorageDTO;
+ }
+ }
Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
return bigStorageDTO;
}
@@ -377,7 +389,9 @@
QueryWrapper<BigStorageCageDetails> wrapper = new QueryWrapper<>();
wrapper.select("engineer_id,tempering_layout_id,count(*) as count")
.in("state", Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL)
- .groupBy("engineer_id,tempering_layout_id");
+ .groupBy("engineer_id,tempering_layout_id")
+ .orderByAsc("engineer_id")
+ .orderByAsc("tempering_layout_id");
List<Map<String, Object>> TemperingGlass = baseMapper.selectMaps(wrapper);
return TemperingGlass;
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 44e8033..a255625 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -283,4 +283,14 @@
bigStorageCageWrapper.eq(BigStorageCage::getSlot, slot);
baseMapper.update(bigStorageCage, bigStorageCageWrapper);
}
+
+ @Override
+ public List<Integer> queryFreeDeviceByUsed(double thickness) {
+ return baseMapper.queryFreeDeviceByUsed(thickness);
+ }
+
+ @Override
+ public List<Integer> queryFreeDeviceByNotUsed(double thickness) {
+ return baseMapper.queryFreeDeviceByNotUsed(thickness);
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index b1a5bf5..def27db 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -244,7 +244,7 @@
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
}
- @Scheduled(fixedDelay = 300)
+ @Scheduled(fixedDelay = 10000)
public void plcToHomeEdgOutTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -271,7 +271,7 @@
.orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -280,7 +280,7 @@
List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
if (CollectionUtils.isNotEmpty(artificialList)) {
- computeOutGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
+ computeOutMoreGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -302,7 +302,7 @@
.orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
temperingGlassInfoService.saveBatch(temperingGlassInfos);
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -728,10 +728,10 @@
Integer remainWidth = carWidth;
int maxX = 0;
for (T e : list) {
- if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) {
+ if (bigStorageCageOutTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
break;
}
- remainWidth = remainWidth - (int) e.getWidth() - glassGap;
+ remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
if (isTempering) {
int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
if (maxX + minLength <= xMaxSize) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 2c93d87..be947ce 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -41,6 +41,7 @@
GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
AND T2.COUNT = T3.COUNT
+ ORDER BY T2.ENGINEER_ID, T2.TEMPERING_LAYOUT_ID
</select>
<select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
new file mode 100644
index 0000000..d9b1ce4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageCageMapper">
+
+
+ <select id="queryFreeDeviceByUsed" resultType="java.lang.Integer">
+ SELECT T.DEVICE_ID
+ FROM BIG_STORAGE_CAGE T
+ LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
+ ON T.SLOT = T1.SLOT
+ WHERE T.MAX_THICKNESS >= #{thickness}
+ AND T.ENABLE_STATE = 1
+ GROUP BY T.DEVICE_ID
+ ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+ COUNT(DISTINCT T1.SLOT)
+ </select>
+
+ <select id="queryFreeDeviceByNotUsed" resultType="java.lang.Integer">
+ SELECT T.DEVICE_ID
+ FROM BIG_STORAGE_CAGE T
+ LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
+ ON T.SLOT = T1.SLOT
+ WHERE T.MAX_THICKNESS >= #{thickness}
+ AND T.ENABLE_STATE = 1
+ GROUP BY T.DEVICE_ID
+ ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+ COUNT(DISTINCT T.SLOT) - COUNT(DISTINCT T1.SLOT) DESC
+ </select>
+</mapper>
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index 17b0050..7ecbf06 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -129,11 +129,8 @@
jsonObject.append("list", upWorkstations);
//鏄惁寮�濮嬪伐绋�
Engineering engineering = engineeringService.selectInitiate(1);
- if (engineering != null){
- jsonObject.append("engineering", engineering);
- }else {
- jsonObject.append("engineering", "0");
- }
+ jsonObject.append("engineering", engineering);
+
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass");
if (sendwServer != null) {
for (WebSocketServer webserver : sendwServer) {
@@ -156,7 +153,7 @@
JSONObject jsonObject = new JSONObject();
//姝e湪杩涜鐨勪换鍔�
String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue();
- //String inkageStatus ="1";
+// String inkageStatus ="1";
jsonObject.append("InkageStatus", inkageStatus);
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass");
if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index 410a443..add927c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -30,6 +30,16 @@
private Long id;
/**
+ * 宸ヤ綅id
+ */
+ private Integer workStationId;
+
+ /**
+ * 宸ョ▼id
+ */
+ private String engineerId;
+
+ /**
* 娴佺▼鍗″彿
*/
private String flowCardId;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index df92487..b39daf2 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -80,6 +80,6 @@
//鐢熸垚浠诲姟淇℃伅 骞跺悜plc鍙戦�佸嚭鐗囦换鍔�
GlassInfo glassInfo = new GlassInfo();
BeanUtils.copyProperties(details, glassInfo);
- return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), 3001, 2);
+ return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), Const.G13_WORK_STATION, 2);
}
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
index 24f9182..e8d9c20 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -33,6 +33,11 @@
private Integer deviceId;
/**
+ * 宸ョ▼鍙�
+ */
+ private String engineerId;
+
+ /**
* 鏍呮牸鍙�
*/
private Integer slot;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 7e31c30..ab141ce 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -513,7 +513,7 @@
endCell = workstation.getWorkstationId();
}
//鏇存柊钀芥灦鐜荤拑鏁伴噺
- if (endCell == 7) {
+ if (endCell == Const.G13_WORK_STATION) {
downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId())
.eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1"));
} else {
@@ -526,6 +526,7 @@
BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
//钀芥灦鐗囧簭
downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
+ downGlassInfo.setWorkStationId(endCell);
downGlassInfoService.save(downGlassInfo);
//鐢熸垚浠诲姟淇℃伅
GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index 0b65991..7a84902 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -1,18 +1,22 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
-import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Slf4j
@Component
@@ -22,14 +26,16 @@
private DownWorkstationService downWorkstationService;
@Autowired
private DownStorageCageService downStorageCageService;
+ @Autowired
+ private DownGlassInfoService downGlassInfoService;
@Scheduled(fixedDelay = 2000)
public void sendDownWorkstations() {
log.info("鍙戦�佸伐浣嶇幓鐠冧俊鎭�");
JSONObject jsonObject = new JSONObject();
- List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,6);
- jsonObject.append("params",data);
+ List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1, 6);
+ jsonObject.append("params", data);
log.info(jsonObject.toString());
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
if (sendwServer != null) {
@@ -82,11 +88,30 @@
JSONObject jsonObject4 = new JSONObject();
List<Map<String, Object>> list=downStorageCageService.selectDownStorageCages();
jsonObject4.append("params2",list);
- log.info(jsonObject4.toString());
- ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("downcache");
+ log.info(jsonObject4.toString());
+ ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("downcache");
+ if (sendwServer4 != null) {
+ for (WebSocketServer webserver : sendwServer4) {
+ if (webserver != null && webserver.session.isOpen()) {
+ webserver.sendMessage(jsonObject4.toString());
+ }
+ }
+ }
+ }
+
+ @Scheduled(fixedDelay = 2000)
+ public void sendDownGlassInfo() {
+ log.info("鍙戦�佸綋鍓嶆鍦ㄦ墽琛屽伐绋嬪凡钀芥灦鐨勭幓鐠冧俊鎭�");
+ List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(new LambdaQueryWrapper<DownGlassInfo>()
+ .inSql(DownGlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+ Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
+ JSONObject jsonObject4 = new JSONObject();
+ List<Map<String, Object>> list = downStorageCageService.selectDownStorageCages();
+ jsonObject4.append("params", listMap);
+ ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("sendDownGlass");
if (sendwServer4 != null) {
for (WebSocketServer webserver : sendwServer4) {
- if (webserver != null&&webserver.session.isOpen()) {
+ if (webserver != null && webserver.session.isOpen()) {
webserver.sendMessage(jsonObject4.toString());
}
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index 32bca1a..f13a7b4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -38,7 +38,7 @@
order by count desc limit 1
</select>
<select id="queryMaxSequence" resultType="java.lang.Integer">
- SELECT COALESCE(max(sequence) + 1, 0) as sequence
+ SELECT COALESCE(max(sequence) + 1, 1) as sequence
FROM down_glass_info
WHERE flow_card_id = #{flowCardId}
AND layer = #{layer}
--
Gitblit v1.8.0