采购单受理

第一步:供货商进入待发货的列表
列表内容:
这里写图片描述
1、审核通过的采购单的药品明细
2、需要本供货商配送的药品明细
通过采购单药品明细表中的供货商id限制只查询本供货商的待受理记录
3、只受理待发货的药品
可以考虑采购单表和采购单药品明细表联合查询

第二步:选择药品进行发货

采用批量提交方法:
提交数据包括:yycgdid(采购单id)、ypxxid(药品信息id)
将页面提交数据传入action的:List yycgdmxs中。

数据库操作:
更新采购单明细表中的采购状态为“2、已发货”

Mapper
通过药品采购状态, 采购单状态,供应商ID 查询采购单未受理

select yycgdmx.id yycgdmxid,
    useryy.id useryyid,
    useryy.mc useryymc,

    yycgd.bm yycgdbm,
    yycgd.mc yycgdmc,
    yycgd.cjtime,
    (select info
    from dictinfo
    where typecode = '010'
    and dictcode = yycgd.zt) yycgdztmc,
    ypxx.id,
    ypxx.bm,
    ypxx.mc,
    ypxx.jx,
    ypxx.gg,
    ypxx.zhxs,
    ypxx.scqymc,
    ypxx.spmc,

    ypxx.jyzt,

    (select info
    from
    dictinfo
    where ypxx.jyzt =
    dictcode
    and typecode = '003') jyztmc,
    yycgdmx.zbjg,
    yycgdmx.jyjg,
    yycgdmx.cgl,
    yycgdmx.cgje,
    yycgdmx.cgzt,
    (select info
    from dictinfo
    where
    typecode = '011'
    and dictcode =
    yycgdmx.cgzt) cgztmc,
    usergys.mc
    usergysmc,
    usergys.id usergysid

    from
    yycgdmx2015 yycgdmx,
    yycgd2015 yycgd, useryy,
    ypxx, usergys
    where yycgdmx.yycgdid
    = yycgd.id
    and yycgd.useryyid =
    useryy.id
    and yycgdmx.ypxxid = ypxx.id
    and yycgdmx.usergysid =
    usergys.id
    and yycgdmx.cgzt='1'
    and  yycgd.zt='3'
and usergys.id='701b09b8-08cf-11e3-8a4f-60a44cea4388'

service
接口参数: 供应商id 年份 包装类 (因为查询条件有采购单明细也有采购单所以要用包装类)
返回 List

受理提交
参数 采购单id ypxxid
约束 : 采购药品在未确定 送货时方可发货
采购单状态要改为发货
两个页面提交 一个是viewcgd 采购单明细页面
另一个是disposeyycgd 采购单受理页面
Service
//采购单受理提交
public void saveSendStatus(String yycgdid, String ypxxid) throws Exception;

报错: 表或视图不存在 可能是vo 对象中对应的属性没有写
关于页面传值 如果页面接收是 id:’${yycgd.id}’ 则传入需要传入对象
//传入页面所需对象
YycgdCustom yycgdCustom = cgdService.findYycgdById(yycgdid);
model.addAttribute(“yycgd”, yycgdCustom);

页面接收是year:’${year}’ 单一数据 则action传入
model.addAttribute(“year”, MyUtil.get_YYYY(MyUtil.getDate()));

dao

    <!-- 采购单药品明细查询列表 -->
    <select id="findYycgdmxList" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="yycg.business.pojo.vo.YycgdmxCustom">
        <!-- 引入分页头 -->
        <include refid="yycg.base.commonSql.page_start" />

        select yycgdmx.id yycgdmxid,
        useryy.id useryyid,
        useryy.mc useryymc,


        yycgd.bm yycgdbm,
        yycgd.mc yycgdmc,
        yycgd.id yycgdid,
        yycgd.cjtime,
        (select info
        from dictinfo
        where typecode = '010'
        and dictcode = yycgd.zt) yycgdztmc,
        ypxx.id,
        ypxx.bm,
        ypxx.mc,
        ypxx.jx,
        ypxx.gg,
        ypxx.zhxs,
        ypxx.scqymc,
        ypxx.spmc,

        ypxx.jyzt,

        (select info
        from
        dictinfo
        where ypxx.jyzt =
        dictcode
        and typecode = '003') jyztmc,
        yycgdmx.zbjg,
        yycgdmx.jyjg,
        yycgdmx.cgl,
        yycgdmx.cgje,
        yycgdmx.cgzt,
        (select info
        from dictinfo
        where
        typecode = '011'
        and dictcode =
        yycgdmx.cgzt) cgztmc,
        usergys.mc
        usergysmc,
        usergys.id usergysid

        from
        yycgdmx${businessyear} yycgdmx,
        yycgd${businessyear} yycgd, useryy,
        ypxx, usergys
        where yycgdmx.yycgdid
        = yycgd.id
        and yycgd.useryyid =
        useryy.id
        and yycgdmx.ypxxid = ypxx.id
        and yycgdmx.usergysid =
        usergys.id

        <!-- 只查询某个采购单下药品明细 -->
        <include refid="query_yycgdmx_where" />
        <!-- 采购单查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 药品查询条件 -->
        <include refid="yycg.business.dao.mapper.YpxxMapperCustom.query_ypxx_where" />

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

    <!-- 采购单药品明细查询列表总数 -->
    <select id="findYycgdmxCount" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="int">

        select count(*)

        from yycgdmx${businessyear} yycgdmx,
        yycgd${businessyear} yycgd, useryy,
        ypxx, usergys
        where yycgdmx.yycgdid
        = yycgd.id
        and yycgd.useryyid = useryy.id
        and yycgdmx.ypxxid = ypxx.id
        and yycgdmx.usergysid = usergys.id

        <!-- 只查询某个采购单下药品明细 -->
        <include refid="query_yycgdmx_where" />
        <!-- 采购单查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 药品查询条件 -->
        <include refid="yycg.business.dao.mapper.YpxxMapperCustom.query_ypxx_where" />

    </select>

