医药采购之创建采购单基本信息

1      创建采购单基本信息

1.1     需求:

医院创建采购单时,需要先填写采购单基本信息,基本信息填写完成后,再填写采购单明细信息。

内容如下:


采购单基本信息包括:采购年份、采购单名称、建单时间、提交时间、联系人、联系电话、备注、采购单状态。

1.2     实现:

1.2.1     dao

使用逆向工程向采购单基本信息表插入一条记录。

1.2.1.1      采购单编号生成

采购单编号命名规则:4 位年+6位流水号

 

6位流水号:使用oracle序列完成。

 

采购单编号序列按年划分,

序列名:yycgdbm+4位年份

 

Sql:

createsequence YYCGDBM2014

minvalue1

maxvalue999999

startwith101060

incrementby1

cache20;

 

序列由动态表的存储过程自动创建。

 

 

使用序列生成采购单号:

创建一个自定义mapper。

<!-- 采购单号生成  -->

  <select id="getYycgdBm"parameterType="string">

     select '${value}' || yycgdbm${value}.nextvalbm from dual

  </select>

Mapper.java

   // 采购单的编号生成通过oracle数据库的序列生成

   public StringgetYycgdBm(String year) throws Exception;

 

1.2.2     service

 

接口功能:创建采购单

接口参数:医院id、4位年份、采购单信息

接口实现:

向采购单基本信息表插入一条记录

采购单状态默认为“未提交”

调用getYycgdBm 每次插入只调用一次因为每次调用值都会加1

public classCgdServiceImpl implements CgdService {

 

   @Autowired

   private YycgdMapper yycgdMapper;

   @Autowired

   private YycgdMapperCustom yycgdMapperCustom;

   @Autowired

   private SystemConfigService systemConfigService;

   @Autowired

   private UseryyMapper useryyMapper;

   @Autowired

   private YpxxMapper ypxxMapper;

   @Autowired

   private YycgdmxMapper yycgdmxMapper;

 

   // 创建新的采购单

   @Override

   public StringinsertYycgd(String useryyid, String year,

         YycgdCustomyycgdCustom) throwsException {

 

      // yycgdMapperCustom.getYycgdBm(year)每次访问的值都会不一样

      Stringbm = yycgdMapperCustom.getYycgdBm(year);

      // 目的是方便操作采购单

      yycgdCustom.setId(bm);

      // 采购单的编号

      yycgdCustom.setBm(bm);

      // 创建采购单的医院

      yycgdCustom.setUseryyid(useryyid);

      // 创建时间

      yycgdCustom.setCjtime(new Date());

      // 采购单状态默认为未提交

      yycgdCustom.setZt("1");

      // 设置年份,为了操作动态表

      yycgdCustom.setBusinessyear(year);

 

      yycgdMapper.insert(yycgdCustom);

      return bm;

 

   }

1.2.3     action

 

两个方法:

创建采购单页面方法:

  生成采购单名称:医院名称+当前时间+“采购单”

  采购年份:当前年份

 

创建采购单基本信息保存方法:

  创建采购单基本信息成功后,重定向到采购单修改页面(在修改页面可以填写采购单明细信息)。

 

为了调试创建采购单基本信息保存方法,写一个采购单修改页面方法

 

// 创建采购单基本信息页面

   @RequestMapping("/addcgd")

   public Stringaddcgd(HttpSession session, Model model) throws Exception {

      // 获取当前用户

      ActiveUseractiveUser = (ActiveUser) session

            .getAttribute(Config.ACTIVEUSER_KEY);

      Stringsysmc = activeUser.getSysmc();

      // 生成采购单名称:医院名称+当前时间+“采购单

      Stringyycgdmc = sysmc + MyUtil.getDate() + "采购单";

      model.addAttribute("yycgdmc",yycgdmc);

      // 采购年份工具类

      Stringyear = MyUtil.get_YYYY(MyUtil.getDate());

      model.addAttribute("year", year);

 

      return "/business/cgd/addcgd";

   }

 

 

 

   // 创建采购单的基本信息保存方法

   @RequestMapping("/addcgdsubmit")

   public @ResponseBody

   SubmitResultInfoaddcgdsubmit(HttpSession session, String year,

         YycgdQueryVoyycgdQueryVo) throwsException {

      ActiveUseractiveUser = (ActiveUser) session

            .getAttribute(Config.ACTIVEUSER_KEY);

      Stringuseryyid = activeUser.getSysid();

 

      // 从用户中获取单位id

      String yycgdid = cgdService.insertYycgd(useryyid, year,

            yycgdQueryVo.getYycgdCustom());

      ResultInforesultInfo = ResultUtil.createSuccess(Config.MESSAGE, 906,

            null);

      // 获取采购单id,将id通过ResultInfosysdata传到页面

      resultInfo.getSysdata().put("yycgdid",yycgdid);

 

      return ResultUtil.createSubmitResult(resultInfo);

   }

 

   // 采购单修改页面方法

   @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";

   }

 

 

 

1.2.4     action跳转到采购单修改

 

如果采购基本信息保存成功,在页面执行window.location='${baseurl}cgd/editcgd.action?id='+yycgdid;

 

Yycgdid(采购单id),通过采购单基本信息保存结果resultInfo传到页面。

 

在ResultInfo中定义sysdata的map结构,用于action向页面传递业务参数。


 

修改采购单基本信息保存方法:

// 创建采购单的基本信息保存方法

   @RequestMapping("/addcgdsubmit")

   public @ResponseBody

   SubmitResultInfoaddcgdsubmit(HttpSession session, String year,

         YycgdQueryVoyycgdQueryVo) throwsException {

      ActiveUseractiveUser = (ActiveUser) session

            .getAttribute(Config.ACTIVEUSER_KEY);

      Stringuseryyid = activeUser.getSysid();

 

      // 从用户中获取单位id

      String yycgdid = cgdService.insertYycgd(useryyid,year,

            yycgdQueryVo.getYycgdCustom());

      ResultInforesultInfo = ResultUtil.createSuccess(Config.MESSAGE, 906,

            null);

      // 获取采购单id,将id通过ResultInfosysdata传到页面

      resultInfo.getSysdata().put("yycgdid",yycgdid);

 

      return ResultUtil.createSubmitResult(resultInfo);

   }

 

 

修改采购单基本信息保存页面,在添加回调方法中转向采购单修改页面:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值