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

做了一个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;
    }

先记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值