From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 18 八月 2021 14:27:59 +0800
Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错

---
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java |   84 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 75 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index 00be2a7..aa3190d 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -1,15 +1,13 @@
 package com.nanometer.smartlab.service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+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.util.ExcelUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.dao.DataAccessException;
@@ -40,7 +38,7 @@
 
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratoryContainer> getSysLaboratoryContainerList(String laboratoryType, String laboratoryName,
-			String laboratoryId, Integer first, Integer pageSize) {
+			String laboratoryId,String project,String controllerName, Integer first, Integer pageSize) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			if (StringUtils.isNotBlank(laboratoryType)) {
@@ -52,6 +50,8 @@
 			if (StringUtils.isNotBlank(laboratoryId)) {
 				params.put("laboratoryId", laboratoryId);
 			}
+			params.put("project", project);
+			params.put("controllerName", controllerName);
 			params.put("first", first);
 			params.put("pageSize", pageSize);
 			return this.sysLaboratoryContainerDao.getSysLaboratoryContainerList(params);
@@ -65,11 +65,11 @@
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratoryContainer> getSysLaboratoryContainerList(
 			String laboratoryId) {
-		 return getSysLaboratoryContainerList(null,null,laboratoryId,null,null);
+		 return getSysLaboratoryContainerList(null,null,laboratoryId,null,null,null,null);
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public int getSysLaboratoryContainerTotalCount(String laboratoryType, String laboratoryName, String laboratoryId) {
+	public int getSysLaboratoryContainerTotalCount(String laboratoryType, String laboratoryName, String laboratoryId,String project,String controllerName) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			if (StringUtils.isNotBlank(laboratoryType)) {
@@ -81,6 +81,8 @@
 			if (StringUtils.isNotBlank(laboratoryId)) {
 				params.put("laboratoryId", laboratoryId);
 			}
+			params.put("project", project);
+			params.put("controllerName", controllerName);
 			return this.sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params);
 		} catch (DataAccessException e) {
 			logger.error(e.getMessage(), e);
@@ -185,8 +187,7 @@
 			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);
@@ -259,4 +260,69 @@
 		}
 	}
 
+    @Override
+    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);
+    }
+
+	@Override
+	public void export2Excel(List<Map> list) throws Exception {
+		Map<String, String> map = new LinkedHashMap<>();
+		map.put("labType", "实验室类型");
+		map.put("labName", "实验室名称");
+		map.put("controlName", "主控名称");
+		map.put("containerCode", "临时存储库条码");
+		map.put("containerType", "临时存储库类型");
+		map.put("infoCode", "临时存储库状态码");
+		map.put("structure", "临时存储库结构");
+		map.put("name", "临时存储库名称");
+		map.put("project", "课题组");
+		ExcelUtils.export2Excel(list,"实验室临时存储库管理",map);
+
+	}
+
+    @Override
+    public List<String> selectProjectsByContainerCode(String containerCode) {
+		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<String> ids = new ArrayList<String>();
+			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