From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 01 七月 2024 10:58:35 +0800
Subject: [PATCH] change

---
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java |  139 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 102 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index ab07a2d..4e15afb 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -1,13 +1,17 @@
 package com.nanometer.smartlab.service;
 
-import java.util.*;
-
-import javax.annotation.Resource;
-
 import com.google.common.collect.ImmutableBiMap;
-import com.nanometer.smartlab.entity.*;
-import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
+import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
+import com.nanometer.smartlab.entity.SysLaboratory;
+import com.nanometer.smartlab.entity.SysLaboratoryContainer;
+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.springframework.dao.DataAccessException;
@@ -17,13 +21,8 @@
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
-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.util.IDUtils;
-import com.nanometer.smartlab.util.MessageUtil;
+import javax.annotation.Resource;
+import java.util.*;
 
 /**
  * Created by cmower on 17/11/20.
@@ -38,7 +37,7 @@
 
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratoryContainer> getSysLaboratoryContainerList(String laboratoryType, String laboratoryName,
-			String laboratoryId, Integer first, Integer pageSize) {
+			Long laboratoryId,String project, Integer first, Integer pageSize) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			if (StringUtils.isNotBlank(laboratoryType)) {
@@ -47,9 +46,10 @@
 			if (StringUtils.isNotBlank(laboratoryName)) {
 				params.put("laboratoryName", "%" + laboratoryName + "%");
 			}
-			if (StringUtils.isNotBlank(laboratoryId)) {
+			if (laboratoryId!=null) {
 				params.put("laboratoryId", laboratoryId);
 			}
+			params.put("project", project);
 			params.put("first", first);
 			params.put("pageSize", pageSize);
 			return this.sysLaboratoryContainerDao.getSysLaboratoryContainerList(params);
@@ -60,14 +60,46 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
-	public List<SysLaboratoryContainer> getSysLaboratoryContainerList(
-			String laboratoryId) {
-		 return getSysLaboratoryContainerList(null,null,laboratoryId,null,null);
+	@Override
+	public CommonPage<SysLaboratoryContainer> getSysLaboratoryContainerList(Integer pageNum, Integer pageSize, String name, String controllerName) {
+		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("laboratoryName","%" + name+ "%");
+		}
+		if (StringUtils.isNotBlank(controllerName)) {
+			params.put("controllerName", "%" + controllerName + "%");
+		}
+		params.put("first", (pageNum-1)*pageSize);
+		params.put("pageSize", pageSize);
+		CommonPage commonPage=new CommonPage();
+		commonPage.setPageNum(pageNum);
+		commonPage.setPageSize(pageSize);
+		Long total=new Long(sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params));
+		commonPage.setTotal(total);
+		commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize));
+		List<SysLaboratoryContainer> sysReagents=sysLaboratoryContainerDao.getSysLaboratoryContainerSimpleInfoList(params);
+		commonPage.setList(sysReagents);
+		return commonPage;
+
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public int getSysLaboratoryContainerTotalCount(String laboratoryType, String laboratoryName, String laboratoryId) {
+	public List<SysLaboratoryContainer> getSysLaboratoryContainerList(
+			Long laboratoryId) {
+		 return getSysLaboratoryContainerList(null,null,laboratoryId,null,null,null);
+	}
+
+	@Transactional(propagation = Propagation.REQUIRED)
+	public int getSysLaboratoryContainerTotalCount(String laboratoryType, String laboratoryName, Long laboratoryId,String project) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			if (StringUtils.isNotBlank(laboratoryType)) {
@@ -76,9 +108,10 @@
 			if (StringUtils.isNotBlank(laboratoryName)) {
 				params.put("laboratoryName", "%" + laboratoryName + "%");
 			}
-			if (StringUtils.isNotBlank(laboratoryId)) {
+			if (laboratoryId!=null) {
 				params.put("laboratoryId", laboratoryId);
 			}
+			params.put("project", project);
 			return this.sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params);
 		} catch (DataAccessException e) {
 			logger.error(e.getMessage(), e);
@@ -88,7 +121,7 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public SysLaboratoryContainer getSysLaboratoryContainer(String id) {
+	public SysLaboratoryContainer getSysLaboratoryContainer(Long id) {
 		try {
 			return this.sysLaboratoryContainerDao.getSysLaboratoryContainer(id);
 		} catch (DataAccessException e) {
@@ -112,9 +145,9 @@
 	@Transactional(propagation = Propagation.REQUIRED)
 	public SysLaboratoryContainer insertSysLaboratoryContainer(SysLaboratoryContainer sysLaboratoryContainer) {
 		try {
-			if (sysLaboratoryContainer.getId() == null) {
-				sysLaboratoryContainer.setId(IDUtils.uuid());
-			}
+//			if (sysLaboratoryContainer.getId() == null) {
+//				sysLaboratoryContainer.setId(IDUtils.uuid());
+//			}
 			this.sysLaboratoryContainerDao.insertSysLaboratoryContainer(sysLaboratoryContainer);
 			this.sysLaboratoryContainerDao.updateSLContainerUser(sysLaboratoryContainer);
 			return sysLaboratoryContainer;
@@ -159,7 +192,7 @@
 				return false;
 			}
 
-			List<String> ids = new ArrayList<String>();
+			List<Long> ids = new ArrayList<Long>();
 			for (SysLaboratoryContainer sysLaboratoryContainer : sysLaboratoryContainerList) {
 				ids.add(sysLaboratoryContainer.getId());
 				this.sysLaboratoryContainerDao.updateSLContainerUser(sysLaboratoryContainer);
@@ -178,13 +211,12 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public boolean isSysLaboratoryContainerExist(String containerCode, String editId) {
+	public boolean isSysLaboratoryContainerExist(String containerCode, Long editId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("containerCode", containerCode);
 			params.put("editId", editId);
-
-			int count = this.sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params);
+			int count = this.sysLaboratoryContainerDao.getSysLaboratoryContainerExist(params);
 			return count > 0;
 		} catch (DataAccessException e) {
 			logger.error(e.getMessage(), e);
@@ -210,16 +242,16 @@
 				container.setId(containermpl.getId());
 				this.sysLaboratoryContainerDao.updateSysLaboratoryContainer(container);
 			}else{
-				if (containermpl == null) {
-					container.setId(IDUtils.uuid());
-				}
+//				if (containermpl == null) {
+//					container.setId(IDUtils.uuid());
+//				}
 				this.sysLaboratoryContainerDao.insertSysLaboratoryContainer(container);
 			}
 		}
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public void updateInfo(Float temp,Float humidity,Float voc1,String containerId,String flag) {
+	public void updateInfo(Float temp,Float humidity,Float voc1,Long containerId,String flag) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("temp", temp);
@@ -258,10 +290,12 @@
 	}
 
     @Override
-    public List<Map> exportExcelList(String laboratoryType, String laboratoryName) {
+    public List<Map> exportExcelList(String laboratoryType, String laboratoryName,String project,String controllerName) {
 		Map<String, String> params = new HashMap<>();
 		params.put("type", laboratoryType);
 		params.put("name", laboratoryName);
+		params.put("project", project);
+		params.put("controllerName", controllerName);
 		return sysLaboratoryContainerDao.exportExcelList(params);
     }
 
@@ -276,17 +310,48 @@
 		map.put("infoCode", "临时存储库状态码");
 		map.put("structure", "临时存储库结构");
 		map.put("name", "临时存储库名称");
+		map.put("project", "课题组");
 		ExcelUtils.export2Excel(list,"实验室临时存储库管理",map);
 
 	}
 
     @Override
     public List<String> selectProjectsByContainerCode(String containerCode) {
-		String projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode);
-		if  (projects != null){
-			return Arrays.asList(projects.split(","));
+		List<String> projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode);
+		if  (projects.size() > 0){
+			List<String> projectList = new ArrayList<>();
+			for (String project : projects){
+				if (StringUtils.isNotBlank(project)){
+					projectList.addAll(Arrays.asList(project.split(",")));
+				}
+			}
+			return projectList;
 		}
 		return null;
     }
 
+	@Override
+	public boolean delBySlcIds(List<SysLaboratory> sysLaboratoryList) {
+		try {
+			if (sysLaboratoryList == null || sysLaboratoryList.size() == 0) {
+				return false;
+			}
+
+			List<Long> ids = new ArrayList<Long>();
+			for (SysLaboratory sysLaboratory : sysLaboratoryList) {
+				ids.add(sysLaboratory.getId());
+			}
+
+			int row = this.sysLaboratoryContainerDao.delSlcIds(ids);
+			return row != 0;
+		} catch (DataIntegrityViolationException ex) {
+			logger.warn(ex.getMessage(), ex);
+			throw new AlarmException(AlarmCode.DATA_CONFICT, MessageUtil.getMessage(AlarmCode.DATA_CONFICT.getCode()));
+		} catch (DataAccessException ex) {
+			logger.error(ex.getMessage(), ex);
+			throw new BusinessException(ExceptionEnumCode.DB_ERR,
+					MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
+		}
+	}
+
 }

--
Gitblit v1.9.2