销售管理系统技术介绍

1、技术框架

  struts+appframe+dwr+jquery

2、appframe架构

与crm1的框架中struts+spring+ibatis中的区别,appframe使用的是使用soa的架构模式

bo和set可以自己看文档比较简单

3、service+dao+db的代码

ContractedBlock.gif ExpandedBlockStart.gif EmployeeAction
package com.asiainfo.employee.action;

import com.ai.appframe2.common.SessionManager;
import com.ai.appframe2.service.ServiceFactory;
import com.asiainfo.common.BaseAction;
import com.asiainfo.core.user.UserBean;
import com.asiainfo.employee.bo.bean.AgencyBean;
import com.asiainfo.employee.bo.bean.EmployeeBean;
import com.asiainfo.employee.ivalues.bean.IAgencyValue;
import com.asiainfo.employee.service.interfaces.IEmployeeSV;

public class EmployeeAction extends BaseAction {

private EmployeeBean bean;
private AgencyBean agencyBean;
private long _EmployeeId;
public long get_EmployeeId() {
return _EmployeeId;
}
public void set_EmployeeId(long employeeId) {
_EmployeeId
= employeeId;
}
public String inputEmp()throws Exception{
IEmployeeSV sv
=(IEmployeeSV)ServiceFactory.getService(IEmployeeSV.class);
UserBean user
= (UserBean)SessionManager.getUser();
this.set_EmployeeId(user.getEmployeeId());
bean
=sv.getBean(this.get_EmployeeId());
IEmployeeSV svv
=(IEmployeeSV)ServiceFactory.getService(IEmployeeSV.class);
IAgencyValue[] values
= svv.getAgency(user.getDeptId());
if(values.length>0){
agencyBean
=(AgencyBean)values[0];
}
return "inputEmp";
}
public EmployeeBean getBean() {
return bean;
}
public void setBean(EmployeeBean bean) {
this.bean = bean;
}
public AgencyBean getAgencyBean() {
return agencyBean;
}
public void setAgencyBean(AgencyBean agencyBean) {
this.agencyBean = agencyBean;
}
}
ContractedBlock.gif ExpandedBlockStart.gif IEmployeeDAO
package com.asiainfo.employee.dao.interfaces;

import com.asiainfo.employee.bo.bean.EmployeeBean;
import com.asiainfo.employee.ivalues.bean.IAgencyValue;
import com.asiainfo.employee.ivalues.bean.IEmployeeValue;

public interface IEmployeeDAO {

/**
* 保存
*
@param value
*
@throws Exception
*/
public void save(IEmployeeValue[] value) throws Exception;

/**
* 查询记录
*
@param condition
*
@throws Exception
*/
public IEmployeeValue [] getData(String condition,int startIndex ,int endIndex)throws Exception;


/**
* 获取记录条数
*
@param condition
*
@return
*
@throws Exception
*/
public int getCount(String condition)throws Exception;

/**
* 根据id查询对象
*
@param _EmployeeId
*
@return
*
@throws Exception
*/
public EmployeeBean getBean(long _EmployeeId)throws Exception;

public IAgencyValue[] getAgency(String parm1)throws Exception;

/**
* 用户登录
*
@param logname
*
@param logpwd
*
@return
*
@throws Exception
*/
public EmployeeBean[] login(String logname,String logpwd)throws Exception;
}
ContractedBlock.gif ExpandedBlockStart.gif EmployeeDAOImpl
package com.asiainfo.employee.dao.impl;

import java.util.HashMap;
import java.util.Map;

import com.asiainfo.employee.bo.bean.AgencyEngine;
import com.asiainfo.employee.bo.bean.EmployeeBean;
import com.asiainfo.employee.bo.bean.EmployeeEngine;
import com.asiainfo.employee.dao.interfaces.IEmployeeDAO;
import com.asiainfo.employee.ivalues.bean.IAgencyValue;
import com.asiainfo.employee.ivalues.bean.IEmployeeValue;

