进销存模块分类
基本模块内容:
组织机构模块:公司,部门,员工
系统模块:角色,权限,菜单,资源,数据字典
基础数据模块:产品,产品类型,供应商(采购),客户(销售)
面试时,如果你说你做的基础模块(技术比较简单,一般会是一个比较了解业务的开发人员)
销售人员(买房)
张三:客户 -> 只能看到你的客户
张无忌: 户 -> 只能看到我的客户
销售部经理:都可以看到
张三丰:可以看到所有用户(看不到名字 张** 与电话135****45456)
项目核心模块:
采购模块:采购订单,采购报表
销售模块:销售订单,销售报表
销售是面向(批发、零售)
销售订单公司销售人员下单,于客户进行沟通
下销售订单:把采购里面的供应商变成客户,把采购员变成销售员,查询库存数量,需要考虑
库存模块:入库单,出库单,报表
进销存业务逻辑:
下单流程:
1.根据需求部门(有采购需求的部门)提出采购申请表:销售部:库存不足,市场部:新产品,人力资源:福利,办公用品
2.采购员找供应商,询问价格,入库时间,保存一张咨询采购表
3.根据采购金额的大小,找中层管理员评审,对供应商咨询采购产品价格列表,中层管理者评审(类似于招标):评审标准:考虑质量、价格、到货时间等
4.进入采购环节:下采购单,采购部经理审核(控制权限),财务部有一个应付款
入库:
期初入库:新上系统,初始数据 excel导入
采购入库:与采购订单是否要建立关联?一般不建立关联,由跟单文员处理是否采购的物品全部入库
额外提供导入采购订单数据功能:先选择采购订单,点击导入按钮,把选中采购订单的数据导入到当前采购入库单,减少输入数据
其他入库(出库):退货、换货、调货(从北京仓库调到上海仓库)
跟单文员:核对单据:采购单,供应商发货单(司机手里单),入库单
同一个商品,同一个仓库 才能确定库存的唯一数据
盘点业务
分为全盘和抽盘
清查当前仓库里面产品的数量是否正确(和即时库存表(账面库存表))
一般25号,一月,一季度,半年:仓库人员(仓管员),财务人员,相关人员,盘赢盘亏,形成一张盘赢盘亏表
Id 仓库id 产品id 盘赢盘亏具体值 状态 盘点时间,人员,亏损总金额
1 1 100 -1 是否处理过了
等待审核,等待经理审核完成之后更新即时库存(账面库存),更新盘赢盘亏表的状态
步骤1.查询出盘赢盘亏表状态==没有处理
步骤2.把盘赢盘亏具体值按照仓库id,产品id(同时唯一)去更新即时库存表
步骤3.更新盘赢盘亏表的状态为已经处理
以上3个步骤都纳入同一个事务管理范围
抽盘
及时库存表
业务要求:同一个仓库里面的产品是唯一的0
入库单审核之后修改入库单的状态,审核人,审核时间,即时库存,仓库.
当我们入库单点击审核按钮之后,会完成哪些业务功能?
产品
18 神舟笔记本 白色
20 神舟笔记本 红色
即时库存表
神舟笔记本(20) 成都仓库 50
神舟笔记本(20) 上海仓库 30
即时库存表
神舟笔记本(20) 80
怎么在即时库存表确定一个商品(至少是同一个商品,同一个仓库)
审核流程
判断入库单是否存在,是否可以审核等
修改状态,审核人,审核时间
在循环外面更新仓库总金额、当前数量
添加或者更新即时库存表
定时器
pom.xml配置文件:导入jar包
依赖配置:
applicationContext.xml
配置文件:
配置文件的内容:
spring关于邮件发送的配置
<?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:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!-- 163邮箱,smtp.163.com -->
<!-- admin@163.com 用户名:admin 密码:xxx -->
<!-- smtp邮件发送协议 -->
<!-- pop3收邮件协议 -->
<property name="host" value="smtp.163.com" />
<property name="username" value="123456" />
<property name="password" value="xxxxxxx" />
<property name="javaMailProperties">
<props>
<!-- 必须进行授权认证,它的目的就是阻止他人任意乱发邮件 -->
<prop key="mail.smtp.auth">true</prop>
<!-- SMTP加密方式:连接到一个TLS保护连接 -->
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
</beans>
简单邮件
public class MailTest extends BaseServiceTest {
@Autowired
MailSender mailSender;
@Test
public void testName() throws Exception {
//JavaMailSenderImpl xxx = (JavaMailSenderImpl)mailSender
// 简单邮件对象
SimpleMailMessage msg = new SimpleMailMessage();
// 发送人:和配置一致
msg.setFrom("admin@163.com");
// 收件人
msg.setTo("xxxx@laomo.com");
// 主题
msg.setSubject("牛皮大学录取通知书");
// 内容
msg.setText("你已经被录取了");
// 设置固定回邮地址
msg.setReplyTo("xxxx@xxx.com");
// 发送
mailSender.send(msg);
}
}
项目中使用到的技术点
Spring+SpringMVC+SpringDataJpa
jQuery+Easyui+Highcharts
shiro+velocicty+EasyPOI+EasyUI
项目开发人数和周期
本项目,有5个人完成,一个美工,一个前端,2个后端,一个测试,项目耗费3个多月,完成了只能销售系统的大多数基本功能,特殊需求需要特定的开发.