src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/entity/dto/PersonUseDetail.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/personal_use_info.xhtml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } } 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); } 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}) src/main/java/com/nanometer/smartlab/entity/OpeUseFlow.java
@@ -42,6 +42,12 @@ private String operatestateName; private String operateState; private String receiptNumber; //人员信息 private String project; private String phone; private String department; private Integer applyNum; @@ -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; } } 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; } } 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); } 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); } } 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: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> <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> <p:column headerText="包装"> <h:outputText value="#{''.concat(row.reagent.mainMetering).concat(baseMetaService.getBaseMetaValue(row.reagent.reagentUnit))}"></h:outputText> </p:column> <p:column headerText="批号"> <h:outputText value="#{row.articleNumber}"></h:outputText> </p:column> <!-- <p:column headerText="残存量">--> <!-- <h:outputText value="#{row.remainder}"></h:outputText>--> <!-- </p:column>--> <p:column headerText="申领人"> <p:column headerText="申领人" width="80"> <h:outputText value="#{row.userName}" /> </p:column> <p:column headerText="领用数量" width="50"> <h:outputText value="#{row.applyNum}"/> </p:column> <p:column headerText="课题组"> <h:outputText value="#{row.project}"/> </p:column> <p:column headerText="部门"> <h:outputText value="#{row.department}"/> </p:column> <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>