src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java
@@ -165,6 +165,19 @@ return reagentStoreDataModel; } public void exportLabStock() { try { List<Map> list = opeReagentStatusService.selectExportList(reagentId, null, ArrivalStatus.LABORATORY.getKey(), reagentCode, getUserId()); opeReagentStatusService.exportLabStock2Excel(list); FacesUtils.info("导出成功"); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("导出失败"); } } public int getAction() { return action; } src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
@@ -57,4 +57,6 @@ int countReagentByArticleAndWarehouse(Map params); void updateArticleNumberByRCode(String code, String articleNumber); List<Map> selectExportList(Map params); } src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
@@ -557,4 +557,77 @@ and house_id = #{warehouseId} </if> </select> <select id="selectExportList" resultType="java.util.Map"> select oa.article_number articleNumber, oa.reagent_code reagentCode, oa.remainder, bm1.meta_value productHome, bm2.meta_value reagentFomart, sr.name reagentName, sr.cas cas, <if test="status != null"> <choose> <when test="status == 1 or status == 2"> swc.container_code as containerCode, sw.name as houseName, </when> </choose> </if> ss.name as supplierName from ope_reagent_status as oa left join sys_reagent sr on oa.reagent_id = sr.id left join base_meta bm1 on bm1.id = sr.product_home left join base_meta bm2 on bm2.id = sr.reagent_format left join sys_supplier as ss on sr.supplier_id = ss.id left join sys_user as su on oa.user_id = su.id <if test="status != null"> <choose> <when test="status == 1"> left join sys_warehouse as sw on sw.id = oa.house_id left join sys_warehouse_container as swc on swc.id = oa.container_id </when> <when test="status == 2"> left join sys_laboratory as sw on sw.id = oa.house_id left join sys_laboratory_container as swc on swc.id = oa.container_id </when> </choose> </if> where oa.valid_flag = 1 <if test="reagentId != null and reagentId != ''"> and oa.reagent_id = #{reagentId} </if> <if test="userId != null and userId != ''"> and oa.user_id = #{userId} </if> <if test="department != null and department != ''"> and sw.department = #{department} </if> <if test="departmentUserIds != null"> and oa.user_id in <foreach collection="departmentUserIds" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="articleNumber != null and articleNumber != ''"> and oa.article_number = #{articleNumber} </if> <if test="editId != null and editId != ''"> and oa.id != #{editId} </if> <if test="reagentCode != null and reagentCode != ''"> and oa.reagent_code like concat("%",#{reagentCode},"%") </if> <if test="status != null"> and oa.status = #{status} </if> <if test="name != null and name != ''"> and sr.name like concat("%",#{name},"%") </if> <choose> <when test="status == 2 and project != null and project != ''"> and sw.project like concat("%",#{project},"%") </when> </choose> order by oa.reagent_code asc </select> </mapper> src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -7,6 +7,7 @@ import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * Created by maweiqing on 17/12/12. @@ -107,4 +108,8 @@ int getReagentNumInWarehouse(String id, String articleNumber, String warehouseId); List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId); void exportLabStock2Excel(List<Map> list) throws Exception; } src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -11,6 +11,7 @@ import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.PersonUseDetail; import com.nanometer.smartlab.entity.enumtype.ValidFlag; import com.nanometer.smartlab.util.ExcelUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.context.annotation.Lazy; @@ -1084,4 +1085,46 @@ } /** * @Description: 导出 * @date 2021/4/22 10:33 */ @Override public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId) { Map<String, Object> params = new HashMap<>(); params.put("name", name); params.put("articleNumber", articleNumber); params.put("status", status); if (StringUtils.isNotBlank(userId)) { SysUser sysUser = sysUserService.getSysUser(userId); BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId()); //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下) if (!"系统管理员".equals(baseRole.getName())) { if (StringUtils.isBlank(sysUser.getProject())) { return null; } params.put("project", sysUser.getProject()); } } params.put("reagentCode", reagentCode); return opeReagentStatusDao.selectExportList(params); } @Override public void exportLabStock2Excel(List<Map> list) throws Exception { Map<String, String> map = new LinkedHashMap<>(); map.put("houseName", "实验室名称"); map.put("containerCode", "临时存储库条码"); map.put("reagentName", "试剂名称"); map.put("reagentCode", "试剂条形码"); map.put("articleNumber", "批号"); map.put("cas", "cas"); map.put("productHome", "厂家"); map.put("supplierName", "供应商"); map.put("remainder", "残存量"); ExcelUtils.export2Excel(list,"实验室库存",map); } } src/main/webapp/laboratory_stock_mng.xhtml
@@ -15,7 +15,7 @@ <p:panel styleClass="center-header"> <p:outputLabel styleClass="title" value="实验室库存管理"></p:outputLabel> <p:panel styleClass="center-header"> <p:panelGrid styleClass="filter" columns="7"> <p:panelGrid styleClass="filter" columns="8"> <p:outputLabel value="试剂名称:"></p:outputLabel> <p:inputText value="#{laboratoryStockMngController.reagentId}"></p:inputText> @@ -32,6 +32,9 @@ <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> <p:commandButton value="导出" styleClass="store-btn" ajax="false" actionListener="#{laboratoryStockMngController.exportLabStock}" update=":centerRootPanel"></p:commandButton> <p:commandButton value="临时存放" styleClass="store-btn" process="@form" actionListener="#{laboratoryStockMngController.onStoreBtnClick}" update=":centerRootPanel"></p:commandButton> </p:panelGrid>