Przeglądaj źródła

联系人修改

HULEI 2 miesięcy temu
rodzic
commit
0e1ffc52f6

BIN
com.awspaas.user.apps.donenow_crm/lib/com.awspaas.user.apps.donenow_crm.jar


+ 108 - 109
com.awspaas.user.apps.donenow_crm/src/com/awspaas/user/apps/donenow_crm/event/ContactFormAfterSaveEvent.java

@@ -1,18 +1,18 @@
-  package com.awspaas.user.apps.donenow_crm.event;
+package com.awspaas.user.apps.donenow_crm.event;
 
-  import com.actionsoft.bpms.bo.engine.BO;
-  import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
-  import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
-  import com.actionsoft.bpms.commons.database.RowMap;
+import com.actionsoft.bpms.bo.engine.BO;
+import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
+import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
+import com.actionsoft.bpms.commons.database.RowMap;
 import com.actionsoft.bpms.org.cache.UserCache;
 import com.actionsoft.bpms.server.UserContext;
-  import com.actionsoft.bpms.util.DBSql;
-  import com.actionsoft.sdk.local.SDK;
-  import com.actionsoft.sdk.local.api.BOQueryAPI;
+import com.actionsoft.bpms.util.DBSql;
+import com.actionsoft.sdk.local.SDK;
+import com.actionsoft.sdk.local.api.BOQueryAPI;
 import com.actionsoft.sdk.service.model.UserModel;
 import com.alibaba.fastjson.JSON;
 import com.alipay.remoting.util.StringUtils;
-  import com.awspaas.user.apps.donenow_crm.constant.CrmConstant;
+import com.awspaas.user.apps.donenow_crm.constant.CrmConstant;
 
 import net.sourceforge.pinyin4j.PinyinHelper;
 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
@@ -21,103 +21,102 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi
 import java.util.List;
 
 
