From 5bd11ed20c2e283cb3c0ce82c0f90a9ce3425417 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期四, 07 一月 2021 10:50:45 +0800
Subject: [PATCH] 领用优化

---
 src/main/webapp/warehouse_reagent_use_person.xhtml                               |    4 
 src/main/webapp/warehouse_stock_mng.xhtml                                        |   84 +++++++++++++++++++++++++--
 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java |   90 +++++++++++++++++++++++++++++
 3 files changed, 166 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index d4a90d4..19fcba6 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -229,6 +229,8 @@
 	 * 选中的list
 	 */
 	private List<OpeApplyReserve> selectedListForPerson;
+	private List<OpeApplyReserve> selectedTmpOrderList;
+	private List<OpeApplyReserve> trulySelectedOrderList;
 
 	/**
 	 * 条形码对话框中选择的条形码集合
@@ -387,9 +389,40 @@
 		}
 	}
 
+	public void addOrder() {
+		logger.info("WarehouseStockMngController onUseBtnClick start");
+		if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) {
+			FacesUtils.warn("请选择数据。");
+			return;
+		}
+		if (selectedTmpOrderList !=null && selectedTmpOrderList.size()>0){
+			ArrayList<OpeApplyReserve> tmp = new ArrayList<>();
+			selectedListForPerson.forEach(opeApplyReserve -> {
+				AtomicBoolean flag = new AtomicBoolean(false);
+				selectedTmpOrderList.forEach(opeApplyReserve1 -> {
+					if (opeApplyReserve.getId().equals(opeApplyReserve1.getId())){
+						flag.set(true);
+					}
+
+				});
+				if(!flag.get()) {
+					tmp.add(opeApplyReserve);
+				}
+			});
+			selectedTmpOrderList.addAll(tmp);
+		}else{
+			selectedTmpOrderList = new ArrayList<>();
+			selectedTmpOrderList.addAll(selectedListForPerson);
+		}
+	}
+
 
 	public void  clear(){
 		selectedTmpList = null;
+	}
+
+	public void  clearOrderTmp(){
+		selectedTmpOrderList = null;
 	}
 
 	public void cancel(){
@@ -421,6 +454,35 @@
 
 	}
 
+	public void cancelOrderTmp(){
+		if (trulySelectedOrderList == null || trulySelectedOrderList.size()<=0){
+			FacesUtils.info("至少选择一个");
+			return;
+		}
+
+		if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){
+			FacesUtils.info("至少选择一个");
+			return;
+		}
+
+		ArrayList<Integer> indexs = new ArrayList<>();
+		for (int i =0;i<trulySelectedOrderList.size();i++){
+			for (int j = 0; j < selectedTmpOrderList.size(); j++) {
+				if(trulySelectedOrderList.get(i).getId().equals(selectedTmpOrderList.get(j).getId()))
+				{
+					indexs.add(i);
+				}
+			}
+		}
+
+		if (indexs.size()>0){
+			indexs.forEach(index -> {
+				selectedTmpOrderList.remove(selectedTmpOrderList.get(index));
+			});
+		}
+
+	}
+
 	public void onUseBtnClick(){
 		if (selectedTmpList == null || selectedTmpList.size()<=0){
 			FacesUtils.info("至少选择一个");
@@ -430,6 +492,14 @@
 		this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW, Constants.PAGE_WAREHOUSE_STOCK_MNG);
 	}
 //
+	public void onUseBtnClickOrderTmp(){
+		if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){
+			FacesUtils.info("至少选择一个");
+			return;
+		}
+
+		this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG);
+	}
 
 	public void onUseBtnClickForPerson() {
 		logger.info("WarehouseStockMngController onUseBtnClickForPerson start");
@@ -578,7 +648,7 @@
 
 			// 将当前选择条形码保存到库存中
 			List<String> codeList=new ArrayList<>();
-			for (OpeApplyReserve opeApplyReserve : this.selectedListForPerson) {
+			for (OpeApplyReserve opeApplyReserve : this.selectedTmpOrderList) {
 				if (opeApplyReserve.getId().equals(this.selectedOpeApplyReserve.getId())) {
 					OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber());
 					if(wa==null){
@@ -665,7 +735,7 @@
 			}
 
 			List<String> codeList=new ArrayList<>();
-			for (OpeWarehouseReserve opeWarehouseReserve : this.selectedList) {
+			for (OpeWarehouseReserve opeWarehouseReserve : this.selectedTmpList) {
 				if (opeWarehouseReserve.getId().equals(this.selectedOpeWarehouseReserve.getId())) {
 					if(this.useNum > opeWarehouseReserve.getReserve())
 					{
@@ -2120,4 +2190,20 @@
 	public void setShowCodes(List<String> showCodes) {
 		this.showCodes = showCodes;
 	}
+
+	public List<OpeApplyReserve> getSelectedTmpOrderList() {
+		return selectedTmpOrderList;
+	}
+
+	public void setSelectedTmpOrderList(List<OpeApplyReserve> selectedTmpOrderList) {
+		this.selectedTmpOrderList = selectedTmpOrderList;
+	}
+
+	public List<OpeApplyReserve> getTrulySelectedOrderList() {
+		return trulySelectedOrderList;
+	}
+
+	public void setTrulySelectedOrderList(List<OpeApplyReserve> trulySelectedOrderList) {
+		this.trulySelectedOrderList = trulySelectedOrderList;
+	}
 }
diff --git a/src/main/webapp/warehouse_reagent_use_person.xhtml b/src/main/webapp/warehouse_reagent_use_person.xhtml
index df762d8..a3073a5 100644
--- a/src/main/webapp/warehouse_reagent_use_person.xhtml
+++ b/src/main/webapp/warehouse_reagent_use_person.xhtml
@@ -22,7 +22,7 @@
 									var="item"
 									dropdown="true"
 									styleClass="apply-user-autocomplete"
-									itemLabel="#{!empty warehouseStockMngController.userId?warehouseStockMngController.getSelectedUserById(warehouseStockMngController.userId).name : item.name}"
+									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>
@@ -67,7 +67,7 @@
 
 			<p:dataTable id="warehouseReagentUseDataTableForPerson" styleClass="data-table"
 				paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom"
-				lazy="true" value="#{warehouseStockMngController.selectedListForPerson}" var="row"
+				lazy="true" value="#{warehouseStockMngController.selectedTmpOrderList}" var="row"
 				rowKey="#{row.id}" emptyMessage="无数据">
 				<p:column headerText="试剂名称">
 					<h:outputText value="#{row.reagent.name}"></h:outputText>
diff --git a/src/main/webapp/warehouse_stock_mng.xhtml b/src/main/webapp/warehouse_stock_mng.xhtml
index 8b869c9..d13c3f1 100644
--- a/src/main/webapp/warehouse_stock_mng.xhtml
+++ b/src/main/webapp/warehouse_stock_mng.xhtml
@@ -14,18 +14,18 @@
 			<div id ="showTab" style="display: none">
 			<h:form id="tmp">
 				<p:panel styleClass="center-body">
-				<p:panelGrid columns="3" styleClass="btn" rendered="#{warehouseStockMngController.editFlag==1}">
+				<p:panelGrid columns="3" styleClass="btn">
 					<p:commandButton value="删除" styleClass="del-btn" process="@form"
 									 actionListener="#{warehouseStockMngController.cancel}"
-									 disabled="#{warehouseStockMngController.editFlag==0}" update=":centerRootPanel"/>
+									 update="@(.tempTable)"/>
 					<p:commandButton value="清空" styleClass="del-btn" process="@form"
 									 actionListener="#{warehouseStockMngController.clear}"
-									 disabled="#{warehouseStockMngController.editFlag==0}" update=":centerRootPanel"/>
+									 update="@(.tempTable)"/>
 					<p:commandButton value="提交" styleClass="edit-btn" process="@form"
 									 actionListener="#{warehouseStockMngController.onUseBtnClick}"
-									 disabled="#{warehouseStockMngController.editFlag==0}" update=":centerRootPanel"/>
+									 update=":centerRootPanel"/>
 				</p:panelGrid>
-					<p:dataTable id="tempTable" styleClass="data-table"
+					<p:dataTable id="tempTable" styleClass="tempTable data-table"
 								 paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom"
 								 lazy="true" value="#{warehouseStockMngController.selectedTmpList}" var="row"
 								 selection="#{warehouseStockMngController.trulySelectedList}"
@@ -95,7 +95,7 @@
 							actionListener="#{warehouseStockMngController.add}"
 										 disabled="#{warehouseStockMngController.editFlag==0}"
 							oncomplete="$('#showTab').css('display','block');"
-							update=":centerRootPanel"></p:commandButton>
+							update="@(.tempTable)"></p:commandButton>
 						<p:commandButton value="入库" styleClass="ruku-btn"
                                  process="@form"
 										 disabled="#{warehouseStockMngController.editFlag==0}"
@@ -335,6 +335,70 @@
 		-->
 
 		<p:tab title="订单领取">
+				<div id ="showTabOrder" style="display: none">
+					<h:form id="tmpOrder" styleClass="tmpOrder">
+						<p:panel styleClass="center-body">
+					<p:panelGrid columns="3" styleClass="btn">
+						<p:commandButton value="删除" styleClass="del-btn" process="@form"
+										 actionListener="#{warehouseStockMngController.cancelOrderTmp}"
+										  update="@(.tmpOrder)"
+										 />
+						<p:commandButton value="清空" styleClass="del-btn" process="@form"
+										 actionListener="#{warehouseStockMngController.clearOrderTmp}"
+										 update="@(.tmpOrder)"
+										/>
+						<p:commandButton value="提交" styleClass="edit-btn" process="@form"
+										 actionListener="#{warehouseStockMngController.onUseBtnClickOrderTmp}"
+										 update=":centerRootPanel"/>
+					</p:panelGrid>
+					<p:dataTable id="tempOrderTable" styleClass="data-table"
+								 paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom"
+								 lazy="true" value="#{warehouseStockMngController.selectedTmpOrderList}" var="row"
+								 selection="#{warehouseStockMngController.trulySelectedOrderList}"
+								 rowKey="#{row.id}"
+								 emptyMessage="无数据" rows="20" pageLinks="5">
+						<p:column selectionMode="multiple" style="width: 30px;text-align: center;" />
+						<p:column headerText="试剂名称">
+							<h:outputText value="#{row.reagent.name}"/>
+						</p:column>
+
+						<p:column headerText="产品编号">
+							<h:outputText value="#{row.reagent.productSn}"/>
+						</p:column>
+
+						<p:column headerText="CAS">
+							<h:outputText value="#{row.reagent.cas}"/>
+						</p:column>
+
+						<p:column headerText="规格">
+							<h:outputText value="#{row.reagent.reagentFormat}"/>
+						</p:column>
+
+						<p:column headerText="危险性质">
+							<h:outputText value="#{row.reagent.reagentCharacter}"/>
+						</p:column>
+						<p:column headerText="价格">
+							<h:outputText value="#{row.reagent.price}"/>
+						</p:column>
+
+						<p:column headerText="厂商">
+							<h:outputText
+									value="#{row.reagent.productHome}"/>
+						</p:column>
+
+						<p:column headerText="包装">
+							<h:outputText
+									value="#{''.concat(row.reagent.mainMetering).concat(baseMetaService.getBaseMetaValue(row.reagent.reagentUnit))}"/>
+						</p:column>
+
+						<p:column headerText="批号">
+							<h:outputText value="#{row.articleNumber}"/>
+						</p:column>
+
+					</p:dataTable>
+				</p:panel>
+					</h:form>
+				</div>
 			<h:form id="warehouseStockMngFormForPerson">
 				<p:panel styleClass="center-header" style="border-bottom:none;">
 					<p:panelGrid styleClass="filter" columns="5">
@@ -351,9 +415,13 @@
 				<p:panel styleClass="center-body">
 
 					<p:panelGrid columns="2" styleClass="btn" rendered="#{warehouseStockMngController.editFlag==1}">
+
 						<p:commandButton value="领用" styleClass="edit-btn" process="@form"
-							actionListener="#{warehouseStockMngController.onUseBtnClickForPerson}"
-							update=":centerRootPanel"></p:commandButton>
+										 actionListener="#{warehouseStockMngController.addOrder}"
+										 disabled="#{warehouseStockMngController.editFlag==0}"
+										 oncomplete="$('#showTabOrder').css('display','block');"
+										 update="@(.tmpOrder)"
+										 	></p:commandButton>
 					</p:panelGrid>
 
 					<p:dataTable id="warehouseStockMngDataTableForPerson" styleClass="data-table"

--
Gitblit v1.9.2