From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Tue, 28 Nov 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug
---
src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 121 insertions(+), 24 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..03812b6 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -1,15 +1,17 @@
package com.nanometer.smartlab.service;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-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;
@@ -19,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.
@@ -40,7 +37,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 +49,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);
@@ -62,14 +61,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(
+ String laboratoryId) {
+ return getSysLaboratoryContainerList(null,null,laboratoryId,null,null,null,null);
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED)
+ 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 +112,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 +218,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 +291,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