Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r12895 -r12958 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 12895) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 12958) @@ -208,246 +208,255 @@ * 器械包 010000xxx,010000xxx, */ public String packingWithoutTask() { - HttpServletRequest request = StrutsParamUtils.getRequest(); - String inspector = request.getParameter("inspector");// 检查人 - String inspectorCode = request.getParameter("inspectorCode"); - String operator = request.getParameter("operator");// 配包者 - String operatorCode = request.getParameter("operatorCode");// 配包者 - String reviewer = request.getParameter("reviewer");// 审核者 - String reviewerCode = request.getParameter("reviewerCode");// 审核者 - String wrapper = request.getParameter("wrapper");// 配包者 - String wrapperCode = request.getParameter("wrapperCode");// 配包者 - String packageType = request.getParameter("packageType");// 包装类型 - String sterilingType = request.getParameter("sterilingType");// 灭菌程序 - String sterilizer = request.getParameter("sterilizer");// 灭菌炉名称 - String frequency = request.getParameter("frequency");// 炉次号 - String tousseName = request.getParameter("tousseName");// 器械包 - String packAmountStr = request.getParameter("packAmount");// 配包数量 - String taskGroup = request.getParameter("taskGroup");// 任务组 - String tousseType = request.getParameter("tempTousseType"); - String idCardBarcode = request.getParameter("idCardBarcode"); - String disinfectionDate = request.getParameter("disinfectionDate"); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date date = null; + JSONObject retObj = new JSONObject(); + retObj.put("success", false); + retObj.put("message", "装配失败!"); try { - date = sdf.parse(disinfectionDate); - } catch (ParseException e1) { - e1.printStackTrace(); - } - - Date validUntil = null; - Date warningUntil = null; - // 失效期和预警期计算 - JSONObject expirationObj = expirationDateInfoManager - .getExpirationDate(new Date().getTime() + "", packageType); - - boolean isDefined = expirationObj.optBoolean("isDefined"); - if (isDefined){ - validUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("validUntil"), Date.class); - warningUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("warningUntil"), Date.class); - } - - String printValue = "";// 待打印的条码标签 - boolean isDisinfection = false;// 是否为消毒物品 - String disinfectionItemStr = "";// 消毒物品材料明细 - boolean isPrint = true; - boolean isTraceable = true; - String idCardDefinitionUseAmount = ""; - - // 修改装配数量 - printValue += tousseName + ":"; - Integer packAmount = Integer.parseInt(packAmountStr); - TousseDefinition td = tousseDefinitionManager - .getTousseDefinitionBySql(" where po.name = '" + tousseName - + "' and po.tousseType = '" + tousseType + "'"); + HttpServletRequest request = StrutsParamUtils.getRequest(); + String inspector = request.getParameter("inspector");// 检查人 + String inspectorCode = request.getParameter("inspectorCode"); + String operator = request.getParameter("operator");// 配包者 + String operatorCode = request.getParameter("operatorCode");// 配包者 + String reviewer = request.getParameter("reviewer");// 审核者 + String reviewerCode = request.getParameter("reviewerCode");// 审核者 + String wrapper = request.getParameter("wrapper");// 配包者 + String wrapperCode = request.getParameter("wrapperCode");// 配包者 + String packageType = request.getParameter("packageType");// 包装类型 + String sterilingType = request.getParameter("sterilingType");// 灭菌程序 + String sterilizer = request.getParameter("sterilizer");// 灭菌炉名称 + String frequency = request.getParameter("frequency");// 炉次号 + String tousseName = request.getParameter("tousseName");// 器械包 + String packAmountStr = request.getParameter("packAmount");// 配包数量 + String taskGroup = request.getParameter("taskGroup");// 任务组 + String tousseType = request.getParameter("tempTousseType"); + String idCardBarcode = request.getParameter("idCardBarcode"); + String disinfectionDate = request.getParameter("disinfectionDate"); - if (td != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = null; + try { + date = sdf.parse(disinfectionDate); + } catch (ParseException e1) { + e1.printStackTrace(); + } - if(TousseDefinition.STR_NO.equals(td.getIsPrint())){ - isPrint = false; - isTraceable = false; - }else{ - if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ - isTraceable = false; - } + Date validUntil = null; + Date warningUntil = null; + // 失效期和预警期计算 + JSONObject expirationObj = expirationDateInfoManager + .getExpirationDate(new Date().getTime() + "", packageType); + + boolean isDefined = expirationObj.optBoolean("isDefined"); + if (isDefined){ + validUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("validUntil"), Date.class); + warningUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("warningUntil"), Date.class); } - if (TousseDefinition.PACKAGE_TYPE_DISINFECTION - .equals(td.getTousseType())) { - isDisinfection = true; - StringBuffer sb = new StringBuffer(); - // 是否为消毒物品-->打印物品明细 - List materialInstanceList = td - .getMaterialInstances(); - if (materialInstanceList != null) { - for (MaterialInstance instance : materialInstanceList) { - if (sb.length() > 0) { - sb.append(","); - } + String barcodes = "";// 待打印的条码标签 + boolean isDisinfection = false;// 是否为消毒物品 + JSONArray materials = new JSONArray(); + boolean isPrint = true; + boolean isTraceable = true; + String idCardDefinitionUseAmount = ""; + + // 修改装配数量 + barcodes += tousseName + ":"; + Integer packAmount = Integer.parseInt(packAmountStr); + TousseDefinition td = tousseDefinitionManager + .getTousseDefinitionBySql(" where po.name = '" + tousseName + + "' and po.tousseType = '" + tousseType + "'"); - String name = instance.getMaterialDefinition() - .getName(); - if (StringUtils - .isNotBlank(instance - .getMaterialDefinition() - .getSpecification())) { - name += ("[" - + instance.getMaterialDefinition() - .getSpecification() + "]"); - } - sb.append("{name:'" + name + "',count:" - + instance.getCount() + ",isDiposable:'否'}"); + if (td != null) { + + if(TousseDefinition.STR_NO.equals(td.getIsPrint())){ + isPrint = false; + isTraceable = false; + }else{ + if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ + isTraceable = false; } } + + if (TousseDefinition.PACKAGE_TYPE_DISINFECTION + .equals(td.getTousseType())) { + isDisinfection = true; + JSONObject material = new JSONObject(); + // 是否为消毒物品-->打印物品明细 + List materialInstanceList = td + .getMaterialInstances(); + if (materialInstanceList != null) { + for (MaterialInstance instance : materialInstanceList) { - List diposableGoodsInstanceList = td - .getDiposableGoodsItems(); - if (diposableGoodsInstanceList != null) { - for (DiposableGoodsInstance instance : diposableGoodsInstanceList) { - if (sb.length() > 0) { - sb.append(","); + String name = instance.getMaterialDefinition() + .getName(); + if (StringUtils + .isNotBlank(instance + .getMaterialDefinition() + .getSpecification())) { + name += ("[" + + instance.getMaterialDefinition() + .getSpecification() + "]"); + } + material.put("name", name); + material.put("count", instance.getCount()); + material.put("isDiposable", "否"); + materials.add(material); } - String name = instance.getDiposableGoods() - .getName(); - if (StringUtils.isNotBlank(instance - .getDiposableGoods().getSpecification())) { - name += ("[" - + instance.getDiposableGoods() - .getSpecification() + "]"); + } + + List diposableGoodsInstanceList = td + .getDiposableGoodsItems(); + if (diposableGoodsInstanceList != null) { + for (DiposableGoodsInstance instance : diposableGoodsInstanceList) { + String name = instance.getDiposableGoods() + .getName(); + if (StringUtils.isNotBlank(instance + .getDiposableGoods().getSpecification())) { + name += ("[" + + instance.getDiposableGoods() + .getSpecification() + "]"); + } + material.put("name", name); + material.put("amount", instance.getAmount()); + material.put("isDiposable", "是"); + materials.add(material); } - sb.append("{name:'" + name + "',amount:" - + instance.getAmount() - + ",isDiposable:'是'}"); } } - disinfectionItemStr = sb.toString(); - } - - // 价格及浮动价格 - double price = td.getPrice(); - double fPrice = supplyRoomConfigManager.getFluctuationPrice(price); - - // 保存装配记录 - PackingRecord packingRecord = new PackingRecord(); - packingRecord.setIsDirectPacking(true); - packingRecord.setPacker(operator); - packingRecord.setPackTime(new Date()); - packingRecord.setInspector(inspector); - packingRecord.setWrapper(wrapper); - packingRecord.setTousseName(tousseName); - packingRecord.setTousseType(td.getTousseType()); - packingRecord.setSterilizer(sterilizer); - packingRecord.setFrequency(frequency); - packingRecord.setTaskGroup((taskGroup==null||taskGroup.trim().length()==0)?td.getTaskGroup():taskGroup); - packingRecord.setOrgUnitCoding(AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig()); - packingManager.saveOrUpdate(packingRecord); - - // 打印条码、保存包实例 - List tousseInstanceList = new ArrayList(); - - Date currentDate = new Date(); - String sterileStartTime = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(currentDate); - - for (int i = 0; i < packAmount; i++) { - TousseInstance tousseInstance = new TousseInstance(); + // 价格及浮动价格 + double price = td.getPrice(); + double fPrice = supplyRoomConfigManager.getFluctuationPrice(price); - tousseInstance.setPackingRecord_id(packingRecord.getId()); + // 保存装配记录 + PackingRecord packingRecord = new PackingRecord(); + packingRecord.setIsDirectPacking(true); + packingRecord.setPacker(operator); + packingRecord.setPackTime(new Date()); + packingRecord.setInspector(inspector); + packingRecord.setWrapper(wrapper); + packingRecord.setTousseName(tousseName); + packingRecord.setTousseType(td.getTousseType()); + packingRecord.setSterilizer(sterilizer); + packingRecord.setFrequency(frequency); + packingRecord.setTaskGroup((taskGroup==null||taskGroup.trim().length()==0)?td.getTaskGroup():taskGroup); + packingRecord.setOrgUnitCoding(AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig()); + packingManager.saveOrUpdate(packingRecord); - String barcodeStr = serialNumManager - .getSerialNumberStr(SerialNum.TYPE_BARCODE); - tousseInstance.setBarcode(barcodeStr); - tousseInstance.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); - tousseInstance.setTousseDefinition(td); - tousseInstance.setStatisticsAmount(td - .getTousseAmount()); - tousseInstance.setTousseName(tousseName); - tousseInstance.setOperator(operator); - tousseInstance.setOperatorCode(operatorCode); - tousseInstance.setReviewerCode(reviewerCode); + // 打印条码、保存包实例 + List tousseInstanceList = new ArrayList(); - tousseInstance.setOperationTime(currentDate); - // 将装配时间作为默认的灭菌开始时间 - tousseInstance.setSterileStartTime(sterileStartTime); + Date currentDate = new Date(); + String sterileStartTime = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(currentDate); - tousseInstance.setPrice(price); - tousseInstance.setFluctuationPrice(fPrice); - - if (i == packAmount - 1) { - printValue += tousseInstance.getBarcode() + ";"; - } else { - printValue += tousseInstance.getBarcode() + ","; - } - tousseInstance.setReviewer(reviewer); - tousseInstance.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); - tousseInstance.setPackageType(packageType); - tousseInstance.setSterilingType(sterilingType); - tousseInstance.setSterilizerName(sterilizer); - tousseInstance.setSterileFrequency(frequency); - - //不审核器械包修改状态 - if(TousseDefinition.STR_NO.equals(td.getIsReview())){ - if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(td.getTousseType())){ - tousseInstance.setStatus(TousseInstance.STATUS_DISINFECTED); + for (int i = 0; i < packAmount; i++) { + TousseInstance tousseInstance = new TousseInstance(); + + tousseInstance.setPackingRecord_id(packingRecord.getId()); + + String barcodeStr = serialNumManager + .getSerialNumberStr(SerialNum.TYPE_BARCODE); + tousseInstance.setBarcode(barcodeStr); + tousseInstance.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); + tousseInstance.setTousseDefinition(td); + tousseInstance.setStatisticsAmount(td + .getTousseAmount()); + tousseInstance.setTousseName(tousseName); + tousseInstance.setOperator(operator); + tousseInstance.setOperatorCode(operatorCode); + tousseInstance.setReviewerCode(reviewerCode); + + tousseInstance.setOperationTime(currentDate); + // 将装配时间作为默认的灭菌开始时间 + tousseInstance.setSterileStartTime(sterileStartTime); + + tousseInstance.setPrice(price); + tousseInstance.setFluctuationPrice(fPrice); + + if (i == 0) { + barcodes += tousseInstance.getBarcode(); + } else { + barcodes += ","+tousseInstance.getBarcode() ; + } + tousseInstance.setReviewer(reviewer); + tousseInstance.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); + tousseInstance.setPackageType(packageType); + tousseInstance.setSterilingType(sterilingType); + tousseInstance.setSterilizerName(sterilizer); + tousseInstance.setSterileFrequency(frequency); + + //不审核器械包修改状态 + if(TousseDefinition.STR_NO.equals(td.getIsReview())){ + if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(td.getTousseType())){ + tousseInstance.setStatus(TousseInstance.STATUS_DISINFECTED); + }else{ + tousseInstance.setStatus(TousseInstance.STATUS_REVIEWED); + } + tousseInstance.setReviewTime(currentDate); }else{ - tousseInstance.setStatus(TousseInstance.STATUS_REVIEWED); + tousseInstance.setStatus(TousseInstance.STATUS_PACKED); } - tousseInstance.setReviewTime(currentDate); - }else{ - tousseInstance.setStatus(TousseInstance.STATUS_PACKED); - } - - tousseInstance.setValidUntil(validUntil); - tousseInstance.setWarningUntil(warningUntil); - tousseInstance.setOrgUnitCoding(AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig()); - tousseInstance.setOrgUnitName(AcegiHelper.getLoginUser() - .getOrgUnitNameCodingFromSupplyRoomConfig()); - - tousseInstanceManager.saveOrUpdate(tousseInstance); - tousseInstanceList.add(tousseInstance); + + tousseInstance.setValidUntil(validUntil); + tousseInstance.setWarningUntil(warningUntil); + tousseInstance.setOrgUnitCoding(AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig()); + tousseInstance.setOrgUnitName(AcegiHelper.getLoginUser() + .getOrgUnitNameCodingFromSupplyRoomConfig()); + + tousseInstanceManager.saveOrUpdate(tousseInstance); + tousseInstanceList.add(tousseInstance); - // 器械包标志牌处理 - // 如果找到对应的器械包标识牌实例,则该器械包实例与标识牌实例关联,并退出循环,因为这里是1对1的关系 - - IDCardInstance idCardInstance = idCardInstanceManager.getIDCardInstanceByBarcode(idCardBarcode); - if (packingManager.addTousseInstanceToIdCardInstance( - idCardInstance, null, tousseInstance)) { - Long useAmount = tousseInstance.getUseAmount(); - if (useAmount != null){ - idCardDefinitionUseAmount = useAmount.toString(); + // 器械包标志牌处理 + // 如果找到对应的器械包标识牌实例,则该器械包实例与标识牌实例关联,并退出循环,因为这里是1对1的关系 + if(StringUtils.isNotBlank(idCardBarcode)){ + IDCardInstance idCardInstance = idCardInstanceManager.getIDCardInstanceByBarcode(idCardBarcode); + if (packingManager.addTousseInstanceToIdCardInstance( + idCardInstance, null, tousseInstance)) { + Long useAmount = tousseInstance.getUseAmount(); + if (useAmount != null){ + idCardDefinitionUseAmount = useAmount.toString(); + } + + break; + } } - break; } + // 更新装配数量 + packingRecord.setAmount(tousseInstanceList.size()); + packingManager.saveOrUpdate(packingRecord); + } - // 更新装配数量 - packingRecord.setAmount(tousseInstanceList.size()); - packingManager.saveOrUpdate(packingRecord); - } - if (StringUtils.isNotBlank(printValue)) { - String fixedBarcode = ""; - if (!isTraceable) { - String tName = td.getName(); - fixedBarcode = tousseInstanceManager - .getTousseDefinitionFixedBarcode(tName); + if (StringUtils.isNotBlank(barcodes)) { + String fixedBarcode = ""; + if (!isTraceable) { + String tName = td.getName(); + fixedBarcode = tousseInstanceManager + .getTousseDefinitionFixedBarcode(tName); + } + retObj.put("success", true); + retObj.put("message", "保存成功"); + retObj.put("barcode", barcodes); + retObj.put("isPrint", isPrint); + retObj.put("isTraceable", isTraceable); + retObj.put("idCardDefinitionUseAmount", idCardDefinitionUseAmount); + retObj.put("fixedBarcode", fixedBarcode); + retObj.put("isDisinfection", isDisinfection); + retObj.put("disinfectionItem", materials); } - printValue = "{success:true,message:'保存成功',barcode:'" - + printValue.substring(0, printValue.length() - 1) - + "',isPrint:" + isPrint + ",isTraceable:" + isTraceable - + ",idCardDefinitionUseAmount:" + idCardDefinitionUseAmount - + ",fixedBarcode:'" + fixedBarcode + "',isDisinfection:" - + isDisinfection + ",disinfectionItem:[" - + disinfectionItemStr + "]}"; + } catch (Exception e) { + e.printStackTrace(); + retObj.put("success", false); + retObj.put("message", e.getMessage()); } HttpServletResponse httpServletResponse = StrutsParamUtils .getResponse(); httpServletResponse.setCharacterEncoding("UTF-8"); try { - httpServletResponse.getWriter().print(printValue); + httpServletResponse.getWriter().print(retObj.toString()); } catch (IOException e) { e.printStackTrace(); } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java =================================================================== diff -u -r12887 -r12958 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 12887) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 12958) @@ -118,6 +118,7 @@ return null; } + // 保存一次性物品定义 public String saveDiposableGoods() { if (diposableGoods != null) { // 设置拼音码 Index: ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js =================================================================== diff -u -r12895 -r12958 --- ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 12895) +++ ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 12958) @@ -1321,6 +1321,10 @@ waitMsg : '正在后台进行处理,请稍候', waitTitle : '提交表单', success : function(form, action) { + if(!action.result.success){ + showResult(action.result.message); + return; + } showResult('保存成功'); var isPrint = action.result.isPrint; var isTraceable = action.result.isTraceable; @@ -1348,7 +1352,11 @@ recordGrid.store.reload(); }, failure : function(form, action) { - MsgTip.msg('错误信息', action.failureType,true,3); + if(!isUndefinedOrNullOrEmpty(action.result.message)){ + showResult(action.result.message); + }else{ + MsgTip.msg('错误信息', action.failureType,true,3); + } } }); }