|
@@ -1,2593 +0,0 @@
|
|
|
-package com.zhcs.dt.controller.information.annualPlan;
|
|
|
-
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Map.Entry;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.UUID;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-
|
|
|
-import net.sf.json.JSONArray;
|
|
|
-import net.sf.json.JSONObject;
|
|
|
-import oracle.net.aso.p;
|
|
|
-
|
|
|
-import org.apache.commons.io.FileUtils;
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
-import org.springframework.stereotype.Controller;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
-import org.springframework.web.servlet.ModelAndView;
|
|
|
-
|
|
|
-import com.zhcs.dt.controller.base.BaseController;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.AnnualPlanManager;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.DownloadZip;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.ImoprtJson;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.ImportDoc;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.MultExcelUtils;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.WordUtils;
|
|
|
-import com.zhcs.dt.service.information.annualPlan.impl.AnnualDailyCompService;
|
|
|
-import com.zhcs.dt.util.AppUtil;
|
|
|
-import com.zhcs.dt.util.Jurisdiction;
|
|
|
-import com.zhcs.dt.util.PageData;
|
|
|
-import com.zhcs.dt.util.Tools;
|
|
|
-
|
|
|
-/**
|
|
|
- * 类名称:年度日常养护计划完成情况
|
|
|
- */
|
|
|
-@Controller
|
|
|
-@RequestMapping(value="/annualDailyComp")
|
|
|
-class AnnualDailyCompController extends BaseController {
|
|
|
- @Resource(name="annualDailyCompService")
|
|
|
- private AnnualDailyCompService annualDailyCompService;
|
|
|
- @Resource(name="annualPlanService")
|
|
|
- private AnnualPlanManager annualPlanService;
|
|
|
- private ShowTableRecodUtil showTableRecodUtil = new ShowTableRecodUtil();
|
|
|
- private int actulItemIndex = 0;
|
|
|
- /**显示、编辑子表格
|
|
|
- * @param
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- @RequestMapping(value="/showTableRecod")
|
|
|
- public ModelAndView showTableRecod()throws Exception{
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> varList = new ArrayList<PageData>();
|
|
|
- PageData monPlanList = new PageData();
|
|
|
- String name = pd.getString("NAME");
|
|
|
- String projectName = "";
|
|
|
- if(name.contains("---")){
|
|
|
- projectName = name.split("---")[1];
|
|
|
- }
|
|
|
- pd.put("PROJECT_NAME", projectName);
|
|
|
- if (viewType == 1 || viewType == 2) varList = showTableRecodUtil.showTableRecod(annualDailyCompService, pd);
|
|
|
- else if (viewType == 3){
|
|
|
- varList = annualDailyCompService.showTableRecod2(pd);
|
|
|
- monPlanList = annualDailyCompService.getMonPlan(pd);
|
|
|
- }
|
|
|
- String mode = "edit";
|
|
|
- if (varList == null || varList.size() == 0) {
|
|
|
- //设置查询oa_department的动态表名
|
|
|
- pd.put("table", "oa_department_"+pd.getString("YEAR").toString());
|
|
|
- if (viewType == 1) varList = annualDailyCompService.showRoad(pd);
|
|
|
- else if (viewType == 3) {
|
|
|
- if (pd.get("TABLETYPE").equals("highway_prevention_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_repair_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_test_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_emergency_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_scientific_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_special_project_dettable")) {
|
|
|
- List<PageData> sublist = new ArrayList<PageData>();
|
|
|
- PageData nulldata = new PageData();
|
|
|
- nulldata.put("ITEM_NAME", "");
|
|
|
- nulldata.put("UNIT", "");
|
|
|
- nulldata.put("UNIT_PRICE", "");
|
|
|
- nulldata.put("NUMBER", "");
|
|
|
- nulldata.put("TOTAL_COST", "");
|
|
|
- for (int i = 0; i < 3; i++) {
|
|
|
- sublist.add(nulldata);
|
|
|
- }
|
|
|
- mv.addObject("sublist", sublist);
|
|
|
- mv.addObject("listSize", 6);
|
|
|
- }
|
|
|
- }
|
|
|
- mode = "add";
|
|
|
- }else if (viewType == 2){
|
|
|
- mv.addObject("dataMap", JSONObject.fromObject(varList.get(0)));
|
|
|
- }else if (viewType == 3){
|
|
|
- mv.addObject("dataMap", JSONObject.fromObject(varList.get(0)));
|
|
|
- if (pd.get("TABLETYPE").equals("highway_prevention_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_repair_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_special_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_emergency_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_test_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_scientific_project_dettable")) {
|
|
|
- pd.put("PROJECT_NAME", varList.get(0).get("PROJECT_NAME"));
|
|
|
- pd.put("subtable", pd.get("TABLETYPE")+"_cost");
|
|
|
- List<PageData> sublist = annualDailyCompService.wordListRecorde(pd);
|
|
|
-// PageData nulldata = new PageData();
|
|
|
-// nulldata.put("ITEM_NAME", "");
|
|
|
-// nulldata.put("UNIT", "");
|
|
|
-// nulldata.put("UNIT_PRICE", "");
|
|
|
-// nulldata.put("NUMBER", "");
|
|
|
-// nulldata.put("TOTAL_COST", "");
|
|
|
-// int size = 3-sublist.size();
|
|
|
-// for (int i = 0; i < size; i++) {
|
|
|
-// sublist.add(nulldata);
|
|
|
-// }
|
|
|
- int listSize = sublist.size()+3;
|
|
|
- mv.addObject("sublist", JSONArray.fromObject(sublist));
|
|
|
- mv.addObject("listSize", listSize);
|
|
|
- }
|
|
|
- }
|
|
|
- JSONArray arr = JSONArray.fromObject(varList);
|
|
|
- mv.addObject("varList", arr);
|
|
|
- mv.addObject("monPlanList", monPlanList==null?pd:JSONObject.fromObject(monPlanList));
|
|
|
- pd.put("mode", mode);
|
|
|
- mv.setViewName("information/annualPlan/annualTableRecord/"+pd.getString("TABLETYPE"));
|
|
|
- mv.addObject("pd", pd);
|
|
|
- mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
|
|
|
- return mv;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/saveData")
|
|
|
- @ResponseBody
|
|
|
- public Object saveData(String data,String TABLETYPE,String COMPANY_ID,String YEAR,String ROAD_ID,String COMPANY,String ROAD) throws Exception{
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd.put("data", data);
|
|
|
- pd.put("TABLETYPE", TABLETYPE);
|
|
|
- pd.put("COMPANY_ID", COMPANY_ID);
|
|
|
- pd.put("YEAR", YEAR);
|
|
|
- pd.put("ROAD_ID", ROAD_ID);
|
|
|
- pd.put("COMPANY", COMPANY);
|
|
|
- pd.put("ROAD", ROAD);
|
|
|
- JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> varList = new ArrayList<PageData>();
|
|
|
- if (viewType == 1){
|
|
|
- varList = annualDailyCompService.hasTableRecod(pd);
|
|
|
- }
|
|
|
- else if (viewType == 2){
|
|
|
- varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- }
|
|
|
- Map<String,Object> map = dealWithData(pd,varList,jsonarray);
|
|
|
- if(pd.getString("TABLETYPE").equals("highway_annual_plan_sumtable")){
|
|
|
- //需要把预备费合入预备费表highway_reserve_fees_sumtable_total
|
|
|
- if (jsonarray.size()>0) {
|
|
|
- Object reserve = jsonarray.getJSONObject(0).get("RESERVE_DESIGN");
|
|
|
- pd.put("RESERVE_DESIGN", reserve);
|
|
|
- }
|
|
|
-
|
|
|
- dealReserveRecod(pd);
|
|
|
- }
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- private void dealReserveRecod(PageData pd) throws Exception{
|
|
|
- pd.put("TABLETYPE", "highway_reserve_fees_sumtable_total");
|
|
|
- List<PageData> varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- if((varList == null || varList.size() == 0) && (pd.get("RESERVE_DESIGN") != null && !"".equals(pd.get("RESERVE_DESIGN")))){
|
|
|
- annualDailyCompService.saveRecodToReserve(pd);
|
|
|
- }else{
|
|
|
- if("".equals(pd.get("RESERVE_DESIGN"))){
|
|
|
- pd.put("RESERVE_DESIGN",null);
|
|
|
- }
|
|
|
- annualDailyCompService.updateRecodToReserve(pd);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/saveDocData")
|
|
|
- @ResponseBody
|
|
|
- public Object saveDocData(String data,String dataYDFJ) throws Exception{
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- JSONArray jsonarray = JSONArray.fromObject(data);
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
-// JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- List<PageData> varList = new ArrayList<PageData>();
|
|
|
- if (pd.get("TABLETYPE").equals("highway_technica_statable")||pd.get("TABLETYPE").equals("highway_traiffcinfo_sumtable")) {
|
|
|
- varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- }else {
|
|
|
- varList = annualDailyCompService.hasTableRecod3(pd);
|
|
|
- }
|
|
|
- if(!(pd.get("TABLETYPE").equals("highway_technica_statable") || pd.get("TABLETYPE").equals("highway_traiffcinfo_sumtable"))
|
|
|
- && pd.get("mode").equals("add")){
|
|
|
- if(varList.size() >0){
|
|
|
- map.put("msg", "已存在相同立项表");
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }else{
|
|
|
- pd.put("CTIME", Tools.date2Str(new Date())); //创建时间
|
|
|
- pd.put("MTIME", Tools.date2Str(new Date())); //修改时间
|
|
|
- pd.put("STATUS", "编制中"); //修改时间
|
|
|
- pd.put("COMPILER", Jurisdiction.getUsername());
|
|
|
- pd.put("COMPILE_TIME", Tools.date2Str(new Date()));
|
|
|
- List<PageData> tableVarList = annualDailyCompService.hasTableRecodFormTableList(pd); //查找annual_table_list是否已存在该立项表记录
|
|
|
- if(tableVarList.size() == 0){
|
|
|
- annualPlanService.addNewTableInfo(pd); //insert annual_table_list新增立项详表
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- JSONArray dataArray = new JSONArray();
|
|
|
- if (jsonarray.size() > 0 && jsonarray != null) {
|
|
|
- dataArray.add(jsonarray.get(0));
|
|
|
- }
|
|
|
- map = dealWithData(pd,varList,dataArray);
|
|
|
- if (jsonarray.size() > 0 && map.get("msg").equals("success") && !pd.get("TABLETYPE").equals("highway_scientific_project_dettable")
|
|
|
- && !pd.get("TABLETYPE").equals("highway_technica_statable") && !pd.get("TABLETYPE").equals("highway_traiffcinfo_sumtable")) {
|
|
|
- JSONObject jsonmap = JSONObject.fromObject(dataYDFJ);
|
|
|
- map = dealWithYDFJData(pd,jsonmap);
|
|
|
- }
|
|
|
- if (jsonarray.size() > 1 && map.get("msg").equals("success")) {
|
|
|
- JSONArray sublistArray = jsonarray.discard(0);
|
|
|
- pd.put("TABLETYPE", pd.get("TABLETYPE")+"_cost");
|
|
|
- map = dealWithSubListData(pd,sublistArray);
|
|
|
- }
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理新增编辑数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithData(PageData pd,List<PageData> varList,JSONArray jsonarray) throws Exception{
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- try {
|
|
|
- for (Object object : jsonarray) {
|
|
|
- JSONObject arrMap = JSONObject.fromObject(object);
|
|
|
- Set entryarray = arrMap.entrySet();
|
|
|
- ArrayList<Object> keyarray = new ArrayList<Object>();
|
|
|
- ArrayList<Object> valuearray = new ArrayList<Object>();
|
|
|
- for (Object entry : entryarray) {
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- boolean saveFlag = true;
|
|
|
- //编辑
|
|
|
- if (varList != null && varList.size() != 0)
|
|
|
- saveFlag = !"ROAD".equals(arr[0])&&!"YEAR".equals(arr[0])&&!"COMPANY".equals(arr[0])
|
|
|
- &&!"ROAD_ID".equals(arr[0])&&!"COMPANY_ID".equals(arr[0])&&!"PROJECT_NAME".equals(arr[0]);
|
|
|
- saveFlag = saveFlag && !"STATUS".equals(arr[0]);
|
|
|
- if (saveFlag) {
|
|
|
- keyarray.add(arr[0]);
|
|
|
- if (arr.length > 1) {
|
|
|
- valuearray.add(arr[1]);
|
|
|
- }else {
|
|
|
- valuearray.add(null);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- pd.put("KEYS", StringUtils.join(keyarray.toArray(), ","));
|
|
|
- pd.put("KEYARRAY", keyarray);
|
|
|
- pd.put("VALUEARRAY", valuearray);
|
|
|
- pd.put("ROAD_ID", arrMap.get("ROAD_ID"));
|
|
|
- pd.put("PROJECT_NAME", arrMap.get("PROJECT_NAME"));
|
|
|
- pd.put("viewtype", setViewType(pd.getString("TABLETYPE")));
|
|
|
- if (pd.getString("TABLETYPE").equals("highway_technica_statable")||pd.getString("TABLETYPE").equals("highway_traiffcinfo_sumtable"))
|
|
|
- pd.put("viewtype", 1);
|
|
|
- //新增
|
|
|
- if (varList == null || varList.size() == 0) annualDailyCompService.saveTableRecod(pd);
|
|
|
- //编辑
|
|
|
- else if (keyarray.size() > 0) annualDailyCompService.editTableRecod(pd);
|
|
|
- }
|
|
|
- map.put("msg","success");
|
|
|
- } catch (Exception e) {
|
|
|
- map.put("msg","保存失败!");
|
|
|
- logger.warn(e);
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理立项表子表新增编辑数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithSubListData(PageData pd,JSONArray jsonarray) throws Exception{
|
|
|
- List<Map<String, String>> idlist = new ArrayList<Map<String,String>>();
|
|
|
- //List<String> SubListid = annualDailyCompService.selectSubListIdByRoad(pd);
|
|
|
- List<String> delSubListuid = new ArrayList<String>();
|
|
|
- for (Object object : jsonarray) {
|
|
|
- JSONObject arrMap = JSONObject.fromObject(object);
|
|
|
- Set entryarray = arrMap.entrySet();
|
|
|
- boolean flag = true;
|
|
|
- /*if(SubListid.contains(arrMap.get("ID"))){
|
|
|
- //TODU
|
|
|
- }*/
|
|
|
- if (!pd.get("TABLETYPE").equals("highway_scientific_project_dettable_cost")) {
|
|
|
- if ((!arrMap.get("ID").equals(""))&&arrMap.get("ITEM_NAME").equals("")&&arrMap.get("UNIT").equals("")
|
|
|
- &&arrMap.get("UNIT_PRICE").equals("")&&arrMap.get("NUMBER").equals("")){
|
|
|
- arrMap.put("TABLETYPE", pd.get("TABLETYPE"));
|
|
|
- annualDailyCompService.deleteSubListDataById(arrMap);
|
|
|
- annualDailyCompService.deleteRecodInfo(arrMap);
|
|
|
- flag = false;
|
|
|
- }else if (arrMap.get("ITEM_NAME").equals("")) {
|
|
|
- flag = false;
|
|
|
- }
|
|
|
- }else if ((!arrMap.get("ID").equals(""))&&arrMap.get("SUBJECT").equals("")&&arrMap.get("COSET").equals("")
|
|
|
- &&arrMap.get("EXPENDITURE_SUBJECT").equals("")&&arrMap.get("EXPENDITURE_COST").equals("")) {
|
|
|
- arrMap.put("TABLETYPE", pd.get("TABLETYPE"));
|
|
|
- annualDailyCompService.deleteSubListDataById(arrMap);
|
|
|
- flag = false;
|
|
|
- }else if (arrMap.get("SUBJECT").equals("")&&arrMap.get("COSET").equals("")
|
|
|
- &&arrMap.get("EXPENDITURE_SUBJECT").equals("")&&arrMap.get("EXPENDITURE_COST").equals("")) {
|
|
|
- flag = false;
|
|
|
- }
|
|
|
- if (flag) {
|
|
|
- ArrayList<Object> keyarray = new ArrayList<Object>();
|
|
|
- ArrayList<Object> valuearray = new ArrayList<Object>();
|
|
|
- for (Object entry : entryarray) {
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- if (arr.length > 1) {
|
|
|
- boolean saveFlag = true;
|
|
|
- //编辑
|
|
|
- if (!arrMap.get("ID").equals(""))
|
|
|
- saveFlag = !"ROAD".equals(arr[0])&&!"YEAR".equals(arr[0])&&!"COMPANY".equals(arr[0])&&!"ROAD_ID".equals(arr[0])
|
|
|
- &&!"COMPANY_ID".equals(arr[0])&&!"ID".equals(arr[0])&&!"PROJECT_NAME".equals(arr[0]);
|
|
|
- else saveFlag = !"ID".equals(arr[0]);
|
|
|
- if (saveFlag) {
|
|
|
- keyarray.add(arr[0]);
|
|
|
- if(arr.length>2){
|
|
|
- String valueStr="";
|
|
|
- for(int k=1;k<arr.length;k++){
|
|
|
- valueStr+="="+arr[k];
|
|
|
- }
|
|
|
- valuearray.add(valueStr.subSequence(1, valueStr.length()));
|
|
|
- System.out.println(valueStr);
|
|
|
- }
|
|
|
- else{
|
|
|
- valuearray.add(arr[1]);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (arrMap.get("ID").equals("")){
|
|
|
- String id = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
- keyarray.add("ID");
|
|
|
- valuearray.add(id);
|
|
|
- Map<String, String> idmap = new HashMap<String, String>();
|
|
|
- idmap.put("id", id);
|
|
|
- idmap.put("name", (String)arrMap.get("ITEM_NAME"));
|
|
|
- idlist.add(idmap);
|
|
|
- }
|
|
|
- pd.put("KEYS", StringUtils.join(keyarray.toArray(), ","));
|
|
|
- pd.put("KEYARRAY", keyarray);
|
|
|
- pd.put("VALUEARRAY", valuearray);
|
|
|
- pd.put("ROAD_ID", arrMap.get("ROAD_ID"));
|
|
|
- pd.put("ID", arrMap.get("ID"));
|
|
|
- //新增
|
|
|
- if (arrMap.get("ID").equals("")) annualDailyCompService.saveSubListData(pd);
|
|
|
- //编辑
|
|
|
- else if (keyarray.size() > 0) annualDailyCompService.editSubListData(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg","success");
|
|
|
- map.put("idlist",idlist);
|
|
|
- return map;
|
|
|
- }
|
|
|
- /**
|
|
|
- * 处理立项表进度月度分解新增编辑数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithYDFJData(PageData pd,JSONObject jsonmap) throws Exception{
|
|
|
- annualDailyCompService.deleteMonthRecord(pd);
|
|
|
- for (int i = 1; i < 13; i++) {
|
|
|
- pd.put("MONTH",i);
|
|
|
- if ((!jsonmap.get("PLAN_COST_"+i).equals(""))||(!jsonmap.get("PLAN_QUANTITIES_"+i).equals(""))) {
|
|
|
- pd.put("PLAN_COST", jsonmap.get("PLAN_COST_"+i).equals("")?null:jsonmap.get("PLAN_COST_"+i));
|
|
|
- pd.put("PLAN_QUANTITIES", jsonmap.get("PLAN_QUANTITIES_"+i).equals("")?null:jsonmap.get("PLAN_QUANTITIES_"+i));
|
|
|
- annualDailyCompService.insertMonthRecord(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg","success");
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/saveRecordInfo")
|
|
|
- @ResponseBody
|
|
|
- public Object saveRecordInfo(String recordData,String recordBeforeValue) throws Exception{
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- //{"102":{"PLAN_COST":"212"},"104":{"PLAN_COST":"44456"}}
|
|
|
- JSONObject datamap = JSONObject.fromObject(recordData);
|
|
|
- JSONObject datamapb = JSONObject.fromObject(recordBeforeValue);
|
|
|
-// JSONObject datamap = JSONObject.fromObject(pd.get("recordData"));
|
|
|
-// JSONObject datamapb = JSONObject.fromObject(pd.get("recordBeforeValue"));
|
|
|
- //[102={"PLAN_COST":" 00"}, 104={"PLAN_COST":"777"}]
|
|
|
- Set entryarray = datamap.entrySet();
|
|
|
- Set entryarrayb = datamapb.entrySet();
|
|
|
-// pd.put("MODIFIER", "admin");
|
|
|
- pd.put("MODIFIER", Jurisdiction.getU_name());
|
|
|
- for (Object entry : entryarray) {
|
|
|
- //102={"PLAN_COST":" 00"}
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- pd.put(pd.get("type"), arr[0]);
|
|
|
- if(arr.length>2){
|
|
|
- String valueStr="";
|
|
|
- for(int k=1;k<arr.length;k++){
|
|
|
- valueStr+="="+arr[k];
|
|
|
- }
|
|
|
- arr[1] = valueStr.subSequence(1, valueStr.length());
|
|
|
- }
|
|
|
- JSONObject columnmap = JSONObject.fromObject(arr[1]);
|
|
|
- Set columnentry = columnmap.entrySet();
|
|
|
- for (Object column : columnentry) {
|
|
|
- Object[] columnarr = column.toString().split("=");
|
|
|
- pd.put("TABLE_FIELDS", columnarr[0]);
|
|
|
- if(columnarr.length>2){
|
|
|
- String columnStr="";
|
|
|
- for(int k=1;k<columnarr.length;k++){
|
|
|
- columnStr+="="+columnarr[k];
|
|
|
- }
|
|
|
- columnarr[1] = columnStr.subSequence(1, columnStr.length());
|
|
|
- }
|
|
|
- if (columnarr.length > 1) pd.put("AFTER", columnarr[1]);
|
|
|
- else pd.put("AFTER", null);
|
|
|
- for (Object entryb : entryarrayb) {
|
|
|
- if (entryb.toString().indexOf((String) arr[0]) == 0) {
|
|
|
- Object[] arrb = entryb.toString().split("=");
|
|
|
- if(arrb.length>2){
|
|
|
- String arrbStr="";
|
|
|
- for(int k=1;k<arrb.length;k++){
|
|
|
- arrbStr+="="+arrb[k];
|
|
|
- }
|
|
|
- arrb[1] = arrbStr.subSequence(1, arrbStr.length());
|
|
|
- }
|
|
|
- JSONObject columnmapb = JSONObject.fromObject(arrb[1]);
|
|
|
- Set columnentryb = columnmapb.entrySet();
|
|
|
- for (Object columnb : columnentryb) {
|
|
|
- if (columnb.toString().indexOf((String) columnarr[0]) == 0) {
|
|
|
- Object[] columnarrb = columnb.toString().split("=");
|
|
|
- if(columnarrb.length>2){
|
|
|
- String columnarrbStr="";
|
|
|
- for(int k=1;k<columnarrb.length;k++){
|
|
|
- columnarrbStr+="="+columnarrb[k];
|
|
|
- }
|
|
|
- columnarrb[1] = columnarrbStr.subSequence(1, columnarrbStr.length());
|
|
|
- }
|
|
|
-
|
|
|
- pd.put("BEFORE", columnarrb[1]);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- annualDailyCompService.insertRecodInfo(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg","success");
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/showRecodInfo")
|
|
|
- @ResponseBody
|
|
|
- public Object showRecodInfo() throws Exception{
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
-// pd.put("MODIFIER", "admin");
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- List<PageData> rocordInfoList = annualDailyCompService.showRecodInfo(pd);
|
|
|
- JSONArray rocordInfoListarr = JSONArray.fromObject(rocordInfoList);
|
|
|
- map.put("rocordInfoList", rocordInfoList);
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- //多sheet
|
|
|
-// @RequestMapping(value="/export")
|
|
|
-// @ResponseBody
|
|
|
-// public ModelAndView export(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
-// ModelAndView mv = this.getModelAndView();
|
|
|
-// PageData pd = new PageData();
|
|
|
-// pd = this.getPageData();
|
|
|
-// List<PageData> exceldata = setMultExcelData(pd);
|
|
|
-// String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
-// MultExcelUtils ex = new MultExcelUtils();
|
|
|
-// ex.exportExcel("高管中心数据.xlsx",path,response,exceldata);
|
|
|
-// return mv;
|
|
|
-// }
|
|
|
-
|
|
|
- //单sheet
|
|
|
-// @RequestMapping(value="/export")
|
|
|
-// @ResponseBody
|
|
|
-// public ModelAndView export(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
-// ModelAndView mv = this.getModelAndView();
|
|
|
-// PageData pd = new PageData();
|
|
|
-// pd = this.getPageData();
|
|
|
-// List<PageData> list = annualDailyCompService.showTableRecod(pd);
|
|
|
-// String fileName = "单位日常养护计划完成情况汇总表.xlsx";
|
|
|
-// String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
-// ExcelUtils ex = new ExcelUtils();
|
|
|
-// ex.exportExcel(fileName, path, response, list, (String)pd.get("keyStr"));
|
|
|
-// return mv;
|
|
|
-// }
|
|
|
-
|
|
|
- /**
|
|
|
- * 计划
|
|
|
- * @param param
|
|
|
- * @return
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- public List<PageData> setPlanMultExcelData(PageData param) throws Exception {
|
|
|
- List<PageData> result = new ArrayList<PageData>();
|
|
|
- String[] modelNames = {
|
|
|
- "高速公路预备费使用情况汇总表","高速公路年度养护计划汇总表","高速公路日常养护计划统计表",
|
|
|
- //分报告
|
|
|
- "高速公路预防养护计划统计表","高速公路修复养护计划统计表","高速公路专项养护计划统计表",
|
|
|
- "高速公路试验检测项目计划统计表","高速公路科研项目计划统计表","高速公路设备大修项目计划统计表"
|
|
|
- //无模板
|
|
|
- ,"高速公路养护质量目标表(SRI)","高速公路养护质量目标表(PWI)"
|
|
|
- };
|
|
|
- String[] keyStrs = {
|
|
|
- "","","",
|
|
|
- //分报告
|
|
|
- "PROJECT_NAME,PROJECT_TYPE,SCALE,QUANTITIES,ESTIMATION,REMARKS"//1
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,SCALE,QUANTITY,ESTIMATION,REMARKS"//2
|
|
|
- ,"PROJECT_NAME,QUANTITIES,PROJECT_COST,OTHER_MATTER"//9
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,CONTENTS,COST_ESTIMAT,REMARKS"//7
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,RESEARCH_CONTENTS,COST_ESTIMAT,REMARKS"//3
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,PROJECT_DESCRIBE,ESTIMATE_COST,REMARKS" //5
|
|
|
- //无模板
|
|
|
- ,"",""
|
|
|
- };
|
|
|
- String[] tableNames = {
|
|
|
- "highway_reserve_fees_sumtable","highway_annual_plan_sumtable","highway_daily_plan_statable",
|
|
|
- //分报告
|
|
|
- "highway_prevention_plan_statable","highway_repair_plan_statable","highway_special_plan_statable","highway_test_plan_statable",
|
|
|
- "highway_scientific_plan_statable",
|
|
|
- "highway_equipment_overhaul_plan_statable"
|
|
|
- //无模板
|
|
|
- ,"highway_quality_goals_table","highway_quality_goals_table"
|
|
|
- };
|
|
|
-
|
|
|
- int[] startRowIndexs = {0,0,0,3,3,3,3,3,3,0,0};
|
|
|
- int[] tabletype = {0,0,0,2,2,2,2,2,2,0,0};
|
|
|
- int[] totalRange = {0,0,0,4,4,2,3,3,3,0,0};
|
|
|
- String[][][] funcArrys = {
|
|
|
- {},{},{},
|
|
|
- //分报告
|
|
|
- {},{},{},{},{},{}
|
|
|
- //无模板
|
|
|
- ,{},{}
|
|
|
- };
|
|
|
-
|
|
|
- PageData pd = new PageData();
|
|
|
- pd.put("COMPANY_ID", param.get("COMPANY_ID"));
|
|
|
- pd.put("ROAD_ID", param.get("ROAD_ID"));
|
|
|
- pd.put("ROAD", param.get("ROAD"));
|
|
|
- for (int i = 0; i < tableNames.length; i++) {
|
|
|
- PageData data = new PageData();
|
|
|
- data.put("modelName", modelNames[i]);
|
|
|
- data.put("keyStr", keyStrs[i]);
|
|
|
- data.put("startRowIndex", startRowIndexs[i]);
|
|
|
- data.put("funcArry", funcArrys[i]);
|
|
|
- data.put("tabletype", tabletype[i]);
|
|
|
- data.put("totalRange", totalRange[i]);
|
|
|
- pd.put("TABLETYPE", tableNames[i]);
|
|
|
- pd.put("YEAR", param.get("YEAR"));
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> list = new ArrayList<PageData>();
|
|
|
- if (viewType == 1 || viewType == 2) list = showTableRecodUtil.showTableRecod(annualDailyCompService, pd);
|
|
|
- else if (viewType == 3) list = annualDailyCompService.showTableRecod2(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.selectAllRecod(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.exportTableRecod(pd);
|
|
|
- data.put("list", list);
|
|
|
- data.put("pd", pd);
|
|
|
- result.add(data);
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 完成情况 excel 数据准备
|
|
|
- * @param param
|
|
|
- * @return
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- public List<PageData> setCompleteMultExcelData(PageData param) throws Exception {
|
|
|
- List<PageData> result = new ArrayList<PageData>();
|
|
|
- String[] modelNames = {
|
|
|
- "高速公路养护计划完成情况汇总表","高速公路日常养护计划完成情况汇总表","高速公路日常养护计划完成情况详表"
|
|
|
- ,"高速公路预防养护计划完成情况汇总表","高速公路修复养护计划完成情况汇总表","高速专项养护计划完成情况汇总表"
|
|
|
- ,"高速公路试验检测项目计划完成情况汇总表","高速公路科研项目计划完成情况汇总表","高速公路设备大修项目计划完成情况汇总表"
|
|
|
- };
|
|
|
- String[] keyStrs = {
|
|
|
- "","",""
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,SCALE,PLAN_QUANTITIES,PLAN_COST,ACTUAL_QUANTITIES,ACTUAL_COST,COMPLETE_RATIO,REMARKS"
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,SCALE,PLAN_QUANTITIES,PLAN_COST,ACTUAL_QUANTITIES,ACTUAL_COST,COST_COMPLETE_RATIO,REMARKS"
|
|
|
- ,"SPECIAL_PROJECT_NAME,PLAN_COST,ACTUAL_COST,COST_COMPLETE_RATIO,COMPLETE_DESCRIBE,REMARKS"
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,PLAN_COST,ACTUAL_COST,COMPLETE_RATIO,XMWCQKSM,REMARKS"
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,PLAN_COST,ACTUAL_COST,COST_COMPLETE_RATIO,XMWCQKSM,REMARKS"
|
|
|
- ,"PROJECT_NAME,PROJECT_TYPE,PLAN_COST,ACTUAL_COST,COMPLETE_RATIO,XMWCQKSM,REMARKS"
|
|
|
- };
|
|
|
- String[] tableNames = {
|
|
|
- "highway_plan_comp_sumtable","highway_daily_comp_sumtable","highway_daily_comp_dettable"
|
|
|
- ,"highway_prevention_plan_sumtable","highway_repair_comp_sumtable","highway_special_comp_sumtable"
|
|
|
- ,"highway_test_comp_sumtable","highway_scientific_comp_sumtable","highway_equipment_overhaul_comp_sumtable"
|
|
|
- };
|
|
|
-
|
|
|
- int[] startRowIndexs = {0,0,0,4,4,3,3,3,3};
|
|
|
- int[] tabletype = {0,0,0,2,2,2,2,2,2};
|
|
|
- int[] totalRange = {0,0,0,4,4,1,2,2,2};
|
|
|
- String[][][] funcArrys = {
|
|
|
- //分报告
|
|
|
- {},{},{}
|
|
|
- ,{{"percent","COMPLETE_RATIO","IF(ISERROR((H#row#/F#row#)),\"\",(H#row#/F#row#))"}} //11 highway_prevention_plan_sumtable
|
|
|
- ,{{"percent","COST_COMPLETE_RATIO","IF(ISERROR((H#row#/F#row#)),\"\",(H#row#/F#row#))"}} //10 highway_repair_comp_sumtable
|
|
|
- ,{{"percent","COST_COMPLETE_RATIO","IF(ISERROR((D#row#/C#row#)),\"\",(D#row#/C#row#))"}} //12 highway_special_comp_sumtable
|
|
|
- ,{{"percent","COMPLETE_RATIO","IF(ISERROR((E#row#/D#row#)),\"\",(E#row#/D#row#))"}} //8 highway_test_comp_sumtable
|
|
|
- ,{{"percent","COST_COMPLETE_RATIO","IF(ISERROR((E#row#/D#row#)),\"\",(E#row#/D#row#))"}} //4 highway_scientific_comp_sumtable
|
|
|
- ,{{"percent","COMPLETE_RATIO","IF(ISERROR((E#row#/D#row#)),\"\",(E#row#/D#row#))"}} //6 highway_equipment_overhaul_comp_sumtable
|
|
|
- };
|
|
|
-
|
|
|
- PageData pd = new PageData();
|
|
|
- pd.put("COMPANY_ID", param.get("COMPANY_ID"));
|
|
|
- pd.put("ROAD_ID", param.get("ROAD_ID"));
|
|
|
- pd.put("ROAD", param.get("ROAD"));
|
|
|
- for (int i = 0; i < tableNames.length; i++) {
|
|
|
- PageData data = new PageData();
|
|
|
- data.put("modelName", modelNames[i]);
|
|
|
- data.put("keyStr", keyStrs[i]);
|
|
|
- data.put("startRowIndex", startRowIndexs[i]);
|
|
|
- data.put("funcArry", funcArrys[i]);
|
|
|
- data.put("tabletype", tabletype[i]);
|
|
|
- data.put("totalRange", totalRange[i]);
|
|
|
- pd.put("TABLETYPE", tableNames[i]);
|
|
|
- pd.put("YEAR", param.get("YEAR"));
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> list = new ArrayList<PageData>();
|
|
|
- if (viewType == 1 || viewType == 2) list = showTableRecodUtil.showTableRecod(annualDailyCompService, pd);
|
|
|
- else if (viewType == 3) list = annualDailyCompService.showTableRecod2(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.selectAllRecod(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.exportTableRecod(pd);
|
|
|
- data.put("list", list);
|
|
|
- data.put("pd", pd);
|
|
|
- result.add(data);
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public List<PageData> setMultExcelData2(PageData param) throws Exception {
|
|
|
- List<PageData> result = new ArrayList<PageData>();
|
|
|
- String[] modelNames = {"单位养护计划完成情况汇总表","单位日常养护计划完成情况汇总表","单位预防养护计划完成情况汇总表",
|
|
|
- "单位修复养护计划完成情况汇总表","单位养护计划汇总表","单位日常养护计划汇总表",
|
|
|
- "单位预防养护计划汇总表","单位修复养护计划汇总表"};
|
|
|
- String[] keyStrs = {
|
|
|
- "ROAD,DESIGN_KM,CARE_KM,DAILY_DESIGN,DAILY_COMPLETE,DAILY_PROPORTION,DAILY_KM,"
|
|
|
- + "MINOR_PREVENTION_DESIGN,MINOR_PREVENTION_COMPLETE,MINOR_PREVENTION_PROPORTION,MIDDLE_PREVENTION_DESIGN,MIDDLE_PREVENTION_COMPLETE,MIDDLE_PREVENTION_PROPORTION,OVERHAUL_PREVENTION_DESIGN,OVERHAUL_PREVENTION_COMPLETE,OVERHAUL_PREVENTION_PROPORTION,SUM_PREVENTION_DESIGN,SUM_PREVENTION_COMPLETE,SUM_PREVENTION_PROPORTION,"
|
|
|
- + "MINOR_REPAIR_DESIGN,MINOR_REPAIR_COMPLETE,MINOR_REPAIR_PROPORTION,MIDDLE_REPAIR_DESIGN,MIDDLE_REPAIR_COMPLETE,MIDDLE_REPAIR_PROPORTION,OVERHAUL_DESIGN,OVERHAUL_COMPLETE,OVERHAUL_PROPORTION,SUM_REPAIR_DESIGN,SUM_REPAIR_COMPLETE,SUM_REPAIR_PROPORTION,"
|
|
|
- + "SPECIAL_DESIGN,SPECIAL_COMPLETE,SPECIAL_PROPORTION,"
|
|
|
- + "EMERGENCY_DESIGN,EMERGENCY_COMPLETE,EMERGENCY_PROPORTION,"
|
|
|
- + "TEST_DESIGN,TEST_COMPLETE,TEST_PROPORTION,"
|
|
|
- + "SCIENTIFIC_DESIGN,SCIENTIFIC_COMPLETE,SCIENTIFIC_PROPORTION,"
|
|
|
- + "DEVICE_DESIGN,DEVICE_COMPLETE,DEVICE_PROPORTION,"
|
|
|
- + "RESERVE_DESIGN,RESERVE_COMPLETE,RESERVE_PROPORTION,"
|
|
|
- + "TOTAL_DESIGN,TOTAL_COMPLETE,TOTAL_PROPORTION"
|
|
|
- ,"ROAD,DESIGN_KM,CARE_KM,PLAN_COST,CLEAN_COST,PATROL_COST,SUBGRADE_COST,PAVEMENT_COST,BRIDGE_COST,CULVERT_COST,TUNNEL_COST,TRAFFIC_SAFE_COST,ROADSIDE_COST,GREEN_COST,MAINT_COST,EMERGENCY_COST,TOTAL_COST,COST_KM,COM_RETIO"
|
|
|
- ,"ROAD,DESIGN_KM,CARE_KM,PLAN_COST,SUBGRADE_COST,PAVEMENT_COST,BRIDGE_COST,TUNNEL_COST,TRAFFIC_SAFE_COST,ROADSIDE_COST,GREEN_COST,OTHER_COST,SUM_COST,COM_RETIO"
|
|
|
- ,"ROAD,DESIGN_MK,MAINTAIN_KM,PLAN_COST,"
|
|
|
- + "MIN_SUBGRADE_COST,MIN_PAVEMENT_COST,MIN_BRIDGE_COST,MIN_TUNNEL_COST,MIN_TRAFFIC_SAFE_COST,MIN_ROADSIDE_COST,MIN_GREEN_COST,MIN_OTHER_COST,MIN_SUM_COST,"
|
|
|
- + "MID_SUBGRADE_COST,MID_PAVEMENT_COST,MID_BRIDGE_COST,MID_TUNNEL_COST,MID_TRAFFIC_SAFE_COST,MID_ROADSIDE_COST,MID_GREEN_COST,MID_OTHER_COST,MID_SUM_COST,"
|
|
|
- + "MAX_SUBGRADE_COST,MAX_PAVEMENT_COST,MAX_BRIDGE_COST,MAX_TUNNEL_COST,MAX_TRAFFIC_SAFE_COST,MAX_ROADSIDE_COST,MAX_GREEN_COST,MAX_OTHER_COST,MAX_SUM_COST,"
|
|
|
- + "SUBGRADE_COST,PAVEMENT_COST,BRIDGE_COST,TUNNEL_COST,TRAFFIC_SAFE_COST,ROADSIDE_COST,GREEN_COST,OTHER_COST,TOTAL,COM_RETIO"
|
|
|
- ,"ROAD,DESIGN_KM,CARE_KM,DAILY_DESIGN,DAILY_COST_KM,"
|
|
|
- + "MINOR_PREVENTION_DESIGN,MIDDLE_PREVENTION_DESIGN,OVERHAUL_PREVENTION_DESIGN,SUM_PREVENTION,"
|
|
|
- + "MINOR_REPAIR_DESIGN,MIDDLE_REPAIR,OVERHAUL_DESIGN,SUM_REPAIR,"
|
|
|
- + "SPECIAL_DESIGN,TEST_DESIGN,SCIENTIFIC_DESIGN,DEVICE_DESIGN,EMERGENCY_DESIGN,RESERVE_DESIGN,TOTAL_COST,TOTAL_COST_KM"
|
|
|
- ,"ROAD,DESIGN_KM,CARE_KM,CLEAN,PATROL,SUBGRADE,PAVEMENT,BRIDGE,CULVERT,TUNNEL,SAFE,LINE,GREEN,CAR,EMERGENCY,TOTAL_COST,COST_KM"
|
|
|
- ,"ROAD,DESIGN_KM,CARE_KM,MIN_SUBGRADE,MIN_PAVEMENT,MIN_BRIDGE,MIN_TUNNEL,MIN_TOTAL,MID_SUBGRADE,MID_PAVEMENT,MID_BRIDGE,MID_TUNNEL,MID_TOTAL,"
|
|
|
- + "MAX_SUBGRADE,MAX_PAVEMENT,MAX_BRIDGE,MAX_TUNNEL,MAX_TOTAL,TOTAL_SUBGRADE,TOTAL_PAVEMENT,TOTAL_BRIDGE,TOTAL_TUNNEL,TOTAL"
|
|
|
- ,"ROAD,DESIGN_MK,MAINTAIN_KM,"
|
|
|
- + "MIN_SUBGRADE,MIN_PAVEMENT,MIN_BRIDGE,MIN_TUNNEL,MIN_TRAFFIC_SAFE,MIN_ROADSIDE,MIN_GREEN,MIN_OTHER,MIN_SUM,"
|
|
|
- + "MID_SUBGRADE,MID_PAVEMENT,MID_BRIDGE,MID_TUNNEL,MID_TRAFFIC_SAFE,MID_ROADSIDE,MID_GREEN,MID_OTHER,MID_SUM,"
|
|
|
- + "MAX_SUBGRADE,MAX_PAVEMENT,MAX_BRIDGE,MAX_TUNNEL,MAX_TRAFFIC_SAFE,MAX_ROADSIDE,MAX_GREEN,MAX_OTHER,MAX_SUM,"
|
|
|
- + "SUBGRADE,PAVEMENT,BRIDGE,TUNNEL,TRAFFIC_SAFE,ROADSIDE,GREEN,OTHER,TOTAL"
|
|
|
- };
|
|
|
- String[] tableNames = {"annual_comp_sumtable","annual_daily_comp_sumtable","annual_prevention_comp_sumtable",
|
|
|
- "annual_repair_comp_sumtable","annual_plan_sumtable","annual_daily_plan_sumtable",
|
|
|
- "annual_prevention_plan_sumtable","annual_repair_plan_sumtable"};
|
|
|
- int[] startRowIndexs = {4,3,3, 4,3,2, 3,3};
|
|
|
- int[] tabletype = {1,1,1, 1,1,1, 1,1};
|
|
|
- int[] totalRange = {0,0,0, 0,0,0, 0,0};
|
|
|
- String[][][] funcArrys = {
|
|
|
- {{"percent","DAILY_PROPORTION","IF(ISERROR((G#row#/F#row#)),\"\",(G#row#/F#row#))"}
|
|
|
- ,{"percent","DAILY_KM","IF(ISERROR((G#row#/E#row#)),\"\",(G#row#/E#row#))"}
|
|
|
- ,{"percent","MINOR_PREVENTION_PROPORTION","IF(ISERROR((K#row#/J#row#)),\"\",(K#row#/J#row#))"}
|
|
|
- ,{"percent","MIDDLE_PREVENTION_PROPORTION","IF(ISERROR((N#row#/M#row#)),\"\",(N#row#/M#row#))"}
|
|
|
- ,{"percent","OVERHAUL_PREVENTION_PROPORTION","IF(ISERROR((Q#row#/P#row#)),\"\",(Q#row#/P#row#))"}
|
|
|
- ,{"sum","SUM_PREVENTION_DESIGN","SUM(J#row#,M#row#,P#row#)"}
|
|
|
- ,{"sum","SUM_PREVENTION_COMPLETE","SUM(K#row#,N#row#,Q#row#)"}
|
|
|
- ,{"percent","SUM_PREVENTION_PROPORTION","IF(ISERROR((T#row#/S#row#)),\"\",(T#row#/S#row#))"}
|
|
|
- ,{"percent","MINOR_REPAIR_PROPORTION","IF(ISERROR((W#row#/V#row#)),\"\",(W#row#/V#row#))"}
|
|
|
- ,{"percent","MIDDLE_REPAIR_PROPORTION","IF(ISERROR((Z#row#/Y#row#)),\"\",(Z#row#/Y#row#))"}
|
|
|
- ,{"percent","OVERHAUL_PROPORTION","IF(ISERROR((AC#row#/AB#row#)),\"\",(AC#row#/AB#row#))"}
|
|
|
- ,{"sum","SUM_REPAIR_DESIGN","SUM(V#row#,Y#row#,AB#row#)"}
|
|
|
- ,{"sum","SUM_REPAIR_COMPLETE","SUM(W#row#,Z#row#,AC#row#)"}
|
|
|
- ,{"percent","SUM_REPAIR_PROPORTION","IF(ISERROR((AF#row#/AE#row#)),\"\",(AF#row#/AE#row#))"}
|
|
|
- ,{"percent","SPECIAL_PROPORTION","IF(ISERROR((AI#row#/AH#row#)),\"\",(AI#row#/AH#row#))"}
|
|
|
- ,{"percent","EMERGENCY_PROPORTION","IF(ISERROR((AL#row#/AK#row#)),\"\",(AL#row#/AK#row#))"}
|
|
|
- ,{"percent","TEST_PROPORTION","IF(ISERROR((AO#row#/AN#row#)),\"\",(AO#row#/AN#row#))"}
|
|
|
- ,{"percent","SCIENTIFIC_PROPORTION","IF(ISERROR((AR#row#/AQ#row#)),\"\",(AR#row#/AQ#row#))"}
|
|
|
- ,{"percent","DEVICE_PROPORTION","IF(ISERROR((AU#row#/AT#row#)),\"\",(AU#row#/AT#row#))"}
|
|
|
- ,{"percent","RESERVE_PROPORTION","IF(ISERROR((AX#row#/AW#row#)),\"\",(AX#row#/AW#row#))"}
|
|
|
- ,{"sum","TOTAL_DESIGN","IF(ISNUMBER(F#row#),F#row#,0)+IF(ISNUMBER(S#row#),S#row#,0)+IF(ISNUMBER(AE#row#),AE#row#,0)+IF(ISNUMBER(AN#row#),AN#row#,0)+IF(ISNUMBER(AQ#row#),AQ#row#,0)+IF(ISNUMBER(AT#row#),AT#row#,0)+IF(ISNUMBER(AW#row#),AW#row#,0)+IF(ISNUMBER(AH#row#),AH#row#,0)+IF(ISNUMBER(AK#row#),AK#row#,0)"}
|
|
|
- ,{"sum","TOTAL_COMPLETE","IF(ISNUMBER(G#row#),G#row#,0)+IF(ISNUMBER(T#row#),T#row#,0)+IF(ISNUMBER(AF#row#),AF#row#,0)+IF(ISNUMBER(AO#row#),AO#row#,0)+IF(ISNUMBER(AR#row#),AR#row#,0)+IF(ISNUMBER(AU#row#),AU#row#,0)+IF(ISNUMBER(AX#row#),AX#row#,0)+IF(ISNUMBER(AI#row#),AI#row#,0)+IF(ISNUMBER(AL#row#),AL#row#,0)"}
|
|
|
- ,{"percent","TOTAL_PROPORTION","IF(ISERROR((BA#row#/AZ#row#)),\"\",(BA#row#/AZ#row#))"}
|
|
|
- }
|
|
|
- ,{{"sum","TOTAL_COST","SUM(G#row#:R#row#)"}
|
|
|
- ,{"percent","COST_KM","IF(ISERROR((S#row#/E#row#)),\"\",(S#row#/E#row#))"}
|
|
|
- ,{"percent","COM_RETIO","IF(ISERROR((S#row#/F#row#)),\"\",(S#row#/F#row#))"}
|
|
|
- }
|
|
|
- ,{{"sum","SUM_COST","SUM(G#row#:N#row#)"}}
|
|
|
- ,{{"sum","MIN_SUM_COST","SUM(G#row#:N#row#)"}
|
|
|
- ,{"sum","MID_SUM_COST","SUM(P#row#:W#row#)"}
|
|
|
- ,{"sum","MAX_SUM_COST","SUM(Y#row#:AF#row#)"}
|
|
|
- ,{"sum","SUBGRADE_COST","SUM(G#row#,P#row#,Y#row#)"}
|
|
|
- ,{"sum","PAVEMENT_COST","SUM(H#row#,Q#row#,Z#row#)"}
|
|
|
- ,{"sum","BRIDGE_COST","SUM(I#row#,R#row#,AA#row#)"}
|
|
|
- ,{"sum","TUNNEL_COST","SUM(J#row#,S#row#,AB#row#)"}
|
|
|
- ,{"sum","TRAFFIC_SAFE_COST","SUM(K#row#,T#row#,AC#row#)"}
|
|
|
- ,{"sum","ROADSIDE_COST","SUM(L#row#,U#row#,AD#row#)"}
|
|
|
- ,{"sum","GREEN_COST","SUM(M#row#,V#row#,AE#row#)"}
|
|
|
- ,{"sum","OTHER_COST","SUM(N#row#,W#row#,AF#row#)"}
|
|
|
- ,{"sum","TOTAL","SUM(AH#row#:AO#row#)"}
|
|
|
- }
|
|
|
- ,{{"percent","DAILY_COST_KM","IF(ISERROR((F#row#/E#row#)),\"\",(F#row#/E#row#))"}
|
|
|
- ,{"sum","SUM_PREVENTION","SUM(H#row#:J#row#)"}
|
|
|
- ,{"sum","SUM_REPAIR","SUM(L#row#:N#row#)"}
|
|
|
- ,{"sum","TOTAL_COST","IF(ISNUMBER(F#row#),F#row#,0)+IF(ISNUMBER(K#row#),K#row#,0)+IF(ISNUMBER(O#row#),O#row#,0)+IF(ISNUMBER(Q#row#),Q#row#,0)+IF(ISNUMBER(R#row#),R#row#,0)+IF(ISNUMBER(S#row#),S#row#,0)+IF(ISNUMBER(T#row#),T#row#,0)+IF(ISNUMBER(U#row#),U#row#,0)+IF(ISNUMBER(P#row#),P#row#,0)"}
|
|
|
- ,{"percent","TOTAL_COST_KM","IF(ISERROR((V#row#/E#row#)),\"\",(V#row#/E#row#))"}
|
|
|
- }
|
|
|
- ,{{"sum","TOTAL_COST","SUM(F#row#:Q#row#)"}
|
|
|
- ,{"percent","COST_KM","IF(ISERROR((R#row#/E#row#)),\"\",(R#row#/E#row#))"}
|
|
|
- }
|
|
|
- ,{{"sum","MIN_TOTAL","SUM(F#row#:I#row#)"}
|
|
|
- ,{"sum","MID_TOTAL","SUM(K#row#:N#row#)"}
|
|
|
- ,{"sum","MAX_TOTAL","SUM(P#row#:S#row#)"}
|
|
|
- ,{"sum","TOTAL_SUBGRADE","SUM(F#row#,K#row#,P#row#)"}
|
|
|
- ,{"sum","TOTAL_PAVEMENT","SUM(G#row#,L#row#,Q#row#)"}
|
|
|
- ,{"sum","TOTAL_BRIDGE","SUM(H#row#,M#row#,R#row#)"}
|
|
|
- ,{"sum","TOTAL_TUNNEL","SUM(I#row#,N#row#,S#row#)"}
|
|
|
- ,{"sum","TOTAL","SUM(U#row#:X#row#)"}}
|
|
|
- ,{{"sum","MIN_SUM","SUM(F#row#:M#row#)"}
|
|
|
- ,{"sum","MID_SUM","SUM(O#row#:V#row#)"}
|
|
|
- ,{"sum","MAX_SUM","SUM(X#row#:AE#row#)"}
|
|
|
- ,{"sum","SUBGRADE","SUM(F#row#,O#row#,X#row#)"}
|
|
|
- ,{"sum","PAVEMENT","SUM(G#row#,P#row#,Y#row#)"}
|
|
|
- ,{"sum","BRIDGE","SUM(H#row#,Q#row#,Z#row#)"}
|
|
|
- ,{"sum","TUNNEL","SUM(I#row#,R#row#,AA#row#)"}
|
|
|
- ,{"sum","TRAFFIC_SAFE","SUM(J#row#,S#row#,AB#row#)"}
|
|
|
- ,{"sum","ROADSIDE","SUM(K#row#,T#row#,AC#row#)"}
|
|
|
- ,{"sum","GREEN","SUM(L#row#,U#row#,AD#row#)"}
|
|
|
- ,{"sum","OTHER","SUM(M#row#,V#row#,AE#row#)"}
|
|
|
- ,{"sum","TOTAL","SUM(AG#row#:AN#row#)"}
|
|
|
- }
|
|
|
- };
|
|
|
- PageData pd = new PageData();
|
|
|
- pd.put("COMPANY_ID", param.get("COMPANY_ID"));
|
|
|
- pd.put("ROAD_ID", param.get("ROAD_ID"));
|
|
|
- for (int i = 0; i < tableNames.length; i++) {
|
|
|
- PageData data = new PageData();
|
|
|
- data.put("modelName", modelNames[i]);
|
|
|
- data.put("keyStr", keyStrs[i]);
|
|
|
- data.put("startRowIndex", startRowIndexs[i]);
|
|
|
- data.put("funcArry", funcArrys[i]);
|
|
|
- data.put("tabletype", tabletype[i]);
|
|
|
- data.put("totalRange", totalRange[i]);
|
|
|
- pd.put("TABLETYPE", tableNames[i]);
|
|
|
- pd.put("YEAR", param.get("YEAR"));
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> list = new ArrayList<PageData>();
|
|
|
- if (viewType == 1 || viewType == 2) list = showTableRecodUtil.showTableRecod(annualDailyCompService, pd);
|
|
|
- else if (viewType == 3) list = annualDailyCompService.showTableRecod2(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.selectAllRecod(pd);
|
|
|
-// List<PageData> list = annualDailyCompService.exportTableRecod(pd);
|
|
|
- data.put("list", list);
|
|
|
- data.put("pd", pd);
|
|
|
- result.add(data);
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
-// public List<PageData> setMultExcelData(PageData param) throws Exception {
|
|
|
-// List<PageData> result = new ArrayList<PageData>();
|
|
|
-// String[] modelNames = {"单位日常养护计划完成情况汇总表","单位养护计划完成情况汇总表"};
|
|
|
-// String[] keyStrs = {"ROAD,DESIGN_KM,CARE_KM,PLAN_COST,CLEAN_COST,PATROL_COST,SUBGRADE_COST,PAVEMENT_COST,BRIDGE_COST,CULVERT_COST,TUNNEL_COST,TRAFFIC_SAFE_COST,ROADSIDE_COST,GREEN_COST,MAINT_COST,EMERGENCY_COST,TOTAL_COST,COST_KM,COM_RETIO",
|
|
|
-// "ROAD,DESIGN_KM,CARE_KM,DAILY_DESIGN,DAILY_COMPLETE,DAILY_PROPORTION,DAILY_KM,PREVENTION_DESIGN,PREVENTION_COMPLETE,PREVENTION_PROPORTION,MINOR_REPAIR_DESIGN,MINOR_REPAIR_COMPLETE,MINOR_REPAIR_PROPORTION,MIDDLE_REPAIR_DESIGN,MIDDLE_REPAIR_COMPLETE,MIDDLE_REPAIR_PROPORTION,OVERHAULD_ESIGN,OVERHAUL_COMPLETE,OVERHAUL_PROPORTION,SPECIAL_DESIGN,SPECIAL_COMPLETE,SPECIAL_PROPORTION,TEST_DESIGN,TEST_COMPLETE,TEST_PROPORTION,SCIENTIFIC_DESIGN,SCIENTIFIC_COMPLETE,SCIENTIFIC_PROPORTION,DEVICE_DESIGN,DEVICE_COMPLETE,DEVICE_PROPORTION,RESERVE_DESIGN,RESERVE_COMPLETE,RESERVE_PROPORTION,TOTAL_DESIGN,TOTAL_COMPLETE,TOTAL_PROPORTION"};
|
|
|
-// String[] tableNames = {"annual_daily_comp_sumtable","annual_comp_sumtable"};
|
|
|
-// int[] startRowIndexs = {3,4};
|
|
|
-// String[][][] funcArrys = {{},
|
|
|
-// {{"percent","DAILY_PROPORTION","IF(ISERROR((G#row#/F#row#)),\"\",(G#row#/F#row#))"},
|
|
|
-// {"percent","PREVENTION_PROPORTION","IF(ISERROR((K#row#/J#row#)),\"\",(K#row#/J#row#))"}}};
|
|
|
-// PageData pd = new PageData();
|
|
|
-// pd.put("YEAR", param.get("YEAR"));
|
|
|
-// pd.put("COMPANY_ID", param.get("COMPANY_ID"));
|
|
|
-// for (int i = 0; i < tableNames.length; i++) {
|
|
|
-// PageData data = new PageData();
|
|
|
-// data.put("modelName", modelNames[i]);
|
|
|
-// data.put("keyStr", keyStrs[i]);
|
|
|
-// data.put("startRowIndex", startRowIndexs[i]);
|
|
|
-// data.put("funcArry", funcArrys[i]);
|
|
|
-// pd.put("TABLETYPE", tableNames[i]);
|
|
|
-// List<PageData> list = annualDailyCompService.selectAllRecod(pd);
|
|
|
-// data.put("list", list);
|
|
|
-// result.add(data);
|
|
|
-// }
|
|
|
-// return result;
|
|
|
-// }
|
|
|
-
|
|
|
-// @RequestMapping("/exportDoc")
|
|
|
-// public String exportDoc(HttpServletRequest request,HttpServletResponse response) throws Exception{
|
|
|
-// ModelAndView mv = this.getModelAndView();
|
|
|
-// PageData pd = new PageData();
|
|
|
-// pd = this.getPageData();
|
|
|
-// List<PageData> list = annualDailyCompService.wordRecorde(pd);
|
|
|
-// if (list != null && list.size() > 0) {
|
|
|
-// Map<String,Object> map = list.get(0);
|
|
|
-// if (pd.get("TABLETYPE").equals("highway_prevention_project_dettable")
|
|
|
-// ||pd.get("TABLETYPE").equals("highway_repair_project_dettable")
|
|
|
-// ||pd.get("TABLETYPE").equals("highway_special_project_dettable")
|
|
|
-// ||pd.get("TABLETYPE").equals("highway_test_project_dettable")
|
|
|
-// ||pd.get("TABLETYPE").equals("highway_scientific_project_dettable")) {
|
|
|
-// pd.put("PROJECT_NAME", map.get("PROJECT_NAME"));
|
|
|
-// pd.put("subtable", pd.get("TABLETYPE")+"_cost");
|
|
|
-// List<PageData> sublist = annualDailyCompService.wordListRecorde(pd);
|
|
|
-// PageData nulldata = new PageData();
|
|
|
-// nulldata.put("ITEM_NAME", "");
|
|
|
-// nulldata.put("UNIT", "");
|
|
|
-// nulldata.put("UNIT_PRICE", "");
|
|
|
-// nulldata.put("NUMBER", "");
|
|
|
-// nulldata.put("TOTAL_COST", "");
|
|
|
-// int size = 8-sublist.size();
|
|
|
-// for (int i = 0; i < size; i++) {
|
|
|
-// sublist.add(nulldata);
|
|
|
-// }
|
|
|
-// map.put("list", sublist);
|
|
|
-// }
|
|
|
-// String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
-// String fileName = "highwayl_equipment_overhaul_project_dettable";
|
|
|
-// WordUtils.exportDoc(request,response,map,pd.getString("modelName"),path,fileName);
|
|
|
-// }
|
|
|
-// return null;
|
|
|
-// }
|
|
|
-
|
|
|
- public String exportDoc(HttpServletRequest request,HttpServletResponse response,PageData pd) throws Exception{
|
|
|
- List<PageData> list = annualDailyCompService.wordRecorde(pd);
|
|
|
- if (list != null && list.size() > 0) {
|
|
|
- for (PageData map : list) {
|
|
|
- exportPerDoc(request,response,pd,map);
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public String exportPerDoc(HttpServletRequest request,HttpServletResponse response,PageData pd,PageData map) throws Exception{
|
|
|
- if (pd.get("TABLETYPE").equals("highway_prevention_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_repair_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_special_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_emergency_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_test_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_scientific_project_dettable")) {
|
|
|
- pd.put("PROJECT_NAME", map.get("PROJECT_NAME"));
|
|
|
- pd.put("subtable", pd.get("TABLETYPE")+"_cost");
|
|
|
- List<PageData> sublist = annualDailyCompService.wordListRecorde(pd);
|
|
|
-// PageData nulldata = new PageData();
|
|
|
-// nulldata.put("ITEM_NAME", "");
|
|
|
-// nulldata.put("UNIT", "");
|
|
|
-// nulldata.put("UNIT_PRICE", "");
|
|
|
-// nulldata.put("NUMBER", "");
|
|
|
-// nulldata.put("TOTAL_COST", "");
|
|
|
-// int size = 8-sublist.size();
|
|
|
-// for (int i = 0; i < size; i++) {
|
|
|
-// sublist.add(nulldata);
|
|
|
-// }
|
|
|
- map.put("list", sublist);
|
|
|
- }
|
|
|
- String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
- String fileName = map.getString("NAME");
|
|
|
- WordUtils.exportDoc(request,response,map,pd.getString("modelName"),path,fileName);
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public List<String> creatDoc(HttpServletRequest request,HttpServletResponse response,PageData pd) throws Exception{
|
|
|
- List<PageData> list = annualDailyCompService.wordRecorde(pd);
|
|
|
- List<String> paths = new ArrayList<String>();
|
|
|
- String filepath = "";
|
|
|
- if (list != null && list.size() > 0) {
|
|
|
- for (PageData map : list) {
|
|
|
- if (pd.get("modelName").equals("101_highway_technica_statable(SRI).ftl")) {
|
|
|
- map.put("PQI", Double.parseDouble(map.get("PCI").toString())*0.35+Double.parseDouble(map.get("RQI").toString())*0.3
|
|
|
- +Double.parseDouble(map.get("RDI").toString())*0.15+Double.parseDouble(map.get("PBI").toString())*0.1
|
|
|
- +Double.parseDouble(map.get("SRI").toString())*0.1);
|
|
|
- map.put("MQI", Double.parseDouble(map.get("SCI").toString())*0.08+Double.parseDouble(map.get("PQI").toString())*0.7
|
|
|
- +Double.parseDouble(map.get("BCI").toString())*0.12+Double.parseDouble(map.get("TCI").toString())*0.1);
|
|
|
- map.put("NAME", map.getString("NAME")+"(SRI)");
|
|
|
- }else if (pd.get("modelName").equals("101_highway_technica_statable(PWI).ftl")) {
|
|
|
- map.put("PQI", Double.parseDouble(map.get("PCI").toString())*0.35+Double.parseDouble(map.get("RQI").toString())*0.3
|
|
|
- +Double.parseDouble(map.get("RDI").toString())*0.15+Double.parseDouble(map.get("PBI").toString())*0.1
|
|
|
- +Double.parseDouble(map.get("PWI").toString())*0.1);
|
|
|
- map.put("MQI", Double.parseDouble(map.get("SCI").toString())*0.08+Double.parseDouble(map.get("PQI").toString())*0.7
|
|
|
- +Double.parseDouble(map.get("BCI").toString())*0.12+Double.parseDouble(map.get("TCI").toString())*0.1);
|
|
|
- map.put("NAME", map.getString("NAME")+"(PWI)");
|
|
|
- }
|
|
|
- List<String> keywords = getKeywordsJson(request,pd.getString("TABLETYPE"),map.getString("CATEGORY"));
|
|
|
- map.put("keywords", keywords);
|
|
|
- filepath = creatPerDoc(request,response,pd,map);
|
|
|
- paths.add(filepath);
|
|
|
- }
|
|
|
- }
|
|
|
- return paths;
|
|
|
- }
|
|
|
-
|
|
|
- public String creatPerDoc(HttpServletRequest request,HttpServletResponse response,PageData pd,PageData map) throws Exception{
|
|
|
- if (pd.get("TABLETYPE").equals("highway_prevention_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_repair_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_special_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_emergency_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_test_project_dettable")
|
|
|
- ||pd.get("TABLETYPE").equals("highway_scientific_project_dettable")) {
|
|
|
- pd.put("PROJECT_NAME", map.get("PROJECT_NAME"));
|
|
|
- pd.put("subtable", pd.get("TABLETYPE")+"_cost");
|
|
|
- List<PageData> sublist = annualDailyCompService.wordListRecorde(pd);
|
|
|
- PageData nulldata = new PageData();
|
|
|
- nulldata.put("ITEM_NAME", "");
|
|
|
- nulldata.put("UNIT", "");
|
|
|
- nulldata.put("UNIT_PRICE", "");
|
|
|
- nulldata.put("NUMBER", "");
|
|
|
- nulldata.put("TOTAL_COST", "");
|
|
|
-// int size = 8-sublist.size();
|
|
|
-// for (int i = 0; i < size; i++) {
|
|
|
-// sublist.add(nulldata);
|
|
|
-// }
|
|
|
- map.put("list", sublist);
|
|
|
- if (map.get("KEY_WORDS") == null) {
|
|
|
- map.put("KEY_WORDS", "");
|
|
|
- }
|
|
|
- }
|
|
|
- String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
- String fileName = map.getString("NAME");
|
|
|
- String filepath = WordUtils.creatDoc(request,response,map,pd.getString("modelName"),path,fileName);
|
|
|
- return filepath;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping("/exportFiles")
|
|
|
- public String exportFiles(HttpServletRequest request,HttpServletResponse response) throws Exception{
|
|
|
- String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- List<String> paths = new ArrayList<String>();
|
|
|
- List<String> result = new ArrayList<String>();
|
|
|
- if (pd.getString("exportname").indexOf("总报告") > 0) {
|
|
|
- //年度报告
|
|
|
- List<PageData> exceldata = setMultExcelData2(pd);
|
|
|
- MultExcelUtils ex = new MultExcelUtils();
|
|
|
- String excelpath = ex.exportExcel(pd.getString("exportname")+".xlsx",path,response,exceldata);
|
|
|
- result.add(excelpath);
|
|
|
- }else {
|
|
|
- List<PageData> exceldata = new ArrayList<PageData>();
|
|
|
- //导出计划、完成情况分卡
|
|
|
- if(null != pd.get("type")){
|
|
|
- //完成情况
|
|
|
- if(pd.get("type").toString().equals("COMPLETE")){
|
|
|
- exceldata = setCompleteMultExcelData(pd);
|
|
|
- }
|
|
|
- //计划
|
|
|
- else if(pd.get("type").toString().equals("PLAN")){
|
|
|
- //word文档
|
|
|
- pd.put("modelName", "306_highway_prevention_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_prevention_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "306_highway_special_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_special_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "306_highway_repair_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_repair_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "101_highway_technica_statable(SRI).ftl");
|
|
|
- pd.put("TABLETYPE", "highway_technica_statable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "101_highway_technica_statable(PWI).ftl");
|
|
|
- pd.put("TABLETYPE", "highway_technica_statable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "102_highway_traiffcinfo_sumtable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_traiffcinfo_sumtable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "309_highway_test_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_test_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "311_highway_scientific_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_scientific_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- pd.put("modelName", "313_highway_equipment_overhaul_project_dettable.ftl");
|
|
|
- pd.put("TABLETYPE", "highway_equipment_overhaul_project_dettable");
|
|
|
- paths = creatDoc(request,response,pd);
|
|
|
- result.addAll(paths);
|
|
|
- exceldata = setPlanMultExcelData(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- //excel文档
|
|
|
- MultExcelUtils ex = new MultExcelUtils();
|
|
|
- String excelpath = ex.exportExcel(pd.getString("exportname")+".xlsx",path,response,exceldata);
|
|
|
- result.add(excelpath);
|
|
|
- }
|
|
|
- //zip压缩下载
|
|
|
- DownloadZip.downloadZip(response,request,result,path);
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-// @RequestMapping("/exportFiles")
|
|
|
-// public String exportFiles(HttpServletRequest request,HttpServletResponse response) throws Exception{
|
|
|
-// ModelAndView mv = this.getModelAndView();
|
|
|
-// PageData pd = new PageData();
|
|
|
-// pd = this.getPageData();
|
|
|
-// //modelName=311_highway_scientific_project_dettable.ftl&COMPANY_ID=001&YEAR=2018&ROAD_ID=111&TABLETYPE=highway_scientific_project_dettable
|
|
|
-// pd.put("modelName", "306_highway_prevention_project_dettable.ftl");
|
|
|
-// pd.put("TABLETYPE", "highway_prevention_project_dettable");
|
|
|
-// exportDoc(request,response,pd);
|
|
|
-// pd.put("modelName", "306_highway_prevention_project_dettable.ftl");
|
|
|
-// pd.put("TABLETYPE", "highway_repair_project_dettable");
|
|
|
-// exportDoc(request,response,pd);
|
|
|
-// pd.put("modelName", "306_highway_prevention_project_dettable.ftl");
|
|
|
-// pd.put("TABLETYPE", "highway_special_project_dettable");
|
|
|
-// exportDoc(request,response,pd);
|
|
|
-// return null;
|
|
|
-// }
|
|
|
-
|
|
|
- @RequestMapping(value="/getProJectName",produces = "application/json; charset=utf-8")
|
|
|
- @ResponseBody
|
|
|
- public String getProJectName(HttpServletRequest request) throws Exception {
|
|
|
- try {
|
|
|
- PageData pd = this.getPageData();
|
|
|
- List<PageData> pdList =annualDailyCompService.hasTableRecod2(pd);
|
|
|
- PageData pd1 = pdList.get(0);
|
|
|
- String proJectName = pd1.getString("PROJECT_NAME");
|
|
|
- return "{\"projectname\":\""+proJectName+"\"}";
|
|
|
- } catch (Exception e) {
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value = "/importExcel",produces={"text/html;charset=UTF-8;","application/json;"})
|
|
|
- @ResponseBody
|
|
|
- public String importExcel(HttpServletResponse response,HttpServletRequest request, MultipartFile file) throws Exception {
|
|
|
- String msg = new String();
|
|
|
- try {
|
|
|
- PageData pd = this.getPageData();
|
|
|
- System.out.println("开始");
|
|
|
- String path = request.getSession().getServletContext().getRealPath("upload");
|
|
|
- String fileName = ImportDoc.getNowTime()+"-"+file.getOriginalFilename();
|
|
|
- File targetFile = new File(path, fileName);
|
|
|
- String filePath = targetFile.getAbsolutePath();
|
|
|
- System.out.println(filePath);
|
|
|
- if (!targetFile.exists()) {
|
|
|
- targetFile.mkdirs();
|
|
|
- }
|
|
|
- file.transferTo(targetFile);
|
|
|
- ImportDoc doc = new ImportDoc();
|
|
|
- HashMap<Object, Object> m = doc.ReadByExcel(filePath);
|
|
|
- msg = this.checkData(pd, m).toString();
|
|
|
- //如果错误信息list有值直接返回信息给前台,不操作数据库
|
|
|
- if(!(msg.isEmpty())) {
|
|
|
- return msg;
|
|
|
- }
|
|
|
- this.importExcelData(pd, m);
|
|
|
- return msg;//Msg.msg.toString();
|
|
|
- } catch (Exception e) {
|
|
|
- msg = e.getMessage();
|
|
|
- return msg;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //处理Ecxel数据存入数据库
|
|
|
- public void importExcelData(PageData pd, HashMap<Object, Object> m) throws Exception {
|
|
|
- String jsonPath = (String) pd.get("TABLETYPE");
|
|
|
- JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- int viewType = setViewType(pd.getString("TABLETYPE"));
|
|
|
- List<PageData> varList = new ArrayList<PageData>();
|
|
|
- if (viewType == 1){
|
|
|
- varList = annualDailyCompService.hasTableRecod(pd);
|
|
|
- }
|
|
|
- else if (viewType == 2){
|
|
|
- varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- }
|
|
|
- JSONArray dataArray = new JSONArray();
|
|
|
- if (jsonarray.size() > 0 && jsonarray != null) {
|
|
|
- List<ImoprtJson> docJson = ImportDoc.importJson(jsonPath);
|
|
|
- JSONObject jsondate = (JSONObject) jsonarray.get(0);
|
|
|
- for(ImoprtJson ijson : docJson) {
|
|
|
- jsondate.put(ijson.getColumn(), (String) m.get(ijson.getIndex()));
|
|
|
- }
|
|
|
- dataArray.add(jsondate);
|
|
|
- }
|
|
|
- Map<String, Object> map = dealWithData(pd, varList, dataArray);
|
|
|
- if(map.get("msg").equals("success")){
|
|
|
- pd.put("STATUS", "编制中");
|
|
|
- annualDailyCompService.updateStatus(pd);
|
|
|
- annualDailyCompService.updatePlanStatus(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- /**
|
|
|
- * 获取登陆账号所属的角色
|
|
|
- *
|
|
|
- * @param
|
|
|
- * @return RoleName
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- public String getRoleName() throws Exception {
|
|
|
- PageData userInfo = annualDailyCompService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); // 通过username获取公司和路段
|
|
|
- // 通过ROLE_ID获取角色
|
|
|
- String roleName = annualDailyCompService.getRoleName(userInfo.get("ROLE_ID").toString());
|
|
|
- return roleName;
|
|
|
- }
|
|
|
- /**
|
|
|
- * 根据角色来处理word导入的数据
|
|
|
- *
|
|
|
- * @param m
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- public void checkm(HashMap<Object, Object> m,HashMap<Object, Object> m1) throws Exception {
|
|
|
-
|
|
|
- if(m1.containsKey("AUDIT_FEE")) {
|
|
|
- m.remove(m1.get("AUDIT_FEE"));
|
|
|
- }
|
|
|
- if(m1.containsKey("AUDIT_MAKER")) {
|
|
|
- m.remove(m1.get("AUDIT_MAKER"));
|
|
|
- }
|
|
|
- if(m1.containsKey("MATTER_YEAR")) {
|
|
|
- m.remove(m1.get("MATTER_YEAR"));
|
|
|
- }
|
|
|
- if(m1.containsKey("MATTER_NEW_CARRY")) {
|
|
|
- m.remove(m1.get("MATTER_NEW_CARRY"));
|
|
|
- }
|
|
|
- if(m1.containsKey("MATTER_CONSULT")) {
|
|
|
- m.remove(m1.get("MATTER_CONSULT"));
|
|
|
- }
|
|
|
- }
|
|
|
- @RequestMapping("/importDoc")
|
|
|
- @ResponseBody
|
|
|
- public Map<String, String> importDoc(HttpServletRequest request, MultipartFile file,String data,String TABLETYPE,
|
|
|
- String COMPANY_ID,String YEAR,String ROAD_ID,String COMPANY,String ROAD,String REPORTID) throws Exception {
|
|
|
- Map<String, String> msgMap = new HashMap<String, String>();
|
|
|
- List<String> msgList = new ArrayList<String>();
|
|
|
- try {
|
|
|
- PageData pd = new PageData();// this.getPageData();
|
|
|
- pd.put("data", data);
|
|
|
- pd.put("TABLETYPE", TABLETYPE);
|
|
|
- pd.put("COMPANY_ID", COMPANY_ID);
|
|
|
- pd.put("YEAR", YEAR);
|
|
|
- pd.put("ROAD_ID", ROAD_ID);
|
|
|
- pd.put("COMPANY", COMPANY);
|
|
|
- pd.put("ROAD", ROAD);
|
|
|
- pd.put("REPORTID", REPORTID);
|
|
|
- System.out.println("开始");
|
|
|
- System.out.println( "***TABLETYPE"+TABLETYPE);
|
|
|
- String path = request.getSession().getServletContext().getRealPath("upload");
|
|
|
- String fileName = ImportDoc.getNowTime() + "-" + file.getOriginalFilename();
|
|
|
- System.out.println(path);
|
|
|
- // 获取当前登陆用户角色信息
|
|
|
- String roleName = this.getRoleName();
|
|
|
- System.out.println(roleName);
|
|
|
- // String fileName = new Date().getTime()+".jpg";
|
|
|
- File targetFile = new File(path, fileName);
|
|
|
- String filePath = targetFile.getAbsolutePath();
|
|
|
- System.out.println(filePath);
|
|
|
- if (!targetFile.exists()) {
|
|
|
- targetFile.mkdirs();
|
|
|
- }
|
|
|
- file.transferTo(targetFile);
|
|
|
- ImportDoc doc = new ImportDoc();
|
|
|
- HashMap<Object, Object> m = doc.ReadByDoc(filePath);
|
|
|
-/* //导入项目是否已存在
|
|
|
- String projectName = checkProjectName(pd, m);
|
|
|
- if(projectName.isEmpty()){
|
|
|
- msgList.add("项目已存在,请检查项目名称");
|
|
|
- msgMap.put("error", msgList);
|
|
|
- return msgMap;
|
|
|
- }*/
|
|
|
- // 校验方法
|
|
|
- String msg = this.checkData(pd, m).toString();
|
|
|
- // 如果错误信息list有值直接返回信息给前台,不操作数据库
|
|
|
- if (!(msg.isEmpty())) {
|
|
|
- msgMap.put("error", msg);
|
|
|
- return msgMap;
|
|
|
- }
|
|
|
- // 如果角色是控股管理员全部导入
|
|
|
- String jsonPath = (String) pd.get("TABLETYPE");
|
|
|
- List<ImoprtJson> docJson = ImportDoc.importJson(jsonPath);
|
|
|
- HashMap<Object, Object> m1 = doc.ReadByDoc(filePath);
|
|
|
- for (ImoprtJson ijson : docJson) {
|
|
|
- m1.put(ijson.getColumn(), ijson.getIndex());
|
|
|
- }
|
|
|
- /*if (roleName.equals("控股集团管理员") || roleName.equals("系统管理组")) {
|
|
|
- } else {
|
|
|
- // 不是就有选择导入
|
|
|
- this.checkm(m, m1);
|
|
|
- }*/
|
|
|
- Map<String, Object> map = this.importDocData(pd, m);
|
|
|
- String projectName = (String) m.get("1,2");
|
|
|
- if(map.get("msg").equals("success")){
|
|
|
-// msgList.add(projectName);
|
|
|
- msgMap.put("projectName", projectName);
|
|
|
- }else{
|
|
|
-// msgList.add(map.get("msg").toString());
|
|
|
- msgMap.put("error", map.get("msg").toString());
|
|
|
- }
|
|
|
- return msgMap;// Msg.msg.toString();
|
|
|
- } catch (Exception e) {
|
|
|
-// msgList.add(e.getMessage());
|
|
|
- if("The document is really a OOXML file".equalsIgnoreCase(e.getMessage())
|
|
|
- || "The document is really a UNKNOWN file".equalsIgnoreCase(e.getMessage())){
|
|
|
- String msg = "导入文件格式不正确";
|
|
|
- msgMap.put("error", msg);
|
|
|
- }else{
|
|
|
- msgMap.put("error", e.getMessage());
|
|
|
- }
|
|
|
- return msgMap;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-/* public String checkProjectName(PageData pd, HashMap<Object, Object> m) throws Exception {
|
|
|
- String projectName = "";
|
|
|
- List<PageData> varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- projectName = (String) m.get("1,2");
|
|
|
- for(PageData temppd : varList){
|
|
|
- if(temppd.get("PROJECT_NAME") != null){
|
|
|
- if(projectName.equalsIgnoreCase(temppd.get("PROJECT_NAME").toString())){
|
|
|
- projectName = "";
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return projectName;
|
|
|
- }*/
|
|
|
-
|
|
|
- private void addNewTableInfo(PageData pd, String name, String tabletype) throws Exception{
|
|
|
- //根据TYPE得到NAME
|
|
|
- String ProjectName = annualDailyCompService.getTableName(tabletype);
|
|
|
- pd.put("TYPE", pd.get("TABLETYPE"));
|
|
|
- pd.put("COMPANY_NAME", pd.get("COMPANY"));
|
|
|
- pd.put("ROAD_NAME", pd.get("ROAD"));
|
|
|
- pd.put("NAME", ProjectName+"---"+name);
|
|
|
- pd.put("CTIME", Tools.date2Str(new Date())); //创建时间
|
|
|
- pd.put("MTIME", Tools.date2Str(new Date())); //修改时间
|
|
|
- pd.put("STATUS", "编制中"); //修改时间
|
|
|
- pd.put("PROJECT_NAME", name);
|
|
|
- annualPlanService.addNewTableInfo(pd); //insert annual_table_list新增立项详表
|
|
|
- }
|
|
|
-
|
|
|
- public StringBuffer checkData(PageData pd, HashMap<Object, Object> m) throws IOException {
|
|
|
- StringBuffer msgBuff = new StringBuffer();
|
|
|
- String jsonPath = (String) pd.get("TABLETYPE");
|
|
|
- JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- JSONObject jsondate = (JSONObject) jsonarray.get(0);
|
|
|
- //获取页面传来的项目名称
|
|
|
- String project_name = (String) jsondate.get("PROJECT_NAME");
|
|
|
- //获取字段的项目名称
|
|
|
- String project_name_doc = (String) m.get("1,2");
|
|
|
- if(project_name != null && project_name.length() != 0) {
|
|
|
- if(!project_name.equals(project_name_doc) )
|
|
|
- {
|
|
|
- String str ="项目名和页面项目不一致,请检查后上传。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- return msgBuff;
|
|
|
- }
|
|
|
- }
|
|
|
- String okey = ""; //其他说明事项的实际位置
|
|
|
- for(Object getKey: m.keySet()){
|
|
|
- if(m.get(getKey).equals("其它说明事项")){
|
|
|
- okey = getKey.toString();
|
|
|
- }
|
|
|
- }
|
|
|
- String moindex = okey.split(",")[0];
|
|
|
-
|
|
|
- // 子表路径存放
|
|
|
- StringBuffer jsonPathz = new StringBuffer(jsonPath);
|
|
|
- List<ImoprtJson> docJson = ImportDoc.importJson(jsonPath);
|
|
|
- String qindex1 = "";
|
|
|
- String oindex1 = "";
|
|
|
- String indexs="";
|
|
|
- String[] index = null;
|
|
|
- String index1 = "";
|
|
|
- String index2 = "";
|
|
|
- for (ImoprtJson ijson : docJson) {
|
|
|
- if(ijson.getColumn().equals("QUALITY_PROGRESS") || ijson.getColumn().equals("RESEARCH_BASE")){
|
|
|
- String [] qindex = ijson.getIndex().split(",");
|
|
|
- qindex1 = qindex[0];
|
|
|
- actulItemIndex = Integer.parseInt(moindex) - Integer.parseInt(qindex1) -4;
|
|
|
- }
|
|
|
- indexs = ijson.getIndex();
|
|
|
- if(!indexs.isEmpty()){
|
|
|
- // 获得单元格里面的内容
|
|
|
- String value = (String) m.get(ijson.getIndex());
|
|
|
- if(value==null) {
|
|
|
- value = "";
|
|
|
- }
|
|
|
- // 获取单元格所在位置
|
|
|
- index = ijson.getIndex().split(",");
|
|
|
- index1 = index[0];
|
|
|
- index2 = index[index.length-1];
|
|
|
- if(ijson.getColumn().equals("OTHER_MATTER") || ijson.getColumn().equals("MATTER_YEAR")
|
|
|
- || ijson.getColumn().equals("MATTER_NEW_CARRY") || ijson.getColumn().equals("MATTER_CONSULT")){ //"OTHER_MATTER"取实际位置的DOC值
|
|
|
- okey = String.valueOf(Integer.parseInt(ijson.getIndex().split(",")[0]) + actulItemIndex) + "," + ijson.getIndex().split(",")[1];
|
|
|
- if(!okey.isEmpty()){
|
|
|
- // 获得单元格里面的内容
|
|
|
- value = (String) m.get(okey);
|
|
|
- if(value==null) {
|
|
|
- value = "";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- checkNoNullData(ijson, value.trim(), index1, index2, msgBuff);
|
|
|
- }
|
|
|
- }
|
|
|
- // 检查子表
|
|
|
- if (jsonPath.equals("highway_equipment_overhaul_project_dettable")
|
|
|
- || jsonPath.equals("highway_traiffcinfo_sumtable") || jsonPath.equals("highway_technica_statable")
|
|
|
- || jsonPath.equals("highway_daily_plan_statable"))
|
|
|
- {
|
|
|
- System.out.println("没有子表无需检查");
|
|
|
- }else if(jsonPath.equals("highway_scientific_project_dettable"))
|
|
|
- { //科研分费用来源和费用支出
|
|
|
- jsonPathz = jsonPathz.append("_cost");
|
|
|
- List<ImoprtJson> docJsonz = ImportDoc.importJson(jsonPathz.toString());
|
|
|
- //费用来源(科目)存放List
|
|
|
- List<String> cList1 = new ArrayList<String>() ;
|
|
|
- //费用支出(科目)存放List
|
|
|
- List<String> cList2 = new ArrayList<String>() ;
|
|
|
- for(int i =0;i<docJsonz.size();i++) {
|
|
|
- List<ImoprtJson> docJson1 = (List<ImoprtJson>) docJsonz.get(i);
|
|
|
- for (ImoprtJson ijson : docJson1) {
|
|
|
- // 获得单元格里面的内容
|
|
|
- String column = ijson.getColumn();
|
|
|
- String value = (String) m.get(ijson.getIndex());
|
|
|
- if(value==null) {
|
|
|
- value = "";
|
|
|
- }
|
|
|
- if(column.equals("SUBJECT")) {
|
|
|
- cList1.add(value);
|
|
|
- }
|
|
|
- if(column.equals("EXPENDITURE_SUBJECT")) {
|
|
|
- cList2.add(value);
|
|
|
- }
|
|
|
- // 获取单元格所在位置
|
|
|
- //String index = ijson.getIndex();
|
|
|
- index = ijson.getIndex().split(",");
|
|
|
- index1 = index[0];
|
|
|
- index2 = index[index.length-1];
|
|
|
- checkNoNullData(ijson, value.trim(), index1, index2, msgBuff);
|
|
|
- }
|
|
|
- }
|
|
|
- List<String> checkList1 = ImportDoc.removeString(cList1);
|
|
|
- // long count1 = checkList1.stream().distinct().count();
|
|
|
- //boolean isRepeat1 = count1 < checkList1.size();
|
|
|
- boolean isRepeat1 = ImportDoc.repeatList(checkList1);
|
|
|
- if(isRepeat1) {
|
|
|
- String str = "费用来源(科目)有重复,请检查!"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- List<String> checkList2 = ImportDoc.removeString(cList2);
|
|
|
- //long count2 = checkList2.stream().distinct().count();
|
|
|
- //boolean isRepeat2 = count2 < checkList2.size();
|
|
|
- boolean isRepeat2 = ImportDoc.repeatList(checkList2);
|
|
|
- if(isRepeat2) {
|
|
|
- String str = "费用支出(科目)有重复,请检查!"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }else {
|
|
|
- jsonPathz = jsonPathz.append("_cost");
|
|
|
- List<ImoprtJson> docJsonz = ImportDoc.importJson(jsonPathz.toString());
|
|
|
- //分项名称存放List
|
|
|
- List<String> cList = new ArrayList<String>() ;
|
|
|
- for(int i =0;i<docJsonz.size();i++) {
|
|
|
- List<ImoprtJson> docJson1 = (List<ImoprtJson>) docJsonz.get(i);
|
|
|
- for(ImoprtJson ijson : docJson1) {
|
|
|
- // 获得单元格里面的内容
|
|
|
- String column = ijson.getColumn();
|
|
|
- index = ijson.getIndex().split(",");
|
|
|
- index1 = index[0];
|
|
|
- index2 = index[index.length-1];
|
|
|
- for(int j = 0; j < actulItemIndex; j++){
|
|
|
- String newIndex = (Integer.parseInt(index1) + j) + ","+index2;
|
|
|
- String value = (String) m.get(newIndex);
|
|
|
- if(value==null) {
|
|
|
- value = "";
|
|
|
- }
|
|
|
- if(column.equals("ITEM_NAME")) {
|
|
|
- cList.add(value);
|
|
|
- }
|
|
|
- checkNoNullData(ijson, value, index1, index2, msgBuff);
|
|
|
- }
|
|
|
- // 获取单元格所在位置
|
|
|
- //String index = ijson.getIndex();
|
|
|
- }
|
|
|
- }
|
|
|
- //判断子表分项名称是否有重复
|
|
|
- List<String> checkList = ImportDoc.removeString(cList);
|
|
|
-// long count = checkList.stream().distinct().count();
|
|
|
-// boolean isRepeat = count < checkList.size();
|
|
|
- boolean isRepeat = ImportDoc.repeatList(checkList);
|
|
|
- if(isRepeat) {
|
|
|
- String str = "分项名称有重复,请检查!"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- return msgBuff;
|
|
|
- }
|
|
|
-
|
|
|
- private StringBuffer checkNoNullData(ImoprtJson ijson, String value, String index1, String index2,StringBuffer msgBuff){
|
|
|
- // 获得单元格字符串长度
|
|
|
- int valueSize = value.length();
|
|
|
- // 字符串规则
|
|
|
- String type = ijson.getType();
|
|
|
- // 长度规则
|
|
|
- int typeLength = Integer.valueOf(ijson.getLength()).intValue();
|
|
|
- // 长度String类型
|
|
|
- String typeLengthS = ijson.getLength();
|
|
|
- // 小数个数
|
|
|
- String scale = ijson.getScale();
|
|
|
- //判断能否为空,1代表不为空
|
|
|
- String notnull = ijson.getNotnull();
|
|
|
- //如果notnull是空的情况下处理,说明可以为空
|
|
|
- if(notnull==null||notnull.equals("")) {
|
|
|
- if(value==null||value.equals("")) {
|
|
|
-
|
|
|
- }else {
|
|
|
- if (type.equals("String")) {
|
|
|
- if (value.length() > typeLength) {
|
|
|
- String str = "第" + index1+"行"+index2+"列"+ "单元格长度超过" + typeLengthS + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- if (type.equals("int")) {
|
|
|
- if (ImportDoc.isNumeric(value) || value.length() > typeLength) {
|
|
|
- String str = "第" + index1+"行"+index2+"列"+ "单元格要填数字" + "长度不超过" + typeLengthS + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- if (type.equals("decimal")) {
|
|
|
- if (ImportDoc.isNumber(value.trim(), scale) || value.length() > typeLength) {
|
|
|
- String str = "第"+ index1+"行"+index2+"列"+ "单元格要填数字! 长度不超过" + typeLengthS+ "位,小数点不超过" + scale + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }else {
|
|
|
- int notnullt = Integer.parseInt(ijson.getNotnull().trim()) ;
|
|
|
- if(notnullt==1) {
|
|
|
- if(value==null||value.equals("")) {
|
|
|
- String str = "第" + index1+"行"+index2+"列" + "不能为空"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }else {
|
|
|
- if (type.equals("String")) {
|
|
|
- if (value.length() > typeLength) {
|
|
|
- String str = "第" + index1+"行"+index2+"列"+ "单元格长度超过" + typeLengthS + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- if (type.equals("int")) {
|
|
|
- if (ImportDoc.isNumeric(value) || value.length() > typeLength) {
|
|
|
- String str = "第" + index1+"行"+index2+"列"+ "单元格要填数字" + "长度不超过" + typeLengthS + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- if (type.equals("decimal")) {
|
|
|
- if (ImportDoc.isNumber(value, scale) || value.length() > typeLength) {
|
|
|
- String str = "第"+ index1+"行"+index2+"列"+ "单元格要填数字! 长度不超过" + typeLengthS+ "位小数点不超过" + scale + "位。"+"\n";
|
|
|
- msgBuff.append(str);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return msgBuff;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理新增编辑数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithImportData(PageData pd,List<PageData> varList,JSONArray jsonarray) throws Exception{
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- try {
|
|
|
- for (Object object : jsonarray) {
|
|
|
- JSONObject arrMap = JSONObject.fromObject(object);
|
|
|
- Set entryarray = arrMap.entrySet();
|
|
|
- ArrayList<Object> keyarray = new ArrayList<Object>();
|
|
|
- ArrayList<Object> valuearray = new ArrayList<Object>();
|
|
|
- for (Object entry : entryarray) {
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- boolean saveFlag = true;
|
|
|
- //编辑
|
|
|
- if (varList != null && varList.size() != 0)
|
|
|
- saveFlag = !"ROAD".equals(arr[0])&&!"YEAR".equals(arr[0])&&!"COMPANY".equals(arr[0])
|
|
|
- &&!"ROAD_ID".equals(arr[0])&&!"COMPANY_ID".equals(arr[0])&&!"PROJECT_NAME".equals(arr[0]);
|
|
|
- saveFlag = saveFlag && !"STATUS".equals(arr[0]);
|
|
|
- if (saveFlag) {
|
|
|
- keyarray.add(arr[0]);
|
|
|
- if (arr.length > 1) {
|
|
|
- valuearray.add(arr[1]);
|
|
|
- }else {
|
|
|
- valuearray.add(null);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- pd.put("KEYS", StringUtils.join(keyarray.toArray(), ","));
|
|
|
- pd.put("KEYARRAY", keyarray);
|
|
|
- pd.put("VALUEARRAY", valuearray);
|
|
|
- pd.put("ROAD_ID", arrMap.get("ROAD_ID"));
|
|
|
- pd.put("PROJECT_NAME", arrMap.get("PROJECT_NAME"));
|
|
|
- pd.put("viewtype", setViewType(pd.getString("TABLETYPE")));
|
|
|
- if (pd.getString("TABLETYPE").equals("highway_technica_statable")||pd.getString("TABLETYPE").equals("highway_traiffcinfo_sumtable"))
|
|
|
- pd.put("viewtype", 1);
|
|
|
- //新增
|
|
|
- if (varList == null || varList.size() == 0) {
|
|
|
- annualDailyCompService.saveTableRecod(pd);
|
|
|
- }
|
|
|
- //编辑
|
|
|
- else if (keyarray.size() > 0) annualDailyCompService.editTableRecod(pd);
|
|
|
- }
|
|
|
- map.put("msg","success");
|
|
|
- } catch (Exception e) {
|
|
|
- map.put("msg","保存失败!");
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理导入的word数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithImportWordData(boolean flag, PageData pd, JSONObject jsonObject) throws Exception{
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- try {
|
|
|
- JSONObject arrMap = jsonObject;
|
|
|
- Set entryarray = arrMap.entrySet();
|
|
|
- ArrayList<Object> keyarray = new ArrayList<Object>();
|
|
|
- ArrayList<Object> valuearray = new ArrayList<Object>();
|
|
|
- for (Object entry : entryarray) {
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- keyarray.add(arr[0]);
|
|
|
- if (arr.length > 1) {
|
|
|
- valuearray.add(arr[1]);
|
|
|
- }else {
|
|
|
- valuearray.add(null);
|
|
|
- }
|
|
|
- }
|
|
|
- pd.put("KEYS", StringUtils.join(keyarray.toArray(), ","));
|
|
|
- pd.put("KEYARRAY", keyarray);
|
|
|
- pd.put("VALUEARRAY", valuearray);
|
|
|
- pd.put("PROJECT_NAME", arrMap.get("PROJECT_NAME"));
|
|
|
- pd.put("viewtype", setViewType(pd.getString("TABLETYPE")));
|
|
|
- if (pd.getString("TABLETYPE").equals("highway_technica_statable")||pd.getString("TABLETYPE").equals("highway_traiffcinfo_sumtable"))
|
|
|
- pd.put("viewtype", 1);
|
|
|
- //新增
|
|
|
- if (flag) {
|
|
|
- annualDailyCompService.saveTableRecod(pd);
|
|
|
- }else{
|
|
|
- //编辑
|
|
|
- annualDailyCompService.editTableRecod(pd);
|
|
|
- }
|
|
|
- map.put("msg","success");
|
|
|
- } catch (Exception e) {
|
|
|
- System.out.println(e.toString());
|
|
|
- map.put("msg","保存失败!");
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理导入的立项表子表word数据
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- public Map<String,Object> dealWithWordSubListData(PageData pd,JSONArray jsonarray) throws Exception{
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- boolean flag = true;
|
|
|
- List<PageData> pdList = new ArrayList<PageData>();
|
|
|
- try{
|
|
|
- if ("highway_equipment_overhaul_project_dettable".equals(pd.get("TABLE_NAME"))) {
|
|
|
- flag = false;
|
|
|
- }else{
|
|
|
- annualDailyCompService.deleteSubListDataWord(pd);
|
|
|
- }
|
|
|
- for (Object object : jsonarray) {
|
|
|
- PageData newpd = new PageData();
|
|
|
- JSONObject arrMap = JSONObject.fromObject(object);
|
|
|
- Set entryarray = arrMap.entrySet();
|
|
|
- if (flag) {
|
|
|
- ArrayList<Object> keyarray = new ArrayList<Object>();
|
|
|
- ArrayList<Object> valuearray = new ArrayList<Object>();
|
|
|
- for (Object entry : entryarray) {
|
|
|
- Object[] arr = entry.toString().split("=");
|
|
|
- if (arr.length > 1) {
|
|
|
- keyarray.add(arr[0]);
|
|
|
- valuearray.add(arr[1]);
|
|
|
- }
|
|
|
- }
|
|
|
- newpd.put("TABLE_NAME", pd.get("TABLE_NAME"));
|
|
|
- newpd.put("KEYS", StringUtils.join(keyarray.toArray(), ","));
|
|
|
- newpd.put("KEYARRAY", keyarray);
|
|
|
- newpd.put("VALUEARRAY", valuearray);
|
|
|
- if(!"highway_scientific_project_dettable_cost".equals(pd.get("TABLE_NAME"))){
|
|
|
- if(newpd.get("KEYARRAY").toString().contains("TOTAL_COST")){
|
|
|
- pdList.add(newpd);
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(newpd.get("KEYARRAY").toString().contains("SUBJECT")){
|
|
|
- pdList.add(newpd);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- for(PageData tpd : pdList){
|
|
|
- //新增
|
|
|
- annualDailyCompService.saveSubListDataWord(tpd);
|
|
|
- }
|
|
|
- map.put("msg","success");
|
|
|
- }catch(Exception e){
|
|
|
- map.put("msg", e.toString());
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
-
|
|
|
- //将导入word提取的数据入库
|
|
|
- public Map<String, Object> importDocData(PageData pd, HashMap<Object, Object> m) throws Exception {
|
|
|
- //判断是否是已存在的立项表
|
|
|
- boolean flag = true;
|
|
|
- List<PageData> varList = annualDailyCompService.hasTableRecod2(pd);
|
|
|
- if("highway_technica_statable".equals(pd.get("TABLETYPE"))
|
|
|
- || "highway_traiffcinfo_sumtable".equals(pd.get("TABLETYPE"))){
|
|
|
- if(varList.size() > 0){
|
|
|
- flag = false; //新导入的项目属于原项目
|
|
|
- }
|
|
|
- }else{
|
|
|
- for(PageData varpd : varList){
|
|
|
- if(varpd.get("PROJECT_NAME") != null){
|
|
|
- if(m.get("1,2").equals(varpd.get("PROJECT_NAME"))){
|
|
|
- flag = false; //新导入的项目属于原项目
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //先处理子表数据,得到总表的规模和估算金额
|
|
|
- JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- String jsonPath = (String) pd.get("TABLETYPE") + "_cost";
|
|
|
- double totalCost = (double)0;
|
|
|
- String PROJECT_SCALE = "小修";
|
|
|
- Map<String, Object> map = new HashMap<String, Object>();
|
|
|
- if(!("highway_equipment_overhaul_project_dettable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_quality_goals_table_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_technica_statable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_traiffcinfo_sumtable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_scientific_project_dettable_cost".equalsIgnoreCase(jsonPath))){ //排除没有子表的
|
|
|
- List subdocJson = ImportDoc.importJson(jsonPath);
|
|
|
- JSONObject jsondate = jsonarray.getJSONObject(1);
|
|
|
- JSONArray sublistArray = new JSONArray();
|
|
|
- subdocJson = ImportDoc.importJson(jsonPath);
|
|
|
- boolean isAddFlag = true;
|
|
|
- for(int i =0;i<actulItemIndex;i++) {
|
|
|
- List docJsonArray = (List) subdocJson.get(0);
|
|
|
- jsondate.put("PROJECT_NAME", m.get("1,2"));
|
|
|
- for(int j=0; j<docJsonArray.size();j++) {
|
|
|
- ImoprtJson ijson = (ImoprtJson) docJsonArray.get(j);
|
|
|
- String jsonIndex = String.valueOf(Integer.parseInt(ijson.getIndex().split(",")[0]) + i) + "," + ijson.getIndex().split(",")[1];
|
|
|
- jsondate.put(ijson.getColumn(), (String) m.get(jsonIndex));
|
|
|
- if(!"highway_scientific_project_dettable_cost".equalsIgnoreCase(jsonPath)){
|
|
|
- if(j == docJsonArray.size()-1 && !"".equalsIgnoreCase(jsondate.get("UNIT_PRICE").toString())){
|
|
|
- double tCost = (double)0;
|
|
|
- tCost = Double.parseDouble(jsondate.get("UNIT_PRICE").toString()) * Double.parseDouble(jsondate.get("NUMBER").toString());
|
|
|
- jsondate.put("TOTAL_COST", String.valueOf(tCost));
|
|
|
- String id = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
- jsondate.put("ID", id);
|
|
|
- totalCost += tCost;
|
|
|
- }
|
|
|
- if("".equalsIgnoreCase(jsondate.get("ITEM_NAME").toString())){
|
|
|
- isAddFlag = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }else{
|
|
|
- if((!"".equals(jsondate.get("SUBJECT")) || !"".equals(jsondate.get("EXPENDITURE_SUBJECT")))){
|
|
|
- if(jsondate.get("ID").equals("")){
|
|
|
- String id = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
- jsondate.put("ID", id);
|
|
|
- }
|
|
|
- }else{
|
|
|
- isAddFlag = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(isAddFlag){
|
|
|
- sublistArray.add(jsondate);
|
|
|
- jsondate.put("ID", "");
|
|
|
- }
|
|
|
- }
|
|
|
- pd.put("TABLE_NAME", jsonPath);
|
|
|
- pd.put("PROJECT_NAME", m.get("1,2"));
|
|
|
- map = dealWithWordSubListData(pd, sublistArray); //立项表子表合入数据
|
|
|
- }else{
|
|
|
- map.put("msg","success");
|
|
|
- }
|
|
|
-
|
|
|
- if(!("highway_scientific_project_dettable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_equipment_overhaul_project_dettable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_quality_goals_table_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_technica_statable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_traiffcinfo_sumtable_cost".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_scientific_project_dettable_cost".equalsIgnoreCase(jsonPath))){
|
|
|
- if(totalCost/10000 < 500){
|
|
|
- PROJECT_SCALE = "小修";
|
|
|
- }else if(totalCost/10000 > 5000){
|
|
|
- PROJECT_SCALE = "大修";
|
|
|
- }else{
|
|
|
- PROJECT_SCALE = "中修";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- jsonPath = (String) pd.get("TABLETYPE");
|
|
|
-
|
|
|
- JSONObject dataObject = new JSONObject();
|
|
|
- if (jsonarray.size() > 0 && jsonarray != null) {
|
|
|
- List<ImoprtJson> docJson = ImportDoc.importJson(jsonPath);
|
|
|
- //JSONObject jsondate = (JSONObject) jsonarray.get(0);
|
|
|
- for(ImoprtJson ijson : docJson) {
|
|
|
- if(ijson.getColumn().equals("KEY_WORDS")) {
|
|
|
- String a= (String) m.get(ijson.getIndex());
|
|
|
- String b = a.replace(",", ",");
|
|
|
- dataObject.put(ijson.getColumn(), b);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(!("highway_scientific_project_dettable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_equipment_overhaul_project_dettable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_quality_goals_table".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_technica_statable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_traiffcinfo_sumtable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_scientific_project_dettable".equalsIgnoreCase(jsonPath))){
|
|
|
- if("PROJECT_COST".equalsIgnoreCase(ijson.getColumn()) || "TOTAL_COST".equalsIgnoreCase(ijson.getColumn())){
|
|
|
- dataObject.put(ijson.getColumn(), String.valueOf(totalCost/10000));
|
|
|
- }else if("PROJECT_SCALE".equalsIgnoreCase(ijson.getColumn())){
|
|
|
- dataObject.put(ijson.getColumn(), PROJECT_SCALE);
|
|
|
- }else if("OTHER_MATTER".equalsIgnoreCase(ijson.getColumn())){
|
|
|
- dataObject.put(ijson.getColumn(), (String) m.get(String.valueOf(Integer.parseInt(ijson.getIndex().split(",")[0]) + actulItemIndex) + "," + ijson.getIndex().split(",")[1]));
|
|
|
- }else{
|
|
|
- dataObject.put(ijson.getColumn(), (String) m.get(ijson.getIndex()));
|
|
|
- }
|
|
|
- }else if("highway_scientific_project_dettable".equalsIgnoreCase(jsonPath)){
|
|
|
- if("OTHER_MATTER".equalsIgnoreCase(ijson.getColumn()) || "MATTER_YEAR".equalsIgnoreCase(ijson.getColumn())
|
|
|
- || "MATTER_NEW_CARRY".equalsIgnoreCase(ijson.getColumn()) || "MATTER_CONSULT".equalsIgnoreCase(ijson.getColumn())){
|
|
|
- dataObject.put(ijson.getColumn(), (String) m.get(String.valueOf(Integer.parseInt(ijson.getIndex().split(",")[0]) + actulItemIndex) + "," + ijson.getIndex().split(",")[1]));
|
|
|
- }else{
|
|
|
- dataObject.put(ijson.getColumn(), (String) m.get(ijson.getIndex()));
|
|
|
- }
|
|
|
- }else{
|
|
|
- dataObject.put(ijson.getColumn(), (String) m.get(ijson.getIndex()));
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if(dataObject.get("TOTAL_COST") == null){
|
|
|
- dataObject.put("TOTAL_COST", dataObject.get("PROJECT_COST"));
|
|
|
- }
|
|
|
- dataObject.put("YEAR", pd.get("YEAR"));
|
|
|
- dataObject.put("COMPANY", pd.get("COMPANY"));
|
|
|
- dataObject.put("COMPANY_ID", pd.get("COMPANY_ID"));
|
|
|
- dataObject.put("ROAD_ID", pd.get("ROAD_ID"));
|
|
|
- dataObject.put("ROAD", pd.get("ROAD"));
|
|
|
- }
|
|
|
- if (map.get("msg").equals("success")){
|
|
|
- map = dealWithImportWordData(flag, pd, dataObject);
|
|
|
- if("highway_technica_statable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_traiffcinfo_sumtable".equalsIgnoreCase(jsonPath)){
|
|
|
- pd.put("STATUS", "编制中");
|
|
|
- annualDailyCompService.updateStatus(pd);
|
|
|
- annualDailyCompService.updatePlanStatus(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- if (map.get("msg").equals("success")) {
|
|
|
- //主表插入数据成功再添加table表
|
|
|
- if(flag && !("highway_technica_statable".equalsIgnoreCase(jsonPath)
|
|
|
- || "highway_traiffcinfo_sumtable".equalsIgnoreCase(jsonPath))){
|
|
|
- varList = null; //新导入的项目不属于原项目,执行insert操作
|
|
|
- String projectName = (String) m.get("1,2");
|
|
|
- addNewTableInfo(pd, projectName, jsonPath);
|
|
|
- annualDailyCompService.updatePlanStatus(pd);
|
|
|
- }
|
|
|
- }
|
|
|
- return map;
|
|
|
- }
|
|
|
- public int setViewType(String tableType) {
|
|
|
- int viewType = 1;
|
|
|
- if (tableType.equals("highway_plan_comp_sumtable")||tableType.equals("highway_annual_plan_sumtable")
|
|
|
- ||tableType.equals("highway_quality_goals_table")|| tableType.equals("highway_daily_plan_statable")
|
|
|
- ||tableType.equals("highway_reserve_fees_sumtable") || tableType.equals("highway_daily_plan_statable")
|
|
|
- ||tableType.equals("highway_daily_comp_sumtable") || tableType.equals("highway_daily_comp_dettable")) {
|
|
|
- viewType = 2;
|
|
|
- }else if (tableType.equals("highway_technica_statable")
|
|
|
- ||tableType.equals("highway_traiffcinfo_sumtable")
|
|
|
- ||tableType.equals("highway_prevention_project_dettable")
|
|
|
- ||tableType.equals("highway_emergency_project_dettable")
|
|
|
- ||tableType.equals("highway_repair_project_dettable")
|
|
|
- ||tableType.equals("highway_test_project_dettable")
|
|
|
- ||tableType.equals("highway_scientific_project_dettable")
|
|
|
- ||tableType.equals("highway_equipment_overhaul_project_dettable")
|
|
|
- ||tableType.equals("highway_special_project_dettable")) {
|
|
|
- viewType = 3;
|
|
|
- }
|
|
|
- return viewType;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/updateStatus")
|
|
|
- @ResponseBody
|
|
|
- public Object updateStatus() throws Exception{
|
|
|
- String username = Jurisdiction.getUsername();
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- int intStatus = Integer.parseInt(pd.getString("STATUS"));
|
|
|
- String pdStatus = "";
|
|
|
- switch(intStatus){
|
|
|
- case 0:
|
|
|
- pdStatus = "新建";break;
|
|
|
- case 1:
|
|
|
- pdStatus = "编制中";
|
|
|
- pd.put("MTIME", Tools.date2Str(new Date()));
|
|
|
- pd.put("COMPILER", username);
|
|
|
- pd.put("COMPILE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- pdStatus = "待审核";break;
|
|
|
- case 3:
|
|
|
- pd.put("MTIME", Tools.date2Str(new Date()));
|
|
|
- pdStatus = "审核中";break;
|
|
|
- case 4:
|
|
|
- pdStatus = "审核通过";
|
|
|
- pd.put("AUDITOR", username);
|
|
|
- pd.put("AUDIT_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- pdStatus = "审核不通过";
|
|
|
- pd.put("AUDITOR", username);
|
|
|
- pd.put("AUDIT_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 6:
|
|
|
- pdStatus = "路公司驳回";break;
|
|
|
- case 7:
|
|
|
- pdStatus = "待审批";break;
|
|
|
- case 8:
|
|
|
- pd.put("MTIME", Tools.date2Str(new Date()));
|
|
|
- pdStatus = "审批中";break;
|
|
|
- case 9:
|
|
|
- pdStatus = "审批通过";
|
|
|
- pd.put("APPROVER", username);
|
|
|
- pd.put("APPROVE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 10:
|
|
|
- pdStatus = "审批不通过";
|
|
|
- pd.put("APPROVER", username);
|
|
|
- pd.put("APPROVE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 11:
|
|
|
- pdStatus = "控股驳回";break;
|
|
|
- default:
|
|
|
- pdStatus = "新建";break;
|
|
|
- }
|
|
|
- pd.put("STATUS", pdStatus);
|
|
|
- if("undefined".equals(pd.get("PROJECT_NAME"))){
|
|
|
- pd.remove("PROJECT_NAME");
|
|
|
- }
|
|
|
- annualDailyCompService.updateStatus(pd); //update annual_table_list 表状态
|
|
|
- //List<PageData> tableInfo = annualDailyCompService.getAllTableStatus(pd); //查询 annual_table_list中同一个plan下的表状态
|
|
|
- String planStatus = dealStatus(pd);
|
|
|
- if(!planStatus.isEmpty()){
|
|
|
- pd.put("STATUS", planStatus);
|
|
|
- annualDailyCompService.updatePlanStatus(pd); //update annual_plan_list 表状态
|
|
|
- }
|
|
|
-
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg", pdStatus);
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/updatePlanStatus")
|
|
|
- @ResponseBody
|
|
|
- public Object updatePlanStatus() throws Exception{
|
|
|
- String username = Jurisdiction.getUsername();
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- pd.put("STATUS", "删除");
|
|
|
- String planStatus = dealStatus(pd);
|
|
|
- if(!planStatus.isEmpty()){
|
|
|
- pd.put("STATUS", planStatus);
|
|
|
- annualDailyCompService.updatePlanStatus(pd); //update annual_plan_list 表状态
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg","success");
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- private String dealStatus(PageData pd) throws Exception{
|
|
|
- String annualPlanStatus = "";
|
|
|
- if(pd.get("TABLETYPE") !=null){
|
|
|
- if("highway_reserve_fees_sumtable".equalsIgnoreCase(pd.get("TABLETYPE").toString())){
|
|
|
- pd.put("YEAR", String.valueOf(Integer.parseInt(pd.get("YEAR").toString()) + 1));
|
|
|
- }
|
|
|
- }
|
|
|
- String planid = annualDailyCompService.getPlanId(pd); //通过companyid和year获取 annual_plan_list对应的id
|
|
|
- //String planStatus = annualDailyCompService.getPlanStatus(pd); //查询 annual_table_list对应的plan状态
|
|
|
- List<PageData> reportIds = annualDailyCompService.getReportsInfo(planid); //通过planid获取对应的reportids,所有的路段
|
|
|
- Map<PageData, List<PageData>> reportAndTableMap = new HashMap<PageData, List<PageData>>();
|
|
|
- for(PageData reportid : reportIds){
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(reportid);
|
|
|
- reportAndTableMap.put(reportid, tableInfoList);
|
|
|
- if(isXJstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "新建";
|
|
|
- }else if(isBZstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "编制中";
|
|
|
- }else if(isDSHstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "待审核";
|
|
|
- }else if(isSHTGstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "审核通过";
|
|
|
- }else if("".equalsIgnoreCase(isBFSHTGstatus(reportAndTableMap))){
|
|
|
- annualPlanStatus = isBFSHTGstatus(reportAndTableMap);
|
|
|
- }else if("".equalsIgnoreCase(isSHBTGstatus(reportAndTableMap))){
|
|
|
- annualPlanStatus = isSHBTGstatus(reportAndTableMap);
|
|
|
- }else if(isDSPstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "待审批";
|
|
|
- }else if(isSPTGstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "审批通过";
|
|
|
- }else if(isSPBTGstatus(reportAndTableMap)){
|
|
|
- annualPlanStatus = "控股驳回";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return annualPlanStatus;
|
|
|
- }
|
|
|
-
|
|
|
- //新建
|
|
|
- private boolean isXJstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- //System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if(!("新建".equalsIgnoreCase(status) || "自动统计".equalsIgnoreCase(status))){
|
|
|
- return false;
|
|
|
- }else{
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //编制中
|
|
|
- private boolean isBZstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- //System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("待审核".equalsIgnoreCase(status) || "审核通过".equalsIgnoreCase(status) ||"审核不通过".equalsIgnoreCase(status)
|
|
|
- || "待审批".equalsIgnoreCase(status) || "审批通过".equalsIgnoreCase(status) || "审批不通过".equalsIgnoreCase(status)){
|
|
|
- return false;
|
|
|
- }else if("编制中".equalsIgnoreCase(status)){
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //待审核
|
|
|
- private boolean isDSHstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("待审核".equalsIgnoreCase(status)){
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //审核通过
|
|
|
- private boolean isSHTGstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if(!"审核通过".equalsIgnoreCase(status) && !"自动统计".equalsIgnoreCase(status)){
|
|
|
- return false;
|
|
|
- }else{
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //部分审核通过(路段1,路段2)
|
|
|
- private String isBFSHTGstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- String shtgRoads = "";
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("待审核".equalsIgnoreCase(status)){
|
|
|
- return "待审核";
|
|
|
- }else if("审核通过".equalsIgnoreCase(status) && !shtgRoads.contains(entry.getKey().get("ROAD_NAME").toString())){
|
|
|
- shtgRoads += entry.getKey().get("ROAD_NAME") + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return "部分审核通过("+shtgRoads.indexOf(0, shtgRoads.length()-1)+")";
|
|
|
- }
|
|
|
-
|
|
|
- //审核不通过
|
|
|
- private String isSHBTGstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- String shbtgRoads = "";
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("待审核".equalsIgnoreCase(status)){
|
|
|
- return "待审核";
|
|
|
- }else if("审核不通过".equalsIgnoreCase(status) && !shbtgRoads.contains(entry.getKey().get("ROAD_NAME").toString())){
|
|
|
- shbtgRoads += entry.getKey().get("ROAD_NAME") + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return "路公司驳回("+shbtgRoads.indexOf(0, shbtgRoads.length()-1)+")";
|
|
|
- }
|
|
|
-
|
|
|
- //待审批
|
|
|
- private boolean isDSPstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("待审批".equalsIgnoreCase(status)){
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //审批通过
|
|
|
- private boolean isSPTGstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = false;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if(!"审批通过".equalsIgnoreCase(status) && !"自动统计".equalsIgnoreCase(status)){
|
|
|
- return false;
|
|
|
- }else{
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- //审批不通过
|
|
|
- private boolean isSPBTGstatus(Map<PageData, List<PageData>> reportAndTableMap){
|
|
|
- boolean flag = true;
|
|
|
- for (Entry<PageData, List<PageData>> entry : reportAndTableMap.entrySet()) {
|
|
|
- for(PageData tablepd : entry.getValue()){
|
|
|
- String status = tablepd.get("STATUS").toString();
|
|
|
- if("审批不通过".equalsIgnoreCase(status)){
|
|
|
- return true;
|
|
|
- }else if("待审批".equalsIgnoreCase(status) || "新建".equalsIgnoreCase(status)
|
|
|
- || "待审核".equalsIgnoreCase(status) || "审核通过".equalsIgnoreCase(status) ||"审核不通过".equalsIgnoreCase(status)){
|
|
|
- flag = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
-/* private String dealStatus(PageData pd) throws Exception{
|
|
|
- String annualPlanStatus = "";
|
|
|
- if(pd.get("TABLETYPE") !=null){
|
|
|
- if("highway_reserve_fees_sumtable".equalsIgnoreCase(pd.get("TABLETYPE").toString())){
|
|
|
- pd.put("YEAR", String.valueOf(Integer.parseInt(pd.get("YEAR").toString()) + 1));
|
|
|
- }
|
|
|
- }
|
|
|
- String planid = annualDailyCompService.getPlanId(pd); //通过companyid和year获取 annual_plan_list对应的id
|
|
|
- String planStatus = annualDailyCompService.getPlanStatus(pd); //查询 annual_table_list对应的plan状态
|
|
|
- List<String> reportIds = annualDailyCompService.getReportIds(planid); //通过planid获取对应的reportids,所有的路段
|
|
|
- //PageData reportInfo = annualDailyCompService.getReportId(pd); //通过pd获取当前修改的table对应的report信息,一条路段
|
|
|
- //年计划状态为“新建”,进行“编制”操作,年计划和对应表状态都为“编制中”
|
|
|
- if("新建".equalsIgnoreCase(planStatus)){
|
|
|
- annualPlanStatus = "编制中";
|
|
|
- }
|
|
|
- PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
|
|
|
- //通过ROLE_ID获取角色
|
|
|
- String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
|
|
|
- if("路桥公司管理员".equalsIgnoreCase(roleName)){
|
|
|
- if("待审核".equalsIgnoreCase(planStatus) && "审核通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "审核中";
|
|
|
- }else if(("待审核".equalsIgnoreCase(planStatus) || "审核中".equalsIgnoreCase(planStatus))
|
|
|
- && "审核不通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "路公司驳回(" + pd.get("ROAD").toString() + ")";
|
|
|
- }
|
|
|
- if("审核中".equalsIgnoreCase(planStatus) && "审核通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- if(hasAllPassStatus(reportIds,"审核通过")){
|
|
|
- annualPlanStatus = "审核通过";
|
|
|
- }
|
|
|
- }
|
|
|
- if(planStatus.contains("路公司驳回") && "审核不通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- String roadnames = planStatus.replace(")", "").trim();
|
|
|
- if(!roadnames.contains(pd.get("ROAD").toString())){
|
|
|
- roadnames += "," + pd.get("ROAD").toString();
|
|
|
- annualPlanStatus = roadnames + ")";
|
|
|
- }
|
|
|
- }
|
|
|
- //路公司用户直接修改保存原来审核不通过的表格
|
|
|
- if(planStatus.contains("路公司驳回") && "编制中".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = hasAllPassOrEditStatus(reportIds, planStatus, "审核通过", "编制中");
|
|
|
- }
|
|
|
- //路公司用户直接删除审核不通过的表格
|
|
|
- if(planStatus.contains("路公司驳回") && "删除".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = hasAllPassOrEditStatus(reportIds, planStatus, "审核通过", "编制中");
|
|
|
- }
|
|
|
- if(planStatus.contains("控股驳回") && "审核不通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "路公司驳回(" + pd.get("ROAD").toString() + ")";
|
|
|
- }
|
|
|
- if(planStatus.contains("控股驳回") && "待审批".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "待审批";
|
|
|
- }
|
|
|
- if((("审核中").equalsIgnoreCase(planStatus)||("审核通过").equalsIgnoreCase(planStatus))
|
|
|
- && "待审批".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "待审批";
|
|
|
- }
|
|
|
- if(("编制中").equalsIgnoreCase(planStatus) && "待审批".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "待审批";
|
|
|
- }
|
|
|
- }
|
|
|
- if("路段管理员".equalsIgnoreCase(roleName)){
|
|
|
- if(planStatus.contains("编制中") && "待审核".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "待审核";
|
|
|
- }
|
|
|
- if(planStatus.contains("路公司驳回") && "待审核".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- String[] roadnames = planStatus.replace("路公司驳回(", "").replace(")", "").trim().split(",");
|
|
|
- String roads = "";
|
|
|
- for(String road : roadnames){
|
|
|
- if(pd.get("ROAD") != null){
|
|
|
- if(!road.trim().equalsIgnoreCase(pd.get("ROAD").toString().trim())){
|
|
|
- roads += road.trim() + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- if(pd.get("ROADS") != null){
|
|
|
- String[] tempRoads = (String[])pd.get("ROADS");
|
|
|
- for(String tempRoad : tempRoads){
|
|
|
- if(!road.trim().equalsIgnoreCase(tempRoad.trim())){
|
|
|
- roads += road.trim() + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(roads.isEmpty()){
|
|
|
- annualPlanStatus = "待审核";
|
|
|
- }else{
|
|
|
- annualPlanStatus = "路公司驳回(" + roads.substring(0, roads.length()-1) + ")";
|
|
|
- }
|
|
|
- }
|
|
|
- //路段用户删除(审核不通过)的表格
|
|
|
- if("删除".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = getAllTableStatus(reportIds);
|
|
|
- }
|
|
|
- }
|
|
|
- if("控股集团管理员".equalsIgnoreCase(roleName)){
|
|
|
- if("待审批".equalsIgnoreCase(planStatus) && "审批通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "审批中";
|
|
|
- }else if(("待审批".equalsIgnoreCase(planStatus) || "审批中".equalsIgnoreCase(planStatus))
|
|
|
- && "审批不通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "控股驳回";
|
|
|
- }
|
|
|
- if("审批中".equalsIgnoreCase(planStatus) && "审批通过".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- if(hasAllPassStatus(reportIds,"审批通过")){
|
|
|
- annualPlanStatus = "审批通过";
|
|
|
- }
|
|
|
- }
|
|
|
- if("待审批".equalsIgnoreCase(planStatus) && "待审批".equalsIgnoreCase(pd.get("STATUS").toString())){
|
|
|
- annualPlanStatus = "待审批";
|
|
|
- }
|
|
|
- }
|
|
|
- return annualPlanStatus;
|
|
|
- }*/
|
|
|
-
|
|
|
-/* //判断同一年报告下的所有表状态(除“自动统计”)
|
|
|
- private String getAllTableStatus(List<String> reportIds) throws Exception{
|
|
|
- String status = "";
|
|
|
- PageData pd = new PageData();
|
|
|
- for(String reportid : reportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(pd);
|
|
|
- int i = 0;
|
|
|
- for(PageData tableInfo : tableInfoList){
|
|
|
- if(tableInfo.get("STATUS").toString().equalsIgnoreCase("审核通过")
|
|
|
- || tableInfo.get("STATUS").toString().equalsIgnoreCase("自动统计")){
|
|
|
- i++;
|
|
|
- }
|
|
|
- }
|
|
|
- if(i == tableInfoList.size()){
|
|
|
- status = "审核通过";
|
|
|
- }
|
|
|
- }
|
|
|
- return status;
|
|
|
- }*/
|
|
|
-
|
|
|
- //判断同一年报告下的所有表状态是否都为“审核通过”(除“自动统计”)
|
|
|
-/* private boolean hasAllPassStatus(List<String> reportIds, String status) throws Exception{
|
|
|
- boolean hasAllPassStatus = true;
|
|
|
- PageData pd = new PageData();
|
|
|
- for(String reportid : reportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(pd);
|
|
|
- int i = 0;
|
|
|
- for(PageData tableInfo : tableInfoList){
|
|
|
- if(tableInfo.get("STATUS").toString().equalsIgnoreCase(status)
|
|
|
- || tableInfo.get("STATUS").toString().equalsIgnoreCase("自动统计")){
|
|
|
- i++;
|
|
|
- }
|
|
|
- }
|
|
|
- if(i != tableInfoList.size()){
|
|
|
- hasAllPassStatus = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- return hasAllPassStatus;
|
|
|
- }*/
|
|
|
-
|
|
|
- //路桥用户点击"保存",判断同一年报告下的所有表状态是否都为“审核通过”或者编制人为路桥公司管理员,编制中状态(除“自动统计”)
|
|
|
-/* private String hasAllPassOrEditStatus(List<String> reportIds, String planStatus, String status1, String status2) throws Exception{
|
|
|
- PageData pd = new PageData();
|
|
|
- List<String> delRoad = new ArrayList<String>();
|
|
|
- for(String reportid : reportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(pd);
|
|
|
- int i = 0;
|
|
|
- for(PageData tableInfo : tableInfoList){
|
|
|
- if(tableInfo.get("STATUS").toString().equalsIgnoreCase(status1)
|
|
|
- || (tableInfo.get("STATUS").toString().equalsIgnoreCase(status2)
|
|
|
- && "路桥公司管理员".equalsIgnoreCase(getRoleName(tableInfo.get("COMPILER").toString())))
|
|
|
- || tableInfo.get("STATUS").toString().equalsIgnoreCase("自动统计")){
|
|
|
- i++;
|
|
|
- }
|
|
|
- }
|
|
|
- if(i == tableInfoList.size()){ //路段报告中没有审核不通过的
|
|
|
- if(tableInfoList.get(0).get("ROAD_NAME") != null){
|
|
|
- delRoad.add(tableInfoList.get(0).get("ROAD_NAME").toString().trim());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- String[] roadnames = planStatus.replace("路公司驳回(", "").replace(")", "").trim().split(",");
|
|
|
- if(delRoad.size() > 0){ //路段报告中没有审核不通过的
|
|
|
- for(String delR : delRoad){
|
|
|
- for(int j = 0; j < roadnames.length; j++){
|
|
|
- if(roadnames[j].trim().equalsIgnoreCase(delR)){
|
|
|
- roadnames = (String[]) ArrayUtils.remove(roadnames, j);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(roadnames.length > 0){
|
|
|
- StringBuffer str = new StringBuffer();
|
|
|
- for (String s : roadnames) {
|
|
|
- str.append(s);
|
|
|
- }
|
|
|
- planStatus = "路公司驳回(" + str.toString() + ")";
|
|
|
- }else{
|
|
|
- planStatus = "审核中";
|
|
|
- }
|
|
|
- return planStatus;
|
|
|
- }*/
|
|
|
-
|
|
|
-/* private String getRoleName(String name) throws Exception{
|
|
|
- PageData userInfo = annualPlanService.getCompanyAndRoad(name); //通过username获取公司和路段
|
|
|
- //通过ROLE_ID获取角色
|
|
|
- String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
|
|
|
- return roleName;
|
|
|
- }*/
|
|
|
-
|
|
|
- /**完成审核和审批
|
|
|
- * @param
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- @RequestMapping(value="/updateAllStatus")
|
|
|
- @ResponseBody
|
|
|
- public Object updateAllStatus()throws Exception{
|
|
|
- String username = Jurisdiction.getUsername();
|
|
|
- ModelAndView mv = this.getModelAndView();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- String msg = "提交成功";
|
|
|
- PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
|
|
|
- //通过ROLE_ID获取角色
|
|
|
- String roadUser = "";
|
|
|
- String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString());
|
|
|
- if("路段管理员".equalsIgnoreCase(roleName)){
|
|
|
- String[] roadnames = userInfo.get("ROAD").toString().replace("","").split(",");
|
|
|
- String[] roads = new String[roadnames.length];
|
|
|
- for(int i = 0; i < roadnames.length ; i++){
|
|
|
- //String roadid = annualPlanService.getRoadId(roadnames[i].trim());
|
|
|
- roads[i] = roadnames[i].trim();
|
|
|
- }
|
|
|
- pd.put("ROADS", roads);
|
|
|
- pd.put("USERNAME", username);
|
|
|
- roadUser = username;
|
|
|
- }
|
|
|
-// JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
|
|
|
- int intStatus = Integer.parseInt(pd.getString("STATUS"));
|
|
|
- String pdStatus = "";
|
|
|
- switch(intStatus){
|
|
|
- case 0:
|
|
|
- pdStatus = "新建";break;
|
|
|
- case 1:
|
|
|
- pdStatus = "编制中";
|
|
|
- pd.put("COMPILER", username);
|
|
|
- pd.put("COMPILE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- pdStatus = "待审核";break;
|
|
|
- case 3:
|
|
|
- pdStatus = "审核中";break;
|
|
|
- case 4:
|
|
|
- pdStatus = "审核通过";
|
|
|
- pd.put("AUDITOR", username);
|
|
|
- pd.put("AUDIT_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- pdStatus = "审核不通过";
|
|
|
- pd.put("AUDITOR", username);
|
|
|
- pd.put("AUDIT_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 6:
|
|
|
- pdStatus = "路公司驳回";break;
|
|
|
- case 7:
|
|
|
- pd.put("SPTIME", Tools.date2Str(new Date()));
|
|
|
- pdStatus = "待审批";break;
|
|
|
- case 8:
|
|
|
- pdStatus = "审批中";break;
|
|
|
- case 9:
|
|
|
- pdStatus = "审批通过";
|
|
|
- pd.put("APPROVER", username);
|
|
|
- pd.put("APPROVE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 10:
|
|
|
- pdStatus = "审批不通过";
|
|
|
- pd.put("APPROVER", username);
|
|
|
- pd.put("APPROVE_TIME", Tools.date2Str(new Date()));
|
|
|
- break;
|
|
|
- case 11:
|
|
|
- pdStatus = "审核完成";break;
|
|
|
- case 12:
|
|
|
- pdStatus = "审批完成";break;
|
|
|
- case 13:
|
|
|
- pdStatus = "控股驳回";break;
|
|
|
- default:
|
|
|
- pdStatus = "新建";break;
|
|
|
- }
|
|
|
- pd.put("STATUS", pdStatus);
|
|
|
- String planid = annualDailyCompService.getPlanId(pd); //通过companyid和year获取 annual_plan_list对应的id
|
|
|
- List<String> reportIds = annualDailyCompService.getReportIds(planid); //通过planid获取对应的reportids,所有的路段
|
|
|
- if(intStatus == 2){
|
|
|
- if(roadUser.isEmpty()){
|
|
|
- msg = "只有路段管理员需要提交审核";
|
|
|
- }else{
|
|
|
- pd.put("PLANID", planid);
|
|
|
- List<String> userReportIds = annualDailyCompService.getUserReportIds(pd); //获取该路段用户所有报告
|
|
|
- for(String reportid : userReportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(pd);
|
|
|
- for(PageData tableInfo : tableInfoList){
|
|
|
- if(!("编制中".equalsIgnoreCase(tableInfo.get("STATUS").toString())
|
|
|
- || "审核通过".equalsIgnoreCase(tableInfo.get("STATUS").toString())
|
|
|
- || "审批通过".equalsIgnoreCase(tableInfo.get("STATUS").toString())
|
|
|
- || "自动统计".equalsIgnoreCase(tableInfo.get("STATUS").toString()))){
|
|
|
- msg = "不符合条件,不能提交审核";
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if("提交成功".equalsIgnoreCase(msg)){
|
|
|
- msg = "已提交审核";
|
|
|
- for(String reportid : userReportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- annualDailyCompService.updateAllTablesStatus(pd); //update 该plan下所有table表状态(编制中的所有表)
|
|
|
- }
|
|
|
- String planStatus = dealStatus(pd);
|
|
|
- if(!planStatus.isEmpty()){ //不修改状态
|
|
|
- pd.put("STATUS", planStatus);
|
|
|
- annualDailyCompService.updatePlanStatus(pd); //update annual_plan_list 表状态 ,更新计划修改时间(每次提交时更新)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }else if(intStatus == 7){ //提交年度计划
|
|
|
- List<PageData> companyUserList = annualDailyCompService.getCompanyUserInfo(pd); //通过公司名获取该公司下所有user信息
|
|
|
- Map<String, String> userMap = new HashMap<String, String>();
|
|
|
- for(PageData user : companyUserList){
|
|
|
- String userRoleName = annualDailyCompService.getRoleName(user.get("ROLE_ID").toString());
|
|
|
- userMap.put(user.get("USERNAME").toString(), userRoleName);
|
|
|
- }
|
|
|
- msg = getMsg(pd, reportIds, userMap);
|
|
|
- if("success".equalsIgnoreCase(msg)){
|
|
|
- msg = "提交年度计划成功";
|
|
|
- for(String reportid : reportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- annualDailyCompService.updateAllTablesStatus1(pd); //update 该plan下所有table表状态(自动统计外的所有表)
|
|
|
- }
|
|
|
- String planStatus = dealStatus(pd);
|
|
|
- if(!planStatus.isEmpty()){ //不修改状态
|
|
|
- pd.put("STATUS", planStatus);
|
|
|
- annualDailyCompService.updatePlanStatus(pd); //update annual_plan_list 表状态
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg", msg);
|
|
|
- map.put("status",pd.get("STATUS").toString());
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
- public String getMsg(PageData pd, List<String> reportIds, Map<String, String> userMap){
|
|
|
- String msg = "success";
|
|
|
- try{
|
|
|
- for(String reportid : reportIds){
|
|
|
- pd.put("REPORTID", reportid);
|
|
|
- List<PageData> tableInfoList = annualDailyCompService.getUserTableInfo(pd);
|
|
|
- for(PageData tableInfo : tableInfoList){
|
|
|
- if(tableInfo.get("STATUS").toString().equalsIgnoreCase("新建")){
|
|
|
- msg = "存在状态为“新建”的表,不能提交年度计划";
|
|
|
- return msg;
|
|
|
- }
|
|
|
- if(tableInfo.get("COMPILER") != null){
|
|
|
- for(Entry<String, String> um : userMap.entrySet()){
|
|
|
- if((um.getKey().equalsIgnoreCase(tableInfo.get("COMPILER").toString())
|
|
|
- && um.getValue().equalsIgnoreCase("路段管理员")
|
|
|
- && !tableInfo.get("STATUS").toString().equalsIgnoreCase("审核通过"))){
|
|
|
- msg = "路桥公司管理员还有表未审核通过,不能提交年度计划";
|
|
|
- return msg;
|
|
|
- }else if(tableInfo.get("STATUS").toString().equalsIgnoreCase("待审批")){
|
|
|
- msg = "控股集团管理员还有表未审批,不能提交年度计划";
|
|
|
- return msg;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return msg;
|
|
|
- }catch(Exception e){
|
|
|
- return e.toString();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //判断table状态,获得plan状态
|
|
|
- public boolean getAllTableStatus(PageData pd) throws Exception{
|
|
|
- List<PageData> tableStatus = annualDailyCompService.getAllTableStatus(pd);
|
|
|
- boolean planStatus = true;
|
|
|
- for(PageData tableStatu : tableStatus){
|
|
|
- if("审核不通过".equalsIgnoreCase(tableStatu.get("STATUS").toString()) || "审批不通过".equalsIgnoreCase(tableStatu.get("STATUS").toString())){
|
|
|
- planStatus = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- return planStatus;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value="/getValidateJson")
|
|
|
- @ResponseBody
|
|
|
- public Object getValidateJson() throws Exception{
|
|
|
- Map<String,Object> result = new HashMap<String,Object>();
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- String jsonPath = (String) pd.get("TABLETYPE");
|
|
|
- List<ImoprtJson> list = ImportDoc.importJson(jsonPath);
|
|
|
- Map<String, Object> map = jsonListToObj(list);
|
|
|
- result.put("map", map);
|
|
|
- if (jsonPath.equals("highway_prevention_project_dettable")
|
|
|
- ||jsonPath.equals("highway_repair_project_dettable")
|
|
|
- ||jsonPath.equals("highway_special_project_dettable")
|
|
|
- ||jsonPath.equals("highway_emergency_project_dettable")
|
|
|
- ||jsonPath.equals("highway_test_project_dettable")
|
|
|
- ||jsonPath.equals("highway_scientific_project_dettable")) {
|
|
|
- String subjsonPath = jsonPath + "_cost";
|
|
|
- List<List<ImoprtJson>> sublist = ImportDoc.importJson(subjsonPath);
|
|
|
- if (sublist != null && sublist.size() > 0) {
|
|
|
- Map<String, Object> submap = jsonListToObj(sublist.get(0));
|
|
|
- result.put("submap", submap);
|
|
|
- }
|
|
|
- }
|
|
|
- return AppUtil.returnObject(new PageData(), result);
|
|
|
- }
|
|
|
-
|
|
|
- public Map<String, Object> jsonListToObj(List<ImoprtJson> list){
|
|
|
- Map<String, Object> result = new HashMap<String, Object>();
|
|
|
- for (ImoprtJson imoprtJson : list) {
|
|
|
- Map<String, Object> map = new HashMap<String, Object>();
|
|
|
- map.put("type", imoprtJson.getType());
|
|
|
- map.put("length", imoprtJson.getLength());
|
|
|
- map.put("scale", imoprtJson.getScale());
|
|
|
- map.put("notnull", imoprtJson.getNotnull());
|
|
|
- result.put(imoprtJson.getColumn(), map);
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- public List<String> getKeywordsJson(HttpServletRequest request,String tabletype,String category){
|
|
|
- String path = request.getSession().getServletContext().getRealPath("/static/ace/json/keywords.json");
|
|
|
- List<String> keywords = new ArrayList<String>();
|
|
|
- if (category!=null) {
|
|
|
- if (!category.equals("")) {
|
|
|
- try {
|
|
|
- String keywordsJson = FileUtils.readFileToString(new File(path), "UTF-8");
|
|
|
- JSONObject typeMap = JSONObject.fromObject(keywordsJson);
|
|
|
- if (typeMap != null) {
|
|
|
- JSONObject categoryMap = typeMap.getJSONObject(tabletype);
|
|
|
- if (categoryMap != null) {
|
|
|
- JSONArray keywordsArray = categoryMap.getJSONArray(category);
|
|
|
- if (keywordsArray != null) {
|
|
|
- keywords = JSONArray.toList(keywordsArray);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- keywords = null;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return keywords;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @RequestMapping(value="/delelLastRow")
|
|
|
- @ResponseBody
|
|
|
- public Object delelLastRow(String data) throws Exception{
|
|
|
- String result="success";
|
|
|
- PageData pd = new PageData();
|
|
|
- pd = this.getPageData();
|
|
|
- pd.remove("data");
|
|
|
- JSONObject jsonobject = JSONObject.fromObject(data);
|
|
|
- pd.put("ID", jsonobject.get("ID").toString());
|
|
|
- try {
|
|
|
- annualDailyCompService.deleteTableRecod(pd);
|
|
|
- } catch (Exception e) {
|
|
|
- result = "error";
|
|
|
- }
|
|
|
- Map<String,Object> map = new HashMap<String,Object>();
|
|
|
- map.put("msg", result);
|
|
|
- return AppUtil.returnObject(new PageData(), map);
|
|
|
- }
|
|
|
-
|
|
|
-}
|