医药采购系统平台第7天02:创建采购单的基本信息&使用Oracle序列动态的生成采购单编号&采购单基本信息的修改和提交实现

如果想要获取相关的源码,笔记,和相关工具,对项目需求的二次开发,可以关注我并私信!!!


四 创建采购单的基本信息

1 需求

参考“采购单模块的操作流程”一节中的需求

医院创建采购单时,需要先填写采购单基本信息,基本信息填写完成后,再填写采购单明细信息。

页面的内容如下:

采购单基本信息包括:采购年份、采购单名称、建单时间、提交时间、联系人、联系电话、备注、采购单状态。

2 dao

使用逆向工程向采购单基本信息动态中(表名例如:YYCGD2018插入一条记录。(在上面的“分表存储”一节中已经指定了动态表的生成规则!)

注意:在采购单基本信息动态表中有一个采购单编号bm字段:该字段的生成使用的是oracle的序列来动态的生成其采购单编号bm字段的

下面的2.1、2.2中的内容,都是针对动态生成序列的采购单编号类这一问题来开展的!!

2.1 使用Oracle序列动态的生成采购单编号bm

既然采购单基本信息表和采购单详细信息表都是使用oracle动态生成的,那么采购单编号bm字段的生成也应该是由oracle动态的来生成!原因是为了在对采购单进行维护操作时方便获得所在的年份信息!(为何方便还是慢慢往下看吧)

我们规定:本系统中的采购单编号bm字段和采购单id字段都采用相同的命名规则:按年划分4年份+6位流水号这点与动态表的命名规则相同(见上)

其中,6流水号的生成是使用oracle序列来生成的

而采购单id字段之所以也采用该命名规则的理由可以参考“采购单基本信息的修改”一节中的内容!

当然,,下面的序列都是已经提前生成好了创建序列sql语句是生成动态表的存储过程自动创建

在“本系统的分表规则”一节中有提到过该存储过程,而存储过程的创建和调用参考:“医药采购系统问题总汇”中的“动态表如何创建”一节中的内容!

oracle中提前生成的序列如图

其中,YYCGDBM序列对应模板表YYCGD,而YYCGDBM2014序列对应于动态表YYCGD2014!!当然,动态表的后4位年份是不断变化的。

定义序列的sql语句可以通过sql/plus中的“显示SQL”按钮来显示其sql语句:

start with 100040表示开始,maxvalue表最大是999999,都是6位的数字!

2.2 创建采购单编号bm的自定义mapper接口和mapper映射文件

我们要做的只是创建一个自定义的生成采购单编号的mpper.xml映射文件,及其自定义的生成采购单编号的mapper接口:

YycgdMapperCustom.xml中的自定义的生成采购单编号的映射文件所在目录如下:

最终,映射文件中的内容如下:

上面的sql语句中必须使用${value},其中变量value表示年份,而且必须使用value来表示,因为aprameterType输入参数传入的是简单类型。

至于文件中为什么要使用$符号以及value可以参考“Mybatis相关文档中的#和$符号的区别”!

然后,可以通过下面定义的YycgdMapperCustom.java接口中定义的year参数来接收!!!

YycgdMapperCustom.java接口中自定义的生成采购单编号的代码如下:

2.3 创建扩展类和包装类

扩展类源码

包装类源码:

3 service

接口功能:向采购单基本信息动态表yycgd表插入一条

接口参数:至于传入什么参数,要以yycgd表中的非空字段来作为参考!如下参数:

(1)useryyid:表示医院id.

(2)year:表示4位年份.

(3)yycgdCustom:表示采购单信息。

(4)建单时间CJTIME字段,使用系统默认的时间!

(5)设置采购单状态zt字段默认为1:“未提交”.

接口的实现类:向采购单基本信息动态表yycgd表插入一条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

elastic_solr

可以对需求进行二次开发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值