package com.nanometer.smartlab.controller; import com.nanometer.smartlab.dao.OpeApplyDao; import com.nanometer.smartlab.dao.OpeReagentStatusDao; import com.nanometer.smartlab.dao.OpeWarehouseReserveDao; import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.ApplyListDto; import com.nanometer.smartlab.entity.enumtype.ApplyStatusVo; import com.nanometer.smartlab.entity.enumtype.ApplyStatus; import com.nanometer.smartlab.entity.enumtype.ArrivalStatus; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.entity.enumtype.ValidFlag; import com.nanometer.smartlab.exception.BusinessException; import com.nanometer.smartlab.exception.ExceptionEnumCode; import com.nanometer.smartlab.service.*; import com.nanometer.smartlab.util.*; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.primefaces.context.RequestContext; import org.primefaces.event.SelectEvent; import org.primefaces.event.TabChangeEvent; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.primefaces.model.StreamedContent; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; import java.math.BigInteger; import java.net.URLEncoder; import java.sql.Timestamp; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; /** * Created by cmower on 17/11/20. */ @Controller @PropertySource(value = "WEB-INF/config.properties",encoding = "utf-8") @Scope("session") public class WarehouseStockMngController extends BaseController { private static final long serialVersionUID = 101543880938627455L; private static Logger logger = Logger.getLogger(WarehouseStockMngController.class); @Resource private OpeApplyService opeApplyService; @Resource private OpeWarehouseReserveService opeWarehouseReserveService; @Resource private OpeReagentStatusService opeReagentStatusService; @Resource private SysReagentService sysReagentService; @Resource private SysUserService sysUserService; @Resource private SysSupplierService sysSupplierService; @Resource private OpeOrderService opeOrderService; @Resource private MenuController menuController; @Resource private SysWarehouseService sysWarehouseService; @Resource private SysWarehouseContainerService sysWarehouseContainerService; @Resource private BaseMetaService baseMetaService; @Resource private SysLaboratoryService sysLaboratoryService; @Resource private SysLaboratoryContainerService sysLaboratoryContainerService; @Resource(name = "opeReagentStatusDao") OpeReagentStatusDao opeReagentStatusDao; @Resource OpeUseFlowService opeUseFlowService; @Resource OpeWarehouseReserveDao opeWarehouseReserveDao; @Resource OpeApplyDao opeApplyDao; @Resource OpeLaboratoryReserveService opeLaboratoryReserveService; /** * 数据源 */ private LazyDataModel dataModel; /** * 数据源 */ private LazyDataModel dataModelForPerson; /** * 使用记录用 */ private LazyDataModel reagentStatusDataModel; /** * 打开条形码对话框用 */ private List reagentStatusSelectList; /** * 打开条形码对话框用 */ private List reagentStatusSelectListForPerson; public List getReagentStatusSelectListForPerson() { return reagentStatusSelectListForPerson; } public void setReagentStatusSelectListForPerson(List reagentStatusSelectListForPerson) { this.reagentStatusSelectListForPerson = reagentStatusSelectListForPerson; } private String reagentId; private String reagentLogId; private String userName; private Integer tabValue = 0; private List reagentSelectList; private List showCodes; private String userId; private String projectNum; private String userLogId; private String reagentCode; private Integer useNum; private String startReagentCode; private String endReagentCode; private String startReagentCodeForPerson; private String endReagentCodeForPerson; private Integer editFlag; private StreamedContent file; @Value("${pdf.export.file.path}") private String pdfExportFilePath; @Value("${institute.name}") String instituteName; private Hashtable printTable; public Hashtable getPrintTable() { return printTable; } public StreamedContent getFile() { return file; } public void setFile(StreamedContent file) { this.file = file; } public Integer getEditFlag() { return editFlag; } public void setEditFlag(Integer editFlag) { this.editFlag = editFlag; } public String getStartReagentCodeForPerson() { return startReagentCodeForPerson; } public void setStartReagentCodeForPerson(String startReagentCodeForPerson) { this.startReagentCodeForPerson = startReagentCodeForPerson; } public String getEndReagentCodeForPerson() { return endReagentCodeForPerson; } public void setEndReagentCodeForPerson(String endReagentCodeForPerson) { this.endReagentCodeForPerson = endReagentCodeForPerson; } private List userSelectList; private List applyUserSelectList; private String supplierId; private List supplierSelectList; //private boolean flag = false; // 试剂库 private LazyDataModel reagentDataModel; // 直接入库试剂List private List reagentDStoreList; // 直接入库试剂已选List private List reagentDStoreSelectedList; // 直接入库试剂编辑flag(1: 新建 2:修改) private int reagentDStoreEditFlag = Constants.ACTION_ADD; // 直接入库试剂 private OpeApply reagentDStore; private String applyNewReagentName; private String applyNewCas; private String productSn; private String applyCode; private Integer status; private List statusSelectList; private List warehouseList; private List warehouseContainerList; private List warehouseContainerPlaceList; private Map warehouseNameMap; private Map warehouseContainerMap; private Map> warehouseIdContainerMap; private String laboratoryId; private String oriLaboratoryId; private List laboratory; private String laboratoryContainerId; private List laboratoryContainers; /** * 选中的list */ private List selectedList; //购物车 private List selectedTmpList; // private List trulySelectedList; /** * 选中的list */ private List selectedListForPerson; private List selectedTmpOrderList; private List trulySelectedOrderList; /** * 入库车 */ private List selectedInputStorageTmpOrderList; private List trulyInputStorageTmpSelectedOrderList; /** * 订单入库变量 */ //到货时间 private Timestamp arrivalTime; //收货人 private String consigneeId; //OpeApply private List opeApplyList; /** * 条形码对话框中选择的条形码集合 */ private List reagentCodeSelectedList; /** * 打开条形码对话框对应的试剂+条形码 */ private OpeWarehouseReserve selectedOpeWarehouseReserve; /** * 打开条形码对话框对应的试剂+条形码 */ private OpeApplyReserve selectedOpeApplyReserve; /** * SpringMenu中初始化 */ public void initPage() { logger.info("WarehouseStockMngController initPage start"); this.initReagentSelectList(); this.initSupplierSelectList(); this.initUserSelectList(); } public void initUsePage() { logger.info("WarehouseStockMngController initUsePage start"); this.initUserSelectList(); } public void initDirectStorePage() { logger.info("WarehouseStockMngController initDirectStorePage start"); this.initUserSelectList(); this.warehouseList = this.sysWarehouseService.getSysWarehouseList(null, null, null, null); this.warehouseNameMap = new HashMap(); if (this.warehouseList != null && this.warehouseList.size() > 0) { for (SysWarehouse house : this.warehouseList) { this.warehouseNameMap.put(house.getId(), house.getName()); } } this.warehouseContainerMap = new HashMap(); this.warehouseIdContainerMap = new HashMap>(); List warehouseContainerList = this.sysWarehouseContainerService.getSysWarehouseContainerList(null, null, null, null, null); if (warehouseContainerList != null && warehouseContainerList.size() > 0) { for (SysWarehouseContainer container : warehouseContainerList) { warehouseContainerMap.put(container.getId(), container); if (!warehouseIdContainerMap.containsKey(container.getWarehouseId()) || warehouseIdContainerMap.get(container.getWarehouseId()) == null) { warehouseIdContainerMap.put(container.getWarehouseId(), new ArrayList()); } warehouseIdContainerMap.get(container.getWarehouseId()).add(container); } } this.onWarehouseSelectChange(null); } public void initInputWarehouse() { logger.info("WarehouseStockMngController initInputWarehouse start"); this.warehouseList = this.sysWarehouseService.getSysWarehouseList(null, null, null, null); this.warehouseNameMap = new HashMap(); if (this.warehouseList != null && this.warehouseList.size() > 0) { for (SysWarehouse house : this.warehouseList) { this.warehouseNameMap.put(house.getId(), house.getName()); } } this.warehouseContainerMap = new HashMap(); this.warehouseIdContainerMap = new HashMap>(); List warehouseContainerList = this.sysWarehouseContainerService.getSysWarehouseContainerList(null, null, null, null, null); if (warehouseContainerList != null && warehouseContainerList.size() > 0) { for (SysWarehouseContainer container : warehouseContainerList) { warehouseContainerMap.put(container.getId(), container); if (!warehouseIdContainerMap.containsKey(container.getWarehouseId()) || warehouseIdContainerMap.get(container.getWarehouseId()) == null) { warehouseIdContainerMap.put(container.getWarehouseId(), new ArrayList()); } warehouseIdContainerMap.get(container.getWarehouseId()).add(container); } } this.onWarehouseSelectChange(null); } private void initReagentSelectList() { logger.info("WarehouseStockMngController initReagentSelectList start"); this.setReagentSelectList(this.sysReagentService.getSysReagentList(null, null, null, null,null, null)); } private void initUserSelectList() { logger.info("WarehouseStockMngController initUserSelectList start"); this.setUserSelectList(this.sysUserService.getSysUserList(null, null, null, null, null)); /**if(sysUserService.getSysUser(userId) == null) { this.laboratory = this.sysLaboratoryService.getSysLaboratoryListByDep(this.getUserDepartment()); }else { this.laboratory = this.sysLaboratoryService.getSysLaboratoryListByDep(sysUserService.getSysUser(userId).getDepartment()); } this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId);**/ } /** * 领用的操作对话框用 */ private void initReagentStatusSelectList() { logger.info("WarehouseStockMngController initReagentStatusSelectList start"); if (selectedOpeWarehouseReserve != null) { String reagentId = selectedOpeWarehouseReserve.getReagentId(); String articleNumber = selectedOpeWarehouseReserve.getArticleNumber(); this.setReagentStatusSelectList(opeReagentStatusService.getOpeReagentStatusList(reagentId, articleNumber, ArrivalStatus.WAREHOUSE.getKey(), reagentCode, null, null, null)); // System.out.print("this.getReagentStatusSelectList().size(): " + this.reagentStatusSelectList.size()); // System.out.print("this.getReagentStatusSelectList().get(0): " + this.reagentStatusSelectList.get(0).getReagentCode()); } } /** * 领用的操作对话框用 */ private void initReagentStatusSelectListForPerson() { logger.info("WarehouseStockMngController initReagentStatusSelectListForPerson start"); if (selectedOpeApplyReserve != null) { String reagentId = selectedOpeApplyReserve.getReagent().getId(); String articleNumber = selectedOpeApplyReserve.getArticleNumber(); System.out.println(reagentId); System.out.println(articleNumber); System.out.println(reagentCode); this.setReagentStatusSelectListForPerson(opeReagentStatusService.getOpeReagentStatusList(reagentId, articleNumber, ArrivalStatus.WAREHOUSE.getKey(), reagentCode, null, null, null)); } } private void initSupplierSelectList() { logger.info("WarehouseStockMngController initSupplierSelectList start"); System.out.println(getUser().getSeeFlag().getKey()); //SysUser u=sysUserService.getSysUser(getUserId()); //System.out.println(u); if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) { editFlag=0; }else{ editFlag=1; } this.setSupplierSelectList(this.sysSupplierService.getSysSupplierList()); } private int action; public void add() { logger.info("WarehouseStockMngController onUseBtnClick start"); if (this.selectedList == null || this.selectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (selectedTmpList !=null && selectedTmpList.size()>0){ ArrayList tmp = new ArrayList<>(); selectedList.forEach(opeWarehouseReserve -> { AtomicBoolean flag = new AtomicBoolean(false); selectedTmpList.forEach(opeWarehouseReserve1 -> { if (opeWarehouseReserve.getId().equals(opeWarehouseReserve1.getId())){ flag.set(true); } }); if(!flag.get()) { tmp.add(opeWarehouseReserve); } }); selectedTmpList.addAll(tmp); }else{ selectedTmpList = new ArrayList<>(); selectedTmpList.addAll(selectedList); } } public void addOrder() { logger.info("WarehouseStockMngController onUseBtnClick start"); if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (selectedTmpOrderList !=null && selectedTmpOrderList.size()>0){ ArrayList tmp = new ArrayList<>(); selectedListForPerson.forEach(opeApplyReserve -> { AtomicBoolean flag = new AtomicBoolean(false); selectedTmpOrderList.forEach(opeApplyReserve1 -> { if (opeApplyReserve.getId().equals(opeApplyReserve1.getId())){ flag.set(true); } }); if(!flag.get()) { tmp.add(opeApplyReserve); } }); selectedTmpOrderList.addAll(tmp); }else{ selectedTmpOrderList = new ArrayList<>(); selectedTmpOrderList.addAll(selectedListForPerson); } } public void addInputStorageOrder() { if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) { FacesUtils.warn("请选择数据。"); return; } //1.判断非状态为确认的申购单不能入库 for (OpeApplyReserve opeApplyReserve : this.selectedListForPerson) { if (opeApplyReserve.getStatus() != ApplyStatus.SUPPLIER_CONFIRM) { FacesUtils.warn("非已确认的数据不能入库。"); return; } } //2.加入暂存 if (selectedInputStorageTmpOrderList !=null && selectedInputStorageTmpOrderList.size()>0){ ArrayList tmp = new ArrayList<>(); selectedListForPerson.forEach(opeApplyReserve -> { AtomicBoolean flag = new AtomicBoolean(false); selectedInputStorageTmpOrderList.forEach(opeApplyReserve1 -> { if (opeApplyReserve.getId().equals(opeApplyReserve1.getId())){ flag.set(true); } }); if(!flag.get()) { tmp.add(opeApplyReserve); } }); selectedInputStorageTmpOrderList.addAll(tmp); }else{ selectedInputStorageTmpOrderList = new ArrayList<>(); selectedInputStorageTmpOrderList.addAll(selectedListForPerson); } } public void clear(){ selectedTmpList = null; } public void clearOrderTmp(){ selectedTmpOrderList = null; } public void clearInputStorageTmp(){ selectedInputStorageTmpOrderList = null; } public void cancel(){ if (trulySelectedList == null || trulySelectedList.size()<=0){ FacesUtils.info("至少选择一个"); return; } if (selectedTmpList == null || selectedTmpList.size()<=0){ FacesUtils.info("至少选择一个"); return; } ArrayList indexs = new ArrayList<>(); for (OpeWarehouseReserve warehouseReserve : trulySelectedList) { for (OpeWarehouseReserve opeWarehouseReserve : selectedTmpList) { if (warehouseReserve.getId().equals(opeWarehouseReserve.getId())) { indexs.add(warehouseReserve); } } } if (indexs.size()>0){ indexs.forEach(obj -> { selectedTmpList.remove(obj); }); } } public void cancelOrderTmp(){ if (trulySelectedOrderList == null || trulySelectedOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } ArrayList indexs = new ArrayList<>(); for (OpeApplyReserve opeApplyReserve : trulySelectedOrderList) { for (OpeApplyReserve applyReserve : selectedTmpOrderList) { if (opeApplyReserve.getId().equals(applyReserve.getId())) { indexs.add(opeApplyReserve); } } } if (indexs.size()>0){ indexs.forEach(obj -> { selectedTmpOrderList.remove(obj); }); } } public void cancelInputStorageTmp(){ if (trulyInputStorageTmpSelectedOrderList == null || trulyInputStorageTmpSelectedOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } if (selectedInputStorageTmpOrderList == null || selectedInputStorageTmpOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } ArrayList indexs = new ArrayList<>(); for (OpeApplyReserve opeApplyReserve : trulyInputStorageTmpSelectedOrderList) { for (OpeApplyReserve applyReserve : selectedInputStorageTmpOrderList) { if (opeApplyReserve.getId().equals(applyReserve.getId())) { indexs.add(opeApplyReserve); } } } if (indexs.size()>0){ indexs.forEach(obj -> { selectedInputStorageTmpOrderList.remove(obj); }); } } public void onUseBtnClick(){ if (selectedTmpList == null || selectedTmpList.size()<=0){ FacesUtils.info("至少选择一个"); return; } this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW, Constants.PAGE_WAREHOUSE_STOCK_MNG); } // public void onUseBtnClickOrderTmp(){ if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG); } public void onUseBtnClickInputStorageTmp(){ if (selectedInputStorageTmpOrderList == null || selectedInputStorageTmpOrderList.size()<=0){ FacesUtils.info("至少选择一个"); return; } opeApplyList = new ArrayList<>(); selectedInputStorageTmpOrderList.forEach(opeApplyReserve -> { OpeApplyReserve applyDetail = opeApplyService.getOpeApplyDetail(opeApplyReserve.getId()); opeApplyList.add(applyDetail); }); //跳转编辑页面 this.menuController.goToPage(Constants.PAGE_ORDER_INPUT_WAREHOUSE, Constants.PAGE_WAREHOUSE_STOCK_MNG); } public void onUseBtnClickForPerson() { logger.info("WarehouseStockMngController onUseBtnClickForPerson start"); if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) { FacesUtils.warn("请选择数据。"); return; } this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG); } /** * 仓库库存选择操作时,获取条形码 */ public void onReagentCodeBtnClick(OpeWarehouseReserve selectedOpeWarehouseReserve) { if (selectedOpeWarehouseReserve == null) { FacesUtils.warn("请选择数据。"); return; } this.selectedOpeWarehouseReserve = selectedOpeWarehouseReserve; this.showCodes = opeReagentStatusService.getReagentCodes(selectedOpeWarehouseReserve.getReagentId()); // 根据选择的试剂获取对应的条形码 initReagentStatusSelectList(); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialog').show()"); } /** * 订单库存选择操作时,获取条形码 */ public void onReagentCodeBtnClickForPerson(OpeApplyReserve selectedOpeApplyReserve) { if (selectedOpeApplyReserve == null) { FacesUtils.warn("请选择数据。"); return; } this.selectedOpeApplyReserve = selectedOpeApplyReserve; // 根据选择的试剂获取对应的条形码 initReagentStatusSelectListForPerson(); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialogForPerson').show()"); } public void onYesBtnClickForPerson() { try { //if (this.reagentCodeSelectedList == null || this.reagentCodeSelectedList.size() == 0) { //FacesUtils.warn("请选择条形码。"); //return; //} if(this.useNum == null || this.useNum <= 0) { FacesUtils.warn("请输入大于0的领用数量!"); return; } System.out.println("====onYesBtnClick======"); if(this.reagentCodeSelectedList != null){ if(this.useNum!=this.reagentCodeSelectedList.size()){ FacesUtils.warn("领用数量与选择的条形码个数不符"); return; } } // 将当前选择条形码保存到库存中 for (OpeApplyReserve opeApplyReserve : this.selectedTmpOrderList) { if (opeApplyReserve.getId().equals(this.selectedOpeApplyReserve.getId())) { OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber()); if(this.useNum > wa.getReserve()) { FacesUtils.warn("库存不够,请确认或申购!"); return; } opeApplyReserve.setSelectNum(useNum); if(this.reagentCodeSelectedList != null) { opeApplyReserve.setReagentCode(this.reagentCodeSelectedList); } opeApplyReserve.setFlag(1); break; } } //FacesUtils.info("选择条形码个数为" + this.reagentCodeSelectedList.size()); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialogForPerson').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public void onYesBtnClickForPerson2() { try { //if (this.reagentCodeSelectedList == null || this.reagentCodeSelectedList.size() == 0) { //FacesUtils.warn("请选择条形码。"); //return; //} if(this.useNum == null || this.useNum <= 0) { FacesUtils.warn("请输入大于0的领用数量!"); return; } System.out.println("====onYesBtnClick======"); BigDecimal startReagentCode2 = new BigDecimal(startReagentCodeForPerson); BigDecimal endReagentCode2 = new BigDecimal(endReagentCodeForPerson); // 检查条形码结束要大于条形码开始 if (endReagentCode2.compareTo(startReagentCode2) == -1) { FacesUtils.warn("条形码开始必须小于条形码结束。"); return; } // 检查条形码和到货数量是否匹配 if (endReagentCode2.subtract(startReagentCode2).intValue() != (useNum - 1)) { FacesUtils.warn("条形码数量和领用数量不一致。"); return; } BigInteger startReagentCode3=new BigInteger(startReagentCodeForPerson); BigInteger endReagentCode3=new BigInteger(endReagentCodeForPerson); int len = startReagentCodeForPerson.length() - String.valueOf(startReagentCode3).length(); String temp = ""; for (int i = 0; i < len; i++) { temp += "0"; } String str=""; for (BigInteger i = startReagentCode3; i.compareTo(endReagentCode3) < 1; i = i.add(BigInteger.ONE)) { String code = temp + String.valueOf(i); OpeReagentStatus status=this.opeReagentStatusService.getOpeReagentStatusByReagentCode(code); if(status==null){ }else{ if(status.getStatus()==ArrivalStatus.WAREHOUSE){ }else{ str+=code+","; } } } if(str!=null && !str.equals("")){ FacesUtils.info("条形码"+str.substring(0,str.length()-1)+"已被领用"); return; } // 将当前选择条形码保存到库存中 List codeList=new ArrayList<>(); for (OpeApplyReserve opeApplyReserve : this.selectedTmpOrderList) { if (opeApplyReserve.getId().equals(this.selectedOpeApplyReserve.getId())) { // OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber()); // if(wa==null){ // wa=new OpeWarehouseReserve(); // wa.setReserve(0); // } // if(this.useNum > wa.getReserve()) // { // FacesUtils.warn("库存不够,请确认或申购!"); // return; // } if (this.useNum+opeApplyReserve.getUsed() > opeApplyReserve.getNum()){ FacesUtils.warn("领用数量超出申请数量!"); return; } opeApplyReserve.setSelectNum(useNum); opeApplyReserve.setStartReagentCode(startReagentCode2); opeApplyReserve.setEndReagentCode(endReagentCode2); opeApplyReserve.setStartReagentCode2(temp+startReagentCode2.toString()); opeApplyReserve.setEndReagentCode2(temp+endReagentCode2.toString()); for (BigInteger i = new BigInteger(startReagentCodeForPerson); i.compareTo(new BigInteger(endReagentCodeForPerson)) < 1; i = i.add(BigInteger.ONE)) { codeList.add(i.toString()); } /*for(int i=Integer.parseInt(startReagentCodeForPerson);i<=Integer.parseInt(endReagentCodeForPerson);i++){ codeList.add(Integer.toString(i)); }*/ if(codeList != null) { opeApplyReserve.setReagentCode(codeList); } opeApplyReserve.setFlag(0); break; } } //FacesUtils.info("选择条形码个数为" + codeList.size()); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialogForPerson').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public void onYesBtnClick2(){ try{ if(this.useNum == null || this.useNum <= 0) { FacesUtils.warn("请输入大于0的领用数量!"); return; } BigDecimal startReagentCode2 = new BigDecimal(startReagentCode); BigDecimal endReagentCode2 = new BigDecimal(endReagentCode); // 检查条形码结束要大于条形码开始 if (endReagentCode2.compareTo(startReagentCode2) == -1) { FacesUtils.warn("条形码开始必须小于条形码结束。"); return; } // 检查条形码和到货数量是否匹配 if (endReagentCode2.subtract(startReagentCode2).intValue() != (useNum - 1)) { FacesUtils.warn("条形码数量和领用数量不一致。"); return; } BigInteger startReagentCode3=new BigInteger(startReagentCode); BigInteger endReagentCode3=new BigInteger(endReagentCode); int len = startReagentCode.length() - String.valueOf(startReagentCode3).length(); String temp = ""; for (int i = 0; i < len; i++) { temp += "0"; } String str=""; for (BigInteger i = startReagentCode3; i.compareTo(endReagentCode3) < 1; i = i.add(BigInteger.ONE)) { String code = temp + String.valueOf(i); OpeReagentStatus status=this.opeReagentStatusService.getOpeReagentStatusByReagentCode(code); if(status==null){ }else{ if(status.getStatus()==ArrivalStatus.WAREHOUSE){ }else{ str+=code+","; } } } if(str!=null && !str.equals("")){ FacesUtils.info("条形码"+str.substring(0,str.length()-1)+"已被领用"); return; } List codeList=new ArrayList<>(); for (OpeWarehouseReserve opeWarehouseReserve : this.selectedTmpList) { if (opeWarehouseReserve.getId().equals(this.selectedOpeWarehouseReserve.getId())) { if(this.useNum > opeWarehouseReserve.getReserve()) { FacesUtils.warn("库存不够,请确认或申购!"); return; } opeWarehouseReserve.setSelectNum(useNum); opeWarehouseReserve.setStartReagentCode(startReagentCode2); opeWarehouseReserve.setEndReagentCode(endReagentCode2); opeWarehouseReserve.setStartReagentCode2(temp+startReagentCode2.toString()); opeWarehouseReserve.setEndReagentCode2(temp+endReagentCode2.toString()); for (BigInteger i = new BigInteger(startReagentCode); i.compareTo(new BigInteger(endReagentCode)) < 1; i = i.add(BigInteger.ONE)) { codeList.add(i.toString()); } /*for(int i=Integer.parseInt(startReagentCode);i<=Integer.parseInt(endReagentCode);i++){ codeList.add(Integer.toString(i)); }*/ if(codeList != null) { opeWarehouseReserve.setReagentCodes(codeList); } opeWarehouseReserve.setFlag(0); break; } } //FacesUtils.info("选择条形码个数为" + codeList.size()); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialog').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public void onYesBtnClick() { try { if (this.reagentCodeSelectedList == null) { FacesUtils.warn("请领用"); return; }else{ this.useNum = this.reagentCodeSelectedList.size(); } System.out.println("====onYesBtnClick======"); // 将当前选择条形码保存到库存中 for (OpeWarehouseReserve opeWarehouseReserve : this.selectedTmpList) { if (opeWarehouseReserve.getId().equals(this.selectedOpeWarehouseReserve.getId())) { if(this.useNum > opeWarehouseReserve.getReserve()) { FacesUtils.warn("库存不够,请确认或申购!"); return; } opeWarehouseReserve.setSelectNum(useNum); if(this.reagentCodeSelectedList != null) { opeWarehouseReserve.setReagentCodes(this.reagentCodeSelectedList); } opeWarehouseReserve.setFlag(1); break; } } //FacesUtils.info("选择条形码个数为" + this.reagentCodeSelectedList.size()); RequestContext.getCurrentInstance().execute("PF('reagentCodeDialog').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public void onTabChange(TabChangeEvent event) { if ("firstTab".equals(event.getTab().getId())) { tabValue = 0; }else{ tabValue = 1; } } public void onCancelBtnClick() { this.selectedTmpOrderList = null; this.selectedTmpList = null; this.selectedInputStorageTmpOrderList = null; this.menuController.backToPage(); } public void onClose(){ this.selectedTmpOrderList = null; this.selectedTmpList = null; this.menuController.backToPage(); } public void onResetBtnClick() { this.userId = null; this.laboratoryId =null; this.laboratoryId = null; } public void onSaveBtnClickForPerson(){ try { if (this.selectedTmpOrderList == null || this.selectedTmpOrderList.size() == 0) { FacesUtils.warn("请选择申领试剂。"); return; } if (this.userId == null) { FacesUtils.warn("请选择申领人。"); return; } List list=new ArrayList<>(); List list2=new ArrayList<>(); //int size = 0; for(OpeApplyReserve app:this.selectedTmpOrderList){ if(app.getFlag()==1){ list.add(app); }else { list2.add(app); } } if(list.size()>0&&list!=null){ for(OpeApplyReserve app:list){ List reagentCode=app.getReagentCode(); if(reagentCode!=null && reagentCode.size()>0){ for(String opeReagentStatusId:reagentCode){ OpeReagentStatus opeReagentStatus=this.opeReagentStatusService.getOpeReagentStatus(opeReagentStatusId); if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) { FacesUtils.warn("只能申领在仓库的试剂。"); return; }else { opeReagentStatus.setHouseId(laboratoryId); opeReagentStatus.setContainerId(laboratoryContainerId); this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); OpeLaboratoryReserve lr=new OpeLaboratoryReserve(); lr.setReagentId(app.getReagent().getId()); lr.setHouseId(laboratoryId); lr.setContainerId(laboratoryContainerId); lr.setReserve(app.getSelectNum()); lr.setUserId(userId); lr.setValidFlag(ValidFlag.VALID); this.opeLaboratoryReserveService.insert(lr); } } } } this.opeWarehouseReserveService.claimForPerson(list, userId,projectNum); } if(list2.size()>0&&list!=null){ List opeList=new ArrayList<>(); for(int i=0;i 1) { // FacesUtils.warn("只能选择一个数据进行打印。"); // return; // } /*if(this.selectGas==null){ FacesUtils.warn("请选择数据。"); return; }*/ //查询对应的气瓶 //this.gas = this.gasService.getGasDetail(this.selectGas.getId()); //打印 this.createStatementByDocx(); } public void createStatementByDocx(){ logger.info("start print gas detail A5 docx..."); FileInputStream in = null; OutputStream out = null; try { WordTemplate t = new WordTemplate(); FacesContext currentInstance = FacesContext.getCurrentInstance(); currentInstance.responseComplete(); ExternalContext etx = currentInstance.getExternalContext(); HttpServletResponse response = (HttpServletResponse) etx.getResponse(); HttpServletRequest request = (HttpServletRequest) etx.getRequest(); String templatePath = request.getRealPath("") + "resources/template.docx"; //System.out.println(this.getClass().getClassLoader().getResource( File.separator + "template.docx").toURI()); //File templateFile = new File(this.getClass().getClassLoader().getResource( File.separator + "template.docx").toURI()); File templateFile = new File(templatePath); System.out.println(templatePath); t.loadTemplate(templateFile); HashMap paras = new HashMap(); paras.put("doccorp", instituteName); paras.put("doccaption", "危险化学品(气瓶)入所气瓶现场记录单"); paras.put("dept", "1"); paras.put("sn", "2"); paras.put("corp", "3"); paras.put("vname", "4"); paras.put("vcode", "5"); paras.put("vvolume", "6"); paras.put("secname", "7"); paras.put("site", "楼号:" + "8" + " - 地址号:" + "9"); paras.put("statuscode", "10"); paras.put("mngname", "11"); paras.put("gendate", "12"); paras.put("info","13"); //检查内容 HashMap tables = new HashMap(); List data1 = new ArrayList(); /*List gasRepoterList = this.customCheckService.getGasDetailRepoter(this.gas.getId()); if (gasRepoterList != null && gasRepoterList.size() > 0) { for (int i = 0; i < gasRepoterList.size(); i++) { GasDetailRepoterModel gasDetailRepoterModel = gasRepoterList.get(i); gasDetailRepoterModel.setFlagStr(gasDetailRepoterModel.getFlag() == 1 ? "是" : "否"); gasDetailRepoterModel.setResultStr(gasDetailRepoterModel.getResult() == 1 ? "通过" : "未通过"); data1.add(new String[]{""+(i+1),gasDetailRepoterModel.getContent(), gasDetailRepoterModel.getFlagStr(),gasDetailRepoterModel.getResultStr(),gasDetailRepoterModel.getDetail()}); } }*/ WordTemplate.Table t1 = new WordTemplate.Table( new String[]{"rownum","checkitem","value","result","memo"},data1 ); tables.put("mainTable", t1); t.replaceDocument(tables, paras); String fileName = "危险化学品(气瓶)入所气瓶现场记录单.docx"; t.saveFile(pdfExportFilePath); // FacesUtils.getHttpServletRequest().getSession().setAttribute("PdfFilePath", pdfExportFilePath + fileName); // FacesUtils.getHttpServletRequest().getSession().setAttribute("PdfFileName", fileName); // FacesUtils.js("window.open('downloadpdf.jsp','_blank');"); // System.out.println("打印结束"); // return; try { response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); response.setContentType("application/msword"); in = new FileInputStream(pdfExportFilePath + fileName); // 创建输出流 out = response.getOutputStream(); // 缓存区 byte buffer[] = new byte[1024]; int len = 0; // 循环将输入流中的内容读取到缓冲区中 while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); } } finally { // 关闭 in.close(); out.close(); } }catch (Exception e){ logger.info("print gas detail docx 出错了..."); }finally { logger.info("end print gas detail docx..."); } } public void onSaveBtnClick() { try { if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) { FacesUtils.warn("请选择申领试剂。"); return; } if (this.userId == null) { FacesUtils.warn("请选择申领人。"); return; } //领用单 printTable = null; printTable = new Hashtable(); List applyList = new ArrayList<>(); Map 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("date", Utils.now("yyyy-MM-dd")); printTable.put("phone", applyPersonInfo.get("phone")); //int size = 0; int sum = 0; List list=new ArrayList<>(); List list2=new ArrayList<>(); for (OpeWarehouseReserve selectWarehouseReserve : this.selectedTmpList) { if(selectWarehouseReserve.getFlag()==1){ list.add(selectWarehouseReserve); }else{ list2.add(selectWarehouseReserve); } } if(list.size()>0&&list!=null){ for (OpeWarehouseReserve selectWarehouseReserve : list) { List reagentCodes = selectWarehouseReserve.getReagentCodes(); if (reagentCodes != null && reagentCodes.size() > 0) for (String opeReagentStatusId : reagentCodes) { OpeReagentStatus opeReagentStatus = this.opeReagentStatusService .getOpeReagentStatus(opeReagentStatusId); if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) { FacesUtils.warn("只能申领在仓库的试剂。"); return; }else { opeReagentStatus.setHouseId(laboratoryId); opeReagentStatus.setContainerId(laboratoryContainerId); this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);//更新试剂状态表 OpeLaboratoryReserve lr=new OpeLaboratoryReserve(); lr.setReagentId(selectWarehouseReserve.getReagentId()); lr.setHouseId(laboratoryId); lr.setContainerId(laboratoryContainerId); lr.setReserve(selectWarehouseReserve.getSelectNum()); lr.setUserId(userId); lr.setValidFlag(ValidFlag.VALID); this.opeLaboratoryReserveService.insert(lr); } //else { //size++; //} } 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")); 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 += selectWarehouseReserve.getSelectNum(); } //if (size == 0) { //FacesUtils.warn("未选择一个条形码。"); //return; //} this.opeWarehouseReserveService.claim(list, userId,projectNum); } if(list2.size()>0&&list2!=null){ List opeList=new ArrayList<>(); //this.opeApplyService.getOpeApplyList(null,null,null,null,null) for(int i=0;i checkTable= new HashMap<>(); if (opeApplyList != null && opeApplyList.size() > 0) { for (OpeApplyReserve opeApplyReserve:opeApplyList) { //0.1获取该申购单的订单 OpeOrder oo = opeOrderService.getOrder(opeApplyReserve.getId()); if (oo == null) { throw new BusinessException(ExceptionEnumCode.ORDER_ERROR,"订单不存在"); } //0.2检查条码->得到试剂条码列表 List codeList = opeReagentStatusService .checkReagentCode(opeApplyReserve.getStartReagentCode2(), opeApplyReserve.getEndReagentCode2(), opeApplyReserve.getArrivalNum()); if (codeList != null && codeList.size() > 0) { for (String code:codeList) { if (checkTable.get(code) == null) { checkTable.put(code, true); }else{ throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, "当前订单条码重复,"+code); } } } } checkTable = null; opeApplyService.orderInputWarehouse(opeApplyList,consigneeId,arrivalTime); } FacesUtils.info("入库完成"); //返回 this.onCancelBtnClick(); }catch (BusinessException e){ e.printStackTrace(); FacesUtils.warn(e.getMessage()); } catch (Exception e) { e.printStackTrace(); FacesUtils.warn("系统异常,操作失败"); } } @SuppressWarnings("serial") public LazyDataModel getDataModel() { logger.info("WarehouseStockMngController getDataModel start"); if (this.dataModel == null) { this.dataModel = new LazyDataModel() { @Override public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { int count = opeWarehouseReserveService.getOpeWarehouseReserveTotalCountByName(reagentId, supplierId,productSn); this.setRowCount(count); if (count > 0) { list = opeWarehouseReserveService.getOpeWarehouseReserveListByName(reagentId, supplierId, first, pageSize,productSn); } } catch (Exception e) { logger.error(e); } return list; } @Override public OpeWarehouseReserve getRowData(String rowKey) { Iterator iterator = this.iterator(); if (iterator != null) { OpeWarehouseReserve su = null; while (iterator.hasNext()) { su = iterator.next(); if (rowKey.equals(su.getId())) { return su; } } } return null; } }; } return dataModel; } @SuppressWarnings("serial") public LazyDataModel getDataModelForPerson() { logger.info("WarehouseStockMngController getDataModelForPerson start: "+this.dataModelForPerson); if (this.dataModelForPerson == null) { this.dataModelForPerson = new LazyDataModel() { @Override public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; SysUser loginUser = getUser(); String id=""; if(loginUser.getSeeFlag()==SeeFlag.MANAGE){ }else { //userName=loginUser.getName(); id=loginUser.getId(); } try { int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id,reagentId, userName,productSn,applyCode,status); this.setRowCount(count); if (count > 0) { list = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, first, pageSize,productSn,applyCode,status); } } catch (Exception e) { logger.error(e); } return list; } @Override public OpeApplyReserve getRowData(String rowKey) { Iterator iterator = this.iterator(); if (iterator != null) { OpeApplyReserve su = null; while (iterator.hasNext()) { su = iterator.next(); if (rowKey.equals(su.getId())) { return su; } } } return null; } }; } logger.info("WarehouseStockMngController getDataModelForPerson end"); return dataModelForPerson; } @SuppressWarnings("serial") public LazyDataModel getReagentStatusDataModel() { logger.info("WarehouseStockMngController getReagentStatusDataModel start"); if (this.reagentStatusDataModel == null) { this.reagentStatusDataModel = new LazyDataModel() { @Override public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { int count = opeReagentStatusService.getLogOpeReagentStatusTotalCount(reagentLogId, ArrivalStatus.PERSONAL.getKey(), userLogId, getUser().getId()); this.setRowCount(count); if (count > 0) { list = opeReagentStatusService.getLogOpeReagentStatusList(reagentLogId, ArrivalStatus.PERSONAL.getKey(), userLogId, getUser().getId(), first, pageSize); } } catch (Exception e) { logger.error(e); } return list; } @Override public OpeReagentStatus getRowData(String rowKey) { Iterator iterator = this.iterator(); if (iterator != null) { OpeReagentStatus su = null; while (iterator.hasNext()) { su = iterator.next(); if (rowKey.equals(su.getId())) { return su; } } } return null; } }; } return reagentStatusDataModel; } public void onExportFileBtnClickOrder(){ ServletOutputStream out = null; InputStream is = null; try { FacesContext ctx = FacesContext.getCurrentInstance(); ctx.responseComplete(); String contentType = "application/x-download"; HttpServletResponse response = (HttpServletResponse) ctx .getExternalContext().getResponse(); response.setContentType(contentType); StringBuffer contentDisposition = new StringBuffer(); contentDisposition.append("attachment;"); contentDisposition.append("filename=\""); contentDisposition.append("订单领取导出.xls"); contentDisposition.append("\""); response.setHeader( "Content-Disposition", new String(contentDisposition.toString().getBytes( System.getProperty("file.encoding")), "ISO8859-1")); out = response.getOutputStream(); Map tempMap = new HashMap(); List realDataList = new ArrayList<>(); //map=null; SysUser loginUser = getUser(); String id=""; if(loginUser.getSeeFlag()==SeeFlag.MANAGE){ }else { //userName=loginUser.getName(); id=loginUser.getId(); } if(selectedListForPerson!=null&&selectedListForPerson.size()>0){ realDataList=selectedListForPerson; }else { realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null, null,productSn,applyCode,status); } List headerList = new ArrayList<>(); headerList.add("申购编号"); headerList.add("产品编号"); headerList.add("试剂名称"); headerList.add("管制品"); headerList.add("规格型号"); headerList.add("包装"); headerList.add("价格"); headerList.add("CAS"); headerList.add("危险性质"); headerList.add("厂家"); headerList.add("申请数量"); headerList.add("已领用数量"); headerList.add("申领人"); headerList.add("订单状态"); headerList.add("课题组"); headerList.add("课题组负责人"); headerList.add("到货时间"); HSSFWorkbook hssfWorkbook =exportExcelOrder(headerList, realDataList); hssfWorkbook.write(out); out.flush(); ctx.responseComplete(); }catch (Exception e) { if(is!=null){ try { is.close(); } catch (IOException e1) { e1.printStackTrace(); } } if(out!=null){ try { out.close(); } catch (IOException e1) { e1.printStackTrace(); } } e.printStackTrace(); }finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } public HSSFWorkbook exportExcelOrder(List headerList, List dataList){ HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); Integer total = null; HSSFSheet sheet = hssfWorkbook.createSheet("订单领取导出"); HSSFRow titlerRow = sheet.createRow(0); for(int i = 0; i < headerList.size(); i++) { titlerRow.createCell(i).setCellValue(headerList.get(i)); } for (int i = 0; i < dataList.size(); i++) { HSSFRow dataRow = sheet.createRow(i + 1); dataRow.createCell(0).setCellValue(dataList.get(i).getApplyCode()== null ? "": String.valueOf(dataList.get(i).getApplyCode())); dataRow.createCell(1).setCellValue(dataList.get(i).getReagent().getProductSn()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductSn())); dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getName()== null ? "": String.valueOf(dataList.get(i).getReagent().getName())); dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getControlProducts()== null ? "": String.valueOf(dataList.get(i).getReagent().getControlProducts())); dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentFormat())); dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())); dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); dataRow.createCell(7).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); dataRow.createCell(8).setCellValue(dataList.get(i).getReagent().getReagentCharacter()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentCharacter())); dataRow.createCell(9).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); dataRow.createCell(10).setCellValue(dataList.get(i).getNum()== null ? "": String.valueOf(dataList.get(i).getNum())); dataRow.createCell(11).setCellValue(dataList.get(i).getUsed()== null ? "": String.valueOf(dataList.get(i).getUsed())); dataRow.createCell(12).setCellValue(dataList.get(i).getApplyUserId()== null ? "": String.valueOf(dataList.get(i).getApplyUserId())); dataRow.createCell(13).setCellValue(dataList.get(i).getStatus()== null ? "": String.valueOf(dataList.get(i).getStatus().getText())); dataRow.createCell(14).setCellValue(dataList.get(i).getProject()== null ? "": String.valueOf(dataList.get(i).getProject())); dataRow.createCell(15).setCellValue(dataList.get(i).getProjectManage()== null ? "": String.valueOf(dataList.get(i).getProjectManage())); dataRow.createCell(16).setCellValue(dataList.get(i).getArrivalTime()== null ? "": String.valueOf(dataList.get(i).getArrivalTime())); } return hssfWorkbook; } public void onExportFileBtnClickNew(){ ServletOutputStream out = null; InputStream is = null; try { FacesContext ctx = FacesContext.getCurrentInstance(); ctx.responseComplete(); String contentType = "application/x-download"; HttpServletResponse response = (HttpServletResponse) ctx .getExternalContext().getResponse(); response.setContentType(contentType); StringBuffer contentDisposition = new StringBuffer(); contentDisposition.append("attachment;"); contentDisposition.append("filename=\""); contentDisposition.append("仓库库存.xls"); contentDisposition.append("\""); response.setHeader( "Content-Disposition", new String(contentDisposition.toString().getBytes( System.getProperty("file.encoding")), "ISO8859-1")); out = response.getOutputStream(); Map tempMap = new HashMap(); List realDataList = new ArrayList<>(); //map=null; if(selectedList!=null&&selectedList.size()>0){ realDataList=selectedList; }else { realDataList = opeWarehouseReserveService.getOpeWarehouseReserveListByName(reagentId, supplierId, null, null,productSn); } List headerList = new ArrayList<>(); headerList.add("试剂名称"); headerList.add("产品编号"); headerList.add("cas"); headerList.add("厂家"); headerList.add("供应商"); headerList.add("规格"); headerList.add("包装"); headerList.add("参考价格"); headerList.add("批号"); headerList.add("库存"); headerList.add("仓库"); HSSFWorkbook hssfWorkbook =exportExcelNew(headerList, realDataList); hssfWorkbook.write(out); out.flush(); ctx.responseComplete(); }catch (Exception e) { if(is!=null){ try { is.close(); } catch (IOException e1) { e1.printStackTrace(); } } if(out!=null){ try { out.close(); } catch (IOException e1) { e1.printStackTrace(); } } e.printStackTrace(); }finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } public HSSFWorkbook exportExcelNew(List headerList, List dataList) { HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); Integer total = null; HSSFSheet sheet = hssfWorkbook.createSheet("仓库库存"); HSSFRow titlerRow = sheet.createRow(0); for(int i = 0; i < headerList.size(); i++) { titlerRow.createCell(i).setCellValue(headerList.get(i)); } for (int i = 0; i < dataList.size(); i++) { HSSFRow dataRow = sheet.createRow(i + 1); dataRow.createCell(0).setCellValue(dataList.get(i).getReagent().getName()== null ? "": String.valueOf(dataList.get(i).getReagent().getName())); dataRow.createCell(1).setCellValue(dataList.get(i).getReagent().getProductSn()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductSn())); dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getSupplierName()== null ? "": String.valueOf(dataList.get(i).getReagent().getSupplierName())); dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentFormat()))); dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())+baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentUnit())); dataRow.createCell(7).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); dataRow.createCell(8).setCellValue(dataList.get(i).getArticleNumber()== null ? "": String.valueOf(dataList.get(i).getArticleNumber())); dataRow.createCell(9).setCellValue(dataList.get(i).getReserve()== null ? "": String.valueOf(dataList.get(i).getReserve())); dataRow.createCell(10).setCellValue(dataList.get(i).getWarehouseName()== null ? "": String.valueOf(dataList.get(i).getWarehouseName())); } return hssfWorkbook; } /** * 试剂直接入库 */ public void onDStoreBtnClick() { this.onResetBtnClickForNewP(); this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_DIRECT_STORE, Constants.PAGE_WAREHOUSE_STOCK_MNG); } /** * 直接入库试剂List_重置 */ public void onResetBtnClickForNewP() { this.reagentDStoreList = new ArrayList(); } /** * 直接入库试剂List_修改 */ public void onEditBtnClickForNewP() { if (this.reagentDStoreSelectedList == null || this.reagentDStoreSelectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (this.reagentDStoreSelectedList.size() > 1) { FacesUtils.warn("只能选择一个数据进行修改。"); return; } this.reagentDStoreEditFlag = Constants.ACTION_EDIT; this.reagentDStore = this.reagentDStoreSelectedList.get(0); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()"); } /** * 直接入库试剂List_删除 */ public void onDeleteBtnClickForNewP() { if (this.reagentDStoreSelectedList == null || this.reagentDStoreSelectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } List selectedIds = new ArrayList(); for (OpeApply oa : this.reagentDStoreSelectedList) { selectedIds.add(oa.getReagent().getId()); } Iterator it = this.reagentDStoreList.iterator(); while(it.hasNext()){ OpeApply ope = it.next(); if(selectedIds.contains(ope.getReagent().getId())) { it.remove(); } } this.reagentDStoreSelectedList = null; FacesUtils.info("删除成功。"); } /** * 直接入库试剂List_提交 */ public void onSaveBtnClickForNewP() { try { if (this.reagentDStoreList == null || this.reagentDStoreList.size() == 0) { FacesUtils.warn("新建对象为空。"); return; } SysUser loginUser = this.getUser(); if (loginUser == null) { FacesUtils.warn("当前登陆用户信息未能找到。"); return; } this.opeWarehouseReserveService.reagentDStore(this.reagentDStoreList, loginUser.getId()); FacesUtils.info("提交成功。"); this.menuController.backToPage(); } catch (BusinessException e) { logger.warn("操作失败。", e); FacesUtils.warn(e.getMessage()); }catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } /** * 新建申购dialog_取消 */ public void onCancelBtnClickNew() { this.reagentDStore = new OpeApply(); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').hide()"); } /** * 新建申购dialog_增加 */ public void onSaveBtnClickNew() { if (this.reagentDStore.getReagent() == null || StringUtils.isBlank(this.reagentDStore.getReagent().getId())) { FacesUtils.warn("请选择入库试剂。"); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').hide()"); return; } // 检查到货数量 if (this.reagentDStore.getArrivalNum() == null || this.reagentDStore.getArrivalNum() <= 0) { FacesUtils.warn("入库数量不能为空,且要大于0。"); return; } // 检查货号 if (StringUtils.isBlank(this.reagentDStore.getArticleNumber())) { FacesUtils.warn("货号不能为空。"); return; } // 检查条形码开始 /*if (StringUtils.isBlank(this.reagentDStore.getStartReagentCode())) { FacesUtils.warn("条形码开始不能为空。"); return; } // 检查条形码结束 if (StringUtils.isBlank(this.reagentDStore.getEndReagentCode())) { FacesUtils.warn("条形码结束不能为空。"); return; }*/ // 检查仓库名 if (StringUtils.isBlank(this.reagentDStore.getHouseId())) { FacesUtils.warn("仓库名不能为空。"); return; } // 检查货柜名 if (StringUtils.isBlank(this.reagentDStore.getContainerId())) { FacesUtils.warn("货柜名不能为空。"); return; } // 检查货柜位置 if (StringUtils.isBlank(this.reagentDStore.getPlaceId())) { FacesUtils.warn("货柜位置不能为空。"); return; } //输入条形码开始和结束 if (!StringUtils.isBlank(this.reagentDStore.getEndReagentCode())&&!StringUtils.isBlank(this.reagentDStore.getEndReagentCode())){ BigDecimal startReagentCode = new BigDecimal(this.reagentDStore.getStartReagentCode()); BigDecimal endReagentCode = new BigDecimal(this.reagentDStore.getEndReagentCode()); // 检查条形码结束要大于条形码开始 if (endReagentCode.compareTo(startReagentCode) == -1) { FacesUtils.warn("条形码开始必须小于条形码结束。"); return; } // 检查条形码和到货数量是否匹配 if (endReagentCode.subtract(startReagentCode).intValue() != (this.reagentDStore.getArrivalNum() - 1)) { FacesUtils.warn("条形码数量和入库数量不一致。"); return; } if(this.reagentDStoreEditFlag == Constants.ACTION_ADD) { if(this.reagentDStoreList.stream().filter( apply -> apply.getReagent().getId().equals(this.reagentDStore.getReagent().getId()) && apply.getArrivalNum()==this.reagentDStore.getArrivalNum() && apply.getStartReagentCode().equals(this.reagentDStore.getStartReagentCode()) && apply.getEndReagentCode().equals(this.reagentDStore.getEndReagentCode())).count() > 0) { FacesUtils.warn("该试剂已被增加!"); }else { this.reagentDStore.setId(IDUtils.uuid()); this.reagentDStoreList.add(this.reagentDStore); FacesUtils.info("增加成功。"); } } }else { if(this.reagentDStoreEditFlag == Constants.ACTION_ADD) { this.reagentDStore.setStartReagentCode(""); this.reagentDStore.setEndReagentCode(""); if(this.reagentDStoreList.stream().filter( apply -> apply.getReagent().getId().equals(this.reagentDStore.getReagent().getId()) && apply.getArrivalNum()==this.reagentDStore.getArrivalNum() && apply.getStartReagentCode().equals(this.reagentDStore.getStartReagentCode()) && apply.getEndReagentCode().equals(this.reagentDStore.getEndReagentCode())).count() > 0) { FacesUtils.warn("该试剂已被增加!"); }else { this.reagentDStore.setId(IDUtils.uuid()); this.reagentDStoreList.add(this.reagentDStore); FacesUtils.info("增加成功。"); } } } this.reagentDStore = new OpeApply(); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').hide()"); } public void onReagentRowSelect(SelectEvent event) { this.reagentDStore = new OpeApply(); this.reagentDStore.setReagent((SysReagent)event.getObject()); this.reagentDStoreEditFlag = Constants.ACTION_ADD; RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()"); } public void onWarehouseSelectChange(String warehouseId) { this.warehouseContainerList = null; this.warehouseContainerPlaceList = null; this.changeWarehouseContainerList(warehouseId); this.changeWarehouseContainerPlaceList(null); } private void changeWarehouseContainerList(String warehouseId) { if (StringUtils.isBlank(warehouseId)) { if (this.warehouseList != null && this.warehouseList.size() > 0) { warehouseId = this.warehouseList.get(0).getId(); } } if (StringUtils.isNotBlank(warehouseId)) { this.warehouseContainerList = warehouseIdContainerMap.get(warehouseId); } } private void changeWarehouseContainerPlaceList(String warehouseContainerId) { if (StringUtils.isBlank(warehouseContainerId)) { if (this.warehouseContainerList != null && this.warehouseContainerList.size() > 0) { warehouseContainerId = this.warehouseContainerList.get(0).getId(); } } if (StringUtils.isNotBlank(warehouseContainerId)) { SysWarehouseContainer container = this.warehouseContainerMap.get(warehouseContainerId); BaseMeta baseMeta = null; if (container != null && (baseMeta = this.baseMetaService.getBaseMeta(container.getStructure())) != null) { this.warehouseContainerPlaceList = this.baseMetaService.getBaseMetaList(baseMeta.getMetaKey()); } } } public String formatWarehouseName(String id) { if (StringUtils.isNotBlank(id) && this.warehouseNameMap != null) { return warehouseNameMap.get(id); } return ""; } public String formatWarehouseContainerName(String id) { if (StringUtils.isNotBlank(id) && this.warehouseContainerMap != null) { if (this.warehouseContainerMap.get(id) != null) { return this.warehouseContainerMap.get(id).getContainerCode(); } } return ""; } public String formatWarehouseContainerPlaceName(String id) { if (StringUtils.isNotBlank(id)) { return this.baseMetaService.getBaseMetaValue(id); } return ""; } public int getAction() { return action; } public List getReagentSelectList() { if (this.reagentSelectList == null) { this.initReagentSelectList(); } return reagentSelectList; } public void setReagentSelectList(List reagentSelectList) { this.reagentSelectList = reagentSelectList; } public String getReagentId() { return reagentId; } public void setReagentId(String reagentId) { this.reagentId = reagentId; } public List getUserSelectList() { if (userSelectList == null) { this.initUserSelectList(); } return userSelectList; } public SysUser getSelectedUserById(String userId) { return userSelectList.stream().filter(u->u.getId().equals(userId)).findFirst().get(); } public List getUserSelectList(String keyword) { final String key = keyword.toLowerCase(); return userSelectList.stream().filter(u->u.getName().toLowerCase().contains(key)).collect(Collectors.toList()); } public void setUserSelectList(List userSelectList) { this.userSelectList = userSelectList; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getProjectNum() { return projectNum; } public void setProjectNum(String projectNum) { this.projectNum = projectNum; } public String getSupplierId() { return supplierId; } public void setSupplierId(String supplierId) { this.supplierId = supplierId; } public List getSupplierSelectList() { if (supplierSelectList == null) { this.initSupplierSelectList(); } return supplierSelectList; } public void setSupplierSelectList(List supplierSelectList) { this.supplierSelectList = supplierSelectList; } public List getSelectedList() { return selectedList; } public void setSelectedList(List selectedList) { this.selectedList = selectedList; } public OpeWarehouseReserve getSelectedOpeWarehouseReserve() { return selectedOpeWarehouseReserve; } public void setSelectedOpeWarehouseReserve(OpeWarehouseReserve selectedOpeWarehouseReserve) { this.selectedOpeWarehouseReserve = selectedOpeWarehouseReserve; } public List getReagentStatusSelectList() { initReagentStatusSelectList(); return reagentStatusSelectList; } public void setReagentStatusSelectList(List reagentStatusSelectList) { this.reagentStatusSelectList = reagentStatusSelectList; } public List getReagentCodeSelectedList() { return reagentCodeSelectedList; } public void setReagentCodeSelectedList(List reagentCodeSelectedList) { this.reagentCodeSelectedList = reagentCodeSelectedList; } public String getReagentLogId() { return reagentLogId; } public void setReagentLogId(String reagentLogId) { this.reagentLogId = reagentLogId; } public String getUserLogId() { return userLogId; } public void setUserLogId(String userLogId) { this.userLogId = userLogId; } public void handleEvent(){ if(reagentDStore!=null){ if(reagentDStore.getArrivalNum()!=null && reagentDStore.getArrivalNum()>0){ if(reagentDStore.getStartReagentCode()!=null && !reagentDStore.getStartReagentCode().equals("")){ BigDecimal start=new BigDecimal(reagentDStore.getStartReagentCode()); String str=reagentDStore.getStartReagentCode(); String up=""; int len = reagentDStore.getStartReagentCode().length() - String.valueOf(reagentDStore.getStartReagentCode()).length(); String temp = ""; for (int i = 0; i < len; i++) { temp += "0"; } BigDecimal end=start.add(new BigDecimal(reagentDStore.getArrivalNum()-1)); reagentDStore.setEndReagentCode(temp +end.toString()); //reagentDStore.setEndReagentCode(Integer.toString(reagentDStore.getArrivalNum()-1+Integer.parseInt(reagentDStore.getStartReagentCode()))); }else{ FacesUtils.info("请输入条形码开始"); } }else { FacesUtils.info("请输入入库数量"); } } } public void handleEvent2(){ System.out.println("==============================="); if(useNum!=null && useNum>0){ if(startReagentCode!=null && !startReagentCode.equals("")){ BigDecimal start=new BigDecimal(startReagentCode.trim()); String str=startReagentCode; String up=""; int len = startReagentCode.length() - String.valueOf(start).length(); String temp = ""; for (int i = 0; i < len; i++) { temp += "0"; } BigDecimal end = start.add(new BigDecimal(useNum-1)); endReagentCode=temp+end.toString(); //endReagentCode=Integer.toString(useNum-1+Integer.parseInt(startReagentCode)); }else{ FacesUtils.info("请输入条形码开始"); } }else { FacesUtils.info("请输入领用数量"); } } public void handleEventForPerson(){ if(useNum!=null && useNum>0){ if(startReagentCodeForPerson!=null && !startReagentCodeForPerson.equals("")){ BigDecimal start=new BigDecimal(startReagentCodeForPerson.trim()); String str=startReagentCodeForPerson; String up=""; int len = startReagentCodeForPerson.length() - String.valueOf(start).length(); String temp = ""; for (int i = 0; i < len; i++) { temp += "0"; } BigDecimal end = start.add(new BigDecimal(useNum-1)); endReagentCodeForPerson=temp+end.toString(); //endReagentCodeForPerson=Integer.toString(useNum-1+Integer.parseInt(startReagentCodeForPerson.trim())); }else{ FacesUtils.info("请输入条形码开始"); } }else { FacesUtils.info("请输入领用数量"); } } public void uploadFile(){ System.out.println(11111111); } /*public List getApplyUser(String value){ List list=this.userSelectList; List results=new ArrayList<>(); for(SysUser u:list){ if(u.getName().indexOf(value)>-1){ results.add(u); } } return results; }*/ /*public void handleSelect(SelectEvent event){ }*/ public List getApplyUserSelectList() { SysUser sysUser = getUser(); if (sysUser == null) { applyUserSelectList = new ArrayList(); } else { // 负责人,需要把部门的userid传递到SQL if (sysUser.getSeeFlag().getKey() == SeeFlag.LEADING.getKey()) { applyUserSelectList = this.sysUserService.getSeeUserList(sysUser.getDepartment()); } else if (sysUser.getSeeFlag().getKey() == SeeFlag.NORMAL.getKey()) { List list = new ArrayList(); list.add(sysUser); applyUserSelectList = list; } else { applyUserSelectList = this.sysUserService.getSysUserList(null, null, null, null, null); } } return applyUserSelectList; } public void setApplyUserSelectList(List applyUserSelectList) { this.applyUserSelectList = applyUserSelectList; } public String getReagentCode() { return reagentCode; } public void setReagentCode(String reagentCode) { this.reagentCode = reagentCode; } public LazyDataModel getReagentDataModel() { if (this.reagentDataModel == null) { this.reagentDataModel = new LazyDataModel() { @Override public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { int count = sysReagentService.getSysReagentTotalCountNew(applyNewReagentName, applyNewCas, null,null,productSn); this.setRowCount(count); if (count > 0) { list = sysReagentService.getSysReagentListNew(applyNewReagentName, applyNewCas, null,null, first, pageSize,productSn); } } catch (Exception e) { logger.error(e); } return list; } @Override public SysReagent getRowData(String rowKey) { Iterator iterator = this.iterator(); if (iterator != null) { SysReagent sr = null; while (iterator.hasNext()) { sr = iterator.next(); if (rowKey.equals(sr.getId())) { return sr; } } } return null; } }; } return reagentDataModel; } public List getReagentDStoreList() { return reagentDStoreList; } public void setReagentDStoreList(List reagentDStoreList) { this.reagentDStoreList = reagentDStoreList; } public List getReagentDStoreSelectedList() { return reagentDStoreSelectedList; } public void setReagentDStoreSelectedList(List reagentDStoreSelectedList) { this.reagentDStoreSelectedList = reagentDStoreSelectedList; } public int getReagentDStoreEditFlag() { return reagentDStoreEditFlag; } public void setReagentDStoreEditFlag(int reagentDStoreEditFlag) { this.reagentDStoreEditFlag = reagentDStoreEditFlag; } public OpeApply getReagentDStore() { return reagentDStore; } public void setReagentDStore(OpeApply reagentDStore) { this.reagentDStore = reagentDStore; } public String getApplyNewReagentName() { return applyNewReagentName; } public void setApplyNewReagentName(String applyNewReagentName) { this.applyNewReagentName = applyNewReagentName; } public String getApplyNewCas() { return applyNewCas; } public void setApplyNewCas(String applyNewCas) { this.applyNewCas = applyNewCas; } public List getWarehouseList() { return warehouseList; } public List getWarehouseContainerList() { return warehouseContainerList; } public List getWarehouseContainerPlaceList() { return warehouseContainerPlaceList; } public Integer getUseNum() { return useNum; } public void setUseNum(Integer useNum) { this.useNum = useNum; } public String getOriLaboratoryId() { return oriLaboratoryId; } public void setOriLaboratoryId(String oriLaboratoryId) { this.oriLaboratoryId = oriLaboratoryId; } public void resetLaboratory(){ laboratory = null; laboratoryContainers = null; //getLaboratory(); //getLaboratoryContainers(); } public void resetLaboratoryContainers() { laboratoryContainers = null; //getLaboratoryContainers(); } public List getLaboratory() { if(userId != null && userId.trim().length() > 0) { this.laboratory = this.sysLaboratoryService.getSysLaboratoryListByDep(sysUserService.getSysUser(userId).getDepartment()); 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(); //} this.laboratoryId=this.laboratory.get(0).getId(); this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(this.laboratory.get(0).getId()); }else { this.oriLaboratoryId = null; this.laboratoryContainers = null; } }else { this.laboratory = null; this.laboratoryId = null; this.laboratoryContainers = null; } return laboratory; } public void setLaboratory(List laboratory) { this.laboratory = laboratory; } public List getLaboratoryContainers() { if(laboratoryId != null && laboratoryId.trim().length() > 0) { this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId); } return laboratoryContainers; } public void setLaboratoryContainers(List laboratoryContainers) { this.laboratoryContainers = laboratoryContainers; } public String getLaboratoryId() { return laboratoryId; } public void setLaboratoryId(String laboratoryId) { this.laboratoryId = laboratoryId; } public String getLaboratoryContainerId() { return laboratoryContainerId; } public void setLaboratoryContainerId(String laboratoryContainerId) { this.laboratoryContainerId = laboratoryContainerId; } public List getSelectedListForPerson() { return selectedListForPerson; } public void setSelectedListForPerson(List selectedListForPerson) { this.selectedListForPerson = selectedListForPerson; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public static long getSerialVersionUID() { return serialVersionUID; } public String getStartReagentCode() { return startReagentCode; } public void setStartReagentCode(String startReagentCode) { this.startReagentCode = startReagentCode; } public String getEndReagentCode() { return endReagentCode; } public void setEndReagentCode(String endReagentCode) { this.endReagentCode = endReagentCode; } public List getSelectedTmpList() { return selectedTmpList; } public void setSelectedTmpList(List selectedTmpList) { this.selectedTmpList = selectedTmpList; } public List getTrulySelectedList() { return trulySelectedList; } public void setTrulySelectedList(List trulySelectedList) { this.trulySelectedList = trulySelectedList; } public List getShowCodes() { return showCodes; } public void setShowCodes(List showCodes) { this.showCodes = showCodes; } public List getSelectedTmpOrderList() { return selectedTmpOrderList; } public void setSelectedTmpOrderList(List selectedTmpOrderList) { this.selectedTmpOrderList = selectedTmpOrderList; } public List getTrulySelectedOrderList() { return trulySelectedOrderList; } public void setTrulySelectedOrderList(List trulySelectedOrderList) { this.trulySelectedOrderList = trulySelectedOrderList; } public Integer getTabValue() { return tabValue; } public void setTabValue(Integer tabValue) { this.tabValue = tabValue; } public List getSelectedInputStorageTmpOrderList() { return selectedInputStorageTmpOrderList; } public void setSelectedInputStorageTmpOrderList(List selectedInputStorageTmpOrderList) { this.selectedInputStorageTmpOrderList = selectedInputStorageTmpOrderList; } public List getTrulyInputStorageTmpSelectedOrderList() { return trulyInputStorageTmpSelectedOrderList; } public void setTrulyInputStorageTmpSelectedOrderList(List trulyInputStorageTmpSelectedOrderList) { this.trulyInputStorageTmpSelectedOrderList = trulyInputStorageTmpSelectedOrderList; } public Timestamp getArrivalTime() { return arrivalTime; } public void setArrivalTime(Timestamp arrivalTime) { this.arrivalTime = arrivalTime; } public String getConsigneeId() { return consigneeId; } public void setConsigneeId(String consigneeId) { this.consigneeId = consigneeId; } public List getConsignee() { List dataList = this.sysUserService.getSysUserList(null, null, null, null, null); //将admin置于首位 for (int i = 0; i < dataList.size(); i++) { if ("admin".equals(dataList.get(i).getAccount())){ dataList.add(0, dataList.remove(i)); } } return dataList; } public List getOpeApplyList() { return opeApplyList; } public void setOpeApplyList(List opeApplyList) { this.opeApplyList = opeApplyList; } public void setArrival(OpeApplyReserve oar) { //强制-》全到货 oar.setArrivalNum(oar.getNum()); } public void reagentStartCodeChange(OpeApplyReserve oar) { //先输入条形码,到货数量帮填 oar.setArrivalNum(oar.getNum()); String startReagentCode2 = oar.getStartReagentCode2(); String endReagentCode2 = oar.getEndReagentCode2(); //1.如果开始条码为空,条码就为空,或者没有到货 if (StringUtils.isBlank(startReagentCode2) || oar.getArrivalNum() == null || oar.getArrivalNum() < 1) { oar.setStartReagentCode2(""); oar.setEndReagentCode2(""); return; } //2如果开始条码不为空 //2.0如果包含字母不等于24位的直接不管 if (startReagentCode2.matches(".*[A-F]+.*")) { if (startReagentCode2.length() ==24){ //2.2长度为24位编码的 BigInteger arrNum = BigInteger.valueOf(oar.getArrivalNum().longValue()); //后5位随机码 String randomCode = startReagentCode2.substring(startReagentCode2.length() - 5); String reagentCodePrefix = startReagentCode2.substring(0,startReagentCode2.length() - 5); BigInteger startReagentCodeSuffix = new BigInteger(randomCode); BigInteger endReagentCodeSuffix = startReagentCodeSuffix.add(arrNum).subtract((new BigInteger("1"))); String reagentCodeSuffix= autoGenericCode(randomCode, endReagentCodeSuffix); oar.setEndReagentCode2(reagentCodePrefix + reagentCodeSuffix); }else{ oar.setEndReagentCode2(""); } }else{ BigInteger startReagentCode = new BigInteger(startReagentCode2); //2.1长度不为24位编码 //数据1 BigInteger arrNum = BigInteger.valueOf(oar.getArrivalNum().longValue()); BigInteger code1 = startReagentCode.add(arrNum).subtract(BigInteger.ONE); oar.setEndReagentCode2(autoGenericCode(startReagentCode2, code1)); } } private String autoGenericCode(String code, BigInteger code1) { String result = ""; //补充位数 result = String.format("%0" + code.length() + "d", code1); return result; } public void setProductSn(String productSn) { this.productSn = productSn; } public String getProductSn() { return productSn; } public String getApplyCode() { return applyCode; } public void setApplyCode(String applyCode) { this.applyCode = applyCode; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public List getStatusSelectList() { if (this.statusSelectList == null) { this.statusSelectList = Arrays.asList(ApplyStatusVo.values()); } return statusSelectList; } }