Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| | |
| | | .mtj.tmp/ |
| | | |
| | | # Package Files # |
| | | *.jar |
| | | *.war |
| | | *.ear |
| | | |
| | |
| | | |
| | | let props = defineProps({ |
| | | orderId:null, |
| | | row: {} |
| | | row: {}, |
| | | processId:null//ç¨äºåç«¯æ°æ®è¿åï¼ç»æçé |
| | | }) |
| | | const columns = [ |
| | | {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | |
| | | item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount) |
| | | item.reportWorkQuantityShow=JSON.parse(item.reportWorkQuantityShow) |
| | | }) |
| | | await xGrid.value.loadData(res.data.data) |
| | | console.log(res.data.data) |
| | | if (props.processId!=null && props.processId!=""){ |
| | | const processIdData = res.data.data.filter(item => item.process_id === props.processId) |
| | | await xGrid.value.loadData(processIdData) |
| | | }else { |
| | | await xGrid.value.loadData(res.data.data) |
| | | } |
| | | mergeCells.value = res.data.mergeCells |
| | | gridOptions.loading = false |
| | | |
| | |
| | | materialOutboundColor:false,//åºåæ¥è¯¢å
¥åºè¶
è¿ä¸å®æ¶é´æ¹åé¢è²ï¼æ´é³trueï¼å
¶ä»false |
| | | storageBtn:true,//æ¯å¦æ¾ç¤ºæ¥å·¥å
¥åºç¸å
³å
å®¹ï¼æ´é³trueï¼å
¶ä»false |
| | | teamsType:true,//æ¯å¦å¼å¯çç»ä¸ææ¡ï¼æ´é³trueï¼å
¶ä»false |
| | | alienFunction:false,//æ¯å¦å¼å¯å¼å½¢åè½ï¼ææ¶é½æ¯false |
| | | alienFunction:true,//æ¯å¦å¼å¯å¼å½¢åè½ï¼ææ¶é½æ¯false |
| | | replenishQRCode:1,//æ¯å¦è¡¥çäºç»´ç æ¯å¦æåå±,1æåï¼2䏿 |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | //天津 |
| | |
| | | </div>
|
| | | </div>
|
| | |
|
| | | <!-- <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">-->
|
| | | <!-- ä¿åè°æ´-->
|
| | | <!-- </button>-->
|
| | | <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">
|
| | | ä¿åè°æ´
|
| | | </button>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | |
| | | const submitLayouts = async () => {
|
| | | layouts.value.forEach(layout => {
|
| | | layout.glassDetails.forEach(glassDetail => {
|
| | | glassDetail.x = Math.round(glassDetail.x);
|
| | | glassDetail.y = Math.round(glassDetail.y);
|
| | | glassDetail.width = Math.round(glassDetail.width);
|
| | | glassDetail.height = Math.round(glassDetail.height);
|
| | | glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
|
| | | glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
|
| | | glassDetail.width = parseFloat(glassDetail.width.toFixed(2));
|
| | | glassDetail.height = parseFloat(glassDetail.height.toFixed(2));
|
| | | });
|
| | | });
|
| | | const savedProjectNo = localStorage.getItem('projectNo');
|
| | |
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X += offsetX;
|
| | | point.Y += offsetY;
|
| | | // æ·»å 精度æ§å¶
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | (props.gh - 100) / layout.height
|
| | | );
|
| | |
|
| | | glassDetail.x = Math.round(glassDetail.x);
|
| | | glassDetail.y = Math.round(glassDetail.y);
|
| | | glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
|
| | | glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
|
| | | adjustAlignmentPosition(layoutIndex, rectIndex);
|
| | | }
|
| | |
|
| | |
| | | else {
|
| | | // æ æ³åå¹¶ï¼ä¿åå½åç©å½¢ï¼å¼å§æ°çåå¹¶
|
| | | merged.push({
|
| | | x: Math.round(current.x),
|
| | | y: Math.round(current.y),
|
| | | width: Math.round(current.width),
|
| | | height: Math.round(current.height),
|
| | | x: current.x,
|
| | | y: current.y,
|
| | | width: current.width,
|
| | | height: current.height,
|
| | | isRemain: true
|
| | | });
|
| | | current = { ...next };
|
| | |
| | |
|
| | | // æ·»å æåä¸ä¸ªç©å½¢
|
| | | merged.push({
|
| | | x: Math.round(current.x),
|
| | | y: Math.round(current.y),
|
| | | width: Math.round(current.width),
|
| | | height: Math.round(current.height),
|
| | | x: current.x,
|
| | | y: current.y,
|
| | | width: current.width,
|
| | | height: current.height,
|
| | | isRemain: true
|
| | | });
|
| | |
|
| | |
| | | // æ·»å æ°ç使ç©å½¢
|
| | | uniqueArr.forEach((area) => {
|
| | | newGlassDetails.push({
|
| | | x: Math.round(area.x),
|
| | | y: Math.round(area.y),
|
| | | width: Math.round(area.width),
|
| | | height: Math.round(area.height),
|
| | | x: area.x,
|
| | | y: area.y,
|
| | | width: area.width,
|
| | | height: area.height,
|
| | | isRemain: true
|
| | | });
|
| | | });
|
| | |
| | | // æè½¬90度åçåæ ï¼é¡ºæ¶éï¼
|
| | | point.X = originalState.x + relY;
|
| | | point.Y = originalState.y + (originalState.width - relX);
|
| | | // æ·»å 精度æ§å¶
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | adjustGrayRectangles(layoutIndex);
|
| | |
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X += offsetX;
|
| | | point.Y += offsetY;
|
| | | // æ·»å 精度æ§å¶
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | adjustGrayRectangles(layoutIndex);
|
| | |
| | | if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
|
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X = width - point.X;
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | });
|
| | |
| | | if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
|
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.Y = height - point.Y;
|
| | | // æ·»å 精度æ§å¶
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | });
|
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'product_name', |
| | | field: 'productName', |
| | | width: 150, |
| | | title: t('order.product'), |
| | | filters: [{data: ''}], |
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'building_number', |
| | | field: 'buildingNumber', |
| | | width: 150, |
| | | title: '楼å±å·', |
| | | filters: [{data: ''}], |
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'icon', |
| | | field: 'markIcon', |
| | | width: 150, |
| | | title: 'å°æ ç±»å', |
| | | filters: [{data: ''}], |
| | |
| | | } |
| | | emit('getSmallPieceData', 1); |
| | | optimizeData.value.glassDetails = []; |
| | | // ä»å端æ¥å£è·å glassDetail æ°æ®ï¼è䏿¯ä»è¡¨æ ¼ä¸è¯»å |
| | | fetchGlassDetailData(); |
| | | // ä»è¡¨æ ¼ä¸è·å glassDetail æ°æ®ï¼è䏿¯ä»å端æ¥å£è¯»å |
| | | const tableData = xGrid.value.getTableData().fullData; |
| | | const glassDetailData = tableData.map(item => { |
| | | let rackNoValue = 0; |
| | | if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') { |
| | | rackNoValue = item.rackNo; |
| | | } |
| | | return { |
| | | width: item.width, |
| | | height: item.height, |
| | | processId: item.processId, |
| | | layer: item.layer, |
| | | totalLayer: item.totalLayer, |
| | | orderSort: item.order_number, |
| | | markIcon: item.markIcon, |
| | | quantity: item.quantity, |
| | | patchState: item.patchState, |
| | | upGrind: item.longGrind1, |
| | | downGrind: item.longGrind2, |
| | | leftGrind: item.shortGrind1, |
| | | rightGrind: item.shortGrind2, |
| | | heatLayoutId: item.heatLayoutId, |
| | | process: item.process, |
| | | orderNo: item.orderNo, |
| | | customerName: item.customerName, |
| | | processingNote: item.processingNote, |
| | | projectName: item.projectName, |
| | | productName: item.productName, |
| | | buildingNumber: item.buildingNumber, |
| | | rackNo: rackNoValue |
| | | }; |
| | | }); |
| | | |
| | | // xGrid.value.getTableData().fullData.forEach(items=>{ |
| | | // let rackNoValue = 0; |
| | | // if (items.rackNo !== undefined && items.rackNo !== null && items.rackNo !== '') { |
| | | // rackNoValue = items.rackNo; |
| | | // } |
| | | // const detail={ |
| | | // width :null, |
| | | // height :null, |
| | | // processId :null, |
| | | // layer :null, |
| | | // totalLayer :null, |
| | | // orderSort :null, |
| | | // markIcon :null, |
| | | // quantity:null, |
| | | // patchState :null, |
| | | // upGrind :null, |
| | | // downGrind :null, |
| | | // leftGrind:null, |
| | | // rightGrind :null, |
| | | // rackNo: rackNoValue |
| | | // } |
| | | // detail.width=items.width |
| | | // detail.height=items.height |
| | | // detail.processId=items.process_ids |
| | | // detail.layer=items.layer |
| | | // detail.totalLayer=items.total_layer |
| | | // detail.orderSort=items.order_number |
| | | // detail.markIcon=items.icon |
| | | // detail.patchState=items.patch_state |
| | | // detail.quantity=items.quantity |
| | | // detail.upGrind=items.longGrind1 |
| | | // detail.downGrind=items.longGrind2 |
| | | // detail.leftGrind=items.shortGrind1 |
| | | // detail.rightGrind=items.shortGrind2 |
| | | // detail.rackNo=items.rackNo |
| | | // |
| | | // optimizeData.value.glassDetails .push(detail) |
| | | // }) |
| | | // æ´æ° optimizeData ä¸ç glassDetails |
| | | optimizeData.value.glassDetails = glassDetailData; |
| | | |
| | | // æå¼ä¼åå¯¹è¯æ¡ |
| | | dialogVisible.value[4] = true; |
| | | |
| | | }else{ |
| | | dialogVisible.value[index] = true; |
| | | } |
| | | }; |
| | | |
| | | const fetchGlassDetailData = async () => { |
| | | try { |
| | | const res = await request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`); |
| | | console.log(res); |
| | | if (res.code === "200" && res.data && res.data.data) { |
| | | // å¤çä»å端è·åçæ°æ® |
| | | const glassDetailData = res.data.data.map(item => { |
| | | let rackNoValue = 0; |
| | | if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') { |
| | | rackNoValue = item.rackNo; |
| | | } |
| | | return { |
| | | width: item.width, |
| | | height: item.height, |
| | | processId: item.processId, |
| | | layer: item.layer, |
| | | totalLayer: item.totalLayer, |
| | | orderSort: item.order_number, |
| | | markIcon: item.markIcon, |
| | | quantity: item.quantity, |
| | | patchState: item.patchState, |
| | | upGrind: item.upGrind, |
| | | downGrind: item.downGrind, |
| | | leftGrind: item.leftGrind, |
| | | rightGrind:item.rightGrind, |
| | | heatLayoutId:item.heatLayoutId, |
| | | process:item.process, |
| | | orderNo:item.orderNo, |
| | | customerName:item.customerName, |
| | | processingNote:item.processingNote, |
| | | projectName:item.projectName, |
| | | productName:item.productName, |
| | | buildingNumber:item.buildingNumber, |
| | | rackNo: rackNoValue |
| | | }; |
| | | }); |
| | | |
| | | // æ´æ° optimizeData ä¸ç glassDetails |
| | | optimizeData.value.glassDetails = glassDetailData; |
| | | |
| | | // æå¼ä¼åå¯¹è¯æ¡ |
| | | dialogVisible.value[4] = true; |
| | | |
| | | console.log('è·åå°ç glassDetail æ°æ®:', glassDetailData); |
| | | } else { |
| | | ElMessage.error('è·åç»ç详æ
æ°æ®å¤±è´¥'); |
| | | } |
| | | } catch (error) { |
| | | console.error('è·å glassDetail æ°æ®åºé:', error); |
| | | ElMessage.error('è·åç»ç详æ
æ°æ®æ¶åçé误'); |
| | | } |
| | | }; |
| | | |
| | |
| | | const fetchData = () => { |
| | | //å¯ç¨è¡¨æ ¼æå¨éä¸ |
| | | addListener(xGrid.value,gridOptions,cellArea.value) |
| | | request.post(`/glassOptimize/projectInfo/${projectNo.value}/${username}`).then((res) => { |
| | | request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`).then((res) => { |
| | | if ((Number(res.code) === 200)) { |
| | | let data = res.data.data; |
| | | const grindingTrimming = res.data.grindingTrimming; |
| | |
| | | import useOrderInfoStore from "@/stores/sd/order/orderInfo" |
| | | import {Printer} from "@element-plus/icons-vue/global"; |
| | | import SelectProcessCardDetail from "@/components/pp/SelectProcessCardDetail.vue"; |
| | | import OrderProcessCollect from "@/components/sd/order/OrderProcessCollect.vue"; |
| | | |
| | | //è¯è¨è·å |
| | | const {t} = useI18n() |
| | |
| | | |
| | | let productGlassTypeStore = useProductGlassTypeStore() |
| | | const dialogTableVisible = ref(false) |
| | | const dialogProcess = ref(false) |
| | | let router = useRouter() |
| | | let props = defineProps({ |
| | | rowIndex: {} |
| | |
| | | } |
| | | |
| | | }) |
| | | //æµç¨å¡è¿åº¦ç¨å¼ |
| | | let processVal = ref({ |
| | | orderId:null, |
| | | row: {}, |
| | | processId:null//ç¨äºåç«¯æ°æ®è¿åï¼ç»æçé |
| | | }) |
| | | //å®ä¹é¡µé¢æ»é¡µæ° |
| | | let pageTotal = ref('') |
| | | //å®ä¹æ°æ®è¿åç»æ |
| | |
| | | pageTotal.value = res.data.total |
| | | total.value = res.data.total |
| | | produceList.value = produceList.value.concat(deepClone(res.data.data)) |
| | | console.log(produceList.value) |
| | | produceList.value.forEach(item => { |
| | | switch (item.layoutStatus) { |
| | | case "0": |
| | |
| | | |
| | | }) |
| | | } |
| | | |
| | | const onCellDblClick = ({ row, column }) => { |
| | | processVal.value.orderId = row.orderId |
| | | processVal.value.processId = row.processId |
| | | dialogProcess.value = true |
| | | }; |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | @filter-change="filterChanged" |
| | | @cell-dblclick="onCellDblClick" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | |
| | | |
| | | <el-dialog |
| | | id="sizePrintCalrd" |
| | | v-model="dialogProcess" |
| | | :title="$t('order.processCardCollect')" |
| | | destroy-on-close |
| | | style="width: 75%;height:75% "> |
| | | <order-process-collect |
| | | :orderId="processVal.orderId" |
| | | :processId="processVal.processId" |
| | | :row="processVal.row" |
| | | style="width: 100%;height: 100%" |
| | | /> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | id="sizePrintCalrd" |
| | | v-model="dialogTableVisible" |
| | | :title="$t('processCard.combinedFrame')" |
| | | destroy-on-close |
| | |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.aspose</groupId> |
| | | <artifactId>aspose-cad</artifactId> |
| | | <groupId>com.example</groupId> |
| | | <artifactId>lib</artifactId> |
| | | <version>21.11</version> |
| | | <scope>system</scope> |
| | | <systemPath>${pom.basedir}/src/main/resources/lib/aspose-cad-21.11.jar</systemPath> |
| | | </dependency> |
| | | |
| | | <!--redis--> |
| | |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <configuration> |
| | | <includeSystemScope>true</includeSystemScope> |
| | | <excludes> |
| | | <exclude> |
| | | <groupId>org.projectlombok</groupId> |
| | |
| | | </build> |
| | | |
| | | |
| | | <repositories> |
| | | <repository> |
| | | <id>aspose-maven-repository</id> |
| | | <url>https://releases.aspose.com/java/repo</url> |
| | | <snapshots> |
| | | <enabled>false</enabled> |
| | | </snapshots> |
| | | </repository> |
| | | </repositories> |
| | | <!-- <repositories>--> |
| | | <!-- <repository>--> |
| | | <!-- <id>aspose-maven-repository</id>--> |
| | | <!-- <url>https://releases.aspose.com/java/repo</url>--> |
| | | <!-- <snapshots>--> |
| | | <!-- <enabled>false</enabled>--> |
| | | <!-- </snapshots>--> |
| | | <!-- </repository>--> |
| | | <!-- </repositories>--> |
| | | |
| | | <!-- <pluginRepositories>--> |
| | | <!-- <pluginRepository>--> |
| | |
| | | } |
| | | } |
| | | } |
| | | map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | map.put("data", dataList); |
| | | map.put("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | return map; |
| | | } |
| | | |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2 as 'perimeter', |
| | | c.quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS processId, |
| | | c.technology_number as layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.quantity, 4 ) as 'area', |
| | | c.order_number, |
| | | d.icon AS markIcon, |
| | | op.project_name, |
| | | 0 as patchState, |
| | | c.rack AS rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2 as 'perimeter', |
| | | c.patch_num as quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS 'process_ids', |
| | | c.technology_number as layer, |
| | | fc.layers_number as total_layer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.patch_num, 4 ) as 'area', |
| | | c.order_sort as order_number, |
| | | d.icon, |
| | | op.project_name, |
| | | 1 as patch_state, |
| | | a.id as rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | <!--ä¼åæ¥è¯¢--> |
| | | <select id="computeAndOptimization"> |
| | | SELECT |
| | | c.project_no, |
| | | c.rack AS rackNo, |
| | | h.layout_id as heatLayoutId, |
| | | # h.layout_id as heatLayoutId, |
| | | h.width AS width, |
| | | h.height AS height, |
| | | (h.width + h.height) * 2 as 'perimeter', |
| | | od.shape, |
| | | count( 1 ) AS quantity, |
| | | concat( h.process_id, '-', h.layer ) AS processId, |
| | | concat( h.process_id, '-', h.layer ) AS process_id, |
| | | c.process_id AS processId, |
| | | h.process_id as process_ids, |
| | | h.layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * count( 1 ), 4 ) AS 'area', |
| | | c.order_number, |
| | | h.order_sort AS orderSort, |
| | |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | | h.layout_id, |
| | | # h.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |