# summer-sample **Repository Path**: a3129933835/summer-sample ## Basic Information - **Project Name**: summer-sample - **Description**: summer使用范例及新人培训计划 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2022-07-23 - **Last Updated**: 2022-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简易进销存开发说明 ## 一、专有名词 ### 帐套 - 帐套是面向企业用的概念 - 帐套(“账套”)是财务上会计核算的概念,这个核算对象可以一个企业的分部,也可以是整个企业。 - 在我们框架的定位中,帐套(也称“公司别”)指的是一个公司在系统中的代码。 - 一个帐套(公司)下有个多个用户(即我们日常所理解的帐号) ### 帐号 - 帐号是面向个人用户用的概念 - 帐号可以绑定手机号、微信、支付宝等,通过与第三方应用帐号绑定以后登录系统 ## 二、搭建环境 ### 1、获取工具 1. 从统一的U盘中获取指定的工具集合 2. 复制到个人电脑目录下,方便管理和查找即可,建议放在磁盘根目录下 3. 然后将拷贝好的文件夹统一拖动到`快速访问`,这样在同事之间相互协助的时候就可以快速定位到文件了 ![1550564869262](assets/1550564869262.png) 4. 目录说明 ``` i-tool,所有工具的总目录。 i-work,所有项目的总目录。 ``` ### 2、安装软件 1. 将 `i-tool`目录下`.exe`全部安装,建议使用软件默认的安装路径 2. 将`.zip`结尾的软件包全部解压到当前的目录下 ![1550565666205](assets/1550565666205.png) ### 3、环境变量 1. 打开我的电脑 –> 属性 ![1550567026484](assets/1550567026484.png) 2. 参考下图打开系统环境变量设置 ![](assets/环境变量.png) 3、参考以下变量进行配置 **注意**:由于每个人的电脑的用户名是不一样的,切不可直接复制下述的实际路径,C盘的实际路径请根据个人的电脑文件配置进行配置。 3-1、新建Java变量 `JAVA_HOME` ``` JAVA_HOME # 请参考你的电脑实际路径 C:\Program Files\Java\jdk1.8.0_201 ``` 3-2、 新建路径变量 `CLASSPATH` ``` CLASSPATH .;%JAVA_HOME%\lib ``` 3-3、设置JVM全局 UTF-8 编码 ``` JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 ``` 3-4、 新建Maven变量 `MAVEN_HOME` ``` MAVEN_HOME # 请参考你的电脑实际路径 C:\Users\l1091\Documents\i-tool\apache-maven-3.6.0 ``` 3-5、 修改系统变量 `Path` **注意**:在原有变量后面追加,不要覆盖其他变量路径 ``` Path ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin ``` `Windows10`操作系统请点击编辑文本 ![1550567930332](assets/1550567930332.png) 移动到`变量值`的行末进行复制 ![1550567991186](assets/1550567991186.png) 4、打开系统控制台检查环境配置是否成功 检查`java`是否安装成功 ``` javac -version ``` ![1550568245385](assets/1550568245385.png)**** 检查`maven`是否安装成功 ``` mvn -v ``` ![1550568264933](assets/1550568264933.png) 如果出现了正确的版本号则说明安装成功了,否则请重新安装。 ### 4、导入项目 2-1、点击`File`菜单,选择`Import`选项 ![](assets/1531065824845.png) 2-2、选择 `Maven` 类型导入 ![](assets/1531065942443.png) 2-3、导入 `i-work`目录下的 `summer-training`项目 ![](assets/导入项目.png) 2-4、等待大约3分钟,根据 `maven` 导入依赖包 ### 5、添加tomcat 3-1、打开eclipse配置窗口 ![](assets/1531061163969.png) 3-2、添加`i-tool`目录下的tomcat容器 请根据`i-tool`目录下的`tomcat`选择引入合适的版本,若版本号不一致,则无法导入。 ![](assets/1531061313876.png) ### 6、运行项目 4-1、启动redis ![1555924689766](assets/1555924689766.png) 4-2、将 `summer-traning` 加入 `tomcat`容器 ![](assets/1531066369028.png) ![](assets/1531060638738.png) 4-2、将 `server.xml`的端口为 `80` ![](assets/1531060785125.png) 4-3、移动到文件底部,将 `summer-training`放置到到根目录 `/` ![](assets/1531060737058.png) 4-4、启动项目 ![](assets/1531060928768.png) 出现以下提示则说明项目运行成功了 ![](assets/1531061009115.png) 打开浏览器输入 `127.0.0.1`,出现以下画面则说明运行成功 ![](assets/1531061054036.png) ### 7、连接Mysql 5-1、打开`Navicat`软件 ![1550570982905](assets/1550570982905.png) 5-2、参考 `application.properties` 下的rds配置,添加到以下窗口 ![1550571437976](assets/1550571437976.png) ## 三、需求说明 ### 1、系统首页 - 能看到每个菜单的连接 - 确保每个连接都是可用 - 将 Session.java 中的帐套 getCorpNo() 改为个人手机号的后6位,帐号 getUserCode() 改为个人手机号码 ### 2、商品资料 #### 2-1 样例数据 | 帐套 | 商品编号 | 品名 | 规格 | 单位 | 库存 | | :----- | -------- | ---- | ----------------- | ---- | ---- | | 911001 | P001 | 电脑 | 电脑,15.6寸-黑色 | 台 | 4 | | 911001 | P002 | 电脑 | 电脑,13.3寸-白色 | 台 | 5 | | 911001 | P003 | 手机 | 小米MIX,5.9寸 | 台 | 6 | | 911001 | P004 | 手机 | iPhoneX,5.5寸 | 台 | 7 | #### 2-2 数据结构 表名 `s_partinfo` | 字段 | 说明 | 备注 | | :------- | -------- | -------------------------- | | corp_no_ | 所属帐套 | 个人手机号码 | | code_ | 商品编号 | | | desc_ | 商品名称 | | | spec_ | 商品规格 | | | unit_ | 商品单位 | | | stock_ | 商品库存 | 通过单据回写,不能直接输入 | | create_user_ | 创建人员 | | | create_time_ | 创建时间 | | | update_user_ | 更新人员 | | | update_time_ | 更新时间 | | |说明||| 1. 个人帐套 + 商品编号是表记录唯一的 2. 每个帐套内的商品是唯一的 3. 不要查询出其他帐套的数据 4. 商品资料建立不能直接设置库存,库存需要通过单据进行修改 ### 3、单据管理 - 订单类别分别有进货单AB,销售单BC,盘点单AE - 每张订单由单头和单身组成,单头head与单身body是一对多的关系,即一张单号对应多个单身商品信息 - 进货单AB增加商品库存 - 销售单BC扣减商品库存 - 盘点单AE将实际库存盘点后覆盖商品账面库存,比账面库存大成为盘赢,少于账面库存成为盘亏 #### 3-1 样例数据 ##### 3-1-1 单头数据 **注意:帐套代码建议是个人的手机号码* | 帐套代码 | 单据类别 | 单据编号 | 单据日期 | 创建人员 | 建档时间 | | -------- | :------: | ----------- | ---------- | -------- | -------- | | 911001 | AB | AB180701001 | 2018-07-01 | 自己姓名 | 当前时间 | | 911001 | AB | AB180701002 | 2018-07-01 | 自己姓名 | 当前时间 | | 911001 | BC | BC180701001 | 2018-07-01 | 自己姓名 | 当前时间 | | 911001 | BC | BC180701004 | 2018-07-01 | 自己姓名 | 当前时间 | ##### 3-1-2 进货/销售单身数据 | 帐套代码 | 单据编号 | 单序 | 商品名称 | 单位 | 数量 | | -------- | ----------- | :--: | ----------------- | ---- | ---- | | 911001 | AB180701001 | 1 | 电脑,15.6寸-黑色 | 台 | 2 | | 911001 | AB180701001 | 2 | 电脑,13.3寸-白色 | 台 | 3 | | 911001 | AB180701001 | 3 | 小米MIX,5.9寸 | 台 | 1 | | 911001 | AB180701001 | 4 | iPhoneX,5.5寸 | 台 | 2 | **说明** 1. 单身商品名称请关联商品基本表获取 2. 单据编号和单序尽量能自动生成 #### 3-2 数据结构 ##### 3-2-1 单头结构 表名 `s_tranh` 逻辑唯一 uk_corp_order,即每个帐套下的订单号都是唯一的 | 字段 | 说明 | 备注 | | :----------- | -------- | ------------ | | corp_no_ | 帐套 | 个人手机号码 | | tb_ | 单别 | AB、BC、AE | | order_sn_ | 单号 | | | order_date_ | 单据日期 | | | create_user_ | 创建人员 | | | create_time_ | 创建时间 | | | update_user_ | 更新人员 | | | update_time_ | 更新时间 | | ##### 3-2-2 单身结构 - 表名 `s_tranb` - 逻辑唯一 uk_corp_order_it ,即 每个帐套的订单 + 单身序是唯一的 - 商品编号 | 字段 | 说明 | 备注 | | :-------- | -------- | -------------------------- | | corp_no_ | 帐套 | 个人手机号码 | | order_sn_ | 单号 | 与s_tranh表的order_sn_关联 | | it_ | 单序 | 单身序号,从1开始累增 | | code_ | 商品编号 | 关联商品基本表 s_partinfo | | num_ | 商品数量 | | | increment_ | 变化增量 | 用于记录num_的变化增量 | | create_user_ | 创建人员 | | | create_time_ | 创建时间 | | | update_user_ | 更新人员 | | | update_time_ | 更新时间 | | ### 4、统计报表 #### 5-1 数据汇总 | 统计日期 | 入库数量 | 出库数量 | | :--------- | ----------------- | ----------------- | | 2018-07-01 | 200(链接到明细) | 100(链接到明细) | | 2018-07-02 | 100 | 20 | #### 5-2 报表明细 | 单据日期 | 单据编号 | 商品名称 | 数量 | | ---------- | ----------- | -------------- | ---- | | 2018-07-01 | AB180701001 | 小米MIX,5.9寸 | 100 | | 2018-07-01 | AB180701002 | iPhoneX,6.1寸 | 100 | 数量合计 200 **说明** 1. 统计报表需要包含汇总数据和明细数据两个页面 2. 点击汇总表的数据能跳转到明细表查看明细数据 3. 细表的数据汇总要与汇总报表的数据一致 ## 四、开发要求 1. 商品信息、单据信息请根据帐套进行区分,即个人手机号码后6位数 2. 增删改查不允许改动其他帐套的数据,即只能查询和变动自己的数据 3. 进货管理和销售管理共用一张表结构,通过单别进行区分 4. 每一张单据都是由单头关联单身进行组成,不允许出现单身无关联的单头信息 5. 点击商品能够跳转到商品详细页面,查看商品数据 6. ***所有页面传值不允许使用uid做参数*** 7. 更多说明文件请访问 `doc`文件夹 ## 五、镜像加速 ### github `https://github.com/cn-cerc/summer-sample.git` ### gitee `https://gitee.com/mimrc/summer-sample.git`