From a74f1fdfccee2fb9df74c21f8137150b17a05eba Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 15 十月 2024 15:26:02 +0800
Subject: [PATCH] 1、原片仓储逻辑完成60%
---
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java | 4
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/xml/RawGlassStorageDetailsMapper.xml | 16 ++
hangzhoumesParent/common/opcuaClient/src/main/java/com/mes/milo/model/ReadWriteEntity.java | 4
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 17 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java | 14 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java | 6
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java | 15 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java | 9
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java | 72 ++-------
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java | 4
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 19 ++
hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml | 32 ++++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java | 201 ++++++++++++++++++++++++++++
13 files changed, 343 insertions(+), 70 deletions(-)
diff --git a/hangzhoumesParent/common/opcuaClient/src/main/java/com/mes/milo/model/ReadWriteEntity.java b/hangzhoumesParent/common/opcuaClient/src/main/java/com/mes/milo/model/ReadWriteEntity.java
index 5276365..b8a29ac 100644
--- a/hangzhoumesParent/common/opcuaClient/src/main/java/com/mes/milo/model/ReadWriteEntity.java
+++ b/hangzhoumesParent/common/opcuaClient/src/main/java/com/mes/milo/model/ReadWriteEntity.java
@@ -23,4 +23,8 @@
private Object value;
private DataValue dataValue;
+
+ public String getValueString() {
+ return (String) this.value;
+ }
}
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 6b9a1de..46c9d01 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
@@ -180,4 +180,23 @@
public static final Integer UNLOAD_GLASS_OUT = 1;
public static final Integer UNLOAD_GLASS_DOWN = 2;
+
+ /**
+ * 鍘熺墖浠撳偍浠诲姟绫诲瀷
+ * 杩涚墖浠诲姟1
+ * 鍑虹墖浠诲姟2
+ */
+ public static final Integer RAW_GLASS_TASK_TYPE_IN = 1;
+ public static final Integer RAW_GLASS_TASK_TYPE_OUT = 2;
+ public static final Integer RAW_GLASS_TASK_TYPE_DISPATCH = 3;
+
+ /**
+ * 鍘熺墖浠撳偍浠诲姟绫诲瀷
+ * 杩涚墖浠诲姟1
+ * 鍑虹墖浠诲姟2
+ */
+ public static final Integer ENGINEERING_NEW = 0;
+ public static final Integer ENGINEERING_RUNNING = 1;
+
+
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java
new file mode 100644
index 0000000..eda97c0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java
@@ -0,0 +1,14 @@
+package com.mes.uppattenusage.entity.vo;
+
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/12 15:43
+ * @Description:
+ */
+@Data
+public class UpPattenUsageVO extends UpPattenUsage {
+ private String groupNumber;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
index 154e50d..42e4308 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
@@ -2,7 +2,10 @@
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.uppattenusage.entity.UpPattenUsage;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -14,4 +17,5 @@
*/
public interface UpPattenUsageMapper extends MPJBaseMapper<UpPattenUsage> {
+ List<UpPattenUsageVO> queryRawGlassByEngineeringId(@Param("engineeringId") String engineerId);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml
new file mode 100644
index 0000000..951829c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml
@@ -0,0 +1,32 @@
+<?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.uppattenusage.mapper.UpPattenUsageMapper">
+
+ <resultMap id="baseMap" type="com.mes.uppattenusage.entity.vo.UpPattenUsageVO">
+ <result column="id" property="id"/>
+ <result column="engineering_id" property="engineeringId"/>
+ <result column="films_id" property="filmsId"/>
+ <result column="width" property="width"/>
+ <result column="height" property="height"/>
+ <result column="thickness" property="thickness"/>
+ <result column="layout_sequence" property="layoutSequence"/>
+ <result column="state" property="state"/>
+ <result column="group_number" property="groupNumber"/>
+ </resultMap>
+ <select id="queryRawGlassByEngineeringId" resultType="com.mes.uppattenusage.entity.vo.UpPattenUsageVO">
+ SET @prev_width := NULL;
+ SET @prev_height := NULL;
+ SET @counter := 0;
+
+ SELECT t.*,
+ @counter := IF(@prev_width = width and @prev_height = height, @counter, @counter + 1) AS group_number,
+ @prev_width := width,
+ @prev_height := height
+ FROM up_patten_usage t
+ where t.engineering_id = #{engineeringId}
+ and t.state = 0
+ ORDER BY t.layout_sequence
+ </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
index a06a933..a3c0e25 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
@@ -2,10 +2,7 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
-import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
import com.mes.rawglassstation.service.RawGlassStorageStationService;
import com.mes.rawglasstask.entity.RawGlassStorageTask;
import com.mes.rawglasstask.service.RawGlassStorageTaskService;
@@ -16,7 +13,6 @@
import javax.annotation.Resource;
import java.util.List;
-import java.util.stream.Collectors;
/**
* @author wangfei
@@ -25,56 +21,26 @@
@Component
public class RawGlassPushMessage {
- @Resource private RawGlassStorageStationService rawGlassStorageStationService;
+ @Resource
+ private RawGlassStorageStationService rawGlassStorageStationService;
- @Resource private RawGlassStorageTaskService rawGlassStorageTaskService;
+ @Resource
+ private RawGlassStorageTaskService rawGlassStorageTaskService;
- @Resource private RawGlassStorageDetailsService rawGlassStorageDetailsService;
-
- @Scheduled(fixedDelay = 2000)
- public void sendRawGlassMessage() {
- log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
- JSONObject jsonObject = new JSONObject();
- List<RawGlassStorageDetails> rawStationDetailsList =
- rawGlassStorageStationService.listRawGlassDetails();
- List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.listRawGlassTask();
- jsonObject.append("rawStationDetailsList", rawStationDetailsList);
- jsonObject.append("tasks", tasks);
-// log.info("鑾峰彇鍒扮殑宸ヤ綅璇︽儏鍙婁换鍔′俊鎭负锛歿}", jsonObject);
-
- List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass");
- if (CollectionUtil.isNotEmpty(sendwServer)) {
- sendwServer.stream().forEach(e->{
- e.sendMessage(String.valueOf(jsonObject));
- });
+ @Scheduled(fixedDelay = 2000)
+ public void sendRawGlassMessage() {
+ log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+ JSONObject jsonObject = new JSONObject();
+ List<RawGlassStorageDetails> rawStationDetailsList =
+ rawGlassStorageStationService.listRawGlassDetails();
+ List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.listRawGlassTask();
+ jsonObject.append("rawStationDetailsList", rawStationDetailsList);
+ jsonObject.append("tasks", tasks);
+ List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass");
+ if (CollectionUtil.isNotEmpty(sendwServer)) {
+ sendwServer.stream().forEach(e -> {
+ e.sendMessage(String.valueOf(jsonObject));
+ });
+ }
}
- }
-
- /** todo:鍏ュ簱浠诲姟锛氬悐瑁呬綅鏈夌幓鐠冿紝鍏堝幓宸ヤ綅琛ㄦ煡璇㈢┖鏍煎瓙锛岀敓鎴愬叆搴撲换鍔′粠鍚婅浣嶅埌鐩爣鏍煎瓙 */
-// @Scheduled(fixedDelay = 1000)
-// public void sendRawGlassMessage() {
-//// List<RawGlassStorageDetails> rawGlassStorageDetailsList = rawGlassStorageDetailsService.List(new RawGlassStorageDetails())
-// Wrapper<RawGlassStorageDetails> queryWrapper = null;
-// List<RawGlassStorageDetails> detailsList = rawGlassStorageDetailsService.list(null);
-// queryWrapper.eq(RawGlassStorageDetails::getState, 100);
-// if(detailsList.size() >0){
-// //鏌ユ壘鏍煎瓙琛╠etails绌烘牸瀛�
-// List<String> slotIds = detailsList.stream()
-// .map(RawGlassStorageDetails::getSlotId)
-// .collect(Collectors.toList());
-// list(new LambdaQueryWrapper<RawGlassStorageTask>()
-// .in(CollectionUtil.isNotEmpty(request.getState()), RawGlassStorageTask::getState, request.getState())
-// .in(CollectionUtil.isNotEmpty(request.getSlotId()), RawGlassStorageTask::getSlotId, request.getSlotId())
-// .orderByDesc(RawGlassStorageTask::getCreateTime));
-// }if(slotIds.size()>0){
-// //鐢熸垚鍏ュ簱浠诲姟
-// }
-//
-// }
-
-
-
- /** todo:鍑哄簱浠诲姟锛�1銆佺偣鍑哄簱锛岀珛椹敓鎴愬嚭鐗囦换鍔� 2銆佺偣鍑哄簱淇敼宸ヤ綅璇︽儏鍐呯殑鐘舵�佷负寰呭嚭搴擄紝瀹氭椂浠诲姟鎵弿鐢熸垚鍑哄簱浠诲姟 */
-
- /** todo:鍘熺墖璋冨害锛�1銆佹煡璇㈠伐绋嬪師鐗囪〃锛屾寜鐓ч『搴忓皢鍘熺墖鏀惧叆涓婄墖1鍙蜂綅锛屽悗缁師鐗囨斁涓婄墖2鍙蜂綅锛屽嚭鐜板昂瀵告浛鎹紝鍒ゆ柇鍘熶笂鐗囦綅鏄惁鏈夌幓鐠冿紝鏈� 鍏堝嚭鍚庤繘锛屾棤 鐩存帴杩涚墖 */
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
new file mode 100644
index 0000000..6040484
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -0,0 +1,201 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.milo.model.ReadWriteEntity;
+import com.mes.milo.service.MiloService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/11 16:13
+ * @Description:
+ */
+@Slf4j
+@Component
+public class RawGlassTask {
+
+ @Autowired
+ private RawGlassStorageStationService rawGlassStorageStationService;
+ @Autowired
+ private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
+ @Autowired
+ private RawGlassStorageTaskService rawGlassStorageTaskService;
+
+ @Resource
+ private EngineeringMapper engineeringMapper;
+ @Resource
+ private UpPattenUsageMapper upPattenUsageMapper;
+
+ @Autowired
+ private MiloService miloService;
+
+ private static final List<String> liftingStation = Arrays.asList("1", "2");
+ private static final List<String> loadGlassStation = Arrays.asList("3", "4", "5", "6");
+
+ /**
+ * 鍏ュ簱浠诲姟锛氬悐瑁呬綅鏈夌幓鐠冿紝鍏堝幓宸ヤ綅琛ㄦ煡璇㈢┖鏍煎瓙锛岀敓鎴愬叆搴撲换鍔′粠鍚婅浣嶅埌鐩爣鏍煎瓙
+ *
+ * @throws Exception
+ */
+ @Scheduled(fixedDelay = 1000)
+ public void warehouseTask() throws Exception {
+ ReadWriteEntity entity = miloService.readFromOpcUa("rawglass.device.request");
+ String value = entity.getValueString();
+ if (!"1".equals(value)) {
+ log.info("澶ц溅蹇欑");
+ return;
+ }
+ List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+ .inSql(RawGlassStorageDetails::getSlotId, "select slot from raw_glass_storage_station where enable_state = 1 and slot in (1,2)"));
+ if (CollectionUtil.isEmpty(rawGlassList)) {
+ log.info("鍚婅浣嶈绂佺敤鎴栨病鏈夌幓鐠�");
+ return;
+ }
+ //鏌ヨ宸ヤ綅淇℃伅鏄惁鏈�
+ List<RawGlassStorageStation> stationList = rawGlassStorageStationService.list(new LambdaQueryWrapper<RawGlassStorageStation>().notInSql(RawGlassStorageStation::getSlot, "select slot_id from raw_glass_storage_details where state = '100'")
+ .eq(RawGlassStorageStation::getEnableState, Const.SLOT_ON));
+ if (CollectionUtil.isEmpty(stationList)) {
+ log.info("娌℃湁绌虹殑宸ヤ綅");
+ return;
+ }
+ //鐢熸垚杩涚浠诲姟
+ generateTask(rawGlassList.get(0).getSlotId(), stationList.get(0).getSlot(),
+ rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
+ //鐢熸垚宸ヤ綅浠诲姟锛屽皢鍚婅浣嶇殑鐜荤拑鐘舵�佹敼浣嶈繘绗间腑
+ }
+
+
+ /**
+ * 鍑哄簱浠诲姟锛�1銆佺偣鍑哄簱锛岀珛椹敓鎴愬嚭鐗囦换鍔� 2銆佺偣鍑哄簱淇敼宸ヤ綅璇︽儏鍐呯殑鐘舵�佷负寰呭嚭搴擄紝瀹氭椂浠诲姟鎵弿鐢熸垚鍑哄簱浠诲姟
+ */
+ @Scheduled(fixedDelay = 1000)
+ public void outboundTask() throws Exception {
+ ReadWriteEntity entity = miloService.readFromOpcUa("rawglass.device.request");
+ String value = entity.getValueString();
+ if (!"2".equals(value)) {
+ log.info("澶ц溅蹇欑");
+ return;
+ }
+ List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_OUT_ING)
+ .inSql(RawGlassStorageDetails::getSlotId, "select slot from raw_glass_storage_station where enable_state = 1 and slot not in (1,2)"));
+ if (CollectionUtil.isEmpty(rawGlassList)) {
+ log.info("绯荤粺娌℃湁闇�瑕佸嚭搴撶殑鍘熺墖淇℃伅");
+ return;
+ }
+ List<Integer> emptyLeftingList = rawGlassStorageDetailsService.listBySlotState(liftingStation, Arrays.asList(Const.GLASS_STATE_IN));
+ if (CollectionUtil.isEmpty(emptyLeftingList)) {
+ log.info("鍚婅浣嶅綋鍓嶉兘鏈夊師鐗囷紝缁撴潫鍑虹墖浠诲姟");
+ }
+ //鐢熸垚鍑哄簱浠诲姟
+ generateTask(rawGlassList.get(0).getSlotId(), emptyLeftingList.get(0),
+ rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
+ }
+
+ /**
+ * 鍘熺墖璋冨害锛�1銆佹煡璇㈠伐绋嬪師鐗囪〃锛屾寜鐓ч『搴忓皢鍘熺墖鏀惧叆涓婄墖1鍙蜂綅锛屽悗缁師鐗囨斁涓婄墖2鍙蜂綅锛屽嚭鐜板昂瀵告浛鎹紝鍒ゆ柇鍘熶笂鐗囦綅鏄惁鏈夌幓鐠冿紝鏈� 鍏堝嚭鍚庤繘锛屾棤 鐩存帴杩涚墖
+ */
+ @Scheduled(fixedDelay = 1000)
+ public void rawGlassDispatchTask() throws Exception {
+ ReadWriteEntity entity = miloService.readFromOpcUa("rawglass.device.request");
+ String value = entity.getValueString();
+ if (!"2".equals(value)) {
+ log.info("澶ц溅蹇欑");
+ return;
+ }
+ //鏌ヨ褰撳墠绯荤粺姝e湪鎵ц鐨勮鍗�
+ Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>().eq(Engineering::getState, Const.ENGINEERING_RUNNING).last("order by id limit 1"));
+ if (null == engineering) {
+ log.info("娌℃湁姝e湪鎵ц鐨勫伐绋�");
+ return;
+ }
+ //褰撳墠灏哄闇�瑕佷笂鐗囩殑鏁伴噺
+ List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId());
+ Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
+ .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber));
+ //todo:鎸夌収宸ョ▼鍙锋寜鐓у伐绋嬩笅鏈畬鎴愮殑灏哄鐨勯『搴忥紝褰�1鍙蜂笂鐗囦綅鏋跺瓙涓婄殑褰撳墠灏哄鐜荤拑灏戜簬3鐗囦笖2鍙蜂笂鐗囦綅鏃犲師鐗囩幓鐠冿紝鍒欏皢鍘昏皟搴︾幓鐠冨幓2鍙蜂笂鐗囦綅锛�
+ //todo:褰撲竴鍙蜂笂鐗囦綅鏋跺瓙涓婄殑鐜荤拑浣嶇┖鎴栬�呭綋鍓嶅昂瀵哥敤瀹屾椂鏃讹紝灏�2鍙凤紙鏈夌幓鐠冿級涓婄墖浣嶈皟搴﹀埌1鍙蜂笂鐗囦綅
+ //1銆佹煡璇�4涓笂鐗囩殑鍘熺墖璇︽儏
+ List<RawGlassStorageDetails> rawGlassDetailsList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN).in(RawGlassStorageDetails::getSlotId, loadGlassStation));
+ if (CollectionUtils.isEmpty(rawGlassDetailsList)) {
+ //琛ㄧず1涓婄墖浣嶆病鏈夊師鐗囷紝鐩存帴鎵惧師鐗囨斁鍏ュ搴旂殑涓婄墖浣�
+ //缁撴潫璋冨害浠诲姟
+ }
+ Map<Integer, List<RawGlassStorageDetails>> listMap = rawGlassDetailsList.stream().collect(Collectors.groupingBy(RawGlassStorageDetails::getSlotId));
+ RawGlassStorageDetails rawGlass03Details = listMap.get(3).get(0);
+ RawGlassStorageDetails rawGlass04Details = listMap.get(4).get(0);
+// RawGlassStorageDetails rawGlass05Details = listMap.get(5).get(0);
+// RawGlassStorageDetails rawGlass06Details = listMap.get(6).get(0);
+ //todo:涓婄墖1鍙蜂綅2绉嶆竻绌烘柟寮忥細鏂瑰紡涓�锛氬師鐗囩敤瀹� 鏂瑰紡浜岋細褰撳墠灏哄鐢ㄥ畬
+ if (null == rawGlass03Details) {
+ if (null == rawGlass04Details) {
+ //琛ㄧず1涓婄墖浣嶆病鏈夊師鐗囷紝鐩存帴鎵惧師鐗囨斁鍏ュ搴旂殑涓婄墖浣�
+ //缁撴潫璋冨害浠诲姟
+ } else {
+ //灏�2鍙蜂笂鐗囦綅鐨勫師鐗囨斁鍏�1鍙蜂笂鐗囦綅
+ //缁撴潫璋冨害浠诲姟
+ }
+ } else {
+ //鍘熺墖鍓╀綑鏁伴噺
+ Integer quantity = rawGlass03Details.getRemainQuantity();
+ List<UpPattenUsageVO> upPattenUsage01VOS = upListMap.get("1");
+ if (null == rawGlass04Details) {
+ //todo:鍒ゆ柇2鍙蜂笂鐗囦綅闇�瑕佺殑鍘熺墖淇℃伅
+ if (quantity < upPattenUsage01VOS.size()) {
+ //todo:缁х画涓婁竴鍙蜂笂鐗囦綅褰撳墠鐨勫昂瀵�
+ } else {
+ //todo:鍒囨崲灏哄锛屼笂鍚庣画缁勭殑灏哄
+ List<UpPattenUsageVO> upPattenUsage02VOS = upListMap.get("2");
+ }
+ }
+ }
+
+
+ }
+
+
+ /**
+ * 鐢熸垚鍘熺墖浠撳偍浠诲姟
+ *
+ * @param startSlot
+ * @param endSlot
+ * @param patternQuantity
+ * @param taskType
+ * @return
+ */
+ private boolean generateTask(int startSlot, int endSlot, Integer patternQuantity, int taskType) {
+ RawGlassStorageTask task = RawGlassStorageTask.builder()
+ .originateSlot(startSlot)
+ .endSlot(endSlot)
+ .patternQuantity(patternQuantity)
+ .taskType(taskType)
+ .createTime(new Date()).build();
+ return rawGlassStorageTaskService.save(task);
+ }
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
index 1f99472..2a339bb 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
@@ -33,7 +33,7 @@
/**
* 鏍煎瓙id
*/
- private String slotId;
+ private Integer slotId;
/**
* 鍘熺墖瀹�
@@ -63,7 +63,7 @@
/**
* 鍓╀綑鏁伴噺
*/
- private String remainQuantity;
+ private Integer remainQuantity;
/**
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java
index 868b2fd..46441d4 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java
@@ -1,11 +1,14 @@
package com.mes.rawglassdetails.mapper;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
- * Mapper 鎺ュ彛
+ * Mapper 鎺ュ彛
* </p>
*
* @author wf
@@ -13,4 +16,12 @@
*/
public interface RawGlassStorageDetailsMapper extends BaseMapper<RawGlassStorageDetails> {
+ /**
+ * 鎸夌収鍚婅浣嶅拰璇︽儏琛ㄧ姸鎬佹煡璇㈢┖闂茬殑鍚婅浣�
+ *
+ * @param liftingStation
+ * @param state
+ * @return
+ */
+ List<Integer> listBySlotState(@Param("leftingStation") List<String> liftingStation, @Param("state") List<Integer> state);
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/xml/RawGlassStorageDetailsMapper.xml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/xml/RawGlassStorageDetailsMapper.xml
index 454dde2..f13945e 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/xml/RawGlassStorageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/mapper/xml/RawGlassStorageDetailsMapper.xml
@@ -1,5 +1,19 @@
<?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="glassdetails.mapper.RawGlassStorageDetailsMapper">
+<mapper namespace="com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper">
+ <select id="listBySlotState" resultType="java.lang.Integer">
+ select t.slot
+ from raw_glass_storage_station t
+ inner JOIN raw_glass_storage_details t1
+ on t.slot = t1.slot_id and t.enable_state = 1
+ and t.slot in
+ <foreach collection="leftingStation" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
+ and t1.state not in
+ <foreach collection="state" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
+ </select>
</mapper>
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
index e05c291..cd7ad71 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -1,10 +1,8 @@
package com.mes.rawglassdetails.service;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.entity.request.GeneralRequest;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.entity.request.RawGlassRequest;
-import com.mes.userinfo.entity.vo.SysUserVO;
import java.util.List;
@@ -39,4 +37,6 @@
String deleteWarehousing(Long slotId);
String outWarehousing(Long slotId);
+
+ List<Integer> listBySlotState(List<String> liftingStation, List<Integer> state);
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index 8be12b1..e608d50 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -8,8 +8,6 @@
import com.mes.rawglassdetails.entity.request.RawGlassRequest;
import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.userinfo.entity.vo.SysUserVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -24,8 +22,8 @@
@Service
@Slf4j
public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
- @Override
- public boolean deleteRawGlassStorageDetails(String device_id) {
+ @Override
+ public boolean deleteRawGlassStorageDetails(String device_id) {
QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("device_id", device_id);
return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
@@ -60,17 +58,24 @@
.eq(RawGlassStorageDetails::getSlotId, request.getSlotId()));
return "success";
}
+
@Override
public String deleteWarehousing(Long slotId) {
update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId)
- .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT));
+ .set(RawGlassStorageDetails::getState, Const.GLASS_STATE_OUT));
return "success";
}
+
@Override
public String outWarehousing(Long slotId) {
update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId)
- .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT_ING));
+ .set(RawGlassStorageDetails::getState, Const.GLASS_STATE_OUT_ING));
return "success";
}
+ @Override
+ public List<Integer> listBySlotState(List<String> liftingStation, List<Integer> state) {
+ return baseMapper.listBySlotState(liftingStation, state);
+ }
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
index 8c6a3be..5346dee 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
@@ -2,20 +2,23 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.util.Date;
/**
* <p>
- *
+ *
* </p>
*
* @author wf
* @since 2024-09-10
*/
@Data
+@Builder
@EqualsAndHashCode(callSuper = false)
public class RawGlassStorageTask implements Serializable {
@@ -38,7 +41,7 @@
/**
* 鍘熺墖鏁伴噺
*/
- private String patternQuantity;
+ private Integer patternQuantity;
/**
* 浠诲姟绫诲瀷
@@ -53,7 +56,7 @@
/**
* 鍒涘缓鏃堕棿
*/
- private String createTime;
+ private Date createTime;
}
--
Gitblit v1.8.0