xinyb
2022-05-13 5b18c27a3a4fda518dc43ba88c6f79df7d38527e
提交 | 用户 | age
a6a76f 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
F 2 <%@page import="com.google.gson.JsonArray"%>
3 <%@page import="com.google.gson.JsonObject"%>
4 <%@page import="java.util.HashMap"%>
5 <%@page import="java.util.ArrayList"%>
6 <%@page import="java.util.List"%>
7 <%@page import="com.yc.factory.FactoryBean"%>
8 <%@page import="org.springframework.jdbc.support.rowset.SqlRowSet"%>
9 <%@page import="java.util.Map"%>
10 <%@page import="com.google.gson.Gson"%>
11 <%@page import="com.yc.service.top.Utils"%>
12 <%@page import="java.util.regex.*"%>
13 <%
14    Map<String,String> controls =new HashMap<String,String>();
15    @MapPut@
16    response.setCharacterEncoding("utf-8");
17    String field=request.getParameter("field");  //字段名
7cd6c6 18     String fieldName=request.getParameter("fieldname");//字段描述
a6a76f 19    String callback=request.getParameter("callback");
F 20    String params=request.getParameter("params");
21    int state=Integer.parseInt(request.getParameter("state"));//当前控件状态
22    Map<String,Object> sqlParams=null;
23    int fieldtype=0;
24    try{
25         fieldtype=Integer.parseInt(request.getParameter("fieldtype"));//获得字段类型   
26         if(null==field||"".equals(field.trim())){
27              out.write("{\"status\":1,\"info\":\"控件代码必须传递!\"}");
28              return;
29         }
30         if(!controls.containsKey(field)){
31              out.write("{\"status\":1,\"info\":\"\"}");//控件代码错误,请于系统管理员联系!
32              return;
33         }
34         if(params!=null){ 
35              try{
36                   Gson gson=new Gson();
37                   sqlParams=gson.fromJson(params,new com.google.gson.reflect.TypeToken<Map<String,String>>() {}.getType());
38              }catch(Exception e){
39                   out.write("{\"status\":1,\"info\":\"参数集合格式错误!错误提示  "+params+e.getMessage()+"\"}");
40                   return;
41              }
42              if(sqlParams==null){ 
43                   out.write("{\"status\":1,\"info\":\"参数为空!\"}");
44                   return;
45              }             
46              SqlRowSet rs=null;
47              try{
48                   //有需要组装的sql
49                   String dysql=com.yc.service.impl.DBHelper.getSqlWhere(controls.get(field), state, controls.get(field+"Where"));                 
50                   //替换字符串中的值 
51                   String sql=com.yc.service.impl.DBHelper.getValRepShi(dysql, session, sqlParams, false);
52                   JsonArray array=new JsonArray();
53                   JsonObject json=null;
54                   Utils utils=(Utils)FactoryBean.getBean("hq.daoUtils");
55                   rs=utils.getRowSet(sql);                
56                   while(rs.next()){
57                       switch(fieldtype){
58                         case 30://单选按钮
59                            array.add("");
60                            break;
61                         case 43:
62                         case 35:
63                         case 31://下拉框
64                         case 2:     
65                             json=new JsonObject();
66                             json.addProperty("id", rs.getString(1));
67                             json.addProperty("text", rs.getString(2));
68                             array.add(json);
69                            break;
70                         case 32://多选框
71                             break;
72                         default:            
73                            break;
74                     }
75                   }
76                   if((fieldtype==31||fieldtype==2)&&!callback.equals("")&&!callback.equals("0")){
77                         json=new JsonObject();
78                         json.addProperty("id", "pb_xinzen");
79                         json.addProperty("text", "<<新增>>");
80                         array.add(json);
81                   }
82                   out.write("{\"status\":0,\"info\":"+array.toString()+"}");
83             }catch(Exception e){
7cd6c6 84                  out.write("{\"status\":1,\"info\":\"系统功能-9802的字段:【"+field+"-"+fieldName+"】,设置(31类型控件sql)有错误,错误提示信息:"+(e.getCause()!=null?e.getCause().getMessage():e.getMessage())+"\"}");
a6a76f 85                  return;
F 86             }         
87       }else{
88             out.write("{\"status\":-1,\"info\":\"\"}");
89       }
90    }catch(NumberFormatException e){//字段类型错误
91        out.write("{\"status\":1,\"info\":\"控件类型参数错误!\"}");      
92        return;
93    }finally{
94       out.flush();      
95    }
96 %>