From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 18 八月 2021 14:27:59 +0800 Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错 --- src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java | 243 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 181 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java index 2962b20..4aaf691 100644 --- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java @@ -173,6 +173,8 @@ @Value("${institute.name}") String instituteName; + private boolean isExpired; + private Hashtable printTable; public Hashtable getPrintTable() { @@ -424,7 +426,8 @@ System.out.println(getUser().getSeeFlag().getKey()); //SysUser u=sysUserService.getSysUser(getUserId()); //System.out.println(u); - if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) { + if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey() + && getUser().getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) { editFlag=0; }else{ editFlag=1; @@ -799,7 +802,7 @@ //变换条码 btCodeChange(); } - + /** * 取消一个仓库领取 */ @@ -1074,6 +1077,7 @@ this.selectedInputStorageTmpOrderList = null; this.endReagentCodeForPerson = null; this.startReagentCodeForPerson = null; + this.laboratoryId = null; this.useNum = null; this.menuController.backToPage(); } @@ -1210,16 +1214,24 @@ printTable = new Hashtable(); int sum = 0; List<ApplyListDto> applyList = new ArrayList<>(); - Map applyPersonInfo = sysUserService.getUser(userId); + SysUser applyPersonInfo = sysUserService.getUser(userId); + if (applyPersonInfo == null) { + FacesUtils.warn("申领人不存在或者申领人部门被删除。"); + return; + } printTable.put("head", instituteName); printTable.put("title", "领用单"); - printTable.put("applyPerson", applyPersonInfo.get("name")); - printTable.put("department", applyPersonInfo.get("meta_value")); + printTable.put("applyPerson", applyPersonInfo.getName()); + printTable.put("department", applyPersonInfo.getDepartment()); printTable.put("date", Utils.now("yyyy-MM-dd")); - printTable.put("phone", applyPersonInfo.get("phone")); String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); printTable.put("receiptNumber", receiptNum); - printTable.put("project", applyPersonInfo.get("project")); + if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){ + printTable.put("phone", applyPersonInfo.getPhone()); + } + if (StringUtils.isNotBlank(applyPersonInfo.getProject())){ + printTable.put("project", applyPersonInfo.getProject()); + } SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId); printTable.put("lab", lab.getName()); this.receiptNumber = receiptNum; @@ -1487,14 +1499,22 @@ printTable = null; printTable = new Hashtable(); List<ApplyListDto> applyList = new ArrayList<>(); - Map applyPersonInfo = sysUserService.getUser(userId); + SysUser applyPersonInfo = sysUserService.getUser(userId); + if (applyPersonInfo == null) { + FacesUtils.warn("申领人不存在或者申领人部门被删除。"); + return; + } printTable.put("head", instituteName); printTable.put("title", "领用单"); - printTable.put("applyPerson", applyPersonInfo.get("name")); - printTable.put("department", applyPersonInfo.get("meta_value")); + printTable.put("applyPerson", applyPersonInfo.getName()); + printTable.put("department", applyPersonInfo.getDepartment()); printTable.put("date", Utils.now("yyyy-MM-dd")); - printTable.put("phone", applyPersonInfo.get("phone")); - printTable.put("project", applyPersonInfo.get("project")); + if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){ + printTable.put("phone", applyPersonInfo.getPhone()); + } + if (StringUtils.isNotBlank(applyPersonInfo.getProject())){ + printTable.put("project", applyPersonInfo.getProject()); + } SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId); String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); printTable.put("receiptNumber", receiptNum); @@ -1509,11 +1529,42 @@ if(selectWarehouseReserve.getFlag()==1){ list.add(selectWarehouseReserve); }else{ + if (selectWarehouseReserve.getWarehouseId() == null) { + FacesUtils.warn("仓库不存在。"); + return; + } list2.add(selectWarehouseReserve); } } + + //list2为补贴条码,检查条码重复 + ArrayList<String> checkList = new ArrayList<>(); + if (list2.size() > 0) { + for (OpeWarehouseReserve owr : list2) { + checkList.addAll(owr.getReagentCodes()); + } + } + + Set<String> checkTable = new HashSet<>(); + if (checkList.size() > 0) { + for (String reagentCode : checkList) { + if (checkTable.contains(reagentCode)) { + throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, "当前订单条码重复," + reagentCode); + } else { + checkTable.add(reagentCode); + } + } + } + checkTable = null; + checkList = null; + + if(list.size()>0&&list!=null){ for (OpeWarehouseReserve selectWarehouseReserve : list) { + Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId()); + if (reagentDetail == null) { + throw new Exception("试剂有误,请联系管理员"); + } List<String> reagentCodes = selectWarehouseReserve.getReagentCodes(); if (reagentCodes != null && reagentCodes.size() > 0) for (String opeReagentStatusId : reagentCodes) { @@ -1540,7 +1591,6 @@ //} } 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")); @@ -1563,6 +1613,10 @@ List<OpeApply> opeList=new ArrayList<>(); //this.opeApplyService.getOpeApplyList(null,null,null,null,null) for(int i=0;i<list2.size();i++){ + Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId()); + if (reagentDetail == null) { + throw new Exception("试剂有误,请联系管理员"); + } OpeApply opeApply=new OpeApply(); opeApply.setArticleNumber(list2.get(i).getArticleNumber()); opeApply.setHouseId(laboratoryId); @@ -1582,7 +1636,6 @@ this.opeLaboratoryReserveService.insert(lr); //opeList.add(this.opeApplyService.getOpeApply(list2.get(i).getId())); ApplyListDto lis = new ApplyListDto(); - Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId()); lis.setNum(String.valueOf(list2.get(i).getSelectNum())); //数量 lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit"))); @@ -1644,6 +1697,10 @@ FacesUtils.info("申领成功。"); RequestContext.getCurrentInstance().execute("PF('printDialog').show()"); // this.menuController.goToPage(Constants.PAGE_WAREHOUSE_STOCK_MNG, Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW); + } catch (BusinessException e) { + logger.error(e.getMessage(), e); + FacesUtils.warn(e.getMessage()); + } catch (Exception e) { logger.error(e.getMessage(), e); FacesUtils.warn("操作失败。"); @@ -1659,6 +1716,10 @@ if (StringUtils.isBlank(opeApplyReserve.getArticleNumber())) { throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":批号不能为空"); } + SysReagent sysReagent = sysReagentService.getSysReagent(opeApplyReserve.getReagent().getId()); + if (sysReagent == null){ + throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":被删除"); + } } //用来检验提交表单得试剂条码是否重复 @@ -1722,22 +1783,23 @@ } catch (Exception e) { logger.error(e); } + selectedList = null; return list; } @Override public OpeWarehouseReserve getRowData(String rowKey) { - Iterator<OpeWarehouseReserve> iterator = this.iterator(); - if (iterator != null) { - OpeWarehouseReserve su = null; - while (iterator.hasNext()) { - su = iterator.next(); - if (rowKey.equals(su.getId())) { - return su; - } - } - } - return null; +// Iterator<OpeWarehouseReserve> iterator = this.iterator(); +// if (iterator != null) { +// OpeWarehouseReserve su = null; +// while (iterator.hasNext()) { +// su = iterator.next(); +// if (rowKey.equals(su.getId())) { +// return su; +// } +// } +// } + return opeWarehouseReserveService.getRowData(rowKey); } }; } @@ -1755,7 +1817,7 @@ List<OpeApplyReserve> list = null; SysUser loginUser = getUser(); String id=""; - if(loginUser.getSeeFlag()==SeeFlag.MANAGE){ + if(loginUser.getSeeFlag()==SeeFlag.MANAGE||loginUser.getSeeFlag() ==SeeFlag.LEADING){ }else { //userName=loginUser.getName(); @@ -1763,31 +1825,32 @@ } try { - int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply); + int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply,isExpired); this.setRowCount(count); if (count > 0) { list = opeApplyService.getOpeApplyReserveListByNameFor(id, reagentId, userName, first, - pageSize, productSn, applyCode, status, isAllApply); + pageSize, productSn, applyCode, status, isAllApply,isExpired); } } catch (Exception e) { logger.error(e); } + selectedListForPerson = null; return list; } @Override public OpeApplyReserve getRowData(String rowKey) { - Iterator<OpeApplyReserve> iterator = this.iterator(); - if (iterator != null) { - OpeApplyReserve su = null; - while (iterator.hasNext()) { - su = iterator.next(); - if (rowKey.equals(su.getId())) { - return su; - } - } - } - return null; +// Iterator<OpeApplyReserve> iterator = this.iterator(); +// if (iterator != null) { +// OpeApplyReserve su = null; +// while (iterator.hasNext()) { +// su = iterator.next(); +// if (rowKey.equals(su.getId())) { +// return su; +// } +// } +// } + return opeApplyService.getOpeApplyReserveListByNameForRowData(rowKey); } }; } @@ -1862,7 +1925,7 @@ //map=null; SysUser loginUser = getUser(); String id=""; - if(loginUser.getSeeFlag()==SeeFlag.MANAGE){ + if(loginUser.getSeeFlag()==SeeFlag.MANAGE||loginUser.getSeeFlag() == SeeFlag.LEADING){ }else { //userName=loginUser.getName(); @@ -1872,7 +1935,7 @@ realDataList=selectedListForPerson; }else { realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null, - null,productSn,applyCode,status,isAllApply); + null,productSn,applyCode,status,isAllApply,isExpired); } List<String> headerList = new ArrayList<>(); headerList.add("申购编号"); @@ -2278,6 +2341,7 @@ this.reagentDStore.setReagent((SysReagent)event.getObject()); this.reagentDStoreEditFlag = Constants.ACTION_ADD; + onWarehouseSelectChange(null); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()"); } @@ -2287,6 +2351,11 @@ this.changeWarehouseContainerList(warehouseId); this.changeWarehouseContainerPlaceList(null); } + + public void onWarehouseContainerSelectChange(String warehouseContainerId) { + this.warehouseContainerPlaceList = null; + this.changeWarehouseContainerPlaceList(warehouseContainerId); + } private void changeWarehouseContainerList(String warehouseId) { if (StringUtils.isBlank(warehouseId)) { @@ -2628,17 +2697,17 @@ @Override public SysReagent getRowData(String rowKey) { - Iterator<SysReagent> iterator = this.iterator(); - if (iterator != null) { - SysReagent sr = null; - while (iterator.hasNext()) { - sr = iterator.next(); - if (rowKey.equals(sr.getId())) { - return sr; - } - } - } - return null; +// Iterator<SysReagent> iterator = this.iterator(); +// if (iterator != null) { +// SysReagent sr = null; +// while (iterator.hasNext()) { +// sr = iterator.next(); +// if (rowKey.equals(sr.getId())) { +// return sr; +// } +// } +// } + return sysReagentService.getSysReagentListNewRowData(rowKey); } }; } @@ -2725,17 +2794,20 @@ public void resetLaboratory(){ laboratory = null; + laboratoryId = null; laboratoryContainers = null; //getLaboratory(); //getLaboratoryContainers(); } +// public void setContainerId(){ +// } public void resetLaboratoryContainers() { laboratoryContainers = null; //getLaboratoryContainers(); } public List<SysLaboratory> getLaboratory() { - if(userId != null && userId.trim().length() > 0) + if(userId != null && userId.trim().length() > 0) { //Todo 修改申领人的实验室显示信息 @@ -2743,15 +2815,15 @@ 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(); - //} + if(laboratoryId != null && laboratoryId.trim().length() > 0) + { + this.oriLaboratoryId = this.laboratoryId; + }else + { + this.laboratoryId = this.laboratory.get(0).getId(); + } - this.laboratoryId = this.laboratory.get(0).getId(); +// this.laboratoryId = this.laboratory.get(0).getId(); this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId); }else { this.oriLaboratoryId = null; @@ -2771,7 +2843,7 @@ } public List<SysLaboratoryContainer> getLaboratoryContainers() { - if(laboratoryId != null && laboratoryId.trim().length() > 0) + if(laboratoryId != null && laboratoryId.trim().length() > 0) { this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId); } @@ -3073,4 +3145,51 @@ public void setIsAllApply(Integer isAllApply) { this.isAllApply = isAllApply; } + + public boolean getIsExpired() { + return isExpired; + } + + public void setIsExpired(boolean isExpired) { + this.isExpired = isExpired; + } + + //过期处理 + public void expireOrder() { + //1.判断当前订单是否是已入库的状态 + if (this.selectedListForPerson.size() < 1) { + FacesUtils.warn("请选择数据。"); + return; + } + ArrayList<String> ids = new ArrayList<>(); + for (OpeApplyReserve oa : this.selectedListForPerson) { + ids.add(oa.getId()); + if (oa.getStatus() != ApplyStatus.SUPPLIER_CONFIRM) { + FacesUtils.warn("只能让已确认状态的单子过期。"); + return; + } + } + + opeApplyService.updateOpeApplyStatus(ApplyStatus.EXPIRED, null, ids); + FacesUtils.warn("操作成功。"); + + + } + + public void recoverOrder(){ + if (this.selectedListForPerson.size() < 1) { + FacesUtils.warn("请选择数据。"); + return; + } + ArrayList<String> ids = new ArrayList<>(); + for (OpeApplyReserve oa : this.selectedListForPerson) { + ids.add(oa.getId()); + if (oa.getStatus() != ApplyStatus.EXPIRED) { + FacesUtils.warn("只能让过期单子恢复确认。"); + return; + } + } + opeApplyService.updateOpeApplyStatus(ApplyStatus.SUPPLIER_CONFIRM, null, ids); + FacesUtils.warn("操作成功。"); + } } -- Gitblit v1.9.2