采购单审核
2015-12-10 16:28
411 查看
约束:
卫生院只审核只乡/镇的卫生室下的采购单
卫生局审核全市卫生室下的采购单
采用批量提交方法:
提交数据包括:yycgdid(采购单id)、审核结果 、审核意见
将页面提交数据传入action的:List yycgds中。
数据库操作:
更新采购单表yycgd{year}的状态为(3:审核通过、或4:审核不通过)及审核意见
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.%'
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); }
相关文章推荐
- 使用js生成n到m间的随机数字
- ios开发——NSdata 与 NSString,Byte数组,UIImage 的相互转换
- RichEditBox 使用自定义菜单
- 简单了解STL
- RichEditBox 使用自定义菜单
- EasyUI常用控件禁用方法
- TCP的拥塞控制
- SaltStack 最新版WebUI部署
- Jquery之table中根据行选中,进行背景变色和radio选中
- The first English passage
- Java排序之排序大综合
- PHP读取PPT文件的方法
- Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
- 私人网站收藏——精简
- 发布网站中的那些事儿
- suid,sgid,sticky_bit 特殊权限-note
- Leetcode192: Serialize and Deserialize Binary Tree
- Hibernate操作数据库的方式总结
- Android之单选框、复选框警告框
- Java学习----数组