Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| | |
| | | //å
¬å¸ bore.pub 10.153.19.150 |
| | | //æ´é³ 172.17.2.7 |
| | | //天津 192.168.150.39 |
| | | //䏿µ· 10.153.18.3 |
| | | //䏿µ· 10.153.18.3 |
| | | //æ¸©å· 192.168.2.14 |
| | |
| | | }, |
| | | }, |
| | | hideButton:'true',//æµç¨å¡æå°ç颿鮿¯å¦æ¾ç¤º |
| | | getSelectFlowCard:1,//æµç¨å¡æå°æ¥è¯¢æ¯å¦åå¹¶ 1åå¹¶2ä¸åå¹¶ |
| | | getSelectFlowCard:2,//æµç¨å¡æå°æ¥è¯¢æ¯å¦åå¹¶ 1åå¹¶2ä¸åå¹¶ |
| | | columnsLabel:2,//ä¸è¡ä¸¤åæåæ ç¾ 1æ°çä¸è¡ä¸¤åæåæ ç¾ï¼2å
¶å® |
| | | }, |
| | | |
| | |
| | | <!-- PDFå è½½å®ææ¶æ¾ç¤ºPDF --> |
| | | <iframe |
| | | v-else |
| | | :src="pdfUrl" style="width: 100%; height: 800px; border: 1px solid #ddd;" |
| | | :src="pdfUrl" style="width: 100%; height: 780px; border: 1px solid #ddd;" |
| | | title="PDFé¢è§"> |
| | | </iframe> |
| | | </div> |
| | | |
| | | <div v-else style="margin-top: 20px;"> |
| | | <div style="display: flex; justify-content: center; align-items: center; height: 800px; border: 1px solid #ddd; background-color: white;"> |
| | | <div style="display: flex; justify-content: center; align-items: center; height: 780px; border: 1px solid #ddd; background-color: white;"> |
| | | <div style="text-align: center; color: #999;"> |
| | | <p style="font-size: 20px; margin-bottom: 10px;">ä¼åæ¥åé¢è§åº</p> |
| | | <p style="font-size: 14px;">ç¹å»ä¸æ¹"é¢è§"æé®çæå¹¶æ¥çä¼åæ¥å</p> |
| | |
| | | glassThickness : optimizeUse.value.thickness, |
| | | glassType : optimizeUse.value.model, |
| | | quantity : String(optimizeUse.value.processingQuantity), |
| | | printLayouts : printLayouts.value === '0' ? '1' : '0', // 0表示æ¯ï¼1è¡¨ç¤ºå¦ |
| | | printReport : printReport.value === '0' ? '1' : '0', // 0表示æ¯ï¼1è¡¨ç¤ºå¦ |
| | | printLayouts : printLayouts.value || '0', |
| | | printReport : printReport.value || '0', |
| | | layouts : layoutData.value, |
| | | reportData:{ |
| | | rectangleQuantity: reportData.value.rectangleQuantity, |
| | |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // const autoPreviewReport = async () => { |
| | | // try { |
| | | // await generateReport(); |
| | | // if (!filePath.value) { |
| | | // // å¦ææ²¡ææä»¶è·¯å¾ï¼ä¸æ§è¡é¢è§ |
| | | // return; |
| | | // } |
| | | // const encodedFilePath = encodeURIComponent(filePath.value); |
| | | // |
| | | // const response = await request.get('/glassOptimize/reports/pdf', { |
| | | // params: { filePath: encodedFilePath }, |
| | | // responseType: 'blob', |
| | | // headers: { |
| | | // 'Accept': 'application/pdf' |
| | | // } |
| | | // }); |
| | | // |
| | | // // æ£æ¥ååºæ°æ®æ¯å¦åå¨ä¸ææ |
| | | // if (!response) { |
| | | // ElMessage.error('æªè½è·åå°PDFæ°æ®'); |
| | | // return; |
| | | // } |
| | | // |
| | | // const blob = new Blob([response], { type: 'application/pdf' }); |
| | | // |
| | | // // æ£æ¥ blob æ¯å¦ææ |
| | | // if (blob.size === 0) { |
| | | // ElMessage.error('æ¥æ¶å°ç©ºçPDFæä»¶'); |
| | | // return; |
| | | // } |
| | | // |
| | | // // å建PDF URLå¹¶èµå¼ç» pdfUrl ç¨äºç颿¾ç¤º |
| | | // const url = URL.createObjectURL(blob); |
| | | // pdfUrl.value = url; |
| | | // |
| | | // } catch (error) { |
| | | // console.error('èªå¨é¢è§æµç¨å¼å¸¸:', error); |
| | | // } |
| | | // }; |
| | | // |
| | | // onMounted(() => { |
| | | // // ä¼å
ä½¿ç¨æ³¨å
¥ç projectNoï¼å
¶æ¬¡ä½¿ç¨ propsï¼æåä½¿ç¨ localStorage |
| | | // if (injectedProjectNo) { |
| | | // processId.value = injectedProjectNo.value || injectedProjectNo; |
| | | // } else if (props.project) { |
| | | // processId.value = props.project.projectNumber || ''; |
| | | // state.value = props.state; |
| | | // } else if (savedProjectNo) { |
| | | // processId.value = savedProjectNo; |
| | | // } |
| | | // |
| | | // if (processId.value) { |
| | | // selectLayout(); |
| | | // selectReportData(); |
| | | // selectMaterialData(); |
| | | // selectProductData(); |
| | | // |
| | | // // æ°æ®å è½½å®æåèªå¨é¢è§ |
| | | // setTimeout(() => { |
| | | // autoPreviewReport(); |
| | | // }, 1000); // å»¶è¿1ç§ç¡®ä¿æææ°æ®å è½½å®æ |
| | | // } |
| | | // }); |
| | | |
| | | const config = reactive({ |
| | | columnTypes: '两å', |
| | |
| | | };
|
| | |
|
| | | const saveToDatabase = () => {
|
| | | if (settings.server.printLayouts === '1' && settings.server.printReport === '1') {
|
| | | if (settings.server.printLayouts === '0' && settings.server.printReport === '0') {
|
| | | ElMessage.warning('çå¾åæ¥åä¸è½åæ¶ä¸æå°ï¼è¯·è³å°éæ©ä¸é¡¹');
|
| | | return;
|
| | | }
|
| | |
| | | });
|
| | | };
|
| | |
|
| | | // ä¿®æ¹ fetchSettings æ¹æ³
|
| | | const fetchSettings = async (username) => {
|
| | | try {
|
| | | const response = await request.post(`/glassOptimize/selectOptimizeParms/${username}`);
|
| | | if (response.code == 200) {
|
| | | if (!response.data) {
|
| | | console.error('ååºæ°æ®ä¸ºç©º');
|
| | | return;
|
| | | let parsedData = {};
|
| | |
|
| | | if (response.code == 200 && response.data) {
|
| | | try {
|
| | | parsedData = JSON.parse(response.data);
|
| | | } catch (parseError) {
|
| | | console.error('è§£æååºæ°æ®å¤±è´¥:', parseError);
|
| | | parsedData = {};
|
| | | }
|
| | | const parsedData = JSON.parse(response.data);
|
| | | if (!parsedData.server) {
|
| | | parsedData.server = {};
|
| | | }
|
| | | if (!parsedData.server.printLayouts) {
|
| | | parsedData.server.printLayouts = '0'; // é»è®¤æå°çå¾
|
| | | }
|
| | | if (!parsedData.server.printReport) {
|
| | | parsedData.server.printReport = '0'; // é»è®¤æå°æ¥å
|
| | | }
|
| | | if (!parsedData.server.layoutRows) {
|
| | | parsedData.server.layoutRows = '2'; // é»è®¤2è¡
|
| | | }
|
| | | if (!parsedData.server.layoutColumns) {
|
| | | parsedData.server.layoutColumns = '2'; // é»è®¤2å
|
| | | }
|
| | | if (!parsedData.server.glassInfoShow) {
|
| | | parsedData.server.glassInfoShow = '2'; // é»è®¤æ¾ç¤ºå¨ä¸ä¾§
|
| | | }
|
| | | if (!parsedData.server.cutInfoShow) {
|
| | | parsedData.server.cutInfoShow = '1'; // é»è®¤æ¾ç¤º
|
| | | }
|
| | | if (!parsedData.server.fileMode) {
|
| | | parsedData.server.fileMode = '1'; // é»è®¤ä¸ºåæä»¶æ¨¡å¼
|
| | | }
|
| | | Object.assign(settings, parsedData);
|
| | | console.log('è®¾ç½®å·²æ´æ°:', settings);
|
| | | } else {
|
| | | console.error('请æ±å¤±è´¥ï¼ç¶æç :', response.code);
|
| | | console.log('æªè·åå°è®¾ç½®æ°æ®æååºå¤±è´¥ï¼ä½¿ç¨é»è®¤è®¾ç½®');
|
| | | parsedData = {};
|
| | | }
|
| | |
|
| | | // ç¡®ä¿æææ¨¡åé½åå¨
|
| | | if (!parsedData.optimization) parsedData.optimization = {};
|
| | | if (!parsedData.display) parsedData.display = {};
|
| | | if (!parsedData.cutting) parsedData.cutting = {};
|
| | | if (!parsedData.server) parsedData.server = {};
|
| | | if (!parsedData.tempering) parsedData.tempering = {};
|
| | |
|
| | |
|
| | | parsedData.optimization.yShapeJoinOptimization = parsedData.optimization.yShapeJoinOptimization !== undefined ? parsedData.optimization.yShapeJoinOptimization : true;
|
| | | parsedData.optimization.autoMiddleEmptyPairing = parsedData.optimization.autoMiddleEmptyPairing !== undefined ? parsedData.optimization.autoMiddleEmptyPairing : true;
|
| | | parsedData.optimization.smallPieceRotationProhibited = parsedData.optimization.smallPieceRotationProhibited !== undefined ? parsedData.optimization.smallPieceRotationProhibited : true;
|
| | | // parsedData.optimization.maxFramesOnSite = parsedData.optimization.maxFramesOnSite !== undefined ? parsedData.optimization.maxFramesOnSite : 10;
|
| | | parsedData.optimization.bendEdgeDistance = parsedData.optimization.bendEdgeDistance !== undefined ? parsedData.optimization.bendEdgeDistance : 10;
|
| | | // parsedData.optimization.positiveTolerance = parsedData.optimization.positiveTolerance !== undefined ? parsedData.optimization.positiveTolerance : 0;
|
| | | // parsedData.optimization.negativeTolerance = parsedData.optimization.negativeTolerance !== undefined ? parsedData.optimization.negativeTolerance : 0;
|
| | | parsedData.optimization.cutterOriginPosition = parsedData.optimization.cutterOriginPosition !== undefined ? parsedData.optimization.cutterOriginPosition : 1;
|
| | | // parsedData.optimization.uniformShapeEdgeTrimAmount = parsedData.optimization.uniformShapeEdgeTrimAmount !== undefined ? parsedData.optimization.uniformShapeEdgeTrimAmount : 0;
|
| | | parsedData.optimization.optimizationMethod = parsedData.optimization.optimizationMethod !== undefined ? parsedData.optimization.optimizationMethod : '1';
|
| | | parsedData.optimization.travType = parsedData.optimization.travType !== undefined ? parsedData.optimization.travType : 'X';
|
| | | // parsedData.optimization.optimizationIterations = parsedData.optimization.optimizationIterations !== undefined ? parsedData.optimization.optimizationIterations : 0;
|
| | | // parsedData.optimization.finishedProductGrindingAmount = parsedData.optimization.finishedProductGrindingAmount !== undefined ? parsedData.optimization.finishedProductGrindingAmount : 0;
|
| | | // parsedData.optimization.rawPieceEdgeTrimAmount = parsedData.optimization.rawPieceEdgeTrimAmount !== undefined ? parsedData.optimization.rawPieceEdgeTrimAmount : 0;
|
| | | // parsedData.optimization.finishedSinglePieceBelowGrindingAmount = parsedData.optimization.finishedSinglePieceBelowGrindingAmount !== undefined ? parsedData.optimization.finishedSinglePieceBelowGrindingAmount : 0;
|
| | | parsedData.optimization.rackCycleQty = parsedData.optimization.rackCycleQty !== undefined ? parsedData.optimization.rackCycleQty :5;
|
| | |
|
| | |
|
| | | // 为 display åæ°æ·»å é»è®¤å¼
|
| | | parsedData.display.themeColor = parsedData.display.themeColor !== undefined ? parsedData.display.themeColor : '#5168c8';
|
| | | parsedData.display.includeProductEdge = parsedData.display.includeProductEdge !== undefined ? parsedData.display.includeProductEdge : true;
|
| | | parsedData.display.includeIrregularEdge = parsedData.display.includeIrregularEdge !== undefined ? parsedData.display.includeIrregularEdge : true;
|
| | | parsedData.display.mergeByFrameNumber = parsedData.display.mergeByFrameNumber !== undefined ? parsedData.display.mergeByFrameNumber : true;
|
| | | parsedData.display.frameNumber = parsedData.display.frameNumber !== undefined ? parsedData.display.frameNumber : true;
|
| | | parsedData.display.orderNumber = parsedData.display.orderNumber !== undefined ? parsedData.display.orderNumber : true;
|
| | | parsedData.display.productName = parsedData.display.productName !== undefined ? parsedData.display.productName : true;
|
| | | parsedData.display.processingInfo = parsedData.display.processingInfo !== undefined ? parsedData.display.processingInfo : true;
|
| | | parsedData.display.remarks = parsedData.display.remarks !== undefined ? parsedData.display.remarks : true;
|
| | | parsedData.display.floorNumber = parsedData.display.floorNumber !== undefined ? parsedData.display.floorNumber : true;
|
| | | parsedData.display.edgeLength = parsedData.display.edgeLength !== undefined ? parsedData.display.edgeLength : false;
|
| | | parsedData.display.manufacturingProcess = parsedData.display.manufacturingProcess !== undefined ? parsedData.display.manufacturingProcess : false;
|
| | | parsedData.display.identifier = parsedData.display.identifier !== undefined ? parsedData.display.identifier : false;
|
| | |
|
| | | // 为 cutting åæ°æ·»å é»è®¤å¼
|
| | | parsedData.cutting.cutting_direction = parsedData.cutting.cutting_direction !== undefined ? parsedData.cutting.cutting_direction : true;
|
| | | parsedData.cutting.show_cutting_path = parsedData.cutting.show_cutting_path !== undefined ? parsedData.cutting.show_cutting_path : true;
|
| | | parsedData.cutting.force_continuous_cutting = parsedData.cutting.force_continuous_cutting !== undefined ? parsedData.cutting.force_continuous_cutting : true;
|
| | | // parsedData.cutting.min_radius = parsedData.cutting.min_radius !== undefined ? parsedData.cutting.min_radius : 0;
|
| | | // parsedData.cutting.min_parallel_offset = parsedData.cutting.min_parallel_offset !== undefined ? parsedData.cutting.min_parallel_offset : 0;
|
| | | // parsedData.cutting.t_shaped_recess = parsedData.cutting.t_shaped_recess !== undefined ? parsedData.cutting.t_shaped_recess : 0;
|
| | | // parsedData.cutting.down_cut_spacing = parsedData.cutting.down_cut_spacing !== undefined ? parsedData.cutting.down_cut_spacing : 0;
|
| | | // parsedData.cutting.lift_retract = parsedData.cutting.lift_retract !== undefined ? parsedData.cutting.lift_retract : 0;
|
| | |
|
| | | // 为 server åæ°æ·»å é»è®¤å¼
|
| | | parsedData.server.printLayouts = parsedData.server.printLayouts !== undefined ? parsedData.server.printLayouts : '1';
|
| | | parsedData.server.printReport = parsedData.server.printReport !== undefined ? parsedData.server.printReport : '1';
|
| | | parsedData.server.layoutRows = parsedData.server.layoutRows !== undefined ? parsedData.server.layoutRows : '2';
|
| | | parsedData.server.layoutColumns = parsedData.server.layoutColumns !== undefined ? parsedData.server.layoutColumns : '2';
|
| | | parsedData.server.glassInfoShow = parsedData.server.glassInfoShow !== undefined ? parsedData.server.glassInfoShow : '2';
|
| | | parsedData.server.cutInfoShow = parsedData.server.cutInfoShow !== undefined ? parsedData.server.cutInfoShow : '1';
|
| | | parsedData.server.fileMode = parsedData.server.fileMode !== undefined ? parsedData.server.fileMode : '1';
|
| | | parsedData.server.haveMark = parsedData.server.haveMark !== undefined ? parsedData.server.haveMark : '1';
|
| | | parsedData.server.haveOptimaMark = parsedData.server.haveOptimaMark !== undefined ? parsedData.server.haveOptimaMark : '1';
|
| | | parsedData.server.haveQMark = parsedData.server.haveQMark !== undefined ? parsedData.server.haveQMark : '1';
|
| | | parsedData.server.glassIdMode = parsedData.server.glassIdMode !== undefined ? parsedData.server.glassIdMode : '1';
|
| | | parsedData.server.optimaMarkPosition = parsedData.server.optimaMarkPosition !== undefined ? parsedData.server.optimaMarkPosition : '1';
|
| | | parsedData.server.optimaMarkName = parsedData.server.optimaMarkName !== undefined ? parsedData.server.optimaMarkName : 'erweima_8mm';
|
| | | parsedData.server.optimaMarkWidth = parsedData.server.optimaMarkWidth !== undefined ? parsedData.server.optimaMarkWidth : 8;
|
| | | parsedData.server.optimaMarkHeight = parsedData.server.optimaMarkHeight !== undefined ? parsedData.server.optimaMarkHeight : 8;
|
| | | parsedData.server.output_format = parsedData.server.output_format !== undefined ? parsedData.server.output_format : '';
|
| | | parsedData.server.cutting_code_save_path = parsedData.server.cutting_code_save_path !== undefined ? parsedData.server.cutting_code_save_path : '';
|
| | | parsedData.server.open_folder_after_save = parsedData.server.open_folder_after_save !== undefined ? parsedData.server.open_folder_after_save : '';
|
| | | parsedData.server.g_code_file_format = parsedData.server.g_code_file_format !== undefined ? parsedData.server.g_code_file_format : '';
|
| | | parsedData.server.trf_file_save_path = parsedData.server.trf_file_save_path !== undefined ? parsedData.server.trf_file_save_path : '';
|
| | | parsedData.server.btl_file_save_path = parsedData.server.btl_file_save_path !== undefined ? parsedData.server.btl_file_save_path : '';
|
| | | parsedData.server.optima_file_save_path = parsedData.server.optima_file_save_path !== undefined ? parsedData.server.optima_file_save_path : '';
|
| | | parsedData.server.optimization_depth_limit_enable = parsedData.server.optimization_depth_limit_enable !== undefined ? parsedData.server.optimization_depth_limit_enable : '';
|
| | | parsedData.server.original_sheet_material_calculation = parsedData.server.original_sheet_material_calculation !== undefined ? parsedData.server.original_sheet_material_calculation : '';
|
| | |
|
| | | // 为 tempering åæ°æ·»å é»è®¤å¼
|
| | | parsedData.tempering.furnaceLength = parsedData.tempering.furnaceLength !== undefined ? parsedData.tempering.furnaceLength : 5000;
|
| | | parsedData.tempering.furnaceWidth = parsedData.tempering.furnaceWidth !== undefined ? parsedData.tempering.furnaceWidth : 2800;
|
| | | parsedData.tempering.maxLoadingRate = parsedData.tempering.maxLoadingRate !== undefined ? parsedData.tempering.maxLoadingRate : 50;
|
| | | parsedData.tempering.chaosLevel = parsedData.tempering.chaosLevel !== undefined ? parsedData.tempering.chaosLevel : 0;
|
| | | parsedData.tempering.temperingTime = parsedData.tempering.temperingTime !== undefined ? parsedData.tempering.temperingTime : 160;
|
| | | parsedData.tempering.defaultTemperingMode = parsedData.tempering.defaultTemperingMode !== undefined ? parsedData.tempering.defaultTemperingMode : 'auto';
|
| | | parsedData.tempering.maxArea = parsedData.tempering.maxArea !== undefined ? parsedData.tempering.maxArea : 0;
|
| | | parsedData.tempering.maxPieceCount = parsedData.tempering.maxPieceCount !== undefined ? parsedData.tempering.maxPieceCount : 10;
|
| | | parsedData.tempering.xAxisInterval = parsedData.tempering.xAxisInterval !== undefined ? parsedData.tempering.xAxisInterval : 80;
|
| | | parsedData.tempering.yAxisInterval = parsedData.tempering.yAxisInterval !== undefined ? parsedData.tempering.yAxisInterval : 80;
|
| | |
|
| | | Object.assign(settings, parsedData);
|
| | | console.log('è®¾ç½®å·²æ´æ°:', settings);
|
| | |
|
| | | // 为 optimization åæ°è®¾ç½®é»è®¤å¼
|
| | | initializeOptimizationDefaults();
|
| | | } catch (error) {
|
| | | console.error('请æ±åçé误:', error);
|
| | | // åºç°é误æ¶ä¹è®¾ç½®é»è®¤å¼
|
| | | setDefaultSettings();
|
| | | }
|
| | | };
|
| | |
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="printLayouts"
|
| | | value="0"
|
| | | value="1"
|
| | | v-model="settings.server.printLayouts"
|
| | | />
|
| | | <label for="printLayouts">æ¯</label>
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="noPrintLayouts"
|
| | | value="1"
|
| | | value="0"
|
| | | v-model="settings.server.printLayouts"
|
| | | style="margin-left: 20px;"
|
| | | />
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="printReport"
|
| | | value="0"
|
| | | value="1"
|
| | | v-model="settings.server.printReport"
|
| | | />
|
| | | <label for="printReport">æ¯</label>
|
| | | <input
|
| | | type="radio"
|
| | | id="noPrintReport"
|
| | | value="1"
|
| | | value="0"
|
| | | v-model="settings.server.printReport"
|
| | | style="margin-left: 20px;"
|
| | | />
|
| | |
| | | </select>
|
| | | </div>
|
| | | <div class="form-group">
|
| | | <label>æ¾ç¤ºå°çä¿¡æ¯</label>
|
| | | <label>å°çä¿¡æ¯</label>
|
| | | <select v-model="settings.server.glassInfoShow" class="cs" style="width: 10px; margin-right: 10px;">
|
| | | <option value="0">䏿¾ç¤º</option>
|
| | | <option value="1">æ¾ç¤ºå¨å³ä¾§</option>
|
| | |
| | | </select>
|
| | | </div>
|
| | | <div class="form-group">
|
| | | <label>æ¾ç¤ºåå²ä¿¡æ¯</label>
|
| | | <label>åå²ä¿¡æ¯</label>
|
| | | <select v-model="settings.server.cutInfoShow" class="cs" style="width: 10px; margin-right: 10px;">
|
| | | <option value="0">䏿¾ç¤º</option>
|
| | | <option value="1">æ¾ç¤º</option>
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="singleFile"
|
| | | value="0"
|
| | | value="1"
|
| | | v-model="settings.server.haveMark"
|
| | | />
|
| | | <label for="singleFile">æ¯</label>
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="multiFile"
|
| | | value="1"
|
| | | value="0"
|
| | | v-model="settings.server.haveMark"
|
| | | style="margin-left: 20px;"
|
| | | />
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="singleFile"
|
| | | value="0"
|
| | | value="1"
|
| | | v-model="settings.server.haveOptimaMark"
|
| | | />
|
| | | <label for="singleFile">æ¯</label>
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="multiFile"
|
| | | value="1"
|
| | | value="0"
|
| | | v-model="settings.server.haveOptimaMark"
|
| | | style="margin-left: 20px;"
|
| | | />
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="singleFile"
|
| | | value="0"
|
| | | value="1"
|
| | | v-model="settings.server.haveQMark"
|
| | | />
|
| | | <label for="singleFile">æ¯</label>
|
| | |
| | | <input
|
| | | type="radio"
|
| | | id="multiFile"
|
| | | value="1"
|
| | | value="0"
|
| | | v-model="settings.server.haveQMark"
|
| | | style="margin-left: 20px;"
|
| | | />
|
| | |
| | | { |
| | | code: 'production', |
| | | initialState: 1, |
| | | temperingState: 1, |
| | | // temperingState: 1, |
| | | optimizeState: 1, |
| | | targetState: 100, |
| | | targetStates: 0, |
| | |
| | | { |
| | | code: 'novisible', |
| | | initialState: 100, |
| | | temperingState: 1, |
| | | // temperingState: 1, |
| | | optimizeState: 1, |
| | | targetState: 1, |
| | | targetStates: 0, |
| | |
| | | } |
| | | } |
| | | else if(config.code === 'production'){ |
| | | if(row.temperingState==1&&row.optimizeState===1&&row.state===1){ |
| | | if(row.optimizeState===1&&row.state===1){ |
| | | row.state = config.targetState; |
| | | code=3 |
| | | }else{ |
| | |
| | | requiresRow: false, |
| | | }, |
| | | { |
| | | code: 'addRow', // å¯¼åºæä»¶æä½çé
ç½® |
| | | code: 'addRow', |
| | | successMsg: 'æ·»å æåï¼', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | }, |
| | | handler: async () => { |
| | | const $grid = xGrid.value; |
| | | if ($grid) { |
| | | // çæ6ä½éæºç¼ç |
| | | const generateCode = () => { |
| | | // 使ç¨å½åæ¶é´æ³çæå¯ä¸ç¼ç |
| | | const timestamp = Date.now().toString(); |
| | | // åæ¶é´æ³çå6ä½ï¼ç¡®ä¿æ¯6使° |
| | | const code = timestamp.substring(timestamp.length - 6).padStart(6, '0'); |
| | | return code; |
| | | }; |
| | | |
| | | // å建æ°è¡æ°æ® |
| | | const newRow = { |
| | | id: generateCode(), // èªå¨çæ6ä½ç¼ç |
| | | width: '', // 宽度å¾
ç¨æ·å¡«å |
| | | height: '', // é«åº¦å¾
ç¨æ·å¡«å |
| | | thickness: thickness.value, // èªå¨å¡«å
å度 |
| | | model: model.value,// èªå¨å¡«å
ç±»å |
| | | available_quantity: 999, |
| | | leftTrim: defaultTrims.leftTrim, // 使ç¨é»è®¤å·¦ä¿®è¾¹ |
| | | downTrim: defaultTrims.downTrim, // 使ç¨é»è®¤ä¸ä¿®è¾¹ |
| | | rightTrim: defaultTrims.rightTrim, // 使ç¨é»è®¤å³ä¿®è¾¹ |
| | | upTrim: defaultTrims.upTrim |
| | | }; |
| | | |
| | | // æå
¥æ°è¡ |
| | | let result = toolbarButtonClickEvent(); |
| | | let lengths = 0; |
| | | if (result != null) { |
| | | lengths = result.start; |
| | | } |
| | | |
| | | if ($grid.getTableData().tableData.length >= 100) { |
| | | ElMessage.error(t('order.msg.tableLengthMax')); |
| | | return; |
| | | } |
| | | |
| | | if ($grid.getCheckedFilters().length !== 0) { |
| | | ElMessage.error(t('order.msg.pleaseCancelTheFilteringFirst')); |
| | | return; |
| | | } |
| | | |
| | | if ($grid.getTableData().fullData.length > lengths + 1) { |
| | | $grid.insertAt(newRow, lengths + 1); |
| | | } else { |
| | | $grid.insertAt(newRow, -1); |
| | | } |
| | | |
| | | ElMessage.success('æ·»å æåï¼'); |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | |
| | | // å³é®èåç¹å»é»è¾ |
| | |
| | | return; |
| | | } |
| | | if (config.code === 'addRow') { |
| | | if ($grid.getTableData().tableData.length >=100){ |
| | | ElMessage.error(t('order.msg.tableLengthMax')) |
| | | return |
| | | } |
| | | if ($grid.getCheckedFilters().length!==0){ |
| | | ElMessage.error(t('order.msg.pleaseCancelTheFilteringFirst')) |
| | | return |
| | | } |
| | | console.log($grid.getTableData().visibleData) |
| | | let result = toolbarButtonClickEvent() |
| | | let lengths = 0 |
| | | if (result!=null){ |
| | | lengths=result.start |
| | | } |
| | | if($grid.getTableData().fullData.length>lengths+1){ |
| | | $grid.insertAt({}, lengths+1) |
| | | }else{ |
| | | $grid.insertAt({}, -1) |
| | | if (config.handler) { |
| | | config.handler(); |
| | | } |
| | | return; |
| | | } |
| | |
| | | } |
| | | return edgeTrimmingItem; |
| | | }); |
| | | console.log(edgeTrimmingData) |
| | | formattedData.forEach(item => { |
| | | item.leftTrim = edgeTrimmingData[0].leftTrim; |
| | | item.downTrim = edgeTrimmingData[0].downTrim; |
| | | item.rightTrim = edgeTrimmingData[0].rightTrim; |
| | | item.upTrim = edgeTrimmingData[0].upTrim; |
| | | }); |
| | | if (edgeTrimmingData && edgeTrimmingData.length > 0) { |
| | | defaultTrims.leftTrim = edgeTrimmingData[0].leftTrim || 0; |
| | | defaultTrims.downTrim = edgeTrimmingData[0].downTrim || 0; |
| | | defaultTrims.rightTrim = edgeTrimmingData[0].rightTrim || 0; |
| | | defaultTrims.upTrim = edgeTrimmingData[0].upTrim || 0; |
| | | |
| | | formattedData.forEach(item => { |
| | | item.leftTrim = edgeTrimmingData[0].leftTrim || 0; |
| | | item.downTrim = edgeTrimmingData[0].downTrim || 0; |
| | | item.rightTrim = edgeTrimmingData[0].rightTrim || 0; |
| | | item.upTrim = edgeTrimmingData[0].upTrim || 0; |
| | | }); |
| | | } else { |
| | | // å¦ææ²¡æä¿®è¾¹æ°æ®ï¼ä½¿ç¨é»è®¤å¼0 |
| | | formattedData.forEach(item => { |
| | | item.leftTrim = 0; |
| | | item.downTrim = 0; |
| | | item.rightTrim = 0; |
| | | item.upTrim = 0; |
| | | }); |
| | | } |
| | | } |
| | | if(state<10){ |
| | | gridOptions.columns[3].editRender.attrs.disabled=false |
| | |
| | | }); |
| | | }; |
| | | |
| | | const defaultTrims = reactive({ |
| | | leftTrim: 0, |
| | | downTrim: 0, |
| | | rightTrim: 0, |
| | | upTrim: 0 |
| | | }); |
| | | |
| | | onMounted(() => { |
| | | addListener(xGrid.value,gridOptions) |
| | | if(route.params.projectNo!=null){ |
| | |
| | | </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>
|
| | |
|
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | watch(optionVal, (newVal, oldVal) => { |
| | | if (newVal) { |
| | | // å½èç³»æ¹åæ¶ï¼æ´æ°å·¥ç¨å称为å½åèç³»å¼ |
| | | projectNmae.value = newVal; |
| | | |
| | | // å½èç³»æ¹åæ¶ï¼èªå¨å·æ°æ°æ® |
| | | selectFlowCardList(); |
| | | } |
| | | }, { flush: 'post' }); |
| | | |
| | | const handleRowClassName = ({ row, rowIndex }) => { |
| | | if (row.patch_state === 1) { |
| | | return 'high-score'; |
| | |
| | | {field: 'responsibleEquipment', width: 120, title: t('reportingWorks.responsibleEquipment'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsibleTeam', width: 120, title: t('reportingWorks.responsibleTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'qualityInspector', width: 120, title: t('reportingWorks.qualityInspector'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsiblePersonnel', width: 120,title: t('rework.responsibilityInformation'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'productName', width: 120, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'reportingWorkId', width: 120, title: t('reportingWorks.reportingWorkId'), filters: [{data: ''}], slots: {filter: 'num1_filter'}}, |
| | | |
| | |
| | | ElMessage.warning(t('report.noDataFoundForThisOrder')) |
| | | return |
| | | } |
| | | //gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | // å¨ææ·»å å |
| | | res.data.title.forEach((item, index) => { |
| | | let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process, |
| | | let column = { |
| | | slots: { default: 'quantitySum' }, |
| | | width: 150, |
| | | title: item.process, |
| | | field: `dynamicColumn${index}` // ä¸ºå¨æåæ·»å å¯ä¸ç field |
| | | }; |
| | | const insertIndex = 5; // 设置æå
¥ä½ç½®çç´¢å¼ |
| | | gridOptions.columns = [ |
| | | ...gridOptions.columns.slice(0, insertIndex + index), // åæå
¥ä½ç½®ä¹åçé¨å |
| | | column, |
| | | ...gridOptions.columns.slice(insertIndex + index) // åæå
¥ä½ç½®ä¹åçé¨å |
| | | ]; |
| | | }); |
| | | } |
| | | gridOptions.columns.push(column) |
| | | }) |
| | | res.data.data.forEach(item => { |
| | | item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity) |
| | | item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount) |
| | | item.reportWorkQuantityShow=JSON.parse(item.reportWorkQuantityShow) |
| | | }) |
| | | mergeCells.value = res.data.mergeCell |
| | | xGrid.value.loadData(res.data.data) |
| | |
| | | return sum.toFixed(2); |
| | | } |
| | | const quantitySum = ( row,column )=>{ |
| | | const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0 |
| | | const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || 0 |
| | | if(reportWorkQuantity===reportWorkQuantityCount){ |
| | | return reportWorkQuantity |
| | | const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || '' |
| | | const reportWorkQuantityShow = row.reportWorkQuantityShow[column.title] || '' |
| | | if(reportWorkQuantityShow === reportWorkQuantityCount ){ |
| | | return reportWorkQuantityShow |
| | | } |
| | | |
| | | return (reportWorkQuantity |
| | | return (reportWorkQuantityShow |
| | | +'(' |
| | | +reportWorkQuantityCount |
| | | +')' ) |
| | | //return |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | @ApiOperation("ç产åè´§è¿åº¦") |
| | | @PostMapping("/productionSchedule/{orderId}") |
| | | public Result productionSchedule(@PathVariable String orderId, @RequestBody List<Integer> columns) { |
| | | public Result productionSchedule(@PathVariable String orderId, @RequestBody List<String> columns) { |
| | | return Result.success(reportService.productionScheduleSv(orderId, columns)); |
| | | } |
| | | |
| | |
| | | List<Map<String, Object>> materialOptimizeUse(String processId); |
| | | |
| | | List<Map<String, Object>> getLayoutSetSv(String processId); |
| | | |
| | | String selectConfigByUserAndType(String username, int type); |
| | | |
| | | void insertOptimizeConfig(String json, int type, String userName, String configName); |
| | | } |
| | |
| | | json = object.get("json").toString(); |
| | | } |
| | | if(type.equals("é¢å")){ |
| | | glassOptimizeMapper.updateOptimizeConfig(json,1,username); |
| | | String existingConfig = glassOptimizeMapper.selectConfigByUserAndType(username, 1); |
| | | if (existingConfig == null) { |
| | | String configName = "é¢åæ¨è"; |
| | | glassOptimizeMapper.insertOptimizeConfig(json,1,username,configName); |
| | | }else { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,1,username); |
| | | } |
| | | } else if (type.equals("修边")) { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,5,username); |
| | | String existingConfig = glassOptimizeMapper.selectConfigByUserAndType(username, 5); |
| | | if (existingConfig == null) { |
| | | String configName = "修边é
ç½®"; |
| | | glassOptimizeMapper.insertOptimizeConfig(json,5,username,configName); |
| | | }else { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,5,username); |
| | | } |
| | | }else if (type.equals("磨é")) { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,4,username); |
| | | String existingConfig = glassOptimizeMapper.selectConfigByUserAndType(username, 4); |
| | | if (existingConfig == null) { |
| | | String configName = "磨éé
ç½®"; |
| | | glassOptimizeMapper.insertOptimizeConfig(json,4,username,configName); |
| | | }else{ |
| | | glassOptimizeMapper.updateOptimizeConfig(json,4,username); |
| | | } |
| | | |
| | | } |
| | | return true; |
| | | |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> productionScheduleSv(String orderId, List<Integer> columns) { |
| | | public Map<String, Object> productionScheduleSv(String orderId, List<String> columns) { |
| | | |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | //è·åè¡¨æ ¼å
å®¹æ°æ® |
| | | map.put("data", reportMapper.productionScheduleMp(orderId)); |
| | | List<Map<String, String>> dataList = reportMapper.productionScheduleMp(orderId); |
| | | |
| | | |
| | | //è·å表头工åºçéæ°æ® |
| | | List<Map<String, String>> processFilterList = orderProcessDetailMapper.filterOrderProcess(orderId); |
| | | List<Map<String, String>> processList = processFilterList; |
| | | List<Map<String, String>> uniqueList = orderProcessDetailMapper.filterOrderProcess(orderId); |
| | | |
| | | List<String> filterList = new ArrayList<>(); |
| | | //循ç¯éåæ°ç»ï¼å¤ææ¤åºå·å½åçå·¥åº |
| | | for (int i = 1; i < processFilterList.size(); i++) { |
| | | filterList.add(processFilterList.get(i).get("process")); |
| | | List<Map<String, String>> lastProcessList = |
| | | orderProcessDetailMapper.filterLastProcess( |
| | | orderId, |
| | | String.valueOf(processFilterList.get(i).get("order_number")), |
| | | String.valueOf(processFilterList.get(i).get("technology_number")), |
| | | String.valueOf(processFilterList.get(i).get("id")) |
| | | ); |
| | | if (!lastProcessList.isEmpty()) { |
| | | int finalI = i; |
| | | lastProcessList.forEach(lastProcess -> { |
| | | if (filterList.contains(lastProcess.get("process"))) { |
| | | processList.add(lastProcess); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | // 使ç¨HashSetæ¥è®°å½å·²ç»éå°çvalueå¼ |
| | | Set<String> seenValues = new HashSet<>(); |
| | | // å建ä¸ä¸ªæ°çListæ¥åå¨ç»æ |
| | | List<Map<String, String>> uniqueList = new ArrayList<>(); |
| | | |
| | | // ååéååå§List |
| | | for (int i = processList.size() - 1; i >= 0; i--) { |
| | | Map<String, String> maps = processList.get(i); |
| | | String value = maps.values().iterator().next(); // å设æ¯ä¸ªMapåªæä¸ä¸ªvalue |
| | | |
| | | // 妿valueè¿æ²¡æè¢«çå°è¿ï¼å°±æ·»å å°ç»æListåHashSetä¸ |
| | | if (!seenValues.contains(value)) { |
| | | uniqueList.add(0, maps); // æ·»å å°ç»æListçå¼å¤´ï¼ä»¥ä¿æåé¡ºåº |
| | | seenValues.add(value); |
| | | } |
| | | } |
| | | map.put("title", uniqueList); |
| | | Map<String,Integer> clos = new HashMap<>(); |
| | | HashMap<String,HashMap<String,Map<String, Integer>>> rowCount = new HashMap<String,HashMap<String,Map<String, Integer>>>(); |
| | | for (int i=0;i<uniqueList.size();i++){ |
| | | //æ ¹æ®æµç¨æ¥è¯¢åºç¡æ°æ® |
| | | BasicData basicData = basicDataMapper.selectOne( |
| | | new QueryWrapper<BasicData>() |
| | | .eq("basic_category","process") |
| | | .eq("basic_name",uniqueList.get(i).get("process")) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | //夿夹è¶å夹è¶åå·¥åº |
| | | //Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC") |
| | | if(Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")){ |
| | | clos.put(uniqueList.get(i).get("process"), 14+i); |
| | | } |
| | | //夿ä¸ç©ºåä¸ç©ºåå·¥åº |
| | | //Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD") |
| | | if(Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD")){ |
| | | columns.add("reportWorkQuantity."+uniqueList.get(i).get("process")); |
| | | } |
| | | } |
| | | |
| | | |
| | | List<Map<String, Object>> getRowCount = orderProcessDetailMapper.getGlassLRow(orderId); |
| | | List<Map<String, Integer>> rowCount = new ArrayList<>(); |
| | | columns.forEach(col -> { |
| | | getRowCount.forEach(row -> { |
| | | Map<String, Integer> getRow = new HashMap<>(); |
| | | // { row: 0, col: 1, rowspan: 3, colspan: 0}, |
| | | getRow.put("row", ((Number) row.get("RowNum")).intValue()); |
| | | getRow.put("col", col); |
| | | getRow.put("rowspan", ((Number) row.get("rowCount")).intValue()); |
| | | getRow.put("colspan", 0); |
| | | rowCount.add(getRow); |
| | | }); |
| | | HashMap<Integer,Map<String, Object>> getRowCountMap = new HashMap<>(); |
| | | getRowCount.forEach(col -> { |
| | | Integer getRowCountOrderNumber = ((Number) col.get("order_number")).intValue(); |
| | | getRowCountMap.put(getRowCountOrderNumber, col); |
| | | }); |
| | | |
| | | //循ç¯ç»æ |
| | | for (int i=0;i<dataList.size();i++ ) { |
| | | Integer orderNumber = Integer.parseInt(String.valueOf(dataList.get(i).get("order_number"))); |
| | | Integer technologyNumber = Integer.parseInt(String.valueOf(dataList.get(i).get("technology_number"))); |
| | | int finalI1 = i; |
| | | columns.forEach(col -> { |
| | | if(rowCount.get(col) == null){ |
| | | rowCount.put(col, new HashMap<String,Map<String,Integer>>()); |
| | | } |
| | | |
| | | if(getRowCountMap.get(orderNumber) != null){ |
| | | Map<String,Object> row = getRowCountMap.get(orderNumber); |
| | | Map<String, Integer> getRow = new HashMap<>(); |
| | | //夿å½åæ¤æ¬¡ æ¯å¦ä¸ºç¬¬ä¸è¡ å¹¶ä¸ç¸ååºå· |
| | | if(technologyNumber==1){ |
| | | getRow.put("rowspan", ((Number) row.get("rowCount")).intValue()); |
| | | getRow.put("colspan", 1); |
| | | }else{ |
| | | getRow.put("rowspan", 0); |
| | | getRow.put("colspan", 0); |
| | | } |
| | | rowCount.get(col).put(finalI1+"_"+col, getRow); |
| | | } |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | Map<String, String> data = JSON.parseObject(dataList.get(i).get("reportWorkQuantity"), |
| | | new TypeReference<Map<String, String>>() { |
| | | }); |
| | | Map<String, String> dataShow = JSON.parseObject(dataList.get(i).get("reportWorkQuantityShow"), |
| | | new TypeReference<Map<String, String>>() { |
| | | }); |
| | | //夿åå·¥åºæ¤æµç¨å¡å·æ¯å¦ææ¬¡ç ´ |
| | | List<DamageDetails> hasBreak = damageDetailsMapper |
| | | .getNotReview(dataList.get(i).get("processId"), |
| | | String.valueOf(dataList.get(i).get("order_number")), |
| | | String.valueOf(dataList.get(i).get("technology_number")) |
| | | ); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if(!hasBreak.isEmpty()){ |
| | | int finalI = i; |
| | | data.forEach((thisProcess, index)->{ |
| | | String behindProcess = orderProcessDetailMapper.getBehindProcess( |
| | | dataList.get(finalI).get("processId"), |
| | | String.valueOf(dataList.get(finalI).get("order_number")), |
| | | String.valueOf(dataList.get(finalI).get("technology_number")), |
| | | thisProcess, |
| | | orderId |
| | | ); |
| | | |
| | | if(behindProcess!=null &&!behindProcess.isEmpty()){ |
| | | Integer behindDamageSum = damageDetailsMapper.getBehindDamageSum( |
| | | dataList.get(finalI).get("processId"), |
| | | String.valueOf(dataList.get(finalI).get("order_number")), |
| | | String.valueOf(dataList.get(finalI).get("technology_number")), |
| | | behindProcess,1 |
| | | ); |
| | | if(behindDamageSum>0){ |
| | | data.put(thisProcess, String.valueOf(Integer.parseInt(data.get(thisProcess) )- behindDamageSum)); |
| | | dataShow.put(thisProcess, String.valueOf(Integer.parseInt(dataShow.get(thisProcess) )- behindDamageSum)); |
| | | } |
| | | |
| | | } |
| | | }); |
| | | |
| | | } |
| | | //夹è¶å·¥åºå¤æåå¹¶è¡æ° |
| | | if(!clos.isEmpty()){ |
| | | |
| | | Integer max = orderGlassDetailMapper |
| | | .getMaxTechnologyNumberByGroup(dataList.get(i).get("order_id"), |
| | | String.valueOf(dataList.get(i).get("order_number")), |
| | | String.valueOf(dataList.get(i).get("group")) |
| | | ); |
| | | Integer min = orderGlassDetailMapper |
| | | .getMinTechnologyNumberByGroup(dataList.get(i).get("order_id"), |
| | | String.valueOf(dataList.get(i).get("order_number")), |
| | | String.valueOf(dataList.get(i).get("group")) |
| | | ); |
| | | |
| | | for (String key : clos.keySet()) { |
| | | if(data.get(key) != null){ |
| | | if (rowCount.get("reportWorkQuantity."+key)==null){ |
| | | rowCount.put("reportWorkQuantity."+key, new HashMap<String,Map<String,Integer>>()); |
| | | } |
| | | Map<String, Integer> getRow = new HashMap<>(); |
| | | if(min == Integer.parseInt(String.valueOf(dataList.get(i).get("technology_number"))) ){ |
| | | |
| | | // { row: 0, col: 1, rowspan: 3, colspan: 0}, |
| | | //getRow.put("row", i ); |
| | | getRow.put("rowspan", max-min+1); |
| | | getRow.put("colspan", 1); |
| | | |
| | | }else{ |
| | | getRow.put("rowspan", 0); |
| | | getRow.put("colspan", 0); |
| | | data.put(key,"0"); |
| | | } |
| | | rowCount.get("reportWorkQuantity."+key).put(i+"_reportWorkQuantity."+key, getRow); |
| | | } |
| | | } |
| | | } |
| | | dataList.get(i).put("reportWorkQuantity",JSON.toJSONString(data)); |
| | | dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow)); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | map.put("data",dataList ); |
| | | map.put("mergeCells", rowCount); |
| | | |
| | | return map; |
| | |
| | | a.id as rackNo |
| | | FROM |
| | | pp.flow_card c |
| | | LEFT JOIN sd.order_detail o ON c.order_id = o.order_id |
| | | LEFT JOIN sd.order_detail o ON c.order_id = o.order_id and c.order_number = o.order_number |
| | | AND c.order_number = o.order_number |
| | | LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id |
| | | AND c.order_number = d.order_number |
| | |
| | | AND c.technology_number = d.technology_number |
| | | INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no |
| | | LEFT JOIN sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od ON c.order_id = od.order_id |
| | | WHERE |
| | | c.project_no IS NOT NULL |
| | | and c.project_no = #{projectNo} |
| | |
| | | INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no |
| | | LEFT JOIN pp.flow_card fc ON c.process_id = fc.process_id and fc.technology_number=c.technology_number |
| | | LEFT JOIN sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od ON c.order_id = od.order_id |
| | | left join |
| | | (select (@row_number := @row_number + 1) as id,process_id as process_id,technology_number as technology_number from (select process_id,technology_number from pp.flow_card tt where project_no =#{projectNo} group by process_id,technology_number) tt,(select @row_number := 0) as t) a |
| | | on a.process_id=c.process_id and a.technology_number=c.technology_number |
| | |
| | | AND c.order_number = d.order_number |
| | | AND c.technology_number = d.technology_number |
| | | LEFT JOIN sd.order o on o.order_id = c.order_id |
| | | LEFT JOIN order_detail od on c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od on c.order_id = od.order_id and c.order_number = od.order_number |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | |
| | | mark_icon, |
| | | isRotate, |
| | | glass_point, |
| | | glass_id, |
| | | rack_no |
| | | ) VALUES ( |
| | | #{projectId}, |
| | |
| | | #{glass.markIcon}, |
| | | #{glass.isRotate}, |
| | | #{glass.glassPoint}, |
| | | CONCAT( |
| | | LPAD(SUBSTR(#{projectId}, 2), 8, '0'), |
| | | LPAD(#{glass.stockSort}, 4, '0'), |
| | | LPAD(#{glass.polySort}, 6, '0') |
| | | ), |
| | | #{glass.rackNo} |
| | | ); |
| | | </foreach> |
| | |
| | | UPDATE pp.optimize_config set config_detail=#{json},create_time=now() |
| | | where config_type=#{type} and creater=#{username} |
| | | </update> |
| | | <insert id="insertOptimizeConfig"> |
| | | INSERT INTO pp.optimize_config ( |
| | | config_type, |
| | | config_name, |
| | | creater, |
| | | config_detail, |
| | | state, |
| | | create_time |
| | | ) VALUES ( |
| | | #{type}, |
| | | #{configName}, |
| | | #{userName}, |
| | | #{json}, |
| | | 1, |
| | | now() |
| | | ) |
| | | </insert> |
| | | <update id="updateFlowCardRack"> |
| | | UPDATE pp.flow_card |
| | | SET rack = #{rackValue} |
| | |
| | | od.order_sort AS orderSort, |
| | | od.stock_id AS layoutId, |
| | | od.stock_number AS glassSort, |
| | | od.polys_id AS polySort, |
| | | od.x_axis AS x, |
| | | od.y_axis AS y, |
| | | od.mark_icon AS markIcon, |
| | |
| | | o.project AS projectName, |
| | | ord.product_name AS productName, |
| | | ord.building_number AS buildingNumber, |
| | | COALESCE(h.layout_id, 0) as heatLayoutId, |
| | | # COALESCE(h.layout_id, 0) as heatLayoutId, |
| | | od.rack_no AS rackNo |
| | | FROM |
| | | pp.optimize_detail od |
| | |
| | | LEFT JOIN sd.order_glass_detail ogd ON (fc.order_id = ogd.order_id and od.order_sort = ogd.order_number AND ogd.technology_number = fc.technology_number) |
| | | LEFT JOIN sd.ORDER o ON o.order_id = fc.order_id |
| | | LEFT JOIN sd.order_detail ord ON (fc.order_id = ord.order_id and od.order_sort = ord.order_number) |
| | | LEFT JOIN pp.optimize_heat_detail h ON (h.process_id = fc.process_id and od.order_sort = h.sort) |
| | | # LEFT JOIN pp.optimize_heat_detail h ON (h.process_id = fc.process_id and od.order_sort = h.sort) |
| | | WHERE |
| | | od.project_no = #{projectId} |
| | | </select> |
| | |
| | | WHERE |
| | | project_no = #{processId} |
| | | </select> |
| | | <select id="selectConfigByUserAndType" resultType="java.lang.String"> |
| | | SELECT |
| | | id, |
| | | config_type, |
| | | config_detail, |
| | | creater |
| | | FROM |
| | | pp.optimize_config |
| | | WHERE creater = #{username} AND config_type = #{type} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | rw.quality_inspector as qualityInspector, |
| | | ogd.glass_child as glassChild, |
| | | if(dd.responsible_process=rw.this_process,2,dd.quality_ins_status) as qualityInsStatus, |
| | | if(dd.quality_ins_status=1,1,2) as orderBy |
| | | if(dd.quality_ins_status=1,1,2) as orderBy, |
| | | dd.responsible_personnel as responsiblePersonnel |
| | | from pp.damage_details dd |
| | | left join pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number and dd.technology_number=rwd.technology_number |
| | | left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id |
| | |
| | | </select> |
| | | |
| | | <select id="productionScheduleMp"> |
| | | select a.order_number, |
| | | if(a.shape='' || ISNULL(a.shape),'æ®å½¢',if(a.shape = 1, 'æ®å½¢', if(a.shape = 2, 'å¼å½¢', ''))) as shape, |
| | | a.product_name, |
| | | select a.product_name, |
| | | b.glass_child, |
| | | d.order_type, |
| | | concat(c.process_id, '/', c.technology_number) as process_id, |
| | | c.process_id as 'processId', |
| | | c.order_id, |
| | | c.order_number, |
| | | c.technology_number, |
| | | b.child_width, |
| | | b.child_height, |
| | | c.quantity - ifnull(c.termination_quantity,0) as quantity, |
| | | c.technology_number, |
| | | b.glass_child, |
| | | ifnull(e.reportWorkQuantity, 0) as reportWorkQuantity, |
| | | ifnull(e.reportWorkQuantityCount, 0) as reportWorkQuantityCount, |
| | | ifnull(f.inventory, 0) as inventoryNum, |
| | | round(ifnull(f.inventory, 0) * a.area, 2) as inventoryArea, |
| | | ifnull(dd.quantity, 0) as shippedQuantity, |
| | | ifnull(dd.area, 0) as area, |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')),'') AS glassNumber |
| | | c.quantity, |
| | | |
| | | from flow_card as c |
| | | c.quantity-ifnull(c.termination_quantity,0) as thisQuantity,/*ç¨äºå¤ææ¯å¦æ¹åé¢è²*/ |
| | | e.reportWorkQuantity, |
| | | e.reportWorkQuantityShow, |
| | | e.reportWorkQuantityCount, |
| | | e.reportWorkTime, |
| | | e.broken_num, |
| | | c.quantity-ifnull(c.termination_quantity,0) as glassQuantity, |
| | | |
| | | c.quantity-ifnull(c.termination_quantity,0) as quantityShow, |
| | | round( (c.quantity-ifnull(c.termination_quantity,0))*a.compute_area,2) as grossAreaShow, |
| | | ifnull(c.received_quantity, 0) as inventoryNum, |
| | | ifnull(dd.quantity, 0) as shippedQuantityShow, -- åè´§æ°é |
| | | round(ifnull(dd.quantity, 0)*a.compute_area,2) as shippedAreaShow, -- åè´§é¢ç§¯ |
| | | round((ifnull(c.received_quantity, 0))*a.compute_area,2) as inventoryArea,-- å
¥åºé¢ç§¯ |
| | | |
| | | round((c.quantity-ifnull(c.termination_quantity,0))*a.compute_area,2)as grossArea, |
| | | ifnull(c.received_quantity, 0) as Storage, |
| | | ifnull(dd.quantity, 0) as shippedQuantity, |
| | | round(ifnull(dd.quantity, 0)*a.compute_area,2) as shippedArea, |
| | | round((ifnull(c.received_quantity, 0))*a.compute_area,2) as StorageArea, |
| | | |
| | | |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')),'') AS glassNumber, |
| | | b.`group` |
| | | |
| | | from pp.flow_card as c |
| | | left join |
| | | sd.order_detail as a |
| | | on c.order_id = a.order_id |
| | |
| | | and c.technology_number = b.technology_number |
| | | left join sd.`order` as d |
| | | on c.order_id = d.order_id |
| | | left join mm.finished_goods_inventory as f |
| | | on c.order_id = f.order_id and f.order_number = c.order_number |
| | | left join (SELECT process_id, |
| | | order_number, |
| | | technology_number, |
| | | sum(a.broken_num) as broken_num, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantity, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantityCount |
| | | FROM sd.order_process_detail as a |
| | | where a.order_id = #{orderId} |
| | | GROUP BY process_id, a.order_number,a.technology_number) as e |
| | | on e.process_id = c.process_id |
| | | and e.order_number=c.order_number |
| | | and e.technology_number = c.technology_number |
| | | left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number |
| | | where a.order_id = #{orderId} and d.create_order>0 and c.quantity - ifnull(c.termination_quantity,0)>0 |
| | | group by c.order_number,c.technology_number |
| | | ORDER BY a.order_number |
| | | # left join mm.finished_goods_inventory as f |
| | | # on c.order_id = f.order_id and f.order_number = c.order_number |
| | | left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number |
| | | left join (SELECT process_id, |
| | | order_number, |
| | | technology_number, |
| | | sum(a.broken_num) as broken_num, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", if(technology_number!=1 and (bd.nickname='stepD' || bd.nickname='stepB' ) ,0,reporting_work_num), "\"")), |
| | | '}' |
| | | ) as reportWorkQuantity, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantityShow, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantityCount, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", IFNULL(date(update_time),''), "\"")), |
| | | '}' |
| | | ) as reportWorkTime |
| | | FROM sd.order_process_detail as a |
| | | left join (SELECT DISTINCT basic_name,nickname from sd.basic_data as bd where bd.basic_category = 'process') as bd |
| | | on a.process = bd.basic_name |
| | | where a.order_id =#{orderId} |
| | | GROUP BY process_id, a.order_number, a.technology_number |
| | | |
| | | |
| | | ) as e |
| | | on e.process_id = c.process_id |
| | | and e.technology_number = c.technology_number |
| | | and e.order_number = c.order_number |
| | | where a.order_id = #{orderId} and d.create_order>0 and c.quantity-ifnull(c.termination_quantity,0)>0 |
| | | group by c.order_number, |
| | | c.technology_number, |
| | | c.process_id |
| | | order by c.process_id, c.order_number, c.technology_number |
| | | </select> |
| | | |
| | | <select id="taskCompletionStatusMp"> |