|
1、java方法:主要包含了:电子签名获取和拼接图片地址,代码也许有些冗余,不是很完善。
paramJson:是UI拼接字符串传递过来,详细参数见下面js。
/* * 取出所有的处理意见。
*/
public static String getDocDealResultAll(String paramJson) {
String[] modle = { "/OA/doc/data" };
String sheetID = null, bSessionID = null, activity = null, process = null;
String re = null;
DBManeger dmOA = null;
try {
JSONObject js = new JSONObject(paramJson);
sheetID = js.getString("sheetID");
bSessionID = js.getString("bSessionID");
activity = js.getString("activity");
process = js.getString("process");
if (bSessionID == null || "".equals(bSessionID) || sheetID == null || "".equals(sheetID)) {
return null;
}
JSONObject js1 = js.getJSONObject("param");
Set set = new HashSet();
Iterator it = js1.keys();
String key = null, value = null;
String[] values = null;
while (it.hasNext()) {
key = (String) it.next();
value = js1.getString(key);
if (!"".equals(value)) {
values = value.split(",");
for (int i = 0; i < values.length; i++) {
set.add(values);
}
}
}
Map<String, String> map = new HashMap<String, String>();
String sql = "select a.fOpinion,a.fActivityFName,a.fUpdateTime ,case when b.fsignature is null then '0' else '1' end as flag ,"
+ "case when b.fsignature is null then a.fUpdatePsnName else b.fID end as sign from OA_PUB_Execute a left join chxzsys.dbo.AP_PersonSignature b"
+ " on a.fUpdatePsnID=b.fID where a.fMasterID='" + sheetID + "' ";
if (set.size() > 0) {
StringBuilder sb = new StringBuilder();
it = set.iterator();
while (it.hasNext()) {
value = (String) it.next();
sb.append("a.fActivityFName like '%");
sb.append(value);
sb.append("%' or ");
}
int _i001 = sb.length();
if (_i001 > 0) {
sql += " and (" + sb.substring(0, sb.length() - 4) + ")";
}
}
Log.debug("oooo:" + sql);
dmOA = DBFactor.getDB("x5", modle);
ResultSet rs = dmOA.query(sql);
String _s002 = null, _s005 = null, _s004 = null, _s006 = null;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
int _i001 = 0;
while (rs.next()) {
_s002 = rs.getString("fActivityFName");
if (_s002 != null) {
_i001 = _s002.lastIndexOf("/");
if (_i001 != -1) {
_s002 = _s002.substring(_i001 + 1);
if ("0".equals(rs.getString("flag"))) {
_s004 = rs.getString("sign");
} else {
_s004 = "<img class='opionImg' src='/x5/UI/system/service/common/bizAction.j?bsessionid=" + bSessionID
+ "&language=zh_CN&dataModel=" + dataModel + "&concept=" + concept + "&activity=" + activity + "&process="
+ process + "&relation=" + relation + "&action=" + action + "&id=" + rs.getString("sign") + "'/>";
}
_s005 = map.get(_s002);
_s006 = rs.getString("fOpinion");
if (_s006 == null || "".equals(_s006.trim()))
_s006 = "无";
if (_s005 == null && rs.getString("fOpinion") == null) {
map.put(_s002, "<tr><td>" + "</td><td></td><td></td></tr> <tr><td colspan='3'>意见:" + _s006
+ " </td><tr><tr><td</td><td style='text-align:right'>处理人:</td><td style='height:40px'>" + _s004
+ "</td><tr><td colspan='2' style='text-align:right'>日期:" + sd.format(rs.getDate("fUpdateTime")) + "</td></tr>");
} else {
map.put(_s002, (_s005 == null ? "" : _s005) + "<tr><td>" + "</td><td></td><td></td></tr> <tr><td colspan='3'>意见:" + _s006
+ "</td><tr><tr><td</td><td style='text-align:right'>处理人:</td><td style='height:40px'>" + _s004
+ "</td><tr><td colspan='2' style='text-align:right'>日期:" + sd.format(rs.getDate("fUpdateTime")) + "</td></tr>");
}
}
}
}
it = js1.keys();
while (it.hasNext()) {
key = (String) it.next();
value = js1.getString(key);
if (value != null && !"".equals(value)) {
values = value.split(",");
String _s001 = "", _s003 = null;
for (int i = 0; i < values.length; i++) {
_s003 = map.get(values);
_s001 = (_s003 == null) ? "" + _s001 : _s001 + _s003;
}
js1.put(key, "<table id='" + key + "' style='margin-top:10px;height:auto;width:100%' >" + _s001 + "</table>");
}
}
re = js1.toString();
Log.debug(re);
} catch (JSONException e1) {
e1.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
dmOA.closeDB();
}
return re;
}
红色部分:主要就是拼接图片地址,在UI层显示
2、UI层js代码,
function setOpinion() {
var paramk = {
activity : justep.Context.getCurrentActivity(),
process : justep.Context.getCurrentProcess(),
sheetID : justep.xbl("dataMain").getCurrentID(),
bSessionID : justep.Request.URLParams.bsessionid,
param : {// 各个字段对应的环节意见。如果对应多个环节,环节名称以,分隔
fNucleardraft : "deptApproveActivity",
fdraftIssued : "draftlawerActivity",
fSOpinion : "leaderissuedActivity"
}
};
if (paramk.sheetID) {
var param = new justep.Request.ActionParam();
param.setString("paramJson", JSON.stringify(paramk));
var process = justep.Context.getCurrentProcess();
var activity = justep.Context.getCurrentActivity();
var r = justep.Request.sendBizRequest(process, activity,
"getDocDealResult", param, null, null, true);
if (!justep.Request.isBizSuccess(r)) {
alert("提示:过滤信息失败,请联系管理员连接失败!");
return null;
} else {
var result = justep.Request.transform(justep.Request
.getData(r.responseXML));
if (result) {
var cdata = justep.xbl("docdraftData");
cdata.newData();
var reObject = eval("(" + result + ")");
var _t001 = null, _t002 = null;
for ( var k in reObject) {
_t002 = reObject[k];
$("#" + k).html(function() {
document.getElementById(k).outerHTML=(_t002 == "null") ? " " : _t002;
})
}
}
return result;
}
}
}
在UI层需注意几点:页面布局时,需添加
与param : {// 各个字段对应的环节意见。如果对应多个环节,环节名称以,分隔 fNucleardraft : "deptApproveActivity",
fdraftIssued : "draftlawerActivity",
fSOpinion : "leaderissuedActivity"
}
对应的页面元素,如:<xforms:textarea id="fdraftIssued" ref="data('docdraftData')/fdraftIssued" style="height:100%;"/> <xforms:textarea id="fNucleardraft" ref="data('docdraftData')/fNucleardraft" style="height:100%;"/>
有几个将对应几个参数。
当加载setOpinion 这个方法时,
for ( var k in reObject) { _t002 = reObject[k];
$("#" + k).html(function() {
document.getElementById(k).outerHTML=(_t002 == "null") ? " " : _t002;
})
},这句将会找到对应的param
的参数ID,将其替换成对应的html代码,达到查看签名、审批意见、审批时间。
这只是一种实现方法而已,仅供大家参考,肯定里面还有些代码不完善。在使用的过程中在慢慢完善吧!
|
评分
-
查看全部评分
|