From 13812c31cf964e42e81c776207e131446efe8cfe Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期二, 02 二月 2021 18:05:00 +0800
Subject: [PATCH] update

---
 src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java                     |    2 +
 src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml                            |    6 +-
 src/main/webapp/laboratory_mng.xhtml                                                  |    2 
 src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml                              |    1 
 src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java |   45 +++++++++++++---------
 src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml                      |    6 ++
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml                |    9 ++++
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java             |    1 
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java       |    2 
 src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java      |    4 ++
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java   |    5 ++
 11 files changed, 57 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
index 95e1f42..f00e5f5 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
@@ -2,16 +2,13 @@
 
 import java.io.InputStream;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import javax.annotation.Resource;
 
 import com.nanometer.smartlab.entity.BaseMeta;
 import com.nanometer.smartlab.entity.SysLaboratory;
-import com.nanometer.smartlab.service.SysLaboratoryService;
+import com.nanometer.smartlab.service.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -29,9 +26,6 @@
 
 import com.nanometer.smartlab.entity.SysController;
 import com.nanometer.smartlab.entity.SysLaboratoryContainer;
-import com.nanometer.smartlab.service.BaseMetaService;
-import com.nanometer.smartlab.service.SysControllerService;
-import com.nanometer.smartlab.service.SysLaboratoryContainerService;
 import com.nanometer.smartlab.util.Constants;
 import com.nanometer.smartlab.util.FacesUtils;
 
@@ -55,6 +49,8 @@
     private BaseMetaService baseMetaService;
 	@Resource
 	private SysLaboratoryService sysLaboratoryService;
+	@Resource
+	private SysProjectService sysProjectService;
 	/**
 	 * 数据源
 	 */