-  public class ContactFormAfterSaveEvent
-		  extends ExecuteListener
-  {
-	  public String getDescription() {
-		  return "表单保存后事件";
-	  }
-
-	  public String getProvider() {
-		  return "上海声联";
-	  }
-
-	  public String getVersion() {
-		  return "1.0";
-	  }
-
-	  public void execute(ProcessExecutionContext process) throws Exception {
-		  UserContext uc = process.getUserContext();
-		  String boName = process.getParameterOfString("$BONAME");
-		  System.out.println("单位boName:" + boName);
-		  BO contactBo = process.getFormData();
-		  saveContactData(uc,contactBo,boName,true);
-
-	  }
-
-	  public String saveContactData(UserContext uc,BO contactBo,String boName,boolean type) {
-		  String roleNO = "roledn_customer";
-		  String deptId = DBSql.getString("SELECT ID FROM ORGDEPARTMENT WHERE EXT1=?", new Object[] { contactBo.getString("ACCOUNT_ID")});
-
-		  if (contactBo != null&&CrmConstant.BO_EU_DNCRM_CONTACT.equals(boName)&&StringUtils.isNotBlank(deptId)) {
-			  String roleId = DBSql.getString("SELECT ID from orgrole where roleno='"+roleNO+"'");
-			  if (StringUtils.isBlank(roleId)) {
-				  System.out.println("roleModel为空:");
-				  return "";
-			  }
-			  RowMap map = DBSql.getMap("SELECT * FROM ORGUSER WHERE EXT5=? or (USERNAME=? AND MOBILE=?)", new Object[] { contactBo.getId(),contactBo.get("NAME"),contactBo.get("MOBILE_PHONE") });
-			  System.out.println("userMap:" +JSON.toJSONString(map));
-			  System.out.println("userMap:" + (map == null));
-
-			  //用户表中是否已经存在该人
-			  if (map != null) {
-				  System.out.println("用户更新:");
-				  //说明联系人姓名没有修改过
-				  if(contactBo.getString("NAME").equals(map.getString("USERNAME"))) {
-					  SDK.getORGAPI().updateUser(map.getString("USERID"), contactBo.getString("NAME"), "", contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
-				  }
-				  //联系人姓名修改过了,要修改USERID
-				  else {
-					  String userId=getPinYinUserId(contactBo.getString("NAME"));
-					  DBSql.update("UPDATE ORGUSER SET USERID='"+userId+"' WHERE EXT5='"+contactBo.getId()+"'");
-					  UserCache.getCache().reload();
-					  SDK.getORGAPI().updateUser(userId, contactBo.getString("NAME"), "", contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
-					  contactBo.set("USERID", userId);
-					  SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_CONTACT, contactBo);
-				  }
-
-			  } else {
-				  System.out.println("用户新增");
-				  String pinYinUserId = getPinYinUserId(contactBo.getString("NAME"));
-				  SDK.getORGAPI().createUser(deptId, pinYinUserId, contactBo.getString("NAME"), roleId, "", "", false, contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
-				  contactBo.set("USERID", pinYinUserId);
-				  SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_CONTACT, contactBo);
-			  }
-
-		  }
-		  //主联系人保存需要往客户表同步联系人数据
-		  if(type&&"1".equals(contactBo.getString("IS_PRIMARY_CONTACT"))) {
-			  BO accoutnBo = SDK.getBOAPI().query(CrmConstant.BO_EU_DNCRM_ACCOUNT).detailById(contactBo.getString("ACCOUNT_ID"));
-			  if(null!=accoutnBo) {
-				  accoutnBo.set("CONTACT_NAME", contactBo.get("NAME"));
-				  accoutnBo.set("CONTACT_SUFFIX_ID", contactBo.get("SUFFIX_ID"));
-				  accoutnBo.set("CONTACT_TITLE", contactBo.get("TITLE"));
-				  accoutnBo.set("CONTACT_EMAIL", contactBo.get("EMAIL"));
-				  accoutnBo.set("PHONE", contactBo.get("MOBILE_PHONE"));
-				  accoutnBo.set("ALTERNATE_PHONE1", contactBo.get("PHONE"));
-				  SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_ACCOUNT, accoutnBo);
-			  }
-		  }
-		  return "";
-	  }
-	  public String getPinYinUserId(String userName) {
-
-		  HanyuPinyinOutputFormat hanyuPinyinOutputFormat=new HanyuPinyinOutputFormat();
-		  String  tempStr=StringUtils.EMPTY;
-		  try {
-			  tempStr =  PinyinHelper.toHanyuPinyinString(userName, hanyuPinyinOutputFormat, "").replaceAll("\\d+", "");
-		  } catch (BadHanyuPinyinOutputFormatCombination e) {
-			  // TODO Auto-generated catch block
-			  e.printStackTrace();
-		  }
-		  Integer count = DBSql.getInt("SELECT COUNT(1) FROM ORGUSER WHERE USERID LIKE CONCAT(?,'%')", new Object[] {tempStr});
-		  if(count>0) {
-			  return tempStr+(count+1);
-		  }else {
-			  return tempStr;
-		  }
-
-	  }
-
-  }
-
+public class ContactFormAfterSaveEvent
+		extends ExecuteListener
+{
+	public String getDescription() {
+		return "表单保存后事件";
+	}
+
+	public String getProvider() {
+		return "上海声联";
+	}
+
+	public String getVersion() {
+		return "1.0";
+	}
+
+	public void execute(ProcessExecutionContext process) throws Exception {
+		UserContext uc = process.getUserContext();
+		String boName = process.getParameterOfString("$BONAME");
+		System.out.println("单位boName:" + boName);
+		BO contactBo = process.getFormData();
+		saveContactData(uc,contactBo,boName,true);
+
+	}
+
+	public String saveContactData(UserContext uc,BO contactBo,String boName,boolean type) {
+		String roleNO = "roledn_customer";
+		String deptId = DBSql.getString("SELECT ID FROM ORGDEPARTMENT WHERE EXT1=?", new Object[] { contactBo.getString("ACCOUNT_ID")});
+
+		if (contactBo != null&&CrmConstant.BO_EU_DNCRM_CONTACT.equals(boName)&&StringUtils.isNotBlank(deptId)) {
+			String roleId = DBSql.getString("SELECT ID from orgrole where roleno='"+roleNO+"'");
+			if (StringUtils.isBlank(roleId)) {
+				System.out.println("roleModel为空:");
+				return "";
+			}
+			RowMap map = DBSql.getMap("SELECT * FROM ORGUSER WHERE EXT5=? or (USERNAME=? AND MOBILE=?)", new Object[] { contactBo.getId(),contactBo.get("NAME"),contactBo.get("MOBILE_PHONE") });
+			System.out.println("userMap:" +JSON.toJSONString(map));
+			System.out.println("userMap:" + (map == null));
+
+			//用户表中是否已经存在该人
+			if (map != null) {
+				System.out.println("用户更新:");
+				//说明联系人姓名没有修改过
+				if(contactBo.getString("NAME").equals(map.getString("USERNAME"))) {
+					SDK.getORGAPI().updateUser(map.getString("USERID"), contactBo.getString("NAME"), "", contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
+				}
+				//联系人姓名修改过了,要修改USERID
+				else {
+					String userId=getPinYinUserId(contactBo.getString("NAME"));
+					DBSql.update("UPDATE ORGUSER SET USERID='"+userId+"' WHERE EXT5='"+contactBo.getId()+"'");
+					UserCache.getCache().reload();
+					SDK.getORGAPI().updateUser(userId, contactBo.getString("NAME"), "", contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
+					contactBo.set("USERID", userId);
+					SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_CONTACT, contactBo);
+				}
+
+			} else {
+				System.out.println("用户新增");
+				String pinYinUserId = getPinYinUserId(contactBo.getString("NAME"));
+				SDK.getORGAPI().createUser(deptId, pinYinUserId, contactBo.getString("NAME"), roleId, "", "", false, contactBo.getString("EMAIL"), contactBo.getString("MOBILE_PHONE"), "", "", "", "", contactBo.getId());
+				contactBo.set("USERID", pinYinUserId);
+				SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_CONTACT, contactBo);
+			}
+
+		}
+		//主联系人保存需要往客户表同步联系人数据
+		if(type&&"1".equals(contactBo.getString("IS_PRIMARY_CONTACT"))) {
+			BO accoutnBo = SDK.getBOAPI().query(CrmConstant.BO_EU_DNCRM_ACCOUNT).detailById(contactBo.getString("ACCOUNT_ID"));
+			if(null!=accoutnBo) {
+				accoutnBo.set("CONTACT_NAME", contactBo.get("NAME"));
+				accoutnBo.set("CONTACT_SUFFIX_ID", contactBo.get("SUFFIX_ID"));
+				accoutnBo.set("CONTACT_TITLE", contactBo.get("TITLE"));
+				accoutnBo.set("CONTACT_EMAIL", contactBo.get("EMAIL"));
+				accoutnBo.set("PHONE", contactBo.get("MOBILE_PHONE"));
+				accoutnBo.set("ALTERNATE_PHONE1", contactBo.get("PHONE"));
+				SDK.getBOAPI().update(CrmConstant.BO_EU_DNCRM_ACCOUNT, accoutnBo);
+			}
+		}
+		return "";
+	}
+	public String getPinYinUserId(String userName) {
+
+		HanyuPinyinOutputFormat hanyuPinyinOutputFormat=new HanyuPinyinOutputFormat();
+		String  tempStr="c-";
+		try {
+			tempStr +=  PinyinHelper.toHanyuPinyinString(userName, hanyuPinyinOutputFormat, "").replaceAll("\\d+", "");
+		} catch (BadHanyuPinyinOutputFormatCombination e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		Integer count = DBSql.getInt("SELECT COUNT(1) FROM ORGUSER WHERE USERID LIKE CONCAT(?,'%')", new Object[] {tempStr});
+		if(count>0) {
+			return tempStr+(count+1);
+		}else {
+			return tempStr;
+		}
+
+	}
+
+}