Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r27395 -r27523 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 27395) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 27523) @@ -830,13 +830,21 @@ public void showApplicationAndRecyclingItems(){ JSONObject result = JSONUtil.buildJsonObject(false); Long useRecordId = StrutsParamUtils.getPraramLongValue("useRecordId", null); - if(DatabaseUtil.isPoIdValid(useRecordId)){ - //查询该使用记录转换申请单的项及回收的包实例(根据配置项) - result = useRecordManager.getRecycledTousseAndConvertApplicationRecyclingItems(useRecordId); - }else{ - JSONUtil.addMessage(result, "参数useRecordId为空,请检查"); + try{ + if(DatabaseUtil.isPoIdValid(useRecordId)){ + //查询该使用记录转换申请单的项及回收的包实例(根据配置项) + result = useRecordManager.getRecycledTousseAndConvertApplicationRecyclingItems(useRecordId); + }else{ + JSONUtil.addMessage(result, "参数useRecordId为空,请检查"); + } + }catch(RuntimeException e){ + JSONUtil.addMessage(result, e.getMessage()); + }catch(Exception e){ + e.printStackTrace(); + JSONUtil.addMessage(result, "后台程序运行异常,请联系管理员!"); + }finally{ + StrutsResponseUtils.output(result); } - StrutsResponseUtils.output(result); } } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java =================================================================== diff -u -r27395 -r27523 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java (.../UseRecordTableManager.java) (revision 27395) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java (.../UseRecordTableManager.java) (revision 27523) @@ -174,7 +174,11 @@ JSONArray newRowsJSONArray = new JSONArray(); for (int i = 0; i < rowsJSONArray.size(); i++) { JSONObject data = rowsJSONArray.optJSONObject(i); - data.put("recyclingStatus", useRecordJsonObject.optString(String.valueOf(data.optLong("id")))); + //深圳肿瘤的需求,如果手工设置回收状态操作人并且手工设置回收状态操作时间都为空,则取转换的申请单的状态,否则用使用记录本身的回收状态 + if(data.opt("manualSetRecyclingStatusUser") == null + && data.opt("manualSetRecyclingStatusTime") == null){ + data.put("recyclingStatus", useRecordJsonObject.optString(String.valueOf(data.optLong("id")))); + } newRowsJSONArray.add(data); } jsonData.put(JSONUtil.JSON_KEY_ROWS,newRowsJSONArray); Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js =================================================================== diff -u -r27395 -r27523 --- ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js (.../useRecordView.js) (revision 27395) +++ ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js (.../useRecordView.js) (revision 27523) @@ -616,7 +616,20 @@ || result.recycledTousses && result.recycledTousses.length > 0){ displayRecyclingInfo(result); }else{ - showResult("无回收信息"); + var noticeMessage = "无回收信息"; + if(result.data && + (result.data.manualSetRecyclingStatusUser + || result.data.manualSetRecyclingStatusTime)){ + noticeMessage += ","; + if(result.data.manualSetRecyclingStatusTime){ + noticeMessage += " " + new Date(result.data.manualSetRecyclingStatusTime.time).format("Y-m-d H:i:s"); + } + if(result.data.manualSetRecyclingStatusUser){ + noticeMessage += " " + result.data.manualSetRecyclingStatusUser; + } + noticeMessage += " 手工设置为已回收"; + } + showResult(noticeMessage); } } }, @@ -759,9 +772,27 @@ }}] }); recyclingWin.show(); - if(lastRecyclingTime){ - top.Ext.getCmp('lastRecyclingTime').setText("最后回收时间:"+lastRecyclingTime); + + var displayMessage = ""; + if(recyclingData.data && + (recyclingData.data.manualSetRecyclingStatusUser + || recyclingData.data.manualSetRecyclingStatusTime)){ + if(recyclingData.data.manualSetRecyclingStatusTime){ + displayMessage += new Date(recyclingData.data.manualSetRecyclingStatusTime.time).format("Y-m-d H:i:s"); + } + if(recyclingData.data.manualSetRecyclingStatusUser){ + if(displayMessage){ + displayMessage += " " + recyclingData.data.manualSetRecyclingStatusUser; + }else{ + displayMessage = recyclingData.data.manualSetRecyclingStatusUser; + } + } + displayMessage += " 手工设置为已回收"; } + if(displayMessage && lastRecyclingTime){ + displayMessage += ",最后回收时间:"+lastRecyclingTime; + } + top.Ext.getCmp('lastRecyclingTime').setText(displayMessage); } /*Annie-e*/ Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r27456 -r27523 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 27456) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 27523) @@ -6839,13 +6839,18 @@ JSONObject obj = new JSONObject(); obj.put(JSONUtil.JSON_KEY_SUCCESS, false); try{ + String loginUserName = AcegiHelper.getLoginUser().getUserFullName(); + Date nowTime = new Date(); for (String id : ids) { UseRecord useRecord = getForUpdate(id); if(null == useRecord){ obj.put(JSONUtil.JSON_KEY_MESSAGE, "未找到ID为" + id + "的使用记录,请刷新页面后重试!"); return obj; } useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_RECYCLED); + //手工设置回收状态的操作人及操作时间 + useRecord.setManualSetRecyclingStatusUser(loginUserName); + useRecord.setManualSetRecyclingStatusTime(nowTime); saveOrUpdateUseRecord(useRecord); JSONObject jsonLog = new JSONObject(); JSONUtil.addLogProperty(jsonLog, "使用记录id", useRecord.getId()); @@ -7704,6 +7709,10 @@ @Override public JSONObject getRecycledTousseAndConvertApplicationRecyclingItems( Long useRecordId) { + UseRecord useRecord = get(useRecordId); + if(useRecord == null){ + throw new SystemException(String.format("id为【%s】的使用记录已不存在.",useRecordId)); + } JSONObject result = null; //查询使用记录回收状态的计算依据配置项(1:器械包实例(目前只有绑定标识牌的包能过扫标识牌条码回收) 2:转换后的申请单 3:器械包实例与转换后的申请单) int useRecordRecyclingStatusCalcBasis = CssdUtils.getSystemSetConfigByNameInt("useRecordRecyclingStatusCalcBasis",0); @@ -7724,6 +7733,8 @@ result.put("recycledTousses", tousseInstanceRecyclingDetail.optJSONArray(String.valueOf(useRecordId))); } } + //使用记录的基本信息设置到result + JSONUtil.addDataProperty(result, useRecord.toString()); return result; }