Index: ssts-web/src/main/webapp/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_nologo_release.apk =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_release.apk =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/mobileClient/clientForAndroid.json =================================================================== diff -u -r32146 -r32480 --- ssts-web/src/main/webapp/mobileClient/clientForAndroid.json (.../clientForAndroid.json) (revision 32146) +++ ssts-web/src/main/webapp/mobileClient/clientForAndroid.json (.../clientForAndroid.json) (revision 32480) @@ -1,7 +1,7 @@ { "success":"true", - "version":"4.7.24", - "urlSuffix":"/mobileClient/SterileSupplySystem_Android_V4.7.24_20210927_v4_1_release.apk", - "urlSuffix-nologo":"/mobileClient/SterileSupplySystem_Android_V4.7.24_20210927_v4_1_nologo_release.apk", - "urlSuffix-6p":"/mobileClient/SterileSupplySystem_Android_V4.7.24_20210927_v4_1_6p_release.apk", + "version":"4.7.25", + "urlSuffix":"/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_release.apk", + "urlSuffix-nologo":"/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_nologo_release.apk", + "urlSuffix-6p":"/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_6p_release.apk", } \ No newline at end of file Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r32474 -r32480 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 32474) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 32480) @@ -1580,7 +1580,7 @@ _defaultDateJsonValueProcessor3); final String[] retainPropertys = { "id", "tousseDefinition","itemDefinition", "tousseName", "barcode", "validUntil", "sterilingType","sterilingMode", - "orgUnitCoding", "orgUnitName","sterilizerPosition","actualUsed","operator","status" }; + "orgUnitCoding", "orgUnitName","sterilizerPosition","actualUsed","operator","status","hasReceived" }; PropertyFilter filter = new PropertyFilter() { @Override public boolean apply(Object source, String name, Object value) { @@ -3509,12 +3509,20 @@ } }; config.setJsonPropertyFilter(propertyFilter); - - String sql = "where po.deliverStatus = '" - + InvoicePlan.DELIVERSTATUS_AWAITDELIVER - + "' order by po.applicationTime desc"; + String status = params.optString("status"); + List statusList = null; + if(StringUtils.isNotBlank(status) && status.indexOf(Constants.STR_ALL) == -1){ + String[] statusArray = StringUtils.split(status,","); + statusList = Arrays.asList(statusArray); + } + String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); + String condition = "where (po.handleDepartCoding='"+ currentOrgUnitCode +"' or po.departCoding='"+ currentOrgUnitCode +"' and po.isConvertPackingRecord='"+ Constants.STR_YES +"') "; + if(CollectionUtils.isNotEmpty(statusList)){ + condition += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("po.deliverStatus", statusList); + } + String orderBy = " order by po.applicationTime desc"; List proxyDisinfection = objectDao.findBySql( - ProxyDisinfection.class.getSimpleName(), sql); + ProxyDisinfection.class.getSimpleName(), condition + orderBy); JSONObject json = JSONUtil.buildJsonObject(true,JSONArray.fromObject(proxyDisinfection, config)); return json.toString(); } @@ -3531,6 +3539,7 @@ json.put("depart",proxyDisinfection.getDepart()); json.put("applicationTime", proxyDisinfection.getApplicationTimeStr()); json.put("totalAmountOfTousses", proxyDisinfection.getTotalAmountOfTousses()); + json.put("status", proxyDisinfection.getDeliverStatus()); String tousseBarcodeInBasket = ";"; JSONArray basketsInfo = new JSONArray(); for (int i = 0; i < proxyDisinfection.getReviewedBaskets().size(); i++) { @@ -3550,6 +3559,7 @@ tousse.put("id",tousseInstance.getId()); tousse.put("barcode",tousseInstance.getBarcode()); tousse.put("name",tousseInstance.getShowTousseName()); + tousse.put("hasReceived",tousseInstance.hasReceived()); tousses.add(tousse); tousseBarcodeInBasket += tousseInstance.getBarcode() + ";";// 过滤器械包用,存放在篮筐里的器械包,不需要再出现在toussesInfo信息中 } @@ -3571,6 +3581,8 @@ tousse.put("id",tousseInstance.getId()); tousse.put("barcode",tousseInstance.getBarcode()); tousse.put("name",tousseInstance.getShowTousseName()); + tousse.put("hasReceived",tousseInstance.hasReceived()); + toussesInfo.add(tousse); } } } @@ -3631,16 +3643,30 @@ String departCodeOfTousse = tousseInstance.getOrgUnitCoding(); if (StringUtils.isNotEmpty(departCodeOfTousse) && StringUtils.equals(departCodeOfTousse, departCode)) { - return JSONUtil.buildErrorMsgJsonResult("此器械包为本科室装配,无需录入代理灭菌记录"); + //return JSONUtil.buildErrorMsgJsonResult("此器械包为本科室装配,无需录入代理灭菌记录"); } if (!tousseInstanceManager.isTousseStatusCorrect(tousseInstance)) { return JSONUtil.buildErrorMsgJsonResult("器械包状态异常:" + tousseInstance.getStatus()); } - if (tousseInstance.getProxyDisinfection_id() != null) { - return JSONUtil.buildErrorMsgJsonResult("器械包已申请了代理灭菌,不能重复申请"); + long proxyDisinfectionId = params.optLong("proxyDisinfectionId"); + Long proxyDisinfectionIdOfTi = tousseInstance.getProxyDisinfection_id(); + if (DatabaseUtil.isPoIdValid(proxyDisinfectionIdOfTi) && proxyDisinfectionIdOfTi.longValue() != proxyDisinfectionId) { + //按gdszyy-102的问题先注释掉此业务代码 + //return JSONUtil.buildErrorMsgJsonResult("器械包已申请了代理灭菌,不能重复申请"); } + + if(DatabaseUtil.isPoIdValid(proxyDisinfectionId)){ + ProxyDisinfection proxyDisinfection = proxyDisinfectionManager.get(proxyDisinfectionId); + if(proxyDisinfection != null && (StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE) + || StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_PARTAWAITRECEIVE))){ + if(!DatabaseUtil.isPoIdValid(proxyDisinfectionIdOfTi) || proxyDisinfectionIdOfTi.longValue() != proxyDisinfectionId){ + throw new SystemException(String.format("%s %s未生成代理灭菌单,请联系%s(来源科室)!", + tousseInstance.getBarcode(),tousseInstance.getTousseName(),tousseInstance.getDepart())); + } + } + } JSONObject datasJSON = JSONObject.fromObject(tousseInstance, buildJsonConfigForTousseInstance()); @@ -3677,6 +3703,8 @@ String[] tousseInstanceIdStrs = (String[]) JSONArray.toArray( tousseInstanceIdStrJsonArray, String.class); JSONArray basketInfos = params.optJSONArray("basketInfos"); + //已接收的器械包实例id + JSONArray hasReceivedTousseInstanceIdJsonArray = params.optJSONArray("hasReceivedTousseInstanceIdJsonArray"); // 代理灭菌PO ProxyDisinfection proxyDisinfection = null; @@ -3706,7 +3734,7 @@ proxyDisinfection.setCommittedStatus(true); } proxyDisinfectionManager.saveOrUpdate(proxyDisinfection, - tousseInstanceIdStrs, basketInfos, applicant, "", null, null); + tousseInstanceIdStrs, basketInfos, applicant, "", null, hasReceivedTousseInstanceIdJsonArray); return new JSONStringer().object().key("success").value(true) .endObject().toString(); Index: ssts-web/src/main/webapp/mobileClient/SterileSupplySystem_Android_V4.7.25_20211119_v4_1_6p_release.apk =================================================================== diff -u Binary files differ