操作界面
這個小系統一共包含4個腳本
sh
功能
備注
onekey.sh
主程式,調用其他程式,對外提供功能
menu.sh
勾畫菜單
function.sh
提供操作資料庫接口
valid.sh
操作mysql資料庫,驗證資料
menu.sh
畫字元菜單
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<code>#!/bin/bash</code>
<code>function</code> <code>print_main_menu(){</code>
<code>cat</code> <code><<eof</code>
<code>#######################################</code>
<code># 1)建立資料庫 #</code>
<code># 2)導入電商端資料 #</code>
<code># 3)建立電商端資料庫并導入資料 #</code>
<code># 4)驗證電商端資料資料有效性 #</code>
<code># 5)删除資料庫 #</code>
<code># 6)列印菜單 #</code>
<code># 7)退出 #</code>
<code>eof</code>
<code>}</code>
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<code>#作者:</code>
<code>#版本:v1.0</code>
<code>#用途:建立mysql 資料庫和資料庫表</code>
<code>#建立資料庫 4個必須參數(user,password,database_name,charset)</code>
<code>function</code> <code>create_database_01(){</code>
<code> </code><code>user=</code><code>"$1"</code>
<code> </code><code>password=</code><code>"$2"</code>
<code> </code><code>ip=</code><code>"$3"</code>
<code> </code><code>datebase_name=</code><code>"$4"</code>
<code> </code><code>database_charset=</code><code>"utf8"</code>
<code> </code><code>mysql -h $ip -u $user -p$password <<eof 2></code><code>/dev/null</code>
<code> </code><code>create database $datebase_name charset=$database_charset;</code>
<code> </code><code>if</code> <code>[[ $? -</code><code>eq</code> <code>0 ]]; </code><code>then</code>
<code> </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"建立成功"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"建立失敗"</code>
<code> </code><code>exit</code> <code>1;</code>
<code> </code><code>fi</code>
<code>#掃描地區目錄中資料庫檔案夾,按順序執行</code>
<code>function</code> <code>init_database_02(){</code>
<code> </code><code>areacode=</code><code>"$5"</code>
<code> </code><code>while</code> <code>read</code> <code>line; </code>
<code> </code><code>do</code>
<code> </code><code>mysql -h $ip -u $user -p$password $datebase_name <$line 2></code><code>/dev/null</code>
<code> </code><code>done</code> <code>< <(</code><code>ls</code> <code>./$areacode/*.sql -rt)</code>
<code> </code><code>echo</code> <code>"往"</code><code>$datebase_name</code><code>"導入資料成功"</code>
<code> </code><code>echo</code> <code>"往"</code><code>$datebase_name</code><code>"導入資料失敗"</code>
<code>#删除資料庫</code>
<code>function</code> <code>drop_database_02(){</code>
<code> </code><code>drop database $datebase_name;</code>
<code> </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"删除成功"</code>
<code> </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"删除失敗"</code>
<code>#讀取參數</code>
<code>function</code> <code>readstdin(){</code>
<code> </code><code>read</code> <code>-p </code><code>"please input ip[localhost]:"</code> <code>ip</code>
<code> </code><code>if</code> <code>[[ -z </code><code>"$ip"</code> <code>]]; </code><code>then</code>
<code> </code><code>ip=</code><code>"localhost"</code>
<code> </code><code>fi</code>
<code> </code><code>read</code> <code>-p </code><code>"please input db login user[root]:"</code> <code>username</code>
<code> </code><code>if</code> <code>[[ -z </code><code>"$username"</code> <code>]]; </code><code>then</code>
<code> </code><code>username=</code><code>"root"</code>
<code> </code><code>read</code> <code>-p </code><code>"please input db login password:"</code> <code>password</code>
<code> </code><code>read</code> <code>-p </code><code>"please input db name:"</code> <code>dbname </code>
valida.sh
<code>dbname=</code><code>"test_jd_dspt_wh"</code>
<code>nsrsbh=</code><code>"420112568371402"</code>
<code>mysql=</code><code>"mysql -h 192.168.15.9 -u root -p123456 $dbname"</code>
<code>#$mysql "use $dbname"</code>
<code>sql="</code><code>select</code> <code>count(nsrsbh) into @v01 from dj_nsrxx </code>
<code>where nsrsbh=$nsrsbh;</code>
<code>select</code> <code>if</code><code>(@v01<=0,</code><code>'納稅人識别号在dj_nsrxx表中沒有記錄'</code><code>,</code>
<code> </code><code>'驗證01[納稅人識别号在dj_nsrxx表中存在]驗證通過!!!'</code><code>);</code>
<code>select</code> <code>dsptbm into @dsptbm from dj_nsrxx where nsrsbh=$nsrsbh;</code>
<code>select</code> <code>pt.dsptmc into @dsptmc from dj_dzswpt_kz kz ,dj_dzswpt pt </code>
<code>where kz.</code><code>id</code> <code>=pt.</code><code>id</code> <code>and kz.dsptbm=@dsptbm;</code>
<code>select</code> <code>if</code><code>(@dsptmc is not null,concat(</code><code>'驗證02通過納稅人電商平台資訊:'</code><code>,@dsptmc),</code><code>'驗證02[納稅人電商平台資訊為空]驗證不通過!!!'</code><code>);</code>
<code>select</code> <code>hy_dm into @vhy from dj_nsrxx where nsrsbh=@vnsrsbh;</code>
<code>select</code> <code>kpzt into @vkpzt from dj_nsrxx where nsrsbh=@vnsrsbh;</code>
<code>select</code> <code>nsrzt_dm into @vnsrzt from dj_nsrxx where nsrsbh=@vnsrsbh;</code>
<code>select</code> <code>if</code><code>(@vhy!=5200,</code><code>'納稅人行業代碼不等于5200'</code><code>,</code><code>'驗證03[納稅人行業代碼等于5200]驗證通過!!!'</code><code>);</code>
<code>select</code> <code>if</code><code>(@vnsrzt!=21,</code><code>'納稅人狀态代碼不等于21'</code><code>,</code><code>'驗證04[納稅人狀态代碼等于21]驗證通過!!!'</code><code>);</code>
<code>select</code> <code>if</code><code>(@vkpzt!=1,</code><code>'納稅人開票狀态不等于1'</code><code>,</code><code>'驗證05[納稅人開票狀态等于1]驗證通過!!!'</code><code>);</code>
<code>select count(1) into @nsrztcount from fp_nsrzt where swjg_dm = (select sz_swjg_dm from dj_nsrxx where nsrsbh = @vnsrsbh) and nsrzt_dm = @vnsrzt;</code>
<code>select</code> <code>if</code><code>(@nsrztcount<=0,</code><code>'納稅人稅務機關[sz_swjg_dm]不存在或狀态與納稅人資訊不比對'</code><code>,</code><code>'驗證06[納稅人所在稅務機關sz_swjg_dm有效]驗證通過!!!'</code><code>);</code>
<code>select</code> <code>'上述所有驗證均通過,可保證訂單可以下發成功'</code><code>;</code>
<code>select</code> <code>count(1) into @vjccount2 from fp_pz pz, fp_nsrjc jc where jc.nsrsbh=pz.nsrsbh and pz.fpzl_dm=jc.fpzl_dm and pz.nsrsbh=@vnsrsbh;</code>
<code>select</code> <code>if</code><code>(@vjccount2<=0,</code><code>'納稅人票種或結存為空'</code><code>,</code><code>'驗證07[納稅人開票結存]驗證通過!!!'</code><code>);</code>
<code>select</code> <code>count(1) into @dymbcount from dm_dymb mb where swjg_dm=(</code><code>select</code> <code>sz_swjg_dm from dj_nsrxx where nsrsbh=@vnsrsbh);</code>
<code>select</code> <code>if</code><code>(@dymbcount<4,</code><code>'所在稅務機關列印模闆數目不足4個'</code><code>,</code><code>'驗證08[列印模闆]驗證通過,不保證模闆路徑有效!!!'</code><code>);</code>
<code>select</code> <code>concat(</code><code>'____'</code><code>,pyfileurl) as </code><code>'列印模闆如下'</code> <code>from dm_dymb mb where swjg_dm=(</code><code>select</code> <code>sz_swjg_dm from dj_nsrxx where nsrsbh=@vnsrsbh);</code>
<code>select</code> <code>qzid into @vqzid from fp_qzcx where nsrsbh=@vnsrsbh;</code>
<code>select</code> <code>if</code><code>(@vqzid is null,</code><code>'納稅人簽章資訊不存在'</code><code>,</code><code>'驗證09[簽章資訊]驗證通過!!!'</code><code>);</code>
<code>";</code>
<code>$mysql -n -l -s -e </code><code>"$sql"</code>