From 1afdf3622484b9a54c4cc4642e38bbf5c815884f Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期四, 04 二月 2021 17:48:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/webapp/warehouse_reagent_use.xhtml                                      |    4 +-
 src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml              |    1 
 src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml                       |   15 +++++++
 src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java   |   25 +++++++++++-
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java    |   17 ++++----
 src/main/webapp/resources/template/实验室临时存储库导入模板.xlsx                             |    0 
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java           |    5 ++
 src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java              |    1 
 src/main/webapp/laboratory_container_mng.xhtml                                   |    4 +
 src/main/webapp/personal_use_info.xhtml                                          |   11 +++++
 src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java                      |    2 +
 src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java          |    5 ++
 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java |    3 +
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java        |    3 +
 14 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
index 72494d8..692a763 100644
--- a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
@@ -9,6 +9,7 @@
 import com.nanometer.smartlab.entity.SysLaboratory;
 import com.nanometer.smartlab.entity.dto.ApplyListDto;
 import com.nanometer.smartlab.entity.dto.PersonUseDetail;
+import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
 import com.nanometer.smartlab.service.SysLaboratoryService;
 import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.Utils;
@@ -118,8 +119,28 @@
 	public void reagentReturn(){
 
 		try {
-			List<OpeReagentStatus> list=this.selectedList;
-			opeReagentStatusService.batchUpdateStatusByCode(list);
+			if (selectOne == null) {
+				FacesUtils.warn("请选择单号");
+				return;
+			}
+			//判断单子下的试剂是否全部 为 领用待入库-1,不是就不能取消领用
+			List<PersonUseDetail> applyList = opeUseFlowService.getApplyInfo(selectOne.getReceiptNumber());
+			boolean flag = applyList.stream().allMatch(pu ->
+						opeReagentStatusService.getOpeReagentStatusByReagentCode(pu.getReagentCode() ).getStatus()== ArrivalStatus.NOREGISTER);
+			if (!flag) {
+				FacesUtils.warn("试剂当前状态不可以取消领用");
+				return;
+			}
+
+			//没有批次号不可以取消领用
+			boolean flag1 = applyList.stream().allMatch(pu -> pu.getArticleNumber() != null);
+			if (!flag1) {
+				FacesUtils.warn("没有批次号不可以取消领用");
+				return;
+			}
+
+			//取消领用
+			opeReagentStatusService.batchUpdateStatusByCode(applyList);
 			FacesUtils.info("已取消试剂");
 		}catch (Exception e){
 			FacesUtils.info("请选择数据");
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index d88f662..4b4decd 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -1541,6 +1541,7 @@
 				//}
 				this.opeWarehouseReserveService.claim(list, userId,projectNum);
 			}
+
 			if(list2.size()>0&&list2!=null){
 				List<OpeApply> opeList=new ArrayList<>();
 				//this.opeApplyService.getOpeApplyList(null,null,null,null,null)
@@ -2726,7 +2727,7 @@
 				//	this.oriLaboratoryId = this.laboratory.get(0).getId();
 				//}
 
-				this.laboratoryId= laboratoryId==null?this.laboratory.get(0).getId():laboratoryId;
+				this.laboratoryId = this.laboratory.get(0).getId();
 				this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId);
 			}else {
 				this.oriLaboratoryId = null;
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
index 629acdf..21ea7e0 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
@@ -44,4 +44,6 @@
     List<PersonUseDetail> getApplyInfo(Map params);
 
     int getApplyInfoSize(Map params);
+
+    int countOpeUseFlow(OpeUseFlow opeUseFlow);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
index bbec73e..be2c5f2 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
@@ -198,6 +198,7 @@
         </if>
         WHERE ouf.operatestate = #{operatestate}
         and   LENGTH(trim(ouf.receipt_number))>0
+        and ouf.valid_flag = 1
         <if test="reagentCode !=null and reagentCode != ''">
             and ouf.reagent_code like concat("%",#{reagentCode},"%")
         </if>
@@ -250,6 +251,7 @@
         </if>
         WHERE ouf.operatestate = #{operatestate}
         and   LENGTH(trim(ouf.receipt_number))>0
+        and ouf.valid_flag = 1
         <if test="reagentCode !=null and reagentCode != ''">
             and ouf.reagent_code like concat("%",#{reagentCode},"%")
         </if>
@@ -300,6 +302,7 @@
         LEFT JOIN base_meta bm3 on bm3.id = sr.control_products
         WHERE ouf.operatestate = #{operatestate}
         and ouf.receipt_number = #{receiptNumber}
+        and ouf.valid_flag = 1
     </select>
 
 
@@ -315,6 +318,18 @@
         LEFT JOIN base_meta bm3 on bm3.id = sr.control_products
         WHERE ouf.operatestate = #{operatestate}
         and ouf.receipt_number = #{receiptNumber}
+        and ouf.valid_flag = 1
+    </select>
+    <select id="countOpeUseFlow" resultType="java.lang.Integer" parameterType="com.nanometer.smartlab.entity.OpeUseFlow">
+        select  count(0)
+        from ope_use_flow
+        where reagent_code = #{reagentCode}
+        and status = #{status}
+        and house_id = #{houseId}
+        and container_id = #{containerId}
+        and create_time = #{createTime}
+        and operatestate =#{operateState}
+        and valid_flag = 1
     </select>
 
     <insert id="insertOpeUseFlow" parameterType="com.nanometer.smartlab.entity.OpeUseFlow">
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
index 4522bcc..40d4822 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
@@ -216,6 +216,7 @@
 
     <update id="updateCount" parameterType="java.util.Map">
         update ope_warehouse_reserve set reserve=reserve+1 where reagent_id=#{reagentId} and article_number=#{articleNumber}
+        and valid_flag = 1
     </update>
     <update id="updateBtReserve">
         UPDATE ope_warehouse_reserve
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index 2a393df..3be8272 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -1714,8 +1714,11 @@
 					continue;
 				}
 			}
+             int count = opeUseFlowService.getOpeUseFlow(opeUseFlow);
+             if (count < 1) {
 
-			this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+                 this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+             }
     	 }
     }
 
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
index a193774..a36d097 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -1,6 +1,7 @@
 package com.nanometer.smartlab.service;
 
 import com.nanometer.smartlab.entity.*;
