047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)
我们之前把采购单都审核了,这篇文章说的就是审核之后提交。
其实就是改变(update)采购单的审核状态。
需求:
用户要先查看采购单的内容。
查看采购单页面:页面布局同采购单修改页面。
选择审核结果、填写 审核意见进行提交 。
约束条件:
采购单状态为审核中方可提交审核。
审核结果(审核通过、审核不通过)必须选择。
审核意见是否必填根据用户需求来定,本系统采用不必填 。
数据库操作:
更新采购单状态为审核通过或审核不通过.
DAo层:
使用逆向工程生成的Mapper:
yycgdMapper.updateByPrimaryKeySelective(yycgd_update);
Service层:
@Override
public void saveYycgdCheckStatus(String yycgdid, YycgdCustom yycgdCustom) throws Exception { //对采购单做校验
Yycgd yycgd=this.findYycgdById(yycgdid);
//如果根本就没有这个采购单的话:
if(yycgd==null)
{ ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 514, null)); }
String zt=yycgd.getZt();//得到采购单的状态
if(!zt.equals("2"))//如果采购单的采购状态不是在审核中这个状态的话
{ ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 514, null));
}
//审核的结果必须要选择,不然不能提交
if(yycgdCustom==null||yycgdCustom.getZt()==null||(!yycgdCustom.getZt().equals("3")&&yycgdCustom.getZt().equals("4")))
{ ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 514, null)); }
String bussinessyear=yycgdid.substring(0,4);
Yycgd yycgd_updata=new Yycgd();
yycgd_updata.setId(yycgdid); //更新状态
yycgd_updata.setZt(yycgdCustom.getZt());
//更新审核时间
yycgd_updata.setShtime(new Date());
yycgd_updata.setBusinessyear(bussinessyear);
yycgdMapper.updateByPrimaryKeySelective(yycgd_updata);//更新 }
Action层;
// 采购单审核提交
@RequestMapping("/checkcgdsubmit")
public @ResponseBody
SubmitResultInfo checkcgdsubmit(YycgdQueryVo yycgdQueryVo, int[] indexs // 页面选择序号
) throws Exception { // 页面提交的业务数据(多个),要处理的业务数据,页面中传入的参数
List<YycgdCustom> list = yycgdQueryVo.getYycgdCustoms(); // 处理数据的总数
int count = indexs.length;
// 处理成功的数量
int count_success = 0;
// 处理失败的数量
int count_error = 0; // 处理失败的原因
List<ResultInfo> msgs_error = new ArrayList<ResultInfo>(); for (int i = 0; i < count; i++) { ResultInfo resultInfo = null; // 根据选中行的序号获取要处理的业务数据(单个)
YycgdCustom yycgdCustom = list.get(indexs[i]);
// 采购单id
String yycgdid = yycgdCustom.getId(); try {
yycdgService.saveYycgdCheckStatus(yycgdid, yycgdCustom);
} catch (Exception e) {
e.printStackTrace(); // 进行异常解析
if (e instanceof ExceptionResultInfo) {
resultInfo = ((ExceptionResultInfo) e).getResultInfo();
} else {
// 构造未知错误异常
resultInfo = ResultUtil.createFail(Config.MESSAGE, 900,
null);
} }
if (resultInfo == null) {
// 说明成功
count_success++;
} else {
count_error++;
// 记录失败原因
msgs_error.add(resultInfo);
} } // 提示用户成功数量、失败数量、失败原因
// 改成返回详细信息
return ResultUtil.createSubmitResult(
ResultUtil.createSuccess(Config.MESSAGE, 907, new Object[] {
count_success, count_error }), msgs_error);
} // 采购单受理页面
@RequestMapping("/disposeyycgd")
public String disposeyycgd(Model model) throws Exception { // 当前年份
model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate())); return "/business/cgd/disposeyycgd";
}
页面:
{"icon" : "icon-log","menuid" : "1_1","menuname" : "采购单审核","url" : "/yycgproject/cgd/checkyycgdlist.action"
},
调试通过!!!
047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)的更多相关文章
- 046医疗项目-模块四:采购单模块—采购单审核(Dao,Service,Action三层)
当医院把采购单提交之后,由监管单位进行采购单审核,由卫生院及卫生局进行审核.卫生局可以审核所有医院创建的采购单,卫生院只审核本辖区医院创建的采购单. 操作流程: 点击"采购单审核" ...
- 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)
我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...
- 048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)
需求: 我们之前把采购单交给监督单位审核了,审通过的采购单就要受理.供货商决定采购单发不发货. 说明: 我们要查的就是登录的供货商的要提供的采购药品,我们查看的是采购单详细表,至于查询条件我们用的是就 ...
- 045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)
我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单. 当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核. 我们在提交这个采购单 ...
- 043医疗项目-模块四:采购单模块—采购单明细查询(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.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additi ...
- OC中的Block的那些事
Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值. 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动 ...
- KVC与KVO的实现原理
|KVC的用法 1.KVC既键值编码(Key Value Coding),基于NSKeyValueCoding协议,它是以字符串的形式来操作对象的成员变量,也就是通过字符串key来指定要操作的成员变量 ...
- HTML5设计网页动态条幅广告(Banner) 已经加上完整源代码
横幅广告(Banner): 1.横幅广告是网络广告的常见形式,一般位于网页的醒目位置上:当用户单击这些横幅广告时,通常可以链接到相应的广告页面: 2.设计横幅广告时,要力求简单明了,能够体现出主要的中 ...
- .NET(C#):await返回Task的async方法
众所周知,async方法只可以返回void,Task和Task<T>. 对于返回void的async方法,它并不是awaitable,所以其他方法不能用await方法来调用它,而返回Tas ...
- HTML基础(五)——-css样式表——样式属性——格式与布局
一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. 示例: 二.position:absolute 绝对位置: 1.外层没有position:a ...
- 设计模式C#实现(十一)——组合模式
意图 0 适用性 1 结构 2 实现 3 效果 4 意图 将对象组合成树形结构以表示“部分-整体”的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 适用性 你想表示对象的部 ...
- [转载] Linux启动过程详解-《别怕Linux编程》之八
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket.为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. = ...
- MAC OSX通过Terminal命令行控制蓝牙状态开关
defaults write /Library/Preferences/com.apple.Bluetooth.plist ControllerPowerState 0 #关闭蓝牙服务 default ...
- 小菜学Chromium之OpenGL学习之二
在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 在CodeBlock里创建一个新的GLUT ...