From c87738a78f57e6f68a0111d68ef3748b29dc1eda Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 23 六月 2021 12:21:59 +0800
Subject: [PATCH] 修改试剂排序

---
 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java |  182 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 150 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index f24097d..aceb47d 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -47,8 +47,8 @@
 /**
  * Created by cmower on 17/11/20.
  */
-@Controller
 @PropertySource(value = "WEB-INF/config.properties",encoding = "utf-8")
+@Controller
 @Scope("session")
 public class WarehouseStockMngController extends BaseController {
 
@@ -166,11 +166,14 @@
 	private String warehouseName;
 
 	private Integer editFlag;
+	private Integer isAllApply = 0;
 	private StreamedContent file;
 	@Value("${pdf.export.file.path}")
 	private String pdfExportFilePath;
 	@Value("${institute.name}")
 	String instituteName;
+
+	private boolean isExpired;
 
 	private Hashtable printTable;
 
@@ -423,7 +426,8 @@
 		System.out.println(getUser().getSeeFlag().getKey());
 		//SysUser u=sysUserService.getSysUser(getUserId());
 		//System.out.println(u);
-		if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) {
+		if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()
+				&& getUser().getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) {
 			editFlag=0;
 		}else{
 			editFlag=1;
@@ -530,9 +534,22 @@
 		selectedTmpOrderList = null;
 	}
 
+	public void hideOrderTmp() {
+		//清空
+		selectedTmpOrderList = null;
+		//隐藏
+		RequestContext.getCurrentInstance().execute("document.getElementById('showTabOrder').style.display='none'");
+	}
+
 	public void  clearInputStorageTmp(){
 		selectedInputStorageTmpOrderList = null;
 	}
+
+	public void hideInputStorageTmp(){
+        selectedInputStorageTmpOrderList = null;
+
+        RequestContext.getCurrentInstance().execute("document.getElementById('putInStorage').style.display='none'");
+    }
 
 	public void cancel(){
 		if (trulySelectedList == null || trulySelectedList.size()<=0){
@@ -562,6 +579,10 @@
 
 	}
 
+	public void hide(){
+		selectedTmpList = null;
+		RequestContext.getCurrentInstance().execute("document.getElementById('showTab').style.display='none'");
+	}
 	public void cancelOrderTmp(){
 		if (trulySelectedOrderList == null || trulySelectedOrderList.size()<=0){
 			FacesUtils.info("至少选择一个");
@@ -623,7 +644,7 @@
 			FacesUtils.info("至少选择一个");
 			return;
 		}
-
+		this.userId = getUser().getId();
 		this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW, Constants.PAGE_WAREHOUSE_STOCK_MNG);
 	}
 //
@@ -648,6 +669,8 @@
 			}
 		}
 		checkTable = null;
+		//
+		this.userId = selectedTmpOrderList.get(0).getApplyUser();
 
 		this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG);
 	}
@@ -779,7 +802,7 @@
 		//变换条码
 		btCodeChange();
 	}
-	
+
 	/**
 	* 取消一个仓库领取
 	*/
@@ -1054,6 +1077,7 @@
 		this.selectedInputStorageTmpOrderList = null;
 		this.endReagentCodeForPerson = null;
 		this.startReagentCodeForPerson = null;
+		this.laboratoryId = null;
 		this.useNum = null;
 		this.menuController.backToPage();
 	}
@@ -1148,7 +1172,7 @@
 				this.opeWarehouseReserveService.reagentDStore3(opeList,userId);
 
 				//扣库存
-				opeWarehouseReserveService.btWarehouseReserveReduce(list2,userId);
+				opeWarehouseReserveService.btWarehouseReserveReduce(list2);
 			}
 
 			for(int i=0;i<list2.size();i++){
@@ -1190,16 +1214,20 @@
 			printTable = new Hashtable();
 			int sum = 0;
 			List<ApplyListDto> applyList = new ArrayList<>();
-			Map applyPersonInfo = sysUserService.getUser(userId);
+			SysUser applyPersonInfo = sysUserService.getUser(userId);
 			printTable.put("head", instituteName);
 			printTable.put("title", "领用单");
-			printTable.put("applyPerson", applyPersonInfo.get("name"));
-			printTable.put("department", applyPersonInfo.get("meta_value"));
+			printTable.put("applyPerson", applyPersonInfo.getName());
+			printTable.put("department", applyPersonInfo.getDepartment());
 			printTable.put("date", Utils.now("yyyy-MM-dd"));
-			printTable.put("phone", applyPersonInfo.get("phone"));
 			String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
 			printTable.put("receiptNumber", receiptNum);
-			printTable.put("project", applyPersonInfo.get("project"));
+			if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
+				printTable.put("phone", applyPersonInfo.getPhone());
+			}
+			if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
+				printTable.put("project", applyPersonInfo.getProject());
+			}
 			SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId);
 			printTable.put("lab", lab.getName());
 			this.receiptNumber = receiptNum;
