Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r28039 -r28907 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 28039) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 28907) @@ -1676,7 +1676,7 @@ obj.put("sterileDateTime2", TousseInstanceUtils.safelyGetSterileStartDateTimeStr2(tousseInstance)); obj.put("expirationDateTime2", tousseInstance.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM)); - String packTime = com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(operationTime); + String packTime = ForgonDateUtils.safelyFormatDate(operationTime, ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, null); obj.put("packTime", packTime); obj.put("haveUnSupplementMaterials", haveUnSupplementMaterials); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r28859 -r28907 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 28859) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 28907) @@ -1090,7 +1090,6 @@ e.printStackTrace(); } } - @SuppressWarnings("unchecked") List list = null; //如果有分页的参数(比如灭菌装载的待灭菌装载grid的数据源action有调用),则 /*if(StringUtils.isNumeric(start) && StringUtils.isNumeric(limit)){ @@ -1108,7 +1107,7 @@ } else if(dbConnection.isOracle()){ firstBarcodeSql = "(select barcode from "+ TousseInstance.class.getSimpleName() +" ti1 join "+ BarcodeDevice.class.getSimpleName() +" b1 on b1.id=ti1.id where ti1.tousseFixedBarcode=1 and ti1.tousseDefinition_id=tdAncestor.id and rownum <= 1) fixedBarcode "; } - String querySql = "select b.barcode,tdAncestor.name definitionName,po.tousseName,po.depart,po.departCoding,po.sterilingMode,tdAncestor.isTraceable,po.isUrgentTousse,po.orgUnitCoding,po.orgUnitName,po.reviewTime,po.sterilingType,po.validUntil,po.taskGroup, po.reviewer, po.operator," + String querySql = "select b.barcode,tdAncestor.name definitionName,po.tousseName,po.depart,po.departCoding,po.sterilingMode,tdAncestor.isTraceable,po.isUrgentTousse,po.orgUnitCoding,po.orgUnitName,po.reviewTime,po.sterilingType,po.validUntil,po.taskGroup, po.reviewer, po.operator,po.tousseDefinition_id as tdId," + firstBarcodeSql + "from " + TousseInstance.class.getSimpleName() + " po join " + BarcodeDevice.class.getSimpleName() + " b on po.id=b.id " + "join "+ TousseDefinition.class.getSimpleName() +" td on po.tousseDefinition_id=td.id join "+ TousseDefinition.class.getSimpleName() +" tdAncestor on td.ancestorId=tdAncestor.id " + sql; @@ -5620,6 +5619,10 @@ urgentLevelInfo = new JSONObject(); urgentGrade = 0; } + // 不追溯的包不支持打印标签并入炉HBSXKYY-25 + if(TousseDefinition.STR_NO.equals(tousseOutsideBasket.getIsTraceable())){ + continue; + } JSONObject obj = new JSONObject(); obj.put("depart", tousseOutsideBasket.getDepart()); obj.put("objName", tousseOutsideBasket.getTousseName()); @@ -7629,7 +7632,7 @@ systemConfig.isPrintUserFullName(), ti.getOperator(), ti.getOperatorCode(), ti.getReviewer(), ti.getReviewerCode(), ti.getSterilizationUser(), ti.getSterilizationUserCode(), - ti.getValidUntilStr(format), ti.getSterileStartTime() == null ? "" : ti.getSterileStartTime().substring(0, 10), + ti.getValidUntilStr(format), StringUtils.isBlank(ti.getSterileStartTime()) ? "" : ti.getSterileStartTime().substring(0, 10), isMarkTousse(ti.getSterileStartTime(), ti.getValidUntilStr()), ti.getOperationTime(), td.isDisinfection(), false, isPrint, isReview, isTraceable, td.getIsBigPackage(), fixedBarcode, disinfectItemArray, foreignTousseApp_id, supplierName, toolAndImplantAmount.optInt("toolAmount"), @@ -7789,6 +7792,7 @@ + " , barcodedevice b , cssdHandleTousses tt , TousseDefinition td , TousseDefinition tdAncestor " + "where t.id = b.id and tt.tousseDefinitionId=td.ancestorID and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id " + "and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.comboTousseInstanceId is null and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_INSIDE+"','"+TousseDefinition.PACKAGE_TYPE_DISINFECTION+"','"+TousseDefinition.PACKAGE_TYPE_DRESSING+"','"+TousseDefinition.PACKAGE_TYPE_COMBO+"') " //本供应室处理的器械包实例,但是录入代理灭菌单的器械包实例(只有代理科室才能灭菌) // + " and t.orgUnitCoding='"+currentOrgUnitCode+"' and tt.orgUnitCode='"+currentOrgUnitCode+"'" @@ -7812,6 +7816,7 @@ + " , barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingMode in (%s) ", sterilingTypeList) : " and (t.sterilingMode is null or t.sterilingMode = '') ) "); @@ -7826,6 +7831,7 @@ + " , barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingType in (%s) ", sterilingTypeList) : ""); @@ -7839,6 +7845,7 @@ + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingType in (%s) ", sterilingTypeList) : ""); @@ -7852,6 +7859,7 @@ + " , barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingType in (%s) ", sterilingTypeList) : ""); @@ -7864,6 +7872,7 @@ + " , barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingType in (%s) ", sterilingTypeList) : ""); @@ -7882,6 +7891,7 @@ + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id " + reviewedBasketSql + + " and td.isPrint <> '" + TousseDefinition.STR_NO + "' " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + (StringUtils.isNotBlank(sterilingTypeList) ? String.format(" and t.sterilingType in (%s) ", sterilingTypeList) : ""); @@ -7984,45 +7994,25 @@ if(CollectionUtils.isNotEmpty(tousseSimpleVOsInBaskets)){ Map bMap= new LinkedHashMap(); for (TousseSimpleVO vo : tousseSimpleVOsInBaskets) { - //是否需要汇总固定条码的包实例数量 + // 不追溯的包不支持打印标签并入炉HBSXKYY-25 if(Constants.STR_NO.equals(vo.getIsTraceable())){ - String key = vo.getTousseName(); - if(bMap.containsKey(key)){ - JSONObject tousseJson = bMap.get(key); - tousseJson.put("amount", tousseJson.optInt("amount", 0) + 1); - bMap.put(key, tousseJson); - } else { - JSONObject tousseJson = new JSONObject(); - tousseJson.put("id", vo.getId()); - tousseJson.put("tousseName", vo.getTousseName()); - tousseJson.put("barcode", vo.getFixedBarcode()); - tousseJson.put("amount", vo.getAmount()); - tousseJson.put("sterilingMode", vo.getSterilingMode()); - tousseJson.put("taskGroup", vo.getTaskGroup()); - tousseJson.put("reviewTime", vo.getReviewTime()); - tousseJson.put("operator", vo.getOperator()); - tousseJson.put("reviewer", vo.getReviewer()); - tousseJson.put("reviewBasketBarcode", idToBasketMap.get(vo.getReviewBasketId()).getBarcode()); - tousseJson.put("reviewBasketName", idToBasketMap.get(vo.getReviewBasketId()).getContainerName()); - bMap.put(key, tousseJson); - } - } else { - String key = vo.getBarcode(); - JSONObject tousseJson = new JSONObject(); - tousseJson.put("id", vo.getId()); - tousseJson.put("tousseName", vo.getTousseName()); - tousseJson.put("barcode", vo.getBarcode()); - tousseJson.put("amount", vo.getAmount()); - tousseJson.put("sterilingMode", vo.getSterilingMode()); - tousseJson.put("taskGroup", vo.getTaskGroup()); - tousseJson.put("reviewTime", vo.getReviewTime()); - tousseJson.put("operator", vo.getOperator()); - tousseJson.put("reviewer", vo.getReviewer()); - tousseJson.put("reviewBasketBarcode", idToBasketMap.get(vo.getReviewBasketId()).getBarcode()); - tousseJson.put("reviewBasketName", idToBasketMap.get(vo.getReviewBasketId()).getContainerName()); - bMap.put(key, tousseJson); + continue; } - } + String key = vo.getBarcode(); + JSONObject tousseJson = new JSONObject(); + tousseJson.put("id", vo.getId()); + tousseJson.put("tousseName", vo.getTousseName()); + tousseJson.put("barcode", vo.getBarcode()); + tousseJson.put("amount", 1); + tousseJson.put("sterilingMode", vo.getSterilingMode()); + tousseJson.put("taskGroup", vo.getTaskGroup()); + tousseJson.put("reviewTime", vo.getReviewTime()); + tousseJson.put("operator", vo.getOperator()); + tousseJson.put("reviewer", vo.getReviewer()); + tousseJson.put("reviewBasketBarcode", idToBasketMap.get(vo.getReviewBasketId()).getBarcode()); + tousseJson.put("reviewBasketName", idToBasketMap.get(vo.getReviewBasketId()).getContainerName()); + bMap.put(key, tousseJson); + } for (String key : bMap.keySet()) { JSONObject tousseInBasket = bMap.get(key); @@ -8034,7 +8024,24 @@ //List tousseSimpleVOsWithOutBasket = this.getTodayReviewedTousseInsWithOutBasketBySterilization(orgUnitCoding, false, null); List tousseSimpleVOsWithOutBasket = this.getAllReviewedTousseInstanceWithOutBasket(orgUnitCoding, null, null, null, null, null, null); if(CollectionUtils.isNotEmpty(tousseSimpleVOsWithOutBasket)){ + // 不追溯或者不打印标签的包不支持打印标签并入炉HBSXKYY-25 + List tousseDefinitionIdList = new ArrayList(); + Map idToTdMap = new HashMap(); for (TousseSimpleVO vo : tousseSimpleVOsWithOutBasket) { + tousseDefinitionIdList.add(vo.getTousseDefinitionId()); + } + List tdList = objectDao.getCollection(TousseDefinition.class.getSimpleName(), "id", tousseDefinitionIdList); + if(CollectionUtils.isNotEmpty(tdList)){ + for (TousseDefinition tousseDefinition : tdList) { + idToTdMap.put(tousseDefinition.getId(), tousseDefinition); + } + } + for (TousseSimpleVO vo : tousseSimpleVOsWithOutBasket) { + TousseDefinition td = idToTdMap.get(vo.getTousseDefinitionId()); + // 过滤器械包定义的是否打印属性为否的包 + if(td != null && StringUtils.equals(TousseDefinition.STR_NO, td.getIsPrint())){ + continue; + } // 只过滤符合灭菌方式的数据 if(StringUtils.equals(sterilizationMode, vo.getSterilingMode())){ // 任务组过滤 @@ -8047,11 +8054,15 @@ if(saveBarcodeList.contains(vo.getBarcode())){ continue; } + // 不追溯的包不支持打印标签并入炉HBSXKYY-25 + if(StringUtils.equals(TousseDefinition.STR_NO, td.getIsTraceable())){ + continue; + } JSONObject tousseJson = new JSONObject(); tousseJson.put("id", vo.getId()); tousseJson.put("tousseName", vo.getTousseName()); tousseJson.put("barcode", vo.getBarcode()); - tousseJson.put("amount", vo.getAmount()); + tousseJson.put("amount", 1); tousseJson.put("sterilingMode", vo.getSterilingMode()); tousseJson.put("taskGroup", vo.getTaskGroup()); tousseJson.put("reviewTime", vo.getReviewTime());