采购药品明细保存

来源:互联网 发布:淘宝怎么刷好评步骤 编辑:程序博客网 时间:2024/04/29 01:51

需求

用户将药品添加到采购单中,首先确定药品的采购量。

操作方法:

进入采购单修改页面

输入药品的采购量

点击“保存采购药品信息”

 

 

约束条件:

  指定采购单下的药品设置采购量

  设置采购量必须是大于0的数

1、 采购单未提交或审核不通过方可添加药品

2、 交易价小于等中标价格

 

数据库操作:

更新采购单明细表(Yycgdmx)记录

更新需要的数据:

采购单id、药品信息id

更新内容:中标价格、交易价格、采购量、采购金额

*中标价格 就是当前药品信息的价格

*交易价格:不允许大于中标价格

*采购量:整数

*采购金额:交易价格*采购量

 

dao

根据采购单id和药品id更新采购单明细表中采购量、采购金额

 

使用自定义mapper

 

service

 

接口功能:根据采购单id和药品id更新采购单明细表中采购量、采购金额

接口参数:采购单id、药品id、采购量(将此字段封装到pojo对象中)

 

//修改医药采购单明细采购量信息

   @Override

   publicvoid updateYycgdmx(Stringyycgdid, String ypxxid, Integer cgl)

         throws Exception {

 

      Stringbusinessyear =yycgdid.substring(0, 4);

 

      //根据采购单id和药品id获取采购单明细记录

      Yycgdmxyycgdmx = this.findYycgdmxByYycgdIdAndYpxxId(yycgdid,ypxxid);

      if (yycgdmx ==null) {

 

         ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 501,

                null));

      }

      //校验采购量

      if (cgl ==null || cgl <= 0) {

         ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 561,

                null));

      }

 

      //计算采购金额

      Floatjyjg = yycgdmx.getJyjg();

      //采购金额

      Floatcgje = jyjg * cgl;

 

      //定义一个更新对象

      Yycgdmxyycgdmx_update = newYycgdmx();

      yycgdmx_update.setId(yycgdmx.getId());

      yycgdmx_update.setCgl(cgl);

      yycgdmx_update.setCgje(cgje);

      //设置年份

      yycgdmx_update.setBusinessyear(businessyear);

      yycgdmxMapper.updateByPrimaryKeySelective(yycgdmx_update);

 

   }

 

 

action

批量提交参数:

采购单id:单个(在form中定义hidden)

药品id:多个参数(datagird中定义hidden)

采购量:多个参数(datagird中定义hidden)

 

使用List<YycgdmxCustom> yycgdmxCustoms接收批量参数

 

// 采购单药品保存

   @RequestMapping("/savecgl")

   public@ResponseBody

   SubmitResultInfosavecgl(String id,//采购单id

         YycgdQueryVoyycgdQueryVo, int[]indexs // 页面选择序号

   )throwsException {

 

      //页面提交的业务数据(多个),要处理的业务数据,页面中传入的参数

      List<YycgdmxCustom>list = yycgdQueryVo.getYycgdmxCustoms();

 

      //处理数据的总数

      int count = indexs.length;

      //处理成功的数量

      int count_success = 0;

      //处理失败的数量

      int count_error = 0;

 

      //处理失败的原因

      List<ResultInfo>msgs_error = newArrayList<ResultInfo>();

 

      for (int i = 0; i < count;i++) {

 

         ResultInforesultInfo = null;

 

         // 根据选中行的序号获取要处理的业务数据(单个)

         YycgdmxCustomyycgdmxCustom = list.get(indexs[i]);

         Stringypxxid = yycgdmxCustom.getYpxxid();//药品信息id

         Integercgl = yycgdmxCustom.getCgl();//采购量

 

         try {

            cgdService.updateYycgdmx(id,ypxxid, cgl);

         }catch(Exception e) {

            e.printStackTrace();

 

            // 进行异常解析

            if (einstanceofExceptionResultInfo) {

                resultInfo= ((ExceptionResultInfo) e).getResultInfo();

            }else{

                // 构造未知错误异常

                resultInfo= ResultUtil.createFail(Config.MESSAGE, 900,

                      null);

            }

 

         }

         if (resultInfo ==null) {

            // 说明成功

            count_success++;

         }else{

            count_error++;

            // 记录失败原因

            msgs_error.add(resultInfo);

         }

 

      }


页面


 

0 0
原创粉丝点击