From 94e89a3391c7f28d9002fbcc0cafdbf6d05d7e73 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期三, 03 二月 2021 15:48:28 +0800
Subject: [PATCH] 取消领用

---
 src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml            |    1 
 src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml                     |    4 ++
 src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java |   25 +++++++++++-
 src/main/webapp/laboratory_container_mng.xhtml                                 |    4 +
 src/main/webapp/personal_use_info.xhtml                                        |   11 +++++
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java  |   17 ++++----
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java      |    3 +
 src/main/webapp/resources/template/实验室临时存储库导入模板.xlsx                           |    0 
 8 files changed, 52 insertions(+), 13 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/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
index bbec73e..dfc4fef 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,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>
 
     <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 63eae1b..e977123 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
@@ -214,6 +214,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/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 30b76c3..fe3ca0b 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;
@@ -804,15 +805,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);
@@ -826,8 +827,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/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

--
Gitblit v1.9.2