Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject
| | |
| | | takeon:'The arrangement is complete', |
| | | }, |
| | | searchOrder:{ |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | | partask:'任务重置', |
| | | partasks:'是否任务重置?', |
| | | empty:'默认空任务', |
| | |
| | | takeaway: 'Взять вручную', |
| | | }, |
| | | searchOrder: { |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | | partasks:'是否任务重置?', |
| | | empty:'默认空任务', |
| | | partask:'任务重置', |
| | |
| | | takeon:'摆片完成', |
| | | }, |
| | | searchOrder:{ |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | | partask:'任务重置', |
| | | partasks:'是否任务重置?', |
| | | empty:'默认空任务', |
| | |
| | | <el-table height="300" ref="table" |
| | | :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" :label="$t('film.enableid')"/> |
| | | <el-table-column prop="originateSlot" align="center" :label="$t('film.originateslot')"/> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')"/> |
| | | <el-table-column prop="endSlot" align="center" :label="$t('film.endslot')"/> |
| | | <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')"/> |
| | | <el-table-column |
| | |
| | | if (existingRect) { |
| | | return { |
| | | ...existingRect, |
| | | xAxisa: (6000 - (rect.xAxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yAxisa: rect.yAxis * scaleFactory * 1.1, |
| | | xAxisa: rect.xAxis * scaleFactor * 1.1, |
| | | yAxisa: (3300 - (rect.yAxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | height: rect.edgHeight * scaleFactory * 1.1, |
| | | widtha: rect.edgWidth, |
| | |
| | | // 如果不存在,则添加新矩形,默认 isActive 为 false |
| | | return { |
| | | ...rect, |
| | | xAxisa: (6000 - (rect.xAxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yAxisa: rect.yAxis * scaleFactory * 1.1, |
| | | xAxisa: rect.xAxis * scaleFactor * 1.1, |
| | | yAxisa: (3300 - (rect.yAxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | height: rect.edgHeight * scaleFactory * 1.1, |
| | | widtha: rect.edgWidth, |
| | |
| | | if (existingRect) { |
| | | return { |
| | | ...existingRect, |
| | | xAxisa: (6000 - (rect.xAxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yAxisa: rect.yAxis * scaleFactory * 1.1, |
| | | xAxisa: rect.xAxis * scaleFactor * 1.1, |
| | | yAxisa: (3300 - (rect.yAxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | height: rect.edgHeight * scaleFactory * 1.1, |
| | | widtha: rect.edgWidth, |
| | | heighta: rect.edgHeight, |
| | | state: rect.state, |
| | | // 保持 isActive 状态不变 |
| | | }; |
| | | } else { |
| | | // 如果不存在,则添加新矩形,默认 isActive 为 false |
| | | return { |
| | | ...rect, |
| | | xAxisa: (6000 - (rect.xAxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yAxisa: rect.yAxis * scaleFactory * 1.1, |
| | | xAxisa: rect.xAxis * scaleFactor * 1.1, |
| | | yAxisa: (3300 - (rect.yAxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | height: rect.edgHeight * scaleFactory * 1.1, |
| | | widtha: rect.edgWidth, |
| | |
| | | const scaleFactory = 750/3300; |
| | | adjustedRects.value = rawRects.map(rect => ({ |
| | | ...rect, |
| | | xaxisa: (6000 -(rect.xaxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yaxisa: rect.yaxis * scaleFactory * 1.1, |
| | | xaxisa: rect.xaxis * scaleFactor * 1.1, |
| | | yaxisa: (3300 - (rect.yaxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | // xaxisa: (6000 -(rect.xaxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | // yaxisa: rect.yaxis * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | widtha: rect.edgWidth , |
| | | heighta: rect.edgHeight , |
| | |
| | | const scaleFactory = 750/3300; |
| | | adjustedRects.value = rawRects.map(rect => ({ |
| | | ...rect, |
| | | xaxisa: (6000 -(rect.xaxis + rect.edgWidth)) * scaleFactor * 1.1, |
| | | yaxisa: rect.yaxis * scaleFactory * 1.1, |
| | | xaxisa: rect.xaxis * scaleFactor * 1.1, |
| | | yaxisa: (3300 - (rect.yaxis + rect.edgHeight + 300)) * scaleFactory * 1.1, |
| | | width: rect.edgWidth * scaleFactor * 1.1, |
| | | widtha: rect.edgWidth , |
| | | heighta: rect.edgHeight , |
| | |
| | | const rectStyle = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyle = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylea = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylea = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStyleb = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyleb = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylec = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylec = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | onMounted(() => { |
| | |
| | | return t('searchOrder.waiting'); |
| | | } |
| | | } |
| | | function getcasOnea(isSame) { |
| | | switch (isSame) { |
| | | case 1: |
| | | return 'danger'; |
| | | case 0: |
| | | return 'info'; |
| | | } |
| | | } |
| | | function getStatuscasOnea(isSame) { |
| | | switch (isSame) { |
| | | case 1: |
| | | return t('searchOrder.same'); |
| | | case 0: |
| | | return t('searchOrder.notsame'); |
| | | } |
| | | } |
| | | function tableRowClassName({ row }) { |
| | | if (row.isSame === 1) { |
| | | return 'row-red-background'; // 设置红色背景 |
| | | } |
| | | return ''; |
| | | } |
| | | onBeforeUnmount(() => { |
| | | closeWebSocket(); |
| | | }); |
| | |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading"> |
| | | <el-table height="300px" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :row-class-name="tableRowClassName" |
| | | :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" /> |
| | |
| | | <template #default="scope"> |
| | | <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="isSame" align="center" :label="$t('searchOrder.whethersame')" min-width="120"> |
| | | <template #default="scope"> |
| | | <el-tag :type="getcasOnea(scope.row.isSame)"> |
| | | {{ getStatuscasOnea(scope.row.isSame) }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | |
| | | </div> |
| | | <!-- // 父级框 --> |
| | | <div class="img-dlpl" > |
| | | <div class="img-car1" :style="'z-index:999;left:375px;top:' + 350*carPosition[0] + 'px;position:absolute;'"> |
| | | <div class="img-car1" :style="'z-index:999;left:290px;top:' + 350*carPosition[0] + 'px;position:absolute;'"> |
| | | <div |
| | | v-for="(rect, index) in adjusta" |
| | | :key="rect.id" |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="img-car4" :style="'z-index:999;left:770px;top:' + 350*carPosition[1] + 'px;position:absolute;'"> |
| | | <div class="img-car4" :style="'z-index:999;left:735px;top:' + 350*carPosition[1] + 'px;position:absolute;'"> |
| | | <div |
| | | v-for="(rect, index) in adjust" |
| | | :key="rect.id" |
| | |
| | | </div> |
| | | </div> |
| | | <div style="position: relative;"> |
| | | <div v-show="cell1" style="width: 170px;height: 53px;position: relative;top:63px;left: 585px;"> |
| | | <div v-show="cell1" style="width: 170px;height: 53px;position: relative;top:63px;left: 525px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRects" :key="rect.id" :style="rectStyle(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRects(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell2" style="width: 170px;height: 53px;position: relative;top:67px;left: 585px;"> |
| | | <div v-show="cell2" style="width: 170px;height: 53px;position: relative;top:67px;left: 525px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsa" :key="rect.id" :style="rectStylea(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsa(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell3" style="width: 170px;height: 53px;position: relative;top:72px;left: 585px;"> |
| | | <div v-show="cell3" style="width: 170px;height: 53px;position: relative;top:72px;left: 525px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsb" :key="rect.id" :style="rectStyleb(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsb(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell4" style="width: 170px;height: 53px;position: relative;top:77px;left: 585px;"> |
| | | <div v-show="cell4" style="width: 170px;height: 53px;position: relative;top:77px;left: 525px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsc" :key="rect.id" :style="rectStylec(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsc(rectIndex)" |
| | |
| | | :printGlassId="printGlassId" style=""/> |
| | | </el-dialog> |
| | | </template> |
| | | <style scoped> |
| | | <style> |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | |
| | | margin-top: 20px; |
| | | margin-bottom: 10px; |
| | | } |
| | | .row-red-background { |
| | | background-color: #CDAF95 !important; |
| | | } |
| | | </style> |
| | |
| | | }; |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | window.localStorage.setItem('flowCardId', '') |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | |
| | | }; |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | window.localStorage.setItem('flowCardId', '') |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | |
| | | const rectStyle = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyle = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylea = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylea = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStyleb = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyleb = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylec = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylec = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginLeft, |
| | | marginRight, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStyled = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | left: '0px', |
| | | right: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyled = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | left, |
| | | right, |
| | | }; |
| | | }; |
| | | onMounted(() => { |
| | |
| | | case 102: |
| | | return t('searchOrder.rengongxp'); |
| | | } |
| | | } |
| | | function getcasOnea(isSame) { |
| | | switch (isSame) { |
| | | case 1: |
| | | return 'danger'; |
| | | case 0: |
| | | return 'info'; |
| | | } |
| | | } |
| | | function getStatuscasOnea(isSame) { |
| | | switch (isSame) { |
| | | case 1: |
| | | return t('searchOrder.same'); |
| | | case 0: |
| | | return t('searchOrder.notsame'); |
| | | } |
| | | } |
| | | function tableRowClassName({ row }) { |
| | | if (row.isSame === 1) { |
| | | return 'row-red-background'; // 设置红色背景 |
| | | } |
| | | return ''; |
| | | } |
| | | onBeforeUnmount(() => { |
| | | closeWebSocket(); |
| | |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading"> |
| | | <el-table height="300px" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :row-class-name="tableRowClassName" |
| | | :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" /> |
| | |
| | | <template #default="scope"> |
| | | <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="isSame" align="center" :label="$t('searchOrder.whethersame')" min-width="120"> |
| | | <template #default="scope"> |
| | | <el-tag :type="getcasOnea(scope.row.isSame)"> |
| | | {{ getStatuscasOnea(scope.row.isSame) }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | |
| | | </div> |
| | | <!-- // 父级框 --> |
| | | <div class="img-dlpl" > |
| | | <div class="img-car1" :style="'z-index:999;left:475px;top:' + 1700*carPosition[0] + 'px;position:absolute;'"> |
| | | <div class="img-car1" :style="'z-index:999;left:305px;top:' + 1700*carPosition[0] + 'px;position:absolute;'"> |
| | | <div |
| | | v-for="(rect, index) in adjusta" |
| | | :key="rect.id" |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="img-car4" :style="'z-index:999;left:890px;top:' + 600*carPosition[1] + 'px;position:absolute;'"> |
| | | <div class="img-car4" :style="'z-index:999;left:730px;top:' + 600*carPosition[1] + 'px;position:absolute;'"> |
| | | <div |
| | | v-for="(rect, index) in adjust" |
| | | :key="rect.id" |
| | |
| | | </div> |
| | | </div> |
| | | <div style="position: relative;"> |
| | | <div v-show="cell1" style="width: 170px;height: 46px;position: relative;top:387px;left: 690px;"> |
| | | <div v-show="cell1" style="width: 170px;height: 46px;position: relative;top:387px;left: 523px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRects" :key="rect.id" :style="rectStyle(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRects(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell2" style="width: 170px;height: 46px;position: relative;top:389px;left: 690px;"> |
| | | <div v-show="cell2" style="width: 170px;height: 46px;position: relative;top:389px;left: 523px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsa" :key="rect.id" :style="rectStylea(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsa(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell3" style="width: 170px;height: 46px;position: relative;top:391px;left: 690px;"> |
| | | <div v-show="cell3" style="width: 170px;height: 46px;position: relative;top:391px;left: 523px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsb" :key="rect.id" :style="rectStyleb(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsb(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell4" style="width: 170px;height: 46px;position: relative;top:392px;left: 690px;"> |
| | | <div v-show="cell4" style="width: 170px;height: 46px;position: relative;top:392px;left: 523px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsc" :key="rect.id" :style="rectStylec(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsc(rectIndex)" |
| | |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | <div v-show="cell5" style="width: 170px;height: 46px;position: relative;top:394px;left: 690px;"> |
| | | <div v-show="cell5" style="width: 170px;height: 46px;position: relative;top:394px;left: 523px;"> |
| | | <div v-for="(rect, rectIndex) in adjustedRectsd" :key="rect.id" :style="rectStyled(rect, rectIndex)"> |
| | | <div |
| | | v-for="(subRect, subIndex) in getSubRectsd(rectIndex)" |
| | |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | <style scoped> |
| | | <style> |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 700px; |
| | | width: 1200px; |
| | | width: 1000px; |
| | | max-width: 100%; |
| | | background-size: 1200px 700px; |
| | | background-size: 1000px 700px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | |
| | | margin-top: 20px; |
| | | margin-bottom: 10px; |
| | | } |
| | | .row-red-background { |
| | | background-color: #CDAF95 !important; |
| | | } |
| | | </style> |
| | |
| | | import freemarker.template.Version; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | |
| | | @Resource |
| | | RedisUtil redisUtil; |
| | | |
| | | @Value("${mes.glassGap}") |
| | | private Integer glassGap; |
| | | |
| | | @Value("${mes.carWidth}") |
| | | private Integer carWidth; |
| | | |
| | | private static final int ID_RATIO = 10; |
| | | |
| | |
| | | .queryOutGlassList(request.getFlowCardId(), request.getCell()); |
| | | int isPairCount = glassInfo.getTotalLayer() * request.getTotalPairQuantity(); |
| | | List<HollowGlassQueueInfo> hollowQueues = new ArrayList<>(); |
| | | loop: |
| | | for (HollowBigStorageCageDetails queue : hollowBigStorageCageDetailsList) { |
| | | HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo(); |
| | | BeanUtils.copyProperties(queue, queueInfo); |
| | | queueInfo.setRelationId(info.getId()); |
| | | queueInfo.setState(Const.TEMPERING_NEW); |
| | | queueInfo.setCell(request.getCell()); |
| | | queueInfo.setCreateTime(new Date()); |
| | | queueInfo.setUpdateTime(new Date()); |
| | | hollowQueues.add(queueInfo); |
| | | if (queue.getIsPair() == 1) { |
| | | isPairCount -= 1; |
| | | if (isPairCount == 0) { |
| | | break loop; |
| | | |
| | | if (930 == request.getCell()) { |
| | | Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowBigStorageCageDetailsList.stream() |
| | | .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence)); |
| | | for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : listMap.entrySet()) { |
| | | //创建队列接收不满足成对情况下:一对玻璃分几次上车的次序问题 |
| | | List<HollowGlassQueueInfo> tempList = new ArrayList<>(); |
| | | //先将玻璃按照正常顺序排列,计算一车最多放几块,算好块数之后将一车的玻璃按照倒序存储 |
| | | List<HollowBigStorageCageDetails> reverse = CollectionUtil.reverse(entry.getValue()); |
| | | int remainWidth = carWidth; |
| | | for (HollowBigStorageCageDetails item : reverse) { |
| | | remainWidth = remainWidth - (int) Math.max(item.getWidth(), item.getHeight()); |
| | | if (remainWidth < 0) { |
| | | tempList = CollectionUtil.reverse(tempList); |
| | | remainWidth = carWidth - (int) Math.max(item.getWidth(), item.getHeight()); |
| | | } |
| | | HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell()); |
| | | tempList.add(queueInfo); |
| | | remainWidth = remainWidth - glassGap; |
| | | } |
| | | hollowQueues.addAll(tempList); |
| | | HollowBigStorageCageDetails cageDetails = entry.getValue().get(0); |
| | | if (cageDetails.getIsPair() == 1) { |
| | | isPairCount = isPairCount - cageDetails.getTotalLayer(); |
| | | if (isPairCount == 0) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | loop: |
| | | for (HollowBigStorageCageDetails item : hollowBigStorageCageDetailsList) { |
| | | HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell()); |
| | | hollowQueues.add(queueInfo); |
| | | if (item.getIsPair() == 1) { |
| | | isPairCount = isPairCount - 1; |
| | | if (isPairCount == 0) { |
| | | break loop; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | return info; |
| | | } |
| | | |
| | | private HollowGlassQueueInfo HollowBDetailToQueue(HollowBigStorageCageDetails details, Long taskId, int targetCell) { |
| | | HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo(); |
| | | BeanUtils.copyProperties(details, queueInfo); |
| | | queueInfo.setRelationId(taskId); |
| | | queueInfo.setState(Const.TEMPERING_NEW); |
| | | queueInfo.setCell(targetCell); |
| | | queueInfo.setCreateTime(new Date()); |
| | | queueInfo.setUpdateTime(new Date()); |
| | | return queueInfo; |
| | | } |
| | | } |
| | | |