scott_test.js 3.02 KB
Newer Older
Scott Sun's avatar
s  
Scott Sun committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/*
NAME: 
DESCRIPTION: ;
PARAMETER:
    [
       
	]
	
 VERSION_HISTORY:
	V1.00 2020-04-17 Scott Sun
	    1.新版本
		
 HELP:
 	<html><body bgcolor="#DDECFE">
		<font size="3" color="#003DB2"><p>功能简介</p></font>
		<p> 数据标准化 </p>
		<br>
		<font size="3" color="#003DB2"><p>参数配置</p></font>
		<p> 客户配置 </p>
		<br>
		<font size="3" color="#003DB2"><p>注意事项</p></font>
		<p> 无 </p>
		<br>
	</body></html>	
*/
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
// 引入模块 包
console.log("==============================================>scott test")
var $ = require('topcam.scriptfunc').argv();
var fs = require('fs');
var _ = require('lodash');
var database = require("topsin.database");
database.addConnection($.conf.database_conf, "DFM");
var QDfm = database.query("DFM");
if ($.conf.product_type == "aimdfm") {
	QDfm.updateRow({
		table: "pdm_aimdfm_task",
		data: {
			current_process_title: $.process_title
		},
		where: { id: $.task_id }
	});
}
var GEN = $.gen;
var Job = $.job_name;
var db = $.db;
var JobId = $.job_id;
var Status = 'ok';
var resultData = [];
var PAR = {};
if ($.hasOwnProperty('script_parameter')){
	PAR = JSON.parse($.script_parameter);
}

try {
	var job = Job;
    if(_.isEmpty(job)) throw "没有传入料号名!";
    job = job.toLowerCase()
    
	// 料号验证
    if(!GEN.isJobExists({job:job})){ throw "job "+ job+ " is not exist" }
    if(!GEN.isJobOpen({job:job})){GEN.openJob({job:job})}
    
	var matrix = GEN.getMatrix({job:job})
Scott Sun's avatar
s  
Scott Sun committed
66 67 68 69
	var signalLayers = Object.keys(matrix).filter(function(v){
		var val = matrix[v]
		return val.layer_type == "signal" && val.context == "board"
	})
Scott Sun's avatar
s  
Scott Sun committed
70 71
	var step = "cad"
	GEN.openStep({job:job, name:step})
Scott Sun's avatar
s  
Scott Sun committed
72 73
    var copper_percent_pcs = signalLayers.map(function(v){
		var tmp = {layer:v}
Scott Sun's avatar
s  
Scott Sun committed
74 75 76 77 78 79 80 81 82 83 84 85
		tmp.card_copper_distribution = GEN.copperArea({layer1:v}).percent + "%"
		return tmp
	})

    console.log("==================================>card copper_percent_pcs:"+_.toString(copper_percent_pcs))

	var arr_step = "stp"
	GEN.openStep({job:job, name:arr_step})

    var copper_percent_stp = signalLayers.map(function(v){
		var tmp = {layer:v}
		tmp.array_copper_distribution = GEN.copperArea({layer1:v}).percent + "%"
Scott Sun's avatar
s  
Scott Sun committed
86 87
		return tmp
	})
Scott Sun's avatar
s  
Scott Sun committed
88 89 90 91 92
	
    console.log("==================================>card copper_percent_stp:"+_.toString(copper_percent_stp))



Scott Sun's avatar
s  
Scott Sun committed
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

    QDfm.updateRow({
		table: "pdm_aimdfm_task",
		data: {
			progress: 33.33
		},
		where: { id: $.task_id }
	});
	if (GEN.hasError()) {
		Status = 'error';
		resultData.push({ type: "error", title: "GEN错误!", detail: [{ desc: _.join(GEN.STATUS, "\n") }] });
		return {
			status: Status,
			result_data: resultData
		};
	} else {
		resultData.push({ type: "info", title: "操作完成, 请注意检查!" });
		return {
			status: Status,
			result_data: resultData
		};
	}
}
catch (e) {
	Status = 'error';
    resultData.push({type: "error", title: "脚本执行出错!", detail: [{desc: _.toString(e)}]});
    return {status: Status, result_data: resultData};
}