Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r21869 -r21875 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 21869) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 21875) @@ -391,7 +391,7 @@ sterilizationRecord.setReviewedBasketAmount(reviewedBasketList.size()); //计算此灭菌记录的灭菌篮筐总数 //如果状态不等于“灭菌中”,则不用去获取条码 - if(!sterilizationRecord.getStatus().equals(sterilizationRecord.STERILIZATION_STATUS_BEGIN)){ + if(!sterilizationRecord.getStatus().equals(SterilizationRecord.STERILIZATION_STATUS_BEGIN)){ return; } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r21855 -r21875 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21855) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21875) @@ -591,6 +591,23 @@ } } + + + /** + * 固定条码支持修改数量 对应的删除图标按钮方法 + * @param fixedBarcode 固定条码 + * @return + */ +/* public void fixedBarcodeBarcodeDel() { + String fixedBarcode = StrutsParamUtils.getPraramValue("fixedBarcode", ""); + String result = tousseInstanceManager.fixedBarcodeBarcodeDel(fixedBarcode); + JSONObject jsonObject =JSONUtil.buildJsonObject(true, result); + StrutsResponseUtils.output(jsonObject); + }*/ + + + + /** * 根据篮筐码加载篮筐内装载的器械包实例(灭菌篮筐监控和虚拟篮筐监控用到) * @@ -891,308 +908,8 @@ String ownGroupTemp = StrutsParamUtils.getPraramValue("ownGroupTemp", ""); String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); StrutsResponseUtils.output(tousseInstanceManager.getTodayPendingSterilizationTousseAndBasket(status,sterilizerNameTemp,ownGroupTemp,taskGroup)); - - /* - try { - String status = StrutsParamUtils.getPraramValue("status", ""); - - Map sterilingTypeMap = null; - if (CssdUtils.getSystemSetConfigByNameBool("sterilizationCheckTousseSterilingType")) { - String sterilizerNameTemp = StrutsParamUtils.getPraramValue("sterilizerNameTemp", ""); - String ownGroupTemp = StrutsParamUtils.getPraramValue("ownGroupTemp", ""); - - sterilingTypeMap = new HashMap(); - if (StringTools.isNotBlank(sterilizerNameTemp)) { - Sterilizer sterilizer = sterilizerManager.getSterilizerByName(sterilizerNameTemp); - if (sterilizer != null) { - Set sterilisations = sterilizer.getSterilisations(); - for (Sterilisation sterilisation : sterilisations) { - String name = sterilisation.getSterilisation(); - sterilingTypeMap.put(name, name); - } - } - } else { - List sterilingTypeList = sterilisationManager.getSterilingTypeByOwnGroup(ownGroupTemp); - for (String sterilingType : sterilingTypeList) { - sterilingTypeMap.put(sterilingType, sterilingType); - } - } - } - - TimeoutSetting timeoutSetting = timeoutManager.getTimeoutSetting(TimeoutManager.PROCEDURE_REVIEW_TO_STERILE); - int hour=timeoutSetting.getHour(); - int minute=timeoutSetting.getMinute(); - // 状态如果是已灭菌或者灭菌失败,就不用加载 - if (StringUtils.equals(status, - SterilizationRecord.STERILIZATION_STATUS_END) - || StringUtils.equals(status, - SterilizationRecord.STERILIZATION_STATUS_FAILURE)) { - return; - } - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); - String orgUnitCoding = AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig(); - - JSONArray jsonArray = new JSONArray(); - JSONArray notTimeoutArray = new JSONArray(); - // 所有待灭菌的审核篮筐 - List reviewedBaskets = reviewedBasketManager - .getDepartAllReviewedBasket(orgUnitCoding); - System.out.println("==待灭菌的审核篮筐="+reviewedBaskets); - - // 当天审核的,未入筐的器械包 - List toussesOutsideBasketOfToday = tousseInstanceManager - .getTodayReviewedTousseInstanceWithOutBasket(orgUnitCoding); - System.out.println("==未入筐的器械包="+toussesOutsideBasketOfToday); - + } - long start=System.currentTimeMillis(); - // 遍历加载放入灭菌篮筐的器械包 - for (ReviewedBasket basket : reviewedBaskets) { - System.out.println("开始循环"); - Container container = basket.getContainer(); - List vos = tousseInstanceManager - .getTousseInstanceVOsInReviewedBasket(basket, taskGroup, null); - //对包实例的集合进行排序(排序处理逻辑参见TousseSimpleVO类的compareTo方法) - String waitSterilizedTousseInstanceDefaultSortOrder = CssdUtils.getSystemSetConfigByName("waitSterilizedTousseInstanceDefaultSortOrder"); - if(StringUtils.isNotBlank(waitSterilizedTousseInstanceDefaultSortOrder)){ - Collections.sort(vos); - } - JSONObject basketObj = new JSONObject(); - basketObj.put("objName", container.getContainerName()); - basketObj.put("objBarcode", container.getBarcode()); - basketObj.put("objAmount", vos.size()); - basketObj.put("reviewTime", ""); - basketObj.put("type", "BASKET"); - basketObj.put("uiProvider", "col"); - basketObj.put("cls", "master-task"); - basketObj.put("iconCls", "task-folder"); - - - JSONArray tousseInBasketArray = new JSONArray(); - boolean isNotTimeout = true; - boolean isBasketUrgent = false; - - //灭菌筐里面器械包的全部的灭菌程序,至少要有一个是属于此灭菌分组或者此灭菌炉(或者至少有一个器械包的灭菌程序为“无”)才会显示(没选灭菌炉就按灭菌分组过滤) - boolean flag = false; - Map bMap=Maps.newHashMap(); - long start11=System.currentTimeMillis(); - System.out.println("2ceng each start,size="+vos.size()); - - long extime=0; - long extime1=0; - long extime55=0; - long extime444=0; - int successcut=0; - int successcutnihsangsi=0; - for (TousseSimpleVO vo : vos) { - if (sterilingTypeMap == null || Constants.HAS_TYPE_NO.equals(vo.getSterilingType()) || sterilingTypeMap.get(vo.getSterilingType()) != null) { - flag = true; - } - long start44=System.currentTimeMillis(); - String key =vo.getDefinitionName(); - boolean isCountBarcode="是".equals(vo.getIsTraceable())?true:false; - String objName=vo.getDefinitionName(); - long end44=System.currentTimeMillis(); - extime1=extime1+(end44-start44); - if(bMap.containsKey(key) && isCountBarcode){//只有支持扫固定条码的包,才去统计 - //已存在 则取出该对象,对象中 objAmount 累加。 - JSONObject obj = bMap.get(key); - int amt=(int) obj.get("objAmount"); - amt++; - obj.put("objAmount", amt); - long start33=System.currentTimeMillis(); - obj.put("objBarcode", tousseInstanceManager.getTousseInsFixedBarcode(objName)); - - long end33=System.currentTimeMillis(); - extime=extime+(end33-start33); - //覆盖 - bMap.put(key, obj); - }else{ - JSONObject tousseInBasket = new JSONObject(); - String isUrgentTousse = vo.getIsUrgentTousse(); - - boolean isTimeout =false; - long start444=System.currentTimeMillis(); - // 判断是否超时的java代码 处理缓慢 - isTimeout =timeoutManager.isTimeouted(vo.getReviewTime(),timeoutSetting); - //isTimeout=timeoutManager.isTimeouted(vo.getReviewTime(), hour, minute); //自测速度跟上一段代码一样 - long end444=System.currentTimeMillis(); - - extime444=extime444+(end444-start444); - tousseInBasket.put("depart", vo.getDepart()); - tousseInBasket.put("objName",objName ); - tousseInBasket.put("objBarcode", vo.getBarcode()); - tousseInBasket.put("reviewTime", vo.getReviewTime()); - tousseInBasket.put("type", "TOUSSE_IN"); - tousseInBasket.put("uiProvider", "col"); - tousseInBasket.put("leaf", true); - tousseInBasket.put("iconCls", "task"); - tousseInBasket.put("cls", isTimeout ? "itemTimeout" : ""); - // 只要有一个包超时,篮筐就显示超时 - if(isTimeout){ - isNotTimeout = false; - } - if(isUrgentTousse != null && isUrgentTousse.equals(TousseDefinition.STR_YES )){ - isBasketUrgent = true; // 只要有一个包加急,篮筐就显示加急 - tousseInBasket.put("isUrgent", TousseDefinition.STR_YES); - }else{ - tousseInBasket.put("isUrgent", TousseDefinition.STR_NO); - } - if(isCountBarcode){ - bMap.put(key, tousseInBasket); - }else{ - bMap.put(vo.getBarcode(), tousseInBasket); - } - - } - } - System.out.println("2ceng each end,"+(System.currentTimeMillis()-start11)+ - ",===tousseInstanceManager.getTousseInsFixedBarcode(vo.getItemDefinition().getName())总用时,"+extime - +"==-=-=-"+extime1+"---=--=判断超时代码:"+extime444); - for (String key : bMap.keySet()) { - JSONObject tousseInBasket=bMap.get(key); - tousseInBasketArray.add(tousseInBasket); - } - if (flag) { - basketObj.put("children", tousseInBasketArray); - basketObj.put("isTimeout", !isNotTimeout); - if(isBasketUrgent){ - basketObj.put("isUrgent", TousseDefinition.STR_YES); - }else{ - basketObj.put("isUrgent", TousseDefinition.STR_NO); - } - if(isNotTimeout){ - notTimeoutArray.add(basketObj); - }else{ - basketObj.put("cls", "itemTimeout"); - jsonArray.add(basketObj); - } - } - } - long end=System.currentTimeMillis(); - System.out.println("第一部分耗时:"+(end-start)); - System.out.println("遍历加载放入灭菌篮筐的器械包结束循环"); - - long start2=System.currentTimeMillis(); - // 去重,key为名称, value为具体的数据。 如果名称重复,则取出该分组数据,累加。否则新增.。 什么结果? - Map resultMap=Maps.newTreeMap(); - String sortRule="aaaaa";//根据treeMap 特性,将已超时的排在前面 - for (TousseInstance tousseOutsideBasket : toussesOutsideBasketOfToday) { - boolean isTimeout = timeoutManager.isTimeouted(tousseOutsideBasket.getReviewTime(), timeoutSetting); - //器械包的灭菌程序,属于此灭菌分组或者此灭菌炉(或者器械包的灭菌程序为“无”)才会显示(没选灭菌炉就按灭菌分组过滤) - if (sterilingTypeMap != null && !Constants.HAS_TYPE_NO.equals(tousseOutsideBasket.getSterilingType())) { - String sterilingTypeTemp = sterilingTypeMap.get(tousseOutsideBasket.getSterilingType()); - if (sterilingTypeTemp == null) { - continue; - } - } - String key=tousseOutsideBasket.getShowTousseName(); - if(isTimeout){ - key=sortRule+tousseOutsideBasket.getShowTousseName(); - //System.out.println(tousseOutsideBasket.getShowTousseName()+"已超时"); - } - if(resultMap.containsKey(key) && tousseInstanceManager.isCountBarcode(tousseOutsideBasket.getBarcode())){//只有支持扫固定条码的包,才去统计 - //已存在 则取出该对象,对象中 objAmount 累加。 启动name就 - JSONObject obj = resultMap.get(key); - int amt=(int) obj.get("objAmount"); - amt++; - obj.put("objAmount", amt); - obj.put("objBarcode", tousseInstanceManager.getTousseInsFixedBarcode(tousseOutsideBasket.getTousseName())); - //覆盖 - resultMap.put(key, obj); - }else{ - //不存在,则新增 - JSONObject obj = new JSONObject(); - obj.put("depart", tousseOutsideBasket.getDepart()); - obj.put("objName", tousseOutsideBasket.getShowTousseName()); - obj.put("objBarcode", tousseOutsideBasket.getBarcode()); - obj.put("objAmount", 1); - obj.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseOutsideBasket.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); - obj.put("type", "TOUSSE"); - obj.put("uiProvider", "col"); - obj.put("leaf", true); - obj.put("cls", isTimeout ? "itemTimeout" : "master-task"); - obj.put("iconCls", "task"); - obj.put("isTimeout", isTimeout); - if(tousseOutsideBasket.getIsUrgentTousse() != null && tousseOutsideBasket.getIsUrgentTousse().equals(TousseDefinition.STR_YES )){ - obj.put("isUrgent", TousseDefinition.STR_YES); - }else{ - obj.put("isUrgent", TousseDefinition.STR_NO); - } - if(tousseInstanceManager.isCountBarcode(tousseOutsideBasket.getBarcode())){//只有支持扫固定条码的包,才去统计 - resultMap.put(key, obj); - }else{ - resultMap.put(tousseOutsideBasket.getBarcode(), obj); - } - } - } - long end2=System.currentTimeMillis(); - System.out.println("第二段耗时:"+(end2-start2)); - System.out.println("第二段循环完成"); - // 加载未入筐的器械包 - for (TousseInstance tousseOutsideBasket : toussesOutsideBasketOfToday) { - boolean isTimeout = timeoutManager.isTimeouted(tousseOutsideBasket.getReviewTime(), timeoutSetting); - //器械包的灭菌程序,属于此灭菌分组或者此灭菌炉(或者器械包的灭菌程序为“无”)才会显示(没选灭菌炉就按灭菌分组过滤) - if (sterilingTypeMap != null && !Constants.HAS_TYPE_NO.equals(tousseOutsideBasket.getSterilingType())) { - String sterilingTypeTemp = sterilingTypeMap.get(tousseOutsideBasket.getSterilingType()); - if (sterilingTypeTemp == null) { - continue; - } - } - JSONObject obj = new JSONObject(); - obj.put("depart", tousseOutsideBasket.getDepart()); - obj.put("objName", tousseOutsideBasket.getShowTousseName()); - obj.put("objBarcode", tousseOutsideBasket.getBarcode()); - obj.put("objAmount", 1); - obj.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseOutsideBasket.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); - obj.put("type", "TOUSSE"); - obj.put("uiProvider", "col"); - obj.put("leaf", true); - obj.put("cls", isTimeout ? "itemTimeout" : "master-task"); - obj.put("iconCls", "task"); - obj.put("isTimeout", isTimeout); - // 是否加急 - if(tousseOutsideBasket.getIsUrgentTousse() != null && tousseOutsideBasket.getIsUrgentTousse().equals(TousseDefinition.STR_YES )){ - obj.put("isUrgent", TousseDefinition.STR_YES); - }else{ - obj.put("isUrgent", TousseDefinition.STR_NO); - } - if(isTimeout){ - jsonArray.add(obj); - }else{ - notTimeoutArray.add(obj); - } - } - - long start3=System.currentTimeMillis(); - List resultList=Lists.newArrayList(); - for (String key : resultMap.keySet()) { - JSONObject obj = resultMap.get(key); - resultList.add(obj); - } - jsonArray.addAll(notTimeoutArray); //未超时的加到最后 - jsonArray.addAll(resultList); - @SuppressWarnings("unchecked") - Iterator it = jsonArray.iterator(); - while (it.hasNext()) { - JSONObject jsonObject = it.next(); - if (jsonObject.containsKey("objAmount")) { - int amount = jsonObject.getInt("objAmount"); - if (amount == 0) { - it.remove(); - } - } - } - long end3=System.currentTimeMillis(); - System.out.println("第三段耗时:"+(end3-start3)); - System.out.println("第3段循环完成"); - StrutsResponseUtils.output(jsonArray); - } catch (Exception e) { - e.printStackTrace(); - } - */} - /*** * @author liujie * @description:检测同一灭菌筐内是否含有不同炉号、炉次的器械 Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r21869 -r21875 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21869) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21875) @@ -1482,12 +1482,41 @@ } /** + * 针对固定条码,点击删除图标后, + * 将该固定条码下的所有唯一条码,加回至全局数组中 + */ +/*function fixedBarcodeBarcodeDel(fixedBarcode){ + Ext.Ajax.request({ + url : encodeURI(WWWROOT + '/disinfectSystem/tousseInstanceAction!fixedBarcodeBarcodeDel.do?'+new Date()), + sync:true, + params : { + fixedBarcode :fixedBarcode + }, + waitMsg : '正在处理,请稍候...', + success : function(response, options) { + var result = Ext.decode(response.responseText); + if(result.success){ + myBarcodes = result.message.split(",") + statisticsTousseAndBasket(); + }else{ + showResult("发生异常"); + } + }, + failure : function(response, options) { + showResult("后台运行异常,请稍候再试..."); + formObj.getEl().unmask(); + } + }); +}*/ + + +/** * 只针对固定条码:点击删除图标后事件 */ function clickDeleteIcon(clickNode){ var delAmount = clickNode.attributes.amount var fixedBarcode = clickNode.attributes.barcode - delTousseInsAmount(delAmount,fixedBarcode); + delTousseInsAmount(delAmount,fixedBarcode) clickNode.remove();//将当前节点移除 myFixedBarcodes.removeByValue(fixedBarcode);//在全局条码中移除该固定条码 statisticsTousseAndBasket(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r21855 -r21875 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 21855) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 21875) @@ -762,6 +762,6 @@ * @return */ public String scanFixedBarcode(String fixedBarcode, String barcodes); - + } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r21869 -r21875 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 21869) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 21875) @@ -2809,7 +2809,8 @@ toussesOfToday.remove(temp); } } - + + if (CollectionUtils.isNotEmpty(toussesOfToday)) { //设置的数量大于0时才做限制 int toussesAmount = toussesOfToday.size(); @@ -2828,7 +2829,7 @@ temp.put("tousseName", tousseInstance1.getTousseName()); temp.put("typeForSterilizationStatistics", getTypeForSterilizationStatistics(tousseInstance1)); temp.put("SterilingType", tousseInstance1.getSterilingType()); - temp.put("department", StringUtils.defaultString(tousseInstance1.getDepart(), "")); + temp.put("department", "");//固定条码不显示科室 temp.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstance1.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); temp.put("amount",toussesAmount );//每次扫描加载的数量 temp.put("stockAmount",tousseInstanceManager.getTousseInstanceStockAmount(tousseInstance.getBarcode()));//库存数量 Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r21869 -r21875 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21869) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21875) @@ -3320,6 +3320,10 @@ } + + + + /** * 固定条码支持修改数量 对应的减少方法 * @param tousseName 包名 @@ -3340,21 +3344,23 @@ oldBarcodesList.add(oldBarcodes[i]); } + //此固定条码下所有的包实例条码 - List barcodeList =getTousseInsDataByFixedBarcode(fixedBarcode,"",TousseInstance.STATUS_STERILING); + List barcodeList =getTousseInsDataByFixedBarcode(fixedBarcode,"","灭菌记录"); + //筛选符合删除条件的条码 oldBarcodesList.retainAll(barcodeList); //页面上已扫描的条码转成List ArrayList arrayList = new ArrayList(Arrays.asList(oldBarcodes)); - - //移除数据 - for(int i=0;i=subtractionAmount){ + //移除数据 + for(int i=0;i