| | |
| | | import com.nanometer.smartlab.dao.SysLaboratoryDao; |
| | | import com.nanometer.smartlab.dao.SysUserDao; |
| | | import com.nanometer.smartlab.entity.SysLaboratory; |
| | | import com.nanometer.smartlab.entity.SysProject; |
| | | import com.nanometer.smartlab.entity.SysUser; |
| | | import com.nanometer.smartlab.entity.dto.LaboratoryVo; |
| | | import com.nanometer.smartlab.exception.AlarmCode; |
| | | import com.nanometer.smartlab.exception.AlarmException; |
| | | import com.nanometer.smartlab.exception.BusinessException; |
| | | import com.nanometer.smartlab.exception.ExceptionEnumCode; |
| | | import com.nanometer.smartlab.model.CommonPage; |
| | | 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; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | 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.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by cmower on 17/11/20. |
| | |
| | | @Resource |
| | | SysUserDao sysUserDao; |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public List<SysLaboratory> getSysLaboratoryList(String type, String name, Integer first, Integer pageSize) { |
| | | public List<SysLaboratory> getSysLaboratoryList(String type, String name,String project,Integer first, Integer pageSize) { |
| | | try { |
| | | Map<String, Object> params = new HashMap<String, Object>(); |
| | | if (StringUtils.isNotBlank(type)) { |
| | |
| | | if (StringUtils.isNotBlank(name)) { |
| | | params.put("name", "%" + name + "%"); |
| | | } |
| | | params.put("project", project); |
| | | params.put("first", first); |
| | | params.put("pageSize", pageSize); |
| | | return this.sysLaboratoryDao.getSysLaboratoryList(params); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public int getSysLaboratoryTotalCount(String type, String name) { |
| | | @Override |
| | | public CommonPage<SysLaboratory> getSysLaboratoryList(Integer pageNum, Integer pageSize, String name) { |
| | | if(pageNum==null||pageNum<1){ |
| | | pageNum=1; |
| | | } |
| | | if(pageSize==null||pageSize<1){ |
| | | pageSize=10; |
| | | } |
| | | if(pageSize>50){ |
| | | pageSize=50; |
| | | } |
| | | Map<String, Object> params = new HashMap<>(); |
| | | if(StringUtils.isNotBlank(name)){ |
| | | params.put("name","%"+name+"%"); |
| | | } |
| | | params.put("first", (pageNum-1)*pageSize); |
| | | params.put("pageSize", pageSize); |
| | | CommonPage commonPage=new CommonPage(); |
| | | commonPage.setPageNum(pageNum); |
| | | commonPage.setPageSize(pageSize); |
| | | Long total=new Long(sysLaboratoryDao.getSysLaboratoryTotalCount(params)); |
| | | commonPage.setTotal(total); |
| | | commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize)); |
| | | List<SysLaboratory> sysReagents=sysLaboratoryDao.getSysLaboratorySimpleInfoList(params); |
| | | commonPage.setList(sysReagents); |
| | | return commonPage; |
| | | } |
| | | |
| | | |
| | | public int getSysLaboratoryTotalCount(String type, String name,String project) { |
| | | try { |
| | | Map<String, Object> params = new HashMap<String, Object>(); |
| | | if (StringUtils.isNotBlank(type)) { |
| | |
| | | if (StringUtils.isNotBlank(name)) { |
| | | params.put("name", "%" + name + "%"); |
| | | } |
| | | params.put("project", project); |
| | | return this.sysLaboratoryDao.getSysLaboratoryTotalCount(params); |
| | | } catch (DataAccessException e) { |
| | | logger.error(e.getMessage(), e); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public SysLaboratory getSysLaboratory(String id) { |
| | | public SysLaboratory getSysLaboratory(Long id) { |
| | | try { |
| | | return this.sysLaboratoryDao.getSysLaboratory(id); |
| | | } catch (DataAccessException e) { |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public SysLaboratory getSysLaboratorySimpleInfo(Long id) { |
| | | try { |
| | | return this.sysLaboratoryDao.getSysLaboratorySimpleInfo(id); |
| | | } catch (DataAccessException e) { |
| | | logger.error(e.getMessage(), e); |
| | | throw new BusinessException(ExceptionEnumCode.DB_ERR, |
| | | MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e); |
| | | } |
| | | } |
| | | |
| | | public SysLaboratory insertSysLaboratory(SysLaboratory sysLaboratory) { |
| | | try { |
| | | if (sysLaboratory.getId() == null) { |
| | | sysLaboratory.setId(IDUtils.uuid()); |
| | | } |
| | | // if (sysLaboratory.getId() == null) { |
| | | // sysLaboratory.setId(IDUtils.uuid()); |
| | | // } |
| | | this.sysLaboratoryDao.insertSysLaboratory(sysLaboratory); |
| | | return sysLaboratory; |
| | | } catch (DuplicateKeyException ex) { |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public boolean updateSysLaboratory(SysLaboratory sysLaboratory) { |
| | | try { |
| | | int row = this.sysLaboratoryDao.updateSysLaboratory(sysLaboratory); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | |
| | | public boolean deleteSysLaboratory(List<SysLaboratory> sysLaboratoryList) { |
| | | try { |
| | | if (sysLaboratoryList == null || sysLaboratoryList.size() == 0) { |
| | | return false; |
| | | } |
| | | |
| | | List<String> ids = new ArrayList<String>(); |
| | | List<Long> ids = new ArrayList<Long>(); |
| | | for (SysLaboratory sysLaboratory : sysLaboratoryList) { |
| | | ids.add(sysLaboratory.getId()); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public boolean isSysLaboratoryExist(String barCode, String editId) { |
| | | |
| | | public boolean isSysLaboratoryExist(String barCode, Long editId) { |
| | | try { |
| | | Map<String, Object> params = new HashMap<String, Object>(); |
| | | params.put("barCode", barCode); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | |
| | | public SysLaboratory getSysLaboratoryByBarCode(String barCode) { |
| | | try { |
| | | Map<String, Object> params = new HashMap<String, Object>(); |
| | |
| | | sysLaboratory.setId(sysLaboratoryTmpl.getId()); |
| | | this.sysLaboratoryDao.updateLabExport(sysLaboratory); |
| | | }else{ |
| | | if (sysLaboratoryTmpl == null) { |
| | | sysLaboratory.setId(IDUtils.uuid()); |
| | | } |
| | | // if (sysLaboratoryTmpl == null) { |
| | | // sysLaboratory.setId(IDUtils.uuid()); |
| | | // } |
| | | this.sysLaboratoryDao.insertSysLaboratory(sysLaboratory); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void exportLab2Excel(List<Map> list) throws Exception { |
| | | public void exportLab2Excel(List<SysLaboratory> list) throws Exception { |
| | | |
| | | Map<String, String> map = new LinkedHashMap<>(); |
| | | map.put("type", "类型"); |
| | |
| | | map.put("barCode", "地址码"); |
| | | map.put("location", "地址"); |
| | | map.put("department", "部门"); |
| | | ExcelUtils.export2Excel(list,"实验室信息",map); |
| | | map.put("project", "课题组"); |
| | | List<Map> labList=new ArrayList<>(); |
| | | for(SysLaboratory sysLaboratory:list){ |
| | | Map<String,Object> labmap=new HashMap<>(); |
| | | labmap.put("type",sysLaboratory.getTypeName()); |
| | | labmap.put("name",sysLaboratory.getName()); |
| | | labmap.put("infoCode",sysLaboratory.getInfoCode()); |
| | | labmap.put("barCode",sysLaboratory.getBarCode()); |
| | | labmap.put("location",sysLaboratory.getLocation()); |
| | | labmap.put("department",sysLaboratory.getDepartmentName()); |
| | | List<SysProject> projects=sysLaboratory.getProjects(); |
| | | List<String> projectNames=new ArrayList<>(); |
| | | if(projects!=null&&projects.size()>0){ |
| | | projectNames=projects.stream().map(SysProject::getProjectName).collect(Collectors.toList()); |
| | | } |
| | | labmap.put("project",String.join(",",projectNames)); |
| | | labList.add(labmap); |
| | | } |
| | | ExcelUtils.export2Excel(labList,"实验室信息",map); |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map> exportLabList(String type, String name) { |
| | | public List<SysLaboratory> exportLabList(String type, String name,String project) { |
| | | Map<String,String> params = new HashMap<>(); |
| | | params.put("type", type); |
| | | params.put("name", name); |
| | | params.put("project", project); |
| | | return sysLaboratoryDao.exportLabList(params); |
| | | } |
| | | |
| | | @Override |
| | | public List<LaboratoryVo.Laboratory> getLaboratoryByProject(String project) { |
| | | return sysLaboratoryDao.getLaboratoryByProject(project); |
| | | public List<LaboratoryVo.Laboratory> getLaboratoryByProject(Long projectId) { |
| | | return sysLaboratoryDao.getLaboratoryByProject(projectId); |
| | | } |
| | | |
| | | @Override |
| | | public List<SysLaboratory> getSysLaboratoryListByUserId(String userId) { |
| | | |
| | | public List<SysLaboratory> getSysLaboratoryListByUserId(Long userId) { |
| | | //1.根据用户的课题组获取实验室,没有就按照部门 |
| | | SysUser user = sysUserDao.getSysUser(userId); |
| | | Map<String,Object> params = new HashMap<>(); |
| | | params.put("project", user.getProject()); |
| | | List<SysLaboratory> list = sysLaboratoryDao.getSysLaboratoryList(params); |
| | | if (list.size() < 1) { |
| | | if (user.getProjectId()!=null){ |
| | | params.put("project", user.getProjectId()); |
| | | List<SysLaboratory> list = sysLaboratoryDao.getSysLaboratoryList(params); |
| | | if (list.size() < 1) { |
| | | return this.getSysLaboratoryListByDep(user.getDepartment()); |
| | | }else { |
| | | return list; |
| | | } |
| | | }else { |
| | | return this.getSysLaboratoryListByDep(user.getDepartment()); |
| | | }else{ |
| | | return list; |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public List<SysLaboratory> getSysLaboratoryListByDep(String depId) { |
| | | public List<Map> getPersonInChargeByProjects(String projectStr) { |
| | | List<Map> result = new ArrayList<>(); |
| | | String[] projectSplit = projectStr.split(","); |
| | | for (int i = 0; i < projectSplit.length; i++) { |
| | | String project = projectSplit[i]; |
| | | if (StringUtils.isBlank(project)) continue; |
| | | |
| | | List<Map> tail = sysLaboratoryDao.getPersonInCharge(project); |
| | | result.addAll(tail); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<SysLaboratory> getLaboratoryByProjectId(Long projectId) { |
| | | return sysLaboratoryDao.getLaboratoryByProjectId(projectId); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<SysLaboratory> getSysLaboratoryListByDep(Long depId) { |
| | | try { |
| | | Map<String, Object> params = new HashMap<String, Object>(); |
| | | if (StringUtils.isNotBlank(depId)) { |
| | | if (depId!=null) { |
| | | params.put("department", depId); |
| | | } |
| | | return this.sysLaboratoryDao.getSysLaboratoryList(params); |