045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)
我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单。
当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核。
我们在提交这个采购单的时候要做一些检验,确保这个采购单是可以被提交的:
1:采购单必须包括采购药品明细方可提交
2:采购单的采购药品明细信息必须完整(采购量、采购金额必须指定)
3:采购单状态为未提交或审核不通过时方可提交
上面的三条都是在Service层里面做的。
当通过上面的验证之后,我们在数据库中做的工作就是更新采购单表中采购单状态为2:已提交未审核。
DAO层:
根据采购单的id更新采购单表中采购单状态为2
根据采购单id查询出采购药品明细
Service层:
接口功能:采购单提交
接口参数:采购单id
接口实现:
校验:
采购单状态为未提交或审核不通过时方可提交
方法:获取采购单的状态,判断是否是未提交或审核不通过,如果不是则不允许提交
采购单必须包括采购药品明细方可提交
方法:根据采购单id查询出采购药品明细,如果明细为空不允许提交
采购单的采购药品明细信息必须完整(采购量、采购金额必须指定)
方法:根据采购单id查询出采购药品明细,判断明细内容采购量、采购金额是否空
数据库操作:
根据采购单id更新采购单表中采购单状态为2:已提交未审核

我们来看一下Service代码:
@Override
public void saveYycgdSubmitstatus(String yycgdid) throws Exception {
Yycgd yycgd=this.findYycgdById(yycgdid);//通过采购单的id去查找采购单。
if(yycgd==null)//如果没有取到值得话,抛异常
{
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 502, null)); }
String zt=yycgd.getZt();
if(!zt.equals("1")&&!zt.equals("4"))//采购单只允许在未提交或审核不通过的情况下时方可提交
{
// 没有添加采购药品不允许提交
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 502, null));
} List<YycgdmxCustom> yycgdmxList=this.findYycgdmxList(yycgdid, null);
if(yycgdmxList==null||yycgdmxList.size()<0)
{ ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 504, null)); } // 采购单的采购药品明细信息必须完整(采购量、采购金额必须指定)
for (YycgdmxCustom yycgdmxCustom : yycgdmxList) {
Integer cgl = yycgdmxCustom.getCgl();// 采购量
Float cgje = yycgdmxCustom.getCgje();// 采购金额
if (cgl == null || cgje == null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
505, null));
}
}
String businessyear = yycgdid.substring(0, 4);
// 更新采购单状态及提交时间
Yycgd yycgd_update = new Yycgd();
yycgd_update.setId(yycgdid);
// 更新状态
yycgd_update.setZt("2");// 已提交 未审核
// 更新时间
yycgd_update.setTjtime(MyUtil.getNowDate()); yycgd_update.setBusinessyear(businessyear);
yycgdMapper.updateByPrimaryKeySelective(yycgd_update); }
我们再看一下Action代码:
/**
*
* <p>
* Title: submitYycgd
* </p>
* <p>
* Description:提交采购单
* </p>
*
* @param yycgdid
* 采购单id
* @return
* @throws Exception
*/
@RequestMapping("/submitYycgd")
public @ResponseBody
SubmitResultInfo submitYycgd(String id) throws Exception { yycdgService.saveYycgdSubmitstatus(id); return ResultUtil.createSubmitResult(ResultUtil.createSuccess(
Config.MESSAGE, 906, null)); }
最后我们看下页面代码:
//采购单提交
function yycgdsubmit(){
_confirm('提交后采购单将不允许修改,是否继续?',null,
function(){
$("#yycgdsaveForm").attr("action","${baseurl}cgd/submitYycgd.action");
jquerySubByFId('yycgdsaveForm', yycgdsubmit_callback, null);
}
); }
调试:
第一步:

点击上面的采购药品添加:

填写好采购量之后:
点击“保存采购药品信息”。

最后:
点击提交按钮。

