Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r23873 -r23914 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23873) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23914) @@ -721,6 +721,13 @@ @Override public void saveOrUpdateRecyclingApplication(RecyclingApplication application,Boolean isCommit) { + /*simon-add:增加一个属性,用来表示申请单是否已提交过。 + * 如果committedStatus为true,说明已提交过;如果为false,说明application之前是暂存状态 + */ + boolean haveCommitted = false; + if(application.getCommittedStatus()!=null&&application.getCommittedStatus()){ + haveCommitted=application.getCommittedStatus(); + } application.setCommittedStatus(isCommit); saveOrUpdate(application); @@ -749,8 +756,13 @@ item.setAncestorID(td.getAncestorID()); //祖先包定义id item.setIsTraceable(td.getIsTraceable()); //是否追溯 if (isCommit) { + /*simon-add:为了不改动之前代码,这里的处理办法比较无奈。 + * 由于暂存后再提交需要CommittedStatus传false才能不出bug,这里只能先将application的属性CommittedStatus值设为haveCommitted + */ + application.setCommittedStatus(haveCommitted); generateTousseInstanceOrAddPackingTask(application, tousseIdAndMap, item, td); + application.setCommittedStatus(isCommit); } } item.setAmount(item.getEditAmount());