首先需要登录泛微E9获取会话(session),因为提交流程需要认证。
构建提交流程所需的参数(包括流程模板ID、表单数据等)。
发送HTTP POST请求到流程提交的API。
解析返回的响应,提取requestId。package com.api.hw.hssl;
import bsh.Console;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.hw.utils.Result;
import com.api.hw.utils.WebJsonUtils;
import com.api.integration.util.DbUtil;
import com.api.integration.web.OAuth2ServerAction;
import com.caucho.quercus.env.Var;
import com.engine.cpt.cmd.alert.GetBaseInfoCmd;
import dm.jdbc.stat.support.WebServer;
import org.mozilla.javascript.Function;
import vba.word.Index;
import weaver.conn.DBUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.integration.logging.Logger;
import weaver.integration.logging.LoggerFactory;
import weaver.mobile.plugin.ecology.RequestOperation;
import weaver.soa.workflow.request.RequestInfo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@Path(“/hw/hssl”)
public class SyncOrderAPI {
private Logger logger = LoggerFactory.getLogger(OAuth2ServerAction.class); public static final String TABLE_NAME = "formtable_main_333_dt2"; @POST @Path("/SynOrders") @Produces("application/json") public Object SyncOrderinfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { this.logger.info("================SyncOrderInfo start...==============================="); JSONObject requestJSON = WebJsonUtils.getRequestJSON(request); JSONArray items = requestJSON.getJSONArray("data"); List<List> batchParams = new ArrayList<>(); RecordSet rs = new RecordSet(); Result result = null; HashMap retMap = new HashMap(); String sql = "INSERT INTO " + TABLE_NAME + " (" + "orderType, originalOrderNo, bookingName, travelerName, orderDate, orderStatus," + "start_datetime, end_datetime, orderAmount, personPay, businessPay, discount," + "actualPlaceOfDeparture,actualDestination, universalType,roomType, trainSeat,cabinType, " + "vehicleType, isExcess, excessReason, flightNumber, trainNumber, hotelAddress," + "roomQuantity, liveDay, roomDays, mainid" + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { for (int i=0;i<items.size();i++) { JSONObject item = items.getJSONObject(i); List<Object> rowParams = new ArrayList<>(); rowParams.add(item.getInteger("orderType"));//订单类型 rowParams.add(item.getString("originalOrderNo"));//订单明细编号 rowParams.add(item.getString("bookingName"));//订票人姓名 rowParams.add(item.getString("travelerName"));//出行人姓名 rowParams.add(item.getString("orderDate"));//订单创建日期 rowParams.add(item.getString("orderStatus"));//订单状态 rowParams.add(item.getString("start_datetime"));//订单开始时间 rowParams.add(item.getString("end_datetime"));//订单结束时间 rowParams.add(item.getString("orderAmount"));//订单总金额 rowParams.add(item.getString("personPay"));//个人支付金额 rowParams.add(item.getString("businessPay"));//企业支付金额 rowParams.add(item.getString("discount"));//折扣 rowParams.add(item.getString("actualPlaceOfDeparture"));//实际出发地 rowParams.add(item.getString("actualDestination"));//实际到达地 rowParams.add(item.getString("universalType"));//通用类型 rowParams.add(item.getInteger("roomType"));//房型 rowParams.add(item.getInteger("trainSeat"));//火车席位 rowParams.add(item.getInteger("cabinType"));//舱位类型 rowParams.add(item.getInteger("vehicleType"));//车型 rowParams.add(item.getInteger("isExcess"));//是否超标 rowParams.add(item.getString("excessReason"));//超标原因 rowParams.add(item.getString("flightNumber"));//航班号 rowParams.add(item.getString("trainNumber"));//火车车次 rowParams.add(item.getString("hotelAddress"));//酒店地址 rowParams.add(item.getString("roomQuantity"));//房间数量 rowParams.add(item.getString("liveDay"));//入住天数 rowParams.add(item.getString("roomDays"));//间夜数 rowParams.add(item.getInteger("mainid")); batchParams.add(rowParams); } boolean success = rs.executeBatchSql(sql,batchParams); if (success) { result = Result.success(); result.setMessage(""); } else { return Result.build(500, "数据库操作失败",null); } } catch (Exception e) { logger.error(e.getMessage()); return Result.build(500, "系统异常: "+e.getMessage(),retMap); } finally { logger.info("=============== SyncOrderInfo 结束 ==============="); } return result; }
}前两项已经在其他接口完成
最新发布