kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
@@ -2,16 +2,18 @@
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.nanometer.smartlab.entity.BaseMeta;
import com.nanometer.smartlab.entity.SysProject;
import com.nanometer.smartlab.entity.SysReagent;
import com.nanometer.smartlab.service.BaseMetaService;
import com.nanometer.smartlab.service.SysLaboratoryContainerService;
import com.nanometer.smartlab.service.SysProjectService;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
@@ -45,7 +47,11 @@
   @Resource
   private SysLaboratoryService sysLaboratoryService;
   @Resource
   private SysLaboratoryContainerService sysLaboratoryContainerService;
   @Resource
   private BaseMetaService baseMetaService;
   @Resource
   private SysProjectService sysProjectService;
   /**
    * 数据源
    */
@@ -53,13 +59,14 @@
   /**
    * 数据模型
    */
   private SysLaboratory sysLaboratory;
   private SysLaboratory sysLaboratory=new SysLaboratory();
   /**
    * 选中的list
    */
   private List<SysLaboratory> selectedList;
   private String type;
   private String name;
   private String project;
   private int action;
@@ -82,9 +89,22 @@
      RequestContext.getCurrentInstance().execute("PF('dialog').show()");
   }
   public String getProjectName(String project){
      if(StringUtils.isBlank(project)){
         return "";
      }
      List<String> idstrs = Arrays.asList(project.split(","));
      List<Long> ids=idstrs.stream().map(item -> Long.valueOf(item)).collect(Collectors.toList());
      List<SysProject> projects=this.sysProjectService.getProjectByIds(ids);
      if(projects==null||projects.size()==0){
         return "";
      }
      List<String> projectNames=projects.stream().map(SysProject::getProjectName).collect(Collectors.toList());
      return String.join(",",projectNames);
   }
   public void exportLab2Excel(){
      try {
         List<Map> list = sysLaboratoryService.exportLabList(type, name);
         List<SysLaboratory> list = sysLaboratoryService.exportLabList(type, name,project);
         sysLaboratoryService.exportLab2Excel(list);
         FacesUtils.info("导出成功");
      }catch (Exception e){
@@ -94,7 +114,6 @@
   }
   public void uploadFile(FileUploadEvent event) {
      System.out.println("=========导入开始=====");
      List<BaseMeta> typeList=baseMetaService.getBaseMetaList("laboratory_type");
      List<BaseMeta> departList=baseMetaService.getBaseMetaList("user_department");
      try{
@@ -150,10 +169,10 @@
               }
               valuesList.add(cellInfo);
            }
            System.out.println("value :     "+valuesList);
            if (valuesList.size() != 8){
               break;
            }
            SysLaboratory laboratory=new SysLaboratory();
            laboratory.setType(returnTypeId(typeList,valuesList.get(0)));
            laboratory.setName(valuesList.get(1));
@@ -162,10 +181,23 @@
            laboratory.setLocation1(valuesList.get(4));
            laboratory.setLocation2(valuesList.get(5));
            laboratory.setDepartment(returnDepartId(departList,valuesList.get(6)));
            if (valuesList.size() > 7 && !valuesList.get(7).replace(" ","").isEmpty()){
               List<String> projects = Arrays.asList(valuesList.get(7).split(","));
               for (String project : projects) {
                  //不存再就直接推出
                  if (!sysProjectService.isExistProject(project)) {
                     throw new Exception("课题组不存在,(" + i  + "行)");
                  }
               }
               //都存在就设置
               laboratory.setProject(valuesList.get(7).replace(" ",""));
            }else{
               laboratory.setProject(null);
            }
            sysLaboratories.add(laboratory);
         }
         sysLaboratoryService.insertSysReagentList(sysLaboratories);
         System.out.println("=========导入结束=====");
         FacesUtils.info("导入成功。");
      }catch (Exception ex) {
         ex.printStackTrace();
@@ -173,8 +205,8 @@
      }
   }
   public String returnTypeId(List<BaseMeta> list,String name){
      String id="";
   public Long returnTypeId(List<BaseMeta> list,String name){
      Long id=null;
      for(int i=0;i<list.size();i++){
         if(name.equals(list.get(i).getMetaValue())){
            id=list.get(i).getId();
@@ -183,8 +215,8 @@
      return  id;
   }
   public String returnDepartId(List<BaseMeta> list,String name){
      String id="";
   public Long returnDepartId(List<BaseMeta> list,String name){
      Long id=null;
      for(int i=0;i<list.size();i++){
         if(name.equals(list.get(i).getMetaValue())){
            id=list.get(i).getId();
@@ -227,8 +259,8 @@
            }
            //实体类重新获取项目组信息
            sysLaboratory.setProject(null);
            sysLaboratory.getProject();
//            sysLaboratory.setProject(null);
//            sysLaboratory.getProject();
            this.sysLaboratoryService.updateSysLaboratory(sysLaboratory);
            FacesUtils.info("修改成功。");
@@ -248,6 +280,7 @@
         }
         this.sysLaboratoryService.deleteSysLaboratory(this.selectedList);
         this.sysLaboratoryContainerService.delBySlcIds(this.selectedList);
         FacesUtils.info("删除成功。");
      } catch (Exception e) {
@@ -265,11 +298,12 @@
                  Map<String, Object> filters) {
               List<SysLaboratory> list = null;
               try {
                  int count = sysLaboratoryService.getSysLaboratoryTotalCount(type, name);
                  int count = sysLaboratoryService.getSysLaboratoryTotalCount(type, name,project);
                  this.setRowCount(count);
                  if (count > 0) {
                     list = sysLaboratoryService.getSysLaboratoryList(type, name, first, pageSize);
                     list = sysLaboratoryService.getSysLaboratoryList(type, name,project, first, pageSize);
                  }
                  selectedList = new ArrayList<> ();
               } catch (Exception e) {
                  logger.error(e);
               }
@@ -278,17 +312,18 @@
            @Override
            public SysLaboratory getRowData(String rowKey) {
               Iterator<SysLaboratory> iterator = this.iterator();
               if (iterator != null) {
                  SysLaboratory su = null;
                  while (iterator.hasNext()) {
                     su = iterator.next();
                     if (rowKey.equals(su.getId())) {
                        return su;
                     }
                  }
               }
               return null;
//               Iterator<SysLaboratory> iterator = this.iterator();
//               if (iterator != null) {
//                  SysLaboratory su = null;
//                  while (iterator.hasNext()) {
//                     su = iterator.next();
//                     if (rowKey.equals(su.getId())) {
//                        return su;
//                     }
//                  }
//               }
               Long id=Long.valueOf(rowKey);
               return sysLaboratoryService.getSysLaboratory(id);
            }
         };
      }
@@ -330,4 +365,12 @@
   public void setType(String type) {
      this.type = type;
   }
   public String getProject() {
      return project;
   }
   public void setProject(String project) {
      this.project = project;
   }
}