gdg
2020-12-08 39d6fc5c2983a6afd757ed271301ebe65ac871b7
模块:实验室管理
新增:导出
提出:秦老师
已修改6个文件
79 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/laboratory_mng.xhtml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
@@ -82,6 +82,17 @@
        RequestContext.getCurrentInstance().execute("PF('dialog').show()");
    }
    public void exportLab2Excel(){
        try {
            List<Map> list = sysLaboratoryService.exportLabList(type, name);
            sysLaboratoryService.exportLab2Excel(list);
            FacesUtils.info("导出成功");
        }catch (Exception e){
            e.printStackTrace();
            FacesUtils.warn("导出失败");
        }
    }
    public void uploadFile(FileUploadEvent event) {
        System.out.println("=========导入开始=====");
        List<BaseMeta> typeList=baseMetaService.getBaseMetaList("laboratory_type");
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
@@ -27,4 +27,6 @@
    public SysLaboratory getSysLaboratoryByBarCodeForExport(String barCode) throws DataAccessException;
    public  void updateLabExport(SysLaboratory sysLaboratory);
    List<Map> exportLabList(Map params);
}
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -48,6 +48,29 @@
    </if>
  </select>
  <select id="exportLabList" parameterType="java.util.Map" resultType="java.util.Map">
    SELECT bm1.meta_value type ,sl.name,sl.info_code infoCode,sl.bar_code barCode,
    CASE
    WHEN (ISNULL(location1)=1) || (LENGTH(trim(location1))=0)
    THEN
    CONCAT(location1,location2)
    ELSE
    CONCAT(location1,'-',location2)
    END
    location,
    bm2.meta_value department
    from sys_laboratory as sl
    LEFT JOIN base_meta bm1 on bm1.id = sl.type
    left JOIN base_meta bm2 on bm2.id = sl.department
    where sl .valid_flag = 1
    <if test="name != null and name != ''">
      and sl.name like concat("%",#{name},"%")
    </if>
    <if test="type != null and type != ''">
      and sl.type = #{type};
    </if>
  </select>
  <select id="getSysLaboratoryTotalCount" parameterType="java.util.Map" resultType="int">
    select count(1) from sys_laboratory as su
    where su.valid_flag = 1
src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
@@ -3,6 +3,7 @@
import com.nanometer.smartlab.entity.SysLaboratory;
import java.util.List;
import java.util.Map;
/**
 * Created by cmower on 17/11/20.
@@ -31,4 +32,7 @@
    void insertSysReagentList(List<SysLaboratory> sysLaboratoryList);
    void exportLab2Excel(List<Map> list) throws  Exception;
    List<Map> exportLabList(String type, String name);
}
src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
@@ -6,10 +6,12 @@
import com.nanometer.smartlab.exception.AlarmException;
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
import com.nanometer.smartlab.util.ExcelUtils;
import com.nanometer.smartlab.util.IDUtils;
import com.nanometer.smartlab.util.MessageUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DuplicateKeyException;
@@ -18,10 +20,12 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
/**
 * Created by cmower on 17/11/20.
@@ -224,6 +228,29 @@
        }
    }
    @Override
    public void exportLab2Excel(List<Map> list) throws Exception {
        Map<String, String> map = new LinkedHashMap<>();
        map.put("type", "类型");
        map.put("name", "名称");
        map.put("infoCode", "状态码");
        map.put("barCode", "地址码");
        map.put("location", "地址");
        map.put("department", "部门");
        ExcelUtils.export2Excel(list,"实验室信息",map);
    }
    @Override
    public List<Map> exportLabList(String type, String name) {
        Map<String,String> params = new HashMap<>();
        params.put("type", type);
        params.put("name", name);
        return sysLaboratoryDao.exportLabList(params);
    }
    @Override
    @Transactional(propagation = Propagation.REQUIRED)
    public List<SysLaboratory> getSysLaboratoryListByDep(String depId) {
src/main/webapp/laboratory_mng.xhtml
@@ -28,7 +28,7 @@
            </p:panelGrid>
        </p:panel>
        <p:panel styleClass="center-body">
            <p:panelGrid columns="5" styleClass="btn">
            <p:panelGrid columns="6" styleClass="btn">
                <p:commandButton value="新建" styleClass="new-btn" process="@this"
                    actionListener="#{laboratoryMngController.onNewBtnClick}"
                    oncomplete="PF('dialog').show();" update=":dialog,:dialogForm"></p:commandButton>
@@ -41,6 +41,8 @@
                </p:commandButton>
                <p:commandButton value="导入" styleClass="import-btn" onclick="importLab()"
                ></p:commandButton>
                <p:commandButton value="导出" styleClass="new-btn" ajax="false"  actionListener="#{laboratoryMngController.exportLab2Excel}"
                />
                <a href="resources/template/实验室导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
                <script>
                    function importLab(){