public class EmployeeDAOImpl implements IEmployeeDAO{

public int getCount(String condition) throws Exception {
// TODO Auto-generated method stub
return EmployeeEngine.getBeansCount(condition, null);
}

public IEmployeeValue[] getData(String condition, int startIndex, int endIndex) throws Exception {
// TODO Auto-generated method stub
return EmployeeEngine.getBeans(null, condition, null, startIndex, endIndex, false, null);
}

public void save(IEmployeeValue[] values) throws Exception {
for(int i=0;i<values.length;i++){
//如果是新增,则分配一个新的ID
if(values[i].isNew()){
values[i].setEmployeeId(EmployeeEngine.getNewId().longValue());
}
}
EmployeeEngine.save(values);
}

public EmployeeBean getBean(long employeeId) throws Exception {
// TODO Auto-generated method stub
return EmployeeEngine.getBean(employeeId);
}

public IAgencyValue[] getAgency(String parm1) throws Exception {
Map parameter
= new HashMap();
parameter.put(
"param1", parm1);
String soureBO
= "com.asiainfo.employee.bo.bean.Agency";
IAgencyValue[] agencyBeans
= AgencyEngine.getBeansFromQueryBO(soureBO, parameter);
return agencyBeans;
}

public EmployeeBean[] login(String logname, String logpwd) throws Exception {
HashMap parameter
= new HashMap();
parameter.put(
"parm1", logname);
parameter.put(
"parm12",logpwd);
String sql
="select t.* from tab_employee t,tab_employee_pwd tp where t.employee_id=tp.employee_id and t.user_login_name=:parm1 and tp.login_pwd=:parm12";
EmployeeBean[] employeeBeans
= null;
employeeBeans
=EmployeeEngine.getBeansFromSql(sql, parameter);
return employeeBeans;
}

}
ContractedBlock.gif ExpandedBlockStart.gif IEmployeeSV
package com.asiainfo.employee.service.interfaces;

import com.asiainfo.common.QueryResult;
import com.asiainfo.employee.bo.bean.EmployeeBean;
import com.asiainfo.employee.ivalues.bean.IAgencyValue;
import com.asiainfo.employee.ivalues.bean.IEmployeeValue;

public interface IEmployeeSV {

/**
* 保存
*
@param value
*
@throws Exception
*/
public void save(IEmployeeValue[] value) throws Exception;

/**
* 查询记录
*
@param condition
*
@throws Exception
*/
public IEmployeeValue [] getData(String condition,int startIndex ,int endIndex)throws Exception;


/**
* 获取记录条数
*
@param condition
*
@return
*
@throws Exception
*/
public int getCount(String condition)throws Exception;


/**
* 获得分页数据
*
@param condition 查询的条件
*
@param firstindex 第一条记录
*
@param maxresult 每页显示几条记录
*
@return
*
@throws Exception
*/
public QueryResult<IEmployeeValue> getScrollData(String condition, int firstindex, int maxresult)throws Exception;

/**
* 根据id查询对象
*
@param _EmployeeId
*
@return
*
@throws Exception
*/
public EmployeeBean getBean(long _EmployeeId)throws Exception;

/**
* 查末梢所对应的网格经理信息
*
@param parm1
*
@return
*
@throws Exception
*/
public IAgencyValue[] getAgency(String parm1)throws Exception;

/**
* 用户登录
*
@param logname
*
@param logpwd
*
@return
*
@throws Exception
*/
public EmployeeBean[] login(String logname,String logpwd)throws Exception;
}
ContractedBlock.gif ExpandedBlockStart.gif EmployeeSVImpl
package com.asiainfo.employee.service.impl;

import com.ai.appframe2.service.ServiceFactory;
import com.asiainfo.common.QueryResult;
import com.asiainfo.common.StringtoArray;
import com.asiainfo.employee.bo.bean.EmployeeBean;
import com.asiainfo.employee.dao.interfaces.IEmployeeDAO;
import com.asiainfo.employee.ivalues.bean.IAgencyValue;
import com.asiainfo.employee.ivalues.bean.IEmployeeValue;
import com.asiainfo.employee.service.interfaces.IEmployeeSV;

public class EmployeeSVImpl implements IEmployeeSV{

public int getCount(String condition) throws Exception{
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
return dao.getCount(condition);
}

public IEmployeeValue[] getData(String condition, int startIndex, int endIndex) throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
return dao.getData(condition, startIndex, endIndex);
}


public QueryResult<IEmployeeValue> getScrollData(String condition, int firstindex, int maxresult)throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
QueryResult
<IEmployeeValue> qr = new QueryResult<IEmployeeValue>();
qr.setTotalrecord(dao.getCount(condition));
//总页数
qr.setResultlist(new StringtoArray<IEmployeeValue>().StringtoArray(dao.getData(condition, firstindex, maxresult)));//获得结果集
return qr;
}

