Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java =================================================================== diff -u -r14255 -r14287 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java (.../BarcodeTableManager.java) (revision 14255) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java (.../BarcodeTableManager.java) (revision 14287) @@ -64,182 +64,192 @@ * @return */ public String getResultJsonStrByBarcode(String barcodes,String procedure){ - String jsonStr = "{returnType:'basketNotFound'}"; - if(StringUtils.isBlank(barcodes)) - return jsonStr; - - //拆分barcode,分号前作为首,之后作为尾 - String[] barCodeArray = barcodes.split(";"); - String barcode = barCodeArray[0]; - String barcodeEnd = null; - if(barCodeArray.length >= 2){ - barcodeEnd = barCodeArray[1]; - } - BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); - //判断是否存在 - if(barcodeDevice == null){ - return jsonStr; - } - //当前登录用户所属科室 - String currentOrgUnitCode = AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode(); - if(barcodeDevice instanceof Container){ - Container container = (Container)barcodeDevice; - if(!Container.CONTAINERTYPE_BASKET.equals(container.getContainerType())) - return jsonStr; - - //判断是否为虚拟篮筐,如果是则根据虚拟篮筐的条件查询器械包实例 - if(Container.CONTAINER_PURPOSE_VIRTUAL.equals(container.getPurpose())){ - Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , TousseInstance.STATUS_PACKED); - if(result != null && "tousseInstanceSuccess".equals(result.get("returnType"))){ - List tousseInstanceList = (List)result.get("result"); - JSONObject jsonObj = new JSONObject(); - if(CollectionUtils.isNotEmpty(tousseInstanceList)){ - JSONArray tousses = new JSONArray(); - jsonObj.put("returnType", "multiTousseInstancesSuccess"); - - for(int i = 0;i < tousseInstanceList.size();i++){ - TousseInstance tousseInstance = (TousseInstance)tousseInstanceList.get(i); - JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); - tousses.add(tousse); - } - jsonObj.put("tousseInstances", tousses); - }else{ - jsonObj.put("returnType", "noResult"); - } - return jsonObj.toString(); - }else{ - jsonStr = "{returnType:'"+result.get("returnType")+"'}"; - } + JSONObject jsonObj = new JSONObject(); + jsonObj.put("returnType", "basketNotFound"); + try { + if(StringUtils.isBlank(barcodes)){ + jsonObj.put("returnType", ""); + jsonObj.put("message", "条码不能为空!"); + return jsonObj.toString(); } - - boolean correctStatus = Arrays.asList( - Container.CONTAINER_STATUS_FREE, - Container.CONTAINER_STATUS_STERILIZELOADING).contains( - container.getStatus()); - if (!correctStatus) { - jsonStr = "{returnType:'basketUsed',status:'" + container.getStatus() + "',containerType:'"+container.getPurpose()+"'}"; - return jsonStr; + + //拆分barcode,分号前作为首,之后作为尾 + String[] barCodeArray = barcodes.split(";"); + String barcode = barCodeArray[0]; + String barcodeEnd = null; + if(barCodeArray.length >= 2){ + barcodeEnd = barCodeArray[1]; } - - jsonStr = "{returnType:'containerSuccess',containerName:'" - + container.getContainerName() + "',containerType:'"+container.getPurpose()+"'}"; - return jsonStr; - - }else if(barcodeDevice instanceof TousseInstance){ - TousseInstance tousseInstance = (TousseInstance)barcodeDevice; - String status = tousseInstance.getStatus(); - - boolean correct = false; - switch(procedure){ - case "灭菌装载": - String orgUnitCoding = tousseInstance.getOrgUnitCoding(); - if (orgUnitCoding != null - && !orgUnitCoding.equals(currentOrgUnitCode) - && tousseInstance.getProxyDisinfection_id() == null) { - JSONObject jsonObj = buildTousseInstanceSuccessJson("emptyProxyDisinfection", tousseInstance); + BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + //判断是否存在 + if(barcodeDevice == null){ + return jsonObj.toString(); + } + //当前登录用户所属科室 + String currentOrgUnitCode = AcegiHelper.getLoginUser() + .getCurrentOrgUnitCode(); + if(barcodeDevice instanceof Container){ + Container container = (Container)barcodeDevice; + if(!Container.CONTAINERTYPE_BASKET.equals(container.getContainerType())) return jsonObj.toString(); - } - - //如果只有开始条码,没有结束条码,则判断器械包状态 - if(StringUtils.isNotBlank(barcodeEnd)){ - Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , - TousseInstance.STATUS_REVIEWED); + + //判断是否为虚拟篮筐,如果是则根据虚拟篮筐的条件查询器械包实例 + if(Container.CONTAINER_PURPOSE_VIRTUAL.equals(container.getPurpose())){ + Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , TousseInstance.STATUS_PACKED); if(result != null && "tousseInstanceSuccess".equals(result.get("returnType"))){ - JSONObject jsonObj = new JSONObject(); List tousseInstanceList = (List)result.get("result"); if(CollectionUtils.isNotEmpty(tousseInstanceList)){ JSONArray tousses = new JSONArray(); jsonObj.put("returnType", "multiTousseInstancesSuccess"); + for(int i = 0;i < tousseInstanceList.size();i++){ - tousseInstance = (TousseInstance)tousseInstanceList.get(i); - if(tousseInstance != null && StringUtils.equals(currentOrgUnitCode, tousseInstance.getOrgUnitCoding())){ - JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); - tousses.add(tousse); - } + TousseInstance tousseInstance = (TousseInstance)tousseInstanceList.get(i); + JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); + tousses.add(tousse); } jsonObj.put("tousseInstances", tousses); }else{ jsonObj.put("returnType", "noResult"); } return jsonObj.toString(); }else{ - jsonStr = "{returnType:'"+result.get("returnType")+"'}"; + jsonObj.put("returnType", result.get("returnType")); } } - if(tousseInstance.getUnTraceableTousse() && tousseInstance.getTousseFixedBarcode()){ - //不追溯的器械包,固定条码。检查当前固定条码下的已审核的包实例的数量是否大于0,如果大于0可以灭菌装载,否则不可以 - String sql = "select count(0) count from " + TousseInstance.class.getSimpleName() + " ti where ti.tousseDefinition_id in " - + " (select ti.tousseDefinition_id from " + TousseInstance.class.getSimpleName() + " ti join " - + BarcodeDevice.class.getSimpleName() + " b on ti.id=b.id " - + " where ti.tousseFixedBarcode=1 and b.barcode='" + tousseInstance.getBarcode() + "') and ti.status='已审核'"; - ResultSet resultSet = objectDao.executeSql(sql); - try { - if (resultSet.next()) { - int count = resultSet.getInt("count"); - if(count > 0){ - correct = true; + + boolean correctStatus = Arrays.asList( + Container.CONTAINER_STATUS_FREE, + Container.CONTAINER_STATUS_STERILIZELOADING).contains( + container.getStatus()); + if (!correctStatus) { + jsonObj.put("returnType", "basketUsed"); + jsonObj.put("status", container.getStatus()); + jsonObj.put("containerType", container.getPurpose()); + return jsonObj.toString(); + } + jsonObj.put("returnType", "containerSuccess"); + jsonObj.put("containerName", container.getContainerName()); + jsonObj.put("containerType", container.getPurpose()); + return jsonObj.toString(); + + }else if(barcodeDevice instanceof TousseInstance){ + TousseInstance tousseInstance = (TousseInstance)barcodeDevice; + String status = tousseInstance.getStatus(); + + boolean correct = false; + switch(procedure){ + case "灭菌装载": + String orgUnitCoding = tousseInstance.getOrgUnitCoding(); + if (orgUnitCoding != null + && !orgUnitCoding.equals(currentOrgUnitCode) + && tousseInstance.getProxyDisinfection_id() == null) { + jsonObj = buildTousseInstanceSuccessJson("emptyProxyDisinfection", tousseInstance); + return jsonObj.toString(); + } + + //如果只有开始条码,没有结束条码,则判断器械包状态 + if(StringUtils.isNotBlank(barcodeEnd)){ + Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , + TousseInstance.STATUS_REVIEWED); + if(result != null && "tousseInstanceSuccess".equals(result.get("returnType"))){ + List tousseInstanceList = (List)result.get("result"); + if(CollectionUtils.isNotEmpty(tousseInstanceList)){ + JSONArray tousses = new JSONArray(); + jsonObj.put("returnType", "multiTousseInstancesSuccess"); + for(int i = 0;i < tousseInstanceList.size();i++){ + tousseInstance = (TousseInstance)tousseInstanceList.get(i); + if(tousseInstance != null && StringUtils.equals(currentOrgUnitCode, tousseInstance.getOrgUnitCoding())){ + JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); + tousses.add(tousse); + } + } + jsonObj.put("tousseInstances", tousses); + }else{ + jsonObj.put("returnType", "noResult"); } + return jsonObj.toString(); + }else{ + jsonObj.put("returnType", result.get("returnType")); } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DatabaseUtil.closeResultSetAndStatement(resultSet); } - }else{ - correct = Arrays.asList(TousseInstance.STATUS_PACKED, - TousseInstance.STATUS_REVIEWED).contains(status); - } - break; - case "外部代理灭菌": - case "审核": - //如果只有开始条码,没有结束条码,则判断器械包状态 - if(StringUtils.isBlank(barcodeEnd)){ - correct = TousseInstance.STATUS_PACKED.equals(status); - }else{ - Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , TousseInstance.STATUS_PACKED); - if(result != null && "tousseInstanceSuccess".equals(result.get("returnType"))){ - JSONObject jsonObj = new JSONObject(); - List tousseInstanceList = (List)result.get("result"); - if(CollectionUtils.isNotEmpty(tousseInstanceList)){ - JSONArray tousses = new JSONArray(); - jsonObj.put("returnType", "multiTousseInstancesSuccess"); - for(int i = 0;i < tousseInstanceList.size();i++){ - tousseInstance = (TousseInstance)tousseInstanceList.get(i); - if(tousseInstance != null && StringUtils.equals(currentOrgUnitCode, tousseInstance.getOrgUnitCoding())){ - JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); - tousses.add(tousse); + if(tousseInstance.getUnTraceableTousse() && tousseInstance.getTousseFixedBarcode()){ + //不追溯的器械包,固定条码。检查当前固定条码下的已审核的包实例的数量是否大于0,如果大于0可以灭菌装载,否则不可以 + String sql = "select count(0) count from " + TousseInstance.class.getSimpleName() + " ti where ti.tousseDefinition_id in " + + " (select ti.tousseDefinition_id from " + TousseInstance.class.getSimpleName() + " ti join " + + BarcodeDevice.class.getSimpleName() + " b on ti.id=b.id " + + " where ti.tousseFixedBarcode=1 and b.barcode='" + tousseInstance.getBarcode() + "') and ti.status='已审核'"; + ResultSet resultSet = objectDao.executeSql(sql); + try { + if (resultSet.next()) { + int count = resultSet.getInt("count"); + if(count > 0){ + correct = true; } } - jsonObj.put("tousseInstances", tousses); - }else{ - jsonObj.put("returnType", "noResult"); + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(resultSet); } - return jsonObj.toString(); }else{ - jsonStr = "{returnType:'"+result.get("returnType")+"'}"; + correct = Arrays.asList(TousseInstance.STATUS_PACKED, + TousseInstance.STATUS_REVIEWED).contains(status); } + break; + case "外部代理灭菌": + case "审核": + //如果只有开始条码,没有结束条码,则判断器械包状态 + if(StringUtils.isBlank(barcodeEnd)){ + correct = TousseInstance.STATUS_PACKED.equals(status); + }else{ + Map result = barcodeManager.getTousseInstanceListByRange(barcode, barcodeEnd , TousseInstance.STATUS_PACKED); + if(result != null && "tousseInstanceSuccess".equals(result.get("returnType"))){ + List tousseInstanceList = (List)result.get("result"); + if(CollectionUtils.isNotEmpty(tousseInstanceList)){ + JSONArray tousses = new JSONArray(); + jsonObj.put("returnType", "multiTousseInstancesSuccess"); + for(int i = 0;i < tousseInstanceList.size();i++){ + tousseInstance = (TousseInstance)tousseInstanceList.get(i); + if(tousseInstance != null && StringUtils.equals(currentOrgUnitCode, tousseInstance.getOrgUnitCoding())){ + JSONObject tousse = buildTousseInstanceSuccessJson(tousseInstance); + tousses.add(tousse); + } + } + jsonObj.put("tousseInstances", tousses); + }else{ + jsonObj.put("returnType", "noResult"); + } + return jsonObj.toString(); + }else{ + jsonObj.put("returnType", result.get("returnType")); + } + } + break; + default: + correct = true; } - break; - default: - correct = true; - } - - if(!correct){ - jsonStr = "{returnType:'erroeStatus',status:'" + status + "'}"; - return jsonStr; - } - JSONObject jsonObj = buildTousseInstanceSuccessJson("tousseInstanceSuccess", tousseInstance); + + if(!correct){ + jsonObj.put("returnType", "erroeStatus"); + jsonObj.put("status", status); + return jsonObj.toString(); + } + jsonObj = buildTousseInstanceSuccessJson("tousseInstanceSuccess", tousseInstance); // jsonStr = "{returnType:'tousseInstanceSuccess',tousseId:'"+tousseInstance.getId() // + "',tousseName:'"+tousseInstance.getShowTousseName() + "',taskGroup:'" // + tousseInstance.getTousseDefinition().getTaskGroup() + "',sterilingMethod:'" // + tousseInstance.getSterilingType() + "',virtualBasketSeqNum:'" // + (tousseInstance.getVirtualBasketSeqNum() == null ? "" : tousseInstance.getVirtualBasketSeqNum()) + "'," // + "barcode:'" + tousseInstance.getBarcode() + "'}"; - - return jsonObj.toString(); + + return jsonObj.toString(); + } + } catch (Exception e) { + e.printStackTrace(); + jsonObj.put("returnType", ""); + jsonObj.put("message", e.getMessage()); } - return jsonStr; + return jsonObj.toString(); } private JSONObject buildTousseInstanceSuccessJson(String returnType,TousseInstance tousseInstance){ Index: ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js =================================================================== diff -u -r14265 -r14287 --- ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 14265) +++ ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 14287) @@ -1267,12 +1267,14 @@ clearBarcodeAndBasketName(); } + }else{ + showResult(obj.message); } }); } else { MsgTip.msg('提示', '已存在相同条形码的器械包',true,3); - Ext.getCmp('barcode').setValue(''); } + Ext.getCmp('barcode').setValue(''); } }); c.getEl().on('focus',function(e) {