备案接口优化添加是否下委托书字段推送经销商平台

This commit is contained in:
2024-08-12 13:48:52 +08:00
parent da2b2be1e6
commit 52dc436556
16 changed files with 569 additions and 320 deletions

View File

@@ -3,4 +3,6 @@
<beans default-autowire="byName">
<bean id="fvNewZhengceNode" class="com.seeyon.apps.src_qyba.node.FVNewZhengceNode" />
<bean id="fvOldZhengceNode" class="com.seeyon.apps.src_qyba.node.FVOldZhengceNode" />
<bean id="fvNewStateReturnNode" class="com.seeyon.apps.src_qyba.node.FVNewStateReturnNode" />
<bean id="fvOldStateReturnNode" class="com.seeyon.apps.src_qyba.node.FVOldStateReturnNode" />
</beans>

View File

@@ -2,4 +2,5 @@
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="fvService" class="com.seeyon.apps.src_qyba.service.FVService" />
<bean id="fvTongyongService" class="com.seeyon.apps.src_qyba.service.FVTongyongService" />
</beans>

View File

@@ -65,11 +65,17 @@ public class NewTongYongService {
map.put("request", parm.toString());
map.put("response", s);
} else {
// Map data = (Map) returnMsg.get("errMsg");
if("-1".equals(code.toString())){
map.put("code", "300");
map.put("msg", "新建流程失败!");
map.put("msg", returnMsg.get("msg"));
map.put("request", parm.toString());
map.put("response", s);
}else{
map.put("code", "300");
map.put("msg", "异常编号:"+code.toString()+",异常数据"+returnMsg.get("errMsg"));
map.put("request", parm.toString());
map.put("response", s);
}
}
return map;

View File

