泛微OA自定义post接口和路径(无侵入)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

泛微OA⾃定义post接⼝和路径(⽆侵⼊)
1. ⽐如想在"建模引擎"模块⾃定义⼀个post接⼝
步骤1 打开路径D:\WEAVER\ecology\classbean\com\api\formmode\web,这⾥⾯对应"建模引擎"的action
步骤2 考出任意⼀个class⽂件,放到idea进⾏反编译,找到⼀个接⼝所依赖的包
步骤3 新建⾃定义action类CustomFormmodeAction,代码如下
package com.api.formmode.web;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import weaver.conn.RecordSet;
// ⾃定义action,⽆侵⼊开发
@Path("/formmode/custom")
public class CustomFormmodeAction {
public CustomFormmodeAction() {
}
//查询当前预约的⼈员,时间段是否和数据库⾥⾯的冲突
@POST
@Path("/findconflict")
@Produces({"application/json"})
public String findConflict(@Context HttpServletRequest var1, @Context HttpServletResponse var2) {
var2.setContentType("application/json; charset=utf-8");
String ry = var1.getParameter("ry");// ⼈员
String jhksrq = var1.getParameter("jhksrq");// 计划开始⽇期
String jhjsrq = var1.getParameter("jhjsrq");// 计划结束⽇期
String zt = var1.getParameter("zt");// 预约状态:0预约中,1已完成
JSONObject obj = new JSONObject();
obj.put("result","1");// 默认保存校验通过
if("0" == zt) {// 如果是预约状态
RecordSet rs = new RecordSet();
rs.execute("select * from uf_ryyy where ry=" + ry + " and zt=" + zt + " and ((jhksrq >= " + jhksrq + " AND jhksrq <= " + jhjsrq
+ ") OR (jhksrq <= " + jhksrq + " AND jhjsrq >= " + jhjsrq + ") OR (jhjsrq >= " + jhksrq + " AND jhjsrq <= " + jhjsrq + "))");
if(rs.next()){//存在冲突
// 从结果获取冲突信息
String xmmc_con = rs.getString("xmmc");
String xmh_con = rs.getString("xmh");
String jhksrq_con = rs.getString("jhksrq");
String jhjsrq_con = var1.getParameter("jhjsrq");
obj.put("result","0");
obj.put("des","该预约存在冲突,冲突如下:项⽬名称:" + xmmc_con + ",项⽬号:" + xmh_con + ",计划开始⽇期:" + jhksrq_con + ",计划结束⽇期:" + jhjsrq_con); }
}
return JSON.toJSONString(obj);
}
}
步骤4 将写完的CustomFormmodeAction.java⽂件放到对应的⽬录,系统会⾃动编译⽣成class⽂件
2. js使⽤ajax调⽤
<script type="text/javascript">
window.checkCustomize =(_endflagemit_)=>{
var xmh = ModeForm.getFieldValue("field20288");
var ry = ModeForm.getFieldValue("field20289");
var jhksrq = ModeForm.getFieldValue("field20290");
var jhjsrq = ModeForm.getFieldValue("field20291");
$.ajax({
url:"http://192.168.10.28/api/formmode/custom/findconflict",
type:"POST",
data:{
"xmh":xmh,
"ry":ry,
"jhksrq":ksrq,
"jhjsrq":jsrq
},
success:function(res){
console.log(res);
if(res.result==1){
_endflagemit_(true);
}else{
_endflagemit_(false);
var rymc = ModeForm.getBrowserShowName("field20289");
var jsmc = ModeForm.getSelectShowName("field20325");
ModeForm.showMessage(jsmc+rymc+"已有如下项⽬安排:"+ res.des, 1, 10);
}
},
error:function(){
_endflagemit_(false);
}
})
}
</script>
3. 效果:点击"保存",会请求⾃定义接⼝校验数据。

相关文档
最新文档