@@ -1467,14 +1495,18 @@
 			printTable = null;
 			printTable = new Hashtable();
 			List<ApplyListDto> applyList = new ArrayList<>();
-			Map applyPersonInfo = sysUserService.getUser(userId);
+			SysUser applyPersonInfo = sysUserService.getUser(userId);
 			printTable.put("head", instituteName);
 			printTable.put("title", "领用单");
-			printTable.put("applyPerson", applyPersonInfo.get("name"));
-			printTable.put("department", applyPersonInfo.get("meta_value"));
+			printTable.put("applyPerson", applyPersonInfo.getName());
+			printTable.put("department", applyPersonInfo.getDepartment());
 			printTable.put("date", Utils.now("yyyy-MM-dd"));
-			printTable.put("phone", applyPersonInfo.get("phone"));
-			printTable.put("project", applyPersonInfo.get("project"));
+			if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
+				printTable.put("phone", applyPersonInfo.getPhone());
+			}
+			if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
+				printTable.put("project", applyPersonInfo.getProject());
+			}
 			SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId);
 			String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
 			printTable.put("receiptNumber", receiptNum);
@@ -1489,11 +1521,19 @@
 				if(selectWarehouseReserve.getFlag()==1){
 					list.add(selectWarehouseReserve);
 				}else{
+					if (selectWarehouseReserve.getWarehouseId() == null) {
+						FacesUtils.warn("仓库不存在。");
+						return;
+					}
 					list2.add(selectWarehouseReserve);
 				}
 			}
 			if(list.size()>0&&list!=null){
 				for (OpeWarehouseReserve selectWarehouseReserve : list) {
+					Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId());
+					if (reagentDetail == null) {
+						throw new Exception("试剂有误,请联系管理员");
+					}
 					List<String> reagentCodes = selectWarehouseReserve.getReagentCodes();
 					if (reagentCodes != null && reagentCodes.size() > 0)
 						for (String opeReagentStatusId : reagentCodes) {
@@ -1520,7 +1560,6 @@
 							//}
 						}
 					ApplyListDto lis = new ApplyListDto();
-					Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId());
 					lis.setNum(String.valueOf(selectWarehouseReserve.getSelectNum())); //数量
 					lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
 					lis.setControlProducts((String) reagentDetail.get("controlProducts"));
@@ -1538,10 +1577,15 @@
 				//}
 				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)
 				for(int i=0;i<list2.size();i++){
+					Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId());
+					if (reagentDetail == null) {
+						throw new Exception("试剂有误,请联系管理员");
+					}
 					OpeApply opeApply=new OpeApply();
 					opeApply.setArticleNumber(list2.get(i).getArticleNumber());
 					opeApply.setHouseId(laboratoryId);
@@ -1561,7 +1605,6 @@
 					this.opeLaboratoryReserveService.insert(lr);
 					//opeList.add(this.opeApplyService.getOpeApply(list2.get(i).getId()));
 					ApplyListDto lis = new ApplyListDto();
-					Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId());
 
 					lis.setNum(String.valueOf(list2.get(i).getSelectNum())); //数量
 					lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
@@ -1593,7 +1636,7 @@
 						opeUseFlow.setHouseId(list2.get(i).getWarehouseId());
 						opeUseFlow.setContainerId(warehouseReserveInfo.get(0).getContainerId());
 						opeUseFlow.setCreateTime(warehouseReserveInfo.get(0).getUpdateTime());
-						opeUseFlow.setUserId(userId);
+						opeUseFlow.setUserId(warehouseReserveInfo.get(0).getUserId());
 						opeUseFlow.setRemainder(list2.get(i).getReagent().getMainMetering()!=null?list2.get(i).getReagent().getMainMetering():new BigDecimal(0));
 						opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
 
@@ -1633,6 +1676,17 @@
 	*/
 	public void onSaveInputWarehouseClick(){
 		try{
+		    //0.0输入校验
+            for (OpeApplyReserve opeApplyReserve : opeApplyList) {
+                if (StringUtils.isBlank(opeApplyReserve.getArticleNumber())) {
+                    throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":批号不能为空");
+                }
+                SysReagent sysReagent = sysReagentService.getSysReagent(opeApplyReserve.getReagent().getId());
+				if (sysReagent == null){
+					throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":被删除");
+				}
+            }
+
 			//用来检验提交表单得试剂条码是否重复
 			Map<String,Boolean> checkTable= new HashMap<>();
 			if (opeApplyList != null && opeApplyList.size() > 0) {
@@ -1735,11 +1789,11 @@
 					}
 
 					try {
-						int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id,reagentId, userName,productSn,applyCode,status);
+						int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply,isExpired);
 						this.setRowCount(count);
 						if (count > 0) {
-							list = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, first,
-									pageSize,productSn,applyCode,status);
+							list = opeApplyService.getOpeApplyReserveListByNameFor(id, reagentId, userName, first,
+									pageSize, productSn, applyCode, status, isAllApply,isExpired);
 						}
 					} catch (Exception e) {
 						logger.error(e);
@@ -1844,7 +1898,7 @@
 				realDataList=selectedListForPerson;
 			}else {
 				realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null,
-						null,productSn,applyCode,status);
+						null,productSn,applyCode,status,isAllApply,isExpired);
 			}
 			List<String> headerList = new ArrayList<>();
 			headerList.add("申购编号");
