Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java =================================================================== diff -u -r20432 -r20451 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java (.../PackingTask.java) (revision 20432) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java (.../PackingTask.java) (revision 20451) @@ -14,11 +14,11 @@ import javax.persistence.Table; import javax.persistence.Transient; +import org.apache.commons.lang3.StringUtils; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseDefinitionUtils; -import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.materialerrordamage.MaterialErrorDamageDetail; import com.forgon.tools.hibernate.ObjectDao; @@ -375,6 +375,17 @@ public void setBasketBarcode(String basketBarcode) { this.basketBarcode = basketBarcode; } + /** + * 装配任务的器械包是否入到了多个清洗篮筐。拆包清洗和外来器械拆包都会入到多个清洗篮筐。 + * @return + */ + @Transient + public boolean multiClassifyBasket(){ + if(StringUtils.isNotBlank(basketBarcode) && basketBarcode.split(";").length > 1){ + return true; + } + return false; + } public String getDepartment() { return department; Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r20449 -r20451 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 20449) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 20451) @@ -770,9 +770,7 @@ String basketGroupBarcodes = json.getBasketGroupBarcodes(); String idCardBarcode = json.getIdCardBarcode(); TousseDefinition tousseDefinition = getTousseDefinition(tousseDefinitions, tousseDefinitionID); - if(!canAddThisBasketItem(basket, tousseDefinition)){ - throw new RuntimeException("同一个篮筐只能装一个外来器械包"); - } + Set items = basket.getClassfiedItems(); ClassifiedItem item = getExistClassifiedItem(record.getId(), itemType, name, @@ -795,6 +793,9 @@ classifyBasketRecyclingSequenceManager.save(record.getId(), basket.getId(), tousseDefinitionID, null); continue; } + if(!canAddThisBasketItem(basket, tousseDefinition)){ + throw new RuntimeException("同一个篮筐只能装一个外来器械包"); + } item.setAmount(newAmount); item.setClassifyBasket(basket); item.setIdCardBarcode(idCardBarcode); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r20449 -r20451 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 20449) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 20451) @@ -1372,7 +1372,7 @@ itemVo.setTaskId(task.getId()); itemVo.setSerialNumber(serialNumManager.variablePart(serialNum, task.getSerialNumber())); - if(StringUtils.isNotBlank(basketBarcode) && td.isForeignTousse() && allowForeignToussePartiallyPacking ){ + if(StringUtils.isNotBlank(basketBarcode) && td.isForeignTousse() && task.multiClassifyBasket() && allowForeignToussePartiallyPacking ){ // 看所有拆分的包是否已经装完。 ClassifyBasket classifyBasket = classifyBasketManager.getClassifyBasket(task.getSourceId(), basketBarcode); if(classifyBasket == null){ @@ -3217,15 +3217,17 @@ } if(packageObj == null){ RecyclingBasketSequence sequence = classifyBasketRecyclingSequenceManager.get(task.getSourceId(), classifyBasketId, tousseDefinition.getId()); - if(allowForeignToussePartiallyPacking){ + if(allowForeignToussePartiallyPacking && task.multiClassifyBasket()){ if(sequence == null){ throw new RuntimeException("外来器械允许部分装配时,必须启用篮筐序号!"); } if(sequence.packed()){ throw new RuntimeException(String.format("篮筐%s里的外来器械已装配!", containerBarcode)); } + } + if(sequence != null){ sequence.setPacked(true); - objectDao.update(sequence); + classifyBasketRecyclingSequenceManager.update(sequence); } packageObj = new ForeignTousseSplitVo(); Integer seq = sequence != null&&sequence.getSequence() != null?sequence.getSequence():0;