From 61de83f769642ff7da3d7f32b39c5014167a2950 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期五, 15 一月 2021 17:34:48 +0800 Subject: [PATCH] 修改试剂库、库存查询,登录超时,导出订单领取 --- src/main/java/com/nanometer/smartlab/service/OpeApplyService.java | 4 src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml | 12 src/main/webapp/WEB-INF/ehcache.xml | 97 +++++++++ src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml | 60 +++++ src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml | 7 src/main/webapp/reagent_mng.xhtml | 11 src/main/java/com/nanometer/smartlab/service/SysUserService.java | 2 src/main/webapp/WEB-INF/spring-shiro.xml | 18 + src/main/webapp/warehouse_stock_mng.xhtml | 33 +++ src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java | 10 src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java | 3 src/main/webapp/WEB-INF/spring-ehcache.xml | 20 ++ src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatusVo.java | 39 +++ src/main/java/com/nanometer/smartlab/service/SysReagentService.java | 4 src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java | 13 + src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml | 12 src/main/java/com/nanometer/smartlab/api/ApiAction.java | 7 src/main/java/com/nanometer/smartlab/entity/OpeApplyReserve.java | 19 + src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java | 4 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java | 198 +++++++++++++++++- src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java | 8 src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java | 6 src/main/webapp/warehouse_reagent_direct_store.xhtml | 7 23 files changed, 534 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index 91c0c46..9f38637 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -1400,6 +1400,7 @@ lr.setValidFlag(ValidFlag.VALID); opeLaboratoryReserveService.insert(lr); + opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER); opeReagentStatus.setUserId(reagentReceiving.getApplyUserId()); opeReagentStatus.setHouseId(reagentReceiving.getLabId()); opeReagentStatus.setContainerId(reagentReceiving.getLabContainerId()); @@ -1439,7 +1440,7 @@ return ResponseModel.getErrInstance("账户名为空"); } - HazardousWasteUser sysUser = sysUserService.getUserByAccount(account); + HazardousWasteUser sysUser = sysUserService.getUserByAccount(account,null); if (sysUser == null){ return ResponseModel.getErrInstance("账户名不存在"); }else{ @@ -1540,8 +1541,8 @@ hazardousWaste.setTid(sdf.format(new Date())); hazardousWaste.setCreateTime(new Date()); hazardousWaste.setStatus("待确认"); - HazardousWasteUser sysUser = sysUserService.getUserByAccount(hazardousWaste.getApplyPerson()); - hazardousWaste.setUnit( sysUser.getCompany()); + HazardousWasteUser sysUser = sysUserService.getUserByAccount(null,hazardousWaste.getApplyPerson()); + hazardousWaste.setUnit(sysUser.getCompany()); if (hazardousWaste.getAcid()== null){ hazardousWaste.setAcid(new BigDecimal(0)); } diff --git a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java index fd71861..54fcbcd 100644 --- a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java @@ -67,6 +67,7 @@ private String cas; private List<SysSupplier> supplierSelectList; private List<Type> typeList; + private String productSn; public List<Type> getTypeList() { if (this.typeList == null) { @@ -798,10 +799,10 @@ public List<SysReagent> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { List<SysReagent> list = null; try { - int count = sysReagentService.getSysReagentTotalCountNew(name, cas, supplierId,getType()); + int count = sysReagentService.getSysReagentTotalCountNew(name, cas, supplierId,getType(),productSn); this.setRowCount(count); if (count > 0) { - list = sysReagentService.getSysReagentListNew(name, cas, supplierId,getType(), first, pageSize); + list = sysReagentService.getSysReagentListNew(name, cas, supplierId,getType(), first, pageSize,productSn); } } catch (Exception e) { logger.error(e); @@ -897,4 +898,12 @@ public void setDangerousFlagSelectList(List<DangerousFlag> dangerousFlagSelectList) { this.dangerousFlagSelectList = dangerousFlagSelectList; } + + public String getProductSn() { + return productSn; + } + + public void setProductSn(String productSn) { + this.productSn = productSn; + } } diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java index 04cd748..c27e87d 100644 --- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java @@ -5,6 +5,7 @@ import com.nanometer.smartlab.dao.OpeWarehouseReserveDao; import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.ApplyListDto; +import com.nanometer.smartlab.entity.enumtype.ApplyStatusVo; import com.nanometer.smartlab.entity.enumtype.ArrivalStatus; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.entity.enumtype.ValidFlag; @@ -204,6 +205,10 @@ private OpeApply reagentDStore; private String applyNewReagentName; private String applyNewCas; + private String productSn; + private String applyCode; + private Integer status; + private List<ApplyStatusVo> statusSelectList; private List<SysWarehouse> warehouseList; private List<SysWarehouseContainer> warehouseContainerList; @@ -1204,11 +1209,11 @@ Map<String, Object> filters) { List<OpeWarehouseReserve> list = null; try { - int count = opeWarehouseReserveService.getOpeWarehouseReserveTotalCountByName(reagentId, supplierId); + int count = opeWarehouseReserveService.getOpeWarehouseReserveTotalCountByName(reagentId, supplierId,productSn); this.setRowCount(count); if (count > 0) { list = opeWarehouseReserveService.getOpeWarehouseReserveListByName(reagentId, supplierId, first, - pageSize); + pageSize,productSn); } } catch (Exception e) { logger.error(e); @@ -1254,12 +1259,11 @@ } try { - - int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id,reagentId, userName); + int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id,reagentId, userName,productSn,applyCode,status); this.setRowCount(count); if (count > 0) { list = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, first, - pageSize); + pageSize,productSn,applyCode,status); } } catch (Exception e) { logger.error(e); @@ -1328,6 +1332,130 @@ } return reagentStatusDataModel; } + + public void onExportFileBtnClickOrder(){ + ServletOutputStream out = null; + InputStream is = null; + try { + FacesContext ctx = FacesContext.getCurrentInstance(); + ctx.responseComplete(); + String contentType = "application/x-download"; + HttpServletResponse response = (HttpServletResponse) ctx + .getExternalContext().getResponse(); + response.setContentType(contentType); + StringBuffer contentDisposition = new StringBuffer(); + contentDisposition.append("attachment;"); + contentDisposition.append("filename=\""); + contentDisposition.append("订单领取导出.xls"); + contentDisposition.append("\""); + response.setHeader( + "Content-Disposition", + new String(contentDisposition.toString().getBytes( + System.getProperty("file.encoding")), "ISO8859-1")); + out = response.getOutputStream(); + Map<String, Integer> tempMap = new HashMap<String,Integer>(); + List<OpeApplyReserve> realDataList = new ArrayList<>(); + //map=null; + SysUser loginUser = getUser(); + String id=""; + if(loginUser.getSeeFlag()==SeeFlag.MANAGE){ + + }else { + //userName=loginUser.getName(); + id=loginUser.getId(); + } + if(selectedListForPerson!=null&&selectedListForPerson.size()>0){ + realDataList=selectedListForPerson; + }else { + realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null, + null,productSn,applyCode,status); + } + List<String> headerList = new ArrayList<>(); + headerList.add("申购编号"); + headerList.add("产品编号"); + headerList.add("试剂名称"); + headerList.add("管制品"); + headerList.add("规格型号"); + headerList.add("包装"); + headerList.add("价格"); + headerList.add("CAS"); + headerList.add("危险性质"); + headerList.add("厂家"); + headerList.add("申请数量"); + headerList.add("已领用数量"); + headerList.add("申领人"); + headerList.add("订单状态"); + headerList.add("课题组"); + headerList.add("课题组负责人"); + HSSFWorkbook hssfWorkbook =exportExcelOrder(headerList, realDataList); + hssfWorkbook.write(out); + out.flush(); + ctx.responseComplete(); + + }catch (Exception e) { + if(is!=null){ + try { + is.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + if(out!=null){ + try { + out.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + e.printStackTrace(); + }finally { + if (is != null) { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (out != null) { + try { + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + public HSSFWorkbook exportExcelOrder(List<String> headerList, List<OpeApplyReserve> dataList){ + HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + Integer total = null; + HSSFSheet sheet = hssfWorkbook.createSheet("订单领取导出"); + HSSFRow titlerRow = sheet.createRow(0); + for(int i = 0; i < headerList.size(); i++) { + titlerRow.createCell(i).setCellValue(headerList.get(i)); + } + for (int i = 0; i < dataList.size(); i++) { + HSSFRow dataRow = sheet.createRow(i + 1); + dataRow.createCell(0).setCellValue(dataList.get(i).getApplyCode()== null ? "": String.valueOf(dataList.get(i).getApplyCode())); + dataRow.createCell(1).setCellValue(dataList.get(i).getReagent().getProductSn()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductSn())); + dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getName()== null ? "": String.valueOf(dataList.get(i).getReagent().getName())); + dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getControlProducts()== null ? "": String.valueOf(dataList.get(i).getReagent().getControlProducts())); + dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentFormat())); + dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())); + dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); + dataRow.createCell(7).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); + dataRow.createCell(8).setCellValue(dataList.get(i).getReagent().getReagentCharacter()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentCharacter())); + dataRow.createCell(9).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); + dataRow.createCell(10).setCellValue(dataList.get(i).getNum()== null ? "": String.valueOf(dataList.get(i).getNum())); + dataRow.createCell(11).setCellValue(dataList.get(i).getUsed()== null ? "": String.valueOf(dataList.get(i).getUsed())); + dataRow.createCell(12).setCellValue(dataList.get(i).getApplyUserId()== null ? "": String.valueOf(dataList.get(i).getApplyUserId())); + dataRow.createCell(13).setCellValue(dataList.get(i).getStatus()== null ? "": String.valueOf(dataList.get(i).getStatus().getText())); + dataRow.createCell(14).setCellValue(dataList.get(i).getProject()== null ? "": String.valueOf(dataList.get(i).getProject())); + dataRow.createCell(15).setCellValue(dataList.get(i).getProjectManage()== null ? "": String.valueOf(dataList.get(i).getProjectManage())); + } + return hssfWorkbook; + } + public void onExportFileBtnClickNew(){ ServletOutputStream out = null; InputStream is = null; @@ -1355,10 +1483,11 @@ realDataList=selectedList; }else { realDataList = opeWarehouseReserveService.getOpeWarehouseReserveListByName(reagentId, supplierId, null, - null); + null,productSn); } List<String> headerList = new ArrayList<>(); headerList.add("试剂名称"); + headerList.add("产品编号"); headerList.add("cas"); headerList.add("厂家"); headerList.add("供应商"); @@ -1409,8 +1538,6 @@ public HSSFWorkbook exportExcelNew(List<String> headerList, List<OpeWarehouseReserve> dataList) { HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); - - Integer total = null; HSSFSheet sheet = hssfWorkbook.createSheet("仓库库存"); HSSFRow titlerRow = sheet.createRow(0); @@ -1420,15 +1547,16 @@ for (int i = 0; i < dataList.size(); i++) { HSSFRow dataRow = sheet.createRow(i + 1); dataRow.createCell(0).setCellValue(dataList.get(i).getReagent().getName()== null ? "": String.valueOf(dataList.get(i).getReagent().getName())); - dataRow.createCell(1).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); - dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); - dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getSupplierName()== null ? "": String.valueOf(dataList.get(i).getReagent().getSupplierName())); - dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentFormat()))); - dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())+baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentUnit())); - dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); - dataRow.createCell(7).setCellValue(dataList.get(i).getArticleNumber()== null ? "": String.valueOf(dataList.get(i).getArticleNumber())); - dataRow.createCell(8).setCellValue(dataList.get(i).getReserve()== null ? "": String.valueOf(dataList.get(i).getReserve())); - dataRow.createCell(9).setCellValue(dataList.get(i).getWarehouseName()== null ? "": String.valueOf(dataList.get(i).getWarehouseName())); + dataRow.createCell(1).setCellValue(dataList.get(i).getReagent().getProductSn()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductSn())); + dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); + dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); + dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getSupplierName()== null ? "": String.valueOf(dataList.get(i).getReagent().getSupplierName())); + dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentFormat()))); + dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())+baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentUnit())); + dataRow.createCell(7).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); + dataRow.createCell(8).setCellValue(dataList.get(i).getArticleNumber()== null ? "": String.valueOf(dataList.get(i).getArticleNumber())); + dataRow.createCell(9).setCellValue(dataList.get(i).getReserve()== null ? "": String.valueOf(dataList.get(i).getReserve())); + dataRow.createCell(10).setCellValue(dataList.get(i).getWarehouseName()== null ? "": String.valueOf(dataList.get(i).getWarehouseName())); } return hssfWorkbook; @@ -1966,10 +2094,10 @@ public List<SysReagent> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { List<SysReagent> list = null; try { - int count = sysReagentService.getSysReagentTotalCountNew(applyNewReagentName, applyNewCas, null,null); + int count = sysReagentService.getSysReagentTotalCountNew(applyNewReagentName, applyNewCas, null,null,productSn); this.setRowCount(count); if (count > 0) { - list = sysReagentService.getSysReagentListNew(applyNewReagentName, applyNewCas, null,null, first, pageSize); + list = sysReagentService.getSysReagentListNew(applyNewReagentName, applyNewCas, null,null, first, pageSize,productSn); } } catch (Exception e) { logger.error(e); @@ -2231,4 +2359,36 @@ public void setTabValue(Integer tabValue) { this.tabValue = tabValue; } + + public void setProductSn(String productSn) { + this.productSn = productSn; + } + + public String getProductSn() { + return productSn; + } + + public String getApplyCode() { + return applyCode; + } + + public void setApplyCode(String applyCode) { + this.applyCode = applyCode; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public List<ApplyStatusVo> getStatusSelectList() { + if (this.statusSelectList == null) { + this.statusSelectList = Arrays.asList(ApplyStatusVo.values()); + } + return statusSelectList; + } + } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml index 77ceb4b..1fb781b 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml @@ -62,6 +62,8 @@ <result property="used" column="used"></result> <result property="status" column="status" typeHandler="com.nanometer.smartlab.entity.handler.ApplyStatusHandler"></result> <result property="applyUserId" column="apply_user_id"></result> + <result property="projectManage" column="projectManage"/> + <result property="project" column="project"/> <association property="reagent" javaType="com.nanometer.smartlab.entity.SysReagent"> <id property="id" column="reagent_id"></id> <result property="name" column="reagentName"></result> @@ -322,6 +324,12 @@ <if test="status != null and status != ''"> and oa.status =#{status} </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat('%',#{productSn},'%') + </if> + <if test="applyCode != null and applyCode != ''"> + and oa.apply_code = #{applyCode} + </if> </sql> <select id="getOpeApplyReserveTotalCount" parameterType="java.util.Map" @@ -336,10 +344,21 @@ <select id="getOpeApplyReserveTotalCountFor" parameterType="java.util.Map" resultType="int"> select count(1) + from + (select count(1) from ope_apply as oa - <include refid="getOpeApplyReserveList_queryJoins1" /> + LEFT JOIN sys_reagent sr ON sr.id = oa.reagent_id + LEFT JOIN sys_user su ON su.id = oa.apply_user_id + LEFT JOIN base_meta AS bm2 ON sr.control_products = bm2.id + LEFT JOIN base_meta AS bm3 ON sr.reagent_format = bm3.id + LEFT JOIN base_meta AS bm4 ON sr.reagent_character = bm4.id + LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id + LEFT JOIN sys_project as project on project.project = su.project + LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id where oa.valid_flag = 1 and (oa.status=4 or oa.status=6) <include refid="getOpeApplyReserveList_queryWhereSql" /> + GROUP BY oa.id + )as oaa </select> <select id="getOpeApplyReserveList" parameterType="java.util.Map" @@ -350,7 +369,7 @@ <include refid="getOpeApplyReserveList_queryJoins2" /> where oa.valid_flag = 1 <include refid="getOpeApplyReserveList_queryWhereSql" /> - + GROUP BY oa.id order by oa.update_time desc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} @@ -359,13 +378,40 @@ <select id="getOpeApplyReserveListFor" parameterType="java.util.Map" resultMap="OpeApplyReserve"> - <include refid="getOpeApplyReserveList_queryColumns" /> - from ope_apply as oa - <include refid="getOpeApplyReserveList_queryJoins1" /> - <include refid="getOpeApplyReserveList_queryJoins2" /> + SELECT + oa.id, + oa.apply_code, + sr.id reagent_id, + oa. STATUS, + sr.product_sn reagentProductSn, + sr.`name` reagentName, + bm2.meta_value controlProducts, + bm3.meta_value reagentFormat, + sr.main_metering reagentMainMetering, + sr.price reagentPrice, + sr.cas reagentCas, + oa.article_number articleNumber, + bm4.meta_value reagentCharacter, + bm1.meta_value productHome, + sr.dangerous_flag, + oa.num, + oa.used, + su.`name` apply_user_id, + su.project, + su1.`name` as projectManage + FROM + ope_apply AS oa + LEFT JOIN sys_reagent sr ON sr.id = oa.reagent_id + LEFT JOIN sys_user su ON su.id = oa.apply_user_id + LEFT JOIN base_meta AS bm2 ON sr.control_products = bm2.id + LEFT JOIN base_meta AS bm3 ON sr.reagent_format = bm3.id + LEFT JOIN base_meta AS bm4 ON sr.reagent_character = bm4.id + LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id + LEFT JOIN sys_project as project on project.project = su.project + LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id where oa.valid_flag = 1 and (oa.status=4 or oa.status=6) <include refid="getOpeApplyReserveList_queryWhereSql" /> - + GROUP BY oa.id order by oa.update_time desc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml index 6c81389..0f32736 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml @@ -29,7 +29,8 @@ <result property="updateTime" column="update_time"></result> <result property="supplierName" column="supplierName"></result> <result property="productHome" column="product_home"></result> - <result property="productHomeName" column="productHomeName"></result> + <result property="productHomeName" column="productHomeName"></result> + <result property="productSn" column="product_sn"/> </association> </resultMap> @@ -49,9 +50,12 @@ <if test="reagentName != null and reagentName != ''"> and sr.name like concat('%',#{reagentName},'%') </if> - <if test="warehouseId != null and warehouseId != ''"> - and oa.warehouseId=#{warehouseId} - </if> + <if test="warehouseId != null and warehouseId != ''"> + and oa.warehouseId=#{warehouseId} + </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat('%',#{productSn},'%') + </if> </sql> <sql id="queryColumns"> diff --git a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml index 4c1cb24..4fc53ba 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml @@ -261,6 +261,9 @@ <if test="type != null"> and sr.type = #{type} </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> ORDER BY sr.create_time desc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} @@ -321,7 +324,9 @@ <if test="type != null"> and sr.type = #{type} </if> - + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> </select> <select id="getReagentUnitByReagentId" parameterType="java.lang.String" resultType="java.lang.String"> diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml index 64b16c6..8bb1b6b 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml @@ -218,7 +218,7 @@ WHERE su.valid_flag = 1 and sl.valid_flag = 1 and slc.valid_flag = 1 - + ORDER BY su.`name` asc </select> <select id="getUserListByProject" parameterType="java.util.Map" resultMap="SysUser"> @@ -244,9 +244,15 @@ FROM sys_user AS su LEFT JOIN base_meta bm ON su.department = bm.id LEFT JOIN base_meta com on com.id = su.company - WHERE + <where> su.valid_flag = 1 - AND su.account = #{account} + <if test="account != null and account !=''"> + AND su.account = #{account} + </if> + <if test="name != null and name !=''"> + AND su.name = #{name} + </if> + </where> </select> <select id="getUserByProject" resultType="com.nanometer.smartlab.entity.dto.LaboratoryVo$LaboratoryUser"> SELECT diff --git a/src/main/java/com/nanometer/smartlab/entity/OpeApplyReserve.java b/src/main/java/com/nanometer/smartlab/entity/OpeApplyReserve.java index fdd6a05..2262797 100644 --- a/src/main/java/com/nanometer/smartlab/entity/OpeApplyReserve.java +++ b/src/main/java/com/nanometer/smartlab/entity/OpeApplyReserve.java @@ -32,6 +32,9 @@ private Integer flag; private ApplyStatus status; + private String project; + private String projectManage; + public ApplyStatus getStatus() { return status; } @@ -165,4 +168,20 @@ public void setSelectNum(Integer selectNum) { this.selectNum = selectNum; } + + public String getProject() { + return project; + } + + public void setProject(String project) { + this.project = project; + } + + public String getProjectManage() { + return projectManage; + } + + public void setProjectManage(String projectManage) { + this.projectManage = projectManage; + } } diff --git a/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatusVo.java b/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatusVo.java new file mode 100644 index 0000000..d9f2f18 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatusVo.java @@ -0,0 +1,39 @@ +package com.nanometer.smartlab.entity.enumtype; + +import java.util.HashMap; + +public enum ApplyStatusVo { + STORAGE(4, "已入库"),SUPPLIER_CONFIRM(6,"已确认"); + private int key; + + private String text; + + private ApplyStatusVo(int key, String text) { + this.key = key; + this.text = text; + } + + public int getKey() { + return key; + } + + public String getText() { + return text; + } + + private static HashMap<Integer,ApplyStatusVo> map = new HashMap<Integer,ApplyStatusVo>(); + static { + for(ApplyStatusVo d : ApplyStatusVo.values()){ + map.put(d.key, d); + } + } + + public static ApplyStatusVo parse(Integer index) { + if(map.containsKey(index)){ + return map.get(index); + } + return null; + } + + +} diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java index b10d0ad..5217844 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java @@ -53,9 +53,9 @@ int getOpeApplyReserveTotalCountByName(String id,String reagentName, String personName); List<OpeApplyReserve> getOpeApplyReserveListByName(String id,String reagentName, String personName, Integer first, Integer pageSize); - int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName); + int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status); List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first, - Integer pageSize); + Integer pageSize,String productSn,String applyCode,Integer status); public boolean updaetOpeApplyPrice(BigDecimal applyPrice,String id); public boolean updaetOpeApplyStockFlag(int stockFlag,String id); public boolean cancelApply(ApplyStatus status,String id); diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java index 1f61365..ce73ec8 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java @@ -519,12 +519,15 @@ } @Override - public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName) { + public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); params.put("personName", personName); params.put("userId",id); + params.put("productSn",productSn); + params.put("applyCode",applyCode); + params.put("status",status); return this.opeApplyDao.getOpeApplyReserveTotalCountFor(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -534,7 +537,7 @@ } @Override public List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first, - Integer pageSize) { + Integer pageSize,String productSn,String applyCode,Integer status) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); @@ -542,6 +545,9 @@ params.put("userId",id); params.put("first", first); params.put("pageSize", pageSize); + params.put("productSn",productSn); + params.put("applyCode",applyCode); + params.put("status",status); return this.opeApplyDao.getOpeApplyReserveListFor(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java index fbcacba..36737c4 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java @@ -15,8 +15,8 @@ Integer pageSize); int getOpeWarehouseReserveTotalCount(String reagentId, String supplierId); List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first, - Integer pageSize); - int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId); + Integer pageSize,String productSn); + int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn); OpeWarehouseReserve getOpeWarehouseReserve(String reagentId, String articleNumber); OpeWarehouseReserve getOpeWarehouseReserve2(String reagentId, String articleNumber,String warehouseId); OpeWarehouseReserve getOpeWarehouseReserveBy(String reagentId, String articleNumber); diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java index 9086784..f20a9dd 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java @@ -88,13 +88,14 @@ @Transactional(propagation = Propagation.REQUIRED) public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first, - Integer pageSize) { + Integer pageSize,String productSn) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentId); params.put("supplierId", supplierId); params.put("first", first); params.put("pageSize", pageSize); + params.put("productSn", productSn); return this.opeWarehouseReserveDao.getOpeWarehouseReserveList(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -104,11 +105,12 @@ } @Transactional(propagation = Propagation.REQUIRED) - public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId) { + public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentId); params.put("supplierId", supplierId); + params.put("productSn", productSn); return this.opeWarehouseReserveDao.getOpeWarehouseReserveTotalCount(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -325,7 +327,7 @@ for (int i = 0; i < len; i++) { temp += "0"; } - for (BigInteger i = startReagentCode; i.compareTo(endReagentCode) < 1; i = i.add(BigInteger.ONE)) { + for (BigInteger i = startReagentCode; i.compareTo(endReagentCode) < 1; i = i.add(BigInteger.ONE)) { reagentCode = temp + String.valueOf(i); if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {//条码存在 //throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。"); diff --git a/src/main/java/com/nanometer/smartlab/service/SysReagentService.java b/src/main/java/com/nanometer/smartlab/service/SysReagentService.java index b51db5b..775a88f 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysReagentService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysReagentService.java @@ -20,12 +20,12 @@ public int insertSysReagentList(List<SysReagent> sysReagentList); public int insertSysReagentList2(List<SysReagent> sysReagentList); - int getSysReagentTotalCountNew(String name, String cas, String supplierId, Integer type); + int getSysReagentTotalCountNew(String name, String cas, String supplierId, Integer type,String productSn); public List<SysReagent> query(); Map getReagentDetail(String id); - public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId, Integer type, Integer first, Integer pageSize); + public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId, Integer type, Integer first, Integer pageSize,String productSn); int favorCount(SysUser user, String name, String cas, String supplierId, String productSn,Integer favorFlag); diff --git a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java index b78f7bc..ad0eac0 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java @@ -61,7 +61,7 @@ } } - public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId,Integer type, Integer first, Integer pageSize) { + public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId,Integer type, Integer first, Integer pageSize,String productSn) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("name", name); @@ -70,6 +70,7 @@ params.put("type", type); params.put("first", first); params.put("pageSize", pageSize); + params.put("productSn", productSn); return this.sysReagentDao.getSysReagentListNew(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -176,13 +177,14 @@ } - public int getSysReagentTotalCountNew(String name, String cas, String supplierId,Integer type) { + public int getSysReagentTotalCountNew(String name, String cas, String supplierId,Integer type,String productSn) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("name", name); params.put("cas", cas); params.put("type", type); params.put("supplierId", supplierId); + params.put("productSn", productSn); return this.sysReagentDao.getSysReagentTotalCountNew(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserService.java b/src/main/java/com/nanometer/smartlab/service/SysUserService.java index 89e4772..a613193 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysUserService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysUserService.java @@ -41,7 +41,7 @@ List<SysUserDto> getUserInfo(); - HazardousWasteUser getUserByAccount(String account); + HazardousWasteUser getUserByAccount(String account,String name); List<LaboratoryVo.LaboratoryUser> getUserByProject(String project); } diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java index 449dc3d..b3c0881 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java @@ -353,9 +353,10 @@ } @Override - public HazardousWasteUser getUserByAccount(String account) { + public HazardousWasteUser getUserByAccount(String account,String name) { Map<String, String> params = new HashMap<>(); params.put("account", account); + params.put("name", name); return sysUserDao.getUserByAccount(params); } diff --git a/src/main/webapp/WEB-INF/ehcache.xml b/src/main/webapp/WEB-INF/ehcache.xml new file mode 100644 index 0000000..5fed98f --- /dev/null +++ b/src/main/webapp/WEB-INF/ehcache.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ehcache updateCheck="false" dynamicConfig="false"> + <diskStore path="java.io.tmpdir"/> + + <cache name="authorizationCache" + maxEntriesLocalHeap="2000" + eternal="false" + timeToIdleSeconds="43200" + timeToLiveSeconds="43200" + overflowToDisk="false" + statistics="true"> + </cache> + + <cache name="authenticationCache" + maxEntriesLocalHeap="2000" + eternal="false" + timeToIdleSeconds="43200" + timeToLiveSeconds="43200" + overflowToDisk="false" + statistics="true"> + </cache> + + <cache name="activeSessionCache" + maxEntriesLocalHeap="2000" + eternal="false" + timeToIdleSeconds="43200" + timeToLiveSeconds="43200" + overflowToDisk="false" + statistics="true"> + </cache> + + <!-- 缓存5min --> + <cache name="fivMin" + maxElementsInMemory="10000" + maxElementsOnDisk="100000" + eternal="false" + timeToIdleSeconds="300" + timeToLiveSeconds="300" + overflowToDisk="false" + diskPersistent="false" /> + + <!-- 缓存半小时 --> + <cache name="halfHour" + maxElementsInMemory="10000" + maxElementsOnDisk="100000" + eternal="false" + timeToIdleSeconds="1800" + timeToLiveSeconds="1800" + overflowToDisk="false" + diskPersistent="false" /> + + <!-- 缓存一小时 --> + <cache name="hour" + maxElementsInMemory="10000" + maxElementsOnDisk="100000" + eternal="false" + timeToIdleSeconds="3600" + timeToLiveSeconds="3600" + overflowToDisk="false" + diskPersistent="false" /> + + <!-- 缓存一天 --> + <cache name="oneDay" + maxElementsInMemory="10000" + maxElementsOnDisk="100000" + eternal="false" + timeToIdleSeconds="43200" + timeToLiveSeconds="43200" + overflowToDisk="false" + diskPersistent="false" /> + + <!-- + name:缓存名称。 + maxElementsInMemory:缓存最大个数。 + eternal:对象是否永久有效,一但设置了,timeout将不起作用。 + timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。 + timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。 + overflowToDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。 + diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。 + maxElementsOnDisk:硬盘最大缓存个数。 + diskPersistent:是否缓存虚拟机重启期数据 Whether the disk store persists between restarts of the Virtual Machine. The default value is false. + diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。 + memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。 + clearOnFlush:内存数量最大时是否清除。 + --> + <defaultCache name="defaultCache" + maxElementsInMemory="10000" + eternal="false" + timeToIdleSeconds="120" + timeToLiveSeconds="120" + overflowToDisk="false" + maxElementsOnDisk="100000" + diskPersistent="false" + diskExpiryThreadIntervalSeconds="120" + memoryStoreEvictionPolicy="LRU"/> + +</ehcache> diff --git a/src/main/webapp/WEB-INF/spring-ehcache.xml b/src/main/webapp/WEB-INF/spring-ehcache.xml new file mode 100644 index 0000000..269286e --- /dev/null +++ b/src/main/webapp/WEB-INF/spring-ehcache.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:cache="http://www.springframework.org/schema/cache" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/cache + http://www.springframework.org/schema/cache/spring-cache.xsd"> + <!-- Spring提供的基于的Ehcache实现的缓存管理器 --> + + <!-- 如果有多个ehcacheManager要在bean加上p:shared="true" --> + + <bean id="cacheManager1" class="org.springframework.cache.ehcache.EhCacheCacheManager"> + <property name="cacheManager" ref="ehcacheManager"/> + <property name="transactionAware" value="true"/> + </bean> + + <!-- cache注解,和spring-redis.xml中的只能使用一个 --> + <cache:annotation-driven cache-manager="cacheManager1" proxy-target-class="true"/> +</beans> diff --git a/src/main/webapp/WEB-INF/spring-shiro.xml b/src/main/webapp/WEB-INF/spring-shiro.xml index 7d0d169..65070e9 100644 --- a/src/main/webapp/WEB-INF/spring-shiro.xml +++ b/src/main/webapp/WEB-INF/spring-shiro.xml @@ -60,7 +60,14 @@ </bean> <!-- Cache Manager --> - <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"></bean> + <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> + <property name="cacheManager" ref="ehcacheManager"/> + </bean> + + <!-- 如果有多个ehcacheManager要在bean加上p:shared="true" --> + <bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> + <property name="configLocation" value="WEB-INF/ehcache.xml"/> + </bean> <!--session manager--> <bean id="sessionManager" @@ -77,6 +84,13 @@ <!--自定义 Realm--> <bean id="authorizationRealm" class="com.nanometer.smartlab.realm.AuthorizationRealm"> <property name="credentialsMatcher" ref="md5Matcher"/> + + <!-- 启用身份验证缓存,即缓存AuthenticationInfo信息,默认false --> + <property name="authenticationCachingEnabled" value="true"/> + <!-- 缓存AuthenticationInfo信息的缓存名称 --> + <property name="authenticationCacheName" value="authenticationCache"/> + <!-- 缓存AuthorizationInfo信息的缓存名称 --> + <property name="authorizationCacheName" value="authorizationCache"/> </bean> <!-- Security Manager --> @@ -95,4 +109,4 @@ <property name="securityManager" ref="securityManager"/> </bean> -</beans> \ No newline at end of file +</beans> diff --git a/src/main/webapp/reagent_mng.xhtml b/src/main/webapp/reagent_mng.xhtml index 225a220..93964e3 100644 --- a/src/main/webapp/reagent_mng.xhtml +++ b/src/main/webapp/reagent_mng.xhtml @@ -15,7 +15,7 @@ <p:panel styleClass="center-header"> <p:outputLabel styleClass="title" value="试剂管理"></p:outputLabel> - <p:panelGrid styleClass="filter" columns="9"> + <p:panelGrid styleClass="filter" columns="12"> <p:outputLabel value="名称:"></p:outputLabel> <p:inputText value="#{reagentMngController.name}"></p:inputText> <p:outputLabel value="CAS:"></p:outputLabel> @@ -31,6 +31,10 @@ <f:selectItems value="#{reagentMngController.typeList}" var="item" itemLabel="#{item.text}" itemValue="#{item.key}"></f:selectItems> </p:selectOneMenu> + + <p:outputLabel value="产品编号:"></p:outputLabel> + <p:inputText value="#{reagentMngController.productSn}"></p:inputText> + <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> </p:panelGrid> </p:panel> @@ -52,7 +56,7 @@ <p:confirm header="确认" message="确认操作?"></p:confirm> </p:commandButton> <p:commandButton value="试剂导入" styleClass="import-btn" onclick="importReagent()" - ></p:commandButton> + ></p:commandButton> <p:commandButton value="耗材导入" styleClass="import-btn" onclick="importReagent2()" ></p:commandButton> <script> @@ -86,6 +90,9 @@ <p:column headerText="名称"> <h:outputText value="#{row.name}"></h:outputText> </p:column> + <p:column headerText="产品编号"> + <h:outputText value="#{row.productSn}"></h:outputText> + </p:column> <p:column headerText="CAS"> <h:outputText value="#{row.cas}"></h:outputText> </p:column> diff --git a/src/main/webapp/warehouse_reagent_direct_store.xhtml b/src/main/webapp/warehouse_reagent_direct_store.xhtml index d22440c..03b9bd3 100644 --- a/src/main/webapp/warehouse_reagent_direct_store.xhtml +++ b/src/main/webapp/warehouse_reagent_direct_store.xhtml @@ -51,6 +51,10 @@ <h:outputText value="#{row.reagent!=null?row.reagent.name:''}"></h:outputText> </p:column> + <p:column headerText="产品编号"> + <h:outputText value="#{row.reagent.productSn}"/> + </p:column> + <p:column headerText="CAS" width="80"> <h:outputText value="#{row.reagent!=null?row.reagent.cas:''}"></h:outputText> </p:column> @@ -199,6 +203,9 @@ <p:column headerText="试剂名称"> <h:outputText value="#{row.name}"></h:outputText> </p:column> + <p:column headerText="产品编号"> + <h:outputText value="#{row.productSn}"/> + </p:column> <p:column headerText="CAS"> <h:outputText value="#{row.cas}"></h:outputText> </p:column> diff --git a/src/main/webapp/warehouse_stock_mng.xhtml b/src/main/webapp/warehouse_stock_mng.xhtml index a97ef7d..f2adcf3 100644 --- a/src/main/webapp/warehouse_stock_mng.xhtml +++ b/src/main/webapp/warehouse_stock_mng.xhtml @@ -37,6 +37,10 @@ <h:outputText value="#{row.reagent.name}"/> </p:column> + <p:column headerText="产品编号"> + <h:outputText value="#{row.reagent.productSn}"/> + </p:column> + <p:column headerText="CAS"> <h:outputText value="#{row.reagent.cas}"/> </p:column> @@ -75,7 +79,7 @@ <br/> <h:form id="warehouseStockMngForm"> <p:panel styleClass="center-header"> - <p:panelGrid styleClass="filter" columns="5"> + <p:panelGrid styleClass="filter" columns="7"> <p:outputLabel value="试剂名称:"></p:outputLabel> <p:inputText value="#{warehouseStockMngController.reagentId}"></p:inputText> @@ -86,6 +90,9 @@ <f:selectItems value="#{warehouseStockMngController.supplierSelectList}" var="item" itemLabel="#{item.name}" itemValue="#{item.id}"></f:selectItems> </p:selectOneMenu> + + <p:outputLabel value="产品编号:"></p:outputLabel> + <p:inputText value="#{warehouseStockMngController.productSn}"></p:inputText> <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> </p:panelGrid> @@ -131,6 +138,10 @@ <p:column selectionMode="multiple" style="width: 30px;text-align: center;" /> <p:column headerText="试剂名称"> <h:outputText value="#{row.reagent.name}"></h:outputText> + </p:column> + + <p:column headerText="产品编号"> + <h:outputText value="#{row.reagent.productSn}"/> </p:column> <p:column headerText="CAS"> @@ -245,12 +256,22 @@ </div> <h:form id="warehouseStockMngFormForPerson"> <p:panel styleClass="center-header" style="border-bottom:none;"> - <p:panelGrid styleClass="filter" columns="5"> + <p:panelGrid styleClass="filter" columns="12"> <p:outputLabel value="试剂名称:"></p:outputLabel> <p:inputText value="#{warehouseStockMngController.reagentId}"></p:inputText> <p:outputLabel value="申领人:"></p:outputLabel> <p:inputText value="#{warehouseStockMngController.userName}"></p:inputText> + <p:outputLabel value="申购编号:"></p:outputLabel> + <p:inputText value="#{warehouseStockMngController.applyCode}"></p:inputText> + <p:outputLabel value="产品编号:"></p:outputLabel> + <p:inputText value="#{warehouseStockMngController.productSn}"></p:inputText> + <p:outputLabel value="状态:"></p:outputLabel> + <p:selectOneMenu value="#{warehouseStockMngController.status}"> + <f:selectItem itemLabel="全部" noSelectionOption="true"></f:selectItem> + <f:selectItems value="#{warehouseStockMngController.statusSelectList}" var="item" + itemLabel="#{item.text}" itemValue="#{item.key}"></f:selectItems> + </p:selectOneMenu> <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> </p:panelGrid> @@ -266,6 +287,8 @@ oncomplete="$('#showTabOrder').css('display','block');" update="@(.tmpOrder)" ></p:commandButton> + <p:commandButton update=":centerRootPanel" actionListener="#{warehouseStockMngController.onExportFileBtnClickOrder}" + ajax="false" value="导出" styleClass="new-btn" /> </p:panelGrid> <p:dataTable id="warehouseStockMngDataTableForPerson" styleClass="data-table" @@ -331,6 +354,12 @@ <p:column headerText="订单状态"> <h:outputText value="#{row.status!=null?row.status.text:''}"></h:outputText> </p:column> + <p:column headerText="课题组"> + <h:outputText value="#{row.project}" /> + </p:column> + <p:column headerText="课题组负责人"> + <h:outputText value="#{row.projectManage}" /> + </p:column> </p:dataTable> </p:panel> </h:form> -- Gitblit v1.9.2