Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r33730 -r33768 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 33730) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 33768) @@ -1451,22 +1451,17 @@ if(reviewedBasket == null){ return null; } - Set newTousseInstances = new HashSet<>(); - Set tousseInstances = reviewedBasket.getTousseInstances(objectDao); - if (tousseInstances == null) { - logger.debug("篮筐Id:" + reviewedBasket.getId() + ",篮筐内有0个器械包"); - } else { - logger.debug("篮筐Id:"+ reviewedBasket.getId()+ ",过滤前篮筐内有" + tousseInstances.size() + "个器械包"); - - //过滤掉篮筐中器械包状态不为已装配的包 - for(TousseInstance tousseInstance : tousseInstances){ - if(TousseInstance.STATUS_REVIEWED.equals(tousseInstance.getStatus())){ - newTousseInstances.add(tousseInstance); - } - } - logger.debug("篮筐Id:"+ reviewedBasket.getId()+ ",过滤后篮筐内有" + newTousseInstances.size() + "个器械包"); + Set tousseInstances = null; + if(reviewedBasket.getId() != null){ + String whereHql = String.format("where comboTousseInstanceId is null and status = '%s' and reviewBasket_id=%s", + TousseInstance.STATUS_REVIEWED, reviewedBasket.getId()); + List tousseInstanceList = objectDao.findBySql(TousseInstance.class.getSimpleName(), whereHql); + tousseInstances = new HashSet(tousseInstanceList); } - return newTousseInstances; + if(tousseInstances == null){ + tousseInstances = new HashSet(); + } + return tousseInstances; } @Override @@ -6685,7 +6680,7 @@ } @Override - public JSONArray getFromBasket(String basketBarcode) { + public JSONArray getFromBasket(String basketBarcode, Integer returnType) { JSONArray jsonArray = new JSONArray(); logger.debug("加载篮筐内器械包:" + basketBarcode); Set tousses = getReviewedTousseInstanceByBasket(basketBarcode); @@ -6767,6 +6762,9 @@ if(CssdUtils.getSystemSetConfigByNameBool("enableUrgentFunction", false)){ jsonArray.sort(Comparator.comparing(obj -> ((JSONObject)obj).getInt("urgentGrade")).reversed()); } + if(returnType != null && returnType == 1){ + jsonArray = resetTousseInfo(jsonArray); + } return jsonArray; } @@ -9127,7 +9125,6 @@ try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); rs = objectDao.executeSql(sql); - System.out.println(sql); while(rs.next()){ JSONObject obj = new JSONObject(); Long id = rs.getLong("id"); @@ -9619,4 +9616,108 @@ } return null; } + /** + * 重设篮筐器械包信息 按包、科室分组展示 + * @param array 篮筐器械包信息 + * @return + */ + private JSONArray resetTousseInfo(JSONArray array){ + Map> tousseMap = new HashMap>(); + Map tousseMapOfNoDepart = new HashMap(); + boolean showDepartOfTousseInstanceSterile = CssdUtils.getSystemSetConfigByNameBool("showDepartOfTousseInstanceSterile", false); + for (int i = 0; i < array.size(); i++) { + JSONObject thisTousse = (JSONObject)array.get(i); + //前台需要 + thisTousse.put("iconCls", "task"); + thisTousse.put("uiProvider", "col"); + thisTousse.put("leaf", true); + + String tousseName = thisTousse.optString("objName"); + JSONArray tousseArr = null; + Map departMap = null; + String depart = null; + if(showDepartOfTousseInstanceSterile){ + departMap = tousseMap.get(tousseName); + if(departMap == null){ + departMap = new HashMap(); + tousseMap.put(tousseName, departMap); + } + depart = thisTousse.optString("depart"); + tousseArr = departMap.get(depart); + if(tousseArr == null){ + tousseArr = new JSONArray(); + } + tousseArr.add(thisTousse); + departMap.put(depart, tousseArr); + }else{ + tousseArr = tousseMapOfNoDepart.get(tousseName); + if(tousseArr == null){ + tousseArr = new JSONArray(); + } + tousseArr.add(thisTousse); + tousseMapOfNoDepart.put(tousseName, tousseArr); + } + } + JSONArray resultArr = new JSONArray(); + if(showDepartOfTousseInstanceSterile){ + for (String tousseName : tousseMap.keySet()) { + Map departMap = tousseMap.get(tousseName); + JSONObject resultObj = new JSONObject(); + resultObj.put("objName", tousseName); + //前台需要 + resultObj.put("cls", "master-task"); + resultObj.put("iconCls", "task-folder"); + resultObj.put("uiProvider", "col"); + + int tousseAmount = 0; + JSONArray departArr = new JSONArray(); + for (String depart : departMap.keySet()) { + JSONObject departObj = new JSONObject(); + int departTousseAmount = 0; + //前台需要 + departObj.put("cls", "master-task"); + departObj.put("iconCls", "task-folder"); + departObj.put("uiProvider", "col"); + departObj.put("departNode", true); + departObj.put("tousseName", tousseName); + + JSONArray tousseArr = departMap.get(depart); + for (int i = 0; i < tousseArr.size(); i++) { + JSONObject tousse = (JSONObject)tousseArr.get(i); + int thisAmount = tousse.optInt("amount"); + tousseAmount += thisAmount; + departTousseAmount += thisAmount; + } + departObj.put("objName", depart); + departObj.put("amount", departTousseAmount); + departObj.put("children", departMap.get(depart)); + departArr.add(departObj); + } + resultObj.put("amount", tousseAmount); + resultObj.put("children", departArr); + resultArr.add(resultObj); + } + }else{ + for (String tousseName : tousseMapOfNoDepart.keySet()) { + JSONArray tousseArr = tousseMapOfNoDepart.get(tousseName); + JSONObject resultObj = new JSONObject(); + resultObj.put("objName", tousseName); + //前台需要 + resultObj.put("cls", "master-task"); + resultObj.put("iconCls", "task-folder"); + resultObj.put("uiProvider", "col"); + int tousseAmount = 0; + for (int i = 0; i < tousseArr.size(); i++) { + JSONObject tousse = (JSONObject)tousseArr.get(i); + int thisAmount = tousse.optInt("amount"); + tousseAmount += thisAmount; + } + resultObj.put("amount", tousseAmount); + resultObj.put("children", tousseArr); + resultArr.add(resultObj); + } + } + + return resultArr; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingReviewController.java =================================================================== diff -u -r24711 -r33768 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingReviewController.java (.../PackingReviewController.java) (revision 24711) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingReviewController.java (.../PackingReviewController.java) (revision 33768) @@ -143,7 +143,7 @@ public void getFromBasket() { String basketBarcode = SpringUtils.getPraramValue("basketBarcode", ""); - JSONArray data = tousseInstanceManager.getFromBasket(basketBarcode); + JSONArray data = tousseInstanceManager.getFromBasket(basketBarcode,null); JSONObject obj = new JSONObject(); obj.put("data", data); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r33730 -r33768 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 33730) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 33768) @@ -843,7 +843,9 @@ */ public void getFromBasket() { String basketBarcode = StrutsParamUtils.getPraramValue("basketBarcode", ""); - StrutsResponseUtils.output(tousseInstanceManager.getFromBasket(basketBarcode)); + //返回的数据类型 为1时页面的显示会不一样 所以数据也有区别 + Integer returnType = StrutsParamUtils.getPraramValue("returnType", 0); + StrutsResponseUtils.output(tousseInstanceManager.getFromBasket(basketBarcode,returnType)); } /** Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r33730 -r33768 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 33730) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 33768) @@ -267,9 +267,10 @@ /** * 加载篮筐内的所有已审核器械包(从Action提取) * @param basketBarcode + * @param returnType 返回值类型 值为1时 返回按包、科室分组的器械包信息 * @return */ - public JSONArray getFromBasket(String basketBarcode); + public JSONArray getFromBasket(String basketBarcode, Integer returnType); /** * 加载所有已审核且未加入至任何灭菌筐的器械包(按用户所在科室对应供应室处理器械包配置的器械包)