OA系统开始的一些通用模块

1 web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 <!-- 通过上下文参数指定spring配置文件的位置 -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:beans.xml</param-value>
 </context-param>
 
 <!-- 配置spring的上下文载入器监听器 ,项目启动时加载spring -->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 
 <!-- 配置struts2的前端控制器 -->
 <filter>
  <filter-name>struts</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2 struts.xml设置

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>     <constant name="struts.devMode" value="true" />     <!-- 将对象工厂指定为spring -->     <constant name="struts.objectFactory" value="spring"/>     <!-- struts的Action访问后缀 -->     <constant name="struts.action.extension" value="do"/>

    <package name="default" namespace="/" extends="struts-default">      <action name="bookAction" class="bookAction"></action>     </package> </struts>

3beans

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx.xsd">
      
 <!-- 读取属性文件 -->
 <context:property-placeholder location="classpath:jdbc.properties"/>
 
 <!-- 数据源 -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="${driverClass}"></property>
  <property name="jdbcUrl" value="${jdbcUrl}"></property>
  <property name="user" value="${user}"></property>
  <property name="password" value="${password}"></property>
  <property name="initialPoolSize" value="${initialPoolSize}"></property>
  <property name="minPoolSize" value="${minPoolSize}"></property>
  <property name="maxPoolSize" value="${maxPoolSize}"></property>
 </bean>
 
 <!-- 本地会话工厂bean -->
 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <!-- 注入hibernate属性 -->
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
   </props>
  </property>
  <!-- hibernate映射文件的位置 -->
  <property name="mappingDirectoryLocations">
   <list>
    <value>classpath:cn/itcast/oa/domain</value>
   </list>
  </property>
 </bean>
 
 <!-- Hibernate事务管理器 -->
 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory"/>
 </bean>
 
 <!-- 对注解提供支持 -->
 <context:annotation-config/>
 <!-- 组件扫描 -->
 <context:component-scan base-package="cn.itcast.oa"/>
 
 <!-- 注解驱动 -->
 <tx:annotation-driven transaction-manager="txManager"/>
 
</beans>

4 action 层

package cn.itcast.oa.action;

import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.ValueStack;

import cn.itcast.oa.base.BaseAction; import cn.itcast.oa.domain.Book;

@Controller @Scope("prototype")

public class BookAction extends BaseAction<Book>{  public String execute() throws Exception{   

System.out.println(model);     
 bookService.save(model);  

 return NONE;  } }

// @Scope("prototype"): 每次请求都创建一个实例

 

5  action层继承了BaseAction<Book>

 看下 BaseAction<Book>

public class BaseAction<T> extends ActionSupport implements ModelDriven<T>{    @Resource  protected IBookService bookService;    //在构造方法中获得model类型  public BaseAction(){   ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();//父类Action类型   Type[] types = type.getActualTypeArguments();   Class<T> clazz = (Class<T>) types[0];   try {    model = clazz.newInstance();   } catch (InstantiationException e) {    e.printStackTrace();   } catch (IllegalAccessException e) {    e.printStackTrace();   }  }    protected T model;

 public T getModel() {   return model;  } }

6 servic层

package cn.itcast.oa.service;

import java.util.List;

import cn.itcast.oa.domain.Book;

public interface IBookService {

 /**   * 添加   */  public void save(Book book);    /**   * 根据id删除   */  public void delete(Long id);    /**   * 根据id修改   */  public void update(Book book);    /**   * 根据id查询   */  public Book getById(Long id);    /**   * 一次查询多个对象   */  public List<Book> getByIds(Long[] ids);    /**   * 查询所有   */  public List<Book> findAll();

}

7service Impl层

package cn.itcast.oa.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;

