采购单审核

采购单审核_第1张图片
约束:
卫生院只审核只乡/镇的卫生室下的采购单
卫生局审核全市卫生室下的采购单

采用批量提交方法:
提交数据包括:yycgdid(采购单id)、审核结果 、审核意见
将页面提交数据传入action的:List yycgds中。

数据库操作:
更新采购单表yycgd{year}的状态为(3:审核通过、或4:审核不通过)及审核意见
采购单审核_第2张图片
Mapper
先查询出监督单位监管的地区。然后通过监督单位的地区和采购单状态字段去查询采购单。

select useryy.mc useryymc, yycgd.*, (select info from dictinfo where typecode='010' and dictcode=yycgd.zt)yycgdztmc from yycgd2015 yycgd,useryy where yycgd.useryyid = useryy.id and yycgd.zt='2' and useryy.dq like '%1.6.%'

采购单审核_第3张图片

Dao

<!-- 采购单查询列表 -->
    <select id="findYycgdList" parameterType="yycg.business.pojo.vo.YycgdQueryVo" resultType="yycg.business.pojo.vo.YycgdCustom">
        <!-- 分页头 -->
        <include refid="yycg.base.commonSql.page_start" />

        select
        useryy.mc useryymc,
        yycgd.*,
        (select info from dictinfo where typecode='010' and
        dictcode=yycgd.zt)yycgdztmc
        from yycgd${businessyear} yycgd,useryy where yycgd.useryyid = useryy.id

        <!-- 采购单本身查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 医院查询条件 -->
        <include refid="yycg.base.dao.mapper.SysuserMapperCustom.query_useryy_where" />

        order by yycgd.id desc


        <!-- 分页尾部 -->
        <include refid="yycg.base.commonSql.page_end" />
    </select>

    <select id="findYycgdCount" parameterType="yycg.business.pojo.vo.YycgdQueryVo" resultType="int">

        select
        count(*)
        from yycgd${businessyear} yycgd,useryy where yycgd.useryyid = useryy.id

        <!-- 采购单本身查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 医院查询条件 -->
        <include refid="yycg.base.dao.mapper.SysuserMapperCustom.query_useryy_where" />

    </select>

