泛微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.Context;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
RecordSet;
// ⾃定义action,⽆侵⼊开发
@Path("/formmode/custom")
public class CustomFormmodeAction {
public CustomFormmodeAction() {
}
//查询当前预约的⼈员,时间段是否和数据库⾥⾯的冲突
@POST
@Path("/findconflict")
@Produces({"application/json"})
百度api接口public String findConflict(@Context HttpServletRequest var1, @Context HttpServletResponse var2) {
var2.setContentType("application/json; charset=utf-8");
String ry = Parameter("ry");// ⼈员
String jhksrq = Parameter("jhksrq");// 计划开始⽇期
String jhjsrq = Parameter("jhjsrq");// 计划结束⽇期
String zt = Parameter("zt");// 预约状态:0预约中,1已完成
JSONObject obj = new JSONObject();
obj.put("result","1");// 默认保存校验通过
if("0" == zt) {// 如果是预约状态
RecordSet rs = new RecordSet();
+ ") OR (jhksrq <= " + jhksrq + " AND jhjsrq >= " + jhjsrq + ") OR (jhjsrq >= " + jhksrq + " AND jhjsrq <= " + jhjsrq + "))");
()){//存在冲突
// 从结果获取冲突信息
String xmmc_con = rs.getString("xmmc");
String xmh_con = rs.getString("xmh");
String jhksrq_con = rs.getString("jhksrq");
String jhjsrq_con = Parameter("jhjsrq");
obj.put("result","0");
obj.put("des","该预约存在冲突,冲突如下:项⽬名称:" + xmmc_con + ",项⽬号:" + xmh_con + ",计划开始⽇期:" + jhksrq_con + ",计划结束⽇期:" + jhjsrq_con); }
}
JSONString(obj);
}
}
步骤4 将写完的CustomFormmodeAction.java⽂件放到对应的⽬录,系统会⾃动编译⽣成class⽂件
2. js使⽤ajax调⽤
<script type="text/javascript">
window.checkCustomize =(_endflagemit_)=>{
var xmh = FieldValue("field20288");
var ry = FieldValue("field20289");
var jhksrq = FieldValue("field20290");
var jhjsrq = FieldValue("field20291");
$.ajax({
url:"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);
sult==1){
_endflagemit_(true);
}else{
_endflagemit_(false);
var rymc = BrowserShowName("field20289");
var jsmc = SelectShowName("field20325");
ModeForm.showMessage(jsmc+rymc+"已有如下项⽬安排:"+ res.des, 1, 10);
}
},
error:function(){
_endflagemit_(false);
}
})
}
</script>
3. 效果:点击"保存",会请求⾃定义接⼝校验数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论