From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期二, 28 十一月 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug

---
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java |   92 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 70 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
index 70a1d09..2fe86b9 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
@@ -9,12 +9,12 @@
 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;
@@ -23,11 +23,6 @@
 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.*;
 
 /**
@@ -43,7 +38,6 @@
 	@Resource
 	SysUserDao sysUserDao;
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratory> getSysLaboratoryList(String type, String name,String project,Integer first, Integer pageSize) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -64,7 +58,35 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+	@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>();
@@ -83,7 +105,6 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public SysLaboratory getSysLaboratory(String id) {
 		try {
 			return this.sysLaboratoryDao.getSysLaboratory(id);
@@ -94,7 +115,16 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+	public SysLaboratory getSysLaboratorySimpleInfo(String 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) {
@@ -116,7 +146,6 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public boolean updateSysLaboratory(SysLaboratory sysLaboratory) {
 		try {
 			int row = this.sysLaboratoryDao.updateSysLaboratory(sysLaboratory);
@@ -136,7 +165,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public boolean deleteSysLaboratory(List<SysLaboratory> sysLaboratoryList) {
 		try {
 			if (sysLaboratoryList == null || sysLaboratoryList.size() == 0) {
@@ -170,7 +199,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public boolean isSysLaboratoryExist(String barCode, String editId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -186,7 +215,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public SysLaboratory getSysLaboratoryByBarCode(String barCode) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -245,16 +274,18 @@
 		map.put("barCode", "地址码");
 		map.put("location", "地址");
 		map.put("department", "部门");
+		map.put("project", "课题组");
 		ExcelUtils.export2Excel(list,"实验室信息",map);
 
 
 	}
 
 	@Override
-	public List<Map> exportLabList(String type, String name) {
+	public List<Map> 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);
 	}
 
@@ -265,21 +296,38 @@
 
 	@Override
 	public List<SysLaboratory> getSysLaboratoryListByUserId(String 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 (StringUtils.isNotBlank(user.getProject())){
+			params.put("project", user.getProject());
+			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<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> getSysLaboratoryListByDep(String depId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();

--
Gitblit v1.9.2