@@ -55,22 +55,22 @@ public class TongYongService {
Map<String, Object> map = new HashMap<>();
if ("SUCCESS".equals(code.toString())) {
//调用提交接口
// Map data = (Map) returnMsg.get("data");
// Object requestid = data.get("requestid");
// String msg = FanWeiUtil.PostRestfulbyForm(requestid.toString(), userid);
// JSONObject tiJiaoReturnMsg = JSON.parseObject(msg);
// Object code2 = tiJiaoReturnMsg.get("code");
// System.out.println("提交code:" + code2);
map.put("code", "200");
map.put("msg", "推送成功");
map.put("request", parm.toString());
map.put("response", s);
} else {
// Map data = (Map) returnMsg.get("errMsg");
if("-1".equals(code.toString())){
map.put("code", "300");
map.put("msg", "新建流程失败!");
map.put("msg", returnMsg.get("msg"));
map.put("request", parm.toString());
map.put("response", s);
}else{
map.put("code", "300");
map.put("msg", "异常编号:"+code.toString()+",异常数据"+returnMsg.get("errMsg"));
map.put("request", parm.toString());
map.put("response", s);
}
}
return map;

View File

@@ -13,6 +13,7 @@ import java.util.TimeZone;
import com.seeyon.apps.src_dingding.service.DingdingService;
import com.seeyon.apps.src_dingding.vo.CheckOnWorkAttendanceVo;
import nc.vo.jcom.lang.StringUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -32,7 +33,8 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
private String getdeptBysuperDeptId = "select * from SRC_DINGDING_OA_DEPT where DINGDINGDEPTID = '${dingdingdeptid}'";
private String getdeptByPathName = "select NAME,ID from ORG_UNIT where PATH like ? and NAME = ? AND IS_INTERNAL = 1 AND IS_ENABLE = 1 AND IS_DELETED = 0";
private String getDingdingOaDept = "select * from SRC_DINGDING_OA_DEPT ";
private String getDingdingOaMember = "select * from SRC_DINGDING_OA_MEMBER ";
private String getDingdingOaMember = "SELECT * FROM (SELECT a.*, ROWNUM rnum FROM (SELECT * FROM SRC_DINGDING_OA_MEMBER ORDER BY id ) a WHERE ROWNUM <= ? ) WHERE rnum > ? ";
private String getDingdingOaMemberNum = "select count(t.oamemberid) as num from (SELECT oamemberid,count(oamemberid) as oanum FROM SRC_DINGDING_OA_MEMBER group by oamemberid) t";
private String getDepartmentById = "select ID,NAME,PATH from ORG_UNIT WHERE ID = ? AND IS_INTERNAL = 1 AND IS_ENABLE = 1 AND IS_DELETED = 0";
private String getdeptsizeBydingdingid = "select count(id) as DINGDINGSIZE from src_dingding_oa_dept where dingdingdeptid = '${dingdingdeptid}'";
private String getmembersizeBydingdingid = "select count(id) as DINGDINGSIZE from src_dingding_oa_member where dingdingmemberid = '${dingdingmemberid}'";
@@ -327,13 +329,14 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
}else{
sql.append(",TO_DATE('"+simpleDateFormat.format(checkOnWorkAttendanceVo.getCheckOnWorkAttendanceDate())+"','YYYY-MM-DD HH24:MI:SS')");
}
// 上班1
if(checkOnWorkAttendanceVo.getShangbanDate1() == null){
sql.append(",''");
}else{
sql.append(",TO_DATE('"+simpleDateFormat.format(checkOnWorkAttendanceVo.getShangbanDate1())+"','YYYY-MM-DD HH24:MI:SS')");
}
if(checkOnWorkAttendanceVo.getShangban1().length()==0){
if(StringUtil.isEmpty(checkOnWorkAttendanceVo.getShangban1())){
sql.append(",''");
}else{
sql.append(",'"+checkOnWorkAttendanceVo.getShangban1()+"'");
@@ -345,7 +348,7 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
}else{
sql.append(",TO_DATE('"+simpleDateFormat.format(checkOnWorkAttendanceVo.getXiabanDate1())+"','YYYY-MM-DD HH24:MI:SS')");
}
if(checkOnWorkAttendanceVo.getXiaban1().length()==0){
if(StringUtil.isEmpty(checkOnWorkAttendanceVo.getXiaban1())){
sql.append(",''");
}else{
sql.append(",'"+checkOnWorkAttendanceVo.getXiaban1()+"'");
@@ -357,7 +360,7 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
}else{
sql.append(",TO_DATE('"+simpleDateFormat.format(checkOnWorkAttendanceVo.getShangbanDate2())+"','YYYY-MM-DD HH24:MI:SS')");
}
if(checkOnWorkAttendanceVo.getShangban2().length()==0){
if(StringUtil.isEmpty(checkOnWorkAttendanceVo.getShangban2())){
sql.append(",''");
}else{
sql.append(",'"+checkOnWorkAttendanceVo.getShangban2()+"'");
@@ -369,7 +372,7 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
}else{
sql.append(",TO_DATE('"+simpleDateFormat.format(checkOnWorkAttendanceVo.getXiabanDate2())+"','YYYY-MM-DD HH24:MI:SS')");
}
if(checkOnWorkAttendanceVo.getXiaban2().length()==0){
if(StringUtil.isEmpty(checkOnWorkAttendanceVo.getXiaban2())){
sql.append(",''");
}else{
sql.append(",'"+checkOnWorkAttendanceVo.getXiaban2()+"'");
@@ -676,6 +679,32 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
return ret;
}
@Override
public String getDingdingOaMemberNum() {
String ret = "";
JDBCAgent agent = new JDBCAgent();
try {
StringBuilder sql = new StringBuilder(getDingdingOaMemberNum);
List<Object> p = new ArrayList<Object>();
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
ret = map.get("num").toString();
}
} catch (BusinessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (agent != null) {
agent.close();
}
}
return ret;
}
@Override
public int updateWorkAttendance(CheckOnWorkAttendanceVo checkOnWorkAttendanceVo) {
int i = 0;
@@ -695,12 +724,14 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
}
@Override
public List<Map<String, Object>> getDingdingOaMember() throws BusinessException, SQLException {
public List<Map<String, Object>> getDingdingOaMember(String startnum , String endnum) throws BusinessException, SQLException {
List<Map<String,Object>> ret = new ArrayList<Map<String,Object>>();
JDBCAgent agent = new JDBCAgent();
try {
StringBuilder sql = new StringBuilder(getDingdingOaMember);
List<Object> p = new ArrayList<Object>();
p.add(endnum);
p.add(startnum);
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {

View File

@@ -51,12 +51,12 @@ public interface IDingdingDao {
public List<Map<String,Object>> getDingdingOaDept()throws BusinessException, SQLException;
/**
* 查询部门对照表中所有的部门信息
* 查询分页查询所有人员信息
* @return
* @throws BusinessException
* @throws SQLException
*/
public List<Map<String,Object>> getDingdingOaMember()throws BusinessException, SQLException;
public List<Map<String,Object>> getDingdingOaMember(String startnum , String endnum)throws BusinessException, SQLException;
/**
* 根据部门ID查询OA系统中的部门信息
@@ -180,4 +180,11 @@ public interface IDingdingDao {
*/
public String getGroupName(String memberId);
/**
* 查询规定时间之内的补卡单据
* @return
*/
public String getDingdingOaMemberNum();
}

View File

@@ -266,9 +266,10 @@ public class DingdingService {
}
public String dingdingclockin() throws BusinessException, SQLException, RuntimeException, ApiException, ServiceException, InterruptedException {
String membernum = dingdingDao.getDingdingOaMemberNum();
log.info(membernum);
// 查询当前系统人员对照表中的人员信息
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember();
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember("0",membernum);
// 一次封装12人的考勤数据
int groupSize = 10; // 每组的大小
List<List<Map<String,Object>>> memberLists = new ArrayList<List<Map<String,Object>>>();
@@ -438,7 +439,6 @@ public class DingdingService {
}
subfrom.put("打卡状态", timeResultStr);
subfroms.add(subfrom);
}
if(lack ==datasSequence.size()){
@@ -462,8 +462,10 @@ public class DingdingService {
}
public String dingdingclockin(String datestr) throws BusinessException, SQLException, RuntimeException, ApiException, ServiceException, InterruptedException {
String membernum = dingdingDao.getDingdingOaMemberNum();
log.info(membernum);
// 查询当前系统人员对照表中的人员信息
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember();
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember("0",membernum);
// 一次封装12人的考勤数据
int groupSize = 10; // 每组的大小
@@ -659,8 +661,16 @@ public class DingdingService {
public void setWorkAttendance(){
log.info("开始设置考勤信息");
try {
// 查询所有人员的数据量
String num = dingdingDao.getDingdingOaMemberNum();
int membernum = Integer.parseInt(num);
// 设置初始索引
int start = 0 ;
for(int i = 0; start <= membernum ; i++){
int end = start+1000;
// 获取所有打卡人
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember();
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember(start+"",end+"");
log.info(members);
// 循环遍历所有打卡人信息,设置前一天的打卡情况
for (Map<String,Object> map:members) {
// 根据打卡人信息获取一月内的打卡情况
@@ -787,7 +797,9 @@ public class DingdingService {
List<Map<String,Object>> adjustLeaves = dingdingDao.getAdjustLeave(memberId,sdf.format(calendar.getTime()),dateStr);
leaveUpdateWorkAttendance(adjustLeaves,memberId);
}
log.info("创建完成!!!创建条数"+members.size());
start = end;
}
log.info("创建完成!!!创建条数"+membernum);
} catch (BusinessException e) {
e.printStackTrace();
} catch (SQLException e) {
@@ -807,8 +819,16 @@ public class DingdingService {
public String setWorkAttendance(String dateStr) {
log.info("开始设置考勤信息");
try {
// 查询所有人员的数据量
String num = dingdingDao.getDingdingOaMemberNum();
int membernum = Integer.parseInt(num);
// 设置初始索引
int start = 0 ;
for(int i = 0; start <= membernum ; i++) {
int end = start + 1000;
// 获取所有打卡人
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember();
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember(start+"",end+"");
log.info(members);
// 循环遍历所有打卡人信息,设置前一天的打卡情况
for (Map<String,Object> map:members) {
// 根据打卡人信息获取一月内的打卡情况
@@ -934,7 +954,10 @@ public class DingdingService {
List<Map<String,Object>> adjustLeaves = dingdingDao.getAdjustLeave(memberId,sdf.format(calendar.getTime()),dateStr);
leaveUpdateWorkAttendance(adjustLeaves,memberId);
}
log.info("创建完成!!!创建条数"+members.size());
start = end;
}
log.info("创建完成!!!创建条数"+membernum);
} catch (BusinessException e) {
e.printStackTrace();
return e.toString();
@@ -1034,7 +1057,7 @@ public class DingdingService {
}
// 上班2
if(cowav.getShangbanDate2() == null ){
cowav.setShangban2(cowav.getShangban1());
// cowav.setShangban2(cowav.getShangban1());
// cowav.setShangban2("未打卡");
}else{
log.info(cowav.getShangbanDate2().getTime()>=simpleDateFormat.parse(list.get("startDateStr").toString()).getTime());
@@ -1048,8 +1071,8 @@ public class DingdingService {
}
// 下班2
if(cowav.getXiabanDate2() == null ){
cowav.setXiaban2(cowav.getXiaban1());
// cowav.setXiaban2("未打卡");
// cowav.setXiaban2(cowav.getXiaban1());
//// cowav.setXiaban2("未打卡");
}else{
log.info(cowav.getXiabanDate2().getTime()>=simpleDateFormat.parse(list.get("startDateStr").toString()).getTime());
log.info(cowav.getXiabanDate2().getTime()<=simpleDateFormat.parse(list.get("endDateStr").toString()).getTime());
@@ -1057,8 +1080,8 @@ public class DingdingService {
if(cowav.getXiabanDate2().getTime()>=simpleDateFormat.parse(list.get("startDateStr").toString()).getTime() &&
cowav.getXiabanDate2().getTime()<=simpleDateFormat.parse(list.get("endDateStr").toString()).getTime() &&
cowav.getXiabanDate2() !=null && cowav.getXiaban2().equals("未打卡") ){
cowav.setXiaban2(list.get("type").toString());
}
}cowav.setXiaban2(list.get("type").toString());
}
}
// 状态

View File

@@ -82,7 +82,6 @@ public abstract class FVCommonNode extends ACommonSuperNode {
String s = "";
Map parm = new HashMap();
if("CRM".equals(xttbvalue) || StringUtil.isEmpty(xttbvalue)){
url = configVo.getParamVal(FVConstants.fvOldUrl.name());
// 设置附件路径
JSONArray filePath = fvService.getFilePath(formDataVo,configVo);
// 参数封装
@@ -91,7 +90,6 @@ public abstract class FVCommonNode extends ACommonSuperNode {
String userid = formDataVo.getFieldData("经办人").getStringValue();
s = FanWeiUtil.PostRestful(parm, userid,configVo);
} if ("NCRM".equals(xttbvalue) || StringUtil.isEmpty(xttbvalue)){
url = configVo.getParamVal(FVConstants.fvNewUrl.name());
// 设置附件路径
JSONArray filePath = fvService.getFilePath(formDataVo,configVo);
//封装参数

View File

@@ -1,4 +1,4 @@
package com.seeyon.apps.src_qyba.vo;
package com.seeyon.apps.src_qyba;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -11,6 +11,7 @@ import com.seeyon.apps.ext.workflow.vo.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.src_qyba.constants.FVConstants;
import com.seeyon.apps.src_qyba.service.FVService;
import com.seeyon.apps.src_qyba.service.FVTongyongService;
import com.seeyon.apps.src_qyba.util.FanWeiUtil;
import com.seeyon.cap4.form.bean.FormDataMasterBean;
import com.seeyon.ctp.common.AppContext;
@@ -61,7 +62,7 @@ public abstract class FVTongyongbeianNode extends ACommonSuperNode {
@Override
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
SuperNodeContext context = new SuperNodeContext();
log.info("进入区域备案处理超级节点中");
log.info("进入备案审批结果回传处理超级节点中");
try {
FieldDataVo fhjg = formDataVo.getFieldData("返回结果");
String value = fhjg.getStringValue();
@@ -80,25 +81,13 @@ public abstract class FVTongyongbeianNode extends ACommonSuperNode {
FieldDataVo xttb = formDataVo.getFieldData("系统同步");
String xttbvalue = xttb.getStringValue();
String s = "";
Map parm = new HashMap();
if("CRM".equals(xttbvalue) || StringUtil.isEmpty(xttbvalue)){
url = configVo.getParamVal(FVConstants.fvOldUrl.name());
// 设置附件路径
JSONArray filePath = fvService.getFilePath(formDataVo,configVo);
// 参数封装
parm = FVService.createWF(filePath,formDataVo,configVo);
//调用新建接口
String userid = formDataVo.getFieldData("经办人").getStringValue();
s = FanWeiUtil.PostRestful(parm, userid,configVo);
} if ("NCRM".equals(xttbvalue) || StringUtil.isEmpty(xttbvalue)){
url = configVo.getParamVal(FVConstants.fvNewUrl.name());
// 设置附件路径
JSONArray filePath = fvService.getFilePath(formDataVo,configVo);
// Map parm = new HashMap();
//封装参数
parm = FVService.createNewWF(filePath,formDataVo,configVo);
//调用新建接口
String userid = formDataVo.getFieldData("经办人").getStringValue();
s = FanWeiUtil.NewPostRestful(parm, userid,configVo);
Map parm = FVTongyongService.createWF(formDataVo,configVo);
if("CRM".equals(xttbvalue)){
s = FanWeiUtil.PostSubmitRestful(parm,configVo);
} if ("NCRM".equals(xttbvalue)){
s = FanWeiUtil.NewPostSubmitRestful(parm,configVo);
}
JSONObject returnMsg = JSONObject.parseObject(s);
Object code = returnMsg.get("code");
@@ -113,7 +102,7 @@ public abstract class FVTongyongbeianNode extends ACommonSuperNode {
} else {
// Map data = (Map) returnMsg.get("errMsg");
map.put("code", "300");
map.put("msg", "新建流程失败!"+returnMsg.getString("msg"));
map.put("msg", "新建流程失败!"+returnMsg.getString("errMsg"));
map.put("request", parm.toString());
map.put("response", s);
}

View File

@@ -2,16 +2,17 @@ package com.seeyon.apps.src_qyba.constants;
public enum FVConstants {
plugin("src_qyba","插件ID"),
fvOldUrl("http://10.1.90.21:9083", "旧经销商平台地址"),
fvNewUrl("http://10.1.90.21:9083", "新经销商平台地址"),
// fvOldUrl("http://10.1.90.21:9083", "旧经销商平台地址"),
// fvNewUrl("http://10.1.90.21:9083", "新经销商平台地址"),
workflowId("8521", "workflowId"),
newWorkflowId("2026", "newWorkflowId"),
dowurl("https://oa.dhx.com.cn/seeyon/rest/attachment/file", "dowurl"),
addRess("https://crm.dhx9.com", "addRess"),
newAddRess("http://10.0.6.15:88", "newAddRess"),
newAddRess("https://crm.zwinfor.cn/", "newAddRess"),
spk("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymEn8vp0E8pg6op/WXJ4A67jHAYeUBtut8vJgk09t4Bw3kheWnHUjVHDBEZ8iC/iX9YyBzL76WZR+lpDqdFh2iKYk+yctHKc4dt9r0vw6HYMUWDrYmctdKJtdOGpWxz4apBr7Rc/2A3FDxwsiXzPqpG/GY+/1IHp7E3jEX0nxzuJn/YUm/SoSgfMB4NCHF9n3rrIsp4jJ5SOSwLr68nlwT3djF2f8vQcqRxmT0J7X2xKehlpeiubszQj5TeFcA+onkOBKkoKc+83G8Gg8J1IWZLsd50cjawrmg8lxl+UBEsPZHEh0AhWDHKLRG+9jyZJ94hoWaQRSgwEIdGyShNMnwIDAQAB", "SPK"),
newspk("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvcOew5NM41jK7CFBnirP4Zz0QIexYEweS+4LTuQOVY+BqHu2EMxlPYRsjtvzZj7Pm9SsiNiEIeGXZ3mkAMbNNqu7G7kGb10pJzpBBTE80cRCY0bHoD3PhD8cBiKjpsRXJ+1mPdwD4fGEr0IcG6bKhBM3xsCmc4JiEvsv/+nPm9G7NQgoPGEKHkZk0IgyaBF5m6F2NKah92klxuz+vWCQoVsCpCjHN1sijQioWc6lRLgP7d6IZFEbOrLL7HdlOc8yKOAOZhURd78CqiVYBc1vP0pyC1/UW0Lq0f2MFpg/7Z18VwAf1vFUb+oiIdjFYMr5dgS+i784FaMUDzKUvndDWwIDAQAB", "NEWSPK"),
tongyongApi("/api/workflow/paService/doCreateRequest", "tongyongApi"),
tongyonSubmitgApi("/api/workflow/paService/submitRequest", "tongyonSubmitgApi"),
appId("oa", "appId"),
secret("b44da0ec-6ba5-4d6e-b3d7-e0571b3bcdd6", "secret"),
newSecret("6553bad7-51f0-4d56-af44-3d64a8ce9814", "newSecret"),

View File

@@ -0,0 +1,30 @@
package com.seeyon.apps.src_qyba.node;
import com.seeyon.apps.src_qyba.FVTongyongbeianNode;
/**
* 功能描述:<br>
* <pre>
*
* </pre>
*
* @Author: HuangZhengguo
* @Date: 2024/2/27
*/
public class FVNewStateReturnNode extends FVTongyongbeianNode {
@Override
public String getMethod() {
return "";
}
@Override
public String getNodeId() {
return "fvNewStateReturnNode";
}
@Override
public String getNodeName() {
return "新平台备案状态回传推送BIP";
}
}

View File

@@ -0,0 +1,30 @@
package com.seeyon.apps.src_qyba.node;
import com.seeyon.apps.src_qyba.FVTongyongbeianNode;
/**
* 功能描述:<br>
* <pre>
*
* </pre>
*
* @Author: HuangZhengguo
* @Date: 2024/2/27
*/
public class FVOldStateReturnNode extends FVTongyongbeianNode {
@Override
public String getMethod() {
return "";
}
@Override
public String getNodeId() {
return "fvOldStateReturnNode";
}
@Override
public String getNodeName() {
return "老平台备案状态回传推送BIP";
}
}

View File

@@ -25,6 +25,6 @@ public class FVOldZhengceNode extends FVCommonNode {
@Override
public String getNodeName() {
return "老平台政策推送BIP";
return "P老平台政策推送BI";
}
}

View File

@@ -70,11 +70,6 @@ public class FVService {
public static Map createWF( JSONArray faths, FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException, IOException {
//主表信息
List mainlist = new ArrayList();
//客户名称
// JSONObject mainmap1 = new JSONObject();
// mainmap1.put("fieldName","khmc");//OA字段名-出差类型(下拉框)
// mainmap1.put("fieldValue",formDataVo.getFieldData("客户id").getStringValue());//字段值(下拉框选项值)
// mainlist.add(mainmap1);
//标题
Map mainmap2 = new HashMap();

View File

@@ -0,0 +1,119 @@
package com.seeyon.apps.src_qyba.service;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.seeyon.apps.common.plugin.vo.ConfigVo;
import com.seeyon.apps.daohuaxiangSys.jkts.util.InterfaceListUtil;
import com.seeyon.apps.daohuaxiangSys.jkts.util.PropKit;
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
import com.seeyon.apps.src_qyba.constants.FVConstants;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.SystemEnvironment;
import com.seeyon.ctp.common.filemanager.manager.AttachmentManager;
import com.seeyon.ctp.common.po.filemanager.Attachment;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.util.*;
public class FVTongyongService {
private final static Log log = LogFactory.getLog(FVTongyongService.class);
private AttachmentManager attachmentManager;
public void setAttachmentManager(AttachmentManager attachmentManager) {
this.attachmentManager = attachmentManager;
}
public AttachmentManager getAttachmentManagery() {
if (attachmentManager == null) {
attachmentManager = (AttachmentManager) AppContext.getBean("attachmentManager");
}
return attachmentManager;
}
/**
* 创建流程
*/
public static Map createWF(FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException, IOException {
//主表信息
List mainlist = new ArrayList();
//备案类型
Map mainmap = new HashMap();
mainmap.put("fieldName","bayj");
String type = formDataVo.getFieldData("备案").getStringValue();
if("同意备案".equals(type)){
mainmap.put("fieldValue","0");
}else if ("不同意备案".equals(type)){
mainmap.put("fieldValue","1");
}else if ("满足条件备案".equals(type)){
mainmap.put("fieldValue","2");
}
String sfxwts = formDataVo.getFieldData("是否下委托书").getStringValue();
if("".equals(sfxwts)){
mainmap.put("fieldValue","0");
}else if ("".equals(sfxwts)){
mainmap.put("fieldValue","1");
}
mainlist.add(mainmap);
//接口主参数
Map m = new LinkedHashMap();
//工作流ID
m.put("workflowId", formDataVo.getFieldData("工作流ID").getStringValue());
//流程请求ID
m.put("requestId", formDataVo.getFieldData("流程请求ID").getStringValue());
//流程标题
m.put("requestName",formDataVo.getColSummary().getSubject());
//主表
m.put("mainData", JSONUtil.toJsonStr(mainlist));
log.info(m);
return m;
}
/**
* 创建流程
*/
public static Map createNewWF(FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException, IOException {
//主表信息
List mainlist = new ArrayList();
//流程表单名
Map tableDBName = new HashMap();
tableDBName.put("tableDBName",formDataVo.getFieldData("流程表单名").getStringValue());
mainlist.add(tableDBName);
//备案类型
Map mainmap = new HashMap();
mainmap.put("fieldName","bayj");
String type = formDataVo.getFieldData("备案").getStringValue();
if("同意备案".equals(type)){
mainmap.put("fieldValue","0");
}else if ("不同意备案".equals(type)){
mainmap.put("fieldValue","1");
}else if ("满足条件备案".equals(type)){
mainmap.put("fieldValue","2");
}
mainlist.add(mainmap);
//接口主参数
Map m = new LinkedHashMap();
// JSONObject p = new JSONObject();
//工作流ID
m.put("workflowid", formDataVo.getFieldData("工作流ID").getStringValue());
//流程请求ID
m.put("requestId", formDataVo.getFieldData("流程请求ID").getStringValue());
//流程标题
m.put("requestName",formDataVo.getColSummary().getSubject());
//主表
m.put("mainData",JSONUtil.toJsonStr(mainlist));
log.info(m);
return m;
}
}

View File

@@ -124,7 +124,7 @@ public class FanWeiUtil {
}
/**
* 第三步:
* 第三步:新增
*
* 调用ecology系统的rest接口请求头部带上token和用户标识认证信息
*
@@ -168,29 +168,40 @@ public class FanWeiUtil {
return data;
}
// public static String getAPPID() {
// return APPID;
// }
//
// public static void setAPPID(String APPID) {
// FanWeiUtil.APPID = APPID;
// }
//
// public static String getPrivateKey() {
// return privateKey;
// }
//
// public static void setPrivateKey(String privateKey) {
// FanWeiUtil.privateKey = privateKey;
// }
//
// public static String getPublicKey() {
// return publicKey;
// }
//
// public static void setPublicKey(String publicKey) {
// FanWeiUtil.publicKey = publicKey;
// }
/**
* 第三步:提交
*
* 调用ecology系统的rest接口请求头部带上token和用户标识认证信息
*
* @param params 请求参数map创建流程之类的post接口是以模拟form表单提交的方式其他get接口以json字符串方式提交
*
* 注意ECOLOGY系统所有POST接口调用请求头请设置 "Content-Type","application/x-www-form-urlencoded; charset=utf-8"
*/
public static String PostSubmitRestful(Map params,ConfigVo configVo) throws IOException {
//ECOLOGY返回的token
String token = (String) Getoken(configVo.getParamVal(FVConstants.addRess.name()),configVo).get("token");
//封装请求头参数
RSA rsa = new RSA(null, configVo.getParamVal(FVConstants.spk.name()));
//对用户信息进行加密传输,暂仅支持传输OA用户ID
String encryptUserid = rsa.encryptBase64("1",CharsetUtil.CHARSET_UTF_8,KeyType.PublicKey);
//调用ECOLOGY系统接口
log.info(configVo.getParamVal(FVConstants.addRess.name()));
log.info(configVo.getParamVal(FVConstants.tongyonSubmitgApi.name()));
log.info(configVo.getParamVal(FVConstants.appId.name()));
log.info(encryptUserid);
String data = HttpRequest.post(configVo.getParamVal(FVConstants.addRess.name()) + configVo.getParamVal(FVConstants.tongyonSubmitgApi.name()))
.header("appid",configVo.getParamVal(FVConstants.appId.name()))
.header("token",token)
.header("userid",encryptUserid)
// .header("skipsession", "1")
.form(params)
.execute().body();
log.info("PostRestfulby()"+data);
return data;
}
/**
@@ -200,8 +211,6 @@ public class FanWeiUtil {
*/
public static Map<String,Object> NewGetoken(String address,ConfigVo configVo) throws IOException {
// 从系统缓存或者数据库中获取ECOLOGY系统公钥和Secret信息
// String secret = PropKit.getProp(PropKit.NEWSECRET);
// String spk = PropKit.getProp(PropKit.NEWSPK);
String secret = configVo.getParamVal(FVConstants.newSecret.name());
String spk = configVo.getParamVal(FVConstants.newspk.name());
@@ -212,11 +221,6 @@ public class FanWeiUtil {
String encryptSecret = rsa.encryptBase64(secret, CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);
//调用ECOLOGY系统接口进行注册
// String data = HttpRequest.post(address+ "/api/ec/dev/auth/applytoken")
// .header("appid",PropKit.getProp(PropKit.APPID))
// .header("secret",encryptSecret)
// .header("time","3600")
// .execute().body();
String data = HttpRequest.post(address+ "/api/ec/dev/auth/applytoken")
.header("appid",configVo.getParamVal(FVConstants.appId.name()))
.header("secret",encryptSecret)
@@ -234,7 +238,7 @@ public class FanWeiUtil {
}
/**
* 第三步:
* 第三步:新增
*
* 调用ecology系统的rest接口请求头部带上token和用户标识认证信息
*
@@ -250,40 +254,53 @@ public class FanWeiUtil {
//封装请求头参数
// RSA rsa = new RSA(null, PropKit.getProp(PropKit.NEWSPK));
RSA rsa = new RSA(null, configVo.getParamVal(FVConstants.newspk.name()));
//对用户信息进行加密传输,暂仅支持传输OA用户ID
String encryptUserid = rsa.encryptBase64(userid,CharsetUtil.CHARSET_UTF_8,KeyType.PublicKey);
//调用ECOLOGY系统接口
// String data = HttpRequest.post(PropKit.getProp(PropKit.NEWADDRESS) + PropKit.getProp(PropKit.TONGYONGAPI))
// .header("appid",PropKit.getProp(PropKit.APPID))
// .header("token",token)
// .header("userid",encryptUserid)
// // .header("skipsession", "1")
// .form(params)
// .execute().body();
String data = HttpRequest.post(configVo.getParamVal(FVConstants.newAddRess.name()) + configVo.getParamVal(FVConstants.tongyongApi.name()))
.header("appid",configVo.getParamVal(FVConstants.appId.name()))
.header("token",token)
.header("userid",encryptUserid)
// .header("skipsession", "1")
.form(params)
.execute().body();
// Map headermap = new HashMap();
// headermap.put("appid",APPID);
// headermap.put("token",token);
// headermap.put("userid",encryptUserid);
// String data = HttpClientUtil.doPostFORM(address + api,headermap,params);
log.info("PostRestfulby()"+data);
return data;
}
/**
* 第三步:提交
*
* 调用ecology系统的rest接口请求头部带上token和用户标识认证信息
*
* @param params 请求参数map创建流程之类的post接口是以模拟form表单提交的方式其他get接口以json字符串方式提交
*
* 注意ECOLOGY系统所有POST接口调用请求头请设置 "Content-Type","application/x-www-form-urlencoded; charset=utf-8"
*/
public static String NewPostSubmitRestful(Map params,ConfigVo configVo) throws IOException {
//ECOLOGY返回的token
String token = (String) NewGetoken(configVo.getParamVal(FVConstants.newAddRess.name()),configVo).get("token");
log.info(token);
//封装请求头参数
RSA rsa = new RSA(null, configVo.getParamVal(FVConstants.newspk.name()));
//对用户信息进行加密传输,暂仅支持传输OA用户ID
String encryptUserid = rsa.encryptBase64("1",CharsetUtil.CHARSET_UTF_8,KeyType.PublicKey);
//调用ECOLOGY系统接口
log.info(configVo.getParamVal(FVConstants.newAddRess.name()));
log.info(configVo.getParamVal(FVConstants.tongyonSubmitgApi.name()));
log.info(configVo.getParamVal(FVConstants.appId.name()));
log.info(encryptUserid);
String data = HttpRequest.post(configVo.getParamVal(FVConstants.newAddRess.name()) + configVo.getParamVal(FVConstants.tongyonSubmitgApi.name()))
.header("appid",configVo.getParamVal(FVConstants.appId.name()))
.header("token",token)
.header("userid",encryptUserid)
.form(params)
.execute().body();
log.info("PostRestfulby()"+data);
return data;
}
}