Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java =================================================================== diff -u -r17944 -r17989 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 17944) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 17989) @@ -328,7 +328,10 @@ * 是否有未补充的材料 */ private Boolean haveUnSupplementMaterials; - + /** + * 备注,目前只有装配那里会添加 + */ + private String remark; public static final String[] filterProperties = { "handler", "hibernateLazyInitializer", "fieldHandler", "materialInstances", "sterilizationRecords", "isUploadImage", "isUploadVideo", "images", @@ -1405,7 +1408,13 @@ public void setHaveUnSupplementMaterials(Boolean haveUnSupplementMaterials) { this.haveUnSupplementMaterials = haveUnSupplementMaterials; } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } - - } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/packing/rePrintBarcodeWin.js =================================================================== diff -u -r17770 -r17989 --- ssts-web/src/main/webapp/disinfectsystem/packing/rePrintBarcodeWin.js (.../rePrintBarcodeWin.js) (revision 17770) +++ ssts-web/src/main/webapp/disinfectsystem/packing/rePrintBarcodeWin.js (.../rePrintBarcodeWin.js) (revision 17989) @@ -109,6 +109,7 @@ {name : 'maker'}, {name : 'assistant'}, {name : 'weight'}, + {name : 'remark'}, {name : 'applicantDepart'}, {name : 'isUrgentTousse'}, {name : 'haveUnSupplementMaterials'} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r17971 -r17989 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 17971) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 17989) @@ -1096,7 +1096,7 @@ int implantAmount, String department, String printOrgSource, Long idCardDefinitionUseAmount, ObjectDao objectDao, String barcodePaperType, String washOperator, - String washOperatorCode, String weight, int printAmount,boolean haveUnSupplementMaterials,String isUrgentTousse) { + String washOperatorCode, String weight,String remark, int printAmount,boolean haveUnSupplementMaterials,String isUrgentTousse) { JSONObject obj = new JSONObject(); obj.put("tousseName", tousseName); // 名称 obj.put("tousseDefinition", tdJson); @@ -1146,6 +1146,7 @@ obj.put("sterilizationDate", sterileDateToPrint); obj.put("markTousse", markTousse); obj.put("weight", weight); + obj.put("remark", remark); obj.put("printAmount", printAmount); String packTime = com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(operationTime); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r17808 -r17989 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 17808) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 17989) @@ -818,7 +818,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),department, td.getPrintOrgSource(),idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousseInstance.getWashOperator(),tousseInstance.getWashOperatorCode(), - tousseInstance.getWeight(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse()); + tousseInstance.getWeight(),tousseInstance.getRemark(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse()); // 特殊单的包实例处理 if(tousseInstance.getForeignProxyItem_id() != null){ ForeignProxyDisinfection foreignProxyDisinfection = tousseInstance.getForeignProxyDisinfection(objectDao); @@ -967,6 +967,7 @@ obj.put("isMarkTousse", isMarkTousse); obj.put("status", tousseInstance.getStatus()); obj.put("weight", tousseInstance.getWeight()); + obj.put("remark", tousseInstance.getRemark()); //是否打印科室及科室名称 obj.put("printOrgSource", td.getPrintOrgSource()); obj.put("isUrgentTousse", tousseInstance.getIsUrgentTousse()); @@ -2184,7 +2185,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),TousseInstanceUtils.getTousseInstanceDepartForPrint(tousseInstance) , td.getPrintOrgSource(), idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousseInstance.getWashOperator(),tousseInstance.getWashOperatorCode(), - tousseInstance.getWeight(),1,BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse());// TODO 需要确认审核后打印,是否也支持打印多份 + tousseInstance.getWeight(),tousseInstance.getRemark(),1,BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse());// TODO 需要确认审核后打印,是否也支持打印多份 toussesArray.add(obj); JSONObject logObj = new JSONObject(); JSONUtil.addLogProperty(logObj, "tousseInstanceId", tousseInstance.getId()); @@ -2546,7 +2547,7 @@ String reviewer, String reviewerCode,String sterileUserName,String sterileUserCode, String sterilingType,String sterilizer, String frequency, String stock, JSONArray splitPackages,TousseDefinition td, PackingRecord packingRecord, String washBasket,ForeignTousseApplication foreignTousseApplication,String orgUnitCoding, - String orgUnitName, Date packingDate,String tousseWeight,PackingTask currentPackingTask,Map idToWashRecordMap, + String orgUnitName, Date packingDate,String tousseWeight,String remark, PackingTask currentPackingTask,Map idToWashRecordMap, Map idToRecyclingRecordMap,Date sterileStartTime) { // 外来器械拆包后价格从系统参数拿 @@ -2614,7 +2615,7 @@ tousseDefinition, tousseType, tousseName, foreignTousseApplication, packingDate, foreignTprice, fluctuationPrice, tousseAmount, orgUnitCoding, orgUnitName, - isUnTraceableTousse, barcodeStr ,tousseWeight, currentPackingTask,idToWashRecordMap,idToRecyclingRecordMap,washJson,null,null); + isUnTraceableTousse, barcodeStr ,tousseWeight,remark, currentPackingTask,idToWashRecordMap,idToRecyclingRecordMap,washJson,null,null); tousseInstanceManager.saveOrUpdate(tousseInstance); @@ -2634,6 +2635,7 @@ tousse.put("washOperator", tousseInstance.getWashOperator()); tousse.put("washOperatorCode", tousseInstance.getWashOperatorCode()); tousse.put("weight", tousseWeight); + tousse.put("remark", remark); tousse.put("printAmount", td.getPrintAmount()); tousse.put("isUrgentTousse", tousseInstance.getIsUrgentTousse()); } @@ -3181,6 +3183,7 @@ String confirmContinue = JSONUtil.optString(paramsObj, "confirmContinue", null); String urgentAmountStr = JSONUtil.optString(paramsObj, "urgentAmount", null); String tousseWeight = JSONUtil.optString(paramsObj, "tousseWeight", null); + String remark = JSONUtil.optString(paramsObj, "remark", null); Long comboTousseInstanceId = JSONUtil.optLong(paramsObj, "comboTousseInstanceId", null); String comboTousseInstanceStatus = JSONUtil.optString(paramsObj, "comboTousseInstanceStatus", null); @@ -3455,7 +3458,7 @@ packingSplitPackages(operator, operatorCode, reviewer, reviewerCode,sterileUserName, sterileUserCode, sterilingType, sterilizerName, sterileFrequency, stock,splits, td,packingRecord, washBasket,foreignTousseApplication, orgUnitCoding,orgUnitName, - packingDate,tousseWeight, currentPackingTask,idToWashRecordMap,idToRecyclingRecordMap,sterileStartTime); + packingDate,tousseWeight,remark, currentPackingTask,idToWashRecordMap,idToRecyclingRecordMap,sterileStartTime); currentPackingTaskAsList = packingTasks; } else { @@ -3524,7 +3527,7 @@ td, tousseType,tousseName,foreignTousseApplication,packingDate, packingAmountForThisTask, toussePrice, fluctuationPrice,tousseAmount, orgUnitCoding,orgUnitName,basketBarcode, !isTraceable, confirmContinue,tousseInstances,withoutReviewingAndSterilingTousseInstanceList, - idToWashRecordMap, idToRecyclingRecordMap,urgentAmountJson,taskGroup,tousseWeight,comboTousseInstanceId,comboTousseInstanceStatus); + idToWashRecordMap, idToRecyclingRecordMap,urgentAmountJson,taskGroup,tousseWeight,remark,comboTousseInstanceId,comboTousseInstanceStatus); needPackingAmount -= currentPackingTask.getUnPackAmount(); @@ -3592,7 +3595,7 @@ tousse.optInt("toolAmount"), tousse.optInt("implantAmount"),tousse.optString("department"), td.getPrintOrgSource(),0L,objectDao,td.getBarcodePaperType(),tousse.optString("washOperator"),tousse.optString("washOperatorCode"), - tousse.optString("weight"),tousse.optInt("printAmount"),false,tousse.optString("isUrgentTousse")); + tousse.optString("weight"),tousse.optString("remark"),tousse.optInt("printAmount"),false,tousse.optString("isUrgentTousse")); toussesArray.add(obj); @@ -3654,7 +3657,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),TousseInstanceUtils.getTousseInstanceDepartForPrint(tousse), td.getPrintOrgSource(),idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousse.getWashOperator(),tousse.getWashOperatorCode(), - tousse.getWeight(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousse.getHaveUnSupplementMaterials(), false),tousse.getIsUrgentTousse()); + tousse.getWeight(),tousse.getRemark(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousse.getHaveUnSupplementMaterials(), false),tousse.getIsUrgentTousse()); toussesArray.add(obj); } @@ -3960,7 +3963,7 @@ Integer currentPackAmount, double toussePrice,double fluctuationPrice, Integer tousseAmount,String orgUnitCoding, String orgUnitName, String basketBarcode,boolean unTraceableTousse, String confirmContinue,List tousseInstances, List withoutReviewingAndSterilingTousseInstanceList,Map idToWashRecordMap, - Map idToRecyclingRecordMap,JSONObject urgentAmountJson,String taskGroup,String tousseWeight,Long comboTousseInstanceId,String comboTousseInstanceStatus) { + Map idToRecyclingRecordMap,JSONObject urgentAmountJson,String taskGroup,String tousseWeight,String remark,Long comboTousseInstanceId,String comboTousseInstanceStatus) { JSONObject obj = new JSONObject(); long t1 = System.currentTimeMillis(); @@ -4053,7 +4056,7 @@ operatorCode, reviewer, reviewerCode,sterileUserName,sterileUserCode, packageType,sterilingType, stock, washBasket, sterilizerName, sterileFrequency, sterileStartTime, validUntil, warningUntil, packingRecordId, tousseDefinition, tousseType, tousseName,foreignTousseApplication, packingDate, toussePrice, - fluctuationPrice, tousseAmount, orgUnitCoding, orgUnitName,unTraceableTousse, barcodeStr, tousseWeight, + fluctuationPrice, tousseAmount, orgUnitCoding, orgUnitName,unTraceableTousse, barcodeStr, tousseWeight,remark, prePackingTask,idToWashRecordMap,idToRecyclingRecordMap,washJson,comboTousseInstanceId,comboTousseInstanceStatus); if(prePackingTask != null){ @@ -4359,7 +4362,7 @@ ForeignTousseApplication foreignTousseApplication, Date packingDate, double toussePrice, double fluctuationPrice, Integer tousseAmount, String orgUnitCoding, String orgUnitName, - boolean unTraceableTousse, String barcodeStr, String tousseWeight, + boolean unTraceableTousse, String barcodeStr, String tousseWeight,String remark, PackingTask currentPackingTask, Map idToWashRecordMap, Map idToRecyclingRecordMap, @@ -4368,6 +4371,7 @@ tousseInstance.setBarcode(barcodeStr); tousseInstance.setWeight(tousseWeight); + tousseInstance.setRemark(remark); tousseInstance.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); tousseInstance.setSterilizationUser(sterileUserName); tousseInstance.setSterilizationUserCode(sterileUserCode); @@ -4472,8 +4476,8 @@ String whereSql = " where po.barcode = '" + barcode + "'"; QualityMonitoringInstance qmi = (QualityMonitoringInstance)objectDao.getBySql(QualityMonitoringInstance.class.getSimpleName(), whereSql); if(qmi != null){ - String remark = qmi.getRemark(); - qmi.setRemark("重新装配条码 : " + barcodeStr + " " + remark); + String qmiRemark = qmi.getRemark(); + qmi.setRemark("重新装配条码 : " + barcodeStr + " " + qmiRemark); objectDao.saveOrUpdate(qmi); } } @@ -5640,7 +5644,7 @@ isTraceable = false; } } - + String remark = null; return CssdUtils.getTousseObjForPrint(td.getName(), tdJson, subBarcodeArray, null, td.getTousseType(), td.getPackageType(), packageTypeAbbreviation, td.getSterilingMethod(), @@ -5652,7 +5656,7 @@ ti.getOperationTime(), false, false, true, isReview, isTraceable, td.getIsBigPackage(), "", null, 0l, "", 0, 0, "", TousseDefinition.PRINGORGSOURCE_NONE, 0l, objectDao, td.getBarcodePaperType(), "", "", - "", td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(ti.getHaveUnSupplementMaterials(), false),ti.getIsUrgentTousse()); + "",remark, td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(ti.getHaveUnSupplementMaterials(), false),ti.getIsUrgentTousse()); } private JSONObject getTousseDefinitionPrintJsonForComboTousse( Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js =================================================================== diff -u -r17163 -r17989 --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js (.../dataSource.js) (revision 17163) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js (.../dataSource.js) (revision 17989) @@ -202,6 +202,10 @@ propName: 'hospitalName', displayName: '医院名称', textForPreview: '广东省人民医院' + }),new ObjectDataSourceProperty({ + propName: 'remark', + displayName: '备注', + textForPreview: '缺一把剪刀' })] }); objectDataSourceManager.registerDataSource(normalTousseDataSource); Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r17622 -r17989 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 17622) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 17989) @@ -1241,6 +1241,18 @@ typeAhead : false, allowBlank : true },{ + columnWidth :.5, + xtype : 'textfield', + fieldLabel : '备注', + componentCls:'formItemMgn', + id : 'remark', + name : 'remark', + maxLength : '100', + labelWidth:60, + anchor : '95%', + allowBlank : true, + labelAlign:'right' + },{ columnWidth :.99, xtype : 'panel', border: false, @@ -1703,6 +1715,12 @@ hideScanIDCardBarcode(); // 只要左边有选中的项,那么隐藏标识牌输入框 } } +function getSelAmount(){ + var basketTree = Ext4.getCmp('basketTreeGrid'); + var waitPackingTreeGrid = Ext4.getCmp('waitPackingTreeGrid'); + var selAmount = basketTree.getView().getChecked().length + waitPackingTreeGrid.getView().getChecked().length; + return selAmount; +} // 设置包装类型只读 function setPackageTypeReadOnlyByCondition(){ var bRet = false; @@ -1740,6 +1758,19 @@ return bRet; } +// 清空备注 +function clearRemarkByCondition(){ +// var bRet = false; +// var basketTree = Ext4.getCmp('basketTreeGrid'); +// var waitPackingTreeGrid = Ext4.getCmp('waitPackingTreeGrid'); +// var selNodes = basketTree.getView().getChecked(); +// var selLength = selNodes.length; +// +// var selCount = basketTree.getView().getChecked().length + waitPackingTreeGrid.getView().getChecked().length; +// if(selCount > 1){ +// Ext4.getCmp('remark').setValue(); +// } +} function deselectCheckAll(){ var checkAllTaskNode = Ext4.getCmp('checkAllTaskNode'); checkAllTaskNode.setValue(false); @@ -1894,6 +1925,7 @@ packed = packingTousse(false,basketBarcode,taskId,tousseName,tousseType,1,packageType,sterilingType,supplierName,department,urgentAmount); if(packed){ addTaskItemsToDelete(tousseItemsToDelete,tousseName,taskId,1); + Ext4.getCmp('remark').setValue(); } // 一次打印 printLabelsAfterPacking(); @@ -2028,6 +2060,43 @@ } return bRet; } +function validateRemark(){ + + var remark = Ext4.getCmp('remark'); + if(isUndefinedOrNullOrEmpty(remark)){ + return true; + } + var totalPackingAmount = 0; + var basketTree = Ext4.getCmp('basketTreeGrid'); + var waitPackingTreeGrid = Ext4.getCmp('waitPackingTreeGrid'); + { + var selNodes = basketTree.getView().getChecked(); + var selLength = selNodes.length; + // 遍历器械包节点 + Ext4.each(selNodes, function(pNode){ + var packingAmount = pNode.get('amount'); + if(packingAmount > 0){ + totalPackingAmount += packingAmount; + } + }); + } + { + // 选择统计的敷料包选项全打印 + var selNodes = waitPackingTreeGrid.getView().getChecked(); + var selLength = selNodes.length; + Ext4.each(selNodes, function(pNode) { + var packingAmount = pNode.get('amount'); + if(packingAmount > 0){ + totalPackingAmount += packingAmount; + } + }); + } + if(totalPackingAmount > 1){ + showResult("备注不为空时,只能装配一个包!"); + return false; + } + return true; +} var packing = false; // 装配按钮调用 function packingTousseBtnClick(){ @@ -2040,7 +2109,10 @@ // if(ifCheckedPackingTasksHaveEmptyPackageType()){ // return ; // } - + // 备注不为空时只能装配一个包实例 + if(!validateRemark()){ + return; + } // 首先处理标识牌的打印 var scanScanIDCardBarcode = Ext4.getCmp('scanIdCardBarcode'); if(scanScanIDCardBarcode.isVisible(true)){ @@ -2243,6 +2315,7 @@ showResult('请选择要打印的行!'); } } + Ext4.getCmp('remark').setValue(); Ext4.getCmp('sterilingType').setValue(null); Ext4.getCmp('packageType').setValue(null); Ext4.getCmp('packageType').enable(); @@ -2315,7 +2388,7 @@ return false; } } - + var remark = Ext4.getCmp('remark').getValue(); var params = { taskIds: taskIds, inspector: inspector, @@ -2342,7 +2415,8 @@ frequency: frequency, confirmContinue: '', urgentAmount: urgentAmount, - tousseWeight: tousseWeight + tousseWeight: tousseWeight, + remark: remark } DWREngine.setAsync(false); // 调用服务端的装配器械包的代码 @@ -2598,6 +2672,7 @@ checkchange:function( node, checked, eOpts ){ resetScanIDCardBarcodeVisibility(node); setPackageTypeReadOnlyByCondition(); + clearRemarkByCondition(); if(!checked){ deselectCheckAll(); } @@ -2858,6 +2933,7 @@ checkchange:function( node, checked, eOpts ){ resetScanIDCardBarcodeVisibilityWaitPacking(node); setPackageTypeReadOnlyByCondition(); + clearRemarkByCondition(); }, itemcontextmenu : taskItemMenu },