From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 18 八月 2021 14:27:59 +0800
Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错

---
 src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 153 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java b/src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java
index fb59033..03dd8aa 100644
--- a/src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java
@@ -1,13 +1,24 @@
 package com.nanometer.smartlab.controller;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 import javax.annotation.Resource;
 
+import com.nanometer.smartlab.entity.SysUser;
+import com.nanometer.smartlab.entity.dto.ApplyListDto;
+import com.nanometer.smartlab.exception.BusinessException;
+import com.nanometer.smartlab.service.SysUserService;
+import com.nanometer.smartlab.util.FacesUtils;
+import com.nanometer.smartlab.util.Utils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+import org.primefaces.context.RequestContext;
 import org.primefaces.model.LazyDataModel;
 import org.primefaces.model.SortOrder;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Scope;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Controller;
 
 import com.nanometer.smartlab.entity.OpeUseFlow;
@@ -37,6 +48,12 @@
 
 	private Date endDate;
 
+	private Hashtable printTable;
+
+	private String containerCode;
+
+	private String operatestate;
+
 	public String getHouseName() {
 		return houseName;
 	}
@@ -45,13 +62,22 @@
 		this.houseName = houseName;
 	}
 
+	@Value("${institute.name}")
+	String instituteName;
+
 	@Resource
 	private OpeUseFlowService opeUseFlowService;
 
 	@Resource
 	private SysReagentService sysReagentService;
 
+	@Resource
+	private SysUserService sysUserService;
+
+
 	private List<SysReagent> reagentSelectList;
+
+	private OpeUseFlow selectedOne;
 
 	public List<SysReagent> getReagentSelectList() {
 		if (this.reagentSelectList == null) {
@@ -81,11 +107,12 @@
 						Map<String, Object> filters) {
 					List<OpeUseFlow> list = null;
 					try {
-						int count = opeUseFlowService.getOpeUseFlowTotalCountByName(houseName,reagentId, reagentCode, null, getUserId(),startDate,endDate);
+						int count = opeUseFlowService.getOpeUseFlowTotalCountByName(houseName,reagentId, reagentCode, containerCode,null, getUserId(),startDate,endDate,operatestate);
 						this.setRowCount(count);
 						if (count > 0) {
-							list = opeUseFlowService.getOpeUseFlowListByName(houseName,reagentId, reagentCode, null, getUserId(),startDate,endDate, first, pageSize);
+							list = opeUseFlowService.getOpeUseFlowListByName(houseName,reagentId, reagentCode, containerCode,null, getUserId(),startDate,endDate, first, pageSize,operatestate);
 						}
+						selectedOne = null;
 					} catch (Exception e) {
 						logger.error(e);
 					}
@@ -94,26 +121,36 @@
 
 				@Override
 				public OpeUseFlow getRowData(String rowKey) {
-					Iterator<OpeUseFlow> iterator = this.iterator();
-					OpeUseFlow temp = null;
-					if(iterator!= null)
-					{
-						while(iterator.hasNext())
-						{
-							temp=iterator.next();
-							if(rowKey.equals(temp.getId()))
-							{
-								return temp;
-							}
-						}
-					}
-
-					return temp;
+//					Iterator<OpeUseFlow> iterator = this.iterator();
+//					OpeUseFlow temp = null;
+//					if(iterator!= null)
+//					{
+//						while(iterator.hasNext())
+//						{
+//							temp=iterator.next();
+//							if(rowKey.equals(temp.getId()))
+//							{
+//								return temp;
+//							}
+//						}
+//					}
+					return opeUseFlowService.selectById(rowKey);
 				}
 			};
 		}
 
 		return dataModel;
+	}
+
+	public void export2Excel() {
+
+		List<Map> list = opeUseFlowService.selectAll(houseName,reagentId, reagentCode, containerCode,getUserId(),startDate,endDate);
+		try{
+			boolean isexport = opeUseFlowService.export2Excel(list);
+		}catch (Exception e){
+			e.printStackTrace();
+			FacesUtils.warn("导出失败");
+		}
 	}
 
 	public String getReagentId() {
@@ -132,7 +169,53 @@
 		this.reagentCode = reagentCode;
 	}
 