service

// 采购单受理数据
    @Override
    public List<YycgdmxCustom> findDisposeYycgdList(String usergysid,
            String year, YycgdQueryVo yycgdQueryVo) throws Exception {
        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 供货商只允许查询自己供应的采购药品信息
        // 设置供货商id
        YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
        yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
                : new YycgdmxCustom();
        yycgdmxCustom.setUsergysid(usergysid);
        // 采购药品明细状态为“未确认送货”
        yycgdmxCustom.setCgzt("1");
        yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
        // 采购单为审核通过
        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
        yycgdCustom.setZt("3");
        yycgdQueryVo.setYycgdCustom(yycgdCustom);

        yycgdQueryVo.setBusinessyear(year);

        return yycgdMapperCustom.findYycgdmxList(yycgdQueryVo);
    }

    // 采购单受理数据条目
    @Override
    public int findDisposeYycgdCount(String usergysid, String year,
            YycgdQueryVo yycgdQueryVo) throws Exception {
        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 供货商只允许查询自己供应的采购药品信息
        // 设置供货商id
        YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
        yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
                : new YycgdmxCustom();
        yycgdmxCustom.setUsergysid(usergysid);
        // 采购药品明细状态为“未确认送货”
        yycgdmxCustom.setCgzt("1");
        yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
        // 采购单为审核通过
        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
        yycgdCustom.setZt("3");
        yycgdQueryVo.setYycgdCustom(yycgdCustom);

        yycgdQueryVo.setBusinessyear(year);

        return yycgdMapperCustom.findYycgdmxCount(yycgdQueryVo);
    }

    // 受理提交更新状态为已发货
    @Override
    public void saveSendStatus(String yycgdid, String ypxxid) throws Exception {
        // 查询出采购药品记录
        System.out.println(yycgdid + "__________" + ypxxid);
        Yycgdmx yycgdmx = this.findYycgdmxByYycgdIdAndYpxxId(yycgdid, ypxxid);
        if (yycgdmx == null) {
            // 提示:找不到采购药品明细记录
            ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 509,
                    null));
        }

        // 采购状态
        String cgzt = yycgdmx.getCgzt();
        if (!cgzt.equals("1")) {
            // 提示:采购药品在未确定送货时方可发货
            ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 562,
                    null));
        }
        // 设置更新状态为已发货
        yycgdmx.setCgzt("2");
        // 年份
        String year = yycgdid.substring(0, 4);
        yycgdmx.setBusinessyear(year);

        yycgdmxMapper.updateByPrimaryKey(yycgdmx);
    }

action

// 采购受理查询界面
    @RequestMapping("/disposeyycgd")
    public String disposeyycgd(Model model) throws Exception {
        // 当前年份
        model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate()));

        return "/business/cgd/disposeyycgd";
    }

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

        // 当前用户为供应商
        String usergysid = activeUser.getSysid();// 单位id

        // 列表的总数
        int total = cgdService.findDisposeYycgdCount(usergysid, year,
                yycgdQueryVo);
        // 分页参数
        PageQuery pageQuery = new PageQuery();
        pageQuery.setPageParams(total, rows, page);
        yycgdQueryVo.setPageQuery(pageQuery);// 设置分页参数
        // 分页查询列表
        List<YycgdmxCustom> list = cgdService.findDisposeYycgdList(usergysid,
                year, yycgdQueryVo);
        DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
        dataGridResultInfo.setTotal(total);
        dataGridResultInfo.setRows(list);

        return dataGridResultInfo;
    }

    // 采购单查看页面
    @RequestMapping("/yycgdview")
    public String yycgdview(Model model, String yycgdid) 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);
        // 传入页面所需对象
        YycgdCustom yycgdCustom = cgdService.findYycgdById(yycgdid);
        model.addAttribute("yycgd", yycgdCustom);
        return "/business/cgd/viewcgd";
    }

    // 采购单受理提交
    @RequestMapping("/disposeyycgdsubmit")
    public @ResponseBody
    SubmitResultInfo disposeyycgdsubmit(YycgdQueryVo yycgdQueryVo, int[] indexs // 页面选择序号
    ) throws Exception {

        // 页面提交的业务数据(多个),要处理的业务数据,页面中传入的参数
        List<YycgdmxCustom> list = yycgdQueryVo.getYycgdmxCustoms();
        // 处理数据的总数
        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;
            // 根据选中行的序号获取要处理的业务数据(单个)
            YycgdmxCustom yycgdmxCustom = list.get(indexs[i]);
            // 采购单id
            String yycgdid = yycgdmxCustom.getYycgdid();
            // 药品id
            String ypxxid = yycgdmxCustom.getYpxxid();

            try {
                cgdService.saveSendStatus(yycgdid, ypxxid);
            } 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);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值