af1f46a440f904c7046bb3e31df4a21eeb048b97.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. // 获取用户部门
  2. var dept_id = top.com.sinosoft.lz.system.user.LoginInfo.getCorp_ids();
  3. // 获取公司
  4. var comp_id=top.com.sinosoft.lz.system.user.LoginInfo.getParent_ids();
  5. var mycol1;
  6. // 获取用户Id
  7. var user_id = top.com.sinosoft.lz.system.user.LoginInfo.getUser_id();
  8. //获取用户角色
  9. var role_id = top.com.sinosoft.lz.system.user.LoginInfo.getRoleids();
  10. var dept_name = top.com.sinosoft.lz.system.user.LoginInfo.getCorp_names();
  11. var mycol;
  12. var testData;
  13. //初始化时的报表类型
  14. var report_types = "";
  15. //初始化下拉框
  16. var selecta ="";
  17. var require="";
  18. //初始化方法
  19. $(function(){
  20. getRole(getRole_id(role_id));
  21. getColumns();
  22. getRows($("#sel").val());
  23. init(testData);
  24. getReportNumber();
  25. $("#add").text(dept_name+mycol1+"导入");
  26. });
  27. // 初始化表格
  28. function init(data) {
  29. g = $("#maingrid").quiGrid({
  30. columns : mycol,
  31. data : data,
  32. usePager:false,
  33. sortName : 'id',
  34. rownumbers : true,
  35. enabledSort:false,
  36. enabledEdit : true, // 编辑用
  37. width : "100%",
  38. multihead : true,
  39. onBeforeEdit:onBeforeEdit,
  40. onAfterEdit:onAfterEdit
  41. });
  42. }
  43. var oldVal;
  44. function onBeforeEdit(e){
  45. var len = g.getData().length;
  46. if(e.rowindex==len-1){
  47. top.Dialog.alert("此行不能编辑",null,null,null,-1);
  48. return false;
  49. }
  50. if(e.value!=null&&e.value!=""){
  51. oldVal = e.value;
  52. }else{
  53. oldVal = 0;
  54. }
  55. }
  56. var num1 = 0;
  57. function onAfterEdit(e){
  58. if(e.column.isCount!=0){
  59. return false;
  60. }
  61. var size=g.getData().length;
  62. if(e.value==null||e.value==""){
  63. e.value="0";
  64. flag = false;
  65. }
  66. if(e.value!=null&&e.value!=""&&e.value!="0"){
  67. flag = true;
  68. }
  69. var updatecolumn=e.column.name;
  70. num1=g.getRow(size-1)[updatecolumn]==""?"0":g.getRow(size-1)[updatecolumn];
  71. num1=Math.round((parseFloat(num1)+parseFloat(e.value)-oldVal)*100)/100;
  72. row=g.getRow(size-1);
  73. row[updatecolumn]=num1;
  74. g.updateRow(size-1,row);
  75. //取消事件冒泡
  76. return false;
  77. }
  78. //返回主页面
  79. function goback(){
  80. window.parent.document.getElementById("frmright").setAttribute("src", "/nwyj/page/business/em/report/Report_main.jsp");
  81. }
  82. // 获取(表头)
  83. function getColumns() {
  84. var urls = $.pathname()
  85. + "/ws/xianlutingyun/XianlutingyunService/getEditColumns";
  86. $.ajax({
  87. url : urls,
  88. type : 'post',
  89. timeout : 15000,
  90. async : false,
  91. data : {
  92. "report_type" : getType(getRole_id(role_id)),
  93. },
  94. dataType : 'text',
  95. success : function(data) {
  96. mycol =eval('('+ data+')');
  97. mycol1=eval('('+data+')')[0].display;
  98. },
  99. error : function(e) {
  100. $.messager.alert('查询失败!', '访问服务失败!', 'error');
  101. }
  102. });
  103. }
  104. // 获取行
  105. function getRows(value) {
  106. var urls = $.pathname()
  107. + "/ws/xianlutingyun/XianlutingyunService/getRowName";
  108. $.ajax({
  109. url : urls,
  110. type : 'post',
  111. timeout : 15000,
  112. async : false,
  113. data : {
  114. comp_id : dept_id,
  115. report_type:value
  116. },
  117. dataType : 'json',
  118. success : function(data) {
  119. testData = data;
  120. },
  121. error : function(e) {
  122. $.messager.alert('查询行失败!', '访问服务失败!', 'error');
  123. }
  124. });
  125. }
  126. // 根据下拉框的选择,动态获取表头
  127. function change() {
  128. var val = $("#sel").val();
  129. var urls = $.pathname()
  130. + "/ws/xianlutingyun/XianlutingyunService/getEditColumns";
  131. $.ajax({
  132. url : urls,
  133. type : 'post',
  134. timeout : 15000,
  135. async : false,
  136. data : {
  137. "report_type" : val,
  138. },
  139. dataType : 'text',
  140. success : function(data) {
  141. mycol = eval('('+data+')');
  142. mycol1 = eval('('+data+')')[0].display;
  143. },
  144. error : function(e) {
  145. $.messager.alert('查询失败!', '访问服务失败!', 'error');
  146. }
  147. });
  148. g.endEdit();
  149. getRows(val);
  150. init(testData);
  151. changeRequireByVal(val);
  152. $("#add").text("新增"+dept_name+mycol1);
  153. }
  154. //导入后保存
  155. // 新增报表
  156. function save() {
  157. g.endEdit();
  158. var value =$("#sel").val();
  159. var sel = $("#warning").val();
  160. var urls = $.pathname() + "/ws/xianlutingyun/XianlutingyunService/create";
  161. var row = g.getData();
  162. var json=JSON.stringify(row);
  163. $.ajax({
  164. url : urls,
  165. type : 'post',
  166. timeout : 15000,
  167. async : false,
  168. data : {
  169. json:json,
  170. user_id:user_id,
  171. report_type:value,
  172. comp_id : dept_id,
  173. report_id:sel
  174. },
  175. dataType : 'json',
  176. success : function(data) {
  177. if(data.Msg.sucsess==true){
  178. top.Dialog.alert("新增报表成功");
  179. goback();
  180. }else{
  181. top.Dialog.alert("新增报表失败");
  182. }
  183. },
  184. error : function(e) {
  185. $.messager.alert('保存报表失败!', '访问服务失败!', 'error');
  186. }
  187. });
  188. }
  189. function clear_msg(){
  190. top.Dialog.confirm("确定要重置?填写的信息会全部清除,请慎重选择|重置", function() {
  191. g.endEdit();
  192. getRows($("#sel").val());
  193. init(testData);
  194. });
  195. }
  196. //根据用户登录时的不同角色初始化下拉框
  197. function getRole(id){
  198. if(id=="R002105430210"){
  199. selecta = {"list":[
  200. {"value":"1","key":"线路停运及恢复情况表"},
  201. {"value":"2","key":"变电站停运及恢复情况表"}]};
  202. $("#requires").append("<span>① 单位:受灾地市局</span> &nbsp;<br>" +
  203. "<span>② 跳闸停电(条数):相应电压等级线路跳闸的总条数,不包含重合闸成功的跳闸线路条数,且同一条线路多次跳闸,只统计为一个跳闸条数。</span><br>"+
  204. "<span>③ 未恢复:填写相应电压等级线路跳闸后,未恢复成热备用状态的线路条数。</span><br>"+
  205. "<span>④ 累计跳闸(条次):相应电压等级线路跳闸的总条次数,包含重合闸成功的跳闸线路条数,且同一条线路多次跳闸,统计为多个跳闸条次数。</span><br>"+
  206. "<span>⑤ 备注:填写未恢复线路名称。</span><br>"+
  207. "<span>⑥ 损失负荷:电网因灾损失的负荷数。电网发生故障后,在线路重合闸及备用电源自投装置动作完成后系统未恢复的负荷,包括电网减供负荷和低压脱扣负荷。</span><br>"+
  208. "<span>⑦ 损失占比:损失负荷数占同期电网应有负荷的百分比。</span>");
  209. $("#changerequire").append("<span>① 单位:受灾地市局</span><br>"+
  210. "<span>② 累计停运(座):灾害过程中发生停运变电站的总座数。</span><br>"+
  211. "<span>③ 未恢复(座):截止当前时间未恢复变电站的总座数。</span><br>"+
  212. "<span>④ 备注:发生停运事件的变电站名称及目前状态。例如:XX变电站(已恢复/未恢复)</span>"
  213. );
  214. }
  215. if(id=="R002105430213"){
  216. selecta = {"list":[
  217. {"value":"8","key":"应急资源情况表"}]};
  218. $("#requires").append("<span>① 单位名称:受灾地市局。</span><br>"+
  219. "<span>② 抢修人员:填写当日投入抢修人数的最大值。</span><br>"+
  220. "<span>③ 抢修车辆:填写当日投入抢修车辆数的最大值。</span><br>"+
  221. "<span>④ 应急发电车:填写当日投入应急发电车数量的最大值。</span><br>"+
  222. "<span>⑤ 应急发电机:填写当日投入应急发电机数量的最大值。</span><br>"+
  223. "<span>⑥ 备注:台风登陆期间不用填报。</span>"
  224. );
  225. }
  226. if(id=="R002105430211"){
  227. selecta = {"list":[
  228. {"value":"3","key":"线路倒杆情况统计表"},
  229. {"value":"4","key":"线路及配变受损情况"}]};
  230. $("#requires").append("<span>① 单位:受灾地市局。</span><br>"+
  231. "<span>② 备注:台风登陆期间不用填报。</span><br>"+
  232. "<span>② 备注:台风登陆期间不用填报。</span><br>"+
  233. "<span>③ 其他信息填写说明如下:</span>"
  234. );
  235. $("#changerequire").append("<span>① 单位:受灾地市局</span><br>"+
  236. "<span>② 线路受损:按单相导路(地线)受损长度统计,统计距离为断线或者整条线路损毁时的档距。</span><br>"+
  237. "<span>③ 线路未恢复:截至当前仍未修复的受损线路长度。</span><br>"+
  238. "<span>④ 配变受损:发生损害需要修复或更换的配变台数。</span><br>"+
  239. "<span>⑤ 配变未恢复:截至当前仍未修复或更换的配变台数。</span><br>"+
  240. "<span>⑥ 备注:台风登陆期间不用填报。</span>"
  241. );
  242. }
  243. if(id=="R002105430212"){
  244. selecta = {"list":[
  245. {"value":"5","key":"供电损失及客户停电情况表"},
  246. {"value":"6","key":"行政区域停电情况表"}]};
  247. $("#requires").append("<span>① 单位:受灾地市局。</span><br>"+
  248. "<span>② 台区:一个配变所供负荷区域计作一个台区。</span><br>"+
  249. "<span>③ 用户数:1)线路重复跳闸时客户停电户数不累加统计,即线路重复跳闸时,停电户数只统计一次。2)线路跳闸重合成功的客户数不统计。</span><br>"+
  250. "<span>④ 未恢复数:因灾发生停电的用户截至当前还未恢复供电的用户数。</span><br>"+
  251. "<span>⑤停电占比:停电占比=停电台区(用户)数÷当地台区(用户)总数。</span><br>"+
  252. "<span>⑥损失电量:灾害期间损失电量的总数。</span>");
  253. $("#changerequire").append("<span>① 单位:受灾地市局。</span><br>"+
  254. "<span>② 累计全停:灾害发生以来发生全县(区)、全乡镇、全行政村全停的个数。</span><br>"+
  255. "<span>③ 当前全停:当前仍存在全县(区)、全乡镇、全行政村全停的个数。</span><br>"+
  256. "<span>④ 备注:台风登陆期间不用填报。</span>"
  257. );
  258. }
  259. $("#sel").data("data",selecta);
  260. $("#sel").render();
  261. }
  262. //根据用户角色登录,返回report_type 的默认值
  263. function getType(id){
  264. if(id=="R002105430210"){
  265. report_types="1";
  266. }
  267. if(id=="R002105430213"){
  268. report_types="8";
  269. }
  270. if(id=="R002105430211"){
  271. report_types="3";
  272. }
  273. if(id=="R002105430212"){
  274. report_types="5";
  275. }
  276. return report_types;
  277. }
  278. //获取预警或响应编号
  279. function getReportNumber(){
  280. var url = $.pathname() + '/ws/xianlutingyun/XianlutingyunService/getReportNumber/';
  281. $.post(url,{dept_id :dept_id},function(data){
  282. $("#warning").data("data",data);
  283. $("#warning").render();
  284. }, "json");
  285. }
  286. //通过选择预警或响应编号来显示报表计划要求
  287. function getPlan(){
  288. g.endEdit();
  289. $("#sysDept").html("");
  290. $("#equipmentDept").html("");
  291. $("#markingDept").html("");
  292. $("#safeyDept").html("");
  293. var number = $("#warning").val();
  294. if(number){
  295. var datas = getPlanRequires(number);
  296. $("#star_time").html(datas.rows[0].START_TIME);
  297. $("#end_time").html(datas.rows[0].END_TIME);
  298. $("#type").html(datas.rows[0].FILL_IN_SCHEDULE);
  299. if(datas.rows[0].FILL_IN_SCHEDULE=="周期性"){
  300. $("#round").html(datas.rows[0].ROUND_TIME);
  301. $(".round_time").show();
  302. $(".temporary_time").hide();
  303. }
  304. if(datas.rows[0].FILL_IN_SCHEDULE=="临时性"){
  305. $("#temporary").html(datas.rows[0].TEMPORARY_TIME);
  306. $(".temporary_time").show();
  307. $(".round_time").hide();
  308. }
  309. $("#showplan").show();
  310. $("#showRequire").show();
  311. $("#showRequire").find("a").html("隐藏报表填报要求");
  312. var message = datas.rows[0].DEPT_NAME.split(":");
  313. var planMessage = message[1].split("|");
  314. var depts="";
  315. for(var i=0;i<planMessage.length;i++){
  316. depts = planMessage[i].split(";");
  317. if(depts[0]=="R002105430210"){
  318. $("#sysDept").html(depts[1]);
  319. }
  320. if(depts[0]=="R002105430211"){
  321. $("#equipmentDept").html(depts[1]);
  322. }
  323. if(depts[0]=="R002105430212"){
  324. $("#markingDept").html(depts[1]);
  325. }
  326. if(depts[0]=="R002105430213"){
  327. $("#safeyDept").html(depts[1]);
  328. }
  329. }
  330. }else{
  331. $("#showplan").hide();
  332. $("#showRequire").hide();
  333. $("#showRequire").find("a").html("隐藏报表填报要求");
  334. }
  335. }
  336. function getPlanRequires(value){
  337. $.ajax({
  338. url : $.pathname() + '/ws/getPlanRequires/getPlanRequireService/getPlanRequire/',
  339. type : 'post',
  340. timeout : 15000,
  341. async : false,
  342. data : {
  343. comp:dept_id,
  344. warning_number:value,
  345. },
  346. dataType : 'json',
  347. success : function(data) {
  348. require = data;
  349. },
  350. error : function(e) {
  351. $.messager.alert('查询报表计划失败!', '访问服务失败!', 'error');
  352. }
  353. });
  354. return require;
  355. }
  356. function showTable(){
  357. $("#showplan").toggle();
  358. var show = $("#showplan").css("display");
  359. if(show=="none"){
  360. $("#showRequire").find("a").html("显示报表填报要求");
  361. }else{
  362. $("#showRequire").find("a").html("隐藏报表填报要求");
  363. }
  364. }
  365. function getModels(){
  366. var sel = $("#sel").val();
  367. var Columns = findColumn(sel);
  368. var columns_sub = Columns.substring(0, Columns.lastIndexOf(","));
  369. var condition = '1=1';
  370. var sql = {
  371. "flag":"muban",
  372. "listId" :findId(sel),
  373. "condition":condition,
  374. "id":dept_id,
  375. "report_type":sel
  376. };
  377. baoBiaoExcelExport(findId(sel),sql,mycol1+"模版",['FD_OBJECTID','REPORT_ID','TEST','COMP_ID',columns_sub]);
  378. }
  379. //根据选中记录查找classId
  380. function findId(type){
  381. var classId="";
  382. $.ajax({
  383. url : $.pathname() + "/ws/getReportId/ExportExcelService/getReportClassId",
  384. type : 'post',
  385. timeout : 15000,
  386. async : false,
  387. data : {
  388. report_type:type
  389. },
  390. dataType : 'json',
  391. success : function(data) {
  392. classId = data.rows[0].CLASSID;
  393. },
  394. error : function(e) {
  395. $.messager.alert('获取ID失败!', '访问服务失败!', 'error');
  396. }
  397. });
  398. return classId;
  399. }
  400. //过滤没用的列
  401. function findColumn(type){
  402. //把首次导入的清除
  403. var column="";
  404. $.ajax({
  405. url : $.pathname() + "/ws/getReportId/ExportExcelService/getColumn",
  406. type : 'post',
  407. timeout : 15000,
  408. async : false,
  409. data : {
  410. report_type:type
  411. },
  412. dataType : 'json',
  413. success : function(data) {
  414. for(var i=0;i<data.rows.length;i++){
  415. column += data.rows[i].TABLE_COLUMN+",";
  416. }
  417. },
  418. error : function(e) {
  419. $.messager.alert('获取列失败!', '访问服务失败!', 'error');
  420. }
  421. });
  422. return column;
  423. }
  424. function changeRequireByVal(value){
  425. if(value=="1"){
  426. $("#requires").show();
  427. $("#changerequire").hide();
  428. }
  429. if(value=="2"){
  430. $("#requires").hide();
  431. $("#changerequire").show();
  432. }
  433. if(value=="3"){
  434. $("#changerequire").hide();
  435. $("#requires").show();
  436. }
  437. if(value=="4"){
  438. $("#requires").hide();
  439. $("#changerequire").show();
  440. }
  441. if(value=="5"){
  442. $("#changerequire").hide();
  443. $("#requires").show();
  444. }
  445. if(value=="6"){
  446. $("#requires").hide();
  447. $("#changerequire").show();
  448. }
  449. if(value=="8"){
  450. $("#changerequire").hide();
  451. $("#requires").show();
  452. }
  453. }
  454. function getRole_id(id){
  455. if(id.indexOf(",")!=-1){
  456. var role_ids = id.split(",");
  457. for(var i=0;i<role_ids.length;i++){
  458. if(role_ids[i]=="R002105430210"||role_ids[i]=="R002105430211"||role_ids[i]=="R002105430212"||role_ids[i]=="R002105430213"){
  459. return role_ids[i];
  460. }
  461. }
  462. }else{
  463. return id;
  464. }
  465. }
  466. window.onload = function (){
  467. $(".selectbox").attr("readonly","readonly");
  468. };