Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16376 -r16378 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16376) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16378) @@ -1625,6 +1625,12 @@ } } } + + /** + * 修改TousseInstance的isRoutine属性 + * @param tousseInstancesToUpdate + * @param submitInvoiceItems + */ private void updateTousseInstanceStatus( Set tousseInstancesToUpdate, List submitInvoiceItems) { @@ -8003,49 +8009,51 @@ return list; } - /** - * 验证器械包是否常规发货,以及生物监测的情况,返回值JSONObject对象的三个元素的具体如下:
- * biologicalMonitoringNoResult:生物监测结果为无的器械包集合,用分号分隔
- * noBiologicalMonitoringForeignTousses:没做生物监测的器械包集合,用分号分隔
- * unconventionalForeignTousses生物监测没结束就要发货的器械包集合,用分号分隔
- * isUnqualified:生物监测结果为"不合格"的器械包集合,用分号分隔 + * 批量获取器械包的生物监测的信息,信息具体如下:
+ * noBiologicalMonitoring:没做生物监测
+ * biologicalMonitoringNoResult:生物监测的结果为无
+ * biologicalMonitoringFail:生物监测的结果是不合格
+ * urgentDelivery:紧急发货 * - * @param tousseBarcodes:器械包条码集合的字符串,用分号分隔 + * @param tousseBarcodes 器械包条码集合的字符串,用分号分隔 * @return */ @Override - public JSONObject isRoutine(String tousseBarcodes) { + public JSONObject getBiologicalMonitoringInfo(String tousseBarcodes) { List> list = getTousseIntoForBarcodes(tousseBarcodes); - String biologicalMonitoringNoResult = ""; - String noBiologicalMonitoringForeignTousses = ""; - String unconventionalForeignTousses = ""; - String isUnqualified = ""; - - if (list.size() > 0) { + JSONObject vos = new JSONObject(); + if (CollectionUtils.isNotEmpty(list)) { for (Map map : list) { + String noBiologicalMonitoring = ""; + String biologicalMonitoringNoResult = ""; + String biologicalMonitoringFail = ""; + String urgentDelivery = ""; + + String barcode = map.get("barcode"); //器械包条码 String endDate = map.get("endDate"); //灭菌的结束时间 String biologyResult = map.get("biologyResult"); //生物监测的结果 String biologicalMonitoringEndDate = map.get("biologicalMonitoringEndDate"); //生物监测的结束时间 String biologicalMonitoringTimeString = map.get("biologicalMonitoringTime"); //对应灭菌炉配置的生物监测默认时间 String lagTimeString = map.get("lagTime"); //对应灭菌炉配置的灭菌与生物监测间隔时间 + ///// long nowTime = System.currentTimeMillis(); if (SterilizationRecord.MONITOR_RESULT_NO.equals(biologyResult)) { - biologicalMonitoringNoResult += map.get("barcode") + ";"; + biologicalMonitoringNoResult = barcode; if (StringUtils.isNotBlank(biologicalMonitoringEndDate)) { //填了生物监测的结束时间,这种情况就相当于,进行中 try { long biologicalMonitoringEndDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(biologicalMonitoringEndDate).getTime(); if (biologicalMonitoringEndDateTime > nowTime) { - unconventionalForeignTousses += map.get("barcode") + ";"; + urgentDelivery = barcode; } } catch (ParseException e) { logger.debug("生物监测结束时间格式有误先不处理"); } } else { //没填生物监测的结束时间,这种情况,可能是漏填(只提示他结果为无即可,但是是否紧急发货还是要根据对应的灭菌炉配置的参数来判断) - noBiologicalMonitoringForeignTousses += map.get("barcode") + ";"; + noBiologicalMonitoring = barcode; if (StringUtils.isNotBlank(lagTimeString) && StringUtils.isNotBlank(biologicalMonitoringTimeString)) { //在对应的灭菌炉"灭菌与生物监测间隔时间"和"生物监测持续时间"两个参数都要有配才会去判断是否紧急发货,否则默认常规 try { Integer lagTime = new Integer(lagTimeString)*60*1000; @@ -8054,7 +8062,7 @@ long biologicalMonitoringEndDateTime = endDateTime + lagTime + biologicalMonitoringTime; if (biologicalMonitoringEndDateTime > nowTime) { - unconventionalForeignTousses += map.get("barcode") + ";"; + urgentDelivery = barcode; } } catch (ParseException e) { logger.debug("灭菌结束时间格式有误先不处理"); @@ -8069,34 +8077,25 @@ logger.debug("生物监测结束时间格式有误先不处理"); } if (SterilizationRecord.MONITOR_RESULT_UNQUALIFIED.equals(biologyResult)) { //如果生物监测的结果不合格,强制不让发货 - isUnqualified += map.get("barcode") + ";"; + biologicalMonitoringFail = barcode; } if (SterilizationRecord.MONITOR_RESULT_UNQUALIFIED.equals(biologyResult) || biologicalMonitoringEndDateTime > nowTime) { //生物监测没结束就发货 - unconventionalForeignTousses += map.get("barcode") + ";"; + urgentDelivery = barcode; } } + + JSONObject vo = new JSONObject(); + vo.put("noBiologicalMonitoring", noBiologicalMonitoring); + vo.put("biologicalMonitoringNoResult", biologicalMonitoringNoResult); + vo.put("biologicalMonitoringFail", biologicalMonitoringFail); + vo.put("urgentDelivery", urgentDelivery); + vos.put(barcode, vo); + ///// } } + return vos; - biologicalMonitoringNoResult = biologicalMonitoringNoResult.equals("") ? "" : - biologicalMonitoringNoResult.substring(0, biologicalMonitoringNoResult.length() - 1); - noBiologicalMonitoringForeignTousses = noBiologicalMonitoringForeignTousses.equals("") ? "" : - noBiologicalMonitoringForeignTousses.substring(0, noBiologicalMonitoringForeignTousses.length() - 1); - unconventionalForeignTousses = unconventionalForeignTousses.equals("") ? "" : - unconventionalForeignTousses.substring(0, unconventionalForeignTousses.length() - 1); - isUnqualified = isUnqualified.equals("") ? "" : - isUnqualified.substring(0, isUnqualified.length() - 1); - - - - JSONObject jsonObj = new JSONObject(); - jsonObj.put("biologicalMonitoringNoResult", biologicalMonitoringNoResult); - jsonObj.put("noBiologicalMonitoringForeignTousses", noBiologicalMonitoringForeignTousses); - jsonObj.put("unconventionalForeignTousses", unconventionalForeignTousses); - jsonObj.put("isUnqualified", isUnqualified); - return jsonObj; - } @Override