自动计算出采购金额。
我们再去查数据库里面采购单明细表里面就有采购单金额数据了。之前是没有的。
到这里就调试完了。
接下来的步骤就是采购单提交之后我们要采购单审核啊,下面的文章就是采购单审核。
045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)的更多相关文章
- 043医疗项目-模块四:采购单模块—采购单明细查询(Dao,Service,Action三层)
前一篇文章我们做的是在医院的角度上添加在采购单里面添加药品.这一篇文章是查看我们添加的采购单信息. 我们先看一下要实现的效果:当: 按下确认添加时,会在这里 显示出刚才添加的数据. 好,我们就来做这个 ...
- 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)
我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...
- 048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)
需求: 我们之前把采购单交给监督单位审核了,审通过的采购单就要受理.供货商决定采购单发不发货. 说明: 我们要查的就是登录的供货商的要提供的采购药品,我们查看的是采购单详细表,至于查询条件我们用的是就 ...
- 047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)
我们之前把采购单都审核了,这篇文章说的就是审核之后提交. 其实就是改变(update)采购单的审核状态. 需求: 用户要先查看采购单的内容. 查看采购单页面:页面布局同采购单修改页面. 选择审核结果. ...
- 046医疗项目-模块四:采购单模块—采购单审核(Dao,Service,Action三层)
当医院把采购单提交之后,由监管单位进行采购单审核,由卫生院及卫生局进行审核.卫生局可以审核所有医院创建的采购单,卫生院只审核本辖区医院创建的采购单. 操作流程: 点击"采购单审核" ...
- 010医疗项目-模块一:用户添加的实现(Dao,Service,Action,增加页面调试,提交页面调试)
要实现的效果:
- 模块四-shutil模块
shutil模块 高级的文件处理模块 主要是文件的处理,移动,压缩和解压缩 shutil模块的使用方法: shutil.copyfile()#拷贝文件 shutil.copy()#拷贝文件和权限 sh ...
- 常见模块(四) os模块
注: os模块是实现python程序对操作系统(operation system)的操作 1.对文件或者目录进行删除或者创建的相关操作 # os.rename("b"," ...
- 010商城项目:商品类目的选择——Dao,Service.Action层的分析
我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: ...
随机推荐
- 【代码笔记】iOS-钢琴小游戏
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> //加入头文件 #import <AudioTool ...
- iOS 杂笔-24(常用类到NSObject的继承列表)
iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...
- 使用PL/SQL编写存储过程访问数据库
一.实验目的 熟悉使用存储过程来进行数据库应用程序的设计. 二.实验内容 对学生-课程数据库,编写存储过程,完成下面功能: 1.统计离散数学的成绩分布情况,即按照各分数段统计人数: 2.统计任意一门课 ...
- 简单的ASP.NET Forms身份认证
读了几篇牛人的此方面的文章,自己也动手做了一下,就想有必要总结一下.当然我的文章质量自然不能与人家相比,只是写给从没有接触过这个知识点的朋友. 网站的身份认证我以前只知道session,偶然发现一些牛 ...
- mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
随着mysql的长期使用,可以修复表来优化,优化时减少磁盘占用空间.方便备份. REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化 ...
- Fourth glance in Go
在Go里面的结构体和方法是很有意思的内容.它即和OO有点像,但又不完全一样.为什么这么说呢?当你把结构体映射为OO里面的类的时候,你给结构体添加方法,你就会发现其实方法与结构体并没有严格意义上的关系. ...
- Sql Server之旅——第十三站 对锁的初步认识
终于这个系列快结束了,马上又要过年了,没什么心情写博客...作为一个开发人员,锁机制也是我们程序员必须掌握的东西,很久之前 在学习锁的时候,都是教科书上怎么说,然后我怎么背,缺少一个工具让我们眼见为实 ...
- mysql set names 命令和 mysql 字符编码问题
先看下面的执行结果: (root@localhost)[(none)]mysql>show variables like 'character%'; +--------------------- ...
- Linux下NDK编译FFMPEG包含neon参数
FFMPEG编译成Android库已经有很多案例了,编译优化neon的也很多,以下是我通过实践成功的案例,这里主要讲编译的配置文件,其他设置可结合Linux下使用NDK编译FFMPEG(libstag ...
- 烂泥:Linux系统与windows系统文件同步
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章中,我们介绍了有关Linux系统之间的文件同步,这篇文章我们来介绍下,有关Linux系统与windows系统,以及windows系统与windo ...