MonthProgressController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. package com.zhcs.dt.controller.information.monthProgress;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.LinkedHashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.Map.Entry;
  8. import javax.annotation.Resource;
  9. import net.sf.json.JSONArray;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.Model;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.servlet.ModelAndView;
  14. import com.zhcs.dt.controller.base.BaseController;
  15. import com.zhcs.dt.entity.Page;
  16. import com.zhcs.dt.service.information.annualPlan.AnnualPlanManager;
  17. import com.zhcs.dt.service.information.monthProgress.MonthProgressManager;
  18. import com.zhcs.dt.util.Jurisdiction;
  19. import com.zhcs.dt.util.PageData;
  20. /**
  21. * 类名称:年度养护计划
  22. * 创建人:Yuanf
  23. * 创建时间:2018-11-12
  24. */
  25. @Controller
  26. @RequestMapping(value="/monthProgress")
  27. class MonthProgressController extends BaseController {
  28. String menuUrl = "monthProgress/list.do"; //菜单地址(权限用)
  29. @Resource(name="monthProgressService")
  30. private MonthProgressManager monthProgressService;
  31. @Resource(name="annualPlanService")
  32. private AnnualPlanManager annualPlanService;
  33. /**列表
  34. * @param page
  35. * @throws Exception
  36. */
  37. @RequestMapping(value="/list")
  38. public ModelAndView list(Page page) throws Exception{
  39. logBefore(logger, Jurisdiction.getUsername()+"月度养护计划实施情况");
  40. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  41. ModelAndView mv = this.getModelAndView();
  42. PageData pd = new PageData();
  43. pd = this.getPageData();
  44. //通过username获取对应的公司和路段,控股集团管理员只可以看到状态为“待审批”和“已完成”的计划,路公司管理员和路段管理员可以看到本公司所有计划,admin没有权限控制
  45. PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
  46. //通过ROLE_ID获取角色
  47. String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
  48. List<String> varList = new ArrayList<String>();
  49. if(!"控股集团管理员".equalsIgnoreCase(roleName) && !"admin".equalsIgnoreCase(Jurisdiction.getUsername().toString())){
  50. String company_id = monthProgressService.getCompanyid(userInfo.get("COMPANY").toString());
  51. pd.put("COMPANY", userInfo.get("COMPANY"));
  52. pd.put("COMPANY_ID", company_id);
  53. varList = monthProgressService.getCompPlanList(pd); //列出本公司已审核通过的年计划 (次数读取oa_department基础信息)
  54. mv.setViewName("information/monthProgress/monthProgress_list");
  55. mv.addObject("varList", varList);
  56. }else{
  57. varList = monthProgressService.getCompPlanList(pd); //列出已审核通过的年计划
  58. mv.setViewName("information/monthProgress/monthProgress_kg_list");
  59. mv.addObject("varList", varList);
  60. }
  61. mv.addObject("pd", pd);
  62. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  63. return mv;
  64. }
  65. /**查询所选汇总表
  66. * @param
  67. * @throws Exception
  68. */
  69. @RequestMapping(value="/showSumTable")
  70. public ModelAndView showSumTable(Model model)throws Exception{
  71. ModelAndView mv = this.getModelAndView();
  72. PageData pd = new PageData();
  73. pd = this.getPageData();
  74. mv.setViewName("information/monthProgress/monthSumTable/"+pd.get("type"));
  75. List<PageData> varList = new ArrayList<PageData>();
  76. if("monthly_test_project_completion".equalsIgnoreCase(pd.get("type").toString())
  77. || "monthly_equipment_overhaul_completion".equalsIgnoreCase(pd.get("type").toString())){
  78. varList = monthProgressService.getTestdata(pd);
  79. }else if("monthly_scientific_project_completion".equalsIgnoreCase(pd.get("type").toString())){
  80. varList = monthProgressService.getScidata(pd);
  81. }else{
  82. varList = monthProgressService.getdata(pd);
  83. }
  84. if(varList ==null || varList.equals(" ") || varList.isEmpty() ) {
  85. mv.addObject("varList", "");
  86. }
  87. // else if("highway_reserve_fees_sumtable_view".equalsIgnoreCase(pd.get("type").toString())){
  88. // List<PageData> feeList = annualPlanCompService.getTotalFee(pd);
  89. // varList = getReserveFee(varList, feeList);
  90. // mv.addObject("dettList", varList);
  91. // }
  92. else {
  93. LinkedHashMap<String, LinkedHashMap<String, ArrayList<PageData>>> varMap = new LinkedHashMap<String, LinkedHashMap<String, ArrayList<PageData>>>();
  94. Double sumPlanCost = (double) 0;
  95. Double sumActualCost = (double) 0;
  96. String prevCompanyName = "";
  97. String prevCompanyId="";
  98. for(PageData tpd : varList){
  99. LinkedHashMap<String, ArrayList<PageData>> xjroadMap = new LinkedHashMap<String, ArrayList<PageData>>();
  100. String company = tpd.get("COMPANY").toString();
  101. String road = tpd.get("ROAD").toString();
  102. String companyId = tpd.get("COMPANY_ID").toString();
  103. if(varMap.containsKey(company)){
  104. LinkedHashMap<String, ArrayList<PageData>> roadMap = varMap.get(company);
  105. if(roadMap != null && roadMap.containsKey(road)){
  106. ArrayList<PageData> pList = roadMap.get(road);
  107. pList.add(tpd);
  108. }else{
  109. ArrayList<PageData> npList = new ArrayList<PageData>();
  110. npList.add(tpd);
  111. roadMap.put(road, npList);
  112. }
  113. xjroadMap = roadMap;
  114. prevCompanyName = company;
  115. prevCompanyId = companyId;
  116. }else{
  117. if(varMap.size() > 0){
  118. ArrayList<PageData> xjList = new ArrayList<PageData>();
  119. PageData xjPd = new PageData();
  120. xjPd.put("COMPANY", prevCompanyName);
  121. xjPd.put("ROAD", "小计");
  122. xjPd.put("PROJECT_NAME", "");
  123. xjPd.put("COMPANY_ID", prevCompanyId);
  124. // xjPd.put("PROJECT_TYPE", "");
  125. // xjPd.put("SCALE", "");
  126. // xjPd.put("PLAN_QUANTITIES", "");
  127. // xjPd.put("PLAN_COST", sumPlanCost);
  128. // xjPd.put("ACTUAL_QUANTITIES", "");
  129. // xjPd.put("REMARKS", "");
  130. // xjPd.put("ACTUAL_COST", sumActualCost);
  131. xjList.add(xjPd);
  132. xjroadMap = varMap.get(prevCompanyName);
  133. xjroadMap.put("小计", xjList);
  134. varMap.put(prevCompanyName, xjroadMap);
  135. }
  136. ArrayList<PageData> mpList = new ArrayList<PageData>();
  137. LinkedHashMap<String, ArrayList<PageData>> mroadMap = new LinkedHashMap<String, ArrayList<PageData>>();
  138. mpList.add(tpd);
  139. mroadMap.put(road, mpList);
  140. varMap.put(company, mroadMap);
  141. prevCompanyName = company;
  142. prevCompanyId = companyId;
  143. }
  144. }
  145. PageData lastxjPd = new PageData();
  146. lastxjPd.put("COMPANY", prevCompanyName);
  147. lastxjPd.put("ROAD", "小计");
  148. lastxjPd.put("PROJECT_NAME", "");
  149. lastxjPd.put("COMPANY_ID", prevCompanyId);
  150. List<PageData> dettListNew = new ArrayList<PageData>();
  151. for(Entry<String, LinkedHashMap<String, java.util.ArrayList<PageData>>> centry : varMap.entrySet()){
  152. HashMap<String, java.util.ArrayList<PageData>> roadMap = centry.getValue();
  153. for(Entry<String, java.util.ArrayList<PageData>> rentry : roadMap.entrySet()){
  154. ArrayList<PageData> projectList = rentry.getValue();
  155. for(PageData ppd : projectList){
  156. dettListNew.add(ppd);
  157. }
  158. }
  159. }
  160. dettListNew.add(lastxjPd);
  161. mv.addObject("varList", dettListNew);
  162. }
  163. mv.addObject("pd", pd);
  164. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  165. return mv;
  166. }
  167. /**显示对应的报表列表
  168. * @param
  169. * @throws Exception
  170. */
  171. @RequestMapping(value="/goReport")
  172. public ModelAndView goReport()throws Exception{
  173. ModelAndView mv = this.getModelAndView();
  174. PageData pd = new PageData();
  175. pd = this.getPageData();
  176. mv.setViewName("information/monthProgress/monthProgress_list2");
  177. /*mv.addObject("varList", varList);
  178. mv.addObject("pd", pd);*/
  179. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  180. return mv;
  181. }
  182. /**显示、编辑子表格
  183. * @param
  184. * @throws Exception
  185. */
  186. @RequestMapping(value="/showTableRecod")
  187. public ModelAndView showTableRecod()throws Exception{
  188. ModelAndView mv = this.getModelAndView();
  189. PageData pd = new PageData();
  190. pd = this.getPageData();
  191. // List<PageData> varList = monthProgressService.findTableById(pd); //获取对应的表格列表
  192. mv.setViewName("information/monthProgress/monthProgress_edit");
  193. // mv.addObject("varList", varList);
  194. mv.addObject("pd", pd);
  195. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  196. return mv;
  197. }
  198. /**查询日常月度完成情况表
  199. * @param
  200. * @throws Exception
  201. */
  202. @RequestMapping(value="/showDailyTable")
  203. public ModelAndView showDailyTable(Model model)throws Exception{
  204. ModelAndView mv = this.getModelAndView();
  205. PageData pd = new PageData();
  206. pd = this.getPageData();
  207. pd.put("table","oa_department_"+pd.get("YEAR").toString());
  208. mv.setViewName("information/monthProgress/monthSumTable/dailyCompletion_list");
  209. List<PageData> varList = new ArrayList<PageData>();
  210. List<PageData> companyRoadList = monthProgressService.getCompanyRoadList(pd);
  211. Map<String,List<String>> companyRoad = new HashMap<String,List<String>>();
  212. List<String> companyList = new ArrayList<String>();
  213. for(PageData tpd : companyRoadList){
  214. if(tpd.get("PARENT_ID").equals("0")){
  215. companyList.add(tpd.get("NAME").toString());
  216. List<String> roadList = new ArrayList<String>();
  217. for(PageData tempPd : companyRoadList){
  218. if(tempPd.get("PARENT_ID").equals(tpd.get("DEPARTMENT_ID"))){
  219. roadList.add(tempPd.get("NAME").toString());
  220. }
  221. }
  222. companyRoad.put(tpd.get("NAME").toString(), roadList);
  223. }
  224. }
  225. mv.addObject("companyList", companyList);
  226. mv.addObject("companyRoad", JSONArray.fromObject(companyRoad));
  227. mv.addObject("pd", pd);
  228. //mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  229. return mv;
  230. }
  231. public static void main(String[] args) {
  232. // TODO Auto-generated method stub
  233. }
  234. }