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