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/dao/OpeUseFlowDao.xml | 107 +++++++ src/main/java/com/nanometer/smartlab/entity/dto/PersonUseDetail.java | 98 +++++++ src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java | 182 ++++++++++++ src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java | 9 src/main/webapp/personal_use_info.xhtml | 278 ++++++++++++++++--- src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java | 48 +++ src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java | 7 src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java | 61 ++++ 8 files changed, 736 insertions(+), 54 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; + } } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java index 3b913f9..352e62f 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.OpeUseFlow; +import com.nanometer.smartlab.entity.dto.PersonUseDetail; import org.apache.ibatis.annotations.Param; import org.springframework.dao.DataAccessException; @@ -35,4 +36,10 @@ List<Map> getRegentInfoFromReceiptNumber(String receiptNumber); Map getUserIdByReagentCode(String reagentCode, String id); + + int countPersonalUseInfo(Map params); + + List<OpeUseFlow> selectPersonalUseInfo(Map params); + + List<PersonUseDetail> getApplyInfo(Map params); } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml index d0b9b40..96315bf 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml @@ -179,6 +179,113 @@ and valid_flag = 1 limit 1 </select> + <select id="countPersonalUseInfo" resultType="java.lang.Integer"> + select count(0) from ( + SELECT count(0) + FROM + ope_use_flow ouf + LEFT JOIN sys_user su on su.id = ouf.user_id + LEFT JOIN base_meta bm on bm.id = ouf.operatestate + LEFT JOIN ope_reagent_status ors on ors.reagent_code = ouf.reagent_code + LEFT JOIN sys_reagent sr on sr.id = ors.reagent_id + left join base_meta bm1 on bm1.id = su.department + <if test="userId !=null and userId != ''"> + LEFT JOIN sys_reagent sr2 on sr2.id = ouf.user_id + </if> + WHERE ouf.operatestate = #{operatestate} + and LENGTH(trim(ouf.receipt_number))>0 + <if test="reagentCode !=null and reagentCode != ''"> + and ouf.reagent_code like concat("%",#{reagentCode},"%") + </if> + <if test="startTime !=null and startTime != ''"> + and ouf.create_time >#{startTime} + </if> + <if test="endTime !=null and endTime != ''"> + and ouf.create_time <#{endTime} + </if> + <if test="project !=null and project != ''"> + and su.project like concat("%",#{project},"%") + </if> + <if test="department !=null and department != ''"> + and su.bm1.meta_value like concat("%",#{department},"%") + </if> + <if test="receiptNumber !=null and receiptNumber != ''"> + and ouf.receipt_number like concat("%",#{receiptNumber},"%") + </if> + group by ouf.receipt_number) a + + + + </select> + <select id="selectPersonalUseInfo" resultType="com.nanometer.smartlab.entity.OpeUseFlow"> + SELECT ouf.receipt_number receiptNumber, + count(ouf.reagent_code) applyNum, + su.name username, + su.project , + su.phone, + bm1.meta_value department, + sl.name laboratoryName, + ouf.create_time createTime, + ouf.house_id houseId + FROM + ope_use_flow ouf + LEFT JOIN sys_user su on su.id = ouf.user_id + LEFT JOIN base_meta bm on bm.id = ouf.operatestate + LEFT JOIN ope_reagent_status ors on ors.reagent_code = ouf.reagent_code + LEFT JOIN sys_reagent sr on sr.id = ors.reagent_id + left join base_meta bm1 on bm1.id = su.department + left join sys_laboratory sl on sl.id = ouf.house_id + <if test="userId !=null and userId != ''"> + LEFT JOIN sys_reagent sr2 on sr2.id = ouf.user_id + </if> + WHERE ouf.operatestate = #{operatestate} + and LENGTH(trim(ouf.receipt_number))>0 + <if test="reagentCode !=null and reagentCode != ''"> + and ouf.reagent_code like concat("%",#{reagentCode},"%") + </if> + <if test="startTime !=null and startTime != ''"> + and ouf.create_time >#{startTime} + </if> + <if test="endTime !=null and endTime != ''"> + and ouf.create_time <#{endTime} + </if> + <if test="project !=null and project != ''"> + and su.project like concat("%",#{project},"%") + </if> + <if test="department !=null and department != ''"> + and su.bm1.meta_value like concat("%",#{department},"%") + </if> + <if test="receiptNumber !=null and receiptNumber != ''"> + and ouf.receipt_number like concat("%",#{receiptNumber},"%") + </if> + group by ouf.receipt_number + ORDER BY ouf.create_time desc + <if test="first != null and pageSize != null"> + limit #{first}, #{pageSize} + </if> + </select> + <select id="getApplyInfo" resultType="com.nanometer.smartlab.entity.dto.PersonUseDetail"> + SELECT + ors.reagent_id reagentId, + ors.article_number articleNumber, + ouf.reagent_code reagentCode, + sr.product_sn productSn, + sr.NAME reagentName, + bm1.meta_value reagentFormat, + CONCAT(sr.per_box,bm1.meta_value) perInfo, + bm2.meta_value productHome, + bm3.meta_value controlProducts + from `ope_use_flow` ouf + LEFT JOIN ope_reagent_status ors ON ors.reagent_code = ouf.reagent_code + LEFT join sys_reagent sr ON ors.reagent_id = sr.id + LEFT JOIN base_meta bm ON bm.id = sr.reagent_format + LEFT JOIN base_meta bm1 on bm1.id = sr.reagent_unit + LEFT JOIN base_meta bm2 on bm2.id = sr.product_home + LEFT JOIN base_meta bm3 on bm3.id = sr.control_products + WHERE ouf.operatestate = #{operatestate} + and ouf.receipt_number = #{receiptNumber} + </select> + <insert id="insertOpeUseFlow" parameterType="com.nanometer.smartlab.entity.OpeUseFlow"> insert into ope_use_flow(id, reagent_code, status, house_id, container_id, user_id, remainder, place, store_type, valid_flag, create_time, realstatus, operatestate) values (#{id}, #{reagentCode}, #{status}, #{houseId}, #{containerId}, #{userId}, #{remainder}, #{place}, #{storeType}, 1, #{createTime}, #{realstatus},#{operateState}) diff --git a/src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java b/src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java index f6dd09a..1baf23c 100644 --- a/src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java +++ b/src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java @@ -30,19 +30,25 @@ private SysReagent reagent; private String userName; private String articleNumber; - + private String laboratoryName; private String warehouseName; - + private String warehouseContainerName; private String laboratoryContainerName; private String warehouseContainerCode; private String laboratoryContainerCode; - + private String operatestateName; private String operateState; private String receiptNumber; - + //人员信息 + private String project; + private String phone; + private String department; + private Integer applyNum; + + public String getWarehouseContainerCode() { @@ -238,4 +244,38 @@ public void setReceiptNumber(String receiptNumber) { this.receiptNumber = receiptNumber; } + + + + public Integer getApplyNum() { + return applyNum; + } + + public void setApplyNum(Integer applyNum) { + this.applyNum = applyNum; + } + + 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 getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } } diff --git a/src/main/java/com/nanometer/smartlab/entity/dto/PersonUseDetail.java b/src/main/java/com/nanometer/smartlab/entity/dto/PersonUseDetail.java new file mode 100644 index 0000000..5b8478d --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/dto/PersonUseDetail.java @@ -0,0 +1,98 @@ +package com.nanometer.smartlab.entity.dto; + +import java.io.Serializable; + +public class PersonUseDetail implements Serializable { + + private String reagentId; + + private String articleNumber; + + private String productSn; + + private String reagentName; + + private String reagentFormat; + + private String perInfo; + + private String productHome; + + private String controlProducts; + + private String reagentCode; + + + public String getReagentId() { + return reagentId; + } + + public void setReagentId(String reagentId) { + this.reagentId = reagentId; + } + + public String getArticleNumber() { + return articleNumber; + } + + public void setArticleNumber(String articleNumber) { + this.articleNumber = articleNumber; + } + + + public String getProductSn() { + return productSn; + } + + public void setProductSn(String productSn) { + this.productSn = productSn; + } + + public String getReagentName() { + return reagentName; + } + + public void setReagentName(String reagentName) { + this.reagentName = reagentName; + } + + public String getReagentFormat() { + return reagentFormat; + } + + public void setReagentFormat(String reagentFormat) { + this.reagentFormat = reagentFormat; + } + + public String getPerInfo() { + return perInfo; + } + + public void setPerInfo(String perInfo) { + this.perInfo = perInfo; + } + + public String getProductHome() { + return productHome; + } + + public void setProductHome(String productHome) { + this.productHome = productHome; + } + + public String getControlProducts() { + return controlProducts; + } + + public void setControlProducts(String controlProducts) { + this.controlProducts = controlProducts; + } + + public String getReagentCode() { + return reagentCode; + } + + public void setReagentCode(String reagentCode) { + this.reagentCode = reagentCode; + } +} diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java index 8c8242d..252d834 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java @@ -3,7 +3,7 @@ import com.nanometer.smartlab.entity.OpeApplyReserve; import com.nanometer.smartlab.entity.OpeUseFlow; import com.nanometer.smartlab.entity.OpeWarehouseReserve; -import com.nanometer.smartlab.entity.SysReagent; +import com.nanometer.smartlab.entity.dto.PersonUseDetail; import java.text.ParseException; import java.util.Date; @@ -47,4 +47,11 @@ Map<String,String> getApplyUserByReagentCode(String reagentCode); void updateReceiptNumberByCode2(List<OpeWarehouseReserve> codeTmp, String receiptNumber); + + int getPersonalUseInfoCount(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, String department, String project); + + List<OpeUseFlow> getPersonalUseInfoList(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, String department, String project, int first, int pageSize); + + List<PersonUseDetail> getApplyInfo(String receiptNumber); + } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java index 2d7ab3e..2a931b7 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java @@ -12,6 +12,7 @@ import com.nanometer.smartlab.dao.SysLaboratoryContainerDao; import com.nanometer.smartlab.dao.SysWarehouseContainerDao; import com.nanometer.smartlab.entity.*; +import com.nanometer.smartlab.entity.dto.PersonUseDetail; import com.nanometer.smartlab.entity.enumtype.OperateStatus; import com.nanometer.smartlab.util.Constants; import org.apache.commons.lang.StringUtils; @@ -454,4 +455,64 @@ } } + + @Override + public int getPersonalUseInfoCount(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, String department, String project) { + Map<String,Object> params = new HashMap<>(); + params.put("userId", userId); + params.put("startTime", startTime); + params.put("endTime", endTime); + params.put("receiptNumber", receiptNumber); + params.put("department", department); + params.put("project", project); + params.put("reagentCode", reagentCode); + //操作状态位仓库领取 + Map<String, String> metaMap2 = new HashMap<>(); + metaMap2.put("groupId", "operate_status"); + metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); + List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); + params.put("operatestate", baseMetas.get(0).getId()); + + addParamByUserId(userId, params); + return opeUseFlowDao.countPersonalUseInfo(params); + } + + @Override + public List<OpeUseFlow> getPersonalUseInfoList(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, String department, String project, int first, int pageSize) { + Map<String, Object> params = new HashMap<>(); + params.put("userId", userId); + params.put("startTime", startTime); + params.put("endTime", endTime); + params.put("receiptNumber", receiptNumber); + params.put("department", department); + params.put("project", project); + params.put("reagentCode", reagentCode); + //操作状态位仓库领取 + Map<String, String> metaMap2 = new HashMap<>(); + metaMap2.put("groupId", "operate_status"); + metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); + List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); + params.put("operatestate", baseMetas.get(0).getId()); + params.put("first", first); + params.put("pageSize", pageSize); + + addParamByUserId(userId, params); + return opeUseFlowDao.selectPersonalUseInfo(params); + } + + @Override + public List<PersonUseDetail> getApplyInfo(String receiptNumber) { + Map<String,Object> params = new HashMap<>(); + Map<String, String> metaMap2 = new HashMap<>(); + metaMap2.put("groupId", "operate_status"); + metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); + List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); + params.put("operatestate", baseMetas.get(0).getId()); + params.put("receiptNumber", receiptNumber); + + return opeUseFlowDao.getApplyInfo(params); + + } + + } diff --git a/src/main/webapp/personal_use_info.xhtml b/src/main/webapp/personal_use_info.xhtml index 22644b5..ff71fb3 100644 --- a/src/main/webapp/personal_use_info.xhtml +++ b/src/main/webapp/personal_use_info.xhtml @@ -50,84 +50,272 @@ <p:panel styleClass="center-header"> <p:panelGrid styleClass="filter" columns="13"> - <p:outputLabel value="试剂名称:"></p:outputLabel> - <p:inputText value="#{personalUseInfoController.reagentId}"></p:inputText> + <p:outputLabel value="单据编号:"/> + <p:inputText value="#{personalUseInfoController.receiptNumber}"/> - <p:outputLabel value="条形码:"></p:outputLabel> - <p:inputText value="#{personalUseInfoController.reagentCode}"></p:inputText> - <p:outputLabel value="申领人:"/> - <p:inputText value="#{personalUseInfoController.applyPerson}"/> + <p:outputLabel value="课题组:"/> + <p:inputText value="#{personalUseInfoController.project}"/> + + <p:outputLabel value="部门:"/> + <p:inputText value="#{personalUseInfoController.department}"/> <p:outputLabel for="startTime" value="开始时间:" /> <p:calendar id="startTime" value="#{personalUseInfoController.startTime}" pattern="yyyy-MM-dd HH:mm" /> <p:outputLabel for="endTime" value="截止时间:" /> <p:calendar id="endTime" value="#{personalUseInfoController.endTime}" pattern="yyyy-MM-dd HH:mm" /> - <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> - <p:commandButton value="更新时间" styleClass="store-btn" process="@form" actionListener="#{personalUseInfoController.updateTimeByCode}" - update="@form"></p:commandButton> - <p:commandButton value="取消领用" style="background: #b94a48; border: 1px solid #b94a48" styleClass="store-btn" process="@form" actionListener="#{personalUseInfoController.reagentReturn}" - update="@form"></p:commandButton> - </p:panelGrid> + <p:commandLink styleClass="search" process="@form" update="@form"/> + + <p:commandButton value="生成领用单" + style="background: #b94a48; border: 1px solid #b94a48" + styleClass="store-btn" + process="@form" + actionListener="#{personalUseInfoController.generateReceipt}" + update="printDialog"/> + <p:commandButton value="查看详情" + styleClass="store-btn" + update=":dialog,:dialogForm" + actionListener="#{personalUseInfoController.detailInfo}" + oncomplete="PF('dialog').show()"/> + + + </p:panelGrid> </p:panel> </p:panel> - <style> + <style type="text/css"> .ui-datatable tbody td{ white-space: normal; word-break: break-all; } </style> <p:panel styleClass="center-body"> - <p:dataTable id="personalUseInfoDataTable" styleClass="data-table" resizableColumns="true" - paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" - lazy="true" value="#{personalUseInfoController.dataModel}" var="row" - rowKey="#{row.id}" emptyMessage="无数据" rows="20" pageLinks="5" selection="#{personalUseInfoController.selectedList}"> - <p:column selectionMode="multiple" style="width: 30px;text-align: center;"/> - <p:column headerText="试剂名称"> - <h:outputText value="#{row.reagent.name}"></h:outputText> + <p:dataTable id="personalUseInfoDataTable" + styleClass="data-table" + resizableColumns="true" + paginator="true" + paginatorAlwaysVisible="false" + paginatorPosition="bottom" + lazy="true" + value="#{personalUseInfoController.dataModel2}" + var="row" + rowKey="#{row.receiptNumber}" + selectionMode="single" + emptyMessage="无数据" + selection="#{personalUseInfoController.selectOne}" + rows="20" pageLinks="5"> + +<!-- <p:column selectionMode="multiple" style="width: 30px;text-align: center;"/>--> + <p:column headerText="单据编号"> + <h:outputText value="#{row.receiptNumber}"/> </p:column> - <p:column headerText="试剂条形码"> - <h:outputText value="#{row.reagentCode}"></h:outputText> + <p:column headerText="申领人" width="80"> + <h:outputText value="#{row.userName}"/> </p:column> - <p:column headerText="厂家"> - <h:outputText value="#{baseMetaService.getBaseMetaValue(row.reagent.productHome)}"></h:outputText> - </p:column> - <!--<p:column headerText="供应商">--> - <!--<h:outputText value="#{row.reagent.supplierName}"></h:outputText>--> - <!--</p:column>--> - - <p:column headerText="规格"> - <h:outputText - value="#{baseMetaService.getBaseMetaValue(row.reagent.reagentFormat)}"></h:outputText> + <p:column headerText="领用数量" width="50"> + <h:outputText value="#{row.applyNum}"/> </p:column> - <p:column headerText="包装"> - <h:outputText - value="#{''.concat(row.reagent.mainMetering).concat(baseMetaService.getBaseMetaValue(row.reagent.reagentUnit))}"></h:outputText> + <p:column headerText="课题组"> + <h:outputText value="#{row.project}"/> </p:column> - <p:column headerText="批号"> - <h:outputText value="#{row.articleNumber}"></h:outputText> + <p:column headerText="部门"> + <h:outputText value="#{row.department}"/> </p:column> -<!-- <p:column headerText="残存量">--> -<!-- <h:outputText value="#{row.remainder}"></h:outputText>--> -<!-- </p:column>--> - - <p:column headerText="申领人"> - <h:outputText value="#{row.userName}" /> + <p:column headerText="地点"> + <h:outputText value="#{row.laboratoryName}"/> </p:column> <p:column headerText="领用时间"> - <h:outputText value="#{row.updateTime}"> - <f:convertDateTime pattern="yyyy-MM-dd HH:mm:ss" locale="zh_CN"></f:convertDateTime> + <h:outputText value="#{row.createTime}"> + <f:convertDateTime pattern="yyyy-MM-dd HH:mm" locale="zh_CN"/> </h:outputText> </p:column> </p:dataTable> </p:panel> </h:form> + + <p:dialog modal="true" header="试剂详情页面" appendTo="@(body)" + id="dialog" widgetVar="dialog" + resizable="false" width="1000"> + <h:form id="dialogForm"> + <p:dataTable styleClass="data-table" + paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" + value="#{personalUseInfoController.personUseDetail}" var="row" rowKey="#{row.id}" + emptyMessage="无数据" + style="margin:50px 0 80px 0" + rows="5" pageLinks="5"> + + <p:column headerText="产品编号"> + <h:outputText value="#{row.productSn}"/> + </p:column> + + <p:column headerText="试剂名称"> + <h:outputText value="#{row.reagentName}"/> + </p:column> + + <p:column headerText="试剂条形码"> + <h:outputText value="#{row.reagentCode}"/> + </p:column> + + <p:column headerText="管制品"> + <h:outputText value="#{row.controlProducts}"/> + </p:column> + + <p:column headerText="规格型号"> + <h:outputText value="#{row.reagentFormat}"/> + </p:column> + + <p:column headerText="包装"> + <h:outputText value="#{row.perInfo}"/> + </p:column> + + <p:column headerText="厂家"> + <h:outputText value="#{row.productHome}"/> + </p:column> + + <p:column headerText="批号"> + <h:outputText value="#{row.articleNumber}"/> + </p:column> + + </p:dataTable> + + <p:panel styleClass="btn" style="text-align: right"> + </p:panel> + </h:form> + </p:dialog> + <p:dialog id="apply-ui" header="领用单" widgetVar="printDialog" appendTo="@(body)" modal="true" resizable="false" + width="1380"> + <div id="printTarget"> + <div style=" margin: 20mm 27mm 0mm 30mm;"> + <h:form id="printDialog" style="width: 1100px"> + + <p:outputPanel style="text-align: center;font-size: 14px;font-weight: 700;">#{personalUseInfoController.printTable['head']}</p:outputPanel> + <p:outputPanel style="text-align: center;font-size: 15px;margin: 20px;font-weight: 700;">#{personalUseInfoController.printTable['title']}</p:outputPanel> + <div> + <div style="display: flex;flex-direction: row;justify-content: flex-end;width: 1081px;"> + <div style="width: 98px;">单据编号:</div> + <div style="width: 183px;">#{personalUseInfoController.printTable['receiptNumber']}</div> + </div> + </div> + + <div style="margin: 10px 0;"> + <div style="display: inline-flex;"> + <div style="width: 100px;margin-left: 10px;">部门:</div> + <div style="width: 300px;">#{personalUseInfoController.printTable['department']}</div> + </div> + <div style="display: inline-flex;"> + <div style="width: 100px;">申购人:</div> + <div style="width: 200px;padding-top: 1px;">#{personalUseInfoController.printTable['applyPerson']}</div> + </div> + <div style="display: inline-flex;float: right;"> + <div style="width: 100px;">日期:</div> + <div style="width: 200px;padding-top: 1px;">#{personalUseInfoController.printTable['date']}</div> + </div> + </div> + + <div style="margin-bottom: 20px;"> + <div style="display: inline-flex;"> + <div style="width: 100px;margin-left: 10px;">课题组</div> + <div style="width: 300px;">#{personalUseInfoController.printTable['project']}</div> + </div> + <div style="display: inline-flex;"> + <div style="width: 100px;">使用地点:</div> + <div style="width: 200px;padding-top: 1px;">#{personalUseInfoController.printTable['lab']}</div> + </div> + <div style="display: inline-flex;float: right;"> + <div style="width: 100px;">联系方式:</div> + <div style="width: 200px;">#{personalUseInfoController.printTable['phone']}</div> + </div> + </div> + + + + + <p:dataTable id="printTB" styleClass="apply-list" + value="#{personalUseInfoController.printTable['applyList']}" var="row" > + <p:column headerText="产品编号" width="150px;" style="text-align: center;"> + <h:outputText value="#{row.productCode}" /> + </p:column> + <p:column headerText="产品名称" width="150px;" style="text-align: center;"> + <h:outputText value="#{row.productName}" /> + </p:column> + + <p:column headerText="管制品" width="100px;" style="text-align: center;"> + <h:outputText value="#{row.controlProducts}" /> + </p:column> + + <p:column headerText="规格型号" width="160px;" style="text-align: center;"> + <h:outputText value="#{row.reagentFormat}" /> + </p:column> + + <p:column headerText="包装" width="90px;" style="text-align: center;"> + <h:outputText value="#{row.mainMetering==null?'':row.mainMetering.replace('null','')}" /> + </p:column> + + <p:column headerText="数量" width="90px;" style="text-align: center;"> + <h:outputText value="#{row.num}" /> + </p:column> + + <p:column headerText="备注" width="170px;" style="text-align: center;"> + <h:outputText value="#{row.memo}" /> + </p:column> + </p:dataTable> + + <div style="margin-top: 20px;margin-right: 94px;"> + <div style="display: flex;flex-direction: row;justify-content: flex-end;"> + <div style="width: 100px">签收人:</div> + <div style="width: 100px"></div> + </div> + </div> + + <div style="margin: 10px 94px 10px 0;"> + <div style="display: flex;flex-direction: row;justify-content: flex-end;"> + <div style="width: 100px">日期:</div> + <div style="width: 100px"></div> + </div> + </div> + + + + <p:panel styleClass="btn no-print"> + <div class="div-btn cancel" id="cancel">关闭</div> + <div class="div-btn print" id="print">打印</div> + + <script type="text/javascript" src="resources/js/print.js"/> + <script type="text/javascript"> + $(function () { + $("#print").on("click", function () { + jQuery.print('#printTarget') + }) + $("#cancel").on("click", function () { + $("#apply-ui a").click(); + }) + }) + + + </script> + </p:panel> + </h:form> + </div> + </div> + <script type="text/javascript" src="resources/js/print.js"/> + <script type="text/javascript"> + $(function () { + $("#print").on("click", function () { + jQuery.print('#printTarget'); + }); + $("#cancel").on("click", function () { + $("#reagentUseFlowInfoForm\\:apply-ui a").click(); + }) + }) + + + </script> + </p:dialog> </ui:composition> </html> -- Gitblit v1.9.2