Commit 773e8844 authored by gaoyingwei's avatar gaoyingwei

update:修改统一用户部分接口以及修改发送协同接口

parent dbf852b4
...@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController { ...@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController {
} }
} }
// 判断是外部调用下单的流程 // 判断是外部调用下单的流程
if("XDLC".equals(ctpTemplate.getTempleteNumber()) && isFinished){ if(("XDLC".equals(ctpTemplate.getTempleteNumber()) || "ECXDLC".equals(ctpTemplate.getTempleteNumber())) && isFinished){
String DIC_DATA_URL = "http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData"; String DIC_DATA_URL = "http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData";
// 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改 // 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改
......
package com.seeyon.ctp.common.sync.manager;
import java.util.Map;
import com.eetrust.eim.plugin.constants.UapuConstants;
import com.eetrust.eim.plugin.pojo.SyncResult;
import com.eetrust.eim.plugin.pojo.uapu.SyncUapuOrg;
import com.eetrust.eim.plugin.pojo.uapu.SyncUapuSimpleUser;
import com.eetrust.eim.plugin.service.AbstractSimpleUapuService;
import com.eetrust.eim.plugin.util.SyncUtil;
import com.eetrust.eim.plugin.util.XmlParser;
public class SyncService extends AbstractSimpleUapuService {
/**
* 添加或修改组织机构
* @param dept
* @return 返回错误信息:null为成功
*/
public SyncResult addOrModUapuOrg(SyncUapuOrg dept) throws Exception {
String uniCode = dept.getSyncUniCode();//组织机构唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_0003");
}
String deptName = dept.getDeptName();//组织机构名称
String deptStatus = dept.getDeptStatus();//组织机构状态:1为启用;2为停用(请根据系统自身情况进行转换)
String parentCode = dept.getParentCode();//组织机构上级部门
String showNum = dept.getShowNum();//组织机构排序号
Map<String, String> otherAttributesMap = dept.getSingleValueMap();//组织机构的其它属性,键为英文名
//String address = otherAttributesMap.get("address"); //如果统一用户管理系统中存在地址字段,且属性名为address,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可。
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_9999", "sql执行过程中出现错误,用户手机号重复");
return null;
}
/**
* 添加或修改用户
*@param user
* @return 返回错误信息:null为成功
*/
public SyncResult addOrModUapuUser(SyncUapuSimpleUser user) throws Exception {
String uniCode = user.getSyncUniCode();//用户唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_0003");
}
String userName = user.getUserName();//用户名称
String loginName = user.getLoginName();//用户帐号
String deptStatus = user.getAccountStatus();//用户状态:1为启用;3为停用(请根据系统自身情况进行转换)
String parentCode = user.getParentCode();//用户所属部门编码(同步来组织机构的uniCode值)
String showNum = user.getShowNum();//用户排序号
Map<String, String> otherAttributesMap = user.getSingleValueMap();//用户的其它属性,键为英文名
//String mobile = otherAttributesMap.get("mobile"); //如果统一用户管理系统中存在手机号字段,且属性名为mobile,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可,代码示例如下:
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_9999", "sql执行过程中出现错误,用户手机号重复");
return null;
}
/**
* 删除组织机构
*@param dept
* @return 返回错误信息:null为成功
*/
public SyncResult delUapuOrg(SyncUapuOrg dept) throws Exception {
String uniCode = dept.getSyncUniCode();//组织机构唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_2_0003");
}
//根据uniCode唯一标识删除组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return null;
}
/**
* 删除用户
*@param user
* @return 返回错误信息:null为成功
*/
public SyncResult delSimpleUapuUser(SyncUapuSimpleUser user)
throws Exception {
String uniCode = user.getSyncUniCode();//用户唯一标识
//需要必填的属性未填写,返回错误
if (uniCode == null || uniCode.trim().equals("")) {
return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_2_0003");
}
//根据uniCode唯一标识删除用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return null;
}
/**
* 判断组织机构是否存在(可不用实现)
*/
public Boolean existUapuOrg(String uniCode) throws Exception {
//唯一标识为传递值,则无需判断是否存在
if (uniCode == null || uniCode.trim().equals("")) {
return null;
}
//根据uniCode唯一标识查询组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,组织机构存在代码示例如下:
//return true;
//组织机构不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return null;
}
/**
* 判断用户是否存在(可不用实现)
*/
public Boolean existUapuUser(String uniCode) throws Exception {
//唯一标识为传递值,则无需判断是否存在
if (uniCode == null || uniCode.trim().equals("")) {
return null;
}
//根据uniCode唯一标识查询用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,如:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,用户存在代码示例如下:
//return true;
//用户不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return null;
}
}
...@@ -51,7 +51,7 @@ public class XmlUtil { ...@@ -51,7 +51,7 @@ public class XmlUtil {
Element changeContent = (Element)syncContent.selectSingleNode("./changeContent"); Element changeContent = (Element)syncContent.selectSingleNode("./changeContent");
syncContentMap.put("changeContent",element2Map(changeContent)); syncContentMap.put("changeContent",element2Map(changeContent));
Element newContent = (Element)syncContent.selectSingleNode("./newContent"); Element newContent = (Element)syncContent.selectSingleNode("./newContent");
syncContentMap.put("newContent ",element2Map(newContent)); syncContentMap.put("newContent",element2Map(newContent));
map.put("syncContent",syncContentMap); map.put("syncContent",syncContentMap);
// 获得当前节点的子节点 // 获得当前节点的子节点
...@@ -72,27 +72,53 @@ public class XmlUtil { ...@@ -72,27 +72,53 @@ public class XmlUtil {
private static Map<String,Object> element2Map( Element element) { private static Map<String,Object> element2Map( Element element) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
Element baseInfo = (Element) element.selectSingleNode("./baseInfo"); Element baseInfo = (Element) element.selectSingleNode("./baseInfo");
List<Element> childElements = baseInfo.elements(); if (baseInfo != null){
if (childElements.size() > 0) { List childElements = baseInfo.elements();
Map<String, Object> tempMap = new HashMap<>(); if (childElements.size() > 0) {
Iterator var33 = childElements.iterator(); Map<String, Object> tempMap = new HashMap<>();
while(var33.hasNext()) { Iterator var33 = childElements.iterator();
Element element1 = (Element)var33.next(); while(var33.hasNext()) {
tempMap.put(element1.getName(),element1.getText()); Element element1 = (Element)var33.next();
tempMap.put(element1.getName(),element1.getText());
}
map.put("baseInfo",tempMap);
} }
map.put("baseInfo",tempMap);
} }
Element parentInfo = (Element) element.selectSingleNode("./parentInfo"); Element parentInfo = (Element) element.selectSingleNode("./parentInfo");
List<Element> childElements1 = parentInfo.elements(); if (parentInfo != null){
if (childElements1.size() > 0) {
Map<String, Object> tempMap = new HashMap<>(); Map<String, Object> tempMap = new HashMap<>();
Iterator var44 = childElements1.iterator(); Element parentCode = (Element) parentInfo.selectSingleNode("./parentCode");
while(var44.hasNext()) { tempMap.put(parentCode.getName(),parentCode.getText());
Element element1 = (Element)var44.next(); // List childElements1 = parentInfo.elements();
tempMap.put(element1.getName(),element1.getText()); // if (childElements1.size() > 0) {
} // Iterator var44 = childElements1.iterator();
// while(var44.hasNext()) {
// Element element1 = (Element)var44.next();
// tempMap.put(element1.getName(),element1.getText());
// }
//
// Element parentCode = (Element) childElements1.get(0).selectSingleNode("./parentInfo");
// tempMap.put("isCorp",syncContent.attributeValue("isCorp"));
// map.put("parentInfo",tempMap);
// }
tempMap.put("isCorp",parentCode.attributeValue("isCorp"));
map.put("parentInfo",tempMap); map.put("parentInfo",tempMap);
} }
return map; return map;
} }
public static String recursionMapToXml(Map<String ,Object> map){
Document document = DocumentHelper.createDocument();
Element root = document.addElement("returnData");
for (String key: map.keySet()) {
String value = map.get(key).toString();
if (value == null) {
value = "";
}
value = value.trim();
Element filed = root.addElement(key);
filed.setText(value);
}
return document.asXML();
}
} }
package com.seeyon.ctp.common.web.filter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.i18n.ResourceUtil;
/**
* Servlet身份校验。
* @author wangwenyou
*
*/
public class ServletAuthenticator extends AbstractAuthenticator {
private static Log LOG = LogFactory.getLog(ServletAuthenticator.class);
@Override
public void afterFailure(HttpServletRequest request, HttpServletResponse response) throws Exception {
String uri = request.getRequestURI().substring(8);
if(uri.endsWith(".psml")) {
// PortalServlet
PrintWriter out = response.getWriter();
out.println("<script type=\"text/javascript\" charset=\"UTF-8\" src=\"" + request.getContextPath()
+ "/common/js/V3X.js\"></script>");
out.println("<script>");
// 刷新空间
out.println("alert(\"" + ResourceUtil.getString("loginUserState.unknown") + "\");");
out.println("if(getA8Top){getA8Top().location.href =\"" + request.getContextPath()
+ "/main.do?method=logout\";}\n");
out.println("</script>");
out.close();
}else {
super.afterFailure(request, response);
}
}
// Servlet列表
private static List<String> servlets = Arrays.asList("getAJAXMessageServlet",
"getAJAXOnlineServlet", "htmlofficeservlet", "isignaturehtmlH5servlet", "isignaturehtmlservlet",
"login/sso", "login/ssologout", "m-signature/", "ofdServlet", "office/cache/", "officeservlet",
"pdfservlet", "sursenServlet", "verifyCodeImage.jpg");
// 可匿名访问的白名单
private static List<String> anonymousWhiteList = Arrays.asList("login/sso","verifyCodeImage.jpg","thirdparyServlet");
@Override
public boolean authenticate(HttpServletRequest request, HttpServletResponse response) throws Exception {
AppContext.initSystemEnvironmentContext(request, response);
if(AppContext.getCurrentUser() != null) {
return true;
}
String uri = request.getRequestURI().substring(8);
for (String string : anonymousWhiteList) {
if (uri.startsWith(string)) {
return true;
}
}
HttpSession session = request.getSession(false);
String sessionId = session!=null ? session.getId() : "";
LOG.warn("servlet " + uri + "'s anonymous access fail:" + sessionId);
return false;
}
public static boolean accept(HttpServletRequest request) {
String uri = request.getRequestURI().substring(8);
if(uri.endsWith(".psml")) {
return true;
}
for (String string : servlets) {
if (uri.startsWith(string)) {
return true;
}
}
return false;
}
}
...@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource { ...@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource {
Map<String , Object> main = isNull(param.get("main")) ? null : (Map<String , Object>)param.get("main") ; //主表数据 Map<String , Object> main = isNull(param.get("main")) ? null : (Map<String , Object>)param.get("main") ; //主表数据
List<Object> sub = isNull(param.get("sub")) ? null : (List<Object>)param.get("sub"); //重复表数据 List<Object> sub = isNull(param.get("sub")) ? null : (List<Object>)param.get("sub"); //重复表数据
if(main != null && !main.isEmpty()) { if(main != null && !main.isEmpty()) {
if (main.get("confidentiality").equals("是")){
main.put("confidentiality",1);
}else {
main.put("confidentiality",0);
}
Map<String, String> yingsheguanxiMap = (Map<String, String>)mped.get("main") ; Map<String, String> yingsheguanxiMap = (Map<String, String>)mped.get("main") ;
Set<String> mainSet = main.keySet() ; Set<String> mainSet = main.keySet() ;
for(String key : mainSet) { for(String key : mainSet) {
...@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource { ...@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource {
return ok(map); return ok(map);
} }
@POST
@Consumes(MediaType.APPLICATION_XML)
@Path("test")
@RestInterfaceAnnotation
public Response getPrintSummary(String xml) throws BusinessException,Exception {
Map<String, Object> map1 = XmlUtil.xml2map(xml);
Map<String, Object> map = new HashMap<String, Object>();
map.put("success", true);
map.put("date", map1);
return ok(map);
}
} }
...@@ -118,4 +118,8 @@ ...@@ -118,4 +118,8 @@
<!-- 协同插件管理器 --> <!-- 协同插件管理器 -->
<bean id="collaborationPluginManager" class="com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"></bean> <bean id="collaborationPluginManager" class="com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"></bean>
<bean id="V3xAccountManager" class="com.seeyon.v3x.services.organization.impl.AccountManagerImpl"></bean>
<bean id="V3xDepartmentManager" class="com.seeyon.v3x.services.organization.impl.DepartmentManagerImpl"></bean>
</beans> </beans>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment