JSONDeserializer 返回参数所有key值都带序号

    技术2022-07-15  82

    做了一个excel到入数据的功能,

    导入后最后利用JSONDeserializer封装成json返回

    但是放到正式后,过一段时间返回的参数的key都会带了一串序号

    导致前端无法识别,关键本地测试都无法重现,

    对应配置方法

    private final JSONDeserializer<PlanBean> pbDeserializer = new JSONDeserializer<PlanBean>()             .use("tasks", ArrayList.class)             .use("tasks.values", MasterTaskBean.class)             .use("removedTasks", ArrayList.class)             .use("removedTasks.values", String.class)             .use("tasks.values.predecessorLink", ArrayList.class)             .use("tasks.values.predecessorLink.values", DependenceBean.class)             .use("tasks.values.submits", ArrayList.class)             .use("tasks.values.submits.values", SubmitBean.class)             .use("tasks.values.slaveTask", SlaveTaskBean.class)             .use("tasks.values.slaveTask.specAttr", ArrayList.class)             .use("tasks.values.slaveTask.specAttr.values", SpecAttrBean.class)             .use("tasks.values.children", ArrayList.class)             .use("tasks.values.children.values", MasterTaskBean.class)             .use("tasks.values.children.values.predecessorLink",ArrayList.class) .use("tasks.values.children.values.predecessorLink.values", DependenceBean.class)             .use("tasks.values.children.values.submits", ArrayList.class)             .use("tasks.values.children.values.submits.values",                     SubmitBean.class)             .use("tasks.values.children.values.slaveTask", SlaveTaskBean.class)             .use("tasks.values.children.values.slaveTask.specAttr",                     ArrayList.class)             .use("tasks.values.children.values.slaveTask.specAttr.values",                     SpecAttrBean.class)             .use("tasks.values.parentTaskUID", new PidFactory())             .use("tasks.values.children.values.parentTaskUID", new PidFactory())             .use(Date.class, new DateTransformer("yyyy-MM-dd'T'HH:mm:ss"));     private final JSONSerializer pbSerializer = new JSONSerializer().exclude(             "*.class").transform(new DateTransformer("yyyy-MM-dd'T'HH:mm:ss"),                     Date.class);     private final JSONSerializer dictSerializer = new JSONSerializer()             .exclude("*.class");

    返回方法  

    @RequestMapping(value = "appendTaskByFile")     @ResponseBody     public String appendTaskByFile(@RequestParam CommonsMultipartFile exlFile, PlanBean plan, Model model,HttpServletRequest request,HttpServletResponse response)throws Exception {         Workbook wb=null;         try {             String message ="";             UserBean user = UserUtils.getLSUser();             String sysTab = SystemUtils.getAppProp("prodectVersion");             if (exlFile.isEmpty()) {                 message = "不能上传空文件!";                 return "{message:\""+message+"\",success:false}";             } else {                 String lastTaskId=(String)request.getParameter("lastTaskId");                 String planId=(String)request.getParameter("planId");                 String fileType = exlFile.getFileItem().getName().toString();                 if(!InputXlsUtil.isXlsx(fileType)){                     message ="只能上传Excel文档文件!";                     return "{message:\""+message+"\",success:false}";                 }                              if(InputXlsUtil.isExcel2003(fileType)){                     wb = new HSSFWorkbook(exlFile.getInputStream());                 }else{                     wb = new XSSFWorkbook(exlFile.getInputStream());                  }                                  Sheet sheet = wb.getSheetAt(0);                 Row firstRow = sheet.getRow(1);                 // 分析表头                 if (firstRow == null) {                     message ="文件格式错误,未找到表头!";                     return "{message:\""+message+"\",success:false}";                 }                 //导入计划的内容                 //String nextPlanId = editTraceService.getNextPlanId();                 plan = new PlanBean();//packageBean(plan,nextPlanId,isFilter);                 boolean weekendWork = true;//表示周末不工作                 if("Y".equals(String.valueOf(plan.getWeekend()))){                     weekendWork = false;//表示周末工作                 }                 Date sDate=new Date();                 Date endDate=new Date();                 //从第三行分数据                 Iterator<Row> rit = sheet.rowIterator();                 //从第三行开始                 rit.next();                 rit.next();                 int rowNum = 2;                 Row row = null;                 MasterTaskBean taskBean;                 SlaveTaskBean slaveTaskBean;                 List<MasterTaskBean> taskBeanList = new ArrayList<MasterTaskBean>();                 String curUserNo =UserUtils.getLSUser().getNo();                 Map<String,String> guangxianMap = new HashMap<String,String>();                 List<Map> guangxianList = mgLineService.findMap(user);                 Map<String,ProjectBean> allProjectListMap = projectService.getaAllProjectMap();//项目                 for(Map m:guangxianList){                     guangxianMap.put((String)m.get("value"), (String)m.get("label"));                 }                 Map<String,String> typemap=editTraceService.getTaskTypeMap();                 //获取序号与Id对应关系                 Map<String, String> mapNoToId = new HashMap<String, String>();                 //存储父级任务对应的id                 Map<String,String> parentsMap = new HashMap<String,String>();                 String seed="";                 int i=0;                 if(lastTaskId!=null && !lastTaskId.equals("")){                     String[] arr=lastTaskId.split("T");                     seed=arr[0]+"T";                     String c=arr[1];                     i=Integer.parseInt(c);                 }else{                     seed= editTraceService.getNextTaskIdSeed();                 }                 for (; rit.hasNext(); rowNum++) {                     i++;                     taskBean = new MasterTaskBean();                     slaveTaskBean = new SlaveTaskBean();                     List<SubmitBean> submitList = new ArrayList<SubmitBean>();                     row = (Row) rit.next();                                          if (isRowEmpty(row)) {                         continue;                         }                     taskBean.setUID(seed+i);                     message = editTraceService.checkExpExpert(row,rowNum, taskBean,slaveTaskBean,submitList,user,mapNoToId, weekendWork,typemap,parentsMap,allProjectListMap);                     if(StringUtils.isNotBlank(message)){                         return "{message:\""+message+"\",success:false}";                     }                     if(taskBean.getAssigner().equals(taskBean.getPrincipal())){                         curUserNo = curUserNo+","+taskBean.getAssigner();                     }else{                         curUserNo =curUserNo+","+taskBean.getAssigner()+"," +taskBean.getPrincipal();                     }                     if(i==1){                         sDate=taskBean.getStart();                         endDate=taskBean.getFinish();                     }                     if(taskBean.getStart()!=null){                         sDate = InputXlsUtil.getMinDate(taskBean.getStart(),sDate);                     }                     if(taskBean.getFinish()!=null){                         endDate = InputXlsUtil.getMaxDate(taskBean.getFinish(),endDate);                     }                     slaveTaskBean.setPlanId(planId);                     slaveTaskBean.setUID(seed+i);                     taskBean.setPlanId(planId);                     taskBean.setSlaveTask(slaveTaskBean);                     taskBeanList.add(taskBean);                     if("tmshszj".equals(sysTab)){                         TaskProjectObject xmjg = new TaskProjectObject();                         List<TaskProjectObject> xmjglist = new ArrayList<TaskProjectObject>();                         String xiangmujiegou = taskBean.getXmjgcodes();                         if(xiangmujiegou==null){                             xiangmujiegou = "";                         }                         String xmjgNames = "";                         String[] xiangmujiegouArr = xiangmujiegou.split(",");                         for (int j = 0; j < xiangmujiegouArr.length; j++) {                             List<TreeObj> treeObjs = projectService.getProjectJgTree(user, taskBean.getProjectNo(), xiangmujiegouArr[j]);                             if(treeObjs.size() == 1){                                 TreeObj obj = treeObjs.get(0);                                 String xmjgName = obj.getName();                                 if(xmjgName != null && xmjgName.length() > 4){                                     xmjgName = xmjgName.substring(0, xmjgName.indexOf("--"));                                 }                                 String level = obj.getLevel();                                 xmjg.setId(IDutils.genGlobal18digitStr());                                 xmjg.setObjectCode(obj.getDuixiangbianhao());                                 xmjg.setObjectName(xmjgName);                                 xmjgNames += xmjgName + ",";                                 if(level != null && !"".equals(level))                                     xmjg.setObjectLevel(new Integer(obj.getLevel()));                                 xmjglist.add(xmjg);                             }                         }                         taskBean.setXmjg(xmjglist);                         if(StringUtils.isNotBlank(xmjgNames)){                             taskBean.setXmjgnames(xmjgNames.substring(0,xmjgNames.length() - 1));                         }                         taskBean.setSubmits(submitList);                     }                 }                                  String planTime = SysConfigUtils.getValues("planTime");                 if(StringUtils.isBlank(planTime)){//计划时间 为了兼容旧计划导入新任务                     planTime = "2018-01-01";                 }                 plan.setStartDate(DateUtils.parseDate(planTime));                 plan.setFinishDate(endDate);                 List<MasterTaskBean> beanList = null;                 List<String> entryList = new ArrayList<String>();                 if(message.equals("")){                     beanList = editTraceService.getPacgageDate(taskBeanList, curUserNo,mapNoToId,entryList, user);                 }                 if(entryList!=null && entryList.size()>0){                     message = entryList.get(0);                 }                 beanList = parentOnchildTaskList(beanList,1);                 plan.setTasks(beanList);                 if(message.length() > 0){                     return "{message:\""+message+"\",success:false}";                 }else{                     return "{success:true,result:"+pbSerializer.deepSerialize(plan)+"}";                 }             }         } catch (Exception e) {             e.printStackTrace();         } finally {             if(wb != null){                 wb.close();             }         }         return null;     }

    先记录

    Processed: 0.024, SQL: 9