@@ -2250,6 +2304,7 @@
         this.reagentDStore.setReagent((SysReagent)event.getObject());
 
     	this.reagentDStoreEditFlag = Constants.ACTION_ADD;
+		onWarehouseSelectChange(null);
     	RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()");
     }
 
@@ -2259,6 +2314,11 @@
         this.changeWarehouseContainerList(warehouseId);
         this.changeWarehouseContainerPlaceList(null);
     }
+
+	public void onWarehouseContainerSelectChange(String warehouseContainerId) {
+		this.warehouseContainerPlaceList = null;
+		this.changeWarehouseContainerPlaceList(warehouseContainerId);
+	}
 
     private void changeWarehouseContainerList(String warehouseId) {
         if (StringUtils.isBlank(warehouseId)) {
@@ -2697,17 +2757,20 @@
 
 	public void resetLaboratory(){
 		laboratory = null;
+		laboratoryId = null;
 		laboratoryContainers = null;
 		//getLaboratory();
 		//getLaboratoryContainers();
 	}
 
+//	public void setContainerId(){
+//	}
 	public void resetLaboratoryContainers() {
 		laboratoryContainers = null;
 		//getLaboratoryContainers();
 	}
 	public List<SysLaboratory> getLaboratory() {
-		if(userId != null && userId.trim().length() > 0)
+ 		if(userId != null && userId.trim().length() > 0)
 		{
 
 			//Todo 修改申领人的实验室显示信息
@@ -2715,15 +2778,15 @@
 			if(this.laboratory != null && this.laboratory.size() > 0)
 			{
 				//flag =true;
-				//if(laboratoryId != null && laboratoryId.trim().length() > 0)
-				//{
-				//	this.oriLaboratoryId = this.laboratoryId;
-				//}else
-				//{
-				//	this.oriLaboratoryId = this.laboratory.get(0).getId();
-				//}
+				if(laboratoryId != null && laboratoryId.trim().length() > 0)
+				{
+					this.oriLaboratoryId = this.laboratoryId;
+				}else
+				{
+					this.laboratoryId = 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;
@@ -2743,7 +2806,7 @@
 	}
 
 	public List<SysLaboratoryContainer> getLaboratoryContainers() {
-		if(laboratoryId != null && laboratoryId.trim().length() > 0)
+ 		if(laboratoryId != null && laboratoryId.trim().length() > 0)
 		{
 			this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId);
 		}
@@ -3037,4 +3100,59 @@
 	public void setWarehouseName(String warehouseName) {
 		this.warehouseName = warehouseName;
 	}
+
+	public Integer getIsAllApply() {
+		return isAllApply;
+	}
+
+	public void setIsAllApply(Integer isAllApply) {
+		this.isAllApply = isAllApply;
+	}
+
+	public boolean getIsExpired() {
+		return isExpired;
+	}
+
+	public void setIsExpired(boolean isExpired) {
+		this.isExpired = isExpired;
+	}
+
+	//过期处理
+	public void expireOrder() {
+		//1.判断当前订单是否是已入库的状态
+		if (this.selectedListForPerson.size() < 1) {
+			FacesUtils.warn("请选择数据。");
+			return;
+		}
+		ArrayList<String> ids = new ArrayList<>();
+		for (OpeApplyReserve oa : this.selectedListForPerson) {
+			ids.add(oa.getId());
+			if (oa.getStatus() != ApplyStatus.SUPPLIER_CONFIRM) {
+				FacesUtils.warn("只能让已确认状态的单子过期。");
+				return;
+			}
+		}
+
+		opeApplyService.updateOpeApplyStatus(ApplyStatus.EXPIRED, null, ids);
+		FacesUtils.warn("操作成功。");
+
+
+	}
+
+	public void recoverOrder(){
+		if (this.selectedListForPerson.size() < 1) {
+			FacesUtils.warn("请选择数据。");
+			return;
+		}
+		ArrayList<String> ids = new ArrayList<>();
+		for (OpeApplyReserve oa : this.selectedListForPerson) {
+			ids.add(oa.getId());
+			if (oa.getStatus() != ApplyStatus.EXPIRED) {
+				FacesUtils.warn("只能让过期单子恢复确认。");
+				return;
+			}
+		}
+		opeApplyService.updateOpeApplyStatus(ApplyStatus.SUPPLIER_CONFIRM, null, ids);
+		FacesUtils.warn("操作成功。");
+	}
 }

--
Gitblit v1.9.2