From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期二, 28 十一月 2023 11:00:42 +0800 Subject: [PATCH] 修改课题管理bug --- src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java | 301 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 226 insertions(+), 75 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..53c5a7d 100644 --- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java @@ -22,6 +22,7 @@ import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.primefaces.model.StreamedContent; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.Scope; @@ -173,7 +174,11 @@ @Value("${institute.name}") String instituteName; + private boolean isExpired; + private Hashtable printTable; + @Autowired + private AccountInAndOutService accountInAndOutService; public Hashtable getPrintTable() { return printTable; @@ -218,6 +223,8 @@ //private boolean flag = false; //领用单号 private String receiptNumber; + //备注 + private String note; // 试剂库 private LazyDataModel<SysReagent> reagentDataModel; // 直接入库试剂List @@ -394,7 +401,7 @@ String reagentId = selectedOpeWarehouseReserve.getReagentId(); String articleNumber = selectedOpeWarehouseReserve.getArticleNumber(); - this.setReagentStatusSelectList(opeReagentStatusService.getOpeReagentStatusList(reagentId, articleNumber, + this.setReagentStatusSelectList(opeReagentStatusService.getOpeReagentStatusList22(reagentId, articleNumber, ArrivalStatus.WAREHOUSE.getKey(), reagentCode, null, null, null)); // System.out.print("this.getReagentStatusSelectList().size(): " + this.reagentStatusSelectList.size()); @@ -413,7 +420,7 @@ System.out.println(reagentId); System.out.println(articleNumber); System.out.println(reagentCode); - this.setReagentStatusSelectListForPerson(opeReagentStatusService.getOpeReagentStatusList(reagentId, articleNumber, + this.setReagentStatusSelectListForPerson(opeReagentStatusService.getOpeReagentStatusList22(reagentId, articleNumber, ArrivalStatus.WAREHOUSE.getKey(), reagentCode, null, null, null)); } @@ -424,7 +431,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; @@ -668,7 +676,11 @@ checkTable = null; // this.userId = selectedTmpOrderList.get(0).getApplyUser(); - + SysUser sysUser = sysUserService.getSysUser(this.userId); + if (sysUser == null){ + FacesUtils.info("申领人不存在"); + return; + } this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG); } @@ -799,7 +811,7 @@ //变换条码 btCodeChange(); } - + /** * 取消一个仓库领取 */ @@ -1074,6 +1086,7 @@ this.selectedInputStorageTmpOrderList = null; this.endReagentCodeForPerson = null; this.startReagentCodeForPerson = null; + this.laboratoryId = null; this.useNum = null; this.menuController.backToPage(); } @@ -1122,6 +1135,7 @@ checkReserve(list2); //1.2判断提交的条码是否重复(只有补贴条码需要判断) checkReagentCode(list2); + String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); //库中领取 if(list.size()>0&&list!=null){ //扣库存 对象中的reagentCode存的是id @@ -1139,7 +1153,7 @@ } } - this.opeWarehouseReserveService.claimForPerson(list, userId,projectNum,laboratoryId,laboratoryContainerId); + this.opeWarehouseReserveService.claimForPerson(list, userId,projectNum,laboratoryId,laboratoryContainerId,receiptNum); } //补贴条码 @@ -1210,16 +1224,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; @@ -1259,7 +1281,7 @@ */ public void associatedFlowReceiptNumber() { try { - opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber); + opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber, note); //弹出打印窗口 RequestContext.getCurrentInstance().execute("document.getElementById('indirectPrint').click()"); } catch (Exception e) { @@ -1275,7 +1297,7 @@ public void associatedFlowReceiptNumber2() { try { - opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber); + opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber,note); //弹出打印窗口 RequestContext.getCurrentInstance().execute("document.getElementById('indirectPrint').click()"); } catch (Exception e) { @@ -1287,7 +1309,7 @@ public void closeDialog() { try { - opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber); + opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber,note); onCancelBtnClick(); } catch (Exception e) { logger.info(e.getMessage()); @@ -1297,7 +1319,7 @@ public void closeDialog2() { try { - opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber); + opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber,note); onCancelBtnClick(); } catch (Exception e) { logger.info(e.getMessage()); @@ -1472,6 +1494,8 @@ } } + + public void onSaveBtnClick() { try { if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) { @@ -1487,15 +1511,23 @@ 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")); - SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId); + if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){ + printTable.put("phone", applyPersonInfo.getPhone()); + } + if (StringUtils.isNotBlank(applyPersonInfo.getProject())){ + printTable.put("project", applyPersonInfo.getProject()); + } + SysLaboratory lab = sysLaboratoryService.getSysLaboratorySimpleInfo(laboratoryId); String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); printTable.put("receiptNumber", receiptNum); printTable.put("lab", lab.getName()); @@ -1509,11 +1541,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 +1603,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")); @@ -1556,13 +1618,17 @@ //FacesUtils.warn("未选择一个条形码。"); //return; //} - this.opeWarehouseReserveService.claim(list, userId,projectNum); + this.opeWarehouseReserveService.claim(list, userId,projectNum,receiptNumber); } if(list2.size()>0&&list2!=null){ 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 +1648,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"))); @@ -1595,7 +1660,7 @@ sum += list2.get(i).getSelectNum(); } - this.opeWarehouseReserveService.reagentDStore4(opeList,userId); + this.opeWarehouseReserveService.reagentDStore4(opeList,userId,receiptNum); for(int i=0;i<list2.size();i++){ List<String> reagentCodes = opeReagentStatusService @@ -1644,6 +1709,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 +1728,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 +1795,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 +1829,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 +1837,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 +1937,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 +1947,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("申购编号"); @@ -2040,6 +2115,15 @@ } } } + } + + + public void onExportOutAndIn(){ + FacesContext currentInstance = FacesContext.getCurrentInstance(); + currentInstance.responseComplete(); + ExternalContext etx = currentInstance.getExternalContext(); + HttpServletResponse resp = (HttpServletResponse) etx.getResponse(); + accountInAndOutService.exportExcel(resp); } public HSSFWorkbook exportExcelNew(List<String> headerList, List<OpeWarehouseReserve> dataList) { @@ -2278,6 +2362,7 @@ this.reagentDStore.setReagent((SysReagent)event.getObject()); this.reagentDStoreEditFlag = Constants.ACTION_ADD; + onWarehouseSelectChange(null); RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()"); } @@ -2287,6 +2372,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)) { @@ -2498,7 +2588,6 @@ } public void handleEvent2(){ - System.out.println("==============================="); if(useNum!=null && useNum>0){ if(startReagentCode!=null && !startReagentCode.equals("")){ if (startReagentCode.matches(".*\\D+.*")) { @@ -2534,6 +2623,10 @@ }else { FacesUtils.info("请输入领用数量"); } + } + + public void clearStartAndEndCode(){ + endReagentCode = ""; } public void handleEventForPerson(){ @@ -2628,17 +2721,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 +2818,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 +2839,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 +2867,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 +3169,59 @@ 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("操作成功。"); + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } } -- Gitblit v1.9.2