public void save(IEmployeeValue[] value) throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
dao.save(value);
}

public EmployeeBean getBean(long employeeId) throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
return dao.getBean(employeeId);
}

public IAgencyValue[] getAgency(String parm1) throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
return dao.getAgency(parm1);
}

public EmployeeBean[] login(String logname, String logpwd) throws Exception {
IEmployeeDAO dao
= (IEmployeeDAO)ServiceFactory.getService(IEmployeeDAO.class);
return dao.login(logname, logpwd);
}

}

转载于:https://www.cnblogs.com/tjpfly/archive/2011/09/06/2169010.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
综合运用前面章节相关概念与原理,设计和开发一个企业信息管理系统,通过本实验项目的练习,有助于学生对Spring、MyBatis、Spring MVC技术的了解和认识,提高项目开发实践能力。主要内容为对项目进行需求分析,规划,框架设计,编码,布署,发布等。 基于JAVA EE技术,采用MVC模式开发一个销售管理系统。 某公司销售管理系统 公司销售管理系统主要实现管理与客户之间销售合同的签订、履行、及相关销售数据的统计。 公司与客户之间签订销售合同后,销售管理员会根据客户每次已付款的采购清单以及商品的库存情况生成发货单(为简单起见一张发货单对应一种商品的发货),用于仓库管理员给客户发货。仓库管理员发货后需要对发货单进行确认,并记录相关物流信息。如果一个合同所涉及的所有商品均已发货完毕,则该合同履行完毕。如果商品的库存量不够或发货后库存为0,则生成进货单,用于仓库管理员进货。仓库管理员进货后需要记录进货信息,并修改对应商品的库存。 除了上述功能以外,销售管理员可以对合同基本信息进行管理,包括合同的录入、修改及查询,一个合同在履行前可以修改基本信息,在履行中则不能修改;可以管理客户信息,包括客户信息的新增、修改及查询;可以管理销售人员信息,包括新增、修改及查询。仓库管理员可以对库存商品的基本信息进行管理,包括新增商品,商品信息修改,商品下架以及查询。 查询统计(选做) 销售管理员可以对合同进行多条件查询,以及关联查询(即在查询合同时同时查出客户以及销售人员信息);可以对客户进行多条件查询,以及关联查询(同时查询合同);可以对销售人员进行多条件查询,以及关联查询(同时查询合同);仓库管理员可以对库存商品进行多条件查询;销售管理员可以按客户、销售人员、以及商品种类完成销售情况的统计。
书店销售管理系统涉及到多种技术,下面简单介绍一下相关技术: 1. 数据库技术:书店销售管理系统需要使用数据库管理系统,如MySQL、Oracle、SQL Server等,以便进行数据的存储和管理。数据库技术是系统开发中重要的一部分,能够提高数据的管理和处理效率,保障数据的安全性和稳定性。 2. 编程语言:书店销售管理系统需要使用一种或多种编程语言进行开发。常见的编程语言包括Java、C++、Python等,不同的编程语言有着不同的优缺点,需要根据开发需求进行选择。 3. 网络技术:书店销售管理系统需要建立稳定的网络环境,包括局域网、互联网等,以便进行数据传输和系统管理。网络技术包括TCP/IP协议、HTTP协议、FTP协议等,网络技术的应用能够提高系统的安全性和稳定性。 4. 操作系统:书店销售管理系统可以运行在Windows、Linux、UNIX等主流操作系统上,不同的操作系统有着不同的优缺点,需要根据实际需求进行选择。 5. 前端技术:书店销售管理系统需要一个友好的用户界面,前端技术包括HTML、CSS、JavaScript等,能够提供交互式的用户界面,提高用户体验。 6. 后端技术:书店销售管理系统的后端处理需要使用一些框架和工具,如Spring、Hibernate、MyBatis等,这些框架和工具能够提高开发效率和系统的稳定性。 7. 安全技术:书店销售管理系统需要采取一些安全措施,如密码保护、防病毒软件、防火墙等,保护系统免受黑客攻击和数据泄露等安全风险。 以上是书店销售管理系统相关的技术介绍,这些技术的选择和应用能够提高系统的性能和安全性,提高开发效率,满足用户的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值