+import com.nanometer.smartlab.entity.dto.PersonUseDetail;
 import com.nanometer.smartlab.exception.BusinessException;
 
 import java.util.Date;
@@ -88,7 +89,7 @@
 
 	void updateTimeByCode(String code);
 
-	void batchUpdateStatusByCode(List<OpeReagentStatus> list) throws Exception;
+	void batchUpdateStatusByCode(List<PersonUseDetail> list) throws Exception;
 
 	public List<OpeReagentStatus> selectByReId(String id);
 	public void updateByReId(String newReId,String oldReId);
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
index c3ab8f4..33cd818 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -9,6 +9,7 @@
 import com.google.common.collect.ImmutableMap;
 import com.nanometer.smartlab.dao.*;
 import com.nanometer.smartlab.entity.*;
+import com.nanometer.smartlab.entity.dto.PersonUseDetail;
 import com.nanometer.smartlab.entity.enumtype.ValidFlag;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
@@ -806,15 +807,15 @@
 	*/
 	@Override
 	@Transactional
-	public void batchUpdateStatusByCode(List<OpeReagentStatus> list) throws Exception {
-		if(list == null || list.size() <1){
-			throw new Exception("没有选择试剂");
-		}
+	public void batchUpdateStatusByCode(List<PersonUseDetail> applyList) throws Exception {
 
-		for (OpeReagentStatus opeReagentStatus : list) {
+
+
+		for (PersonUseDetail pu : applyList) {
+
 			//变更试剂状态为入库
 			Map<String, Object> params1 = new HashMap<>();
-			String reagentCode = opeReagentStatus.getReagentCode();
+			String reagentCode = pu.getReagentCode();
 			params1.put("code", reagentCode);
 			params1.put("status",ArrivalStatus.WAREHOUSE);
 			opeReagentStatusDao.updateStatusByCode(params1);
@@ -828,8 +829,8 @@
 
 			//增加数据库存
 			Map<String, Object> params3 = new HashMap<>();
-			String reagentId = opeReagentStatus.getReagentId();
-			String articleNumber = opeReagentStatus.getArticleNumber();
+			String reagentId = pu.getReagentId();
+			String articleNumber = pu.getArticleNumber();
 			params3.put("reagentId", reagentId);
 			params3.put("articleNumber", articleNumber);
 			opeWarehouseReserveDao.updateCount(params3);
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
index 952b16d..9a32592 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
@@ -56,4 +56,5 @@
 
 	int getApplyInfoSize(String receiptNumber);
 
+    int getOpeUseFlow(OpeUseFlow opeUseFlow);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
index 40352f7..d0fe81d 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
@@ -539,4 +539,9 @@
 
     }
 
+    @Override
+    public int getOpeUseFlow(OpeUseFlow opeUseFlow) {
+        return opeUseFlowDao.countOpeUseFlow(opeUseFlow);
+    }
+
 }
diff --git a/src/main/webapp/laboratory_container_mng.xhtml b/src/main/webapp/laboratory_container_mng.xhtml
index 25fb1be..51dd735 100644
--- a/src/main/webapp/laboratory_container_mng.xhtml
+++ b/src/main/webapp/laboratory_container_mng.xhtml
@@ -34,7 +34,7 @@
 			</p:panelGrid>
 		</p:panel>
 		<p:panel styleClass="center-body">
-			<p:panelGrid columns="5" styleClass="btn">
+			<p:panelGrid columns="6" styleClass="btn">
 				<p:commandButton value="新建" styleClass="new-btn" process="@form"
 					actionListener="#{laboratoryContainerMngController.onNewBtnClick}"
 					 update=":dialog,:dialogForm"></p:commandButton>
@@ -50,6 +50,8 @@
 				></p:commandButton>
 				<p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="${laboratoryContainerMngController.export2Excel}"
 				/>
+				<a href="resources/template/实验室临时存储库导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
+
 				<script>
 					function importCon(){
 						$("#laboratoryContainerMngForm\\:importReagentBtn_input").click();
diff --git a/src/main/webapp/personal_use_info.xhtml b/src/main/webapp/personal_use_info.xhtml
index de19120..438722f 100644
--- a/src/main/webapp/personal_use_info.xhtml
+++ b/src/main/webapp/personal_use_info.xhtml
@@ -72,8 +72,16 @@
 
 					<p:commandLink styleClass="search" process="@form" update="@form"/>
 
-					<p:commandButton value="生成领用单"
+					<p:commandButton value="取消领用"
 									 style="background: #b94a48; border: 1px solid #b94a48"
+									 styleClass="store-btn"
+									 process="@form"
+									 actionListener="#{personalUseInfoController.reagentReturn}"
+									 update="@this">
+						<p:confirm header="确认" message="是否确认取消领用?"/>
+					</p:commandButton>
+
+					<p:commandButton value="生成领用单"
 									 styleClass="store-btn"
 									 process="@form"
 									 actionListener="#{personalUseInfoController.generateReceipt}"
@@ -85,6 +93,7 @@
 									 oncomplete="PF('dialog').show()"/>
 
 
+
 			</p:panelGrid>
 			</p:panel>
 		</p:panel>
diff --git "a/src/main/webapp/resources/template/\345\256\236\351\252\214\345\256\244\344\270\264\346\227\266\345\255\230\345\202\250\345\272\223\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/webapp/resources/template/\345\256\236\351\252\214\345\256\244\344\270\264\346\227\266\345\255\230\345\202\250\345\272\223\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..7134041
--- /dev/null
+++ "b/src/main/webapp/resources/template/\345\256\236\351\252\214\345\256\244\344\270\264\346\227\266\345\255\230\345\202\250\345\272\223\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git a/src/main/webapp/warehouse_reagent_use.xhtml b/src/main/webapp/warehouse_reagent_use.xhtml
index 1e1f563..39f3acd 100644
--- a/src/main/webapp/warehouse_reagent_use.xhtml
+++ b/src/main/webapp/warehouse_reagent_use.xhtml
@@ -24,7 +24,7 @@
 									var="item"
 									dropdown="true"
 									styleClass="apply-user-autocomplete"
-									itemLabel="#{!empty warehouseStockMngController.userId ?warehouseStockMngController.getSelectedUserById(warehouseStockMngController.userId).name : null}"
+									itemLabel="#{!empty warehouseStockMngController.userId ?warehouseStockMngController.getSelectedUserById(warehouseStockMngController.userId).name : ' '}"
 									itemValue="#{item.id}" forceSelection="true">
 						<p:ajax event="itemSelect" listener="#{warehouseStockMngController.resetLaboratory()}" process="@this" update="@this,experments,stacks" />
 						<p:column>
@@ -43,7 +43,7 @@
 						 id="experments">
 						<f:selectItems value="#{warehouseStockMngController.laboratory}"
 							var="item" itemLabel="#{item.name}" itemValue="#{item.id}"></f:selectItems>
-						<f:ajax listener="#{warehouseStockMngController.resetLaboratoryContainers}" update="stacks"/>
+						<f:ajax listener="#{warehouseStockMngController.resetLaboratoryContainers}" render="stacks"/>
 					</p:selectOneMenu>
 					<p:outputLabel value="实验室试剂柜:"></p:outputLabel>
 					<p:selectOneMenu value="#{warehouseStockMngController.laboratoryContainerId}" id="stacks"

--
Gitblit v1.9.2