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层的分析
我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: ...
随机推荐
- MojoDatabase 源码学习之对象映射
Mojo-database是我个人比较喜欢多开源项目,下文是该项目打介绍和地址: mojo-database 简介: MojoDatabase is an ActiveRecord-like ORM ...
- Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法
在“我的电脑”上单击鼠标右键,选择管理,在管理窗口的左栏中打开“服务和应用程序”,点击“服务”,在右边窗口中双击打开名称为“Smart Card”的服务,“常规”->“启动类型”选为自动,“登录 ...
- Maven详细介绍
Maven 目录 1 什么是Maven? 2 Maven 的好处 3 获取和安装 3.1 获取 3.2 安装 3.2.1 环境变量的配置 4 设置本地仓库 5 创建简单的Maven实例 5.1 使用骨 ...
- mybatis oracle BLOB类型字段保存与读取
一.BLOB字段 BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写.其中BLOB是用 ...
- MongoDB3.0.x版本用户授权配置(单机环境)
MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限:对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制. 单机环境下的用户授权 ...
- POST和GET区别
1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...
- SVN Unable to connect to a repository at UR
背景: 1. SVN服务器:VisualSVN-Server-2.5.5: 2. SVN客户端:TortoiseSVN-1.7.6.22632-x64-svn-1.7. ...
- Codevs 1025 选菜
题目描述 Description 在小松宿舍楼下的不远处,有PK大学最不错的一个食堂--The Farmer's Canteen(NM食堂).由于该食堂的菜都很不错,价格也公道,所以很多人都喜欢来这边 ...
- Redhat Linux 修改主机名(HOSTNAME)
hostname #查看当前主机的主机名hostname NEWHOSTNAME #临时修改当前主机名 修改主机名vi /etc/sysconfig/network #通过配置文件修改主机名NETWO ...
- C语言中内存分配那些事儿
C程序的内存结构 C语言的之所以复杂,首先它的内存模型功不可没.不像某些那样的高级语言只需要在使用对象的时候,用new创建.所有之后的事情,你不需要操心.对于C语言,所有与内存相关的东西,都需要熟悉, ...