Commit 82f29a7f by 王栋源

wdy

parents 027cfc65 4d8ace1e
#!/bin/bash
FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2
FROM registry.cn-beijing.aliyuncs.com/hantang2/node105:v2
MAINTAINER jy "jiangyong@gongsibao.com"
ADD taskexecutor /apps/taskexecutor/
WORKDIR /apps/taskexecutor/
......
......@@ -2,37 +2,60 @@ const system=require("../system")
class TaskBase{
constructor(className){
this.redisClient=system.getObject("util.redisClient");
this.restS=system.getObject("util.restClient");
this.serviceName=className;
this.isThrough=false;
this.cacheManager=system.getObject("db.common.cacheManager");
this.db = system.getObject("db.common.connection").getCon();
this.isDaemon=false;
this.TASK_CHANNEL="k8stask";
}
async subBeforeTask(params){
console.log("前置操作......",this.serviceName);
}
async beforeTask(params){
console.log("前置操作......",this.serviceName);
var self=this;
//订阅任务频道
await this.redisClient.subscribe(this.TASK_CHANNEL);
//频道事件处理函数
this.redisClient.subclient.on("message", async function (channel, message) {
if(channel==self.TASK_CHANNEL){
await self.taskHandle(channel, message);
}
});
await this.subBeforeTask(params);
}
async postTask(params){
async taskHandle(channel, message){
await this.subTaskHandle(channel, message);
}
async subTaskHandle(channel, message){
console.log(channel, message);
}
async subPostTask(params){
console.log("后置操作......",this.serviceName);
}
async postTask(params){
await this.subPostTask();
}
async doTask(params){
try {
await this.beforeTask(params);
if(!this.isThrough){
await this.subDoTask(params);
await this.postTask(params);
if(this.isDaemon){
var http = require('http');
var server = http.createServer((req,res) => {
this.reqHandler(req,res);
})
server.listen(process.env.TASK_PORT);//监听端口号是3000的服务器
console.log("is listenning........on "+process.env.TASK_PORT);
}
}
await this.postTask(params);
//日志记录
console.log(JSON.stringify({
optitle:this.serviceName+",任务成功执行完成",
op:"base/db/task.base.js",
content:"",
clientIp:"",
status:"ok"
}));
} catch (e) {
await this.redisClient.unsubscribe(this.TASK_CHANNEL);
console.log(e);
//日志记录
console.log(JSON.stringify({
optitle:this.serviceName+",任务成功执行完成",
optitle:this.serviceName+",任务执行存在错误",
op:"base/db/task.base.js",
content:"",
clientIp:"",
......@@ -40,6 +63,15 @@ class TaskBase{
}));
}
}
async subReqHandler(req,res){
//设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
res.write('<h1>Node.js</h1>');
}
async reqHandler(req,res){
await this.subReqHandler(req,res);
res.end('Hello World\\n');
}
async subDoTask(params){
throw new Error("请在子类中重写此方法进行操作业务逻辑............................!");
}
......@@ -47,20 +79,19 @@ class TaskBase{
return ClassObj["name"];
}
async apiCallWithAk(url,params){
var acckapp=await this.cacheManager["ApiAccessKeyCache"].cache(settings.appKey);
var acck=acckapp.accessKey;
var acck="task";
//按照访问token
var restResult=await this.restS.execPostWithAK(params,url,acck);
console.log("restResultrestResultrestResultrestResultrestResultrestResultrestResultrestResult");
if(restResult){
if(restResult.status==0){
var resultRtn=restResult.data;
return resultRtn;
}else{
await this.cacheManager["ApiAccessKeyCache"].invalidate(settings.appKey);
return null;
}
return restResult;
}
return null;
}
sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + milliSeconds);
}
}
module.exports=TaskBase;
const TaskBase=require("../../task.base");
const settings=require("../../../../config/settings");
var excel = require('exceljs');
const system = require("../../../system");
class ParseRptTask extends TaskBase{
constructor(){
super(TaskBase.getServiceName(ParseRptTask));
this.cacheData=[];
this.ossC=system.getObject("util.ossClient");
}
async subBeforeTask(params){
console.log("前置操作......",this.serviceName);
//this.isThrough=true;
//console.log(this.cacheManager);
this.isDaemon=true;
}
async subTaskHandle(channel, message){
var x=await this.redisClient.rpop(message);
if(x){
this.cacheData.push(x);
}
setImmediate(async ()=>{
await this.parseXls();
});
}
//读取模板文件
async 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 parseXls(){
var pv=this.cacheData.pop();
if(pv){
var tohandleurls=pv.split("~");
var rptid=tohandleurls[0];
var bid=tohandleurls[1];
var rptDate=tohandleurls[2];
var rptCode=tohandleurls[3];
var urldownload=tohandleurls[4];
//下载文件
var keyindex=urldownload.lastIndexOf("/");
var keystr=urldownload.substring(keyindex+1);
var result= await this.ossC.downfile(keystr);
var localpath="/tmp/"+keystr;
var wb= await this.readxls(localpath);
var ind=rptCode.lastIndexOf("_");
var parsefunc=rptCode;
if(ind>=0){
var st2=rptCode.substring(ind+1);
if(st2=="N"){//是非必传的文件
parsefunc=rptCode.substring(0,ind);
}
}
var parserByCode=require("./rptHandler/"+parsefunc);
var rows=await parserByCode(wb);
console.log(JSON.stringify(rows));
this.apiCallWithAk(settings.fkweb(),{
rptid:rptid,
batchid:bid,
rptdate:rptDate,
rptcode:rptCode,
hisdata:rows
});
this.parseXls();
}
}
async subDoTask(params){
console.log(params);
console.log("TestTask1.....");
}
}
module.exports=ParseRptTask;
\ No newline at end of file
module.exports =(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=10 && rowNumber<=47){
console.log(rowNumber,">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..");
var rowDesc="";
var cacheStr="";
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==2){
if(typeof cell.value=="object"){
cell.value.richText.forEach(element => {
rowDesc+=element.text;
});
}else{
rowDesc+=cell.value;
}
cacheStr=rowDesc;
}
if(colNumber==19 || colNumber==26 || colNumber==36 || colNumber==40){
var colPos=1;
var buildRow={};
if(colNumber==19 || colNumber==26){
rowDesc=rowDesc+"/"+"一般项目";
}
if(colNumber==36 || colNumber==40){
rowDesc=rowDesc+"/"+"即征即退项目";
}
if(colNumber==19){
rowDesc+="/"+"本月数";
colPos=1;
}
if(colNumber==26){
rowDesc+="/"+"本年累计";
colPos=2;
}
if(colNumber==36){
rowDesc+="/"+"本月数";
colPos=3;
}
if(colNumber==40){
rowDesc+="/"+"本年累计";
colPos=4;
}
buildRow.rpttypecode="GT";
buildRow.position=rowNumber+"-"+colPos;
buildRow.desc=rowDesc;
buildRow.valstr=cell.value?cell.value:"0";
insertrows.push(buildRow);
rowDesc=cacheStr;
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports = (async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 13 && rowNumber <= 27) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 11) {
var buildRow = {};
buildRow.rpttypecode = "ITQ";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc + "/本年累计金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
if (rowNumber >= 29 && rowNumber <= 34) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 4) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 11) {
var buildRow = {};
buildRow.rpttypecode = "ITQ";
buildRow.valstr = cell.value;
buildRow.desc = desc + "/本年累计金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
if (rowNumber >= 39 && rowNumber <= 40) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 1) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 5) {
var buildRow = {};
buildRow.rpttypecode = "ITQ";
buildRow.valstr = cell.value;
buildRow.desc = desc;
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
if (colNumber == 8) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 11) {
var buildRow = {};
buildRow.rpttypecode = "ITQ";
buildRow.valstr = cell.value;
buildRow.desc = desc;
buildRow.position = rowNumber + "-" + 2;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 38) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 3) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 4) {
var buildRow = {};
buildRow.rpttypecode = "ITY";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc + "/金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 16) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 3) {
var buildRow = {};
buildRow.rpttypecode = "ITY";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc + "/金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 28) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc = "";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 3) {
var buildRow = {};
buildRow.rpttypecode = "ITY_COST";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc + "/金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 5 && rowNumber <= 41) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 3) {
if (typeof cell.value == "object") {
desc="";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
cachetmp=desc;
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 4) {
desc=cachetmp+"/资产原值";
console.log(desc,">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
}
if (colNumber == 5) {
desc=cachetmp+"/本年折旧、摊销额";
}
if (colNumber == 6) {
desc+="/累计折旧、摊销额";
}
if (colNumber == 7) {
desc=cachetmp+"/资产计税基础";
}
if (colNumber == 8) {
desc=cachetmp+"/税收折旧、摊销额";
}
if (colNumber == 9) {
desc=cachetmp+"/享受加速折旧政策的资产按税收一般规定计算的折旧、摊销额";
}
if (colNumber == 10) {
desc=cachetmp+"/加速折旧、摊销统计额";
}
if (colNumber == 11) {
desc=cachetmp+"/ 累计折旧、摊销额";
}
if (colNumber == 12) {
desc=cachetmp+"/ 纳税调整金额";
}
if (colNumber >=4 && colNumber <=12) {
var colpos=colNumber-3;
var buildRow = {};
buildRow.rpttypecode = "ITY_COST";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc;
buildRow.position = rowNumber + "-" + colpos;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 6 && rowNumber <= 17) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc="";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
cachetmp=desc;
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 3) {
desc=cachetmp+"/年度";
console.log(desc,">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
}
if (colNumber == 4) {
desc=cachetmp+"/当年境内所得额";
}
if (colNumber == 5) {
desc+=cachetmp+"/分立转出的亏损额";
}
if (colNumber == 6) {
desc=cachetmp+"/可弥补年限5年";
}
if (colNumber == 7) {
desc=cachetmp+"/可弥补年限10年";
}
if (colNumber == 8) {
desc=cachetmp+"/弥补亏损企业类型";
}
if (colNumber == 9) {
desc=cachetmp+"/当年亏损额";
}
if (colNumber == 10) {
desc=cachetmp+"/ 当年待弥补的亏损额";
}
if (colNumber == 11) {
desc=cachetmp+"/使用境内所得弥补";
}
if (colNumber == 12) {
desc=cachetmp+"/使用境外所得弥补";
}
if (colNumber == 13) {
desc=cachetmp+"/当年可结转以后年度弥补的亏损额";
}
if (colNumber >=3 && colNumber <=13) {
var colpos=colNumber-2;
var buildRow = {};
buildRow.rpttypecode = "ITY_FILL_LOST";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc;
buildRow.position = rowNumber + "-" + colpos;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 3 && rowNumber <= 28) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc="";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
cachetmp=desc;
}
if (colNumber ==3 ) {
var buildRow = {};
buildRow.rpttypecode = "ITY_INCOME_DESC";
buildRow.timetypecode = "Q";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc+"/金额";
buildRow.position = rowNumber + "-" + 1;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb) => {
var sheet = wb.getWorksheet(1);
var insertrows = [];
sheet.eachRow({ includeEmpty: true }, function (row, rowNumber) {
if (rowNumber >= 5 && rowNumber <= 30) {
row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
if (colNumber == 2) {
if (typeof cell.value == "object") {
desc="";
cell.value.richText.forEach(element => {
desc += element.text;
});
} else {
desc = cell.value;
}
cachetmp=desc;
console.log(desc, ">>>>>>>>>>>>>>>");
}
if (colNumber == 3) {
desc=cachetmp+"/销售费用";
console.log(desc,">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
}
if (colNumber == 4) {
desc=cachetmp+"/其中:境外支付";
}
if (colNumber == 5) {
desc+=cachetmp+"/管理费用";
}
if (colNumber == 6) {
desc=cachetmp+"/其中:境外支付";
}
if (colNumber == 7) {
desc=cachetmp+"/财务费用";
}
if (colNumber == 8) {
desc=cachetmp+"/其中:境外支付";
}
if (colNumber >=3 && colNumber <=8) {
var colpos=colNumber-2;
var buildRow = {};
buildRow.rpttypecode = "ITY_PERIOD";
buildRow.valstr = cell.value?cell.value:"0";
buildRow.desc = desc;
buildRow.position = rowNumber + "-" + colpos;
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=5 && rowNumber<=45){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
desc="资产/"+cell.value;
}
if(colNumber==3 || colNumber==4){
if(desc!="资产/"){
var buildRow={};
buildRow.rpttypecode="NA";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==3){
buildRow.desc=desc+"/期末余额";
buildRow.position=rowNumber+"-"+1;
}else{
buildRow.desc=desc+"/年初余额";
buildRow.position=rowNumber+"-"+2;
}
insertrows.push(buildRow);
}
}
if(colNumber==5){
desc="负债和所有者权益/"+cell.value;
}
if(colNumber==7 || colNumber==8){
if(desc!="负债和所有者权益/"){
buildRow={};
buildRow.rpttypecode="NA";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==7){
buildRow.desc=desc+"/期末余额";
buildRow.position=rowNumber+"-"+3;
}else{
buildRow.desc=desc+"/年初余额";
buildRow.position=rowNumber+"-"+4;
}
insertrows.push(buildRow);
}
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=5 && rowNumber<=38){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
if(typeof cell.value=="object"){
desc="";
cell.value.richText.forEach(element => {
desc+=element.text;
});
}else{
desc=cell.value;
}
console.log(desc,">>>>>>>>>>>>>>>");
}
if(colNumber==3 || colNumber==4){
var buildRow={};
buildRow.rpttypecode="NP";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==3){
buildRow.desc=desc+"/本期金额";
buildRow.position=rowNumber+"-"+1;
}else{
buildRow.desc=desc+"/本年累计金额";
buildRow.position=rowNumber+"-"+2;
}
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
if(!sheet){
return [];
}
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=5 && rowNumber<=36){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
desc="资产/"+cell.value;
console.log(desc,">>>>>>>>>>>>>>>");
}
if(colNumber==3 || colNumber==4){
if(desc!="资产/"){
var buildRow={};
buildRow.rpttypecode="SA";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==3){
buildRow.desc=desc+"/期末余额";
buildRow.position=rowNumber+"-"+1;
}else{
buildRow.desc=desc+"/年初余额";
buildRow.position=rowNumber+"-"+2;
}
insertrows.push(buildRow);
}
}
if(colNumber==5){
desc="负债和所有者权益/"+cell.value;
}
if(colNumber==7 || colNumber==8){
if(desc!="负债和所有者权益/"){
buildRow={};
buildRow.rpttypecode="SA";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==7){
buildRow.desc=desc+"/期末余额";
buildRow.position=rowNumber+"-"+3;
}else{
buildRow.desc=desc+"/年初余额";
buildRow.position=rowNumber+"-"+4;
}
insertrows.push(buildRow);
}
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=5 && rowNumber<=38){
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==1){
if(typeof cell.value=="object"){
desc="";
cell.value.richText.forEach(element => {
desc+=element.text;
});
}else{
desc=cell.value;
}
console.log(desc,">>>>>>>>>>>>>>>");
}
if(colNumber==3 || colNumber==4){
var buildRow={};
buildRow.rpttypecode="SP";
buildRow.valstr=cell.value?cell.value:"0";
if(colNumber==3){
buildRow.desc=desc+"/本年累计金额";
buildRow.position=rowNumber+"-"+1;
}else{
buildRow.desc=desc+"/本月金额";
buildRow.position=rowNumber+"-"+2;
}
insertrows.push(buildRow);
}
});
}
});
return insertrows;
});
\ No newline at end of file
module.exports=(async (wb)=>{
var sheet = wb.getWorksheet(1);
var insertrows=[];
sheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
if(rowNumber>=9 && rowNumber<=33){
console.log(rowNumber,">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..");
var rowDesc="";
var cacheStr="";
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
if(colNumber==2){
if(typeof cell.value=="object"){
cell.value.richText.forEach(element => {
rowDesc+=element.text;
});
}else{
rowDesc+=cell.value;
}
console.log(rowDesc);
cacheStr=rowDesc;
}
if(colNumber==5 || colNumber==6 || colNumber==7 || colNumber==8){
var colPos=1;
var buildRow={};
if(colNumber==5 || colNumber==6){
rowDesc=rowDesc+"/"+"本期数";
}
if(colNumber==7 || colNumber==8){
rowDesc=rowDesc+"/"+"本年累计";
}
if(colNumber==5){
rowDesc+="/"+"货物及劳务";
colPos=1;
}
if(colNumber==6){
rowDesc+="/"+"服务、不动产和无形资产";
colPos=2;
}
if(colNumber==7){
rowDesc+="/"+"货物及劳务";
colPos=3;
}
if(colNumber==8){
rowDesc+="/"+"服务、不动产和无形资产";
colPos=4;
}
buildRow.position=rowNumber+"-"+colPos;
buildRow.desc=rowDesc;
buildRow.valstr=cell.value?cell.value:"0";
insertrows.push(buildRow);
rowDesc=cacheStr;
}
});
}
});
return insertrows;
});
\ No newline at end of file
const TaskBase=require("../../task.base");
class TestTask extends TaskBase{
constructor(){
super(TaskBase.getServiceName(TestTask));
}
async beforeTask(params){
console.log("前置操作......",this.serviceName);
//this.isThrough=true;
//console.log(this.cacheManager);
}
async subDoTask(params){
console.log(params);
console.log("TestTask1.....");
}
}
module.exports=TestTask;
var co = require('co');
var OSS = require('ali-oss');
class OSSClient{
constructor(){
this.client=new OSS({
endpoint: 'https://oss-cn-beijing.aliyuncs.com',
accessKeyId: 'LTAIyAUK8AD04P5S',
accessKeySecret: 'DHmRtFlw2Zr3KaRwUFeiu7FWATnmla'
});
this.client.useBucket('gsb-zc');
}
async downfile(key){
var me=this;
var result=await co(function* () {
var result = yield me.client.get(key, '/tmp/'+key);
return result;
});
return result;
}
async upfile(key,filepath){
var me=this;
var result=await co(function* () {
var result = yield me.client.put(key, filepath);
return result;
})
return result;
}
async putBuffer (key,buf) {
try {
var result = await this.client.put(key, buf);
console.log(result);
return result
} catch (e) {
console.log(e);
return null
}
}
}
module.exports=OSSClient;
// var oss=new OSSClient();
// var key="GT.xlsx"
// oss.upfile(key,"./GT.xlsx").then(function(result){
// console.log(result);
// });
// oss.downfile(key).then(function(result){
// console.log(result);
// });
......@@ -31,100 +31,32 @@ class RedisClient {
return Math.min(options.attempt * 100, 3000);
}
});
// return client.multi().get('foo').execAsync().then(function(res) {
// console.log(res); // => 'bar'
// });
this.client.on("error", function (err) {
console.log("Error " + err);
// //日志记录
// logCtl.error({
// optitle:"redis this.client.on异常:",
// op:"base/utils/redisClient/this.client.on",
// content:err,
// clientIp:""
// });
});
this.subclient = this.client.duplicate();
this.subclient.on("error", function (err) {
console.log("Error " + err);
// //日志记录
// logCtl.error({
// optitle:"redis this.subclient.on异常:",
// op:"base/utils/redisClient/this.subclient.on",
// content:err,
// clientIp:""
// });
});
var self = this;
this.subclient.on("message", async function (channel, message) {
console.log(channel, '------------- redis message ------------------- ');
if (self.taskmanager) {
if (channel == "task") {
if (message == "newtask") {
(async (that) => {
var msg2 = await that.rpop("tasklist");
if (msg2) {
console.log("taskName+++++" + msg2);
var msgs2 = msg2.split("_");
var action = msgs2[0];
var taskName = msgs2[1];
var exp = msgs2[2];
await that.taskmanager.addTask(taskName, exp);
}
})(self)
} else {
(async (msg, that) => {
var msgs = msg.split("_");
var action = msgs[0];
if (action == "delete") {
var taskName = msgs[1];
await that.taskmanager.deleteTask(taskName);
}
})(message, self);
}
}
}
if (self.chatserver) {
if (channel != "task") {
var message = JSON.parse(message);
console.log(message, "------------------------------------------ publish message");
if (channel == "brc") {//如果是广播频道,则发送广播到客户端
self.chatserver.server.emit("brc", message);
} else if (self.chatserver.users[channel]) {
if (message.type) {
self.chatserver.users[channel].client.emit(message.type, message.data);
} else {
//持久化
self.chatserver.users[channel].client.emit("chatmsg", message);
}
}
}
}
});
}
async subscribe(channel, chatserver) {
if (!this.chatserver) {
this.chatserver = chatserver;
}
async subscribe(channel) {
return this.subclient.subscribeAsync(channel);
}
async unsubscribe(channel) {
//this.chatserver=null;
return this.subclient.unsubscribeAsync(channel);
}
async subscribeTask(channel, taskmanager) {
if (!this.taskmanager) {
this.taskmanager = taskmanager;
}
return this.subclient.subscribeAsync(channel);
}
async publish(channel, msg) {
console.log(channel + ":" + msg);
console.log("publish--"+channel + ":" + msg);
return this.client.publishAsync(channel, msg);
}
async notifyConsume(channel, consumetarget,val) {
await this.client.rpush(consumetarget,val);
console.log("publish--"+channel + ":" + consumetarget);
return this.client.publishAsync(channel, consumetarget);
}
async rpush(key, val) {
return this.client.rpushAsync(key, val);
}
......@@ -219,15 +151,7 @@ class RedisClient {
}
}
module.exports = RedisClient;
// var client=new RedisClient();
// (async ()=>{
// await client.rpush("tasklist","xxx");
// await client.rpush("tasklist","xxx");
// var len=await client.llen("tasklist");
// //await client.clearlist("tasklist");
// len=await client.llen("tasklist");
// console.log(len);
// })()
// client.keys('*').then(s=>{
// console.log(s);
......
......@@ -104,6 +104,7 @@ class RestClient{
}
async execPostWithAK(subData, url,ak){
let cmd=this.FetchPostCmdWithAK(subData,url,ak);
console.log(cmd);
var result=await this.exec(cmd,{
maxBuffer:1024*1024*15
});
......
var RC=require("./redisClient.js");
var client=new RC();
(async ()=>{
// var tohandleurls=pv.split("~");
// var rptDate=tohandleurls[0];
// var rptCode=tohandleurls[1];
// var urldownload=tohandleurls[2];
// var mm="1~2019~GT~https://gsb-zc.oss-cn-beijing.aliyuncs.com/GT.xlsx";
// await client.notifyConsume("k8stask","docurls",
await client.rpush("riskmq",JSON.stringify({
key:new Date().toLocaleString(),
content:59+""
}));
})()
\ No newline at end of file
......@@ -3,7 +3,7 @@ var settings = {
host: "43.247.184.32",
port: 8967,
password: "Gongsibao2018",
db: 11,
db: 15,
},
database: function () {
return {
......
......@@ -7,29 +7,18 @@ var ENVINPUT={
REDIS_HOST:process.env.REDIS_HOST,
REDIS_PORT:process.env.REDIS_PORT,
REDIS_PWD:process.env.REDIS_PWD,
DB_NAME:process.env.TASK_DB_NAME,
REDIS_DB:process.env.TASK_REDIS_DB,
DB_NAME:process.env.TASK_DB_NAME,
APP_ENV:process.env.APP_ENV?process.env.APP_ENV:"dev"
};
var settings = {
env:ENVINPUT.APP_ENV,
basepath : path.normalize(path.join(__dirname, '../..')),
port : process.env.NODE_PORT || 3001,
appKey:"0f74f4021cd34189a9fa020be1dfac9c",
paasKey:"wx76a324c5d201d1a4",
secret:"fcf106b9ca5f4cd7ad8b9d34a3f7b29d",
paasUrl:function(){
fkweb:function(){
if(this.env=="dev"){
return "http://p.apps.com:4001/";
return "http://localhost:3003/api/rpt/rptApi/saveRptHistory";
}else {
return "http://open.gongsibao.com/";
}
},
reqTransferurl: function () {
if (this.env == "dev") {
return "http://192.168.18.61:3003/";
} else {
return "http://jiaxiya-service/";
return "http://fktaxctl-service.chaolai/api/rpt/rptApi/saveRptHistory";
}
},
igirlWeburl: function(){
......@@ -41,6 +30,7 @@ var settings = {
},
redis:function(){
if(this.env=="dev"){
console.log("dev.........................................................");
var localsettings=require("./localsettings");
return localsettings.redis;
}else {
......@@ -56,7 +46,7 @@ var settings = {
if(this.env=="dev"){
console.log("===========================");
var localsettings=require("./localsettings");
return localsettings.database();
return localsettings.database;
}else{
return {
dbname : ENVINPUT.DB_NAME,
......
......@@ -4,12 +4,12 @@ const fs=require("fs");
// var dbf=system.getObject("db.common.connection");
// con=dbf.getCon();
var taskName = process.env.TASK_NAME;
var params= process.env.TASK_PARAM;
var params= process.env.TASK_PARAM?process.env.TASK_PARAM:"";
var port=process.env.TASK_PORT;
if(taskName){
var task=system.getObject("task."+taskName);
(async()=>{
await task.doTask(params);
console.log("process over............");
})();
}else{
console.log("not find task,please check ............................");
......
......@@ -9,6 +9,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"ali-oss": "^6.3.1",
"co": "^4.6.0",
"exceljs": "^3.5.0",
"glob": "^7.1.4",
"mysql2": "^1.5.3",
"sequelize": "^4.37.8"
......
// 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