+	/**
+	 * 生成领用单
+	 */
+	public void generateRecipients(OpeUseFlow ouf) {
+		String receiptNumber = ouf.getReceiptNumber();
+		String code = ouf.getReagentCode();
+		//id:个数
+		Map<String, Integer> printInfo = opeUseFlowService.getRegentInfoFromReceiptNumber(receiptNumber);
+		//无法得到当时的领用单的领用人,试剂状态表没有存入,userId会随时变化
+		printTable = null;
+		Integer sum = 0;
+		printTable = new Hashtable();
+		List<ApplyListDto> applyList = new ArrayList<>();
+		//获取当时操作状态为领取的人员
+		Map<String,String>  info= opeUseFlowService.getApplyUserByReagentCode(code);
+		SysUser applyPersonInfo = sysUserService.getUser(info.get("user_id"));
+		printTable.put("head", instituteName);
+		printTable.put("title", "领用单");
+		printTable.put("applyPerson", applyPersonInfo.getName());
+		printTable.put("department", applyPersonInfo.getDepartment());
+		String time = new SimpleDateFormat("yyyy-MM-dd").format(info.get("create_time"));
+		printTable.put("date", time);
+		if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
+			printTable.put("phone", applyPersonInfo.getPhone());
+		}
+		if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
+			printTable.put("project", applyPersonInfo.getProject());
+		}
 
+		printTable.put("receiptNumber", receiptNumber);
+		for (Map.Entry<String, Integer> map  : printInfo.entrySet()) {
+			ApplyListDto lis = new ApplyListDto();
+			Map reagentDetail = sysReagentService.getReagentDetail(map.getKey());
+			lis.setNum(map.getValue().toString()); //数量
+			lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
+			lis.setControlProducts((String) reagentDetail.get("controlProducts"));
+			lis.setProductName((String) reagentDetail.get("name"));
+			lis.setReagentFormat((String) reagentDetail.get("reagentFormat"));
+			lis.setProductCode((String)reagentDetail.get("productCode"));
+			lis.setMemo((String)reagentDetail.get("memo"));
+			applyList.add(lis);
+			sum += map.getValue();
+		}
+		applyList.add(new ApplyListDto("合计", "", "", "", "", String.valueOf(sum), ""));
+		printTable.put("applyList", applyList);
+
+	}
 	public Date getStartDate() {
 		if (null == startDate){
 			Date now = new Date();
@@ -143,6 +226,26 @@
 		}else {
 			return startDate;
 		}
+	}
+
+	//报废试剂
+	public void scrapReagent(){
+		if (this.selectedOne == null) {
+			FacesUtils.warn("请选择");
+			return;
+		}
+		try {
+			String reagentCode = this.selectedOne.getReagentCode();
+			String reagentId = this.selectedOne.getReagent().getId();
+			opeUseFlowService.scrapReagent(reagentId, reagentCode, getUserId());
+			FacesUtils.warn("操作成功");
+		} catch (BusinessException e) {
+			FacesUtils.warn(e.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			FacesUtils.warn("操作失败");
+		}
+
 	}
 
 	public void setStartDate(Date startDate) {
@@ -160,4 +263,37 @@
 	public void setEndDate(Date endDate) {
 		this.endDate = endDate;
 	}
+
+
+	public Hashtable getPrintTable() {
+		return printTable;
+	}
+
+	public void setPrintTable(Hashtable printTable) {
+		this.printTable = printTable;
+	}
+
+	public String getContainerCode() {
+		return containerCode;
+	}
+
+	public void setContainerCode(String containerCode) {
+		this.containerCode = containerCode;
+	}
+
+	public OpeUseFlow getSelectedOne() {
+		return selectedOne;
+	}
+
+	public void setSelectedOne(OpeUseFlow selectedOne) {
+		this.selectedOne = selectedOne;
+	}
+
+	public void setOperatestate(String operatestate) {
+		this.operatestate = operatestate;
+	}
+
+	public String getOperatestate(){
+		return operatestate;
+	}
 }

--
Gitblit v1.9.2