fs-danaus
2022-04-12 d09c0b15203128b61247fe5b126ac2506a747768
提交 | 用户 | 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)&&copy==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>