Service

    // 采购单审核数据
    // 采购单审核
    @Override
    public List<YycgdCustom> findCheckYycgdList(String year, String userjdid,
            YycgdQueryVo yycgdQueryVo) throws Exception {
        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 采购单状态
        String zt = "2";// 审核中

        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        if (yycgdCustom == null) {
            yycgdCustom = new YycgdCustom();
        }
        yycgdCustom.setZt(zt);
        yycgdQueryVo.setYycgdCustom(yycgdCustom);
        // 监管单位管理地区
        // 根据监管单位id查询监管单位
        Userjd userjd = userjdMapper.selectByPrimaryKey(userjdid);
        // 管理地区
        String dq = userjd.getDq();

        Useryy useryy = yycgdQueryVo.getUseryy();
        useryy = useryy != null ? useryy : new Useryy();
        // 设置查询条件管理地区
        useryy.setDq(dq);

        yycgdQueryVo.setUseryy(useryy);
        // 设置年份
        yycgdQueryVo.setBusinessyear(year);
        return yycgdMapperCustom.findYycgdList(yycgdQueryVo);
    }

    // 采购单审核数据条数
    @Override
    public int findCheckYycgdCount(String year, String userjdid,
            YycgdQueryVo yycgdQueryVo) throws Exception {
        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 采购单状态
        String zt = "2";// 审核中

        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        if (yycgdCustom == null) {
            yycgdCustom = new YycgdCustom();
        }
        yycgdCustom.setZt(zt);
        yycgdQueryVo.setYycgdCustom(yycgdCustom);
        // 监管单位管理地区
        // 根据监管单位id查询监管单位
        Userjd userjd = userjdMapper.selectByPrimaryKey(userjdid);
        // 管理地区
        String dq = userjd.getDq();

        Useryy useryy = yycgdQueryVo.getUseryy();
        useryy = useryy != null ? useryy : new Useryy();
        // 设置查询条件管理地区
        useryy.setDq(dq);

        yycgdQueryVo.setUseryy(useryy);
        // 设置年份
        yycgdQueryVo.setBusinessyear(year);
        return yycgdMapperCustom.findYycgdCount(yycgdQueryVo);
    }
    // 采购单审核提交
    @Override
    public void saveYycgdCheckStatus(String yycgdid, YycgdCustom yycgdCustom)
            throws Exception {
        // 采购单状态为审核中方可提交审核
        // 采购单状态为未提交或审核不通过时方可提交
        Yycgd yycgd = this.findYycgdById(yycgdid);
        if (yycgd == null) {
            // 抛出异常,提交的采购单在系统中不存在
            ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 501,
                    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, 513,
                    null));
        }
        // 年份
        String businessyear = yycgdid.substring(0, 4);

        Yycgd yycgd_update = new Yycgd();

        yycgd_update.setId(yycgdid);
        // 更新状态
        yycgd_update.setZt(yycgdCustom.getZt());
        // 更新审核时间
        yycgd_update.setShtime(MyUtil.getNowDate());
        // 更新审核意见
        yycgd_update.setShyj(yycgdCustom.getShyj());

        yycgd_update.setBusinessyear(businessyear);

        yycgdMapper.updateByPrimaryKeySelective(yycgd_update);

        // 采购明细数据聚合
        if (yycgdCustom.getZt().equals("3")) {
            // 如果审核通过进行数据聚合
            List<YycgdmxCustom> list = findYycgdmxListByYycgdid(yycgdid, null);
            // 将采购单明细记录插入到交易明细表中
            // 取出采购单明细记录
            for (YycgdmxCustom yycgdmxCustom : list) {
                // 创建一个交易明细对象
                Yybusiness yybusiness = new Yybusiness();
                yybusiness.setBusinessyear(yycgdid.substring(0, 4));
                yybusiness.setId(UUIDBuild.getUUID());
                yybusiness.setYycgdid(yycgdid);
                yybusiness.setYpxxid(yycgdmxCustom.getId());
                yybusiness.setCgl(yycgdmxCustom.getCgl());
                yybusiness.setCgje(yycgdmxCustom.getCgje());
                yybusiness.setCgzt(yycgdmxCustom.getCgzt());
                yybusiness.setUsergysid(yycgdmxCustom.getUsergysid());
                yybusiness.setUseryyid(yycgdmxCustom.getUseryyid());
                yybusiness.setZbjg(yycgdmxCustom.getZbjg());
                yybusiness.setJyjg(yycgdmxCustom.getJyjg());

                yybusinessMapper.insert(yybusiness);

            }
        }

    }

action

// 采购单审核列表页面
    @RequestMapping("/checkyycgdlist")
    public String checkyycgdlist(Model model) throws Exception {

        // 药品类别
        List<Dictinfo> cgdztlist = systemConfigService
                .findDictinfoByType("010");
        model.addAttribute("cgdztlist", cgdztlist);

        // 当前年份
        model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate()));

        return "/business/cgd/checkYycgd";
    }

    // 采购单审核列表结果集,json
    @RequestMapping("/checkyycgdlist_result")
    public @ResponseBody
    DataGridResultInfo checkyycgdlist_result(// HttpSession session,
            ActiveUser activeUser, String year,// 年份
            YycgdQueryVo yycgdQueryVo,// 查询条件
            int page, int rows) throws Exception {

        // 监管单位id
        String userjdid = activeUser.getSysid();// 单位id

        // 列表的总数
        int total = cgdService
                .findCheckYycgdCount(year, userjdid, yycgdQueryVo);

        // 分页参数
        PageQuery pageQuery = new PageQuery();
        pageQuery.setPageParams(total, rows, page);
        yycgdQueryVo.setPageQuery(pageQuery);// 设置分页参数

        // 分页查询列表
        List<YycgdCustom> list = cgdService.findCheckYycgdList(year, userjdid,
                yycgdQueryVo);

        DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
        dataGridResultInfo.setTotal(total);
        dataGridResultInfo.setRows(list);

        return dataGridResultInfo;
    }
    // 采购单审核提交
    @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]);
            String yycgdid = yycgdCustom.getId();
            try {
                cgdService.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);

    }

你可能感兴趣的:(采购单审核)