用友NC移动审批APP介绍
1.实现思路:通过在NC增加数据接口,实现服务端为移动审批APP提供数据服务
2.客户端:采用H5开发,可以在多平台运行,支持与NC电脑端一模一样的审批功能。
点击查看servlet代码
效果图如下:以集成钉钉为例
部分代码如下
package nc.bs.gxyy.servlet企鹅892446383;
import java.io.IOException;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.bs.framework.comn.NetStreamContext;
import nc.bs.framework.server.ISecurityTokenCallback;
import nc.bs.framework.server.ITokenProcessor;
import nc.bs.gxyy.ma.login.APPUserLogin;
import nc.bs.logging.Logger;
import nc.pub.gxyy.ima.IMAService;
import nc.pub.gxyy.ma.vo.ReciveVO;
import nc.pub.gxyy.tools.APPDBUtil;
import nc.pub.gxyy.tools.APPRequestTool;
import nc.pub.gxyy.tools.MAConfig;
import nc.vo.pub.lang.UFDateTime;import org.apache.commons.lang.StringUtils;
import org.json.JSONObject;public class MAServlet extends HttpServlet {
/**
* 看博客主页
*/
private static final long serialVersionUID = 892446383;
public MAServlet() {
}
@Override
public void init() throws ServletException {
super.init();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Logger.init("gxyy");
InvocationInfoProxy.getInstance().setUserDataSource(MAConfig.getInstance().getDsName());
//设置安全token
ISecurityTokenCallback sc = (ISecurityTokenCallback) NCLocator.getInstance().lookup(ISecurityTokenCallback.class);
sc.token("NCSystem".getBytes(), "pfxx".getBytes());
ReciveVO reciveVO = null;
try {
reciveVO = APPRequestTool.dealRequest(request);
} catch (Exception e1) {
e1.printStackTrace();
MAResponeUtil.writeRespone(request,response, MAResponeUtil.getErrorResponeJsonString("接收参数发生错误",""));
return;
}String result = "";
try {
if ("login".equals(reciveVO.getFunc())) {
String loginuuid = APPUserLogin.login(reciveVO.getUsercode(), reciveVO.getPassword(), false);
JSONObject obj = new JSONObject();
obj.put("loginuuid", loginuuid);
String usercode = reciveVO.getUsercode();
String username = APPDBUtil.getColValue("sm_user", "user_name", "user_code", usercode);
String cuserid = APPDBUtil.getColValue("sm_user", "cuserid", "user_code", usercode);
String pk_group = APPDBUtil.getColValue("sm_user", "pk_group", "user_code", usercode);
obj.put("username", username);
obj.put("userid",cuserid);
obj.put("pk_group", pk_group);
result = MAResponeUtil.getSuccessResponeJsonString("登陆成功", obj);
//业务处理
}
else {
if(!"debug".equals(reciveVO.getRunmode())){
APPUserLogin.loginCheck(reciveVO.getLoginuuid());
}
if("process".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).process(reciveVO);
}else if("queryDspBill".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryDspBill(reciveVO);
}else if("queryYspBill".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryYspBill(reciveVO);
}else if("queryYbhBill".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryYbhBill(reciveVO);
}else if("queryBillVO".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryBillVO(reciveVO);
}else if("queryFJList".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryFJList(reciveVO);
}else if("queryBillApproveInfo".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).queryBillApproveInfo(reciveVO);
}else if("getUserList".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).getUserList(reciveVO);
}else if("getCanSelectActive".equals(reciveVO.getFunc())){
result = NCLocator.getInstance().lookup(IMAService.class).getCanSelectActive(reciveVO);
}else{
MAResponeUtil.writeRespone(request,response, MAResponeUtil.getErrorResponeJsonString("无法识别的参数", ""));
return;
}
}
MAResponeUtil.writeRespone(request,response, result);} catch (Exception e) {
MAResponeUtil.writeRespone(request,response, MAResponeUtil.getErrorResponeJsonString(e.getMessage(), ""));
System.out.println(e);
e.printStackTrace();
return;
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
public void doAction(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doAction");
doPost(request, response);
}
}