采购单基本信息创建成功,进行采购明细信息创建,明细信息创建页面就是采购单修改页面。
在采购单修改页面,点击“保存”修改采购单信息。
1.2.1 Dao:
根据采购单id查询采购单信息。
将采购单信息保存到采购单基本信息表。
使用逆向工程生成的mapper
1.2.2 Service
接口功能:根据采购单id获取采购单信息
接口参数:采购单id
问题:
根据采购单id无法得到年份,需要向service传入年份(不合理)。
采用方案:
让采购单id中包括年份,让采购单id主键值等于采购单编号。
// 通过id 查询采购单信息
@Override
public YycgdCustomfindYycgdById(String cgdid) throws Exception {
Stringyear = cgdid.substring(0, 4);
YycgdExampleyycgdExample = newYycgdExample();
YycgdExample.Criteriacriteria = yycgdExample.createCriteria();
criteria.andIdEqualTo(cgdid);
// 通过 yycgdExample传入年份
yycgdExample.setBusinessyear(year);
List<Yycgd>list = yycgdMapper.selectByExample(yycgdExample);
Yycgdyycgd = null;
YycgdCustomyycgdCustom = newYycgdCustom();
if (list != null && list.size()== 1) {
yycgd= list.get(0);
// 将yycgd属性值拷贝到yycgdCustom
BeanUtils.copyProperties(yycgd,yycgdCustom);
}else{
// 抛出异常
// 系统中找到该采购单。。。
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 501,
null));
}
Stringzt = yycgd.getZt();
// 根据状态代码查询状态对应的名称
Stringyycgdztmc = systemConfigService
.findDictinfoByDictcode("010", zt).getInfo();
yycgdCustom.setYycgdztmc(yycgdztmc);
return yycgdCustom;
}
接口功能:修改采购单基本信息
接口参数:采购单id、采购单修改
// 修改采购单信息
@Override
public void updateYycgd(String id,YycgdCustom yycgdCustom)
throws Exception {
Stringyear = id.substring(0, 4);
// 获取信息
YycgdCustomyycgdCustom_old = this.findYycgdById(id);
yycgdCustom_old.setLxr(yycgdCustom.getLxr());
yycgdCustom_old.setLxdh(yycgdCustom.getLxdh());
yycgdCustom_old.setMc(yycgdCustom.getMc());
yycgdCustom_old.setBusinessyear(year);
yycgdCustom_old.setBz(yycgdCustom.getBz());
// 更新无论为不为空都更新
yycgdMapper.updateByPrimaryKey(yycgdCustom_old);
}
1.2.3 Action
采购单修改页面方法:
// 采购单修改页面方法
@RequestMapping("/editcgd")
public String editcgd(Modelmodel, String id) throws Exception {
// 采购状态
List<Dictinfo>cgztlist = systemConfigService.findDictinfoByType("011");
List<Dictinfo>jyztlist = systemConfigService.findDictinfoByType("003");
// 药品类别
List<Dictinfo>lblist = systemConfigService.findDictinfoByType("001");
model.addAttribute("lblist",lblist);
model.addAttribute("cgztlist",cgztlist);
model.addAttribute("jyztlist",jyztlist);
// 调用service获取采购单信息
YycgdCustomyycgdCustom = cgdService.findYycgdById(id);
model.addAttribute("yycgd",yycgdCustom);
return "/business/cgd/editcgd";
}
// 采购单修改提交方法
@RequestMapping("/editcgdsubmit")
public @ResponseBody
SubmitResultInfoeditcgdsubmit(String id, YycgdQueryVo yycgdQueryVo)
throws Exception {
cgdService.updateYycgd(id,yycgdQueryVo.getYycgdCustom());
return ResultUtil.createSubmitResult(ResultUtil.createSuccess(
Config.MESSAGE, 906, null));
}
1.2.4 页面
采购单保存js方法:
//采购单保存
function yycgdsave(){
//由form被多个功能公用,每次操作设置form的url
$("#yycgdsaveForm").attr("action","${baseurl}cgd/editcgdsubmit.action");
jquerySubByFId('yycgdsaveForm', yycgdsave_callback, null);
}
function yycgdsave_callback(data) {
var result = getCallbackData(data);
_alert(result);
}
//采购单提交
function yycgdsubmit(){
_confirm('提交后采购单将不允许修改,是否继续?',null,
function(){
$("#yycgdsaveForm").attr("action","${baseurl}cgd/submitYycgd.action");
jquerySubByFId('yycgdsaveForm', yycgdsubmit_callback, null);
}
);
}
//采购单提交回调
function yycgdsubmit_callback(data) {
var result = getCallbackData(data);
_alert(result);
//提交成功再刷新本页面,提交按钮就不显示
if(result.type==TYPE_RESULT_SUCCESS){
//重新再次跳转到修改页面,页面上的提交按钮、添加、删除的控制就不显示了。
window.location="${baseurl}cgd/editcgd.action?id=${yycgd.id}";
}
}
1.2.5 修改页面布局
确定页面布局:
包括两部分:
1、 采购单基本信息部分
表单
提交 按钮(js事件 yycgdsubmit)
保存按钮(js事件yycgdsave )