Commit 44f9dd0d by 蒋勇

d

parents ab045d00 9c154b2d
...@@ -36,8 +36,6 @@ class TaskBase{ ...@@ -36,8 +36,6 @@ class TaskBase{
await this.subPostTask(); await this.subPostTask();
this.redisClient.client.quit(); this.redisClient.client.quit();
this.redisClient.subclient.quit(); this.redisClient.subclient.quit();
} }
async doTask(params){ async doTask(params){
try { try {
......
...@@ -56,24 +56,109 @@ async readxls(path) { ...@@ -56,24 +56,109 @@ async readxls(path) {
var localpath="/tmp/"+keystr; var localpath="/tmp/"+keystr;
var wb= await this.readxls(localpath); var wb= await this.readxls(localpath);
//是否解析excell中的报表
var toparsedate={isparsedate:false,rptDate:'notparse',fp:urldownload};
var ind=rptCode.lastIndexOf("_"); var ind=rptCode.lastIndexOf("_");
var parsefunc=rptCode; var parsefunc=rptCode;
if(ind>=0){ if(ind>=0){
var st2=rptCode.substring(ind+1); var st2=rptCode.substring(ind+1);
if(st2=="N"){//是非必传的文件 if(st2=="N"){//是非必传的文件
parsefunc=rptCode.substring(0,ind); parsefunc=rptCode.substring(0,ind);
toparsedate.isparsedate=true;
} }
} }
var parserByCode=require("./rptHandler/"+parsefunc); var parserByCode=null;
var rows=await parserByCode(wb); if(parsefunc=="ITY"){//年报所得税7个sheet
console.log(); //里面存在7个sheet,构造7个sheet history data
//A100000--ITY--1
parsefunc="ITY";
parserByCode=require("./rptHandler/"+parsefunc);
var rowsITY=await parserByCode(wb);
this.restData.push({ this.restData.push({
rptid:rptid, rptid:rptid,
batchid:bid, batchid:bid,
rptdate:rptDate, rptdate:rptDate,
rptcode:rptCode, rptcode:rptCode,
hisdata:rowsITY
});
//A101010--ITY_INCOME_DESC-2
parsefunc="ITY_INCOME_DESC";
parserByCode=require("./rptHandler/"+parsefunc);
var rows2=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows2
});
//A102010-ITY_COST---3
parsefunc="ITY_COST";
parserByCode=require("./rptHandler/"+parsefunc);
var rows3=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows3
});
//A104000--ITY_PERIOD--4
parsefunc="ITY_PERIOD";
parserByCode=require("./rptHandler/"+parsefunc);
var rows4=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows4
});
//A105060--ITY_ADV--5
parsefunc="ITY_ADV";
parserByCode=require("./rptHandler/"+parsefunc);
var rows5=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows5
});
//A105080--ITY_DISCOUNT_ADJUST--6
parsefunc="ITY_DISCOUNT_ADJUST";
parserByCode=require("./rptHandler/"+parsefunc);
var rows6=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows6
});
//A106000--ITY_FILL_LOST--7
parsefunc="ITY_FILL_LOST";
parserByCode=require("./rptHandler/"+parsefunc);
var rows7=await parserByCode(wb);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows7
});
}else{
parserByCode=require("./rptHandler/"+parsefunc);
var rows=await parserByCode(wb,toparsedate);
this.restData.push({
rptid:rptid,
batchid:bid,
rptdate:toparsedate.isparsedate?toparsedate.rptDate:rptDate,
rptcode:rptCode,
hisdata:rows hisdata:rows
}); });
}
this.parseXls(); this.parseXls();
}else{ }else{
if(this.restData && this.restData .length>0){ if(this.restData && this.restData .length>0){
......
module.exports =(async (wb)=>{ var getMonth=require("./getMonth");
module.exports =(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==4){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
// var tt=cell.value.richText[0].text;
var rptDate=getMonth("GT",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=10 && rowNumber<=47){ if(rowNumber>=10 && rowNumber<=47){
var rowDesc=""; var rowDesc="";
var cacheStr=""; var cacheStr="";
......
module.exports = (async (wb) => { var getMonth=require("./getMonth");
module.exports = (async (wb,toparsedate) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==2){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
//var tt=cell.value.richText[0].text;
var rptDate=getMonth("ITQ",cell);
toparsedate.rptDate=rptDate;
}
});
}
if (rowNumber >= 13 && rowNumber <= 27) { if (rowNumber >= 13 && rowNumber <= 27) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) { row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) { if (colNumber == 2) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(5);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 16) { if (rowNumber >= 3 && rowNumber <= 16) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(3);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 28) { if (rowNumber >= 3 && rowNumber <= 28) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(6);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 5 && rowNumber <= 41) { if (rowNumber >= 5 && rowNumber <= 41) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(7);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 6 && rowNumber <= 17) { if (rowNumber >= 6 && rowNumber <= 17) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(2);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 28) { if (rowNumber >= 3 && rowNumber <= 28) {
......
module.exports=(async (wb) => { module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(4);
var insertrows = []; var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 5 && rowNumber <= 30) { if (rowNumber >= 5 && rowNumber <= 30) {
......
module.exports=(async (wb)=>{ var getMonth=require("./getMonth");
module.exports=(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==3){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
console.log("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
console.log(toparsedate.fp);
console.log(cell.value);
// var tt=cell.value.richText[1].text;
var rptDate=getMonth("NA",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=5 && rowNumber<=45){ if(rowNumber>=5 && rowNumber<=45){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) { row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){ if(colNumber==1){
...@@ -45,3 +58,6 @@ module.exports=(async (wb)=>{ ...@@ -45,3 +58,6 @@ module.exports=(async (wb)=>{
}); });
return insertrows; return insertrows;
}); });
module.exports=(async (wb)=>{ var getMonth=require("./getMonth");
module.exports=(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==3){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
console.log(toparsedate.fp,"=================");
console.log(cell.value);
// var tt1=cell.value.richText[1].text;
// var tt2=cell.value.richText[2].text;
// var tt=tt1+tt2;
var rptDate=getMonth("NP",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=5 && rowNumber<=38){ if(rowNumber>=5 && rowNumber<=38){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) { row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
......
module.exports=(async (wb)=>{ var getMonth=require("./getMonth");
module.exports=(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
if(!sheet){ if(!sheet){
return []; return [];
} }
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==3){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
//var tt=cell.value.richText[0].text;
var rptDate=getMonth("SA",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=5 && rowNumber<=36){ if(rowNumber>=5 && rowNumber<=36){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) { row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
......
module.exports=(async (wb)=>{ var getMonth=require("./getMonth");
module.exports=(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==3){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
// var tt1=cell.value.richText[1].text;
// var tt2=cell.value.richText[2].text;
// var tt=tt1+tt2;
var rptDate=getMonth("SP",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=5 && rowNumber<=38){ if(rowNumber>=5 && rowNumber<=38){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) { row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){ if(colNumber==1){
......
module.exports=(async (wb)=>{ var getMonth=require("./getMonth");
module.exports=(async (wb,toparsedate)=>{
var sheet = wb.getWorksheet(1); var sheet = wb.getWorksheet(1);
var insertrows=[]; var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(toparsedate.isparsedate && rowNumber==5){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
// var tt0=cell.value.richText[0].text;
// var tt1=cell.value.richText[1].text;
// var tt2=cell.value.richText[2].text;
// var tt=tt0+tt1+tt2;
var rptDate=getMonth("ST",cell);
toparsedate.rptDate=rptDate;
}
});
}
if(rowNumber>=9 && rowNumber<=33){ if(rowNumber>=9 && rowNumber<=33){
var rowDesc=""; var rowDesc="";
......
function getMonth(type,cell){
var text="";
if(cell.value){
cell.value.richText.forEach(tmmobj=>{
text+=tmmobj.text;
});
}else{
console.log(cell);
}
var qs=["一","二","三","四"];
var qmap={
"一":"03","二":"06","三":"09","四":"12"
};
//ITQ
if(type=="ITQ" || type=="ST" || type=="GT"){
var p1=/\d{4}[-|-]\d{2}[-|-]\d{2}/gm;
var ms=text.match(p1);
var lstDate=ms[1];
var ds=lstDate.split("-");
var rtnDate=ds[0]+ds[1];
return rtnDate;
}else{
var testbool=false;
var p2=/(\d{4})|([一|二|三|四])/gm;
var ms=text.match(p2);
for(var q of qs){
var jstr=ms.join(",");
var re = new RegExp(q);
if(re.test(jstr)){
testbool=true;
break;
}
}
if(!testbool){//如果不是季
var p3=/\d{4}[-|-]\d{2}/gm;
var ms=text.match(p3);
return ms[0].split("-").join("");
}else{//如果是季
var qstr=ms[1];
var rtndate=ms[0]+qmap[qstr];
return rtndate;
}
}
}
module.exports=getMonth;
\ No newline at end of file
// var http = require('http');
// var server = http.createServer((req,res) => {
// //设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
// res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
// res.write('<h1>Node.js</h1>');
// res.end('Hello World\\n');
// })
// server.listen(3000);//监听端口号是3000的服务器
// console.log("end");
// var str="sdfd_xxx";
// var ind=str.lastIndexOf("_");
// if(ind>=0){
// var st2=str.substring(ind+1);
// if(st2=="N"){
// var st1=str.substring(0,ind);
// console.log(st1);
// }else{
// console.log(str);
// }
// }
var excel = require('exceljs');
function getMonth(type,text){
var qs=["一","二","三","四"];
var qmap={
"一":"03","二":"06","三":"09","四":"12"
};
//ITQ
if(type=="ITQ" || type=="ST" || type=="GT"){
var p1=/\d{4}[-|-]\d{2}[-|-]\d{2}/gm;
var ms=text.match(p1);
var lstDate=ms[1];
var ds=lstDate.split("-");
var rtnDate=ds[0]+ds[1];
return rtnDate;
}else{
var testbool=false;
var p2=/(\d{4})|([一|二|三|四])/gm;
var ms=text.match(p2);
console.log(ms);
for(var q of qs){
var jstr=ms.join(",");
var re = new RegExp(q);
if(re.test(jstr)){
console.log("======");
testbool=true;
break;
}
}
if(!testbool){//如果不是季
var p3=/\d{4}[-|-]\d{2}/gm;
var ms=text.match(p3);
return ms[0].split("-").join("");
}else{//如果是季
var qstr=ms[1];
var rtndate=ms[0]+qmap[qstr];
return rtndate;
}
}
}
async function readxls(path) {
var promise = new Promise((resv, rej) => {
var workbook = new excel.Workbook();
workbook.properties.date1904 = true;
workbook.xlsx.readFile(path)
.then(function () {
return resv(workbook);
}).catch(function (e) {
return rej(e);
});
});
return promise;
}
(async ()=>{
var toparsedate={isparsedate:false,rptDate:'notparse'};
toparsedate.isparsedate=true;
var parserByCode=null;
// NA
var wb=await readxls("./tmpl/fi/NA3.xlsx");
parserByCode=require("./rptHandler/NA.js");
var rows=await parserByCode(wb,toparsedate);
console.log(toparsedate.rptDate);
// // NP
// wb=await readxls("./tmpl/fi/NP.xlsx");
// parserByCode=require("./rptHandler/NP.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// // NPQ
// wb=await readxls("./tmpl/fi/NPQ.xlsx");
// parserByCode=require("./rptHandler/NP.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// // SA
// wb=await readxls("./tmpl/fi/SA.xlsx");
// parserByCode=require("./rptHandler/SA.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// // SP
// wb=await readxls("./tmpl/fi/SP.xlsx");
// parserByCode=require("./rptHandler/SP.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// // SPQ
// wb=await readxls("./tmpl/fi/SPQ.xlsx");
// parserByCode=require("./rptHandler/SP.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// //ITQ
// wb=await readxls("./tmpl/it/q/ITQ.xlsx");
// parserByCode=require("./rptHandler/ITQ.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// //GT
// wb=await readxls("./tmpl/t/GT.xlsx");
// parserByCode=require("./rptHandler/GT.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
// //ST
// wb=await readxls("./tmpl/t/ST.xlsx");
// parserByCode=require("./rptHandler/ST.js");
// var rows=await parserByCode(wb,toparsedate);
// console.log(toparsedate.rptDate);
})()
// var text=`日期:2019-11(请按照此日期格式填写日期,否则系统无法识别)`;
// var g=getMonth("dd",text);
// console.log(g);
// return;
// //ITQ
// var text=`税款所属期间:2019-06-01至2019-09-30
// 请按照此日期格式填写日期,否则系统无法识别)`;
// var g=getMonth("ITQ",text);
// console.log(g);
// //ST
// text="税款所属期:2019-06-01至2019-09-30(请按照此日期格式填写日期,否则系统无法识别)";
// var g=getMonth("ST",text);
// console.log(g);
...@@ -155,7 +155,13 @@ class RedisClient { ...@@ -155,7 +155,13 @@ class RedisClient {
} }
module.exports = RedisClient; module.exports = RedisClient;
// (async ()=>{
// var c=new RedisClient();
// await c.set("testtest",1);
// var tt=await c.get("testtest");
// console.log("dddddddddddddddddddddddd");
// console.log(tt);
// })()
// client.keys('*').then(s=>{ // client.keys('*').then(s=>{
// console.log(s); // console.log(s);
// }); // });
......
// var http = require('http');
// var server = http.createServer((req,res) => {
// //设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
// res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
// res.write('<h1>Node.js</h1>');
// res.end('Hello World\\n');
// })
// server.listen(3000);//监听端口号是3000的服务器
// console.log("end");
var str="sdfd_xxx";
var ind=str.lastIndexOf("_");
if(ind>=0){
var st2=str.substring(ind+1);
if(st2=="N"){
var st1=str.substring(0,ind);
console.log(st1);
}else{
console.log(str);
}
}
\ No newline at end of file
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