From 1116c716786ef8c0ca2075d403b22483a36e98b6 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期四, 28 一月 2021 14:28:46 +0800
Subject: [PATCH] 个人领用

---
 src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java |  182 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 178 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
index 0b1b469..bd1da35 100644
--- a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
@@ -1,16 +1,22 @@
 package com.nanometer.smartlab.controller;
 
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 import javax.annotation.Resource;
 
+import com.nanometer.smartlab.entity.OpeUseFlow;
+import com.nanometer.smartlab.entity.SysLaboratory;
+import com.nanometer.smartlab.entity.dto.ApplyListDto;
+import com.nanometer.smartlab.entity.dto.PersonUseDetail;
+import com.nanometer.smartlab.service.SysLaboratoryService;
 import com.nanometer.smartlab.util.FacesUtils;
+import com.nanometer.smartlab.util.Utils;
 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.stereotype.Controller;
 
@@ -38,6 +44,10 @@
 
 	@Resource
 	private SysReagentService sysReagentService;
+	@Resource
+	private SysLaboratoryService sysLaboratoryService;
+	@Value("${institute.name}")
+	String instituteName;
 
 	/**
 	 * 数据源
@@ -48,6 +58,13 @@
 	private String applyPerson;
 	private Date startTime;
 	private Date endTime;
+	private String project;
+	private String department;
+	private String receiptNumber;
+	private LazyDataModel<OpeUseFlow> dataModel2;
+	private OpeUseFlow selectOne;
+	private List<PersonUseDetail> personUseDetail;
+	private Hashtable<String,Object> printTable;
 
 	private List<OpeReagentStatus> selectedList;
 	private List<SysReagent> reagentSelectList;
@@ -109,7 +126,75 @@
 
 
 	}
+	/**
+	* 生成领用单
+	*/
 
+	public void generateReceipt() {
+		if (this.selectOne == null) {
+			FacesUtils.warn("请选择数据");
+			return;
+		}
+
+		printTable = new Hashtable<>();
+		printTable.put("head", instituteName);
+		printTable.put("title", "领用单");
+		printTable.put("applyPerson", selectOne.getUserName());
+		printTable.put("department", selectOne.getDepartment());
+		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+		printTable.put("date", dateFormat.format(selectOne.getCreateTime()));
+		printTable.put("phone", selectOne.getPhone());
+		printTable.put("receiptNumber", selectOne.getReceiptNumber());
+		printTable.put("project", selectOne.getProject());
+		SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(selectOne.getHouseId());
+		printTable.put("lab", sysLaboratory.getName());
+		//整理数据
+		List<PersonUseDetail> applyInfo = opeUseFlowService.getApplyInfo(selectOne.getReceiptNumber());
+		assert applyInfo.size() > 0;
+		List<ApplyListDto> applyList = new ArrayList<>();
+		Map<String, Integer> map = new HashMap<>();
+		for (PersonUseDetail pud : applyInfo) {
+			if (map.containsKey(pud.getReagentId())) {
+				map.put(pud.getReagentId(), map.get(pud.getReagentId()) + 1);
+			}else{
+				map.put(pud.getReagentId(), 1);
+			}
+		}
+		int sum = 0;
+		for (Map.Entry<String,Integer> entry : map.entrySet()) {
+			ApplyListDto apply = new ApplyListDto();
+			for (PersonUseDetail pud : applyInfo) {
+				if (entry.getKey().equals(pud.getReagentId())) {
+					apply.setControlProducts(pud.getControlProducts());
+					apply.setMainMetering(pud.getPerInfo());
+					apply.setNum(entry.getValue().toString());
+					apply.setProductCode(pud.getProductSn());
+					apply.setProductName(pud.getReagentName());
+					apply.setReagentFormat(pud.getReagentFormat());
+					applyList.add(apply);
+					sum += entry.getValue();
+					break;
+				}
+			}
+		}
+
+		applyList.add(new ApplyListDto("合计", "", "", "", "", String.valueOf(sum), ""));
+		printTable.put("applyList", applyList);
+		RequestContext.getCurrentInstance().execute("PF('printDialog').show()");
+	}
+
+	/**
+	* 查看详情
+	*/
+
+	public void detailInfo() {
+		if (this.selectOne == null) {
+			FacesUtils.warn("请选择数据");
+		}
+
+		personUseDetail = opeUseFlowService.getApplyInfo(selectOne.getReceiptNumber());
+
+	}
 
 	@SuppressWarnings("serial")
 	public LazyDataModel<OpeReagentStatus> getDataModel() {
@@ -151,6 +236,45 @@
 		return dataModel;
 	}
 
+	public LazyDataModel<OpeUseFlow> getDataModel2() {
+		if (this.dataModel2 == null) {
+			this.dataModel2 = new LazyDataModel<OpeUseFlow>() {
+				@Override
+				public List<OpeUseFlow> load(int first, int pageSize, String sortField, SortOrder sortOrder,
+												   Map<String, Object> filters) {
+					List<OpeUseFlow> list = null;
+					try {
+						int count = opeUseFlowService.getPersonalUseInfoCount(reagentCode, getUserId(),startTime,endTime,receiptNumber,department,project);
+						this.setRowCount(count);
+						if (count > 0) {
+							list = opeUseFlowService.getPersonalUseInfoList
+									(reagentCode,  getUserId(),startTime,endTime ,receiptNumber,department,project,first,pageSize);
+						}
+					} catch (Exception e) {
+						logger.error(e);
+					}
+					return list;
+				}
+
+				@Override
+				public OpeUseFlow getRowData(String rowKey) {
+					Iterator<OpeUseFlow> iterator = this.iterator();
+					if (iterator != null) {
+						OpeUseFlow su = null;
+						while (iterator.hasNext()) {
+							su = iterator.next();
+							if (rowKey.equals(su.getReceiptNumber())) {
+								return su;
+							}
+						}
+					}
+					return null;
+				}
+			};
+		}
+		return dataModel2;
+	}
+
 	public String getReagentId() {
 		return reagentId;
 	}
@@ -191,4 +315,54 @@
 	public void setEndTime(Date endTime) {
 		this.endTime = endTime;
 	}
+
+	public String getProject() {
+		return project;
+	}
+
+	public void setProject(String project) {
+		this.project = project;
+	}
+
+	public String getDepartment() {
+		return department;
+	}
+
+	public void setDepartment(String department) {
+		this.department = department;
+	}
+
+	public String getReceiptNumber() {
+		return receiptNumber;
+	}
+
+	public void setReceiptNumber(String receiptNumber) {
+		this.receiptNumber = receiptNumber;
+	}
+
+
+	public OpeUseFlow getSelectOne() {
+		return selectOne;
+	}
+
+	public void setSelectOne(OpeUseFlow selectOne) {
+		this.selectOne = selectOne;
+	}
+
+
+	public List<PersonUseDetail> getPersonUseDetail() {
+		return personUseDetail;
+	}
+
+	public void setPersonUseDetail(List<PersonUseDetail> personUseDetail) {
+		this.personUseDetail = personUseDetail;
+	}
+
+	public Hashtable getPrintTable() {
+		return printTable;
+	}
+
+	public void setPrintTable(Hashtable printTable) {
+		this.printTable = printTable;
+	}
 }

--
Gitblit v1.9.2