提交 | 用户 | age
|
a6a76f
|
1 |
package com.yc.ionic.build; |
F |
2 |
|
|
3 |
import com.google.gson.Gson; |
|
4 |
import com.google.gson.GsonBuilder; |
|
5 |
import com.yc.action.grid.GridUtils; |
|
6 |
import com.yc.ionic.control.*; |
|
7 |
import com.yc.service.grid.GridServiceIfc; |
|
8 |
import com.yc.service.panel.GetDataTypeIfc; |
|
9 |
import com.yc.service.panel.GformFilterIfc; |
|
10 |
import com.yc.service.panel.SystemSettingsDao; |
|
11 |
import com.yc.service.panel.TypeControlDao; |
|
12 |
import com.yc.utils.Body; |
|
13 |
import com.yc.utils.Cfg; |
|
14 |
import com.yc.utils.Fields; |
|
15 |
import com.yc.utils.PageInfo; |
|
16 |
import org.apache.commons.io.FileUtils; |
|
17 |
import org.springframework.beans.factory.annotation.Autowired; |
|
18 |
import org.springframework.jdbc.support.rowset.SqlRowSet; |
|
19 |
import org.springframework.stereotype.Service; |
|
20 |
|
|
21 |
import java.io.File; |
|
22 |
import java.io.IOException; |
|
23 |
import java.sql.SQLException; |
|
24 |
import java.util.ArrayList; |
|
25 |
import java.util.HashMap; |
|
26 |
import java.util.List; |
|
27 |
import java.util.Map; |
|
28 |
|
|
29 |
/** |
|
30 |
* |
|
31 |
* 根据9802设置生成各个控件 |
|
32 |
* */ |
|
33 |
@Service |
|
34 |
public class BuildListPage implements BuildListPageIfc{ |
|
35 |
@Autowired |
|
36 |
SystemSettingsDao systemSettingsBo; |
|
37 |
@Autowired |
|
38 |
TypeControlDao typeControlDao; |
|
39 |
@Autowired |
|
40 |
private GformFilterIfc filterIfc; |
|
41 |
@Autowired |
|
42 |
GetDataTypeIfc getDataTypeIfc; |
|
43 |
@Autowired |
|
44 |
private GridServiceIfc gridService;//表格处理的业务类 |
|
45 |
|
|
46 |
private int winType=0; |
|
47 |
private PostVo vo=new PostVo(); |
|
48 |
@Override |
|
49 |
public PostVo getVo() { |
|
50 |
return vo; |
|
51 |
} |
|
52 |
public void setVo(PostVo vo) { |
|
53 |
this.vo = vo; |
|
54 |
} |
|
55 |
private List<Map<String,String>> fillFT(int type, String ft,String sql) { |
|
56 |
|
|
57 |
SqlRowSet rst=gridService.getFTData("".equalsIgnoreCase(ft)?0:Integer.valueOf(ft)); |
|
58 |
|
|
59 |
boolean flag=false; |
|
60 |
List<Map<String,String>> list=new ArrayList<Map<String,String>>(); |
|
61 |
Map<String,String> map1=new HashMap<String,String>(); |
|
62 |
map1.put("fieldid", ""); |
|
63 |
map1.put("fieldname", ""); |
|
64 |
list.add(map1); |
|
65 |
if(type==31||type==2||type==35||type==43||type==30||type==32){//2,类型,31类型下拉列表控件时,为三种情况,一个是静态sql,一个是动态sql,需要用页面的值替换再用ajax提交返回,另一个就是表号生成 |
|
66 |
|
|
67 |
try{ |
|
68 |
if(sql!=null&&sql!=""&&sql.length()>0){//有sql参数 |
|
69 |
// if(type==2){ |
|
70 |
SqlRowSet set= gridService.getJdbcTemplate().queryForRowSet(sql); |
|
71 |
if (!set.wasNull()) { |
|
72 |
while (set.next()) { |
|
73 |
Map<String,String> map=new HashMap<String,String>(); |
|
74 |
map.put("fieldid", set.getString(1)); |
|
75 |
map.put("fieldname", set.getString(2)); |
|
76 |
list.add(map); |
|
77 |
} |
|
78 |
set=null; |
|
79 |
} |
|
80 |
// } |
|
81 |
|
|
82 |
flag=true; |
|
83 |
} |
|
84 |
if(!flag){ |
|
85 |
if(!rst.wasNull()){ |
|
86 |
while(rst.next()){ |
|
87 |
Map<String,String> map=new HashMap<String,String>(); |
|
88 |
map.put("fieldid", rst.getString("interValue")); |
|
89 |
map.put("fieldname", rst.getString("dictvalue")); |
|
90 |
list.add(map); |
|
91 |
} |
|
92 |
} |
|
93 |
} |
|
94 |
|
|
95 |
}catch(Exception e){ |
|
96 |
}finally{ |
|
97 |
rst=null; |
|
98 |
} |
|
99 |
} |
|
100 |
return list; |
|
101 |
} |
|
102 |
private String getFirstField(String table,PageInfo page,String firstID) { |
|
103 |
String field=""; |
|
104 |
//2,只取主表,主从表情况 及18,19类型,三表暂时不考虑 |
|
105 |
List<String> keys; |
|
106 |
try { |
|
107 |
keys = gridService.getPrimaryKey(table); |
|
108 |
for(String str:keys){ |
|
109 |
if("".equals(field)) |
|
110 |
field+=str; |
|
111 |
else |
|
112 |
field+=";"+str; |
|
113 |
} |
|
114 |
} catch (SQLException e) { |
|
115 |
// TODO Auto-generated catch block |
|
116 |
e.printStackTrace(); |
|
117 |
} |
|
118 |
if(field==null||"".equalsIgnoreCase(field)){ |
|
119 |
field=firstID; |
|
120 |
// throw new ApplicationException(table+"-错误:未定义主键!"); |
|
121 |
} |
|
122 |
page.setPrimeKey(field+";"); |
|
123 |
return field; |
|
124 |
} |
|
125 |
/** |
|
126 |
* 根据不同类型决定不同的排序规则 |
|
127 |
* //1,读取9801设置, |
|
128 |
//2,根据不同类型再进行不同的设置(单据清单desc,明细 以docitem asc,) |
|
129 |
//3,对于不是上面的二种情况不用排序 |
|
130 |
* */ |
|
131 |
private void setOrderBy(int order,String index1,String index2,String field,String orderFiled,PageInfo page){ |
|
132 |
String temp=""; |
|
133 |
if(order==1&&index1!=null&&!index1.isEmpty()){ //9801 主表 |
|
134 |
temp=setSqlOrderBy(index1," asc"); |
|
135 |
}else if(order==2&&index2!=null&&!index2.isEmpty()){//明细表 |
|
136 |
temp=setSqlOrderBy(index2," asc"); |
|
137 |
} |
|
138 |
else{ |
|
139 |
if(orderFiled.isEmpty()) |
|
140 |
temp=setSqlOrderBy(field,order==1?" desc":" asc"); |
|
141 |
else |
|
142 |
temp=orderFiled; |
|
143 |
|
|
144 |
} |
|
145 |
String[] s=temp.replaceAll(",", " ").split("\\s+");// |
|
146 |
String cols=""; |
|
147 |
String types=""; |
|
148 |
for(int j=0;j<s.length;j+=2){ |
|
149 |
if(j>0){ |
|
150 |
cols+=","; |
|
151 |
types+=","; |
|
152 |
} |
|
153 |
cols+=s[j].equalsIgnoreCase("_ycid_")?"id":s[j]; |
|
154 |
types+="asc".equalsIgnoreCase(s[j+1])?"0":"1"; |
|
155 |
} |
|
156 |
Cfg cfg=new Cfg(); |
|
157 |
|
|
158 |
cfg.setSortCols(cols); |
|
159 |
cfg.setSortTypes(types); |
|
160 |
Body body=new Body(); |
|
161 |
body.setPos(0); |
|
162 |
List<Body> bodys=new ArrayList<Body>(); |
|
163 |
bodys.add(body); |
|
164 |
page.setBody(bodys); |
|
165 |
page.setCfg(cfg); |
|
166 |
|
|
167 |
} |
|
168 |
private String setSqlOrderBy(String index22,String x) {//x为desc,asc |
|
169 |
String temp=""; |
|
170 |
if("".equalsIgnoreCase(index22)||index22==null||"null".equalsIgnoreCase(index22)) return ""; |
|
171 |
index22=index22.replaceAll(";", ","); |
|
172 |
String[] sorts=index22.split(","); |
|
173 |
int index=0; |
|
174 |
for(String s:sorts){ |
|
175 |
String[] str=s.split("\\s"); |
|
176 |
if(str.length==2){ |
|
177 |
if(index>0) |
|
178 |
temp+=","+str[0]+" "+str[1]; |
|
179 |
else |
|
180 |
temp+=str[0]+" "+str[1]; |
|
181 |
}else{ |
|
182 |
if(index>0) |
|
183 |
temp+=","+str[0]+" "+x; |
|
184 |
else |
|
185 |
temp+=str[0]+" "+x; |
|
186 |
} |
|
187 |
index++; |
|
188 |
} |
|
189 |
return temp; |
|
190 |
} |
|
191 |
@Override |
|
192 |
/** |
|
193 |
* 是否为单据类型, |
|
194 |
* **/ |
|
195 |
public boolean isDanJun(){ |
|
196 |
if(this.winType==15||this.winType==9||this.winType==17||this.winType==499||this.winType==497) |
|
197 |
return true; |
|
198 |
else |
|
199 |
return false; |
|
200 |
} |
|
201 |
|
|
202 |
/* (non-Javadoc) |
|
203 |
* @see com.yc.ionic.build.BuildListPageIfc1#createPageInfo(java.lang.String, int) |
|
204 |
*/ |
|
205 |
@Override |
|
206 |
public PageInfo createPageInfo(String formid,int headflag,int type){//生成TGData相关的配置信息 |
|
207 |
this.winType=type; |
|
208 |
PageInfo page=new PageInfo(); |
|
209 |
Map<String, Object> gform=gridService.getSimpleJdbcTemplate().queryForMap("select * from gform where formid = ?",formid); |
|
210 |
List<Map<String,Object>> gfield=null; |
|
211 |
prossGform(gform);//生成提交URL所需要的参数 |
|
212 |
String tablename=""; |
|
213 |
String orderFiled=""; |
|
214 |
StringBuffer strFiled=new StringBuffer(); |
|
215 |
if(headflag==0||headflag==2){ |
|
216 |
tablename=gform.get("hdtable")+""; |
|
217 |
gfield=gridService.getSimpleJdbcTemplate().queryForList("select "+gridService.getGET_GFIELD9().toLowerCase()+" from gfield where formid=? and HeadFlag=? and DataLink=1 and isload=1 order by statisid asc",formid, 0); |
|
218 |
} |
|
219 |
else if(headflag==1||headflag==3){ |
|
220 |
tablename=gform.get("dttable")+""; |
|
221 |
gfield=gridService.getSimpleJdbcTemplate().queryForList("select "+gridService.getGET_GFIELD9().toLowerCase()+" from gfield where formid=? and HeadFlag=? and DataLink=1 and isload=1 order by statisid asc",formid, 1); |
|
222 |
|
|
223 |
} |
|
224 |
int ind=0; |
|
225 |
//处理生成查询字段 |
|
226 |
String firstID="";//第一个字段名称 |
|
227 |
for(Map<String,Object> map:gfield){ |
|
228 |
String id=(map.get("fieldid")+""); |
|
229 |
if(ind>0) strFiled.append(","); |
|
230 |
strFiled.append(id); |
|
231 |
if(firstID=="") firstID=id; |
|
232 |
if(headflag==0&&orderFiled==""){//排序字段 |
|
233 |
if(id.equalsIgnoreCase("doccode")){ |
|
234 |
orderFiled=id+" desc"; |
|
235 |
} |
|
236 |
if(id.equalsIgnoreCase("docdate")) { |
|
237 |
orderFiled=orderFiled.length()==0?id+" desc":","+id+" desc"; |
|
238 |
} |
|
239 |
} |
|
240 |
else if(headflag==1&&orderFiled==""){ |
|
241 |
if(id.equalsIgnoreCase("docitem")) |
|
242 |
orderFiled=id+" asc"; |
|
243 |
} |
|
244 |
ind++; |
|
245 |
} |
|
246 |
Fields fieds=new Fields(); |
|
247 |
fieds.setFieldsName(strFiled.toString().toLowerCase()); |
|
248 |
page.setFields(fieds); |
|
249 |
if("".equalsIgnoreCase(orderFiled)) orderFiled=firstID+" desc"; |
|
250 |
setOrderBy(setOrderName(headflag), gform.get("index1")==null?null:gform.get("index1")+"", gform.get("index2")==null?null:gform.get("index2")+"", getFirstField(tablename,page,firstID), orderFiled, page); |
|
251 |
return page; |
|
252 |
} |
|
253 |
/** |
|
254 |
* 根据类型选用不同的字段作为排序 |
|
255 |
* @return 1表示清单,2表示明细 |
|
256 |
* **/ |
|
257 |
private int setOrderName(int connum){ |
|
258 |
|
|
259 |
switch (this.winType){ |
|
260 |
case 9: |
|
261 |
case 15: |
|
262 |
case 17: |
|
263 |
case 499: |
|
264 |
case 497: |
|
265 |
if(connum==0){ |
|
266 |
//isList=t |
|
267 |
return 1; |
|
268 |
} |
|
269 |
else |
|
270 |
return 2; |
|
271 |
case 1: |
|
272 |
//if(dto.b497||dto.b499) |
|
273 |
//return 2; |
|
274 |
//else |
|
275 |
return 1 ; |
|
276 |
default: |
|
277 |
return 1; |
|
278 |
} |
|
279 |
} |
|
280 |
private void prossGform(Map<String, Object> gform) { |
|
281 |
vo.dataformid=(gform.get("dataformid")==null||(gform.get("dataformid")+"").length()==0||(gform.get("dataformid")+"").equalsIgnoreCase("0"))?"":(gform.get("dataformid")+(!this.isDanJun()?"":"|"+gform.get("predocstatus")+"")); |
|
282 |
vo.tranformid=(gform.get("dataformid")==null||(gform.get("dataformid")+"").length()==0||(gform.get("dataformid")+"").equalsIgnoreCase("0"))?"":(gform.get("dataformid")+""); |
|
283 |
vo.formdatafilters=gform.get("formdatafilters")==null?"":GridUtils.replaceBlank(gform.get("formdatafilters")+""); |
|
284 |
vo.ProcGroupafterSavedoc=gform.get("ProcGroupafterSavedoc")==null?"":GridUtils.replaceBlank(gform.get("ProcGroupafterSavedoc")+""); |
|
285 |
vo.trangroup=gform.get("transgroupcode")==null?"":gform.get("transgroupcode")+""; |
|
286 |
vo.DealAfterDocSave=gform.get("DealAfterDocSave")==null?"":GridUtils.replaceBlank(gform.get("DealAfterDocSave")+""); |
|
287 |
vo.revokeProc=gform.get("RevokeBtnProcName")==null?"":GridUtils.replaceBlank(gform.get("RevokeBtnProcName")+""); |
|
288 |
vo.autopaging=(gform.get("autopaging")==null||"0".equalsIgnoreCase(gform.get("autopaging")+""))?"3":"1"; |
|
289 |
vo.cancelProc=gform.get("CancelBtnProcName")==null?"":GridUtils.replaceBlank(gform.get("CancelBtnProcName")+""); |
|
290 |
vo.cancelisSave=gform.get("CancelIsSave")+""; |
|
291 |
} |
|
292 |
/* 生成控件代码 |
|
293 |
*/ |
|
294 |
@Override |
|
295 |
public Info create(int formId,int otype,String root,String dbid,String path,List<Map<String, Object> > gfList, int headflag,List<String> pop_list,boolean isearch){ |
|
296 |
|
|
297 |
StringBuffer html = new StringBuffer(); |
|
298 |
StringBuffer js = new StringBuffer(); |
|
299 |
StringBuffer pop_js = new StringBuffer(); |
|
300 |
String pic=""; |
|
301 |
int index=0; |
|
302 |
try{ |
|
303 |
for(Map<String, Object> map:gfList){ |
|
304 |
String dec=map.get("gridcaption")==null?"":map.get("gridcaption")+"";//表格描述 |
|
305 |
String fieldname=map.get("fieldname")==null?"":map.get("fieldname")+"";//字段描述 |
|
306 |
String temp=(dec==null||"".equalsIgnoreCase(dec))?fieldname:dec;//如果没定义表描述就取字段名称作为表格显示字段 |
|
307 |
map.put("fieldname",temp); |
|
308 |
if(index==0) html.append("<div class=\"list\">\n");//增加行的html |
|
309 |
int type=0; |
|
310 |
if(headflag==0) { |
|
311 |
if("1".equalsIgnoreCase(map.get("ControlType")+"") |
|
312 |
&&GridUtils.prossRowSetDataType_Int(map, "HeightNum")>1) {//1类型控件 但设置大于1的行高,表示需要换成7类型 |
|
313 |
|
|
314 |
type=7; |
|
315 |
}else |
|
316 |
type=Integer.valueOf(map.get("controltype")+""); |
|
317 |
|
|
318 |
if(GridUtils.prossRowSetDataType_Int(map, "ControlType")==1 |
|
319 |
&&!GridUtils.prossRowSetDataType_String(map, "hyperlinkft").equalsIgnoreCase("")) {//有超链接情况 |
|
320 |
type=-1; |
|
321 |
} |
|
322 |
} |
|
323 |
else |
|
324 |
type=Integer.valueOf(map.get("gridcontroltype")+""); |
|
325 |
// map.put("_headflag", headflag);//把当前是读主表还是从表的信标记加进去 |
|
326 |
//处理增加扫码功能 |
|
327 |
if(GridUtils.prossRowSetDataType_Int(map, "scancodefield")==1) {type=-3;} |
|
328 |
//如果勾选了排除则不生成控件 |
|
329 |
if(GridUtils.prossRowSetDataType_Int(map, "isAPPExcludeField")==1) {continue;} |
|
330 |
switch(type){ |
|
331 |
case 5: |
|
332 |
map.put("mobType", 1); |
|
333 |
Type_5 t5=new Type_5(map, path,5); |
|
334 |
t5.create(); |
|
335 |
html.append(t5.getInfo().getHtml()); |
|
336 |
js.append(t5.getInfo().getJs()); |
|
337 |
break; |
|
338 |
case 33: |
|
339 |
Type_33 t33=new Type_33(map, null, null,path, 33);//TODO 未完善 |
|
340 |
t33.create(); |
|
341 |
html.append(t33.getInfo().getHtml()); |
|
342 |
js.append(t33.getInfo().getJs()); |
|
343 |
break; |
|
344 |
case 42: |
|
345 |
//map.put("_headflag", headflag);//把当前是读主表还是从表的信标记加进去 |
|
346 |
Type_42 t42=new Type_42(map, path,42); |
|
347 |
t42.create(); |
|
348 |
html.append(t42.getInfo().getHtml()); |
|
349 |
js.append(t42.getInfo().getJs()); |
|
350 |
break; |
|
351 |
case 3: |
|
352 |
//map.put("_headflag", headflag);//把当前是读主表还是从表的信标记加进去 |
|
353 |
Type_3 t3=new Type_3(map, path,3); |
|
354 |
t3.create(); |
|
355 |
html.append(t3.getInfo().getHtml()); |
|
356 |
String temp1=t3.getInfo().getJs(); |
|
357 |
temp1=temp1.replaceAll("@_popformid_@", map.get("ft")+"").replaceAll("@_poptype_@", map.get("ftformtype")+""); |
|
358 |
t3.getInfo().setJs(temp1); |
|
359 |
js.append(t3.getInfo().getJs()); |
|
360 |
// if( !pop_list.contains(map.get("ft")+"")){//不存在才生成 |
|
361 |
// pop_js.append( copyPoP(dbid,map.get("ft")+"",map.get("ftformtype")+"",root)); |
|
362 |
// pop_list.add(map.get("ft")+""); |
|
363 |
// } |
|
364 |
break; |
|
365 |
case -3: |
|
366 |
Type_3 t31=new Type_3(map, path,-3); |
|
367 |
t31.create(); |
|
368 |
html.append(t31.getInfo().getHtml()); |
|
369 |
String temp11=t31.getInfo().getJs(); |
|
370 |
temp11=temp11.replaceAll("@_popformid_@", map.get("ft")+"").replaceAll("@_poptype_@", map.get("ftformtype")+""); |
|
371 |
t31.getInfo().setJs(temp11); |
|
372 |
js.append(t31.getInfo().getJs()); |
|
373 |
break; |
|
374 |
case 1: |
|
375 |
Type_1 t1=new Type_1(map, path,1); |
|
376 |
t1.create(); |
|
377 |
html.append(t1.getInfo().getHtml()); |
|
378 |
js.append(t1.getInfo().getJs()); |
|
379 |
break; |
|
380 |
case -1://转换成超链接输出 |
|
381 |
Type_1_ t_1=new Type_1_(map, path,-1); |
|
382 |
t_1.create(); |
|
383 |
html.append(t_1.getInfo().getHtml()); |
|
384 |
js.append(t_1.getInfo().getJs()); |
|
385 |
break; |
|
386 |
case 7: |
|
387 |
Type_7 t7=new Type_7(map, path,7); |
|
388 |
t7.create(); |
|
389 |
html.append(t7.getInfo().getHtml()); |
|
390 |
js.append(t7.getInfo().getJs()); |
|
391 |
break; |
|
392 |
case 2: |
|
393 |
case 31: |
|
394 |
case 35: |
|
395 |
Type_2 t2=new Type_2(map, path, 2); |
|
396 |
t2.create(); |
|
397 |
String js2= t2.getInfo().getJs(); |
|
398 |
String h2=t2.getInfo().getHtml(); |
|
399 |
processType2(html, js, map, type, t2, js2, h2); |
|
400 |
break; |
|
401 |
case 43: |
|
402 |
if(!isearch) { |
|
403 |
Type_43 t43 = new Type_43(map, path, 43); |
|
404 |
t43.create(); |
|
405 |
String js43 = t43.getInfo().getJs(); |
|
406 |
String h43 = t43.getInfo().getHtml(); |
|
407 |
//动态sql |
|
408 |
String sql43 = map.get("SqlScript") == null ? "" : map.get("SqlScript") + ""; |
|
409 |
String ft43 = map.get("ft") == null ? "" : map.get("ft") + ""; |
|
410 |
//存在这种情况,是需要执行动态sql |
|
411 |
if ((sql43.indexOf("&") > -1 || sql43.indexOf("@") > -1) || "".equals(ft43)) { |
|
412 |
js43 = js43.replaceAll("@_list_@", "[]").replaceAll("@_ft_@", ft43); |
|
413 |
//因为参数需要替换,不能用这个指令, |
|
414 |
h43 = h43.replaceAll("@_dysql_@", sql43).replaceAll("@_ft_@", ft43) |
|
415 |
.replaceAll("@_yc-dysql-select_@", ""); |
|
416 |
js43 += " $scope.dysql.push('" + GridUtils.prossRowSetDataType_String(map,"fieldid").toLowerCase() + "_select" + "');"; |
|
417 |
} else {//事先取数据到页面 |
|
418 |
js43 = js43.replaceAll("@_list_@", GridUtils.toJson(this.fillFT(type, ft43, sql43))); |
|
419 |
h43 = h43.replaceAll("@_dysql_@", "").replaceAll("@_ft_@", "") |
|
420 |
.replaceAll("@_yc-dysql-select_@", "yc-dysql-select"); |
|
421 |
js43 += " $scope.dysql.push('" + GridUtils.prossRowSetDataType_String(map,"fieldid").toLowerCase() + "_select" + "');"; |
|
422 |
} |
|
423 |
String newId = GridUtils.prossRowSetDataType_String(map, "fieldid").toLowerCase() + "_select"; |
|
424 |
js43 = js43.replaceAll("@_fieldidselect_@", newId); |
|
425 |
|
|
426 |
h43 = h43.replaceAll("@_fieldidselect_@", newId); |
|
427 |
t43.getInfo().setJs(js43); |
|
428 |
t43.getInfo().setHtml(h43); |
|
429 |
html.append(t43.getInfo().getHtml()); |
|
430 |
js.append(t43.getInfo().getJs()); |
|
431 |
} |
|
432 |
break; |
|
433 |
case 6: |
|
434 |
Type_6 t6=new Type_6(map, path,6); |
|
435 |
t6.create(); |
|
436 |
html.append(t6.getInfo().getHtml()); |
|
437 |
js.append(t6.getInfo().getJs()); |
|
438 |
break; |
|
439 |
case 9://单个附件 |
|
440 |
Type_9 t9=new Type_9(map, path,9); |
|
441 |
t9.create(); |
|
442 |
html.append(t9.getInfo().getHtml()); |
|
443 |
js.append(t9.getInfo().getJs()); |
|
444 |
pic+=(map.get("fieldid")+"").toLowerCase()+";"; |
|
445 |
break; |
|
446 |
case 19://多附件 图片字段 |
|
447 |
Type_19 t19=new Type_19(map, path,19); |
|
448 |
t19.create(); |
|
449 |
html.append(t19.getInfo().getHtml()); |
|
450 |
js.append(t19.getInfo().getJs()); |
|
451 |
pic+=(map.get("fieldid")+"").toLowerCase()+";"; |
|
452 |
break; |
|
453 |
case 38: |
|
454 |
break; |
|
455 |
default: |
|
456 |
Type_1 t11=new Type_1(map, path,1); |
|
457 |
t11.create(); |
|
458 |
html.append(t11.getInfo().getHtml()); |
|
459 |
js.append(t11.getInfo().getJs()); |
|
460 |
break; |
|
461 |
} |
|
462 |
index++; |
|
463 |
} |
|
464 |
}catch(Exception e){ |
|
465 |
e.printStackTrace(); |
|
466 |
} |
|
467 |
if(index>0) html.append("\n</div>\n"); |
|
468 |
Info info=new Info(); |
|
469 |
info.setHtml(html.toString()); |
|
470 |
info.setJs(js.toString()); |
|
471 |
info.setPop_js(pop_js.toString()); |
|
472 |
info.setPicField(pic); |
|
473 |
return info; |
|
474 |
} |
|
475 |
|
|
476 |
public void processType2(StringBuffer html, StringBuffer js, Map<String, Object> map, int type, Type_2 t2, String js2, String h2) { |
|
477 |
Gson gs=new GsonBuilder().disableHtmlEscaping().create(); |
|
478 |
String sql=map.get("SqlScript")==null?"":map.get("SqlScript")+"";//动态sql |
|
479 |
String ft=map.get("ft")==null?"":map.get("ft")+""; |
|
480 |
if((sql.indexOf("&")>-1||sql.indexOf("@")>-1)||(type==31||type==35)){//存在这种情况,是需要执行动态sql |
|
481 |
js2=js2.replaceAll("@_list_@","[]").replaceAll("@_ft_@",ft).replaceAll("@_dysql_@", sql).replaceAll("@_ft_@",ft) |
|
482 |
.replaceAll("@_yc-dysql-select_@",""); |
|
483 |
h2=h2.replaceAll("@_dysql_@", sql).replaceAll("@_ft_@",ft) |
|
484 |
.replaceAll("@_yc-dysql-select_@","");//因为参数需要替换,不能用这个指令, |
|
485 |
}else{//事先取数据到页面 |
|
486 |
js2=js2.replaceAll("@_list_@", gs.toJson(this.fillFT(type, ft, sql))).replaceAll("@_dysql_@", sql).replaceAll("@_ft_@",ft) |
|
487 |
.replaceAll("@_yc-dysql-select_@",""); |
|
488 |
h2=h2.replaceAll( "@_dysql_@", "").replaceAll("@_ft_@","") |
|
489 |
.replaceAll("@_yc-dysql-select_@","yc-dysql-select"); |
|
490 |
} |
|
491 |
// if(GridUtils.prossRowSetDataType_Int(map,"calcufield")>0){ |
|
492 |
// js2.replaceAll("@_calcu_@", "calcufield('" + (map.get("fieldid") + "").toLowerCase() + "');"); |
|
493 |
// }else{ |
|
494 |
// js2.replaceAll("@_calcu_@", ""); |
|
495 |
// } |
|
496 |
js2+=" $scope.dysql.push('"+(map.get("fieldid")+"_select").toLowerCase()+"');"; |
|
497 |
t2.getInfo().setJs(js2); |
|
498 |
t2.getInfo().setHtml(h2); |
|
499 |
html.append( t2.getInfo().getHtml()); |
|
500 |
js.append(t2.getInfo().getJs()); |
|
501 |
} |
|
502 |
|
|
503 |
/** |
|
504 |
* copy 对应的3点弹出js代码到当前功能号的app.js里面 |
|
505 |
* */ |
|
506 |
private String copyPoP(String dbid, String pformid, String ptype,String root) { |
|
507 |
String s=""; |
|
508 |
try { |
|
509 |
s = FileUtils.readFileToString(new File(root+ File.separator + "app" + File.separator +"ionic"+ File.separator+dbid+File.separator+pformid+"/"+ptype+"/pop_app.js")); |
|
510 |
} catch (IOException e) { |
|
511 |
// TODO Auto-generated catch block |
|
512 |
e.printStackTrace(); |
|
513 |
} |
|
514 |
return s; |
|
515 |
} |
|
516 |
@Override |
|
517 |
public String checkOA(String formid) { |
|
518 |
String sql="declare @s varchar(max) select @s='' select @s=@s+fieldid+';' from gfieldApprovedButton where formid=? select @s"; |
|
519 |
return gridService.getSimpleJdbcTemplate().queryForObject(sql, new Object[]{formid},String.class); |
|
520 |
} |
|
521 |
|
|
522 |
} |