需求:
我们之前把采购单交给监督单位审核了,审通过的采购单就要受理。供货商决定采购单发不发货。
说明:
我们要查的就是登录的供货商的要提供的采购药品,我们查看的是采购单详细表,至于查询条件我们用的是就是采购单的查询条件,查出来的就是采购单里面的详细采购清单,我们在查询采购单里面的详细清单时是需要有约束条件。
我们设置一个YycgdCust对象。用来做查寻条件用。
如下:
这张单子里面的就是采购单详细表,这儿查出来的数据就只是特定于这个供货商的采购单详细表,一个区域里面只有一个供货商,有好几个医院,每个医院有好多个采购单。那么就是一个供货商有好几个采购单。供货商要看着每一个采购单的明细表才会去处理这个数据要不要发货。
我们先写Mapper:
我们写sql时要参考:
Mapper.xml如下:
and yycgdmx.yycgdid = #{yycgdmxCustom.yycgdid} and yycgdmx.cgzt = #{yycgdmxCustom.cgzt} and yycgdmx.usergysid = #{yycgdmxCustom.usergysid} and yycgd.id = #{yycgdCustom.id} and yycgd.bm = #{yycgdCustom.bm} and yycgd.mc like '%${yycgdCustom.mc}%' and yycgd.cjtime>=#{yycgdCustom.cjtime_start} and yycgd.useryyid = #{yycgdCustom.useryyid} and yycgd.zt = #{yycgdCustom.zt}
我们之前写过findYycgdmxList。我们这次要做的就是扩展查询条件,使的之前的findYycgdmxList可以继续用。
findYycgdmxCount是对应查数量的,用来分页用的。
Service 如下:
@Overridepublic ListfindDisposeYycgdList(String usergysid, String year, YycgdQueryVo yycgdQueryVo) throws Exception { //判断传机传进来的yycgdQueryVo是不是空的,空的那就新建一个对象。 yycgdQueryVo=yycgdQueryVo!=null?yycgdQueryVo:new YycgdQueryVo();// YycgdmxCustom yycgdmxCustom=yycgdQueryVo.getYycgdmxCustom(); //因为之前那步的YycgdQuery如果是空的话,那么这里的yycgdmxCustom也是空的, //所以如果是空的,那就要重新新建一个对象。 yycgdmxCustom=yycgdmxCustom!=null?yycgdmxCustom:new YycgdmxCustom(); yycgdmxCustom.setUsergysid(usergysid);//设置采购商的id,保证只能查看本采购商的采购单 String cgzt="1"; yycgdmxCustom.setCgzt(cgzt);//传入查询条件,保证采购单里面的采购药品明细状态是“未确认送货” yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom); yycgdQueryVo.setBusinessyear(year); return yycgdMapperCustom.findYycgdmxList(yycgdQueryVo); }@Overridepublic int findDisposeYycgdCount(String usergysid, String year, YycgdQueryVo yycgdQueryVo) throws Exception { //判断传机传进来的yycgdQueryVo是不是空的,空的那就新建一个对象。 yycgdQueryVo=yycgdQueryVo!=null?yycgdQueryVo:new YycgdQueryVo();// YycgdmxCustom yycgdmxCustom=yycgdQueryVo.getYycgdmxCustom(); //因为之前那步的YycgdQuery如果是空的话,那么这里的yycgdmxCustom也是空的, //所以如果是空的,那就要重新新建一个对象。 yycgdmxCustom=yycgdmxCustom!=null?yycgdmxCustom:new YycgdmxCustom(); yycgdmxCustom.setUsergysid(usergysid);//设置采购商的id,保证只能查看本采购商的采购单 String cgzt="1"; yycgdmxCustom.setCgzt(cgzt);//传入查询条件,保证采购单里面的采购药品明细状态是“未确认送货” yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom); yycgdQueryVo.setBusinessyear(year); return yycgdMapperCustom.findYycgdmxCount(yycgdQueryVo);}@Overridepublic void saveSendStatus(String yycgdid, String ypxxid) throws Exception { // 查询出采购药品记录 Yycgdmx yycgdmx = this.findYycgdmxByYycgdidAndYpxxid(yycgdid, ypxxid); if (yycgdmx == null) { // 提示:找到采购药品明细记录 // ... } // 采购状态 String cgzt = yycgdmx.getCgzt(); if (!cgzt.equals("1")) { // 提示:采购药品在未确定 送货时方可发货 // ... } // 设置更新状态为已发货 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 { // 供货商id String usergysid = activeUser.getSysid();// 单位id // 列表的总数 int total = cgdService.findDisposeYycgdCount(usergysid, year, yycgdQueryVo); // 分页参数 PageQuery pageQuery = new PageQuery(); pageQuery.setPageParams(total, rows, page); yycgdQueryVo.setPageQuery(pageQuery);// 设置分页参数 // 分页查询列表 Listlist = cgdService.findDisposeYycgdList(usergysid, year, yycgdQueryVo); DataGridResultInfo dataGridResultInfo = new DataGridResultInfo(); dataGridResultInfo.setTotal(total); dataGridResultInfo.setRows(list); return dataGridResultInfo; }
调试通过。
调试时遇到了问题:
页面如下:
ar columns = [ [ { checkbox:true},{ field : 'id', hidden : true, formatter: function(value,row,index){ return ''; }},{ field : 'yycgdid', hidden : true, formatter: function(value,row,index){ return ''; }},
整体代码如下:
<%@ page contentType="text/html; charset=UTF-8"%><%@ include file="/WEB-INF/jsp/base/tag.jsp"%>医院采购单受理 <%@ include file="/WEB-INF/jsp/base/common_css.jsp"%><%@ include file="/WEB-INF/jsp/base/common_js.jsp"%>
到这里为止采购单模块就结束了,下面其实还有入库的功能,还有退货结算的功能,我们就不讲了。