import cn.itcast.oa.dao.IBookDao; import cn.itcast.oa.domain.Book; import cn.itcast.oa.service.IBookService; @Service @Transactional public class BookServiceImpl implements IBookService {    @Resource  private IBookDao bookDao;  public void delete(Long id) {   // TODO Auto-generated method stub   bookDao.delete(id);  }

   public List<Book> findAll() {   // TODO Auto-generated method stub   return bookDao.findAll();  }

   public Book getById(Long id) {   // TODO Auto-generated method stub   return bookDao.getById(id);  }

   public List<Book> getByIds(Long[] ids) {   // TODO Auto-generated method stub   return bookDao.getByIds(ids);  }

   public void save(Book book) {   // TODO Auto-generated method stub   bookDao.save(book);  }

   public void update(Book book) {   // TODO Auto-generated method stub   bookDao.update(book);  }

}

8dao 层

package cn.itcast.oa.base;

import java.util.List;

/**  * 通用Dao接口  * @author zhaoqx  *  */ public interface IBaseDao<T> {  /**   * 添加   */  public void save(T entity);    /**   * 根据id删除   */  public void delete(Long id);    /**   * 根据id修改   */  public void update(T entity);    /**   * 根据id查询   */  public T getById(Long id);    /**   * 一次查询多个对象   */  public List<T> getByIds(Long[] ids);    /**   * 查询所有   */  public List<T> findAll(); }

9dao层实现层

package cn.itcast.oa.base;

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate;

import cn.itcast.oa.domain.Book; /**  * 通用Dao实现  * @author zhaoqx  *  * @param <T>  */ @SuppressWarnings("unchecked") public class BaseDaoImpl<T> implements IBaseDao<T> {  @Resource  private SessionFactory sessionFactory;    private Class<T> clazz;    public BaseDaoImpl() {   //获得实体类型   ParameterizedType genericSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass();//获得真正的父类   Type[] types = genericSuperclass.getActualTypeArguments();   clazz = (Class<T>) types[0];  }    public void save(T entity) {   getSession().save(entity);  }    public void delete(Long id) {   getSession().delete(getSession().get(clazz, id));  }    public void update(T entity) {   getSession().update(entity);  }

 public List<T> findAll() {   String hql = "FROM " + clazz.getSimpleName();   return getSession().createQuery(hql).list();  }

 public T getById(Long id) {   return (T) getSession().get(clazz, id);  }    public List<T> getByIds(Long[] ids) {   String hql = "FROM " + clazz.getSimpleName() + " WHERE id in (:ids)";   Query query = getSession().createQuery(hql);   query.setParameterList("ids", ids);//一次赋值多个   return query.list();  }    public Session getSession(){   return sessionFactory.getCurrentSession();  } }

10 book dao

public interface IBookDao extends IBaseDao<Book> {
 
}

11 book dao impl

package cn.itcast.oa.dao.impl;

import org.springframework.stereotype.Repository;

import cn.itcast.oa.base.BaseDaoImpl; import cn.itcast.oa.dao.IBookDao; import cn.itcast.oa.domain.Book; /**  * BookDao锛岀户鎵緽aseDaoImpl  * @author zhaoqx  *  */ @Repository public class BookDaoImpl extends BaseDaoImpl<Book> implements IBookDao {

}

12

package cn.itcast.oa.domain;

public class Book {  private Long id;  private String name;  public Long getId() {   return id;  }  public void setId(Long id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  @Override  public String toString() {   return "Book [id=" + id + ", name=" + name + "]";  }   }

13

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 <class name="cn.itcast.oa.domain.Book" table="itcast_book">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name" length="32"/>
 </class>
</hibernate-mapping>

14 test

package cn.itcast.test;

import java.util.List;

import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.oa.domain.Book; import cn.itcast.oa.service.IBookService;

/**  * 测试basedao  * @author zhaoqx  *  */ public class TestBaseDao {    /**   * 测试findAll操作   */  @Test  public void test6(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      List<Book> list = bookService.findAll();   for(Book book : list){    System.out.println(book);   }  }    /**   * 测试getByIds操作   */  @Test  public void test5(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      Long[] ids = new Long[]{2L,3L,4L};   List<Book> list = bookService.getByIds(ids);   for(Book book : list){    System.out.println(book);   }  }    /**   * 测试getById操作   */  @Test  public void test4(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      Book book = bookService.getById(2L);   System.out.println(book);  }    /**   * 测试update操作   */  @Test  public void test3(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      Book book = new Book();   book.setId(2L);   book.setName("php");      bookService.update(book);  }    /**   * 测试delete操作   */  @Test  public void test2(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      bookService.delete(1L);  }    /**   * 测试save操作   */  @Test  public void test1(){   //初始化spring   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   IBookService bookService = (IBookService) ctx.getBean("bookServiceImpl");      Book book = new Book();   book.setName("c");      bookService.save(book);  } }\

 

转载于:https://www.cnblogs.com/tianluguilai/p/9441633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cOffice通用OA系统源代码 Asp.net通用OA系统源代码,也名飞思协同办公管理系统 除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理和知识管理的思想,更加注重工作任务的分解、协同和监督;知识的积累、沉淀和分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心和配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员和系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日和考勤时间的设置 公司论坛:包括公司公告和各版块BBS;有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计和分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建和管理的流程,需要制定环节和绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码 USB_Key 设置:对硬件加密的设置 对操作的错误日志会自动记录到log文件中 默认管理员帐号/密码:51aspx/51aspx Db_51aspx下面为数据库文件,附加即可 该版本由Asp.net1.1转换而来,菜单采用的是iewebcontrols 主要修正的问题: 1、由Asp.net1.1升级到Asp.net2.0(可以通过Vs2005以上Vs开发工具直接开发使用) 2、修正了一些常见问题的bug(如:对路径“c:\udslog.txt”的访问被拒绝等) 作者:新脉科技
通用OA系统源代码(asp.net)包含完整源代码和数据库,除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理和知识管理的思想,更加注重工作任务的分解、协同和监督;知识的积累、沉淀和分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心和配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员和系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日和考勤时间的设置 公司论坛:包括公司公告和各版块BBS;有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计和分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建和管理的流程,需要制定环节和绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码 USB_Key 设置:对硬件加密的设置.
除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理和知识管理的思想,更加注重工作任务的分解、协同和监督;知识的积累、沉淀和分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心和配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员和系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日和考勤时间的设置 公司论坛:包括公司公告和各版块BBS;有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计和分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建和管理的流程,需要制定环节和绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码
Office通用OA系统源代码 除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理和知识管理的思想,更加注重工作任务的分解、协同和监督;知识的积累、沉淀和分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心和配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员和系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日和考勤时间的设置 公司论坛:包括公司公告和各版块BBS;有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计和分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建和管理的流程,需要制定环节和绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码 USB_Key 设置:对硬件加密的设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值