UI-Project/src/lang/zh.js
@@ -654,6 +654,7 @@ order: '出片顺序', thickness: '厚度', coatingtypes: '膜系', layer: '层数', height: '长', width: '宽', state: '状态', UI-Project/src/views/StockBasicData/stockBasicyiwu.vue
@@ -1,9 +1,9 @@ <script setup> import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; import {useRouter} from "vue-router" import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref } from 'vue' import { useRouter } from 'vue-router' import {host, WebSocketHost} from '@/utils/constants' import request from "@/utils/request" import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; import request from '@/utils/request' import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService' // import { ref } from 'vue' import {ElMessage, ElMessageBox} from 'element-plus' // import LanguageMixin from './lang/LanguageMixin' @@ -17,10 +17,10 @@ const tableData = ref([]) const slot = ref('') const requestData = { line: 2001 }; line: 1, } const timeRange = ref([]) const selectValuesa = reactive([]); const selectValuesa = reactive([]) // request.post("/cacheGlass/taskCache/selectEdgTask",{ // ...requestData, @@ -41,28 +41,30 @@ let celllist = [] let stateList = [] if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') { if (selectValuesa[0] != "") { celllist = [selectValuesa[0]]; if (selectValuesa[0] != '') { celllist = [selectValuesa[0]] } } if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') { if (selectValuesa[1] != "") { stateList = [selectValuesa[1]]; if (selectValuesa[1] != '') { stateList = [selectValuesa[1]] } } console.log(timeRange.value[0], timeRange.value[1]); const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", { console.log(timeRange.value[0], timeRange.value[1]) const response = await request.post( '/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest', { cellList: celllist, stateList: stateList, beginDate: timeRange.value[0], endDate: timeRange.value[1], }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.message); } ) if (response.code === 200) { ElMessage.success(response.message) } else { ElMessage.error(response.message) } } // 破损 @@ -76,28 +78,31 @@ cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); ) if (confirmResult === 'confirm') { // 用户点击了“是”,现在调用删除接口 const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { const response = await request.post( '/cacheGlass/edgStorageCage/edgReportStatus', { glassId: row.glassId, state: 8, line: row.line, workingProcedure: '磨边', }) } ) if (response.code === 200) { ElMessage.success(response.message); ElMessage.success(response.message) } else { // 删除失败,您可以处理错误或显示错误信息给用户 ElMessage.error(response.msg); ElMessage.error(response.msg) // alert('删除失败:' + deleteResponse.message); } } } catch (error) { // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 console.error('发生错误:', error); console.error('发生错误:', error) } }; } // 拿走 const opena = async (row) => { try { @@ -109,100 +114,151 @@ cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); ) if (confirmResult === 'confirm') { // 用户点击了“是”,现在调用删除接口 const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { const response = await request.post( '/cacheGlass/edgStorageCage/edgReportStatus', { glassId: row.glassId, state: 9, line: row.line, workingProcedure: '磨边', }) } ) if (response.code === 200) { ElMessage.success(response.message); ElMessage.success(response.message) } else { // 删除失败,您可以处理错误或显示错误信息给用户 ElMessage.error(response.msg); ElMessage.error(response.msg) // alert('删除失败:' + deleteResponse.message); } } } catch (error) { // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 console.error('发生错误:', error); console.error('发生错误:', error) } }; let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`; } let socket = null const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks` // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { // 更新 tableData 的数据 tableData.value = data.edgTasks[0] }; } onMounted(() => { socket = initializeWebSocket(socketUrl, handleMessage); }); socket = initializeWebSocket(socketUrl, handleMessage) }) onUnmounted(() => { if (socket) { closeWebSocket(socket); closeWebSocket(socket) } }); }) onBeforeUnmount(() => { console.log("关闭了") closeWebSocket(); }); console.log('关闭了') closeWebSocket() }) </script> <template> <div style="height: 500px;"> <div> <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable style="margin-left: 20px;margin-bottom: 10px;"> <el-option :label="$t('workOrder.edgingone')" value="2001"></el-option> <el-option :label="$t('workOrder.edgingtwo')" value="2002"></el-option> <el-option :label="$t('workOrder.edgingone')" value="1"></el-option> <el-option :label="$t('workOrder.edgingtwo')" value="2"></el-option> </el-select> <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable style="margin-left: 20px;margin-bottom: 10px;"> <el-option :label="$t('workOrder.nedging')" value="0"></el-option> <el-option :label="$t('workOrder.edging')" value="1"></el-option> <el-option :label="$t('workOrder.finedging')" value="2"></el-option> <el-option :label="$t('workOrder.nedging')" value="0"></el-option> <el-option :label="$t('workOrder.edging')" value="1"></el-option> <el-option :label="$t('workOrder.finedging')" value="2"></el-option> </el-select> <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span> <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" :start-placeholder="$t('reportmanage.starttime')" style="margin-left: 20px;margin-bottom: 10px;" <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span> <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" :start-placeholder="$t('reportmanage.starttime')" style="margin-left: 20px;margin-bottom: 10px;" value-format="YYYY-MM-DD hh:mm:ss" :end-placeholder="$t('reportmanage.endtime')"> </el-date-picker> <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{ <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{ $t('reportmanage.inquire') }} </el-button> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="750" ref="table" <el-table height="750" ref="table" @selection-change="handleSelectionChange" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180"/> <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120"/> <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80"/> <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120"/> <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120"/> <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120"/> <el-table-column prop="status" :label="$t('workOrder.status')" align="center" width="200"> :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180" /> <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" /> <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" /> <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" /> <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120" /> <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120" /> <el-table-column prop="status" :label="$t('workOrder.status')" align="center" width="200"> <template #default="scope"> {{ scope.row.status == 0 ? "未磨边" : scope.row.status == 1 ? "磨边中" : "已磨边" }} </template> </el-table-column> <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200"> <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200"> <template #default="scope"> <el-button size="mini" type="text" plain @click="open(scope.row)">{{ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }} </el-button> <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('workOrder.takeout') }} </el-button> UI-Project/src/views/hollow/hollowequipment.vue
@@ -5,13 +5,13 @@ <el-button id="searchButton" type="success" @click="handlezhiban"> {{ $t('hellow.createtask') }} </el-button> <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda"> {{ $t('hellow.starttask') }} </el-button> <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindb">{{ $t('hellow.stoptask') }} </el-button> <!-- <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda">--> <!-- {{ $t('hellow.starttask') }}--> <!-- </el-button>--> <!-- <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindb">{{--> <!-- $t('hellow.stoptask')--> <!-- }}--> <!-- </el-button>--> <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('hellow.schedulingswitch')" @change="handleChange" /> </div> <div style="margin-bottom: -5px;margin-left: 5px;"> @@ -46,10 +46,15 @@ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> <el-table-column prop="sequence" :label="$t('hellow.order')" align="center"/> <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/> <el-table-column prop="layer" :label="$t('hellow.coatingtypes')" align="center"/> <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/> <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/> <el-table-column prop="height" :label="$t('hellow.height')" align="center"/> <el-table-column prop="width" :label="$t('hellow.width')" align="center"/> <el-table-column prop="state" :label="$t('hellow.state')" align="center"/> <el-table-column prop="state" :label="$t('hellow.state')" align="center"> <template #default="scope"> {{ scope.row.state == -1 ? "等待出片" : "出片完成" }} </template> </el-table-column> </el-table> <div style="display: flex;margin-left: 500px;margin-top: 10px;"> <!-- <div style="float: center;"> --> @@ -358,7 +363,8 @@ var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + layer; const response = await request.post(url) if (response.code == 200) { tableDatac.value = response.data[1]; // tableDatac.value = response.data[1]; tableDatac.value = response.data; ElMessage.success(response.message); } else { ElMessage.error(response.message); hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -289,4 +289,14 @@ public static final Integer HOLLOW_FLOW_CARD_PAUSE = 2; public static final Integer HOLLOW_FLOW_CARD_SUCCESS = 3; /** * 中空大理片笼出片状态I * 0 未进笼 * 1 占用 * 2 进笼完成 */ public static final Integer HOLLOW_RELATION_NEW = 0; public static final Integer HOLLOW_RELATION_OCCUPY = 1; public static final Integer HOLLOW_RELATION_SUCCESS = 2; } hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassOutRelationInfoController.java
@@ -27,12 +27,24 @@ @ApiOperation("领取任务") @PostMapping("/receiveTask") public Result<HollowGlassOutRelationInfo> receiveTask(String flowCardId, int cell, int totalPairQuantity) { return Result.success(hollowGlassOutRelationInfoService.receiveTask(flowCardId, cell, totalPairQuantity)); HollowGlassOutRelationInfo hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService.receiveTask(flowCardId, cell, totalPairQuantity); if (null == hollowGlassOutRelationInfo) { return Result.error(500, "有正在执行的任务,请先确保任务完成后,再次领取任务"); } else { return Result.success(hollowGlassOutRelationInfo); } } @ApiOperation("强制出片") @PostMapping("/forceOutGlass") public Result<HollowGlassOutRelationInfo> forceOutGlass(String flowCardId, int cell, int totalPairQuantity) { return Result.success(hollowGlassOutRelationInfoService.forceOutGlass(flowCardId, cell, totalPairQuantity)); HollowGlassOutRelationInfo hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService.forceOutGlass(flowCardId, cell, totalPairQuantity); if (null == hollowGlassOutRelationInfo) { return Result.error(500, "有正在执行的任务,请先确保任务完成后,再次强制执行任务"); } else { return Result.success(hollowGlassOutRelationInfo); } } @ApiOperation("是否调度开关") hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
@@ -34,10 +34,17 @@ return Result.success(bigStorageCageDetails); } // @ApiOperation("查询指定流程卡及层数的缺片详情") // @PostMapping("/queryLackByFlowCard") // public Result<Map<Integer, List<LackDetailsDTO>> > queryLackByFlowCard(String flowCardId) { // Map<Integer, List<LackDetailsDTO>> lackDetailsList = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId); // return Result.success(lackDetailsList); // } // @ApiOperation("查询指定流程卡及层数的缺片详情") @PostMapping("/queryLackByFlowCard") public Result<Map<Integer, List<LackDetailsDTO>> > queryLackByFlowCard(String flowCardId) { Map<Integer, List<LackDetailsDTO>> lackDetailsList = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId); public Result<List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) { List<LackDetailsDTO> lackDetailsList = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId); return Result.success(lackDetailsList); } hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassRelationInfo.java
@@ -85,6 +85,10 @@ * /*中空总次序 */ private Integer orderSort; /** * /*状态:表示配对的玻璃是否进笼,0未进笼 1已占用 2进笼完成 */ private Integer state; } hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardGlassInfoDTO.java
@@ -23,6 +23,10 @@ */ private String filmsId; /** * 厚度 */ private int thickness; /** * 层号 */ private int layer; hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
@@ -30,7 +30,8 @@ Map<String, List<FlowCardGlassInfoDTO>> queryHollowAllFlowCard(); Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId); // Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId); List<LackDetailsDTO> queryLackByFlowCard(String flowCardId); } hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -1,5 +1,6 @@ package com.mes.hollow.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.common.config.Const; @@ -67,6 +68,11 @@ log.info("该流程卡信息系统未找到"); return info; } List<HollowGlassOutRelationInfo> outRelationInfos = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>().eq(HollowGlassOutRelationInfo::getCell, cell) .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)); if (CollectionUtil.isNotEmpty(outRelationInfos)){ return null; } info.setFlowCardId(flowCardId); info.setCell(cell); info.setIsForce(isForce); hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -64,8 +64,7 @@ .eq(HollowGlassRelationInfo::getWidth, width) .eq(HollowGlassRelationInfo::getHeight, height) .eq(HollowGlassRelationInfo::getLayer, layer) .isNull(HollowGlassRelationInfo::getTemperingLayoutId) .isNull(HollowGlassRelationInfo::getTemperingFeedSequence) .eq(HollowGlassRelationInfo::getState,Const.HOLLOW_RELATION_NEW) .orderByAsc(HollowGlassRelationInfo::getHollowSequence) .last("limit 1") ); @@ -200,6 +199,7 @@ hollow.setVirtualSlot(temp.get(0).getVirtualSlot()); hollow.setFilmsId(glassInfo.getFilmsid()); hollow.setThickness(glassInfo.getThickness()); hollow.setState(Const.HOLLOW_RELATION_NEW); temp.add(hollow); flag = true; break; @@ -214,6 +214,7 @@ hollow.setVirtualSlot(slotNumber++); hollow.setFilmsId(glassInfo.getFilmsid()); hollow.setThickness(glassInfo.getThickness()); hollow.setState(Const.HOLLOW_RELATION_NEW); newList.add(hollow); tempHollowList.add(newList); } @@ -242,11 +243,16 @@ return dtos.stream().collect(Collectors.groupingBy(FlowCardGlassInfoDTO::getFlowCardId)); } // @Override // public Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) { // List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId); // Map<Integer, List<LackDetailsDTO>> listMap = lackDetailsList.stream().collect(Collectors.groupingBy(LackDetailsDTO::getLayer)); // return listMap; // } @Override public Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) { public List<LackDetailsDTO> queryLackByFlowCard(String flowCardId) { List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId); Map<Integer, List<LackDetailsDTO>> listMap = lackDetailsList.stream().collect(Collectors.groupingBy(LackDetailsDTO::getLayer)); return listMap; return lackDetailsList; } } hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
@@ -45,6 +45,10 @@ */ private Integer glassType; /** * 膜系 */ private String filmsId; /** * /*厚度 */ private Double thickness; hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -162,6 +162,7 @@ //计算目标格子 List<HollowBigStorageCageHistoryTask> historyTasks = new ArrayList<>(); try { for (BigStorageCageTask task : inTaskList) { GlassInfo info = glassListMap.get(task.getGlassId()).get(0); HollowBigStorageDTO bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(), @@ -194,11 +195,23 @@ .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId()) .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence()) .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId()) .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY) .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId()) .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer()) .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot()) .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence()) .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence()) ); } } catch (Exception exception) { log.info("进片任务执行中发生异常:{}", exception); hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>() .set(HollowGlassRelationInfo::getGlassId, null) .set(HollowGlassRelationInfo::getTemperingLayoutId, null) .set(HollowGlassRelationInfo::getTemperingFeedSequence, null) .set(HollowGlassRelationInfo::getEngineerId, null) .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW) .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY) ); } //历史数据入库 @@ -440,12 +453,38 @@ hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN); log.info("4、大理片笼进片状态已完成已完成的玻璃信息id:{}", v); updateSlotRemainBySlots(inSuccessGlassSlot); List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList()); hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>() .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_SUCCESS) .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY) .in(HollowGlassRelationInfo::getGlassId, glassList) ); } else if (e1 == 3) { //破损处理 dealDamageInTask(v); List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList()); hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>() .set(HollowGlassRelationInfo::getGlassId, null) .set(HollowGlassRelationInfo::getTemperingLayoutId, null) .set(HollowGlassRelationInfo::getTemperingFeedSequence, null) .set(HollowGlassRelationInfo::getEngineerId, null) .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW) .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY) .in(HollowGlassRelationInfo::getGlassId, glassList) ); } else { //清空理片笼空数据 noDealInTask(v); List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList()); hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>() .set(HollowGlassRelationInfo::getGlassId, null) .set(HollowGlassRelationInfo::getTemperingLayoutId, null) .set(HollowGlassRelationInfo::getTemperingFeedSequence, null) .set(HollowGlassRelationInfo::getEngineerId, null) .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW) .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY) .in(HollowGlassRelationInfo::getGlassId, glassList) ); } }); for (BigStorageCageTask item : inTaskList) { hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -6,6 +6,8 @@ <result column="engineer_id" property="engineerId"/> <result column="flow_card_id" property="flowCardId"/> <result column="layer" property="layer"/> <result column="films_id" property="filmsId"/> <result column="thickness" property="thickness"/> <result column="sum_count" property="sumCount"/> <result column="pair_count" property="pairCount"/> <result column="real_count" property="realCount"/> @@ -39,10 +41,12 @@ </update> <select id="hollowIsAll" resultMap="baseMap"> WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, count(*) AS sum_count FROM hollow_glass_relation_info GROUP BY flow_card_id, layer ), real_flow_layer_count AS ( SELECT flow_card_id, layer, count(*) AS real_count FROM hollow_glass_relation_info WHERE tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL GROUP BY flow_card_id, layer ), damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) as damage_count FROM damage GROUP BY process_id, technology_number ) , WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, min(thickness) as thickness,count(*) AS sum_count FROM hollow_glass_relation_info GROUP BY flow_card_id, layer ), real_flow_layer_count AS ( SELECT flow_card_id, layer, count(*) AS real_count FROM hollow_big_storage_cage_details t WHERE state = 100 GROUP BY flow_card_id, layer ), damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) as damage_count FROM damage GROUP BY process_id, technology_number ), lack_flow_layer_count AS ( SELECT t.flow_card_id, @@ -55,9 +59,9 @@ left JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id AND t1.layer = t2.layer ), layer_one AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 1 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ), layer_two AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 2 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ), layer_three AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 3 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ) layer_one AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 1 AND state = 100 ), layer_two AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 2 AND state = 100), layer_three AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 3 AND state = 100 ) , pair_flow_layer_count AS ( SELECT @@ -67,11 +71,11 @@ layer_one t INNER JOIN layer_two t1 ON t.flow_card_id = t1.flow_card_id AND t.virtual_slot = t1.virtual_slot AND t.slot_sequence = t1.slot_sequence AND t.sequence = t1.sequence <if test="totalLayer == 3"> inner join layer_three t2 on t.flow_card_id = t2.flow_card_id and t.virtual_slot = t2.virtual_slot and t.slot_sequence = t2.slot_sequence t.virtual_slot = t2.virtual_slot and t.sequence = t2.sequence </if> GROUP BY t.flow_card_id @@ -81,6 +85,7 @@ t.flow_card_id, t.layer, t.films_id, t.thickness, sum_count, IFNULL( t3.pair_count, 0 ) AS pair_count, IFNULL( real_count, 0 ) AS real_count, @@ -105,7 +110,6 @@ and sum_count = pair_count </if> </select> <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO"> with relation_temp as (