Merge remote-tracking branch 'origin/master'
New file |
| | |
| | | import {defineStore} from "pinia"; |
| | | |
| | | export default defineStore('companyInfo', { |
| | | |
| | | state: () => ({ |
| | | companyName: '常州市吉利玻璃有限公司', |
| | | address:'常州市天宁区郑陆镇大明南路8号', |
| | | telephone:'022-59280088', |
| | | fax:'022-59280066', |
| | | widHeiLength:{//订单宽高长度 |
| | | regexp:/^(\d{1,4})$/,//正则四位整数 |
| | | //regexp:/^(0|[1-9][0-9]{0,3}([.][0-9]{1,2})?)$/,//正则0.00-9999.99 |
| | | msg:'basicData.msg.range9999Dec' |
| | | }, |
| | | orderIdType:'month',//后端生成订单号类型,day:每天生成,month:每月生成 |
| | | deliveryIdType:'month',//后端生成发货单号类型,day:每天生成,month:每月生成 |
| | | columnName:'异形参数', |
| | | selectOrderReviewShow:false, //订单首页加工单审核按钮是否显示 |
| | | productName:"product_abbreviation", //产品创建查重字段 |
| | | decValue:2,//订单保存面积位数 |
| | | label:2,//标签类型 |
| | | calculateType:2,//订单计算方式 |
| | | |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | | return `<div class="row3" style="text-align: center;font-weight: bolder;"> |
| | | <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">W:${item1.width}</label> |
| | | |
| | | <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">H:${item1.height}</label> |
| | | </div>` |
| | | }, |
| | | customSemi: (item1) => { |
| | | return `<div class="row3" style="text-align: center;font-weight: bolder;"> |
| | | <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">W:${item1.width}</label> |
| | | |
| | | <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">H:${item1.height}</label> |
| | | </div>` |
| | | }, |
| | | labelType: '成品标签2', |
| | | labelValue:2, |
| | | labelType3: '成品标签3', |
| | | labelValue3:3, |
| | | printFlowCard: { |
| | | patch:'正品', |
| | | lackOf:'次品', |
| | | processingNote: (itemtextarea) => { |
| | | return `${itemtextarea.processing_note}` |
| | | }, |
| | | }, |
| | | hideButton:'false', |
| | | getSelectFlowCard:2,//打印流程卡查询状态 |
| | | className:{ |
| | | custom:{ |
| | | printFlowCardName: () => { |
| | | return `printFlowCard_finished` |
| | | }, |
| | | entiretyName: () => { |
| | | return `entirety_finished` |
| | | }, |
| | | contentRowName: () => { |
| | | return `contentRow` |
| | | } |
| | | }, |
| | | semi:{ |
| | | printFlowCardName: () => { |
| | | return `printFlowCard_semi` |
| | | }, |
| | | entiretyName: () => { |
| | | return `entirety_semi` |
| | | }, |
| | | contentRowName: () => { |
| | | return `contentRow` |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | }), |
| | | actions: { |
| | | // |
| | | } |
| | | }) |
| | |
| | | const rawRects = response.data[0]; |
| | | rawData.value = response.data; |
| | | totalPages.value = rawData.value.length; |
| | | const scaleFactor = 1621.78/6000; |
| | | adjustedRects.value = rawRects.map(rect => ({ |
| | | ...rect, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor, |
| | | y_axis: rect.y_axis * 0.17, |
| | | width: rect.width * 0.2 , |
| | | width: rect.width * scaleFactor , |
| | | widtha: rect.width , |
| | | heighta: rect.height , |
| | | height: rect.height * 0.165 , |
| | |
| | | const handleCurrentChange = (val: number) => { |
| | | currentPage.value = val; |
| | | const page = currentPage.value - 1 |
| | | const scaleFactor = 1621.78/6000; |
| | | adjustedRects.value = rawData.value[page]?.map(rect => ({ |
| | | // adjustedRects.value = rawRects.map(rect => ({ |
| | | ...rect, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor, |
| | | y_axis: rect.y_axis * 0.17, |
| | | width: rect.width * 0.2 , |
| | | width: rect.width * scaleFactor , |
| | | widtha: rect.width , |
| | | heighta: rect.height , |
| | | height: rect.height * 0.165 , |
| | |
| | | webSocket = new WebSocket(socketUrl); |
| | | webSocket.onmessage = (event) => { |
| | | const data = JSON.parse(event.data); |
| | | const scaleFactor = 1621.78/6000; |
| | | adjustedRects.value = data.currentCutTerritory[0].map(rect => ({ |
| | | ...rect, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, |
| | | x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor, |
| | | y_axis: rect.y_axis * 0.17, |
| | | width: rect.width * 0.2 , |
| | | width: rect.width * scaleFactor , |
| | | widtha: rect.width , |
| | | heighta: rect.height , |
| | | height: rect.height * 0.165 , |
| | |
| | | // 进炉中 |
| | | if(data.intoGlass!=null){ |
| | | adjustedRects1.value = data.intoGlass[0].map(rect => { |
| | | console.log( adjustedRects1.value); |
| | | const scaleFactor = 794.67/5087; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.12; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.12; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } |
| | | // if (rect.angle === 0) { |
| | | // adjustedWidth = heighta * 0.12; |
| | | // adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | | // newX = 5087 - (rect.xCoordinate + heighta); |
| | | // } else { |
| | | // adjustedWidth = widtha * 0.12; |
| | | // adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5087 - (rect.xCoordinate + widtha); |
| | | // } |
| | | } |
| | | return { |
| | | ...rect, |
| | | xcoordinate: newX * 0.12, |
| | | xcoordinate: newX * scaleFactor, |
| | | ycoordinate: rect.xCoordinate * 0.1, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | } |
| | | if(data.intoGlass2!=null){ |
| | | adjustedRects2.value = data.intoGlass2[0].map(rect => { |
| | | console.log( adjustedRects2.value); |
| | | const scaleFactor = 794.67/5087; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.12; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.12; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } |
| | | // if (rect.angle === 0) { |
| | | // adjustedWidth = heighta * 0.12; |
| | | // adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | | // newX = 5087 - (rect.xCoordinate + heighta); |
| | | // } else { |
| | | // adjustedWidth = widtha * 0.12; |
| | | // adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5087 - (rect.xCoordinate + widtha); |
| | | // } |
| | | } |
| | | return { |
| | | ...rect, |
| | | xcoordinate: newX * 0.12, |
| | | xcoordinate: newX * scaleFactor, |
| | | ycoordinate: rect.xCoordinate * 0.1, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | // 进炉前 |
| | | if(data.waitingGlass!=null){ |
| | | adjustedRectsa.value = data.waitingGlass[0].map(rect => { |
| | | const scaleFactor = 1621.78/5190; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.24; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5190 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.24; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | |
| | | } |
| | | return { |
| | | ...rect, |
| | | x: newX * 0.24, |
| | | x: newX * scaleFactor, |
| | | y: rect.xCoordinate * 0.16, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | // 已出炉 |
| | | if(data.outGlass!=null){ |
| | | adjustedRectsb.value = data.outGlass[0].map(rect => { |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | const scaleFactor = 1621.78/5190; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | | widtha = rect.height; |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.24; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5190 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.24; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.16; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | |
| | | } |
| | | return { |
| | | ...rect, // 复制原始对象的其他属性 |
| | | x: newX * 0.24, |
| | | x: newX * scaleFactor, |
| | | y: rect.xCoordinate * 0.16, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | // 更新 tableData 的数据 |
| | | if(data.overGlass!=null){ |
| | | adjustedRects.value = data.overGlass[0].map(rect => { |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta; |
| | | const scaleFactor = 1621.78/5190; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | | widtha = rect.height; |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.24; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5190 - (rect.yCoordinate + rect.width); |
| | | } else { |
| | | adjustedWidth = heighta * 0.24; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.16; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | |
| | | } |
| | | return { |
| | | ...rect, |
| | | xcoordinate: newX * 0.24, |
| | | xcoordinate: newX * scaleFactor, |
| | | ycoordinate: rect.xCoordinate * 0.16, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> |
| | | <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> --> |
| | | <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/> |
| | | <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/> |
| | | <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/> |
| | |
| | | <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/> |
| | | <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/> |
| | | <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/> |
| | | <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150"> |
| | | <!-- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')" min-width="120" /> |
| | | <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> |
| | | <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> --> |
| | | <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/> |
| | | <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/> |
| | | <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/> |
| | |
| | | <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/> |
| | | <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/> |
| | | <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/> |
| | | <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150"> |
| | | <!-- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | |
| | | <div v-for="(item, index) in tableDatae" :key="index" id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}</span> |
| | | <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | |
| | | </div> --> |
| | | <el-table ref="table" style="margin-top: 20px;height: 500px;" |
| | | :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/> |
| | | <!-- <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/> |
| | | --> |
| | | <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150"/> |
| | | |
| | | <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" /> |
| | | <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" /> --> |
| | | <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" /> |
| | |
| | | const requestData = { |
| | | line: 2001 |
| | | }; |
| | | const now = new Date(); |
| | | const timeRange = ref([new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(23, 59, 59, 999))]) |
| | | const timeRange = ref([]) |
| | | const selectValuesa = reactive([]); |
| | | // request.post("/cacheGlass/taskCache/selectEdgTask",{ |
| | | // ...requestData, |
| | |
| | | stateList=[selectValuesa[1]]; |
| | | } |
| | | } |
| | | |
| | | |
| | | console.log(timeRange.value[0],timeRange.value[1]); |
| | | const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", { |
| | | cellList: celllist, |
| | | stateList: stateList, |
| | |
| | | <el-option label="已磨边" value="2"></el-option> |
| | | </el-select> |
| | | <span class="demonstration" style="margin-left: 20px;">时间段</span> |
| | | <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" start-placeholder="开始日期" style="margin-left: 20px;" |
| | | <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" start-placeholder="开始日期" style="margin-left: 20px;" value-format = "YYYY-MM-DD hh:mm:ss" |
| | | |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | <el-button type="primary" style="margin-left: 10px;" @click="setEdgGlassInfoRequest()">{{ |
| | |
| | | const racks = ref([ |
| | | { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } }, |
| | | |
| | | { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} }, |
| | | |
| | | { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } }, |
| | | |
| | | { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} } |
| | | |
| | | |
| | | ]); |
| | | watchEffect(() => { |
| | |
| | | if (index === 0 ) { |
| | | return rack.x; |
| | | } else if (index === 1 ) { |
| | | return rack.x + rack.width - item.width; |
| | | } else { |
| | | return rack.x + (rack.width - item.width) / 2; |
| | | } else { |
| | | return rack.x + rack.width - item.width; |
| | | } |
| | | }; |
| | | const calculateItemYPosition = (rack, item, index) => { |
| | | if (index === 0 ) { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } else if (index === 1) { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } else { |
| | | return rack.y + rack.height - item.height; |
| | | } else { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } |
| | | }; |
| | | const fetchFlowCardId = async () => { |
| | |
| | | height: itemData.item.height === 0 ? "" : 90, |
| | | downGlassInfoList:itemData.item.downGlassInfoList |
| | | }; |
| | | if (index === 2 && itemData.item.width > 0) { |
| | | if (index === 1 && itemData.item.width > 0) { |
| | | newItem.width = 100; |
| | | newItem.height = 20; |
| | | } |
| | |
| | | height: itemData.item.height === 0 ? "" : 90, |
| | | downGlassInfoList:itemData.item.downGlassInfoList |
| | | }; |
| | | if (index === 2 && itemData.item.width > 0) { |
| | | if (index === 1 && itemData.item.width > 0) { |
| | | newItem.width = 100; |
| | | newItem.height = 20; |
| | | } |
| | |
| | | const racks = ref([ |
| | | { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } }, |
| | | |
| | | { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }, |
| | | |
| | | { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } }, |
| | | |
| | | { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } } |
| | | |
| | | ]); |
| | | |
| | |
| | | if (index === 0) { |
| | | return rack.x; |
| | | } else if (index === 1) { |
| | | return rack.x + rack.width - item.width; |
| | | } else { |
| | | return rack.x + (rack.width - item.width) / 2; |
| | | } else { |
| | | return rack.x + rack.width - item.width; |
| | | } |
| | | }; |
| | | |
| | |
| | | if (index === 0) { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } else if (index === 1) { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } else { |
| | | return rack.y + rack.height - item.height; |
| | | } else { |
| | | return rack.y + (rack.height - item.height) / 2; |
| | | } |
| | | }; |
| | | |
| | |
| | | }; |
| | | console.log(itemData.item.fullCardColor); |
| | | |
| | | if (index === 2 && itemData.item.width > 0) { |
| | | if (index === 1 && itemData.item.width > 0) { |
| | | newItem.width = 100; |
| | | newItem.height = 20; |
| | | } |
| | |
| | | downGlassInfoList:itemData.item.downGlassInfoList |
| | | }; |
| | | |
| | | if (index === 2 && itemData.item.width > 0) { |
| | | if (index === 1 && itemData.item.width > 0) { |
| | | newItem.width = 100; |
| | | newItem.height = 20; |
| | | } |
| | |
| | | const printFlowCardId = ref('') |
| | | const printLayer = ref('') |
| | | const now = new Date(); |
| | | const timeRange = ref([new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(23, 59, 59, 999))]) |
| | | const timeRange = ref([]) |
| | | |
| | | const handleChange = async () => { |
| | | console.log("触发开关") |
| | |
| | | </el-select> |
| | | |
| | | <span class="demonstration">时间段</span> |
| | | <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" start-placeholder="开始日期" |
| | | <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" start-placeholder="开始日期" value-format = "YYYY-MM-DD hh:mm:ss" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> --> |
| | | <div id="parent" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;"> |
| | | <img src="../../assets/dpxsa.png" alt="" style="margin-left: -10px; width: 100%;height: 100%;position: relative;"> |
| | | <div id="lipiana" v-show="woshia"></div> |
| | | <div id="lipianb" v-show="woshia"></div> |
| | | <div id="lipianc" v-show="woshic"></div> |
| | | <div id="lipiand" v-show="woshic"></div> |
| | | <div id="overlay" v-show="flake"></div> |
| | | <div id="overlayb" v-show="flakeb"></div> |
| | | <div id="overlayc" v-show="flakec"></div> |
| | | <div id="overlayd" v-show="flaked"></div> |
| | | <div id="longa" v-show="dalipiana"></div> |
| | | <div id="longb" v-show="dalipianb"></div> |
| | | <div id="shangpianji" v-show="shangpian"></div> |
| | | <div id="xiapianji1" v-show="xiapian1"></div> |
| | | <div id="xiapianji2" v-show="xiapian2"></div> |
| | | <div id="xiapianji3" v-show="xiapian3"></div> |
| | | <div id="xiapianji4" v-show="xiapian4"></div> |
| | | <div id="xiapianji5" v-show="xiapian5"></div> |
| | | <div id="xiapianji6" v-show="xiapian6"></div> |
| | | <div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;"> |
| | | <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image"> |
| | | <div class="moving-rect lipiana" v-show="woshia"></div> |
| | | <div class="moving-rect lipianb" v-show="woshia"></div> |
| | | <div class="moving-rect lipianc" v-show="woshic"></div> |
| | | <div class="moving-rect lipiand" v-show="woshic"></div> |
| | | <div class="moving-rect overlaya" v-show="flake"></div> |
| | | <div class="moving-rect overlayb" v-show="flakeb"></div> |
| | | <div class="moving-rect overlayc" v-show="flakec"></div> |
| | | <div class="moving-rect overlayd" v-show="flaked"></div> |
| | | <div class="moving-rect longa" v-show="dalipiana"></div> |
| | | <div class="moving-rect longb" v-show="dalipianb"></div> |
| | | <div class="moving-rect shangpianji" v-show="shangpian"></div> |
| | | <div class="moving-rect xiapianji" v-show="xiapian"></div> |
| | | <div class="moving-rect xiapianji1" v-show="xiapian1"></div> |
| | | <div class="moving-rect xiapianji2" v-show="xiapian2"></div> |
| | | <div class="moving-rect xiapianji3" v-show="xiapian3"></div> |
| | | <div class="moving-rect xiapianji4" v-show="xiapian4"></div> |
| | | <div class="moving-rect xiapianji5" v-show="xiapian5"></div> |
| | | <div class="moving-rect xiapianji6" v-show="xiapian6"></div> |
| | | </div> |
| | | <!-- <div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;"> |
| | | <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image"> |
| | | <div class="moving-rect vertical"></div> |
| | | <div class="moving-rect all"></div> |
| | | <div class="moving-rect horizontal"></div> |
| | | <div class="moving-rect xiao"></div> |
| | | <div class="moving-rect zhan"></div> |
| | | <div class="moving-rect tu"></div> |
| | | <div class="moving-rect zi"></div> |
| | | <div class="moving-rect xia"></div> |
| | | <div class="moving-rect zan"></div> |
| | | <div class="moving-rect fa"></div> |
| | | <div class="moving-rect hua"></div> |
| | | <div class="moving-rect shui"></div> |
| | | </div> --> |
| | | <!-- <div id="centerright" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 240px;background-color: #911005;"> |
| | | <el-table height="240" ref="table" width="340px" |
| | | @selection-change="handleSelectionChange" |
| | |
| | | const dalipiana = ref(false) |
| | | const dalipianb = ref(false) |
| | | const shangpian = ref(false) |
| | | const xiapian = ref(false) |
| | | const xiapian1 = ref(false) |
| | | const xiapian2 = ref(false) |
| | | const xiapian3 = ref(false) |
| | |
| | | const handleMessage6 = (data) => { |
| | | const tasks = data.downWorkstation[0]; |
| | | if (tasks && tasks.length >= 6) { |
| | | xiapian.value = tasks.some(task => task.racksNumber!== 0); |
| | | xiapian1.value = tasks[0].racksNumber !== 0; |
| | | xiapian2.value = tasks[1].racksNumber !== 0; |
| | | xiapian3.value = tasks[2].racksNumber !== 0; |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | #parent{ |
| | | position: relative; |
| | | .parter { |
| | | position: relative; |
| | | display: inline-block; /* 使容器大小适应图片大小 */ |
| | | width: 1500px; |
| | | margin-left: -300px |
| | | } |
| | | #overlay{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 36px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -34px; |
| | | margin-left: -2px; |
| | | img { |
| | | display: block; /* 让图片以块级元素显示 */ |
| | | max-width: 100%; /* 确保图片不超出容器 */ |
| | | } |
| | | #overlayb{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 17px; |
| | | height: 115px; |
| | | background-color: #529b2e; |
| | | margin-top: -197px; |
| | | margin-left:4px; |
| | | .moving-rect { |
| | | width: 100px; |
| | | height: 50px; |
| | | position: absolute; |
| | | } |
| | | #overlayc{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 16px; |
| | | height: 16px; |
| | | background-color: #529b2e; |
| | | margin-top: -243px; |
| | | margin-left: 5px; |
| | | } |
| | | #overlayd{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 37px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -238px; |
| | | margin-left: 70px; |
| | | } |
| | | #lipiana{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 100px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -57px; |
| | | margin-left: 365px; |
| | | } |
| | | #lipianb{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 20px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -72px; |
| | | margin-left: 492px; |
| | | } |
| | | #lipianc{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 100px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -32px; |
| | | margin-left: 410px; |
| | | } |
| | | #lipiand{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 30px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -47px; |
| | | margin-left: 539px; |
| | | } |
| | | #longa{ |
| | | position: absolute; |
| | | .longa{ |
| | | z-index: 1; |
| | | width: 33px; |
| | | height: 5px; |
| | | background-color: #529b2e; |
| | | margin-top: -20px; |
| | | margin-top: -15px; |
| | | margin-left: 130px; |
| | | } |
| | | #longb{ |
| | | position: absolute; |
| | | .longb{ |
| | | z-index: 1; |
| | | width: 33px; |
| | | height: 5px; |
| | | background-color: #529b2e; |
| | | margin-top: -20px; |
| | | margin-top: -15px; |
| | | margin-left: 235px; |
| | | } |
| | | #shangpianji{ |
| | | position: absolute; |
| | | z-index: 1; |
| | | width: 29px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | margin-top: -90px; |
| | | margin-left: 868px; |
| | | } |
| | | #xiapianji1{ |
| | | position: absolute; |
| | | .xiapianji1{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -213px; |
| | | margin-top: -206px; |
| | | margin-left: 173px; |
| | | } |
| | | #xiapianji2{ |
| | | position: absolute; |
| | | .xiapianji2{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -213px; |
| | | margin-top: -206px; |
| | | margin-left: 217px; |
| | | } |
| | | #xiapianji3{ |
| | | position: absolute; |
| | | .xiapianji3{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -202px; |
| | | margin-top: -195px; |
| | | margin-left: 196px; |
| | | } |
| | | #xiapianji4{ |
| | | position: absolute; |
| | | .xiapianji4{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -213px; |
| | | margin-top: -206px; |
| | | margin-left: 270px; |
| | | } |
| | | #xiapianji5{ |
| | | position: absolute; |
| | | .xiapianji5{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -213px; |
| | | margin-top: -206px; |
| | | margin-left: 314px; |
| | | } |
| | | #xiapianji6{ |
| | | position: absolute; |
| | | .xiapianji6{ |
| | | z-index: 1; |
| | | width: 12px; |
| | | height: 7px; |
| | | background-color: #529b2e; |
| | | margin-top: -202px; |
| | | margin-top: -195px; |
| | | margin-left: 293px; |
| | | } |
| | | .xiapianji { |
| | | width: 20px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 9px; |
| | | left: 200px; |
| | | transform: translateX(-50%); |
| | | animation: move-xiapianji 6s infinite; |
| | | } |
| | | @keyframes move-xiapianji { |
| | | 0% { |
| | | left: 200px; |
| | | } |
| | | 100% { |
| | | left: calc(100% - 700px); |
| | | } |
| | | } |
| | | .lipiana { |
| | | width: 15px; |
| | | height: 9px; |
| | | background-color: #529b2e; |
| | | top: 190px; |
| | | right: 530px; |
| | | transform: translateX(-50%); |
| | | animation: move-lipiana 6s infinite; |
| | | } |
| | | @keyframes move-lipiana { |
| | | 0% { |
| | | right: 530px; |
| | | } |
| | | 100% { |
| | | right: calc(100% - 350px); |
| | | } |
| | | } |
| | | .lipianb { |
| | | width: 18px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 160px; |
| | | left: 502px; |
| | | transform: translateX(-50%); |
| | | animation: move-lipianb 6s infinite; |
| | | } |
| | | @keyframes move-lipianb { |
| | | 0% { |
| | | top: 160px; |
| | | } |
| | | 100% { |
| | | top: calc(100% - 55px); |
| | | } |
| | | } |
| | | .lipianc { |
| | | width: 15px; |
| | | height: 9px; |
| | | background-color: #529b2e; |
| | | top: 215px; |
| | | right: 490px; |
| | | transform: translateX(-50%); |
| | | animation: move-lipianc 6s infinite; |
| | | } |
| | | @keyframes move-lipianc { |
| | | 0% { |
| | | right: 490px; |
| | | } |
| | | 100% { |
| | | right: calc(100% - 350px); |
| | | } |
| | | } |
| | | .lipiand { |
| | | width: 25px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 160px; |
| | | left: 555px; |
| | | transform: translateX(-50%); |
| | | animation: move-lipiand 6s infinite; |
| | | } |
| | | @keyframes move-lipiand { |
| | | 0% { |
| | | top: 160px; |
| | | } |
| | | 100% { |
| | | top: calc(100% - 40px); |
| | | } |
| | | } |
| | | .overlaya { |
| | | width: 15px; |
| | | height: 9px; |
| | | background-color: #529b2e; |
| | | top: 213px; |
| | | right: 800px; |
| | | transform: translateX(-50%); |
| | | animation: move-overlaya 6s infinite; |
| | | } |
| | | @keyframes move-overlaya { |
| | | 0% { |
| | | right: 880px; |
| | | } |
| | | 100% { |
| | | right: calc(100% - 15px); |
| | | } |
| | | } |
| | | .overlayb { |
| | | width: 20px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 110px; |
| | | left: 13px; |
| | | transform: translateX(-50%); |
| | | animation: move-overlayb 6s infinite; |
| | | } |
| | | @keyframes move-overlayb { |
| | | 0% { |
| | | top: 160px; |
| | | } |
| | | 100% { |
| | | top: calc(100% - 190px); |
| | | } |
| | | } |
| | | .overlayc { |
| | | width: 20px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 7px; |
| | | left: 13px; |
| | | transform: translateX(-50%); |
| | | animation: move-overlayc 6s infinite; |
| | | } |
| | | @keyframes move-overlayc { |
| | | 0% { |
| | | left: 20px; |
| | | } |
| | | 100% { |
| | | left: calc(100% - 900px); |
| | | } |
| | | } |
| | | .shangpianji { |
| | | width: 20px; |
| | | height: 10px; |
| | | background-color: #529b2e; |
| | | top: 157px; |
| | | right: 90px; |
| | | transform: translateX(-50%); |
| | | animation: move-shangpianji 6s infinite; |
| | | } |
| | | @keyframes move-shangpianji { |
| | | 0% { |
| | | right: 90px; |
| | | } |
| | | 100% { |
| | | right: calc(100% - 770px); |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | package com.mes.tools; |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | |
| | | public class DateUtil { |
| | | public static Date getBeginDate(){ |
| | | Calendar now = Calendar.getInstance(); |
| | | Calendar startOfDay = (Calendar) now.clone(); |
| | | startOfDay.set(Calendar.HOUR_OF_DAY, 0); |
| | | startOfDay.set(Calendar.MINUTE, 0); |
| | | startOfDay.set(Calendar.SECOND, 0); |
| | | return startOfDay.getTime(); |
| | | } |
| | | |
| | | public static Date getEndDate(){ |
| | | Calendar now = Calendar.getInstance(); |
| | | Calendar endOfDay = (Calendar) now.clone(); |
| | | endOfDay.set(Calendar.HOUR_OF_DAY, 23); |
| | | endOfDay.set(Calendar.MINUTE, 59); |
| | | endOfDay.set(Calendar.SECOND, 59); |
| | | return endOfDay.getTime(); |
| | | } |
| | | } |
| | |
| | | import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest; |
| | | import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper; |
| | | import com.mes.edgglasstask.service.EdgGlassTaskInfoService; |
| | | import com.mes.tools.DateUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | @Override |
| | | public List<EdgGlassTaskInfo> selectEdgInfo() { |
| | | EdgGlassInfoRequest request = redisUtil.getCacheObject("edgGlassRequest"); |
| | | |
| | | if (null == request) { |
| | | request = new EdgGlassInfoRequest(); |
| | | } |
| | | if (null == request.getBeginDate()) { |
| | | request.setBeginDate(DateUtil.getBeginDate()); |
| | | request.setEndDate(DateUtil.getEndDate()); |
| | | } |
| | | LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassWrapper = new LambdaQueryWrapper<EdgGlassTaskInfo>() |
| | | .in(CollectionUtils.isNotEmpty(request.getCellList()), EdgGlassTaskInfo::getLine, request.getCellList()) |
| | |
| | | } |
| | | return "success"; |
| | | } |
| | | |
| | | /** |
| | | * 查询判断磨边线是否有玻璃运行 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | |
| | | TemperingGlassInfo temperingGlassInfo = temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper); |
| | | |
| | | LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper<>(); |
| | | bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId, glassId); |
| | | bigStorageCageDetailsWrapper |
| | | .eq(BigStorageCageDetails::getGlassId, glassId) |
| | | .eq(BigStorageCageDetails::getState,Const.GLASS_STATE_IN); |
| | | BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper); |
| | | |
| | | if (temperingGlassInfo != null) { |
| | |
| | | } |
| | | temperingGlassInfoMapper.updateById(temperingGlassInfo); |
| | | } |
| | | Damage damage = new Damage(); |
| | | if (status == 0) { |
| | | bigStorageCageDetails.setState(Const.GLASS_STATE_DAMAGE); |
| | | damage.setType(Const.GLASS_STATE_DAMAGE); |
| | | } else { |
| | | bigStorageCageDetails.setState(Const.GLASS_STATE_TAKE); |
| | | damage.setType(Const.GLASS_STATE_TAKE); |
| | | } |
| | | baseMapper.updateById(bigStorageCageDetails); |
| | | bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot()); |
| | | //todo:插入破损数据 |
| | | Damage damage = new Damage(); |
| | | damage.setGlassId(bigStorageCageDetails.getGlassId()); |
| | | damage.setWorkingProcedure("冷加工"); |
| | | damage.setLine(3001); |
| | | damage.setRemark("大理片笼破损"); |
| | | damage.setStatus(2); |
| | | damageService.insertDamage(damage); |
| | |
| | | @Override |
| | | public List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId) { |
| | | LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>(); |
| | | List<BigStorageCageDetails> bigStorageCageDetailsList=new ArrayList<>(); |
| | | glassInfoWrapper.eq(GlassInfo::getGlassId, glassId); |
| | | GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper); |
| | | BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); |
| | |
| | | BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); |
| | | bigStorageCageDetails.setState(1); |
| | | bigStorageCageDetails.setGap(glassGap); |
| | | List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); |
| | | bigStorageCageDetailsList = new ArrayList<>(); |
| | | bigStorageCageDetailsList.add(bigStorageCageDetails); |
| | | return bigStorageCageDetailsList; |
| | | } else { |
| | | return null; |
| | | } |
| | | |
| | | return bigStorageCageDetailsList; |
| | | } |
| | | |
| | | //理片笼详情添加 |
| | |
| | | .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())) |
| | | .last("limit 1"); |
| | | if (glassInfo.getTemperingLayoutId() == 0) { |
| | | //todo:同流程进同一格 |
| | | // wrapper.eq(BigStorageCageDetails::getFlowCardId,glassInfo.getFlowCardId()) |
| | | // .eq(BigStorageCageDetails::get) |
| | | wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight()); |
| | | } else { |
| | | wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1); |
| | |
| | | LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper(); |
| | | bigStorageCageDetailsWrapper |
| | | .eq(BigStorageCageDetails::getSlot, slot) |
| | | .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL); |
| | | .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL); |
| | | |
| | | List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper); |
| | | for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList |
| | | ) { |
| | | double widths = bigStorageCageDetails.getWidth(); |
| | | double widths = Math.max(bigStorageCageDetails.getWidth(),bigStorageCageDetails.getHeight()) ; |
| | | width = width - widths - glassGap; |
| | | } |
| | | //修改格子剩余宽度 |
| | |
| | | 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 |
| | | INNER JOIN ENGINEERING T4 ON T2.ENGINEER_ID=T4.ENGINEER_ID |
| | | ORDER BY T4.ID, T2.TEMPERING_LAYOUT_ID |
| | | </select> |
| | | |
| | | <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO"> |
| | |
| | | queryWrapper.eq("flow_card_id", downGlassInfo.getFlowCardId()) |
| | | .eq("layer", downGlassInfo.getLayer()) |
| | | .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity") |
| | | .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness"); |
| | | .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type"); |
| | | List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper); |
| | | log.info("MES落架数据:{}", resultList); |
| | | |
| | |
| | | import com.mes.downstorage.service.DownStorageCageService;
|
| | | import com.mes.downworkstation.entity.DownWorkstation;
|
| | | import com.mes.downworkstation.service.DownWorkstationService;
|
| | | import com.mes.tools.DateUtil;
|
| | | import com.mes.tools.WebSocketServer;
|
| | | import lombok.extern.slf4j.Slf4j;
|
| | | import org.apache.commons.lang.StringUtils;
|
| | |
| | | if (null == request) {
|
| | | request = new DownGlassInfoRequest();
|
| | | }
|
| | | if (request.getBeginDate() == null) {
|
| | | request.setBeginDate(DateUtil.getBeginDate());
|
| | | request.setEndDate(DateUtil.getEndDate());
|
| | | }
|
| | | log.info("发送当前正在执行工程已落架的玻璃信息");
|
| | | LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>()
|
| | | .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate())
|
| | |
| | | username: sa |
| | | password: beibo.123/ |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | pp: |
| | | url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | cloud: |
| | | nacos: |
| | | discovery: |