我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单。

当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核。

我们在提交这个采购单的时候要做一些检验,确保这个采购单是可以被提交的:

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三层)的更多相关文章

  1. 043医疗项目-模块四:采购单模块—采购单明细查询(Dao,Service,Action三层)

    前一篇文章我们做的是在医院的角度上添加在采购单里面添加药品.这一篇文章是查看我们添加的采购单信息. 我们先看一下要实现的效果:当: 按下确认添加时,会在这里 显示出刚才添加的数据. 好,我们就来做这个 ...

  2. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  3. 048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)

    需求: 我们之前把采购单交给监督单位审核了,审通过的采购单就要受理.供货商决定采购单发不发货. 说明: 我们要查的就是登录的供货商的要提供的采购药品,我们查看的是采购单详细表,至于查询条件我们用的是就 ...

  4. 047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)

    我们之前把采购单都审核了,这篇文章说的就是审核之后提交. 其实就是改变(update)采购单的审核状态. 需求: 用户要先查看采购单的内容. 查看采购单页面:页面布局同采购单修改页面. 选择审核结果. ...

  5. 046医疗项目-模块四:采购单模块—采购单审核(Dao,Service,Action三层)

    当医院把采购单提交之后,由监管单位进行采购单审核,由卫生院及卫生局进行审核.卫生局可以审核所有医院创建的采购单,卫生院只审核本辖区医院创建的采购单. 操作流程: 点击"采购单审核" ...

  6. 010医疗项目-模块一:用户添加的实现(Dao,Service,Action,增加页面调试,提交页面调试)

    要实现的效果:

  7. 模块四-shutil模块

    shutil模块 高级的文件处理模块 主要是文件的处理,移动,压缩和解压缩 shutil模块的使用方法: shutil.copyfile()#拷贝文件 shutil.copy()#拷贝文件和权限 sh ...

  8. 常见模块(四) os模块

    注: os模块是实现python程序对操作系统(operation system)的操作 1.对文件或者目录进行删除或者创建的相关操作 # os.rename("b"," ...

  9. 010商城项目:商品类目的选择——Dao,Service.Action层的分析

    我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: ...

随机推荐

  1. 揣摩实现一个ioc容器需要做的事情

    思路: ioc框架的核心就是管理bean的生命周期,bean的生命周期包括:创建,使用,销毁. 创建 容器在创建一个bean的实例之前必须要解决以下问题:第一个问题: 创建bean的信息如何提供给你容 ...

  2. 每日Scrum(5)

    进入冲刺第五天,软件的界面设计成为主打,收集学校的很多美图是我们组的任务: 问题在于软件已很难有很大的改进,大方向也都是变不了的

  3. Flume应用场景及架构原理

    Flume概念 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. ...

  4. view组件的duplicateParentState属性

    今天做页面的时候遇到一个小问题,在点击的时候改变组件的图片来源,这个很简单大家都知道,用selector可以很快实现.但是现状有点特殊,是 LinearLayout 中包裹着一个 ImageView ...

  5. Parameter 'id' not found. Available parameters are [1, 0, param1, param2]异常

    出现此类异常可能的原因:Mapper.xml文件中的parameterType的类型与传入的参数类型不匹配

  6. 跨应用程序域(AppDomain)的单例(Singleton)实现

    转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...

  7. sqlserver 用 RowNumber 分组

    SELECT RECORD.[RECORD_ID] ,RECORD.[WORKFLOW_INFO_ID] ,RECORD.[FORM_CODE] ,RECORD.[APPLY_DATE] ,RECOR ...

  8. @Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml

    项目中经常会用到配置文件,定义成properties的形式比较常见,为了方便使用一般在spring配置文件中做如下配置: <context:property-placeholder ignore ...

  9. CDN下nginx获取用户真实IP地址

    随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户 ...

  10. 用FineReport做的共建共享填报系统

    一.应用背景 随着信息技术的不断发展,快速开发出适合用户业务需求发展的填报报表是势在必然的,因此在不断的研究和分析下针对这一业务特点制作了此报表系统,以使不同开发商之间共建共享数据进行填报和统计分析的 ...