手机接口接收json格式数据_第一个项目oa费用

//提交报销信息
@RequestMapping(value = {"/saveexpense","/process/saveexpense"},method = RequestMethod.POST)
@ResponseBody
public ResultMap saveexpense(@RequestParam(value = "ifdraft",required = false)Boolean ifdraft,@RequestParam(value = "formSign",required = false)String formSign,
                             @RequestParam(value = "officeid",required = false)String officeid,@RequestParam(value = "officeType",required = false)String officeType,
                             ExpenseTitle title, @RequestParam(value = "newfile",required = false) String newfile, @RequestParam(value = "json",required = false) String json,
                             @RequestParam(value = "json1",required = false) String json1,HttpSession session,HttpServletRequest request){
    ResultMap resultMap=null;
    JSONObject data=null;
    String toppid="";
    try {
        if(title.getTitle()==null&&officeid==null&&formSign==null&&newfile==null){
            //解析请求
            String string = expenseApplyService.analyzeRequestParameter(request);
            if(StringUtils.isNotBlank(string)) {

                data = JSONObject.parseObject(string, JSONObject.class);
                formSign=data.getString("formSign");
                officeid=data.getString("officeid");
                officeType=data.getString("officeType");
                String titlejson=data.getString("title");
                title=JSON.parseObject(titlejson,new ExpenseTitle().getClass());
                newfile=data.getString("newfile");
                json=data.getString("json");
                json1=data.getString("json1");
            }
        }
        title.setStatus(0);
        title.setApplytime(new Date());

        expenseApplyService.saveTitle(title);
        Integer eid=title.getEid();
        if(!StringUtils.isBlank(newfile)){

            List<? extends ExpenseFile> expenseFiles= JSON.parseArray(newfile,new ExpenseFile().getClass());
            for (ExpenseFile file:expenseFiles
                    ) {
                file.setEid(eid);
                expenseApplyService.savefile(file);
            }
        }
        if(!StringUtils.isEmpty(json)){

            List<? extends ExpenseRel> expenseRelList= JSON.parseArray(json,new ExpenseRel().getClass());
            for (ExpenseRel rel: expenseRelList
                    ) {
                rel.setEid(eid);
                expenseApplyService.saveRel(rel);
            }
        }
        //List<Integer> loanIdArray=new ArrayList<>();
        if(!StringUtils.isEmpty(json1)) {
            List<? extends ExpenseDetail> expenseDetailList = JSON.parseArray(json1, new ExpenseDetail().getClass());

            for (ExpenseDetail detail : expenseDetailList
                    ) {
                /*if(title.getPaytype()==4){
                    loanIdArray.add(detail.getLoanid());
                }*/
                if(!toppid.equals("")&&!toppid.contains(detail.getToppid()+"")){
                    return new ResultMap(-1,"只能选择一个科目大项",null);
                }
                detail.setEid(eid);
                expenseApplyService.saveDetail(detail);
                if(toppid.equals(""))
                toppid+=""+detail.getToppid();
            }
        }
        /*if(title.getPaytype()==4){
            expenseApplyService.updateLoanState(loanIdArray);
        }*/
        String draftid=request.getParameter("draftid");
        if(draftid!=null){
            expenseApplyService.deletedraftid(Integer.valueOf(draftid));
        }
    } catch (Exception e) {
        e.printStackTrace();
        return new ResultMap(-1,"表单保存失败",null);
    }
}

/**
     * 获取post请求中的参数
     * @param request
     * @return
     * @
     */
    @Override
    public  String analyzeRequestParameter(HttpServletRequest request)  throws IOException{

        String string ="";
        //若data有值即为键值对String data=request.getParameter("data");
        String data=null;

        if(StringUtils.isNotBlank(data)){

            string=data;

        }else{
            InputStream inputStream = request.getInputStream();

            ByteArrayOutputStream reqDataByteArrayOutputStream = new ByteArrayOutputStream();
            // 1、请求数据的获取
            int length = request.getContentLength();
            System.out.println("length:"+length);
            if (length == 0) {
                throw new RuntimeException();
            }

            byte[] b = new byte[1024];
            int tempLength = -1;
            while ((tempLength = inputStream.read(b)) != -1) {
                reqDataByteArrayOutputStream.write(b, 0, tempLength);
            }
            if (reqDataByteArrayOutputStream.size() != request.getContentLength()) {// 读取失败
//          throw new RuntimeException();
            }
            string = reqDataByteArrayOutputStream.toString();
        }

//    System.err.println("string:\n"+string);

        return string;

    }
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