Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r16845 -r16868 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16845) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16868) @@ -591,7 +591,7 @@ } List tousseInstances = objectDao.findBySql( TousseInstance.class.getSimpleName(), "where po.useRecord_id=" - + useRecordId); + + useRecordId + " order by useRecordSortNumber"); return tousseInstances; } Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js =================================================================== diff -u -r16651 -r16868 --- ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 16651) +++ ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 16868) @@ -176,7 +176,7 @@ includeImplant : goodsInfo.includeImplant, actualUsed : goodsInfo.actualUsed }); - tousseInstanceStore.add(record); + tousseInstanceStore.insert(0 , record); useAmount++; top.Ext.getCmp('useAmount').setValue(useAmount); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java =================================================================== diff -u -r16848 -r16868 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 16848) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 16868) @@ -48,6 +48,7 @@ ,@Index(columnList = "idCardInstanceID", name = "idCardInstanceID_index"),@Index(columnList = "operationTime", name = "operationTime_index") ,@Index(columnList = "unTraceableTousse", name = "unTraceableTousse_index"),@Index(columnList = "tousseFixedBarcode", name = "tousseFixedBarcode_index") ,@Index(columnList = "comboTousseInstanceId", name = "comboTousseInstanceId_index"),@Index(columnList = "comboTousseDefinitionId", name = "comboTousseDefinitionId_index") +,@Index(columnList = "useRecordSortNumber", name = "useRecordSortNumber_index") }) @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @JsonFilter("fieldFilter") @@ -191,6 +192,11 @@ private Long useRecord_id; + /** + * 位于使用记录的顺序号 + */ + private Integer useRecordSortNumber; + private Long invoice_id; // 关联外来器械申请单 @@ -580,6 +586,14 @@ this.useRecord_id = useRecord_id; } + public Integer getUseRecordSortNumber() { + return useRecordSortNumber; + } + + public void setUseRecordSortNumber(Integer useRecordSortNumber) { + this.useRecordSortNumber = useRecordSortNumber; + } + public Long getInvoice_id() { return invoice_id; } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r16654 -r16868 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 16654) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 16868) @@ -411,14 +411,14 @@ } } - private void lockTousseInstances(Set tousseInstanceIDSet, + private void lockTousseInstances(List tousseInstanceIDList, Map tousseInstancesMap) { // 锁定并获取器械包 List lockedTousseInstanceList = objectDao .findByIds_ForUpdate(TousseInstance.class.getSimpleName(), - tousseInstanceIDSet); + tousseInstanceIDList); if (lockedTousseInstanceList == null - || lockedTousseInstanceList.size() != tousseInstanceIDSet + || lockedTousseInstanceList.size() != tousseInstanceIDList .size()) { throw new RuntimeException("部分器械包实例已被删除!"); } @@ -528,7 +528,7 @@ fetchTousseInstanceIDs(originalTousseInstanceIDs, originalItemList); fetchTousseInstanceIDs(tousseInstanceIDs, itemList); - Set tousseInstanceIDSet = new HashSet( + List tousseInstanceIDSet = new ArrayList( CollectionUtils.union(originalTousseInstanceIDs, tousseInstanceIDs)); lockTousseInstances(tousseInstanceIDSet, tousseInstancesMap); @@ -713,14 +713,14 @@ Map modifiedTousseInstanceMap = new HashMap(); List tousseInstanceList = modified .getTousseInstanceList(); - Set tousseInstanceIDSet = new HashSet(); - fetchTousseInstanceIDs(tousseInstanceIDSet, tousseInstanceList); + List tousseInstanceIDList = new ArrayList(); + fetchTousseInstanceIDs(tousseInstanceIDList, tousseInstanceList); fetchModifiedTousseInstanceMap(modifiedTousseInstanceMap,tousseInstanceList); // 锁定并获取器械包 - lockTousseInstances(tousseInstanceIDSet, tousseInstancesMap); + lockTousseInstances(tousseInstanceIDList, tousseInstancesMap); Collection updatedTousseInstances = new ArrayList<>( - tousseInstanceIDSet.size()); - newUseRecordsForUseRecord(modified, tousseInstancesMap, tousseInstanceIDSet, + tousseInstanceIDList.size()); + newUseRecordsForUseRecord(modified, tousseInstancesMap, tousseInstanceIDList, updatedTousseInstances,modifiedTousseInstanceMap); updateDepartmentUsedStock(modified, updatedTousseInstances); } @@ -737,6 +737,7 @@ Collection tousseInstanceIDSet, Collection updatedTousseInstances,Map modifiedTousseInstanceMap ) { int updateObjectCount = 0; + int index = updatedTousseInstances.size(); for (Long id : tousseInstanceIDSet) { TousseInstance tousseInstance = tousseInstancesMap.get(id); TousseInstance modifiedTousseInstance = modifiedTousseInstanceMap.get(id); @@ -745,7 +746,8 @@ } // 设置器械包实例与使用记录的关联关系 tousseInstance.setUseRecord_id(useRecord.getId()); - + //设置所在使用记录的位置 + tousseInstance.setUseRecordSortNumber(++index); tousseInstance.validateStatusForAddUseRecord();// 状态校验 tousseInstance.setStatus(TousseInstance.STATUS_USED); tousseInstance.validateAssociatedInfoForUseRecord(); @@ -1677,7 +1679,7 @@ * @return */ public String submitByPatientNumber(String patientNumber,String applicant) { - logger.info("更新该病历的器械包使用记录接口:patientNumber=" + patientNumber+",applicant="+applicant); + logger.debug("更新该病历的器械包使用记录接口:住院号patientNumber=" + patientNumber+",申请人applicant="+applicant); final JSONObject jsonObject = new JSONObject(); final List succUserecordIdList = new ArrayList();//回调执行成功的使用记录id final List failUserecordIdList = new ArrayList();//回调执行失败的使用记录id @@ -2159,12 +2161,12 @@ failReceiveIdList.add(rs.getString("receive_id")); continue; } - if(tousseInstance.getUseRecord_id() != null){ + /*if(tousseInstance.getUseRecord_id() != null){ success = false; message.append("条码:" + barCode + "在消毒供应系统已生成使用记录。"); //已生成使用记录的器械包不更新为失败 continue; - } + }*/ innerMap.put(rs.getString("receive_id"), new String[] { rs.getString("exec_dept_code"), rs.getString("exec_dept_name"), rs.getString("doc_name"),rs.getString("patient_name"), @@ -2177,10 +2179,10 @@ }); if(map != null && CollectionUtils.isNotEmpty(map.keySet())){ generateUseRecordAndCreateRecyclingApplicationForZsly(map , applicant , succReceiveIdList); - }else{ + }/*else{ jsonObject.put("return", "0"); jsonObject.put("errMsg", "未找到相关医嘱信息或医嘱信息表的条码关联不到消毒供应系统的器械包条码"); - } + }*/ }else if(StringUtils.isBlank(patientNumber)){ jsonObject.put("return", "0"); jsonObject.put("errMsg", "住院号参数为空"); @@ -2228,7 +2230,7 @@ Date now = new Date(); for(String key : map.keySet()){ String[] objectArray = map.get(key); - succReceiveIdList.add(objectArray[4]); + succReceiveIdList.add(key); //同步病人信息 PatientInfoVO patientInfo = null; @@ -2420,7 +2422,7 @@ * @param receiveIdList 医嘱信息编号集合 */ private void updateRecordStatusForZsly(boolean success , List receiveIdList){ - String sql = "update sm_mate_advice set status = " + + String sql = "update sm_mate_advice set update_time=getDate(), status = " + (success ? 1 : 0) + " where 1=2"; if(CollectionUtils.isNotEmpty(receiveIdList)){ String receiveIds = ""; @@ -2502,12 +2504,14 @@ failReceiveIdList.add(rs.getString("receive_id")); continue; } - if(tousseInstance.getUseRecord_id() != null){ + /*if(tousseInstance.getUseRecord_id() != null){ success = false; message.append("条码:" + barCode + "在消毒供应系统已生成使用记录。"); //已生成使用记录的器械包不更新为失败 continue; - } + }*/ + //更新中间表的更新时间 + innerMap.put(rs.getString("receive_id"), new String[] { rs.getString("exec_dept_code"), rs.getString("exec_dept_name"), rs.getString("doc_name"),rs.getString("patient_name"), Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r16654 -r16868 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 16654) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 16868) @@ -183,6 +183,8 @@ tousseInstance.setBarcode(barcode); tousseInstance.setIsUrgentForUseRecord(JSONUtil.optString(obj, "isUrgentForUseRecord", Constants.STR_NO)); tousseInstance.setActualUsed(JSONUtil.optString(obj, "actualUsed", Constants.STR_YES)); + //设置使用记录顺序号 + tousseInstance.setUseRecordSortNumber(i + 1); tousseInstanceList.add(tousseInstance); } }