Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14092 -r14122 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14092) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14122) @@ -636,7 +636,7 @@ isReceive = true; isRecycling = false; confirmRecycle = true; - isReturn = true; + isReturn = false; hideRecycling = false; hideReturn = true; hideUsedAmount = false; @@ -657,7 +657,7 @@ }else{//已接收、未发货状态 isReceive = true; isRecycling = true; - isReturn = true; + isReturn = false; hideRecycling = true; hideReturn = true; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java =================================================================== diff -u -r14018 -r14122 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 14018) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 14122) @@ -31,4 +31,9 @@ public List findForeignTousseApplication(String tousseName,String supplierName); public ForeignTousseApplication findForeignTousseApplicationByBarcode(String barcode); + /** + * 归还外来器械申请单中的器械包。如果器械包未使用,则将对应的器械包的状态设置为已废弃。废弃原因为"已归还" + * @param foreignTousseApplication 外来器械包申请单 + */ + public void foreignTousseReturn(ForeignTousseApplication foreignTousseApplication); } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r14072 -r14122 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14072) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14122) @@ -1,6 +1,5 @@ package com.forgon.disinfectsystem.foreigntousseapplication.service; -import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -12,10 +11,10 @@ import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; import org.hibernate.Query; import org.hibernate.Session; -import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; @@ -27,6 +26,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; @@ -36,12 +36,12 @@ import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.tousse.materialinstance.service.MaterialInstanceManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.security.service.AclTools; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; -import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -71,6 +71,12 @@ private ContainerManager containerManager; + private TousseInstanceManager tousseInstanceManager; + + public void setTousseInstanceManager(TousseInstanceManager tousseInstanceManager) { + this.tousseInstanceManager = tousseInstanceManager; + } + public void setContainerManager(ContainerManager containerManager) { this.containerManager = containerManager; } @@ -282,9 +288,7 @@ } }else if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(actionType)){ - application.setReturnTime(new Date()); - application.setReturnMan(AcegiHelper.getLoginUserFullName()); - application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RETRUN); + foreignTousseReturn(application); } } @@ -580,4 +584,28 @@ return null; } + @Override + public void foreignTousseReturn( + ForeignTousseApplication foreignTousseApplication) { + if(foreignTousseApplication != null){ + Date now = new Date(); + foreignTousseApplication.setReturnTime(now); + foreignTousseApplication.setReturnMan(AcegiHelper.getLoginUserFullName()); + foreignTousseApplication.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RETRUN); + + String[] discardStatus = new String[]{ + TousseInstance.STATUS_PACKED ,TousseInstance.STATUS_REVIEWED ,TousseInstance.STATUS_STERILED, + TousseInstance.STATUS_SHIPPED ,TousseInstance.STATUS_SIGNED ,TousseInstance.STATUS_STERILING , + TousseInstance.STATUS_RECYCLED ,TousseInstance.STATUS_DISCARD ,TousseInstance.STATUS_WAIT_FOR_RECALL, + TousseInstance.STATUS_RECALLED}; + //对器械包的处理,需要废弃 + for(TousseInstance tousseInstance : foreignTousseApplication.getTousseInstanceList(objectDao)){ + if(ArrayUtils.contains(discardStatus, tousseInstance.getStatus())){ + tousseInstanceManager.discardTousseInstance(tousseInstance, AcegiHelper.getLoginUserFullName(), + ForeignTousseApplication.APPLICATION_STATUS_RETRUN, now); + } + } + } + } + }