BaseInfoController.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.zhcs.dt.controller.information.annualPlan;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.annotation.Resource;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.ui.Model;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.servlet.ModelAndView;
  11. import com.zhcs.dt.controller.base.BaseController;
  12. import com.zhcs.dt.entity.Page;
  13. import com.zhcs.dt.service.information.annualPlan.AnnualBaseInfoManager;
  14. import com.zhcs.dt.service.information.annualPlan.AnnualPlanManager;
  15. import com.zhcs.dt.service.information.annualPlan.DownloadZip;
  16. import com.zhcs.dt.service.information.annualPlan.MultExcelUtils;
  17. import com.zhcs.dt.service.information.annualPlan.TotalAmountUtil;
  18. import com.zhcs.dt.service.information.annualPlan.impl.AnnualPlanCompService;
  19. import com.zhcs.dt.util.Jurisdiction;
  20. import com.zhcs.dt.util.PageData;
  21. /**
  22. * 类名称:年度养护计划
  23. * 创建人:Yuanf
  24. * 创建时间:2018-11-12
  25. */
  26. @Controller
  27. @RequestMapping(value="/baseInfo")
  28. class BaseInfoController extends BaseController {
  29. String menuUrl = "baseInfo/list.do"; //菜单地址(权限用)
  30. @Resource(name="annualPlanCompService")
  31. private AnnualPlanCompService annualPlanCompService;
  32. @Resource(name="annualPlanService")
  33. private AnnualPlanManager annualPlanService;
  34. @Resource(name="annualBaseInfoService")
  35. private AnnualBaseInfoManager annualBaseInfoService;
  36. List<String> newTables = new ArrayList<String>();
  37. /**列表
  38. * @param page
  39. * @throws Exception
  40. */
  41. @RequestMapping(value="/list")
  42. public ModelAndView list(Page page) throws Exception{
  43. logBefore(logger, Jurisdiction.getUsername()+"养护计划完成情况");
  44. ModelAndView mv = this.getModelAndView();
  45. PageData pd = new PageData();
  46. //通过username获取对应的公司和路段,控股集团管理员只可以看到状态为“待审批”和“已完成”的计划,路公司管理员和路段管理员可以看到本公司所有计划,admin没有权限控制
  47. PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
  48. //通过ROLE_ID获取角色
  49. String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
  50. pd = this.getPageData();
  51. if("控股集团管理员".equalsIgnoreCase(roleName)){
  52. List<String> yearList = annualPlanService.getKGPlanYearList(pd); //列出状态不为编制中、新建的年度计划列表
  53. mv.setViewName("information/annualPlan/annualBaseInfo/annualBaseInfo_kg_list");
  54. mv.addObject("varList", yearList);
  55. }
  56. mv.addObject("pd", pd);
  57. mv.addObject("userInfo", userInfo);
  58. mv.addObject("roleName", roleName);
  59. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  60. return mv;
  61. }
  62. /**查询所选汇总表
  63. * @param
  64. * @throws Exception
  65. */
  66. @RequestMapping(value="/showBaseInfoTable")
  67. public ModelAndView showBaseInfoTable(Model model)throws Exception{
  68. ModelAndView mv = this.getModelAndView();
  69. PageData pd = new PageData();
  70. pd = this.getPageData();
  71. mv.setViewName("information/annualPlan/annualBaseInfo/"+pd.get("type"));
  72. pd.put("table", "oa_department_"+pd.getString("YEAR").toString());
  73. PageData result = annualBaseInfoService.getBaseInfo(pd);
  74. mv.addObject("varList", result.get("companyList"));
  75. mv.addObject("total", result.get("total"));
  76. mv.addObject("pd", pd);
  77. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  78. return mv;
  79. }
  80. @RequestMapping("/exportBaseInfo")
  81. public String exporthz(HttpServletRequest request,HttpServletResponse response) throws Exception{
  82. String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
  83. ModelAndView mv = this.getModelAndView();
  84. PageData pd = new PageData();
  85. pd = this.getPageData();
  86. List<String> paths = new ArrayList<String>();
  87. List<String> result = new ArrayList<String>();
  88. //excel文档
  89. List<PageData> exceldata = setMultExcelData(pd);
  90. MultExcelUtils ex = new MultExcelUtils();
  91. String excelpath = ex.exportExcel(pd.getString("exportname")+".xlsx",path,response,exceldata);
  92. result.add(excelpath);
  93. //zip压缩下载
  94. DownloadZip.downloadZip(response,request,result,path);
  95. return null;
  96. }
  97. public List<PageData> setMultExcelData(PageData param) throws Exception {
  98. List<PageData> result = new ArrayList<PageData>();
  99. String[] modelNames = {"控股系统公路道路技术状况现状汇总表","控股系统公路主要病害汇总表",
  100. "控股系统交通等信息综合统计表","控股系统养护质量目标表汇总表"};
  101. String[] keyStrs = {
  102. "DESIGN_KM,CARE_KM,"
  103. + "MQI,QUALITY_GRADE,SECOND_ROAD_RATIO,PQI,SCI,BCI,TCI,"
  104. + "PCI,RQI,RDI,PBI,PWI,SRI,PSSI,"
  105. + "ONE_BRIDGE_NUM,ONE_BRIDGE_PRO,TWO_BRIDGE_NUM,TWO_BRIDGE_PRO,THREE_BRIDGE_NUM,THREE_BRIDGE_PRO,FOUR_BRIDGE_NUM,FOUR_BRIDGE_PRO,FIVE_BRIDGE_NUM,FIVE_BRIDGE_PRO,BRIDGE_TOTAL_NUM"
  106. ,"DESIGN_KM,CARE_KM,ROAD_CONDITION,SUBGRADE_EXPLAIN,PAVEMENT_EXPLAIN,BRIDGE_EXPLAIN,OTHER_EXPLAIN,OTHER_MATTER"
  107. ,"DESIGN_KM,CARE_KM,TRAFFIC_AMOUNT,CAR_INFO,TOTAL_COST,DAILY_COST,DAILY_KM_COST"
  108. ,"DESIGN_KM,CARE_KM,MQI_STATUS,MQI_TARGET,RATE_STATUS,RATE_TARGET,PQI_STATUS,PQI_TARGET,"
  109. + "PCI_STATUS,PCI_TARGET,RQI_STATUS,RQI_TARGET,RDI_STATUS,RDI_TARGET,PBI_STATUS,PBI_TARGET,"
  110. + "PWI_STATUS,PWI_TARGET,SRI_STATUS,SRI_TARGET,PSSI_STATUS,PSSI_TARGET,SCI_STATUS,SCI_TARGET,"
  111. + "BCI_STATUS,BCI_TARGET,TCI_STATUS,TCI_TARGET,TECHNOLOGY_STATUS,TECHNOLOGY_TARGET"
  112. };
  113. String[] tableNames = {"highway_technica_statable","highway_technica_statable",
  114. "highway_traiffcinfo_sumtable","highway_quality_goals_table"};
  115. int[] startRowIndexs = {4,3,3,3};
  116. int[] tabletype = {6,6,6,6};
  117. int[] totalRange = {2,2,2,2};
  118. String[][][] funcArrys = {
  119. {
  120. {"mmul","MQI","IF(ISERROR((D#row#*F#row#)),\"0.00\",(D#row#*F#row#))"},
  121. {"mmul","SECOND_ROAD_RATIO","IF(ISERROR((H#row#/D#row#)),\"0.00\",(H#row#/D#row#))"},
  122. {"mmul","PQI","IF(ISERROR((D#row#*I#row#)),\"0.00\",(D#row#*I#row#))"},
  123. {"mmul","SCI","IF(ISERROR((D#row#*J#row#)),\"0.00\",(D#row#*J#row#))"},
  124. {"mmul","BCI","IF(ISERROR((D#row#*K#row#)),\"0.00\",(D#row#*K#row#))"},
  125. {"mmul","TCI","IF(ISERROR((D#row#*L#row#)),\"0.00\",(D#row#*L#row#))"},
  126. {"mmul","PCI","IF(ISERROR((D#row#*M#row#)),\"0.00\",(D#row#*M#row#))"},
  127. {"mmul","RQI","IF(ISERROR((D#row#*N#row#)),\"0.00\",(D#row#*N#row#))"},
  128. {"mmul","RDI","IF(ISERROR((D#row#*O#row#)),\"0.00\",(D#row#*O#row#))"},
  129. {"mmul","PBI","IF(ISERROR((D#row#*P#row#)),\"0.00\",(D#row#*P#row#))"},
  130. {"mmul","PWI","IF(ISERROR((D#row#*Q#row#)),\"0.00\",(D#row#*Q#row#))"},
  131. {"mmul","SRI","IF(ISERROR((D#row#*R#row#)),\"0.00\",(D#row#*R#row#))"},
  132. {"mmul","PSSI","IF(ISERROR((D#row#*S#row#)),\"0.00\",(D#row#*S#row#))"},
  133. {"percent","ONE_BRIDGE_PRO","IF(ISERROR((T#row#/AD#row#)*100),\"0.00\",(T#row#/AD#row#)*100)"},
  134. {"percent","TWO_BRIDGE_PRO","IF(ISERROR((V#row#/AD#row#)*100),\"0.00\",(V#row#/AD#row#)*100)"},
  135. {"percent","THREE_BRIDGE_PRO","IF(ISERROR((X#row#/AD#row#)*100),\"0.00\",(X#row#/AD#row#)*100)"},
  136. {"percent","FOUR_BRIDGE_PRO","IF(ISERROR((Z#row#/AD#row#)*100),\"0.00\",(Z#row#/AD#row#)*100)"},
  137. {"percent","FIVE_BRIDGE_PRO","IF(ISERROR((AB#row#/AD#row#)*100),\"0.00\",(AB#row#/AD#row#)*100)"},
  138. },
  139. {},{},
  140. {
  141. {"mmul","MQI_STATUS","IF(ISERROR((D#row#*F#row#)),\"0.00\",(D#row#*F#row#))"},
  142. {"mmul","RATE_STATUS","IF(ISERROR((D#row#*H#row#)),\"0.00\",(D#row#*H#row#))"},
  143. {"mmul","PQI_STATUS","IF(ISERROR((D#row#*J#row#)),\"0.00\",(D#row#*J#row#))"},
  144. {"mmul","PCI_STATUS","IF(ISERROR((D#row#*L#row#)),\"0.00\",(D#row#*L#row#))"},
  145. {"mmul","RQI_STATUS","IF(ISERROR((D#row#*N#row#)),\"0.00\",(D#row#*N#row#))"},
  146. {"mmul","RDI_STATUS","IF(ISERROR((D#row#*P#row#)),\"0.00\",(D#row#*P#row#))"},
  147. {"mmul","PBI_STATUS","IF(ISERROR((D#row#*R#row#)),\"0.00\",(D#row#*R#row#))"},
  148. {"mmul","PWI_STATUS","IF(ISERROR((D#row#*T#row#)),\"0.00\",(D#row#*T#row#))"},
  149. {"mmul","SRI_STATUS","IF(ISERROR((D#row#*V#row#)),\"0.00\",(D#row#*V#row#))"},
  150. {"mmul","PSSI_STATUS","IF(ISERROR((D#row#*X#row#)),\"0.00\",(D#row#*X#row#))"},
  151. {"mmul","SCI_STATUS","IF(ISERROR((D#row#*Z#row#)),\"0.00\",(D#row#*Z#row#))"},
  152. {"mmul","BCI_STATUS","IF(ISERROR((D#row#*AB#row#)),\"0.00\",(D#row#*AB#row#))"},
  153. {"mmul","TCI_STATUS","IF(ISERROR((D#row#*AD#row#)),\"0.00\",(D#row#*AD#row#))"},
  154. {"mmul","TECHNOLOGY_STATUS","IF(ISERROR((D#row#*AF#row#)),\"0.00\",(D#row#*AF#row#))"},
  155. }
  156. };
  157. PageData pd = new PageData();
  158. for (int i = 0; i < tableNames.length; i++) {
  159. PageData data = new PageData();
  160. pd.put("type", tableNames[i]);
  161. pd.put("YEAR", param.get("YEAR"));
  162. pd.put("table", "oa_department_"+param.get("YEAR").toString());
  163. List<PageData> list = annualPlanCompService.getBaseInfoData(pd);
  164. data.put("list", list);
  165. data.put("modelName", modelNames[i]);
  166. data.put("keyStr", keyStrs[i]);
  167. data.put("startRowIndex", startRowIndexs[i]);
  168. data.put("tabletype", tabletype[i]);
  169. data.put("funcArry", funcArrys[i]);
  170. data.put("totalRange", totalRange[i]);
  171. data.put("pd", pd);
  172. result.add(data);
  173. }
  174. return result;
  175. }
  176. }