Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoiceGoodsVo.java =================================================================== diff -u -r16359 -r16375 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoiceGoodsVo.java (.../InvoiceGoodsVo.java) (revision 16359) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoiceGoodsVo.java (.../InvoiceGoodsVo.java) (revision 16375) @@ -58,24 +58,24 @@ /** - * 是否常规发货,默认是常规发货(这里的不常规指的是:正在做"生物监测"时就把这个器械包发货了) + * 是否没有做生物监测,默认是做了 */ - private String isRoutine =TousseInstance.ROUTINE_YES; + private Boolean noBiologicalMonitoring = false; /** - * 是否没有做生物监测,默认是做了 + * 生物监测的结果是否为"无",默认不是 */ - private Boolean noBiologicalMonitoring = false; + private Boolean biologicalMonitoringNoResult = false; /** * 生物监测的结果是否不合格,默认合格 */ - private Boolean isUnqualified = false; + private Boolean biologicalMonitoringFail = false; /** - * 生物监测的结果是否为"无",默认不是 + * 是否常规发货,默认是常规发货(这里的不常规指的是:正在做"生物监测"时就把这个器械包发货了) */ - private Boolean biologicalMonitoringNoResult = false; + private String isRoutine =TousseInstance.ROUTINE_YES; private Long invoicePlanID = null; private Long proxyDisinfection_id = null; @@ -274,14 +274,6 @@ this.noBiologicalMonitoring = noBiologicalMonitoring; } - public Boolean getIsUnqualified() { - return isUnqualified; - } - - public void setIsUnqualified(Boolean isUnqualified) { - this.isUnqualified = isUnqualified; - } - public Long getInvoicePlanID() { return invoicePlanID; } @@ -305,5 +297,13 @@ public void setBiologicalMonitoringNoResult(Boolean biologicalMonitoringNoResult) { this.biologicalMonitoringNoResult = biologicalMonitoringNoResult; } + + public Boolean getBiologicalMonitoringFail() { + return biologicalMonitoringFail; + } + + public void setBiologicalMonitoringFail(Boolean biologicalMonitoringFail) { + this.biologicalMonitoringFail = biologicalMonitoringFail; + } } Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js =================================================================== diff -u -r16359 -r16375 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 16359) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 16375) @@ -554,7 +554,7 @@ if (sstsConfig.biologicalMonitoringEnable) { //发货时对含植入物的器械包,进行是否紧急发货以及生物监测情况的提示 - if (goods.isUnqualified) { //生物监测不合格 + if (goods.biologicalMonitoringFail) { //生物监测不合格 alert('[' + goods.name + ']生物监测结果为不合格,不能发货'); continue; } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java =================================================================== diff -u -r16359 -r16375 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 16359) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 16375) @@ -1499,12 +1499,14 @@ || "tousseInstancesInContainer".equals(type)) { final JsonArray datas = src.get("data").getAsJsonArray(); Collection vos = new ArrayList(); + String voBarcodes = ""; for(int i = 0; i < datas.size(); i += 1){ InvoiceGoodsVo vo = new InvoiceGoodsVo(); vos.add(vo); final JsonObject data = datas.get(i).getAsJsonObject(); String barcode = data.get("barcode").getAsString(); + voBarcodes += barcode + ";"; vo.setIsTracable("否"); vo.setBarcode(barcode); vo.setName(data.get("tousseName").getAsString()); @@ -1523,9 +1525,13 @@ // vo.setSterilizerName(sterilizerName); // vo.setFrequency(frequency); // vo.setTousseDefinitionId(tousseDefinitionId); - updateVO(barcode, vo); } + if (!voBarcodes.equals("")) { + voBarcodes = voBarcodes.substring(0, voBarcodes.length() - 1); + updateVOs(voBarcodes, vos); + } + if(CollectionUtils.isNotEmpty(vos)){ CollectionUtils.get(vos, 0).setShowResult(tips); } @@ -1547,30 +1553,54 @@ } /** - * 修改vo对象的noBiologicalMonitoring和isRoutine和isUnqualified属性的值 - * @param barcode + * 修改InvoiceGoodsVo对象的以下四个属性:
+ * 1、noBiologicalMonitoring
+ * 2、biologicalMonitoringNoResult
+ * 3、biologicalMonitoringFail
+ * 4、urgentDelivery + * + * @param voBarcode * @param vo */ - private void updateVO(String barcode, InvoiceGoodsVo vo) { + private void updateVO(String voBarcode, InvoiceGoodsVo vo) { + Collection vos = new ArrayList(); + vos.add(vo); + updateVOs(voBarcode, vos); + } + + /** + * 批量修改InvoiceGoodsVo对象的以下四个属性:
+ * 1、noBiologicalMonitoring
+ * 2、biologicalMonitoringNoResult
+ * 3、biologicalMonitoringFail
+ * 4、urgentDelivery + * + * @param voBarcodes + * @param invoiceGoodsVo + */ + private void updateVOs(String voBarcodes, Collection vos) { - JSONObject jsonObj = invoiceManager.isRoutine(barcode); //判断是否常规发货(cjr) - String biologicalMonitoringNoResult = jsonObj.optString("biologicalMonitoringNoResult"); - String noBiologicalMonitoringForeignTousse = jsonObj.optString("noBiologicalMonitoringForeignTousses"); - String unconventionalForeignTousse = jsonObj.optString("unconventionalForeignTousses"); - String isUnqualified = jsonObj.optString("isUnqualified"); - if (!StringTools.isBlank(biologicalMonitoringNoResult)) { //此器械包生物监测结果为"无"(但是如果登记了生物监测结束时间那么,也算是做了生物监测,相当于进行中) - vo.setBiologicalMonitoringNoResult(true);; - } - if (!StringTools.isBlank(noBiologicalMonitoringForeignTousse)) { //此器械包没做生物监测 - vo.setNoBiologicalMonitoring(true); - } - if (!StringTools.isBlank(unconventionalForeignTousse)) { //此器械包做了生物监测,但是没结束就要发货了 - vo.setIsRoutine(TousseInstance.ROUTINE_NO); - } - if (!StringTools.isBlank(isUnqualified)) { //此器械包做了生物监测,但是结果为"不合格"就要发货了,必须强制不让其发货 - vo.setIsUnqualified(true); - } + JSONObject jsonObj = invoiceManager.getBiologicalMonitoringInfo(voBarcodes); //(cjr) + for (InvoiceGoodsVo vo : vos) { + String barcode = vo.getBarcode(); + JSONObject jsonVo = (JSONObject) jsonObj.get(barcode); + if (jsonVo != null) { //不为空说明,都是含有植入物的器械包 + String noBiologicalMonitoring = jsonVo.optString("noBiologicalMonitoring"); + String biologicalMonitoringNoResult = jsonVo.optString("biologicalMonitoringNoResult"); + String biologicalMonitoringFail = jsonVo.optString("biologicalMonitoringFail"); + String urgentDelivery = jsonVo.optString("urgentDelivery"); + + vo.setNoBiologicalMonitoring(StringTools.isNotBlank(noBiologicalMonitoring)); //没做生物监测 + vo.setBiologicalMonitoringNoResult(StringTools.isNotBlank(biologicalMonitoringNoResult)); //生物监测结果是无 + vo.setBiologicalMonitoringFail(StringTools.isNotBlank(biologicalMonitoringFail)); //生物监测结果是不合格 + + if (StringTools.isNotBlank(urgentDelivery)) { //紧急发货 + vo.setIsRoutine(TousseInstance.ROUTINE_NO); + } + } + } + } /** Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r16313 -r16375 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 16313) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 16375) @@ -310,7 +310,7 @@ toDeleteBasketMap.remove(id); - ClassifyBasket paramsClassifyBasket = classifyBasketInfoMap.get(id); + ClassifyBasket paramsClassifyBasket = classifyBasketInfoMap.get(id); //瞬时态的op对象 String personInCharge = ""; String personInChargeCode = ""; String position = ""; @@ -361,6 +361,10 @@ } } + /** + * 删除与"此清洗记录"有关系的所有"篮筐实例" + * @param washRecord + */ private void cleanOldBasketRelation(WashAndDisinfectRecord washRecord) { List oldBaskets = washRecord.getClassifyBaskets(); if(oldBaskets != null){ Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java =================================================================== diff -u -r16246 -r16375 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 16246) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 16375) @@ -54,6 +54,9 @@ */ public JSONObject countTotalWorkload(Long washAndDisinfectRecordId, Iterable classifyBaskets,boolean secondWashCountWorkload); + /** + * 判断新添加的清洗记录的清洗机是否在清洗中,如果该清洗机没清洗结束,则返回true + */ public boolean validateWashIsEnd(String CleaningMachineName,Date startDate,Date endDate); public void setWashInfo(TousseInstance tousseInstance,WashAndDisinfectRecord washRecord); Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r16316 -r16375 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 16316) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 16375) @@ -1185,13 +1185,15 @@ JsonObject dataJSON = json.getAsJsonObject("data"); if(dataJSON != null){ String barcode = dataJSON.get("barcode").getAsString(); - JSONObject jroutine = invoiceManager.isRoutine(barcode); - String noBiologicalMonitoring = jroutine.getString("noBiologicalMonitoringForeignTousses"); - String unconventional = jroutine.getString("unconventionalForeignTousses"); - String isUnqualified = jroutine.getString("isUnqualified"); + JSONObject jroutine = invoiceManager.getBiologicalMonitoringInfo(barcode); + String noBiologicalMonitoring = jroutine.getString("noBiologicalMonitoring"); +// String biologicalMonitoringNoResult = jroutine.getString("biologicalMonitoringNoResult"); + String biologicalMonitoringFail = jroutine.getString("biologicalMonitoringFail"); + String urgentDelivery = jroutine.getString("urgentDelivery"); + dataJSON.addProperty("noBiologicalMonitoring",StringTools.isNotBlank(noBiologicalMonitoring)); - dataJSON.addProperty("unconventional", StringTools.isNotBlank(unconventional)); - dataJSON.addProperty("isUnqualified", StringTools.isNotBlank(isUnqualified)); + dataJSON.addProperty("unconventional", StringTools.isNotBlank(urgentDelivery)); + dataJSON.addProperty("isUnqualified", StringTools.isNotBlank(biologicalMonitoringFail)); } }else if("tousseInstancesInContainer".equals(itemType)){ JsonArray dataJArray = json.getAsJsonArray("data"); @@ -1204,19 +1206,20 @@ barcodes.add(jobj.get("barcode").getAsString()); } } - JSONObject jroutine = invoiceManager.isRoutine(StringTools.join(barcodes, ";")); - String noBiologicalMonitoring = jroutine.getString("noBiologicalMonitoringForeignTousses"); - String unconventional = jroutine.getString("unconventionalForeignTousses"); - String isUnqualified = jroutine.getString("isUnqualified"); + JSONObject jroutine = invoiceManager.getBiologicalMonitoringInfo(StringTools.join(barcodes, ";")); + String noBiologicalMonitoring = jroutine.getString("noBiologicalMonitoring"); +// String biologicalMonitoringNoResult = jroutine.getString("biologicalMonitoringNoResult"); + String biologicalMonitoringFail = jroutine.getString("biologicalMonitoringFail"); + String urgentDelivery = jroutine.getString("urgentDelivery"); for(int i = 0;i < dataJArray.size();++i){ JsonElement je = dataJArray.get(i); if(je != null){ JsonObject jobj = je.getAsJsonObject(); String barcode = jobj.get("barcode").getAsString(); jobj.addProperty("noBiologicalMonitoring",StringTools.contains(noBiologicalMonitoring, barcode)); - jobj.addProperty("unconventional", StringTools.contains(unconventional, barcode)); - jobj.addProperty("isUnqualified", StringTools.contains(isUnqualified, barcode)); + jobj.addProperty("unconventional", StringTools.contains(urgentDelivery, barcode)); + jobj.addProperty("isUnqualified", StringTools.contains(biologicalMonitoringFail, barcode)); } } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManager.java =================================================================== diff -u -r16373 -r16375 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManager.java (.../InvoiceManager.java) (revision 16373) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManager.java (.../InvoiceManager.java) (revision 16375) @@ -169,16 +169,16 @@ public JSONObject batchPrintInvoice(String ids,String type); /** - * 验证器械包是否常规发货,以及生物监测的情况,返回值JSONObject对象的三个元素的具体如下:
- * biologicalMonitoringNoResult:生物监测结果为无的器械包集合,用分号分隔
- * noBiologicalMonitoringForeignTousses:没做生物监测的器械包集合,用分号分隔
- * unconventionalForeignTousses生物监测没结束就要发货的器械包集合,用分号分隔
- * isUnqualified:生物监测结果为"不合格"的器械包集合,用分号分隔 + * 批量获取器械包的生物监测的情况,情况具体如下:
+ * noBiologicalMonitoring:没做生物监测
+ * biologicalMonitoringNoResult:生物监测的结果为无
+ * biologicalMonitoringFail:生物监测的结果是不合格
+ * urgentDelivery:紧急发货 * - * @param tousseBarcodes:器械包条码集合的字符串,用分号分隔 + * @param tousseBarcodes 器械包条码集合的字符串,用分号分隔 * @return */ - public JSONObject isRoutine(String tousseBarcodes); + public JSONObject getBiologicalMonitoringInfo(String tousseBarcodes); /** * 获取发货单中,第一张核对员不为空的单,把核对员信息返回。如果都为空,则返回null * @param ids 发货单id的集合 Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16373 -r16375 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16373) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16375) @@ -1624,6 +1624,12 @@ } } } + + /** + * 修改TousseInstance的isRoutine属性 + * @param tousseInstancesToUpdate + * @param submitInvoiceItems + */ private void updateTousseInstanceStatus( Set tousseInstancesToUpdate, List submitInvoiceItems) { @@ -8002,49 +8008,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; @@ -8053,7 +8061,7 @@ long biologicalMonitoringEndDateTime = endDateTime + lagTime + biologicalMonitoringTime; if (biologicalMonitoringEndDateTime > nowTime) { - unconventionalForeignTousses += map.get("barcode") + ";"; + urgentDelivery = barcode; } } catch (ParseException e) { logger.debug("灭菌结束时间格式有误先不处理"); @@ -8068,34 +8076,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