提交 | 用户 | age
|
a6a76f
|
1 |
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" |
F |
2 |
pageEncoding="UTF-8"%> |
|
3 |
<%@page import="java.text.SimpleDateFormat"%> |
|
4 |
<%@page import="com.yc.service.impl.EnvHelper"%> |
|
5 |
<%@page import="com.yc.service.impl.DBHelper"%> |
|
6 |
<%@page import="com.yc.service.build.BuildFuncIfc"%> |
|
7 |
<%@page import="org.springframework.jdbc.support.rowset.SqlRowSet"%> |
|
8 |
<%@page import="com.yc.factory.FactoryBean"%> |
|
9 |
<%@page import="com.yc.service.panel.TypeControlDao"%> |
|
10 |
<%@page import="com.yc.service.panel.time.PanelTimeDao"%> |
|
11 |
<%@page import="com.yc.service.panel.PanelManageDao"%> |
|
12 |
<%@page import="com.yc.service.panel.GfieldApprovedButtonIfc"%> |
|
13 |
<%@page import="com.yc.service.panel.SqlDBHelperIfc"%> |
|
14 |
<%@page import="com.yc.service.upload.AttachmentIfc"%> |
|
15 |
<%@page import="com.yc.entity.attachment.AttachmentEntity"%> |
|
16 |
<%@page import="com.yc.utils.DefaultSet" %> |
|
17 |
<%@page import="java.sql.SQLException"%> |
|
18 |
<%@page import="net.sf.json.JSONObject"%> |
|
19 |
<%@page import="org.springframework.jdbc.BadSqlGrammarException"%> |
|
20 |
<%@page import="org.springframework.dao.EmptyResultDataAccessException"%> |
|
21 |
<%@page import="org.springframework.dao.DataAccessException"%> |
|
22 |
<%@page import="com.yc.multiData.SpObserver"%> |
|
23 |
<%@page import="com.yc.utils.SessionKey"%> |
|
24 |
<%@page import="com.google.gson.JsonArray"%> |
|
25 |
<%@page import="com.google.gson.JsonObject"%> |
|
26 |
<%@page import="com.yc.sdk.shopping.util.SettingKey"%> |
|
27 |
<% |
|
28 |
// |
|
29 |
SqlDBHelperIfc sqlDBHelperIfc=(SqlDBHelperIfc)FactoryBean.getBean("SqlDBHelper"); |
|
30 |
// |
|
31 |
GfieldApprovedButtonIfc gButtonIfc=(GfieldApprovedButtonIfc)FactoryBean.getBean("GfieldApprovedButton"); |
|
32 |
// |
|
33 |
PanelTimeDao PanelTimeBo=(PanelTimeDao)FactoryBean.getBean("PanelTime"); |
|
34 |
// |
|
35 |
PanelManageDao PanelManageBo=(PanelManageDao)FactoryBean.getBean("PanelManage"); |
|
36 |
// |
|
37 |
TypeControlDao TypeControlBo=(TypeControlDao)FactoryBean.getBean("TypeControl"); |
|
38 |
//pengbei |
|
39 |
request.setCharacterEncoding("UTF-8"); |
|
40 |
response.setCharacterEncoding("UTF-8"); |
|
41 |
String sql = ""; |
|
42 |
String path = request.getContextPath(); |
|
43 |
String basePath = SettingKey.getHostUrl(request) |
|
44 |
+ path + "/"; |
|
45 |
Date now=new Date(); |
|
46 |
SimpleDateFormat formatDate=new SimpleDateFormat("yyyy-MM-dd"); |
|
47 |
String date=String.valueOf(now.getDate()); |
|
48 |
int isNewOpen=1; |
|
49 |
int docstatePan=0; |
|
50 |
String tableIs="@zhu@"; |
|
51 |
String tableIs2="@minxi@"; |
|
52 |
Map<String,Object> docMap=new HashMap<String,Object>(); |
|
53 |
List<Map<String, Object>> listInfo=new ArrayList<Map<String, Object>>(); |
|
54 |
String addUrl="";//添加传给grid的条件,需要分离 |
|
55 |
if((wherePan!=null&&!wherePan.equals(""))||grid!=null){ |
|
56 |
//wherePan=java.net.URLDecoder.decode(wherePan,"utf-8"); |
|
57 |
if(wherePan.indexOf("@G@")!=-1){ |
|
58 |
int inds=wherePan.indexOf("@G@"); |
|
59 |
String temp1=wherePan; |
|
60 |
wherePan=temp1.substring(0,inds); |
|
61 |
addUrl = " and "+temp1.substring(inds+3); |
|
62 |
} |
|
63 |
try{ |
|
64 |
sql="select top 1 @selectColAll@ from ";//只能查一条 |
|
65 |
if(sql.contains("&doccode&")){//by danaus 2011-1-25 |
|
66 |
if(doccode!=null) |
|
67 |
sql=sql.replaceAll("&doccode&",doccode.replaceAll("'","")); |
|
68 |
} |
|
69 |
SpObserver.setDBtoInstance("_"+request.getSession().getAttribute(SessionKey.DATA_BASE_ID)); |
|
70 |
if(copy!=null){ |
|
71 |
listInfo=PanelManageBo.getFromEnd(sql,tableIs,wherePan.replaceAll("_ycid_","id"),@formType@,copy,request); |
|
72 |
}else{ |
|
73 |
listInfo=PanelManageBo.getFromEnd(sql,tableIs,(wherePan==null?wherePan:wherePan.replaceAll("_ycid_","id")),@formType@,request); |
|
74 |
} |
|
75 |
}catch(Exception e){ |
|
76 |
throw e; |
|
77 |
// try{ |
|
78 |
// listInfo=PanelManageBo.getFromEnd(sql,tableIs2,wherePan,@formType@,request); |
|
79 |
// }catch(Exception ex){ |
|
80 |
// listInfo=new ArrayList<Map<String, Object>>(); |
|
81 |
// //数据库乱设置时不显示页面,直接清空信息,或者不是乱设置,却不能用来查询,也清空信息 |
|
82 |
// } |
|
83 |
}finally{ |
|
84 |
SpObserver.setDBtoInstance(); |
|
85 |
} |
|
86 |
if(listInfo.size()>0){ |
|
87 |
docMap=listInfo.get(0);} |
|
88 |
if((doccode==null||"".equals(doccode))&&listInfo.size()>0){ |
|
89 |
doccode=DBHelper.getValue(docMap,"doccode"); |
|
90 |
} |
|
91 |
|
|
92 |
} |
|
93 |
if((isNew!=null&&isNew.equals("0"))||listInfo.size()>0){ |
|
94 |
isNewOpen=0;//不为新开单 |
|
95 |
docstatePan=DBHelper.getValueInt(docMap,"docstatus"); |
|
96 |
} |
|
97 |
JSONObject jsonOldPanel = JSONObject.fromObject(docMap); |
|
98 |
if(!"".equalsIgnoreCase(doccode)&©==null){ |
|
99 |
//------------增加取消确认功能,从变量取得状态值(docstatePan),权限值(profile),到后台查询及生成相应的代码 by danaus 2014-5-27 |
|
100 |
String cancelDoc="@canceldocstatus@";//取消确认状态值 |
|
101 |
String excep="@sqlException@";//sql表达式 |
|
102 |
String cancel_html="<a id=\"tpCanel\" href=\"javascript:void(0)\" onclick=\"mygrid.iscanelProc=true;save(2);\" class=\"easyui-linkbutton\" plain=\"true\" iconCls=\"icon-cancel\">@CancelBtnName@</a>";//生成取消确认的html代码 |
|
103 |
int iscanel=@iscanel@;//是否设置了取消确认 |
|
104 |
if(iscanel==1){ |
|
105 |
StringBuilder sqlEx= new StringBuilder(); |
|
106 |
sqlEx.append("select case when "); |
|
107 |
int ex=0; |
|
108 |
boolean flg=false; |
|
109 |
if(!"".equalsIgnoreCase(excep)){//存在sql表达式 |
|
110 |
sqlEx.append("("+excep+")"); |
|
111 |
flg=true; |
|
112 |
} |
|
113 |
if(!"".equalsIgnoreCase(cancelDoc)){ //存在有状态值 |
|
114 |
|
|
115 |
if(!"".equalsIgnoreCase(excep)) |
|
116 |
sqlEx.append(" and (").append(" docstatus in (").append(cancelDoc.replaceAll(";",",")).append("))"); |
|
117 |
else |
|
118 |
sqlEx.append(" docstatus in (").append(cancelDoc.replaceAll(";",",")).append(")"); |
|
119 |
|
|
120 |
flg=true; |
|
121 |
} |
|
122 |
|
|
123 |
sqlEx.append((flg?"":" 1=1 ")+" then 1 else 0 end cancelButton from ").append(tableIs); |
|
124 |
try{ |
|
125 |
ex= PanelManageBo.getCancelButton(DBHelper.getRepAll(sqlEx.toString(),session,docMap,true)+" where doccode='"+doccode.replaceAll("'","")+"'"); |
|
126 |
}catch(DataAccessException ea){//这异常判断单据是否还存在 xin 2018-12-8 17:45:59 |
|
127 |
if(ea instanceof EmptyResultDataAccessException){ |
|
128 |
throw new Exception("该单据不存在!"); |
|
129 |
}else{throw ea;} |
|
130 |
}catch(Exception e){ |
|
131 |
throw e; |
|
132 |
} |
|
133 |
if(ex==1){ //如果能显示,则用js把html代码写回到top页面。 |
|
134 |
|
|
135 |
%> |
|
136 |
<script> |
|
137 |
$("#spcan").html('<%=cancel_html%>'); |
|
138 |
</script> |
|
139 |
<% |
|
140 |
} |
|
141 |
} |
|
142 |
//-------------------end |
|
143 |
//------------增加撤回功能,从变量取得状态值(docstatePan),权限值(profile),到后台查询及生成相应的代码 by danaus 2016-11-21 |
|
144 |
String revokeDoc="@RevokeBtnEditStatus@";//状态值 |
|
145 |
String revokeexcep="@RevokeBtnExpression@";//sql表达式 |
|
146 |
String revoke_html="<a id=\"tpCanel\" href=\"javascript:void(0)\" onclick=\"mygrid.isrevokeProc=true;save(2);\" class=\"easyui-linkbutton\" plain=\"true\" iconCls=\"icon-cancel\">撤回</a>";//生成html代码 |
|
147 |
int isrevoke=@isrevoke@;//是否设置了取消确认 |
|
148 |
if(isrevoke==1){ |
|
149 |
StringBuilder sqlEx_revoke= new StringBuilder(); |
|
150 |
sqlEx_revoke.append("select case when "); |
|
151 |
int ex=0; |
|
152 |
boolean flg=false; |
|
153 |
if(!"".equalsIgnoreCase(revokeexcep)){//存在sql表达式 |
|
154 |
sqlEx_revoke.append("("+revokeexcep+")"); |
|
155 |
flg=true; |
|
156 |
} |
|
157 |
if(!"".equalsIgnoreCase(revokeDoc)){ //存在有状态值 |
|
158 |
|
|
159 |
if(!"".equalsIgnoreCase(revokeexcep)) |
|
160 |
sqlEx_revoke.append(" and (").append(" docstatus in (").append(revokeDoc.replaceAll(";",",")).append("))"); |
|
161 |
else |
|
162 |
sqlEx_revoke.append(" docstatus in (").append(revokeDoc.replaceAll(";",",")).append(")"); |
|
163 |
|
|
164 |
flg=true; |
|
165 |
} |
|
166 |
|
|
167 |
sqlEx_revoke.append((flg?"":" 1=1 ")+" then 1 else 0 end cancelButton from ").append(tableIs); |
|
168 |
try{ |
|
169 |
ex= PanelManageBo.getCancelButton(DBHelper.getRepAll(sqlEx_revoke.toString(),session,docMap,true)+" where doccode='"+doccode.replaceAll("'","")+"'"); |
|
170 |
}catch(DataAccessException ea){//这异常判断单据是否还存在 xin 2018-12-8 17:45:59 |
|
171 |
if(ea instanceof EmptyResultDataAccessException){ |
|
172 |
throw new Exception("该单据不存在!"); |
|
173 |
}else{throw ea;} |
|
174 |
}catch(Exception e){ |
|
175 |
throw e; |
|
176 |
} |
|
177 |
if(ex==1){ //如果能显示,则用js把html代码写回到top页面。 |
|
178 |
|
|
179 |
%> |
|
180 |
<script> |
|
181 |
$("#sprevoke").html('<%=revoke_html%>'); |
|
182 |
</script> |
|
183 |
<% |
|
184 |
} |
|
185 |
} |
|
186 |
//-------------------end |
|
187 |
} |
|
188 |
|
|
189 |
SqlRowSet SRS =null; |
|
190 |
String outStr=""; |
|
191 |
BuildFuncIfc build=(BuildFuncIfc)FactoryBean.getBean("Build"); |
|
192 |
try{ |
|
193 |
String openDoc="@openDoc@"; |
|
194 |
SpObserver.setDBtoInstance("_"+request.getSession().getAttribute(SessionKey.DATA_BASE_ID)); |
|
195 |
sqlDBHelperIfc.execSql(DBHelper.getProcessAll(openDoc,session,docMap,true)); |
|
196 |
}catch(Exception e){ |
|
197 |
throw e; |
|
198 |
}finally{ |
|
199 |
SpObserver.setDBtoInstance(); |
|
200 |
} |
d09c0b
|
201 |
//------- |
F |
202 |
String userName=session.getAttribute(SessionKey.USERNAME)+""; |
|
203 |
String dbid=session.getAttribute(SessionKey.DATA_BASE_ID)+""; |
|
204 |
com.yc.app.v2.controller.APPController appController = (com.yc.app.v2.controller.APPController) FactoryBean.getBean("APPController"); |
|
205 |
appController.execRecentAccessFormid(new com.yc.action.grid.RecentAccessEntity(userCode,userName,formId,formType,com.yc.service.impl.DBHelper.replaceBr(com.yc.utils.EncodeUtil.base64Encode(queryString)),formName,doccode.replaceAll("'",""),dbid)); |
|
206 |
//---------- |
a6a76f
|
207 |
//下面的调用是执行OA审核按钮 xin 2021-1-30 09:54:54 |
c58f97
|
208 |
//if(sqlDBHelperIfc.getOAVerifyMethod(docMap,userCode,docstatePan)){ %> |
a6a76f
|
209 |
<script> |
4b7d30
|
210 |
$(".OAVerify").html("<a href=\"javascript:OAVerifyMethod("+formId+",<%=docstatePan%>,'<%=DBHelper.getValue(docMap, "doccode")%>');\" id=\"OAVerify\" class=\"easyui-linkbutton\" plain=\"true\" iconCls=\"icon-oasht\" title=\"OA审核\">审核</a>"); |
c58f97
|
211 |
$(".OAVerify").css("display","none"); |
a6a76f
|
212 |
</script> |
c58f97
|
213 |
<%//}%> |
a6a76f
|
214 |
@linkscript@ |
F |
215 |
<style type="text/css"> |
|
216 |
.posPan { |
|
217 |
border: 0px solid #000000; |
|
218 |
position: absolute; |
|
219 |
height: @rowHei@px; |
|
220 |
width: @kongJian@px; |
|
221 |
font-size: 13px; |
|
222 |
z-index:0; |
|
223 |
} |
|
224 |
.miaoshu_pan { |
|
225 |
height: auto; |
|
226 |
@maoshuF@ |
|
227 |
padding-top:5px; |
|
228 |
width: @miaoShuo@px; |
|
229 |
white-space:nowrap; |
|
230 |
overflow:hidden; |
|
231 |
text-overflow:ellipsis; |
|
232 |
padding-right:6px; |
|
233 |
margin-top: -3px; |
|
234 |
} |
|
235 |
.control_div{ |
|
236 |
float: left; |
|
237 |
} |
|
238 |
.mustThree_show { |
|
239 |
border:1px solid #ffcf5a; |
|
240 |
background: #fff url(/images/ppp.gif) no-repeat right; |
|
241 |
} |
|
242 |
.Three_show { |
|
243 |
border:1px solid #a5a6ad; |
|
244 |
} |
|
245 |
.input35{ |
|
246 |
height:14px; |
|
247 |
} |
|
248 |
.main_talbe { |
|
249 |
font-family: Verdana, Arial, Vrinda, Tahoma; |
|
250 |
line-height: 24px; |
|
251 |
font-size: 12px; |
|
252 |
color: #666; |
|
253 |
} |
|
254 |
.text { |
|
255 |
border:1px solid #a5a6ad; |
|
256 |
} |
|
257 |
</style> |
|
258 |
<span onclick="panIndex='@index@'" id="panIndex@index@"> |
|
259 |
<script type="text/javascript"> |
|
260 |
var docstatuPan=<%=docstatePan%>; |
|
261 |
panIndex="@index@";//需要替换 |
|
262 |
qrCode='<%=DBHelper.getValue(docMap,"qrCode")%>';//单据二维码 |
|
263 |
maxCols[panIndex]="@maxCols@";//面板跨列数 |
|
264 |
panMain[panIndex]=clone(panPar); |
|
265 |
@uploadEditStatusMap@ |
|
266 |
@panInfo@ |
|
267 |
@panelScript@ |
|
268 |
panMain[panIndex].upDoc='<%=DBHelper.getValue(docMap,"upDoc")%>'; |
|
269 |
panMain[panIndex].nextDoc='<%=DBHelper.getValue(docMap,"nextDoc")%>'; |
|
270 |
panMain[panIndex].controlUrl="panelControl@formId@.jsp"; |
|
271 |
panMain[panIndex].isNew=isNew;//是否是新单 |
|
272 |
</script> |
|
273 |
<%@ include file="/public/template/0/showPan.txt" %> |
176200
|
274 |
<div class="panelControlDiv"> |
a6a76f
|
275 |
@panelHtml@ |
F |
276 |
</div> |
|
277 |
<div id="tplt-grid"> |
|
278 |
<%@ include file="@formId@_grid.jsp" %> |
|
279 |
</div> |
176200
|
280 |
<div class="panelControlDiv"> |
a6a76f
|
281 |
@panelDownHtml@ |
F |
282 |
</div> |
|
283 |
<script type="text/javascript"> |
|
284 |
@pansetInv@ |
|
285 |
panMain[panIndex].loadSet(<%=docstatePan%>); |
|
286 |
panMain[panIndex].keyDown('123','null'); |
0279b8
|
287 |
$(function(){ |
X |
288 |
<% |
|
289 |
if("1".equals(onlinePay)){ |
|
290 |
if(!"".equals(DBHelper.getValue(docMap,"isshowonlinepaymentbutton"))){ |
|
291 |
%> |
|
292 |
OpenPayAndRefund('<%=DBHelper.getValue(docMap,"doccode")%>',<%=DBHelper.getValueInt(docMap,"isshowonlinepaymentbutton")%>,'pay'); |
|
293 |
<% |
229bc8
|
294 |
} |
0279b8
|
295 |
} |
X |
296 |
%> |
|
297 |
}) |
a6a76f
|
298 |
</script> |
F |
299 |
</span> |