@@ -230,7 +226,7 @@
 	public void export2Excel(){
 
 		try {
-			List<Map> list = sysLaboratoryContainerService.exportExcelList(laboratoryType, laboratoryName);
+			List<Map> list = sysLaboratoryContainerService.exportExcelList(laboratoryType, laboratoryName,project,controllerName);
 			sysLaboratoryContainerService.export2Excel(list);
 		}catch (Exception e){
 			e.printStackTrace();
@@ -297,15 +293,28 @@
 				System.out.println("value :     "+valuesList);
 				SysLaboratoryContainer sysLaboratoryContainer=new SysLaboratoryContainer();
 				sysLaboratoryContainer.setLaboratoryId(getLabId(sysLaboratories,valuesList.get(0)));
-				sysLaboratoryContainer.setControllerCode(getConCode(sysControllers,valuesList.get(1)));
-				sysLaboratoryContainer.setContainerCode(valuesList.get(2));
-				sysLaboratoryContainer.setType(getBaseMetaId(typeList,valuesList.get(3)));
-				sysLaboratoryContainer.setInfoCode(valuesList.get(4));
-				sysLaboratoryContainer.setStructure(getBaseMetaId(struList,valuesList.get(5)));
-				sysLaboratoryContainer.setName(valuesList.get(6));
-				if(valuesList.get(3).equals("智能柜")){
-					sysLaboratoryContainer.setCharacterLeft(getBaseMetaId(charList,valuesList.get(7)));
-					sysLaboratoryContainer.setCharacterRight(getBaseMetaId(charList,valuesList.get(8)));
+				if (!valuesList.get(1).replace(" ","").isEmpty()){
+					List<String> projects = Arrays.asList(valuesList.get(1).split(","));
+					for (String project : projects) {
+						//不存再就直接推出
+						if (!sysProjectService.isExistProject(project)) {
+							throw new Exception("课题组不存在,(" + i  + "行)");
+						}
+					}
+					//都存在就设置
+					sysLaboratoryContainer.setProject(valuesList.get(1).replace(" ",""));
+				}else{
+					sysLaboratoryContainer.setProject(null);
+				}
+				sysLaboratoryContainer.setControllerCode(getConCode(sysControllers,valuesList.get(2)));
+				sysLaboratoryContainer.setContainerCode(valuesList.get(3));
+				sysLaboratoryContainer.setType(getBaseMetaId(typeList,valuesList.get(4)));
+				sysLaboratoryContainer.setInfoCode(valuesList.get(5));
+				sysLaboratoryContainer.setStructure(getBaseMetaId(struList,valuesList.get(6)));
+				sysLaboratoryContainer.setName(valuesList.get(7));
+				if(valuesList.get(4).equals("智能柜")){
+					sysLaboratoryContainer.setCharacterLeft(getBaseMetaId(charList,valuesList.get(8)));
+					sysLaboratoryContainer.setCharacterRight(getBaseMetaId(charList,valuesList.get(9)));
 				}
 				sysLaboratoryContainers.add(sysLaboratoryContainer);
 			}
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml
index b8fd00d..76dd4c5 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml
@@ -410,6 +410,7 @@
         sr.dangerous_flag,
         oa.num,
         oa.apply_user_id apply_user,
+        oa.used,
         su.`name` apply_user_id,
         su.project,
         su1.`name` as projectManage,
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
index b2dc7b2..3df1220 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
@@ -55,4 +55,6 @@
     void insertOpeReagentStatus2(OpeReagentStatus ors);
 
     int countReagentByArticleAndWarehouse(Map params);
+
+    void updateArticleNumberByRCode(String code, String articleNumber);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
index 17ab524..25b2cd3 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
@@ -425,8 +425,12 @@
 	<update id="updateByReId" parameterType="java.util.Map">
         update ope_reagent_status set reagent_id=#{newReId} where reagent_id=#{oldReId}
     </update>
+    <update id="updateArticleNumberByRCode">
+		update ope_reagent_status set article_number = #{1}
+		where reagent_code = #{0}
+	</update>
 
-<select id="selectReagentCodesByReId" parameterType="java.lang.String" resultType="java.lang.String">
+    <select id="selectReagentCodesByReId" parameterType="java.lang.String" resultType="java.lang.String">
 	select reagent_code from ope_reagent_status WHERE
 	reagent_id = #{reagentId}
 	and valid_flag = 1
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
index 6e1b950..bbec73e 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
@@ -281,14 +281,14 @@
         </if>
     </select>
     <select id="getApplyInfo" resultType="com.nanometer.smartlab.entity.dto.PersonUseDetail">
-        SELECT
+         SELECT
         ors.reagent_id reagentId,
         ors.article_number articleNumber,
         ouf.reagent_code reagentCode,
         sr.product_sn productSn,
         sr.NAME reagentName,
-        bm1.meta_value  reagentFormat,
-        CONCAT(sr.per_box,bm1.meta_value) perInfo,
+        bm.meta_value  reagentFormat,
+        CONCAT(sr.main_metering,bm1.meta_value) perInfo,
         bm2.meta_value productHome,
         bm3.meta_value controlProducts
         from `ope_use_flow` ouf
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
index 36d76e3..7b9520c 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -99,7 +99,8 @@
     bm1.meta_value containerType ,
     slc.info_code infoCode ,
     bm3.meta_value structure,
-    slc.`name` name
+    slc.`name` name,
+    slc.project
     FROM
     sys_laboratory_container slc
     LEFT JOIN base_meta bm1 ON bm1.id = slc.type
@@ -117,6 +118,12 @@
     <if test="name != null and name != ''">
       and sl.name like concat("%",#{name},"%")
     </if>
+    <if test="project != null and project != ''">
+      and slc.project like concat("%",#{project},"%")
+    </if>
+    <if test="controllerName != null and controllerName != ''">
+      and sc.controller_name like concat("%",#{controllerName},"%")
+    </if>
     order by sl.name ASC,sc.controller_name,slc.container_code,slc.name
 
   </select>
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
index da2cb69..a193774 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -105,4 +105,5 @@
 	void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus);
 
 	int getReagentNumInWarehouse(String id, String articleNumber, String warehouseId);
+
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
index ed3c861..bbbd518 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -729,7 +729,11 @@
 							List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
 							opeUseFlow.setOperateState(baseMetaList.get(0).getId());
 							this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+							//更新试剂状态表 :批号
+							opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
+
 							reagentCodes.remove(0);
+
 						}
 
 					}
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
index df8cdec..737f8dd 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
@@ -31,7 +31,7 @@
 
     Map selectLocationByContainerCode(String containerCode);
 
-    List<Map> exportExcelList(String laboratoryType, String laboratoryName);
+    List<Map> exportExcelList(String laboratoryType, String laboratoryName,String project,String controllerName);
 
     void export2Excel(List<Map> list) throws Exception;
 
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index 07ada63..5a5a6f6 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -262,10 +262,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);
     }
 
@@ -280,6 +282,7 @@
 		map.put("infoCode", "临时存储库状态码");
 		map.put("structure", "临时存储库结构");
 		map.put("name", "临时存储库名称");
+		map.put("project", "课题组");
 		ExcelUtils.export2Excel(list,"实验室临时存储库管理",map);
 
 	}
diff --git a/src/main/webapp/laboratory_mng.xhtml b/src/main/webapp/laboratory_mng.xhtml
index 0d36f3c..b93d58d 100644
--- a/src/main/webapp/laboratory_mng.xhtml
+++ b/src/main/webapp/laboratory_mng.xhtml
@@ -70,7 +70,7 @@
 					<h:outputText value="#{row.name}"></h:outputText>
 				</p:column>
 
-				<p:column headerText="所属项目组">
+				<p:column headerText="课题组">
 					<h:outputText value="#{row.project}"></h:outputText>
 				</p:column>
 

--
Gitblit v1.9.2