@ -1,14 +1,12 @@
const express = require ( 'express' ) ;
const express = require ( 'express' ) ;
const app = express ( ) ;
const app = express ( ) ;
const mysql = require ( 'mysql' ) ;
const mysql = require ( 'mysql' ) ;
const XLSX = require ( 'xlsx' ) ;
const fs = require ( 'fs' ) ;
const fs = require ( 'fs' ) ;
const { exec } = require ( 'child_process' ) ;
const { exec } = require ( 'child_process' ) ;
const http = require ( 'http' ) ;
const http = require ( 'http' ) ;
const querystring = require ( 'querystring' ) ;
const querystring = require ( 'querystring' ) ;
function dj ( ) {
}
function arrayToCsv ( data ) {
function arrayToCsv ( data ) {
return data . map ( row => row . map ( field => {
return data . map ( row => row . map ( field => {
@ -363,7 +361,7 @@ app.post('/', (req, res) => {
//如果数量发生变化,自动生成出库或进库记录
//如果数量发生变化,自动生成出库或进库记录
if ( postParams . amount != postParams . amounted ) {
if ( postParams . amount != postParams . amounted && postParams . amount != null && postParams . amounted != null ) {
console . log ( postParams . amount - postParams . amounted ) ;
console . log ( postParams . amount - postParams . amounted ) ;
if ( postParams . amount > postParams . amounted ) { //添加进库药品统计
if ( postParams . amount > postParams . amounted ) { //添加进库药品统计
console . log ( 'insert into 进库药品统计 (name,company,phonenumber,price,purprice) select name,company,phonenumber,price,purprice from ' + String ( postParams . type ) + ' where name = ' + '"' + String ( postParams . nameed ) + '"' + ' and price = ' + String ( postParams . priceed ) + ';' ) ;
console . log ( 'insert into 进库药品统计 (name,company,phonenumber,price,purprice) select name,company,phonenumber,price,purprice from ' + String ( postParams . type ) + ' where name = ' + '"' + String ( postParams . nameed ) + '"' + ' and price = ' + String ( postParams . priceed ) + ';' ) ;
@ -1149,6 +1147,10 @@ app.post('/', (req, res) => {
//导出csv数据
//导出csv数据
if ( postParams . wenti == 1002 ) {
if ( postParams . wenti == 1002 ) {
const currentTime = new Date ( ) ;
const localtime = currentTime . toLocaleString ( ) ;
const connection = mysql . createConnection ( {
const connection = mysql . createConnection ( {
host : 'localhost' , // 数据库服务器地址
host : 'localhost' , // 数据库服务器地址
user : 'root' , // 数据库用户名
user : 'root' , // 数据库用户名
@ -1173,7 +1175,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 主页面.csv';
const filePath = 'D:/迁移/ csv/ 主页面.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1196,7 +1198,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 眼科用药.csv';
const filePath = 'D:/迁移/ csv/ 眼科用药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1219,7 +1221,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 骨科用药.csv';
const filePath = 'D:/迁移/ csv/ 骨科用药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1242,7 +1244,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 皮肤科用药.csv';
const filePath = 'D:/迁移/ csv/ 皮肤科用药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1265,7 +1267,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 呼吸系统药.csv';
const filePath = 'D:/迁移/ csv/ 呼吸系统药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1288,7 +1290,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 消化系统药.csv';
const filePath = 'D:/迁移/ csv/ 消化系统药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1311,7 +1313,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 心血管系统药.csv';
const filePath = 'D:/迁移/ csv/ 心血管系统药.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1334,7 +1336,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 出库药品统计.csv';
const filePath = 'D:/迁移/ csv/ 出库药品统计.csv';
// 写入文件
// 写入文件
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
fs . writeFile ( filePath , csvString , { encoding : 'utf8' } , ( err ) => {
@ -1357,7 +1359,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 进库药品统计.csv';
const filePath = 'D:/迁移/ csv/ 进库药品统计.csv';
const Dir = _ _dirname ;
const Dir = _ _dirname ;
console . log ( Dir ) ;
console . log ( Dir ) ;
@ -1382,7 +1384,7 @@ app.post('/', (req, res) => {
csvString = "\uFEFF" + csvString ;
csvString = "\uFEFF" + csvString ;
// 要写入的文件路径(当前文件夹)
// 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/ 总共信息.csv';
const filePath = 'D:/迁移/ csv/ 总共信息.csv';
const Dir = _ _dirname ;
const Dir = _ _dirname ;
console . log ( Dir ) ;
console . log ( Dir ) ;
@ -1392,6 +1394,595 @@ app.post('/', (req, res) => {
console . log ( 'CSV 文件已被保存到:' , filePath ) ;
console . log ( 'CSV 文件已被保存到:' , filePath ) ;
} ) ;
} ) ;
} ) ;
} ) ;
connection . query ( 'Select * from 主页面 ORDER BY id;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品序号' , '药品类型' , '药品名称' , '药品价格' , '药品库存' , '' , '' , '' , '药品序号' , '药品类型' , '药品名称' , '药品价格' , '药品库存' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . id ) , String ( date . type ) , String ( date . name ) , String ( date . price ) , String ( date . amount ) , , , , String ( etad . id ) , String ( etad . type ) , String ( etad . name ) , String ( etad . price ) , String ( etad . amount ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , String ( lasti . id ) , String ( lasti . type ) , String ( lasti . name ) , String ( lasti . price ) , String ( lasti . amount ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 12 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 12 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '药品基本信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
if ( ! worksheet [ '!columnWidths' ] ) worksheet [ '!columnWidths' ] = [ ] ;
worksheet [ '!columnWidths' ] = [ 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 , 40 ] ; // A列到E列的宽度
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/药品基本信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 眼科用药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '眼科用药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/眼科用药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 皮肤科用药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '皮肤科用药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/皮肤科用药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 骨科用药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '骨科用药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/骨科用药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 呼吸系统药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '呼吸系统药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/呼吸系统药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 消化系统药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '消化系统药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/消化系统药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 心血管系统药 ORDER BY amount;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品价格' , '药品库存' , '药品进价' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . price ) , String ( date . amount ) , String ( date . purprice ) , , , , String ( etad . name ) , String ( etad . company ) , String ( etad . phonenumber ) , String ( etad . price ) , String ( etad . amount ) , String ( etad . purprice ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . price ) , String ( lasti . amount ) , String ( lasti . purprice ) ] )
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 14 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '心血管系统药详细信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/心血管系统药详细信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 出库药品统计;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品库存' , '药品价格' , '药品进价' , '药品出库时间' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品库存' , '药品价格' , '药品进价' , '药品出库时间' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . amount ) , String ( date . price ) , String ( date . purprice ) , String ( date . time ) , , , , String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . amount ) , String ( date . price ) , String ( date . purprice ) , String ( date . time ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . amount ) , String ( lasti . price ) , String ( lasti . purprice ) , String ( lasti . time ) ] ) ;
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 16 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 16 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '出库药品记录信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/出库药品记录信息.xlsx' ) ;
} ) ;
connection . query ( 'Select * from 进库药品统计;' , ( error , results , fields ) => {
if ( error ) throw error ;
// 处理查询结果
var ld = [ [ '' ] , [ '' ] , [ '药品名称' , '药品公司' , '药品公司联系电话' , '药品库存' , '药品价格' , '药品进价' , '药品出库时间' , '' , '' , '' , '药品名称' , '药品公司' , '药品公司联系电话' , '药品库存' , '药品价格' , '药品进价' , '药品出库时间' ] ] ;
for ( i = 0 ; i < parseInt ( results . length / 2 ) ; i ++ ) {
const date = results [ i ] ;
const etad = results [ parseInt ( results . length / 2 ) + i ] ;
if ( date != etad ) {
ld . push ( [ String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . amount ) , String ( date . price ) , String ( date . purprice ) , String ( date . time ) , , , , String ( date . name ) , String ( date . company ) , String ( date . phonenumber ) , String ( date . amount ) , String ( date . price ) , String ( date . purprice ) , String ( date . time ) ] ) ;
}
}
const lasti = results [ results . length - 1 ] ;
if ( parseInt ( results . length ) % 2 == 1 ) {
ld . push ( [ , , , , , , , , , , String ( lasti . name ) , String ( lasti . company ) , String ( lasti . phonenumber ) , String ( lasti . amount ) , String ( lasti . price ) , String ( lasti . purprice ) , String ( lasti . time ) ] ) ;
}
console . log ( ld ) ;
// 创建一个新的工作簿
const workbook = XLSX . utils . book _new ( ) ;
// 创建一个新的工作表
var worksheet = XLSX . utils . aoa _to _sheet ( ld ) ;
// 合并第一行的前五个单元格
const mergeRange = {
s : { c : 0 , r : 0 } , // 起始单元格: 列0( A列) , 行0
e : { c : 16 , r : 0 } // 结束单元格: 列4( E列) , 行0
} ;
const mergetime = {
s : { c : 0 , r : 1 } , // 起始单元格: 列0( A列) , 行0
e : { c : 16 , r : 1 } // 结束单元格: 列4( E列) , 行0
} ;
// 设置合并单元格的样式(居中)
const alignment = {
horizontal : 'center' , // 水平居中
vertical : 'center' // 垂直居中
} ;
// 合并单元格
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergeRange ) ;
if ( ! worksheet [ '!merges' ] ) worksheet [ '!merges' ] = [ ] ;
worksheet [ '!merges' ] . push ( mergetime ) ;
// 为合并的单元格设置值
worksheet [ 'A1' ] = { t : 's' , v : '进库药品记录信息' , s : { alignment } } ;
worksheet [ 'A2' ] = { t : 's' , v : '导出时间:' + localtime , s : { alignment } } ;
XLSX . utils . book _append _sheet ( workbook , worksheet , 'Sheet1' ) ;
// 将工作簿写入文件
XLSX . writeFile ( workbook , 'D:/迁移/xlsx/进库药品记录信息.xlsx' ) ;
} ) ;
//关闭连接
//关闭连接
connection . end ( ) ;
connection . end ( ) ;
@ -1775,12 +2366,6 @@ app.post('/', (req, res) => {
}
}
// res.writeHead(200, {'Content-Type': 'application/json'});
// const responseData = {name:'POST request received'} ;
// // 发送响应数据
// res.end(JSON.stringify(responseData));
// console.log(JSON.stringify(responseData));
} ) ;
} ) ;
}
}
} ) ;
} ) ;