Commit ee933e0e authored by xiangjiaojunxp's avatar xiangjiaojunxp

物料转换六矿转换

parent 8d23f5db
...@@ -145,6 +145,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -145,6 +145,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM act_supplies_details a FROM act_supplies_details a
LEFT JOIN act_supplies b ON a.sid = b.id LEFT JOIN act_supplies b ON a.sid = b.id
WHERE a.status = 0 WHERE a.status = 0
AND a.code IS NOT NULL
</select> </select>
<select id="selectActSuppliesDetailsById" parameterType="Long" resultMap="ActSuppliesDetailsResult"> <select id="selectActSuppliesDetailsById" parameterType="Long" resultMap="ActSuppliesDetailsResult">
......
...@@ -65,7 +65,6 @@ ...@@ -65,7 +65,6 @@
</el-upload> </el-upload>
</el-col> </el-col>
</el-row> </el-row>
<!-- luckysheet容器 --> <!-- luckysheet容器 -->
<div <div
id="luckysheet" id="luckysheet"
...@@ -222,7 +221,6 @@ export default { ...@@ -222,7 +221,6 @@ export default {
/** 判断是否选择时间*/ /** 判断是否选择时间*/
rulesdate(){ rulesdate(){
if (this.date==''||this.date==null){ if (this.date==''||this.date==null){
this.disableNextButton=true; this.disableNextButton=true;
this.$message.error('请选择时间日期!'); this.$message.error('请选择时间日期!');
...@@ -230,10 +228,8 @@ export default { ...@@ -230,10 +228,8 @@ export default {
this.disableNextButton=true; this.disableNextButton=true;
this.$message.error('请选择所属矿区!'); this.$message.error('请选择所属矿区!');
} }
}, },
handledateChange(){ handledateChange(){
if (this.date==''||this.date==null||this.date==undefined){ if (this.date==''||this.date==null||this.date==undefined){
this.disableNextButton=true; this.disableNextButton=true;
}else { }else {
...@@ -242,13 +238,11 @@ export default { ...@@ -242,13 +238,11 @@ export default {
}, },
handleminingChange(){ handleminingChange(){
if (this.date==''||this.date==null||this.date==undefined){ if (this.date==''||this.date==null||this.date==undefined){
this.disableNextButton=true; this.disableNextButton=true;
}else { }else {
this.disableNextButton=false; this.disableNextButton=false;
} }
}, },
/** 页面刷新时展示的数据*/ /** 页面刷新时展示的数据*/
...@@ -423,8 +417,8 @@ export default { ...@@ -423,8 +417,8 @@ export default {
}, },
/** 导入事件*/ /** 导入事件*/
async handleFileChange(evt) { //导入Promise方法
/*async handleFileChange(evt) {
if(modify){ if(modify){
this.$confirm('再次导入将会清空表内数据,是否继续操作?', '注意!!!', { this.$confirm('再次导入将会清空表内数据,是否继续操作?', '注意!!!', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -456,12 +450,10 @@ export default { ...@@ -456,12 +450,10 @@ export default {
}); });
}); });
try { try {
const exportJson = await cons; const exportJson = await cons;
await this.summary(exportJson); await this.summary(exportJson);
this.submit(exportJson); //this.submit(exportJson);
} catch (Error) { } catch (Error) {
this.$message({ this.$message({
message: Error.message, message: Error.message,
...@@ -482,7 +474,6 @@ export default { ...@@ -482,7 +474,6 @@ export default {
//this.$message({type: 'info', message: '操作已取消'}); //this.$message({type: 'info', message: '操作已取消'});
}); });
}else{ }else{
let exx; let exx;
this.showMask = true; this.showMask = true;
const cons = new Promise((resolve, reject) => { const cons = new Promise((resolve, reject) => {
...@@ -491,10 +482,8 @@ export default { ...@@ -491,10 +482,8 @@ export default {
resolve(exx); resolve(exx);
}); });
}); });
try { try {
const exportJson = await cons; const exportJson = await cons;
await this.summary(exportJson); await this.summary(exportJson);
this.submit(exportJson); this.submit(exportJson);
...@@ -506,16 +495,90 @@ export default { ...@@ -506,16 +495,90 @@ export default {
}finally { }finally {
// 导入完成后关闭遮罩层 // 导入完成后关闭遮罩层
this.showMask = false; this.showMask = false;}
}
},*/
async handleFileChange(evt) {
if(modify){
this.$confirm('再次导入将会清空表内数据,是否继续操作?', '注意!!!', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
// 确认继续后刷新页面返回模板
getSuppliesTemplate(7).then(response => {
const sysSupplies = response.rows;
this.luckysheetData = sysSupplies[0].templateContent;
let json_data = JSON.parse(sysSupplies[0].templateContent);
//luckysheet.destroy()
luckysheet.create({
container: "luckysheet", // Luckysheet 的容器元素 ID
title: fileName, // Excel 文件名
data: json_data, // Excel 数据
showinfobar: false, //是否显示顶部名称栏
lang:'zh',
});
modify=false;
}).then(async ()=>{
this.showMask = true;
//将导入数据替换保存
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
//this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
console.log(error.message);
console.log("这里是最外面的地方");
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
});
});
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
this.$message.error('查询失败,模板未找到,请联系管理员进行处理!');
});
}).catch(() => {
// 用户点击了取消按钮
this.$message({type: 'info', message: '操作已取消'});
});
}else{
this.showMask = true;
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
//this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
console.log(error.message);
console.log("这里是最外面的地方");
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
});
});
}
} }
}, },
/** 物料转换汇总到页面*/ /** 物料转换汇总到页面*/
summary(exportJson){ summary(exportJson){
// 记录开始时间 // 记录开始时间
const startTime = new Date(); const startTime = new Date().getTime();
let sysRulez; let sysRulez;
let sysRules; let sysRules;
let sysConver; let sysConver;
...@@ -711,115 +774,116 @@ export default { ...@@ -711,115 +774,116 @@ export default {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹"); throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
} }
materialConvert(smallMat) materialConvert(smallMat)
.then(response => { .then(response => {
let array = response.rows;
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}catch(err){
throw new Error("导入失败,导入文件不匹");
}
}
//插入多个value的值
let key = exps[k] + '/' + deps[k] + '/' + array[k];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
//循环得到汇总结果
let cells;
let rowws;
let con=0;
let warn=0;
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
const suffixArr = key.split('/'), mat = suffixArr[2], depp = suffixArr[1],
expp = suffixArr[0];
let searchResult = luckysheet.find(expp);
if (searchResult.length !== 0 ) {
rowws = searchResult[0].row;
for (let i = 1; i < 10000000000000000000000000; i++) {
let n = rowws + i;
let gg = luckysheet.getCellValue(n, 0);
if (gg!==null) {
con = rowws + i;
break;
}
}
searchResult= luckysheet.find(depp);
if(searchResult.length !== 0 ){
let k=0; let array = response.rows;
let r; //console.log(array);
for(let i=0;i<searchResult.length;i++){ //luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
r = searchResult[i].row; for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}catch(err){
throw new Error("导入失败,导入文件不匹");
}
if(r<con&&r>=rowws){ }
k=1; //插入多个value的值
break; let key = exps[k] + '/' + deps[k] + '/' + array[k];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
} }
} }
if(k===1){
let matResult = luckysheet.find(mat); }
if (matResult.length !== 0 && mat != null) { //循环得到汇总结果
cells = matResult[0].column; console.log(map);
luckysheet.setCellValue(r, cells, value[i]); if (map.size === 0) {
luckysheet.setCellValue(r, cells, { throw new Error("导入失败,导入文件错误");
"ct": { }
"fa": "General", //循环得到汇总结果
"t": "n" let cells;
let rowws;
let con=0;
let warn=0;
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
const suffixArr = key.split('/'), mat = suffixArr[2], depp = suffixArr[1],
expp = suffixArr[0];
//console.log(expp);console.log(depp);console.log(mat);
let searchResult = luckysheet.find(expp);
if (searchResult.length !== 0 ) {
rowws = searchResult[0].row;
for (let i = 1; i < 10000000000000000000000000; i++) {
let n = rowws + i;
let gg = luckysheet.getCellValue(n, 0);
if (gg!==null) {
con = rowws + i;
break;
} }
}); }
searchResult= luckysheet.find(depp);
if(searchResult.length !== 0 ){
let k=0;
let r;
for(let i=0;i<searchResult.length;i++){
r = searchResult[i].row;
if(r<con&&r>=rowws){
k=1;
break;
}
}
if(k===1){
let matResult = luckysheet.find(mat);
if (matResult.length !== 0 && mat != null) {
cells = matResult[0].column;
luckysheet.setCellValue(r, cells, value[i]);
luckysheet.setCellValue(r, cells, {
"ct": {
"fa": "General",
"t": "n"
}
});
}else{
warn++;
}
}else{
warn++;
}
}
}else{ }else{
warn++; warn++;
} }
}else{ });
warn++; if (warn / sysRules.length === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn/sysRules.length+"条大类未能匹配到",
type: "warning"});
} }
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
} }
}else{ }).catch(Error => {
warn++;
}
});
if (warn / sysRules.length === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn/sysRules.length+"条大类未能匹配到",
type: "warning"});
}
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
}
}).catch(Error => {
//必须加,不能删除 //必须加,不能删除
innerReject(Error); // 异步请求出错 innerReject(Error); // 异步请求出错
}); });
})); }));
} }
...@@ -847,171 +911,412 @@ export default { ...@@ -847,171 +911,412 @@ export default {
}catch(err){ }catch(err){
throw new Error("导入失败,导入文件与模板规则不匹"); throw new Error("导入失败,导入文件与模板规则不匹");
} }
//console.log(smallMat);
asyncTasks.push( asyncTasks.push(
new Promise((innerResolve, innerReject) => { new Promise((innerResolve, innerReject) => {
const allNull = smallMat.every(item =>item===null); const allNull = smallMat.every(item =>item===null);
if (allNull ) { if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹"); throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
} }
materialConvert(smallMat) materialConvert(smallMat)
.then(response => { .then(response => {
let array = response.rows; let array = response.rows;
//console.log(array);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i = parseInt(sysRulez[0].re) + 1; i < data.length; i++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
if (isNaN(a)) {
a = 0;
}
values.push(a);
}catch (err){
throw new Error("导入失败,导入文件不匹");
}
}
} else {
break;
}
//插入多个value的值
let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
values[i] = parseFloat(parseFloat(parseFloat(values[i]) + parseFloat(oldValues[i])).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
//循环得到汇总结果
let row;
let con;
let warn=0;
//console.log(map);
map.forEach((value,key)=>{
let searchResult;
searchResult= luckysheet.find(key);
if( searchResult==undefined ||searchResult.length === 0 || key === null){
warn++;
}
})
if (warn === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
}
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"}) let matchingCells = [];
for (let i = parseInt(sysRulez[0].re) + 1; i < data.length; i++) { let name = data[sysRules[i].re][sysRules[i].ce].m
let values = []; if (name.includes("洗煤")) {
if (data[i][key_i] != null) { row = sysRules[i].rt;
for (let j = 0; j < value.length; j++) { con = parseInt(sysRules[i].rt) + 10;
try{ } else {
let a = parseFloat(data[i][value[j]].v); row = sysRules[i].rt;
if (isNaN(a)) { con = 54;
a = 0; }
for (; row <= con; row++) {
let cellValue = luckysheet.getCellValue(row, parseInt(sysRulez[0].ct));
if (cellValue === null) {
} else {
if (cellValue.includes(key)) {
luckysheet.setCellValue(row, sysRules[i].ct, value[i]);
luckysheet.setCellValue(row, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});
break;
}else{
}
}
}
});
}
let value2 = [];
let map2 = new Map;
for (let i = 0; i < sysConver.length; i++) {
//value.push(data[sysRules[i].re][sysRules[i].ce].m);
value2.push(sysConver[i].ce);
}
for (let i = parseInt(sysRulez[0].re) + 1; i < data.length; i++) {
let values2 = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value2.length; j++) {
try{
let a = parseFloat(data[i][value2[j]].v);
if (isNaN(a)) {
a = 0;
}
values2.push(a);
}catch (err){
throw new Error("导入失败,导入文件不匹");
}
}
} else {
break;
}
//插入多个value的值
let key = data[sysConver[0].re][sysConver[0].ce].v;
if (map2.has(key)) {
let oldValues = map2.get(key);
for (let i = 0; i < values2.length; i++) {
values2[i] = parseFloat(parseFloat(parseFloat(values2[i]) + parseFloat(oldValues[i])).toFixed(2));
}
map2.set(key, values2);
} else {
map2.set(key, values2);
} }
values.push(a);
}catch (err){
throw new Error("导入失败,导入文件不匹");
} }
} if (map2.size === 0) {
} else { throw new Error("导入失败,导入文件错误");
break; }
} //console.log(map2);
//插入多个value的值 map2.forEach((value, key) => {
let index = smallMat.indexOf(data[i][key_i].m); let searchResult;
let key = array[index]; searchResult= luckysheet.find(key);
if (map.has(key)) { if( searchResult!==undefined && searchResult.length !== 0 || key !== null){
let oldValues = map.get(key); for (let i = 0; i < value.length; i++) {
for (let i = 0; i < values.length; i++) { luckysheet.setCellValue(searchResult[0].row, sysConver[i].ct, value[i]);
values[i] = parseFloat(parseFloat(parseFloat(values[i]) + parseFloat(oldValues[i])).toFixed(2)); luckysheet.setCellValue(searchResult[0].row, sysConver[i].ct, {
} "ct": {
map.set(key, values); "fa": "General",
"t": "n"
}
});
}
}else{
warn++;
}
})
if (warn === map.size+map2.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn+"条大类未能匹配到",
type: "warning"});
}
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
}).catch(Error => {
console.log("这里是单个异步请求出错处");
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
}
break;
//李志昊版
case 7: {
let map = new Map();
let smallMat = [];
let newsmallMat=[];
let p=0;
let deps = [];
try {
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
if (data[i][sysRulez[1].ce] != null && data[i][key_i] != null) {
let num = data[i][key_i].m;
let dep = data[i][sysRulez[1].ce].m;
smallMat.push(num);
newsmallMat.push({'index':p,'code':num});
p++;
deps.push(dep);
} else { } else {
map.set(key, values); smallMat.push(null);
deps.push(null);
} }
} }
if (map.size === 0) { }catch(err){
throw new Error("导入失败,导入文件错误"); throw new Error("导入失败,导入文件与模板规则不匹");
} }
//循环得到汇总结果 asyncTasks.push(
let row; new Promise((innerResolve, innerReject) => {
let con; const allNull = smallMat.every(item =>item===null);
let warn=0; if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
map.forEach((value,key)=>{
let searchResult;
searchResult= luckysheet.find(key);
if( searchResult==undefined ||searchResult.length === 0 || key === null){
warn++;
} }
}) function sortArray(array) {
if (warn === map.size) { array.sort((a, b) => b.code.length - a.code.length)
throw new Error("导入文件与所选模板规则不匹配"); return array
} }
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
let matchingCells = []; materialList().then(response => {
let name = data[sysRules[i].re][sysRules[i].ce].m /*let SixMateriel=[];
if (name.includes("洗煤")) { let MaterielCode=[];
row = sysRules[i].rt; let NewMarterielCode=[];
con = parseInt(sysRules[i].rt) + 10; let SixList=[];
} else { let newSmasll =newsmallMat;
row = sysRules[i].rt; let m=0
con = 54; SixMateriel=response.rows.slice(92,246);
for(var i=0;i<SixMateriel.length;i++){
if(SixMateriel[i].code!==null){
MaterielCode.push(SixMateriel[i])
}
}
NewMarterielCode= sortArray(MaterielCode)
for (let i = 0; i < NewMarterielCode.length; i++) {
for (let j = 0; j < newSmasll.length; j++) {
if(newSmasll[j] !== null){
m++
if (NewMarterielCode[i].code==newSmasll[j].code.slice(0,NewMarterielCode[i].code.length)) {
SixList[newSmasll[j].index]=NewMarterielCode[i].codes;
newSmasll.splice(j,1);
j--;
}
}
}
}
//console.log(newSmasll)
for (let k = 0; k < newSmasll.length; k++) {
SixList[newSmasll[k].index]='11';
m++;
}
//console.log(m)
//console.log(SixList,'1231231231231')
this.NewSixList=SixList*/
let SixMateriel=[];
let MaterielCode=[];
let NewMarterielCode=[];
let SixList=[];
let newSmasll =smallMat;
SixMateriel=response.rows;
NewMarterielCode= sortArray(SixMateriel)
console.log("新的转换规则有"+NewMarterielCode.length+"");
// //转化编码
let p=0;
for(var i=0;i<newSmasll.length;i++){
for (var j = 0; j < NewMarterielCode.length; j++) {
if(newSmasll[i] !== null){
if(newSmasll[i].slice(0,NewMarterielCode[j].code.length)==NewMarterielCode[j].code){
SixList[i]=NewMarterielCode[j].codes
p++
break
}else{
SixList[i]='11'
p++
}
}
}
}
console.log(p)
let newSixList=SixList
console.log(newSixList)
for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try {
let a = parseFloat(data[i][value[j]].v);
values.push(a);
} catch (err) {
this.$message({
message: "导入失败,导入文件不匹",
type: "error"
});
innerReject(error); // 异步请求出错
}
}
//console.log(SixList)
let key = SixList[k] + '/' + deps[k];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
console.log(map);
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
//返回单元格第二行的数据
//let celn=luckysheet.getcellvalue(1);
//返回当前工作表第1列数据
//let cown=luckysheet.getcellvalue(null,0);
let config;
let bord = {
"rangeType": "range",
"borderType": "border-all",
"style": "1",
"color": "#000000",
"range": [{
"row": [0, 0],
"column": [0, 0]
}]
} }
for (; row <= con; row++) { let warn = 0;
let cellValue = luckysheet.getCellValue(row, parseInt(sysRulez[0].ct)); map.forEach((value, key) => {
if (cellValue === null) { let rowws;
} else { const suffixArr = key.split('/'), mat = suffixArr[0], depp = suffixArr[1];
if (cellValue.includes(key)) { //返回当前工作表第1列数据
luckysheet.setCellValue(row, sysRules[i].ct, value[i]); let cown=luckysheet.getcellvalue(null,0);
luckysheet.setCellValue(row, sysRules[i].ct, { for(let i=0;i<cown.length;i++){
"ct": { if(cown[i]==null){
"fa": "General", continue;
"t": "n" }
} if(cown[i].v==undefined){
}); continue;
}
if(cown[i].v==mat){
rowws=i;
break; break;
}else{
} }
} }
} //let searchResult = luckysheet.find(mat,{isWholeWord:true});
}); if (rowws != undefined) {
} //rowws = searchResult[0].row;
let value2 = []; luckysheet.insertRow(rowws + 1);
let map2 = new Map; let vll1 = luckysheet.getCellValue(rowws, sysRulez[0].ct);
for (let i = 0; i < sysConver.length; i++) { luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, {
//value.push(data[sysRules[i].re][sysRules[i].ce].m); "ct": {
value2.push(sysConver[i].ce); "fa": "@",
} "t": "n"
for (let i = parseInt(sysRulez[0].re) + 1; i < data.length; i++) { }
let values2 = []; });
if (data[i][key_i] != null) { luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, vll1);
for (let j = 0; j < value2.length; j++) { let vll2 = luckysheet.getCellValue(rowws, parseInt(sysRulez[0].ct) + 1);
try{ luckysheet.setCellValue(rowws + 1, parseInt(sysRulez[0].ct) + 1, vll2);
let a = parseFloat(data[i][value2[j]].v); //输出部门数量金额
if (isNaN(a)) { luckysheet.setCellValue(rowws + 1, sysRulez[1].ct, depp);
a = 0; for (let i = 0; i < sysRules.length; i++) {
luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]);
//修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});*/
} }
values2.push(a); //输出单价
}catch (err){ luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]);
throw new Error("导入失败,导入文件不匹"); //修改单价样式
} /*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
}
} else {
break;
}
//插入多个value的值
let key = data[sysConver[0].re][sysConver[0].ce].v;
if (map2.has(key)) {
let oldValues = map2.get(key);
for (let i = 0; i < values2.length; i++) {
values2[i] = parseFloat(parseFloat(parseFloat(values2[i]) + parseFloat(oldValues[i])).toFixed(2));
}
map2.set(key, values2);
} else {
map2.set(key, values2);
}
}
if (map2.size === 0) {
throw new Error("导入失败,导入文件错误");
}
map2.forEach((value, key) => {
let searchResult;
searchResult= luckysheet.find(key);
if( searchResult!==undefined && searchResult.length !== 0 || key !== null){
for (let i = 0; i < value.length; i++) {
luckysheet.setCellValue(searchResult[0].row, sysConver[i].ct, value[i]);
luckysheet.setCellValue(searchResult[0].row, sysConver[i].ct, {
"ct": { "ct": {
"fa": "General", "fa": "0.0000",
"t": "n" "t": "n"
} }
});*/
config = luckysheet.getConfig(0);
bord.range[0].row = [rowws + 1, rowws + 1];
bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)];
config.borderInfo.push(bord);
luckysheet.setConfig(config);
modify = true;
} else {
warn++;
}
});
if (warn === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有" + warn + "条大类未能匹配到",
type: "warning"
}); });
} }
}else{ // 记录结束时间
warn++; const endTime = new Date().getTime();
} // 计算执行时间(以毫秒为单位)
}) const executionTime = endTime - startTime;
if (warn === map.size+map2.size) { // 输出执行时间
throw new Error("导入文件与所选模板规则不匹配"); console.log(`代码执行时间:${executionTime} 毫秒`);
} else if (warn > 0) { resolve(response.rows);
this.$message({ innerResolve(); // 标记当前异步任务完成
message: "还有"+warn+"条大类未能匹配到",
type: "warning"}); /*let find1 = luckysheet.find("合计");
} let number = parseInt(find1[0].row)-1;
resolve(response.rows); luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/
innerResolve(); // 标记当前异步任务完成
}).catch(Error => { }).catch(Error => {
//必须加,不能删除 //必须加,不能删除
innerReject(Error); // 异步请求出错 innerReject(Error); // 异步请求出错
}); });
})); }));
} }
break; break;
case 7: { //张凯林版本
/*case 7: {
let map = new Map(); let map = new Map();
let smallMat = []; let smallMat = [];
let deps = []; let deps = [];
...@@ -1045,7 +1350,7 @@ export default { ...@@ -1045,7 +1350,7 @@ export default {
materialList().then( response => { materialList().then( response => {
//六矿物料编码数据 //六矿物料编码数据
// console.log(response.rows,'ymy'); // console.log(response.rows,'ymy');
let array = response.rows.slice(92,246); let array = response.rows;
//有code的数据 //有code的数据
// console.log(array,"<-------->"); // console.log(array,"<-------->");
//六矿六位编码 //六矿六位编码
...@@ -1183,8 +1488,8 @@ export default { ...@@ -1183,8 +1488,8 @@ export default {
} }
//插入多个value的值 //插入多个value的值
//此方法只适用于一对一唯一值 //此方法只适用于一对一唯一值
/*let index = smallMat.indexOf(data[i][key_i].m); /!*let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];*/ let key = array[index];*!/
let key = newSortArray[k].code + '/' + deps[k]; let key = newSortArray[k].code + '/' + deps[k];
if (map.has(key)) { if (map.has(key)) {
let oldValues = map.get(key); let oldValues = map.get(key);
...@@ -1245,22 +1550,22 @@ export default { ...@@ -1245,22 +1550,22 @@ export default {
for (let i = 0; i < sysRules.length; i++) { for (let i = 0; i < sysRules.length; i++) {
luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]); luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]);
//修改单元格样式 //修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, { /!*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": { "ct": {
"fa": "General", "fa": "General",
"t": "n" "t": "n"
} }
});*/ });*!/
} }
//输出单价 //输出单价
luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]); luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]);
//修改单价样式 //修改单价样式
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{ /!*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
"ct": { "ct": {
"fa": "0.0000", "fa": "0.0000",
"t": "n" "t": "n"
} }
});*/ });*!/
config = luckysheet.getConfig(0); config = luckysheet.getConfig(0);
bord.range[0].row = [rowws + 1, rowws + 1]; bord.range[0].row = [rowws + 1, rowws + 1];
bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)]; bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)];
...@@ -1285,9 +1590,9 @@ export default { ...@@ -1285,9 +1590,9 @@ export default {
console.log(`代码执行时间:${executionTime} 毫秒`); console.log(`代码执行时间:${executionTime} 毫秒`);
resolve(response.rows); resolve(response.rows);
innerResolve(); // 标记当前异步任务完成 innerResolve(); // 标记当前异步任务完成
/*let find1 = luckysheet.find("合计"); /!*let find1 = luckysheet.find("合计");
let number = parseInt(find1[0].row)-1; let number = parseInt(find1[0].row)-1;
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/ luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*!/
}).catch(Error => { }).catch(Error => {
console.log("这里是单个异步请求出错处"); console.log("这里是单个异步请求出错处");
//必须加,不能删除 //必须加,不能删除
...@@ -1296,192 +1601,7 @@ export default { ...@@ -1296,192 +1601,7 @@ export default {
})); }));
} }
break; break;*/
case 8: {
let map = new Map();
let smallMat = [];
let newsmallMat=[];
let p=0;
let deps = [];
try {
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
if (data[i][sysRulez[1].ce] != null && data[i][key_i] != null) {
let num = data[i][key_i].m;
let dep = data[i][sysRulez[1].ce].m;
smallMat.push(num);
newsmallMat.push({'index':p,'code':num});
p++;
deps.push(dep);
} else {
smallMat.push(null);
deps.push(null);
}
}
}catch(err){
throw new Error("导入失败,导入文件与模板规则不匹");
}
asyncTasks.push(
new Promise((innerResolve, innerReject) => {
const allNull = smallMat.every(item =>item===null);
if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
}
function sortArray(array) {
array.sort((a, b) => b.code.length - a.code.length)
return array
}
materialList().then(response => {
let SixMateriel=[];
let MaterielCode=[];
let NewMarterielCode=[];
let SixList=[];
let newSmasll =newsmallMat;
let m=0
SixMateriel=response.rows
for(var i=0;i<SixMateriel.length;i++){
if(SixMateriel[i].code!==null){
MaterielCode.push(SixMateriel[i])
}
}
NewMarterielCode= sortArray(MaterielCode)
for (let i = 0; i < NewMarterielCode.length; i++) {
for (let j = 0; j < newSmasll.length; j++) {
if(newSmasll[j] !== null){
m++
if (NewMarterielCode[i].code==newSmasll[j].code.slice(0,NewMarterielCode[i].code.length)) {
SixList[newSmasll[j].index]=NewMarterielCode[i].codes;
newSmasll.splice(j,1);
j--;
}
}
}
}
//console.log(newSmasll)
for (let k = 0; k < newSmasll.length; k++) {
SixList[newSmasll[k].index]='11';
m++;
}
//console.log(m)
//console.log(SixList,'1231231231231')
this.NewSixList=SixList
for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}catch (err){
this.$message({
message: "导入失败,导入文件不匹",
type: "error"
});
innerReject(error); // 异步请求出错
}
}
//console.log(SixList)
let key = SixList[k] + '/' + deps[k];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
console.log(map);
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
//返回单元格第二行的数据
//let celn=luckysheet.getcellvalue(1);
//返回当前工作表第1列数据
//let cown=luckysheet.getcellvalue(null,0);
let rowws;
let config;
let bord = {
"rangeType": "range",
"borderType": "border-all",
"style": "1",
"color": "#000000",
"range": [{
"row": [0, 0],
"column": [0, 0]
}]
}
let warn=0;
map.forEach((value, key) => {
const suffixArr = key.split('/'), mat = suffixArr[0], depp = suffixArr[1];
let searchResult = luckysheet.find(mat);
if (searchResult.length != 0 && key != null) {
rowws = searchResult[0].row;
luckysheet.insertRow(rowws + 1);
let vll1=luckysheet.getCellValue(rowws,sysRulez[0].ct);
luckysheet.setCellValue(rowws+1, sysRulez[0].ct, {
"ct": {
"fa": "@",
"t": "n"
}
});
luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, vll1);
let vll2=luckysheet.getCellValue(rowws,parseInt(sysRulez[0].ct)+1);
luckysheet.setCellValue(rowws + 1, parseInt(sysRulez[0].ct)+1, vll2);
//输出部门数量金额
luckysheet.setCellValue(rowws + 1, sysRulez[1].ct, depp);
for (let i = 0; i < sysRules.length; i++) {
luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]);
//
}
//输出单价
luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]);
config = luckysheet.getConfig(0);
bord.range[0].row = [rowws + 1, rowws + 1];
bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)];
config.borderInfo.push(bord);
luckysheet.setConfig(config);
modify=true;
} else{
warn++;
}
});
if (warn === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn+"条大类未能匹配到",
type: "warning"});
}
// 记录结束时间
const endTime = new Date();
// 计算执行时间(以毫秒为单位)
const executionTime = endTime - startTime;
// 输出执行时间
console.log('endTime'+endTime)
console.log('endTime'+startTime)
console.log(`代码执行时间:${executionTime} 毫秒`);
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
}).catch(Error => {
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
}
break;
default : default :
{ {
let map = new Map(); let map = new Map();
...@@ -1503,7 +1623,7 @@ export default { ...@@ -1503,7 +1623,7 @@ export default {
const allNull = smallMat.every(item =>item===null); const allNull = smallMat.every(item =>item===null);
if (allNull ) { if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹"); throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
} }
materialConvert(smallMat) materialConvert(smallMat)
.then(response => { .then(response => {
let array = response.rows; let array = response.rows;
...@@ -1521,7 +1641,7 @@ export default { ...@@ -1521,7 +1641,7 @@ export default {
} }
//插入多个value的值 //插入多个value的值
index = smallMat.indexOf(data[i][key_i].m); index = smallMat.indexOf(data[i][key_i].m);
let key = array[index]; let key = array[index];
if (map.has(key)) { if (map.has(key)) {
let oldValues = map.get(key); let oldValues = map.get(key);
...@@ -1631,6 +1751,7 @@ export default { ...@@ -1631,6 +1751,7 @@ export default {
} }
}); });
}, },
/** 导出设置 */ /** 导出设置 */
handleExport: debounce(function() { handleExport: debounce(function() {
...@@ -1643,7 +1764,6 @@ export default { ...@@ -1643,7 +1764,6 @@ export default {
var data = response.data; var data = response.data;
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
debugger
if(data[i].identifyingCode == 1){ if(data[i].identifyingCode == 1){
/*生成表*/ /*生成表*/
let jsonDataa = JSON.parse(data[i].historyContent); let jsonDataa = JSON.parse(data[i].historyContent);
...@@ -1713,9 +1833,7 @@ export default { ...@@ -1713,9 +1833,7 @@ export default {
this.froms.createBy = data[i].createBy; this.froms.createBy = data[i].createBy;
this.froms.hDate = data[i].date; this.froms.hDate = data[i].date;
this.froms.mining = data[i].mining; this.froms.mining = data[i].mining;
addActSuppliesSixMinesSummaryTable(this.froms).then(response => { addActSuppliesSixMinesSummaryTable(this.froms).then(response => {});
});
} }
} }
} }
...@@ -1767,6 +1885,7 @@ export default { ...@@ -1767,6 +1885,7 @@ export default {
} }
} }
let b5 ; let b5 ;
if(datab[w][4] != null){ if(datab[w][4] != null){
b5= datab[w][4].v; b5= datab[w][4].v;
...@@ -1775,6 +1894,7 @@ export default { ...@@ -1775,6 +1894,7 @@ export default {
} }
} }
let b6 ; let b6 ;
if(datab[w][5] != null){ if(datab[w][5] != null){
b6= datab[w][5].v; b6= datab[w][5].v;
...@@ -2252,15 +2372,11 @@ export default { ...@@ -2252,15 +2372,11 @@ export default {
this.fromimport.a63 = b63; this.fromimport.a63 = b63;
} }
addActSuppliesImportTable(this.fromimport).then(response => { addActSuppliesImportTable(this.fromimport).then(response => {});
});
} }
} }
} }
} }
}); });
}, 500), // 设置延迟时间,单位为毫秒 }, 500), // 设置延迟时间,单位为毫秒
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment