Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r14604 -r14605 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 14604) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 14605) @@ -711,7 +711,7 @@ } @Override - public void saveOrUpdate(RecyclingRecord record,JSONObject params) { + public synchronized void saveOrUpdate(RecyclingRecord record,JSONObject params) { Map idToTDMap = new HashMap(); Map containerMap = new HashMap(); @@ -727,6 +727,7 @@ JSONArray damages = params.optJSONArray("damages"); //是否确认 boolean confirmation = params.optBoolean("confirmation"); + List tousseItemJson = getTousseItemJsonArray(basketItemJson,record); InvoicePlan application = record.getRecyclingApplication(); @@ -1018,7 +1019,7 @@ idCardPackingTask.setIdCardInstanceID(idCardInstance.getId()); idCardPackingTask.setPackingTaskID(task.getId()); //包实例改成已回收状态 - setIDCardTousseInstanceRecycledStatus(idCardTousseInstance); + setIDCardTousseInstanceRecycledStatus(idCardTousseInstance,idCardBarcode); packingManager.saveOrUpdate(idCardPackingTask); } else { if (idCardPackingTask != null) { @@ -1082,13 +1083,15 @@ } } - private void setIDCardTousseInstanceRecycledStatus(TousseInstance lastOperatedTousseInstance) { + private void setIDCardTousseInstanceRecycledStatus(TousseInstance lastOperatedTousseInstance,String idCardBarcode) { if (lastOperatedTousseInstance != null) { String instanceStatus = lastOperatedTousseInstance.getStatus(); if((TousseInstance.STATUS_SHIPPED.equals(instanceStatus) || TousseInstance.STATUS_USED.equals(instanceStatus) || TousseInstance.STATUS_SIGNED .equals(instanceStatus))){ lastOperatedTousseInstance.setStatus(TousseInstance.STATUS_RECYCLED); + }else if(TousseInstance.STATUS_RECYCLED.equals(instanceStatus)){ + throw new RuntimeException(idCardBarcode + ",该条码已回收!"); } } }