AnnualPlanController.java 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298
  1. package com.zhcs.dt.controller.information.annualPlan;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.annotation.Resource;
  11. import javax.servlet.http.HttpServletRequest;
  12. import net.sf.json.JSONArray;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.ui.Model;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.ResponseBody;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import org.springframework.web.servlet.ModelAndView;
  19. import com.alibaba.fastjson.JSON;
  20. import com.zhcs.dt.controller.base.BaseController;
  21. import com.zhcs.dt.entity.Page;
  22. import com.zhcs.dt.service.information.annualPlan.AnnualPlanManager;
  23. import com.zhcs.dt.service.information.annualPlan.ImportDoc;
  24. import com.zhcs.dt.util.AppUtil;
  25. import com.zhcs.dt.util.Jurisdiction;
  26. import com.zhcs.dt.util.PageData;
  27. import com.zhcs.dt.util.Tools;
  28. /**
  29. * 类名称:年度养护计划
  30. * 创建人:Yuanf
  31. * 创建时间:2018-11-12
  32. */
  33. @Controller
  34. @RequestMapping(value="/annualPlan")
  35. class AnnualPlanController extends BaseController {
  36. //String menuUrl = "annualPlan/list.do"; //菜单地址(权限用)
  37. @Resource(name="annualPlanService")
  38. private AnnualPlanManager annualPlanService;
  39. List<String> newTables = new ArrayList<String>();
  40. String[] tabls = {"annual_plan_list","annual_plan_comp_list","annual_report_list","annual_table_list",
  41. "highway_prevention_project_dettable","highway_repair_project_dettable","highway_test_project_dettable",
  42. "highway_scientific_project_dettable","highway_equipment_overhaul_project_dettable","highway_special_project_dettable",
  43. "highway_technica_statable","highway_traiffcinfo_sumtable","highway_daily_plan_statable",
  44. "highway_prevention_project_dettable_cost","highway_repair_project_dettable_cost","highway_scientific_project_dettable_cost",
  45. "highway_special_project_dettable_cost","highway_test_project_dettable_cost","modify_info_record",
  46. "highway_emergency_project_dettable","highway_emergency_project_dettable_cost",
  47. "highway_reserve_fees_sumtable","highway_reserve_fees_sumtable_total",
  48. "monthly_daily_completion","monthly_daily_report_list",
  49. "monthly_emergency_completion","monthly_report_list",
  50. "monthly_equipment_overhaul_completion","monthly_equipment_overhaul_report_list",
  51. "monthly_prevention_completion","monthly_prevention_report_list",
  52. "monthly_repair_completion","monthly_repair_report_list",
  53. "monthly_scientific_project_completion","monthly_scientific_report_list",
  54. "monthly_special_completion","monthly_special_report_list",
  55. "monthly_test_project_completion","monthly_test_report_list","monthly_plan_record",
  56. "highway_technica_statable","highway_traiffcinfo_sumtable","highway_quality_goals_table"};
  57. /**列表
  58. * @param page
  59. * @throws Exception
  60. */
  61. @RequestMapping(value="/list")
  62. public ModelAndView list(Page page) throws Exception{
  63. logBefore(logger, Jurisdiction.getUsername()+"年度养护计划");
  64. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  65. ModelAndView mv = this.getModelAndView();
  66. PageData pd = new PageData();
  67. //pd.put("USERNAME", Jurisdiction.getUsername().toString());
  68. //通过username获取对应的公司和路段,控股集团管理员只可以看到状态为“待审批”和“已完成”的计划,路公司管理员和路段管理员可以看到本公司所有计划,admin没有权限控制
  69. PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
  70. System.out.println("^^^^^^^^^^^^^^COMPANY:"+userInfo.get("COMPANY").toString());
  71. //通过ROLE_ID获取角色
  72. String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
  73. pd = this.getPageData();
  74. String keywords = pd.getString("keywords"); //关键词检索条件
  75. if(null != keywords && !"".equals(keywords)){
  76. pd.put("keywords", keywords.trim());
  77. }
  78. List<PageData> varList = new ArrayList<PageData>();
  79. if(!"控股集团管理员".equalsIgnoreCase(roleName)){
  80. pd.put("COMPANY", userInfo.get("COMPANY"));
  81. varList = annualPlanService.getPlanList(pd); //列出年度计划列表
  82. mv.setViewName("information/annualPlan/annualPlan_list");
  83. mv.addObject("varList", varList);
  84. }else{
  85. //varList = annualPlanService.getKGPlanList(pd); //列出年度计划列表
  86. List<String> yearList = annualPlanService.getKGPlanYearList(pd); //列出状态不为编制中、新建的年度计划列表
  87. mv.setViewName("information/annualPlan/annualPlan_kg_list");
  88. mv.addObject("varList", yearList);
  89. }
  90. mv.addObject("pd", pd);
  91. mv.addObject("userInfo", userInfo);
  92. mv.addObject("roleName", roleName);
  93. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  94. return mv;
  95. }
  96. /**显示对应的报表列表
  97. * @param
  98. * @throws Exception
  99. */
  100. @RequestMapping(value="/goReport")
  101. public ModelAndView goReport(Model model)throws Exception{
  102. ModelAndView mv = this.getModelAndView();
  103. PageData pd = new PageData();
  104. pd = this.getPageData();
  105. //List<PageData> varList = annualPlanService.findTableById(pd); //获取对应的表格列表
  106. List<PageData> varList = annualPlanService.findReportById(pd); //获取对应的报表列表
  107. JSONArray arr = JSONArray.fromObject(varList);
  108. String json = arr.toString();
  109. // json = json.replaceAll("MENU_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("MENU_NAME", "name").replaceAll("subMenu", "nodes").replaceAll("hasMenu", "checked").replaceAll("MENU_URL", "url");
  110. model.addAttribute("zTreeNodes", json);
  111. // mv.addObject("MENU_ID",MENU_ID);
  112. mv.setViewName("information/annualPlan/annualPlan_report_list");
  113. mv.addObject("varList", varList);
  114. mv.addObject("pd", pd);
  115. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  116. return mv;
  117. }
  118. /**显示对应的子表格列表
  119. * @param
  120. * @throws Exception
  121. */
  122. @RequestMapping(value="/goSonTable")
  123. public ModelAndView goSonTable()throws Exception{
  124. ModelAndView mv = this.getModelAndView();
  125. PageData pd = new PageData();
  126. pd = this.getPageData();
  127. List<PageData> varList = annualPlanService.findTableById(pd); //获取对应的表格列表
  128. mv.setViewName("information/annualPlan/annualPlan_list");
  129. mv.addObject("varList", varList);
  130. mv.addObject("pd", pd);
  131. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  132. return mv;
  133. }
  134. /**查询显示报告列表和表格列表
  135. * @param
  136. * @throws Exception
  137. */
  138. @RequestMapping(value="/showReportAndTable")
  139. public ModelAndView showReportAndTable(Model model)throws Exception{
  140. ModelAndView mv = this.getModelAndView();
  141. PageData pd = new PageData();
  142. pd = this.getPageData();
  143. //String planID = pd.getString("ID");
  144. String planStatus = annualPlanService.getPlanStatus(pd); //根据year\company_id查询当前plan状态
  145. pd.put("STATUS", planStatus);
  146. List<PageData> varList = annualPlanService.showReportList(pd); //根据PLANID读取相关report信息
  147. if(pd.get("ROLENAME").toString().equalsIgnoreCase("路段管理员")){
  148. List<PageData> reportList = new ArrayList<PageData>();
  149. String[] roads = pd.get("ROAD").toString().split(",");
  150. for(int i = 0; i < roads.length; i++){
  151. for(PageData reportInfo : varList){
  152. if(reportInfo.get("ROAD_NAME") != null){
  153. if(reportInfo.get("ROAD_NAME").toString().trim().equalsIgnoreCase(roads[i].trim())){
  154. reportList.add(reportInfo);
  155. }
  156. }
  157. }
  158. }
  159. varList = reportList;
  160. }else{
  161. List<PageData> subReportList = new ArrayList<PageData>();
  162. for(PageData var : varList){
  163. if(var.get("ROAD_ID") == null){
  164. mv.addObject("reportInfo", var);
  165. }else{
  166. subReportList.add(var);
  167. }
  168. }
  169. varList = subReportList;
  170. }
  171. // JSONArray arr = JSONArray.fromObject(varList);
  172. // String json = arr.toString();
  173. // json = json.replaceAll("ID", "id").replaceAll("PLANID", "pId").replaceAll("NAME", "name");
  174. // model.addAttribute("zTreeNodes", json);
  175. String reportid = null;
  176. String reportName = null;
  177. //用于显示界面右边表格信息
  178. List<PageData> vartableList = null;
  179. if(pd.get("REPORTID") != null){
  180. for(PageData var : varList){
  181. if(var.get("ID").toString().equalsIgnoreCase(pd.get("REPORTID").toString())){
  182. reportName = var.get("NAME").toString();
  183. }
  184. }
  185. vartableList = annualPlanService.getTableList(pd); //根据reportID读取相关table信息
  186. mv.addObject("selectReport", reportName);
  187. }else{
  188. for(PageData reportpd : varList){
  189. reportid = reportpd.getString("ID");
  190. reportName = reportpd.getString("NAME");
  191. if(reportName.indexOf("年度养护计划分报告") > 0){
  192. pd.put("REPORTID", reportid);
  193. pd.put("ROAD_ID", reportpd.get("ROAD_ID"));
  194. pd.put("ROAD", reportpd.get("ROAD_NAME"));
  195. vartableList = annualPlanService.getTableList(pd); //根据reportID读取相关table信息
  196. mv.addObject("selectReport", reportName);
  197. Object rcStatus = "编制中";
  198. for(PageData tpd : vartableList){
  199. if(tpd.get("NAME") != null){
  200. if(tpd.get("NAME").toString().contains("日常养护计划统计表")){
  201. rcStatus = tpd.get("STATUS");
  202. mv.addObject("rcStatus", rcStatus);
  203. }
  204. }
  205. }
  206. break;
  207. }
  208. }
  209. }
  210. mv.setViewName("information/annualPlan/annualPlan_report_list");
  211. mv.addObject("varList", varList);
  212. mv.addObject("vartableList", vartableList);
  213. mv.addObject("pd", pd);
  214. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  215. return mv;
  216. }
  217. /**查询显示表格列表
  218. * @param
  219. * @throws Exception
  220. */
  221. @RequestMapping(value="/getTableListInfoReport")
  222. @ResponseBody
  223. public Object getTableListInfoReport()throws Exception{
  224. Map<String,Object> map = new HashMap<String,Object>();
  225. String errInfo = "success";
  226. PageData pd = new PageData();
  227. pd = this.getPageData();
  228. List<PageData> vartableList = annualPlanService.getTableList(pd); //根据reportID读取相关table信息
  229. List<PageData> pdList = new ArrayList<PageData>();
  230. PageData picpd = new PageData();
  231. for(PageData tpd :vartableList){
  232. PageData pdf = new PageData();
  233. pdf.put("NAME", tpd.get("NAME"));
  234. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  235. picpd.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  236. pdf.put("COMPANY_NAME", tpd.get("COMPANY_NAME"));
  237. pdf.put("YEAR", tpd.get("YEAR"));
  238. picpd.put("YEAR", tpd.get("YEAR"));
  239. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  240. pdf.put("ROAD_NAME", tpd.get("ROAD_NAME"));
  241. pdf.put("TYPE", tpd.get("TYPE"));
  242. pdf.put("CTIME", tpd.get("CTIME"));
  243. pdf.put("MTIME", tpd.get("MTIME"));
  244. pdf.put("STATUS", tpd.get("STATUS"));
  245. pdList.add(pdf);
  246. }
  247. map.put("list", pdList);
  248. map.put("result", errInfo); //返回结果
  249. List<PageData> picList = annualPlanService.getPictureList(picpd); //根据reportID读取相关table信息
  250. map.put("picList", picList);
  251. return AppUtil.returnObject(new PageData(), map);
  252. }
  253. /**查询显示表格列表
  254. * @param
  255. * @throws Exception
  256. * zhangyn 2019.3.20修改
  257. */
  258. @RequestMapping(value="/getTableListInfo")
  259. @ResponseBody
  260. public Object getTableListInfo()throws Exception{
  261. Map<String,Object> map = new HashMap<String,Object>();
  262. String errInfo = "success";
  263. PageData pd = new PageData();
  264. pd = this.getPageData();
  265. // List<PageData> vartableList_new = annualPlanService.getTableList(pd); //根据reportID读取相关table信息
  266. // System.out.println("vartableList_new"+vartableList_new);
  267. String planStatus = annualPlanService.getPlanStatus(pd); //获取年计划状态
  268. pd.put("TYPE", "highway_annual_plan_sumtable");
  269. String highwayplanStatus = annualPlanService.getTableListRC(pd); //高速公路年度养护计划汇总表
  270. pd.put("TYPE", "highway_daily_plan_statable");
  271. String rcStatus = annualPlanService.getTableListRC(pd);
  272. //获取基本信息的三张表状态值
  273. pd.put("TYPE", "highway_technica_statable"); //高速公路道路技术状况现状统计表
  274. String baseStatus1 = annualPlanService.getTableListRC(pd);
  275. pd.put("TYPE", "highway_traiffcinfo_sumtable"); //高速公路交通等信息综合统计表
  276. String baseStatus2 = annualPlanService.getTableListRC(pd);
  277. pd.put("TYPE", "highway_quality_goals_table"); //高速公路养护质量目标表
  278. String baseStatus3 = annualPlanService.getTableListRC(pd);
  279. pd.put("TYPE", "highway_prevention_project_dettable");
  280. pd.put("PROJECT_NAME", "高速公路预防养护计划立项详表---");
  281. List<PageData> vartableList = annualPlanService.getTableListYFYH(pd);
  282. List<PageData> pdListPrevent = new ArrayList<PageData>();
  283. for(PageData tpd :vartableList){
  284. PageData pdf = new PageData();
  285. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  286. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  287. }else{
  288. pdf.put("PROJECT_NAME", "");
  289. }
  290. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  291. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  292. }else {
  293. pdf.put("CATEGORY","");
  294. }
  295. if(tpd.get("PROJECT_SCALE") !=null && !tpd.get("PROJECT_SCALE").equals("")) {
  296. pdf.put("PROJECT_SCALE", tpd.get("PROJECT_SCALE"));
  297. }else {
  298. pdf.put("PROJECT_SCALE","");
  299. }
  300. if(tpd.get("QUANTITIES") !=null && !tpd.get("QUANTITIES").equals("")) {
  301. pdf.put("QUANTITIES", tpd.get("QUANTITIES"));
  302. }else {
  303. pdf.put("QUANTITIES", "");
  304. }
  305. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")) {
  306. pdf.put("PROJECT_COST", tpd.get("PROJECT_COST"));
  307. }else {
  308. pdf.put("PROJECT_COST", "");
  309. }
  310. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  311. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  312. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  313. }else{
  314. pdf.put("AUDIT_FEE", tpd.get("PROJECT_COST"));
  315. }
  316. }else{
  317. pdf.put("AUDIT_FEE", "");
  318. }
  319. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  320. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  321. // }else {
  322. // pdf.put("AUDIT_FEE", "");
  323. // }
  324. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  325. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  326. }else {
  327. pdf.put("AUDIT_MAKER", "");
  328. }
  329. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  330. pdf.put("STATUS", tpd.get("STATUS"));
  331. }else {
  332. pdf.put("STATUS", "");
  333. }
  334. pdf.put("NAME", tpd.get("NAME"));
  335. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  336. pdf.put("COMPANY", tpd.get("COMPANY"));
  337. pdf.put("YEAR", tpd.get("YEAR"));
  338. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  339. pdf.put("ROAD", tpd.get("ROAD"));
  340. pdListPrevent.add(pdf);
  341. }
  342. pd.put("TYPE", "highway_repair_project_dettable");
  343. pd.put("PROJECT_NAME", "高速公路修复养护计划立项详表---");
  344. List<PageData> xfvartableList = annualPlanService.getTableListYFYH(pd);
  345. List<PageData> pdListRepair = new ArrayList<PageData>();
  346. for(PageData tpd :xfvartableList){
  347. PageData pdf = new PageData();
  348. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  349. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  350. }else{
  351. pdf.put("PROJECT_NAME", "");
  352. }
  353. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  354. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  355. }else {
  356. pdf.put("CATEGORY","");
  357. }
  358. if(tpd.get("PROJECT_SCALE") !=null && !tpd.get("PROJECT_SCALE").equals("")) {
  359. pdf.put("PROJECT_SCALE", tpd.get("PROJECT_SCALE"));
  360. }else {
  361. pdf.put("PROJECT_SCALE","");
  362. }
  363. if(tpd.get("QUANTITIES") !=null && !tpd.get("QUANTITIES").equals("")) {
  364. pdf.put("QUANTITIES", tpd.get("QUANTITIES"));
  365. }else {
  366. pdf.put("QUANTITIES", "");
  367. }
  368. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")) {
  369. pdf.put("PROJECT_COST", tpd.get("PROJECT_COST"));
  370. }else {
  371. pdf.put("PROJECT_COST", "");
  372. }
  373. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  374. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  375. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  376. }else{
  377. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")){
  378. pdf.put("AUDIT_FEE", tpd.get("PROJECT_COST"));
  379. }else{
  380. pdf.put("AUDIT_FEE", "");
  381. }
  382. }
  383. }else{
  384. pdf.put("AUDIT_FEE", "");
  385. }
  386. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  387. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  388. // }else {
  389. // pdf.put("AUDIT_FEE", "");
  390. // }
  391. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  392. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  393. }else {
  394. pdf.put("AUDIT_MAKER", "");
  395. }
  396. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  397. pdf.put("STATUS", tpd.get("STATUS"));
  398. }else {
  399. pdf.put("STATUS", "");
  400. }
  401. pdf.put("NAME", tpd.get("NAME"));
  402. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  403. pdf.put("COMPANY", tpd.get("COMPANY"));
  404. pdf.put("YEAR", tpd.get("YEAR"));
  405. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  406. pdf.put("ROAD", tpd.get("ROAD"));
  407. pdListRepair.add(pdf);
  408. }
  409. pd.put("TYPE", "highway_special_project_dettable");
  410. pd.put("PROJECT_NAME", "高速公路专项养护计划立项详表---");
  411. List<PageData> zxvartableList = annualPlanService.getTableListYFYH(pd);
  412. List<PageData> pdListSpecial = new ArrayList<PageData>();
  413. for(PageData tpd :zxvartableList){
  414. PageData pdf = new PageData();
  415. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  416. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  417. }else{
  418. pdf.put("PROJECT_NAME", "");
  419. }
  420. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  421. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  422. }else {
  423. pdf.put("CATEGORY","");
  424. }
  425. if(tpd.get("PROJECT_SCALE") !=null && !tpd.get("PROJECT_SCALE").equals("")) {
  426. pdf.put("PROJECT_SCALE", tpd.get("PROJECT_SCALE"));
  427. }else {
  428. pdf.put("PROJECT_SCALE","");
  429. }
  430. if(tpd.get("QUANTITIES") !=null && !tpd.get("QUANTITIES").equals("")) {
  431. pdf.put("QUANTITIES", tpd.get("QUANTITIES"));
  432. }else {
  433. pdf.put("QUANTITIES", "");
  434. }
  435. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")) {
  436. pdf.put("PROJECT_COST", tpd.get("PROJECT_COST"));
  437. }else {
  438. pdf.put("PROJECT_COST", "");
  439. }
  440. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  441. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  442. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  443. }else{
  444. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")){
  445. pdf.put("AUDIT_FEE", tpd.get("PROJECT_COST"));
  446. }else{
  447. pdf.put("AUDIT_FEE", "");
  448. }
  449. }
  450. }else{
  451. pdf.put("AUDIT_FEE", "");
  452. }
  453. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  454. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  455. // }else {
  456. // pdf.put("AUDIT_FEE", "");
  457. // }
  458. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  459. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  460. }else {
  461. pdf.put("AUDIT_MAKER", "");
  462. }
  463. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  464. pdf.put("STATUS", tpd.get("STATUS"));
  465. }else {
  466. pdf.put("STATUS", "");
  467. }
  468. pdf.put("NAME", tpd.get("NAME"));
  469. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  470. pdf.put("COMPANY", tpd.get("COMPANY"));
  471. pdf.put("YEAR", tpd.get("YEAR"));
  472. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  473. pdf.put("ROAD", tpd.get("ROAD"));
  474. pdListSpecial.add(pdf);
  475. }
  476. //试验检测项目
  477. pd.put("TYPE", "highway_test_project_dettable");
  478. pd.put("PROJECT_NAME", "高速公路试验检测项目计划立项详表---");
  479. List<PageData> syjctableList = annualPlanService.getTableListYFYH(pd);
  480. List<PageData> pdListTest = new ArrayList<PageData>();
  481. for(PageData tpd :syjctableList){
  482. PageData pdf = new PageData();
  483. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  484. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  485. }else{
  486. pdf.put("PROJECT_NAME", "");
  487. }
  488. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  489. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  490. }else {
  491. pdf.put("CATEGORY","");
  492. }
  493. if(tpd.get("CONTENT") !=null && !tpd.get("CONTENT").equals("")) {
  494. pdf.put("CONTENT", tpd.get("CONTENT"));
  495. }else {
  496. pdf.put("CONTENT_SCHEME","");
  497. }
  498. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")) {
  499. pdf.put("PROJECT_COST", tpd.get("PROJECT_COST"));
  500. }else {
  501. pdf.put("PROJECT_COST", "");
  502. }
  503. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  504. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  505. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  506. }else{
  507. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")){
  508. pdf.put("AUDIT_FEE", tpd.get("PROJECT_COST"));
  509. }else{
  510. pdf.put("AUDIT_FEE", "");
  511. }
  512. }
  513. }else{
  514. pdf.put("AUDIT_FEE", "");
  515. }
  516. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  517. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  518. // }else {
  519. // pdf.put("AUDIT_FEE", "");
  520. // }
  521. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  522. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  523. }else {
  524. pdf.put("AUDIT_MAKER", "");
  525. }
  526. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  527. pdf.put("STATUS", tpd.get("STATUS"));
  528. }else {
  529. pdf.put("STATUS", "");
  530. }
  531. pdf.put("NAME", tpd.get("NAME"));
  532. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  533. pdf.put("COMPANY", tpd.get("COMPANY"));
  534. pdf.put("YEAR", tpd.get("YEAR"));
  535. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  536. pdf.put("ROAD", tpd.get("ROAD"));
  537. pdListTest.add(pdf);
  538. }
  539. //路科研项目
  540. pd.put("TYPE", "highway_scientific_project_dettable");
  541. pd.put("PROJECT_NAME", "高速公路科研项目计划立项详表---");
  542. List<PageData> lkytableList = annualPlanService.getTableListYFYH(pd);
  543. List<PageData> pdListScience = new ArrayList<PageData>();
  544. for(PageData tpd :lkytableList){
  545. PageData pdf = new PageData();
  546. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  547. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  548. }else{
  549. pdf.put("PROJECT_NAME", "");
  550. }
  551. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  552. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  553. }else {
  554. pdf.put("CATEGORY","");
  555. }
  556. if(tpd.get("CONTENT") !=null && !tpd.get("CONTENT").equals("")) {
  557. pdf.put("CONTENT", tpd.get("CONTENT"));
  558. }else {
  559. pdf.put("CONTENT","");
  560. }
  561. if(tpd.get("YEAR_COST") !=null && !tpd.get("YEAR_COST").equals("")) {
  562. pdf.put("YEAR_COST", tpd.get("YEAR_COST"));
  563. }else {
  564. pdf.put("YEAR_COST", "");
  565. }
  566. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  567. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  568. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  569. }else{
  570. if(tpd.get("YEAR_COST") !=null && !tpd.get("YEAR_COST").equals("")){
  571. pdf.put("AUDIT_FEE", tpd.get("YEAR_COST"));
  572. }else{
  573. pdf.put("AUDIT_FEE", "");
  574. }
  575. }
  576. }else{
  577. pdf.put("AUDIT_FEE", "");
  578. }
  579. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  580. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  581. // }else {
  582. // pdf.put("AUDIT_FEE", "");
  583. // }
  584. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  585. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  586. }else {
  587. pdf.put("AUDIT_MAKER", "");
  588. }
  589. if(tpd.get("MATTER_YEAR") !=null && !tpd.get("MATTER_YEAR").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  590. pdf.put("MATTER_YEAR", tpd.get("MATTER_YEAR"));
  591. }else {
  592. pdf.put("MATTER_YEAR", "");
  593. }
  594. if(tpd.get("MATTER_NEW_CARRY") !=null && !tpd.get("MATTER_NEW_CARRY").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  595. pdf.put("MATTER_NEW_CARRY", tpd.get("MATTER_NEW_CARRY"));
  596. }else {
  597. pdf.put("MATTER_NEW_CARRY", "");
  598. }
  599. if(tpd.get("MATTER_COUSULT") !=null && !tpd.get("MATTER_COUSULT").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  600. pdf.put("MATTER_COUSULT", tpd.get("MATTER_COUSULT"));
  601. }else {
  602. pdf.put("MATTER_COUSULT", "");
  603. }
  604. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  605. pdf.put("STATUS", tpd.get("STATUS"));
  606. }else {
  607. pdf.put("STATUS", "");
  608. }
  609. pdf.put("NAME", tpd.get("NAME"));
  610. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  611. pdf.put("COMPANY", tpd.get("COMPANY"));
  612. pdf.put("YEAR", tpd.get("YEAR"));
  613. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  614. pdf.put("ROAD", tpd.get("ROAD"));
  615. pdListScience.add(pdf);
  616. }
  617. //设备大修
  618. pd.put("TYPE", "highway_equipment_overhaul_project_dettable");
  619. pd.put("PROJECT_NAME", "高速公路设备大修项目计划立项详表---");
  620. List<PageData> sbdxtableList = annualPlanService.getTableListYFYH(pd);
  621. List<PageData> pdListEquip = new ArrayList<PageData>();
  622. for(PageData tpd :sbdxtableList){
  623. PageData pdf = new PageData();
  624. if(tpd.get("PROJECT_NAME") !=null && !tpd.get("PROJECT_NAME").equals("")) {
  625. pdf.put("PROJECT_NAME", tpd.get("PROJECT_NAME"));
  626. }else{
  627. pdf.put("PROJECT_NAME", "");
  628. }
  629. if(tpd.get("CATEGORY") !=null && !tpd.get("CATEGORY").equals("")) {
  630. pdf.put("CATEGORY", tpd.get("CATEGORY"));
  631. }else {
  632. pdf.put("CATEGORY","");
  633. }
  634. if(tpd.get("CONTENT") !=null && !tpd.get("CONTENT").equals("")) {
  635. pdf.put("CONTENT", tpd.get("CONTENT"));
  636. }else {
  637. pdf.put("CONTENT","");
  638. }
  639. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")) {
  640. pdf.put("PROJECT_COST", tpd.get("PROJECT_COST"));
  641. }else {
  642. pdf.put("PROJECT_COST", "");
  643. }
  644. if("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus)){
  645. if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("")){
  646. pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  647. }else{
  648. if(tpd.get("PROJECT_COST") !=null && !tpd.get("PROJECT_COST").equals("")){
  649. pdf.put("AUDIT_FEE", tpd.get("PROJECT_COST"));
  650. }else{
  651. pdf.put("AUDIT_FEE", "");
  652. }
  653. }
  654. }else{
  655. pdf.put("AUDIT_FEE", "");
  656. }
  657. // if(tpd.get("AUDIT_FEE") !=null && !tpd.get("AUDIT_FEE").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  658. // pdf.put("AUDIT_FEE", tpd.get("AUDIT_FEE"));
  659. // }else {
  660. // pdf.put("AUDIT_FEE", "");
  661. // }
  662. if(tpd.get("AUDIT_MAKER") !=null && !tpd.get("AUDIT_MAKER").equals("") && ("审批通过".equalsIgnoreCase(planStatus) || "控股驳回".equalsIgnoreCase(planStatus))) {
  663. pdf.put("AUDIT_MAKER", tpd.get("AUDIT_MAKER"));
  664. }else {
  665. pdf.put("AUDIT_MAKER", "");
  666. }
  667. if(tpd.get("STATUS") !=null && !tpd.get("STATUS").equals("")) {
  668. pdf.put("STATUS", tpd.get("STATUS"));
  669. }else {
  670. pdf.put("STATUS", "");
  671. }
  672. pdf.put("NAME", tpd.get("NAME"));
  673. pdf.put("COMPANY_ID", tpd.get("COMPANY_ID"));
  674. pdf.put("COMPANY", tpd.get("COMPANY"));
  675. pdf.put("YEAR", tpd.get("YEAR"));
  676. pdf.put("ROAD_ID", tpd.get("ROAD_ID"));
  677. pdf.put("ROAD", tpd.get("ROAD"));
  678. pdListEquip.add(pdf);
  679. }
  680. map.put("highwayplanStatus", highwayplanStatus);
  681. map.put("rcStatus", rcStatus);//日常计划状态
  682. map.put("baseStatus1", baseStatus1);
  683. map.put("baseStatus2", baseStatus2);
  684. map.put("baseStatus3", baseStatus3);
  685. map.put("list1", pdListPrevent);//预防养护
  686. map.put("list2", pdListRepair);//修复养护
  687. map.put("list3", pdListSpecial);//专项养护
  688. map.put("list4", pdListTest);//试验检测
  689. map.put("list5", pdListScience);//公路科研项目
  690. map.put("list6", pdListEquip);//设备大修
  691. map.put("result", errInfo); //返回结果
  692. return AppUtil.returnObject(new PageData(), map);
  693. }
  694. /**显示、编辑子表格内容
  695. * @param
  696. * @throws Exception
  697. */
  698. @RequestMapping(value="/showTableRecod")
  699. public ModelAndView showTableRecod()throws Exception{
  700. ModelAndView mv = this.getModelAndView();
  701. PageData pd = new PageData();
  702. pd = this.getPageData();
  703. List<PageData> varList = annualPlanService.showTableRecod(pd); //根据ID读取
  704. mv.setViewName("information/annualPlan/annualPlan_edit");
  705. mv.addObject("varList", varList);
  706. mv.addObject("pd", pd);
  707. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  708. return mv;
  709. }
  710. /**去新增页面
  711. * @param
  712. * @throws Exception
  713. */
  714. @RequestMapping(value="/goAdd")
  715. public ModelAndView goAdd()throws Exception{
  716. ModelAndView mv = this.getModelAndView();
  717. PageData pd = new PageData();
  718. pd = this.getPageData();
  719. //List<PageData> varList = annualPlanService.getReportType(pd); //获取报告类型
  720. SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
  721. Date date = new Date();
  722. String currentYear = sdf.format(date);
  723. List<String> yearItems = new ArrayList<String>();
  724. for(int i= -4; i < 6; i++){
  725. Integer intyear = Integer.parseInt(currentYear);
  726. yearItems.add(String.valueOf(intyear + i));
  727. }
  728. mv.setViewName("information/annualPlan/annualPlan_add");
  729. //mv.addObject("varList", varList);
  730. mv.addObject("msg", "save");
  731. mv.addObject("yearList", yearItems);
  732. mv.addObject("currentYear", currentYear);
  733. mv.addObject("pd", pd);
  734. return mv;
  735. }
  736. /**新增报告和子表格的关系(新建年底计划,同时新建完成情况汇总)
  737. * @param
  738. * @throws Exception
  739. */
  740. @RequestMapping(value="/save")
  741. public ModelAndView save() throws Exception{
  742. logBefore(logger, Jurisdiction.getUsername()+"新增annualPlan");
  743. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  744. List<PageData> reportList = new ArrayList<PageData>();
  745. List<PageData> tableList = new ArrayList<PageData>();
  746. List<PageData> reportCompList = new ArrayList<PageData>();
  747. List<PageData> tableCompList = new ArrayList<PageData>();
  748. ModelAndView mv = this.getModelAndView();
  749. PageData pd = new PageData();
  750. pd = this.getPageData();
  751. String planID = this.get32UUID();
  752. pd.put("ID", planID);//主键
  753. pd.put("NAME", pd.get("YEAR")+"年"+pd.get("COMPANY")+"年度养护计划");
  754. //设置查询oa_department的动态表名
  755. PageData cpPd = new PageData();
  756. String oa_department_table = "oa_department_"+pd.get("YEAR");
  757. cpPd.put("table", oa_department_table);
  758. cpPd.put("NAME", pd.get("COMPANY").toString());
  759. PageData companypd = (PageData)annualPlanService.getCompanyID(cpPd); //通过路公司名获取路公司ID和父节点id
  760. String companyID = companypd.getString("BIANMA");
  761. String DEPARTMENT_ID = companypd.getString("DEPARTMENT_ID");
  762. pd.put("COMPANY_ID", companyID);
  763. pd.put("COMPANY_NAME", pd.get("COMPANY"));
  764. //pd.put("DEPARTMENT_ID", DEPARTMENT_ID);
  765. pd.put("CTIME", Tools.date2Str(new Date())); //创建时间
  766. pd.put("MTIME", Tools.date2Str(new Date())); //修改时间
  767. pd.put("STATUS", "新建"); //创建时间
  768. annualPlanService.addAnnualPlan(pd); //新建年度计划
  769. boolean hasNoCompList = false;
  770. String planCompID = this.get32UUID();
  771. List<PageData> compList = annualPlanService.getAnnualPlanComp(pd);
  772. if(compList.size() == 0){
  773. hasNoCompList = true;
  774. pd.put("COMPID", planCompID);//主键
  775. pd.put("COMPNAME", pd.get("YEAR")+"年"+pd.get("COMPANY")+"养护计划完成情况");
  776. annualPlanService.addAnnualPlanComp(pd); //新建年度计划完成情况
  777. }
  778. pd.put("NAME", "年度养护计划总报告");
  779. String reportID = this.get32UUID();
  780. pd.put("ID", reportID);//主键
  781. pd.put("PLANID", planID);
  782. reportList.add(pd);
  783. pd.put("COMPNAME", "年度养护计划完成情况总报告");
  784. String reportCompID = this.get32UUID();
  785. pd.put("COMPID", reportCompID);//主键
  786. pd.put("COMPPLANID", planCompID);
  787. pd.put("COMPNAME", "养护计划完成情况总报告");
  788. reportCompList.add(pd);
  789. List<PageData> tableTypeList = annualPlanService.getTableType(); //获取表格类型
  790. for(PageData tableInfo : tableTypeList){
  791. PageData tablepd = new PageData();
  792. tablepd.put("YEAR", pd.get("YEAR"));
  793. tablepd.put("NAME", pd.get("YEAR")+"年"+pd.get("COMPANY")+tableInfo.getString("TABLE_NAME"));
  794. tablepd.put("TYPE", tableInfo.getString("TABLE_TYPE"));
  795. tablepd.put("COMPANY_ID", companyID);
  796. tablepd.put("COMPANY_NAME", pd.get("COMPANY"));
  797. tablepd.put("CTIME", Tools.date2Str(new Date())); //创建时间
  798. tablepd.put("MTIME", Tools.date2Str(new Date())); //修改时间
  799. tablepd.put("STATUS", "自动统计"); //创建时间
  800. tablepd.put("ROAD_NAME", "");
  801. tablepd.put("ROAD_ID", "");
  802. if(tableInfo.get("REPORT_ID").toString().equalsIgnoreCase("2")){
  803. tablepd.put("REPORTID", reportID);
  804. tableList.add(tablepd);
  805. }
  806. if(tableInfo.get("REPORT_ID").toString().equalsIgnoreCase("1")){ //完成情况总报告
  807. tablepd.put("COMPREPORTID", reportCompID);
  808. tablepd.put("COMPNAME", tableInfo.getString("TABLE_NAME"));
  809. tablepd.put("COMPTYPE", tableInfo.getString("TABLE_TYPE"));
  810. tableCompList.add(tablepd);
  811. }
  812. }
  813. cpPd.put("DEPARTMENT_ID", DEPARTMENT_ID);
  814. List<PageData> roadpdList = annualPlanService.getRoadInfo(cpPd); //通过父节点ID获取路段信息
  815. for(PageData reportinfo : roadpdList){
  816. PageData reportpd = new PageData();
  817. reportID = this.get32UUID();
  818. reportpd.put("ID", reportID);//主键
  819. reportpd.put("PLANID", planID);
  820. reportpd.put("YEAR", pd.get("YEAR"));
  821. reportpd.put("ROAD_NAME", reportinfo.getString("NAME"));
  822. reportpd.put("ROAD_ID", reportinfo.getString("BIANMA"));
  823. reportpd.put("NAME", reportinfo.getString("NAME")+"年度养护计划分报告");
  824. reportpd.put("COMPANY_ID", companyID);
  825. reportpd.put("COMPANY_NAME", pd.get("COMPANY"));
  826. //reportpd.put("DEPARTMENT_ID", DEPARTMENT_ID);
  827. reportpd.put("CTIME", Tools.date2Str(new Date())); //创建时间
  828. reportpd.put("MTIME", Tools.date2Str(new Date())); //修改时间
  829. reportpd.put("STATUS", "新建"); //创建时间
  830. reportList.add(reportpd);
  831. reportCompID = this.get32UUID(); //完成情况分报告ID
  832. reportpd.put("COMPID", reportCompID);//主键
  833. reportpd.put("COMPPLANID", planCompID);
  834. reportpd.put("COMPNAME", reportinfo.getString("NAME")+"养护计划完成情况分报告");
  835. reportCompList.add(reportpd);
  836. for(PageData tableInfo : tableTypeList){
  837. PageData tablepdroad = new PageData();
  838. tablepdroad.put("YEAR", pd.get("YEAR"));
  839. tablepdroad.put("COMPANY_ID", companyID);
  840. tablepdroad.put("COMPANY_NAME", pd.get("COMPANY"));
  841. tablepdroad.put("ROAD_NAME", reportinfo.getString("NAME"));
  842. tablepdroad.put("ROAD_ID", reportinfo.getString("BIANMA"));
  843. tablepdroad.put("CTIME", Tools.date2Str(new Date())); //创建时间
  844. tablepdroad.put("MTIME", Tools.date2Str(new Date())); //修改时间
  845. tablepdroad.put("STATUS", "自动统计");
  846. if(tableInfo.get("REPORT_ID").toString().equalsIgnoreCase("3")){
  847. tablepdroad.put("REPORTID", reportID);
  848. tablepdroad.put("NAME", tableInfo.getString("TABLE_NAME"));
  849. tablepdroad.put("TYPE", tableInfo.getString("TABLE_TYPE"));
  850. tableList.add(tablepdroad);
  851. }
  852. if(tableInfo.get("REPORT_ID").toString().equalsIgnoreCase("6")){
  853. tablepdroad.put("STATUS", "新建");
  854. tablepdroad.put("REPORTID", reportID);
  855. tablepdroad.put("NAME", tableInfo.getString("TABLE_NAME"));
  856. tablepdroad.put("TYPE", tableInfo.getString("TABLE_TYPE"));
  857. tableList.add(tablepdroad);
  858. }
  859. if(tableInfo.get("REPORT_ID").toString().equalsIgnoreCase("4")){
  860. tablepdroad.put("COMPREPORTID", reportCompID);
  861. tablepdroad.put("COMPNAME", tableInfo.getString("TABLE_NAME"));
  862. tablepdroad.put("COMPTYPE", tableInfo.getString("TABLE_TYPE"));
  863. tableCompList.add(tablepdroad);
  864. }
  865. }
  866. }
  867. annualPlanService.addAnnualReport(reportList);
  868. annualPlanService.addAnnualTable(tableList);
  869. if(hasNoCompList){
  870. annualPlanService.addAnnualCompReport(reportCompList);
  871. annualPlanService.addAnnualCompTable(tableCompList);
  872. }
  873. mv.addObject("pd", pd);
  874. mv.setViewName("save_result");
  875. return mv;
  876. }
  877. /**判断年度计划是否已存在
  878. * @param
  879. * @throws Exception
  880. */
  881. @RequestMapping(value="/hasPlan")
  882. @ResponseBody
  883. public Object hasPlan()throws Exception{
  884. Map<String,String> map = new HashMap<String,String>();
  885. PageData pd = new PageData();
  886. pd = this.getPageData();
  887. String msg = "success";
  888. //查询系统已存在的养护计划
  889. List<PageData> planPd = annualPlanService.getPlanByCompanyAndYear(pd);
  890. if(planPd.size() > 0){
  891. msg = "已存在相同的养护计划,新建失败";
  892. }
  893. map.put("result", msg);
  894. return AppUtil.returnObject(new PageData(), map);
  895. }
  896. /**删除年度计划和其下面的报告、表格
  897. * @param
  898. * @throws Exception
  899. */
  900. @RequestMapping(value="/delAnnualPlan")
  901. @ResponseBody
  902. public Object delAnnualPlan()throws Exception{
  903. Map<String,String> map = new HashMap<String,String>();
  904. PageData pd = new PageData();
  905. pd = this.getPageData();
  906. try{
  907. PageData planPd = annualPlanService.getYearAndCompanyByID(pd); //通过ANNUALPLAN_ID获取报告的年份和公司
  908. /*annualPlanService.delAnnualPlan(pd); //删除年度计划
  909. List<String> reportIDList = annualPlanService.getReportID(pd); //获取年度计划对应的报告ID
  910. annualPlanService.delReport(pd); //删除报告
  911. annualPlanService.delTables(reportIDList); //删除表格列表
  912. for(String tableName : tabls){
  913. planPd.put("TABLE_NAME", tableName);
  914. annualPlanService.delAllSumTables(planPd); //删除子表数据
  915. } */
  916. // List<PageData> tableList = new ArrayList<PageData>();
  917. for(String tableName : tabls){
  918. planPd.put("TABLE_NAME", tableName);
  919. annualPlanService.delAllTables(planPd); //删除报告
  920. }
  921. map.put("result", "success");
  922. }catch(Exception e){
  923. map.put("result", "删除失败");
  924. }
  925. return AppUtil.returnObject(new PageData(), map);
  926. }
  927. /**新增立项详表新增弹出页面
  928. * @param
  929. * @throws Exception
  930. */
  931. @RequestMapping(value="/addNewTablePanel")
  932. public ModelAndView addNewTablePanel()throws Exception{
  933. ModelAndView mv = this.getModelAndView();
  934. PageData pd = new PageData();
  935. pd = this.getPageData();
  936. List<PageData> varList = annualPlanService.getDetTableType(); //获取立项详表报告类型
  937. //通过reportid获取对应的路段信息
  938. PageData roadInfo = annualPlanService.getRoadInfoByReportID(pd);
  939. pd.put("ROAD_NAME", roadInfo.get("ROAD"));
  940. pd.put("ROAD_ID", roadInfo.get("ROAD_ID"));
  941. mv.setViewName("information/annualPlan/annualPlan_addNewTable");
  942. mv.addObject("varList", varList);
  943. mv.addObject("msg", "addNewTable");
  944. mv.addObject("pd", pd);
  945. return mv;
  946. }
  947. /**只有路段分报告可以新增立项详表
  948. * @param
  949. * @throws Exception
  950. */
  951. @RequestMapping(value="/addNewTable")
  952. @ResponseBody
  953. public Object addNewTable()throws Exception{
  954. Map<String,String> map = new HashMap<String,String>();
  955. PageData pd = new PageData();
  956. pd = this.getPageData();
  957. //List<PageData> varList = annualPlanService.getDetTableType(); //获取立项详表报告类型
  958. //通过reportid获取对应的路段信息
  959. try{
  960. PageData roadInfo = annualPlanService.getRoadInfoByReportID(pd);
  961. pd.put("ROAD_NAME", roadInfo.get("ROAD"));
  962. pd.put("ROAD_ID", roadInfo.get("ROAD_ID"));
  963. // mv.setViewName("information/annualPlan/annualPlan_addNewTable");
  964. // mv.addObject("varList", varList);
  965. // mv.addObject("pd", pd);
  966. map.put("result", "success");
  967. }catch(Exception e){
  968. map.put("result", "只有路段分报告可以增加立项详表");
  969. }
  970. return AppUtil.returnObject(new PageData(), map);
  971. }
  972. /**显示立项详表新增弹出页面
  973. * @param
  974. * @throws Exception
  975. */
  976. @RequestMapping(value="/showNewTable")
  977. public ModelAndView showNewTable()throws Exception{
  978. ModelAndView mv = this.getModelAndView();
  979. PageData pd = new PageData();
  980. pd = this.getPageData();
  981. List<PageData> varList = annualPlanService.getDetTableType(); //获取立项详表报告类型
  982. mv.setViewName("information/annualPlan/annualPlan_addNewTable");
  983. mv.addObject("varList", varList);
  984. mv.addObject("msg", "save");
  985. mv.addObject("pd", pd);
  986. return mv;
  987. }
  988. @RequestMapping(value="/changeTableName")
  989. @ResponseBody
  990. public Object changeTableName() throws Exception{
  991. PageData pd = new PageData();
  992. pd = this.getPageData();
  993. String name = pd.getString("PROJECT_NAME");
  994. pd.put("NAME", name);
  995. pd.put("CTIME", Tools.date2Str(new Date()));
  996. pd.put("MTIME", Tools.date2Str(new Date()));
  997. pd.put("STATUS", "编制中");
  998. annualPlanService.changeTableName(pd); //在table_list中新增立项详表名称
  999. Map<String,Object> map = new HashMap<String,Object>();
  1000. map.put("msg","success");
  1001. return AppUtil.returnObject(new PageData(), map);
  1002. }
  1003. @RequestMapping(value="/addNewTableInfo")
  1004. @ResponseBody
  1005. public Object addNewTableInfo() throws Exception{
  1006. PageData pd = new PageData();
  1007. pd = this.getPageData();
  1008. // String name = pd.getString("PROJECT_NAME");
  1009. // pd.put("NAME", name);
  1010. Map<String,Object> map = new HashMap<String,Object>();
  1011. if(!hasBetTable(pd)){
  1012. //获取reportId "2017年高管中心宁连、宁洛及金马高速年度养护计划分报告"
  1013. // String reportName = pd.getString("YEAR")+"年" + pd.getString("COMPANY") + pd.getString("ROAD") + "年度养护计划分报告";
  1014. // String reportId = annualPlanService.getTableReportID(reportName); //get annual_report_list id
  1015. // //在annual_table_list表中新增一条立项详情表记录
  1016. // pd.put("REPORTID", reportId);
  1017. pd.put("CTIME", Tools.date2Str(new Date())); //创建时间
  1018. pd.put("MTIME", Tools.date2Str(new Date())); //修改时间
  1019. pd.put("STATUS", "编制中"); //修改时间
  1020. annualPlanService.addNewTableInfo(pd); //insert annual_table_list新增立项详表
  1021. map.put("msg","success");
  1022. }else{
  1023. map.put("msg","已存在相同立项表");
  1024. }
  1025. return AppUtil.returnObject(new PageData(), map);
  1026. }
  1027. public boolean hasBetTable(PageData pd) throws Exception{
  1028. boolean flag = false;
  1029. List<PageData> tableInfo = annualPlanService.getTableInfo(pd);
  1030. if(tableInfo.size() > 0){
  1031. flag = true;
  1032. }
  1033. return flag;
  1034. }
  1035. /**删除立项表
  1036. * @param
  1037. * @throws Exception
  1038. */
  1039. @RequestMapping(value="/delTable")
  1040. @ResponseBody
  1041. public Object delTable()throws Exception{
  1042. Map<String,String> map = new HashMap<String,String>();
  1043. PageData pd = new PageData();
  1044. pd = this.getPageData();
  1045. String msg = "删除立项表成功";
  1046. try{
  1047. annualPlanService.delRecordFromTable(pd); //删除table_lis中的表数据
  1048. pd.put("TABLE_NAME", pd.get("TYPE"));
  1049. if(pd.get("NAME") != null){
  1050. if(pd.get("NAME").toString().contains("---")){
  1051. pd.put("PROJECT_NAME", pd.get("NAME").toString().split("---")[1]);
  1052. }
  1053. }
  1054. annualPlanService.delDettRecord(pd); //删除主表数据
  1055. annualPlanService.delModifyRecord(pd); //删除留痕表中的主表数据
  1056. annualPlanService.delMonthPlanRecord(pd); //删除对应立项表月度计划数据
  1057. Map<String, String> relationMap = new HashMap<String, String>();
  1058. relationMap.put("highway_prevention_project_dettable", "monthly_prevention_completion");
  1059. relationMap.put("highway_repair_project_dettable", "monthly_repair_completion");
  1060. relationMap.put("highway_emergency_project_dettable", "monthly_emergency_completion");
  1061. relationMap.put("highway_equipment_overhaul_project_dettable", "monthly_equipment_overhaul_completion");
  1062. relationMap.put("highway_scientific_project_dettable", "monthly_scientific_project_completion");
  1063. relationMap.put("highway_special_project_dettable", "monthly_special_completion");
  1064. relationMap.put("highway_test_project_dettable", "monthly_test_project_completion");
  1065. if(pd.get("TYPE") != null){
  1066. String tableName = relationMap.get(pd.get("TYPE").toString());
  1067. pd.put("MTABLE_NAME", tableName);
  1068. }
  1069. annualPlanService.delMonthlyRecord(pd); //删除月度完成情况中的相应项目
  1070. annualPlanService.delDettRecord(pd); //删除主表关联的cost表数据
  1071. pd.put("TABLE_NAME", pd.get("TYPE") + "_cost");
  1072. annualPlanService.delModifyRecord(pd); //删除留痕表中的主表关联的cost表数据
  1073. }catch(Exception e){
  1074. msg = "删除立项表失败";
  1075. }
  1076. map.put("result", msg);
  1077. return AppUtil.returnObject(new PageData(), map);
  1078. }
  1079. /**判断是否存在立项表
  1080. * @param
  1081. * @throws Exception
  1082. */
  1083. @RequestMapping(value="/hasDettTable")
  1084. @ResponseBody
  1085. public Object hasDettTable()throws Exception{
  1086. Map<String,String> map = new HashMap<String,String>();
  1087. PageData pd = new PageData();
  1088. pd = this.getPageData();
  1089. String result = "success";
  1090. String msg="";
  1091. try{
  1092. List<PageData> dettTables = annualPlanService.getDettTables(pd); //获取年度计划中的立项表
  1093. if(dettTables.size() == 0){
  1094. msg = "该年度计划中不包含立项表,";
  1095. }
  1096. }catch(Exception e){
  1097. result = "fail";
  1098. msg = "查询年度计划中立项表失败";
  1099. }
  1100. map.put("result", result);
  1101. map.put("msg", msg);
  1102. return AppUtil.returnObject(new PageData(), map);
  1103. }
  1104. /**
  1105. *
  1106. * @Title: saveRecord
  1107. * @Description: 保存点击记录
  1108. * @param @return
  1109. * @param @throws Exception
  1110. * @return Object
  1111. * @throws
  1112. */
  1113. @RequestMapping(value="/saveRecord")
  1114. @ResponseBody
  1115. public Object saveRecord()throws Exception{
  1116. Map<String,String> map = new HashMap<String,String>();
  1117. PageData pd = new PageData();
  1118. pd = this.getPageData();
  1119. String result = "success";
  1120. String msg="";
  1121. try{
  1122. pd.put("userName", Jurisdiction.getUsername());
  1123. annualPlanService.saveRecord(pd); //获取年度计划中的立项表
  1124. }catch(Exception e){
  1125. e.printStackTrace();
  1126. result = "fail";
  1127. }
  1128. map.put("result", result);
  1129. map.put("msg", msg);
  1130. return AppUtil.returnObject(new PageData(), map);
  1131. }
  1132. /**
  1133. *
  1134. * @Title: queryRecord
  1135. * @Description: 查询点击记录
  1136. * @param @return
  1137. * @param @throws Exception
  1138. * @return Object
  1139. * @throws
  1140. */
  1141. @RequestMapping(value="/queryRecord")
  1142. @ResponseBody
  1143. public Object queryRecord()throws Exception{
  1144. PageData pd = new PageData();
  1145. pd = this.getPageData();
  1146. pd.put("userName", Jurisdiction.getUsername());
  1147. PageData record = annualPlanService.queryLocationRecord(pd);
  1148. return record;
  1149. }
  1150. /**
  1151. * 有file文件时
  1152. * @param movieDto 封装了需要传递过来的参数
  1153. * @param file 图片file
  1154. */
  1155. @RequestMapping("/editMovieInfo")
  1156. @ResponseBody
  1157. public Object editMovieInfo(HttpServletRequest request, MultipartFile file) {
  1158. Map<String,String> map = new HashMap<String,String>();
  1159. try {
  1160. PageData pd = new PageData();
  1161. pd = this.getPageData();
  1162. String path = request.getSession().getServletContext().getRealPath("upload");
  1163. String fileName = ImportDoc.getNowTime() + "-" + file.getOriginalFilename();
  1164. File targetFile = new File(path, fileName);
  1165. String filePath = targetFile.getAbsolutePath();
  1166. System.out.println(filePath);
  1167. if (!targetFile.exists()) {
  1168. targetFile.mkdirs();
  1169. }
  1170. file.transferTo(targetFile);
  1171. pd.put("PIC_NAME", fileName);
  1172. pd.put("CTIME", Tools.date2Str(new Date()));
  1173. annualPlanService.addPictureInfo(pd); //上传成功的图片信息保存到数据库
  1174. map.put("result", "true");
  1175. } catch (IllegalStateException e) {
  1176. // TODO Auto-generated catch block
  1177. e.printStackTrace();
  1178. map.put("result", "false");
  1179. } catch (IOException e) {
  1180. // TODO Auto-generated catch block
  1181. e.printStackTrace();
  1182. map.put("result", "false");
  1183. } catch (Exception e) {
  1184. // TODO Auto-generated catch block
  1185. e.printStackTrace();
  1186. map.put("result", "false");
  1187. }
  1188. return AppUtil.returnObject(new PageData(), map);
  1189. }
  1190. /**
  1191. * 删除图片
  1192. * @param movieDto 封装了需要传递过来的参数
  1193. * @param file 图片file
  1194. */
  1195. @RequestMapping("/deletePicture")
  1196. @ResponseBody
  1197. public Object deletePicture(HttpServletRequest request) {
  1198. Map<String,String> map = new HashMap<String,String>();
  1199. try {
  1200. PageData pd = new PageData();
  1201. pd = this.getPageData();
  1202. String fileName = pd.get("NAME").toString();
  1203. if(new File(request.getSession().getServletContext().getRealPath("/upload") + "/"+fileName).exists()){
  1204. new File(request.getSession().getServletContext().getRealPath("/upload") + "/"+fileName).delete();
  1205. annualPlanService.deletePictureInfo(pd); //删除数据库中的图片记录
  1206. }
  1207. map.put("result", "true");
  1208. } catch (IllegalStateException e) {
  1209. // TODO Auto-generated catch block
  1210. e.printStackTrace();
  1211. map.put("result", "false");
  1212. } catch (IOException e) {
  1213. // TODO Auto-generated catch block
  1214. e.printStackTrace();
  1215. map.put("result", "false");
  1216. } catch (Exception e) {
  1217. // TODO Auto-generated catch block
  1218. e.printStackTrace();
  1219. map.put("result", "false");
  1220. }
  1221. return AppUtil.returnObject(new PageData(), map);
  1222. }
  1223. /**查看图片
  1224. * @param
  1225. * @throws Exception
  1226. */
  1227. @RequestMapping(value="/showPicture")
  1228. public ModelAndView showPicture()throws Exception{
  1229. ModelAndView mv = this.getModelAndView();
  1230. PageData pd = new PageData();
  1231. pd = this.getPageData();
  1232. String name = pd.get("name").toString();
  1233. mv.setViewName("information/annualPlan/showPicture");
  1234. mv.addObject("pd", pd);
  1235. return mv;
  1236. }
  1237. }