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