|
|
@@ -0,0 +1,2593 @@
|
|
|
+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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|