泛微OA自定義post接口和路徑(無侵入)


1. 在"建模引擎"模塊自定義一個post接口


步驟1 把接口放在以下路徑D:\WEAVER\ecology\classbean\com\api\formmode\web,這里面是"建模引擎"的action


步驟2 在idea里面新建一個和路徑一樣的包路徑com.api.formmode.web


步驟3 新建自定義action類CustomFormmodeAction.java,源代碼如下

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 右鍵項目名稱,build編譯生成class文件,拷出class文件放到服務器上



2. 前端使用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. 效果:點擊"保存",會請求自定義接口校驗數據




4. 注意事項


如果第三方異構系統需要調用該接口,需要配置接口白名單。
目錄:D:\WEAVER\ecology\WEB-INF\prop\weaver_session_filter.properties

unchecksessionurl后面添加"/api/formmode/custom/findconflict;"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM