Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js =================================================================== diff -u -r29018 -r29031 --- ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 29018) +++ ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 29031) @@ -23,9 +23,13 @@ /** * 加急加急级别数据,格式如下: * hasLoaded:true|false, //加载过一次后该值将设为true,后面将不再加载。用于第一次扫物品条码时先进行加载,完成后再调条码接口 - * data:[{id:1,urgentLevel:"一般",id:2,urgentLevel:"较急"}] + * data:[{id:1,urgentLevel:"一般"},{id:2,urgentLevel:"较急"}] + * defaultUrgentLevel:{id:2,urgentLevel:"较急",default:"是"} + * lowestGradeUrgentLevel:{id:1,urgentLevel:"一般"} */ var urgentLevelData = {}; +//加急急别的json键值对,key为加急急别的id,值为加载对象的json +var urgentLevelDataMap = {}; var rd = new Ext.data.JsonReader( { fields : [ @@ -41,10 +45,13 @@ {name : 'showTousseName'}, {name : 'tousseType'}, {name : 'foreignTousseApp_id'}, + {name : 'urgentLevel'}, + {name : 'urgentLevelForUseRecord'}, {name : 'urgentLevelIdForUseRecord'},//由是否加急改为加急急别 {name : 'includeImplant'}, {name : 'actualUsed'}, {name : 'isRecycling'}, + {name : 'status'},//状态列,用于判断该录入的包是否为新扫描的包还是已保存的使用记录里录入了包 {name : 'isConvertApplyGoods'}, {name : 'haveUnSupplementMaterials'}, {name : 'tousseMaterialErrorDamageJsonData'}, @@ -138,6 +145,7 @@ {name : 'batchNo'}, {name : 'includeImplant'}, {name : 'haveUnSupplementMaterials'}, + {name : 'urgentLevel'}, //聚合包的子包需要用到的 {name : 'subTousseDefinitionId'},//聚合包里的子包包定义id {name : 'comboTousseInstanceId'},//聚合包的包实例id @@ -1056,15 +1064,54 @@ */ function urgentLevelSelect(barcode,urgentLevelId){ var tousseInstanceGrid = top.Ext.getCmp('tousseInstanceGrid'); - var record = getTousseInstanceRecord(barcode,tousseInstanceGrid); + setUseItemsStoreRecordUrgentLevelId(tousseInstanceGrid,barcode,"urgentLevelIdForUseRecord",urgentLevelId); + /*var record = getTousseInstanceRecord(barcode,tousseInstanceGrid); if(record == null){ return; } - record.data.urgentLevelIdForUseRecord = urgentLevelId; + if(urgentLevelId){ + record.data.urgentLevelIdForUseRecord = urgentLevelId; + record.data.urgentLevelForUseRecord = urgentLevelDataMap[urgentLevelId]; + }else{ + delete record.data.urgentLevelForUseRecord; + }*/ //tousseInstanceGrid.getView().refresh(); } +/** + * 设置record的属性对应的值,并将该record移除后再添加进来 + * @parm gridObj + * @parm barcode + * @param propName + * @param urgentLevelId + */ +function setUseItemsStoreRecordUrgentLevelId(gridObj,barcode,propName,urgentLevelId){ + var store = gridObj.getStore(); + var foundRecord = null; + var position; + for(var i = 0;i < store.getCount();++i){ + var record = store.getAt(i); + if(record.data.barcode == barcode){ + foundRecord = record; + position = i; + break; + } + } + if(foundRecord != null){ + store.remove(foundRecord); + if(urgentLevelId){ + foundRecord.data[propName] = urgentLevelId; + foundRecord.data.urgentLevelForUseRecord = urgentLevelDataMap[urgentLevelId]; + }else{ + delete foundRecord.data[propName]; + delete foundRecord.data.urgentLevelForUseRecord; + } + store.insert(position,foundRecord); + } + +} + function actualUsedClick(barcode,value){ var tousseInstanceGrid = top.Ext.getCmp('tousseInstanceGrid'); var record = getTousseInstanceRecord(barcode,tousseInstanceGrid); @@ -1086,6 +1133,16 @@ if(result.success){ urgentLevelData.hasLoaded = true; urgentLevelData.data = result.data; + if(result.data && result.data.length > 0){ + urgentLevelData.lowestGradeUrgentLevel = result.data[0]; + for(var i = 0;i < result.data.length;i++){ + var urgentLevelDataItem = result.data[i]; + if(!urgentLevelData.defaultUrgentLevel && urgentLevelDataItem.urgentDefaultValue == '是'){ + urgentLevelData.defaultUrgentLevel = urgentLevelDataItem; + } + urgentLevelDataMap[urgentLevelDataItem.id] = urgentLevelDataItem; + } + } addAndEditUseRecordAfterUrgentLevelDataLoaded(id, status,recyclingStatus); }else{ if(!result.message){ @@ -1367,10 +1424,30 @@ //遍历所配置的所有启用的加急级别 if(urgentLevelData.data && urgentLevelData.data.length > 0){ + var status = record.data.status; var urgentLevelIdForUseRecord = record.data.urgentLevelIdForUseRecord; + //默认级别的加急 + var defaultUrgentLevel = urgentLevelData.defaultUrgentLevel; + //最低级别的加急 + var lowestGradeUrgentLevel = urgentLevelData.lowestGradeUrgentLevel; for(var i = 0;i < urgentLevelData.data.length;i++){ var urgentLevelDataId = urgentLevelData.data[i]["id"]; - urgentLevelComboHtml += ""; + //如果为新扫描的包,即包实例的status不为“已使用”时(新添加使用记录录入器械包时或打开已有的使用记录新扫描包时):加急级别下拉框的默认选中值的顺序为默认级别的加急、最低级别的加急 + //如果为已经录入到使用记录的包时,即包实例的status为“已使用”时(打开已有的使用记录加载使用记录已录入的包时),默认选中值为包实例 录使用记录时的加急级别 + if(status == '已使用' || urgentLevelIdForUseRecord){ + urgentLevelComboHtml += ""; + }else{ + var selected = ""; + //加急后的值为默认的加急级别,如果没有默认的加急级别,则为最低的加急级别的值.这一段需求已经不需要了,代码已写好先注释掉 + /*if(defaultUrgentLevel){ + if(defaultUrgentLevel.id == urgentLevelDataId){ + selected = "selected"; + } + }else if(lowestGradeUrgentLevel && lowestGradeUrgentLevel.id == urgentLevelDataId){ + selected = "selected"; + }*/ + urgentLevelComboHtml += ""; + } } } urgentLevelComboHtml += ""; @@ -2578,6 +2655,8 @@ var isUrgent = record.data['isUrgentForUseRecord']; var tousseType = record.data['tousseType']; var tousseDefinitionName = record.data['tousseDefinitionName']; + var urgentLevel = record.data['urgentLevel']; + var urgentLevelForUseRecord = record.data['urgentLevelForUseRecord']; var haveUnSupplementMaterials = record.data.haveUnSupplementMaterials; if(haveUnSupplementMaterials == true){ v = "◆ " + v; @@ -2586,8 +2665,15 @@ if(tousseType == '聚合包'){ v = "" + v + ""; } - if(tousseType != '一次性物品' && isUrgent == '是'){ - return "
" + v + "
"; + if(tousseType != '一次性物品'){ + if(urgentLevelForUseRecord && urgentLevelForUseRecord.colorCode){ + return "
" + v + "
"; + } + //加急后的值为默认的加急级别,如果没有默认的加急级别,则为最低的加急级别的值.这一段需求已经不需要了,代码已写好先注释掉 + /*if(urgentLevel && urgentLevel.colorCode){ + return "
" + v + "
"; + }*/ + return v; }else{ return v; } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r29016 -r29031 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 29016) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 29031) @@ -7573,6 +7573,8 @@ } { + //包的加急信息 + UrgentLevel urgentLevelOfTi = ti.getUrgentLevel(); List acceptStatus = new ArrayList<>(); //已发货未签收的包是否可以录使用记录 //boolean notSignedItemsCanRegistUseRecord = CssdUtils.getSystemSetConfigByNameBool("notSignedItemsCanRegistUseRecord"); @@ -7629,6 +7631,10 @@ JSONUtil.addProperty(obj, "materialInstances", td.getMaterialInstancesJsonArray()); //签收后录入使用记录 obj.put("registUseRecordAfterSigned", StringUtils.isBlank(ancestor.getRegistUseRecordAfterSigned()) ? Constants.STR_NO : ancestor.getRegistUseRecordAfterSigned()); + //包的加急信息 + if(urgentLevelOfTi != null){ + obj.put("urgentLevel", JSONObject.fromObject(urgentLevelOfTi)); + } }else{ obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包所属科室为" + ti.getLocationForDisplay() + ",未配置与当前科室共用,不能录入使用记录!"); return obj; @@ -7682,6 +7688,10 @@ JSONUtil.addProperty(obj, "materialInstances", td.getMaterialInstancesJsonArray()); //签收后录入使用记录 obj.put("registUseRecordAfterSigned", StringUtils.isBlank(ancestor.getRegistUseRecordAfterSigned()) ? Constants.STR_NO : ancestor.getRegistUseRecordAfterSigned()); + //包的加急信息 + if(urgentLevelOfTi != null){ + obj.put("urgentLevel", JSONObject.fromObject(urgentLevelOfTi)); + } }else{ obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包所属科室为" + ti.getLocationForDisplay() + ",不能录入使用记录!"); return obj; @@ -7721,6 +7731,10 @@ obj.put("type", "tousseInstance"); JSONObject dataJson = JSONObject.fromObject(ti, buildJsonConfigForTousseInstance()); + //包的加急信息 + if(urgentLevelOfTi != null){ + dataJson.put("urgentLevel", JSONObject.fromObject(urgentLevelOfTi)); + } obj.put("data", dataJson); // 判断包实例是否为聚合包 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java =================================================================== diff -u -r26395 -r29031 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java (.../UrgentLevel.java) (revision 26395) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java (.../UrgentLevel.java) (revision 29031) @@ -12,7 +12,6 @@ import org.hibernate.annotations.CacheConcurrencyStrategy; import com.forgon.Constants; -import com.forgon.tools.string.StringTools; /** * 加急等级。中山一院的需求,对加急分等级 Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r28972 -r29031 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 28972) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 29031) @@ -499,6 +499,7 @@ UrgentLevel urgentLevelForUseRecord = ti.getUrgentLevelForUseRecord(); if(urgentLevelForUseRecord != null){ obj.put("urgentLevelIdForUseRecord", urgentLevelForUseRecord.getId()); + obj.put("urgentLevelForUseRecord", JSONObject.fromObject(urgentLevelForUseRecord)); } array.add(obj); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/action/UrgentLevelAction.java =================================================================== diff -u -r26395 -r29031 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/action/UrgentLevelAction.java (.../UrgentLevelAction.java) (revision 26395) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/action/UrgentLevelAction.java (.../UrgentLevelAction.java) (revision 29031) @@ -122,10 +122,8 @@ List urgentLevels = urgentLevelManager.getAllExceptDisabled(); JSONArray array = new JSONArray(); for(UrgentLevel ul : urgentLevels){ - JSONObject json = new JSONObject(); - json.put("id", ul.getId()); + JSONObject json = JSONObject.fromObject(ul); json.put("urgentLevel", ul.getName()); - json.put("urgentDefaultValue", ul.getUrgentDefaultValue()); array.add(json); } StrutsResponseUtils.output(true, array);