From 2be772da9e520390124cceaa81e1dc0c8ea8018d Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 19 七月 2024 17:29:58 +0800
Subject: [PATCH] 对接费用统计导出
---
static/js/worker.js | 156 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 109 insertions(+), 47 deletions(-)
diff --git a/static/js/worker.js b/static/js/worker.js
index 76eb25b..a8717a2 100644
--- a/static/js/worker.js
+++ b/static/js/worker.js
@@ -37,9 +37,10 @@
}
let isToExponential = ''
let list2 = []
+ let isPoint = ''
excelMethodList.forEach(item => {
- if (item.valueList.find(m => m.r == r && m.c == c)) {
+ if (item.valueList&&item.valueList.length>0&&item.valueList.find(m => m.r == r && m.c == c)) {
var comValue = {}
item.valueList.forEach(a => {
list.forEach(b => {
@@ -54,7 +55,6 @@
}
}
list2.push(c.v.v)
- isToExponential = list2.some(val => val.includes('e+'))
if(getInspectionValueType(item.i)==1&&!isNaN(parseFloat(c.v.v))){
let n = String(c.v.v)
if(n.includes('/')){
@@ -93,6 +93,7 @@
// console.log(ask,res,item.v.f)
if(ask){
comp = ask.map((m, i) => {
+ // console.log('m----', m)
if (m.includes('RTS')) {
m = m.replace('RTS*', '')
}
@@ -100,51 +101,88 @@
let str = handleFraction(m.split('=')[1])
if(typeof res == 'string'&&typeof str == 'string'){
if(res.includes('/')){
- return handleMoreParam(res,m.split('=')[1],'=')
+ if (m.includes('/')) {
+ return eval(res) == eval(str)
+ } else {
+ return handleMoreParam(res,m.split('=')[1],'=')
+ }
}else{
- return res.trim() == str.trim()
+ // console.log(res.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, ''),' == ',str.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, ''))
+ return res.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, '') == str.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, '')
}
}else{
return eval(res) == eval(str)
}
} else if (m.includes('鈮�')) {
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ if (m.includes('/')) {
+ // console.log('eval(res)----', eval(res))
+ let str = handleFraction(m.split('鈮�')[1])
+ // console.log('eval(str)----', eval(str))
+ return eval(res) >= eval(str)
+ } else {
+ return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ }
}else{
let str = handleFraction(m.split('鈮�')[1])
return eval(res) >= eval(str)
}
}else if (m.includes('鈮�')) {
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('鈮�')[1])
+ return eval(res) <= eval(str)
+ } else {
+ return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ }
}else{
let str = handleFraction(m.split('鈮�')[1])
return eval(res) <= eval(str)
}
}else if (m.includes('<')) {
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('<')[1],'<')
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('<')[1])
+ return eval(res) < eval(str)
+ } else {
+ return handleMoreParam(res,m.split('<')[1],'<')
+ }
}else{
let str = handleFraction(m.split('<')[1])
return eval(res) < eval(str)
}
}else if (m.includes('>')) {
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('>')[1],'>')
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('>')[1])
+ return eval(res) > eval(str)
+ } else {
+ return handleMoreParam(res,m.split('>')[1],'>')
+ }
}else{
let str = handleFraction(m.split('>')[1])
return eval(res) > eval(str)
}
}else if (m.includes('~')) {
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m,'~')
+ if (m.includes('/')) {
+ let k = m.split('~')
+ return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1]))
+ } else {
+ return handleMoreParam(res,m,'~')
+ }
}else{
let k = m.split('~')
return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1]))
}
}else if(m.includes('-')){
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m,'-')
+ if (m.includes('/')) {
+ let k = m.split('-')
+ return eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1]))
+ } else {
+ return handleMoreParam(res,m,'-')
+ }
}else{
let k = m.split('-')
// console.log(k,eval(res),eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])))
@@ -152,21 +190,36 @@
}
}else if(m.includes('卤')){
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m,'卤')
+ if (m.includes('/')) {
+ let k = m.split('卤')
+ return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval((handleFraction(k[0]) + handleFraction(k[1])))
+ } else {
+ return handleMoreParam(res,m,'卤')
+ }
}else{
let k = m.split('卤')
return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval((handleFraction(k[0]) + handleFraction(k[1])))
}
}else if(m.includes('锛�')){
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('锛�')[1],'>')
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) > eval(str)
+ } else {
+ return handleMoreParam(res,m.split('锛�')[1],'>')
+ }
}else{
let str = handleFraction(m.split('锛�')[1])
return eval(res) > eval(str)
}
}else if(m.includes('锛�')){
if(typeof res =='string'&&res.includes('/')){
- return handleMoreParam(res,m.split('锛�')[1],'<')
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) < eval(str)
+ } else {
+ return handleMoreParam(res,m.split('锛�')[1],'<')
+ }
}else{
let str = handleFraction(m.split('锛�')[1])
return eval(res) < eval(str)
@@ -187,7 +240,6 @@
}
})
} else {
- console.log(333333)
item.v.v = 0
list.forEach(a => {
if (a[0].r == item.r) {
@@ -200,6 +252,7 @@
}
})
}
+ // console.log(tableList)
}
result = {
method:'saveInsContext',
@@ -211,20 +264,22 @@
self.postMessage(JSON.stringify(result))
}
} catch (error) {
-
+ console.log('error---', error)
}
} else {
let comResult = ''
try {
if(getInspectionValueType(item.i)==1){
- let ask = currentSample.insProduct.find(m => m.id == item.i).ask?currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
let tell = currentSample.insProduct.find(m => m.id == item.i).tell?currentSample.insProduct.find(m => m.id == item.i).tell.split('&'):null;
- comResult = compute(item.v.f.replace(/=/g, ' '),comValue)
+ isPoint = PROJECT=='瑁呭鐢电紗'&&tell&&tell.length>0&&typeof tell[0] =='string'&&tell[0].includes('/') // 鍒ゆ柇瑕佹眰鍊兼槸鍚︿负鍒嗘暟
+ comResult = compute(item.v.f.replace(/=/g, ' '),comValue, isPoint)
+ let list3 = list2.map(item=>item+'')
+ isToExponential = list3.some(val => val.includes('e+'))
// 瑁呭椤圭洰妫�楠屽�艰浆鍖�
- if (PROJECT === '瑁呭鐢电紗' && isToExponential === true) {
+ if (PROJECT === '瑁呭鐢电紗' && isToExponential) {
let num2 = new Big(comResult)
- comResult = num2.toExponential()
+ comResult = num2.toExponential(1)
}
}else{
let valueList = [];
@@ -248,6 +303,7 @@
comResult = str
}
} catch (error) {
+ console.log('error---', error)
}
try {
list.forEach(a => {
@@ -255,10 +311,15 @@
for (var b in a) {
if (a[b].c == item.c) {
try{
- let val = parseFloat(comResult.toFixed(3))
- a[b].v.v = isNaN(val) ? '' : val
- }catch(e){
+ if(comResult==0){
+ a[b].v.v = 0
+ }else{
+ let val = parseFloat(comResult.toFixed(3))
+ a[b].v.v = isNaN(val) ? '' : val
+ }
+ }catch(error){
a[b].v.v = comResult
+ console.log('error---', error)
}
break
}
@@ -267,7 +328,7 @@
})
changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
} catch (error) {
-
+ console.log('error---', error)
}
}
}
@@ -284,7 +345,7 @@
}
self.postMessage(JSON.stringify(result))
} catch (error) {
-
+ console.log('error---', error)
}
}
@@ -412,7 +473,7 @@
}
return num;
} catch (error) {
-
+ console.log('error---', error)
}
}
/**
@@ -434,7 +495,7 @@
}
return max;
} catch (error) {
-
+ console.log('error---', error)
}
}
/**
@@ -454,7 +515,7 @@
}
return min;
} catch (error) {
-
+ console.log('error---', error)
}
}
/**
@@ -481,7 +542,7 @@
return null;
}
} catch (error) {
-
+ console.log('error---', error)
}
}
/**
@@ -494,7 +555,7 @@
try {
return Math.abs(val);
} catch (error) {
-
+ console.log('error---', error)
}
}
/**
@@ -525,7 +586,7 @@
return null;
}
} catch (error) {
-
+ console.log('error---', error)
}
}
@@ -546,11 +607,9 @@
}
}
} catch (error) {
-
+ console.log('error---', error)
}
}
-
-
/**
* 鏍规嵁鍧愭爣鑾峰彇鍒楀悕
@@ -572,7 +631,7 @@
letter += String.fromCharCode(65 + (i % 26));
return letter + (parseInt(cellId[1]) + 1);
}catch(e){
- console.log('error',cellId)
+ console.log('error',e)
}
}
/**
@@ -614,7 +673,7 @@
}
return id;
}catch(e){
- console.log('error',id)
+ console.log('error',e)
}
}
@@ -648,7 +707,7 @@
})
return arr2;
} catch (error) {
-
+ console.log('error',error)
}
}
/**
@@ -667,16 +726,16 @@
'AVERAGE',
'ABS',
]
- f = f.replace(regex, ',').replaceAll('"&','').replaceAll('&"','')
+ f = f.replace(regex, ',').replace(new RegExp('"&', 'g'),'').replace(new RegExp('&"', 'g'),'')
fouList.forEach(item=>{
- f = f.replaceAll(item,',')
+ f = f.replace(new RegExp(item, 'g'),',')
})
let arr = f.split(',').filter(item=>{
return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
});
return arr;
} catch (error) {
-
+ console.log('error',error)
}
}
/**
@@ -694,7 +753,7 @@
})
return arr0;
} catch (error) {
-
+ console.log('error',error)
}
}
@@ -706,7 +765,7 @@
* @param comValue 瀵硅薄绫诲瀷锛岃〃绀鸿鏇挎崲鐨勫崟鍏冩牸鍊硷紝閿负鍗曞厓鏍煎悕绉帮紝鍊间负鏇挎崲鍚庣殑鍊�
* @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
*/
-function compute(f,comValue){
+function compute(f,comValue, isPoint){
try {
let str = f
// 鑾峰彇鍗曞厓鏍煎搴斿��
@@ -748,25 +807,28 @@
obj[item] = item
}
})
- str = str.replaceAll(':', '-')
+ str = str.replace(new RegExp(':', 'g'),'-')
// 鏇挎崲鍙傛暟
for (var a in obj) {
- str = str.replaceAll(a, obj[a])
+ str = str.replace(new RegExp(a, 'g'),obj[a])
}
// 璁$畻
for (var a in arr) {
- str = str.replaceAll(a, arr[a])
+ str = str.replace(new RegExp(a, 'g'),arr[a])
}
if(str.includes(',,')){
- str = str.replaceAll(',,', '')
+ str = str.replace(new RegExp(',,', 'g'),'')
}
+ // console.log('str', str)
if(str.includes('&"/"&')){
- return str.replaceAll('&"/"&', '/').replaceAll('//','')
+ return str.replace(new RegExp('&"/"&', 'g'),'/').replace(new RegExp('//', 'g'),'')
+ } else if (isPoint) {
+ return str.replace('ABS', '').replace(/\(|\)/g, '')
}else {
return eval(str)
}
} catch (error) {
-
+ console.log('error',error)
}
}
--
Gitblit v1.9.3