Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r40706 -r40731 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 40706) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 40731) @@ -518,4 +518,10 @@ * @return */ public InvoicePlan getInvoicePlan(PackingTask packingTask); + /** + * 过滤TousseInstance列表,只保留那些TousseDefinition的ancestorID不存在于AutobasketInsertionConfig表中的实例 + * @param tousseInstances 待过滤的TousseInstance列表 + * @return 过滤后的列表,只包含符合条件的实例 + */ + public List filterAutobasketInsertionConfig(List tousseInstances); } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r40724 -r40731 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 40724) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 40731) @@ -107,6 +107,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.taskGroup.TaskGroup; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.AutobasketInsertionConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseOrgUint; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -6924,9 +6925,31 @@ } } @Override - public JSONObject autobasketInsertion(List tousseInstances, Map cntainerBindingInfo, Map comboToStContainer, Boolean isCombo) { + public List filterAutobasketInsertionConfig(List tousseInstances) { + if (tousseInstances == null || tousseInstances.isEmpty()) { + return tousseInstances; + } + + // 获取数据库中现有的ancestorID集合 + Set existingAncestorIds = objectDao.getLongSet( + "SELECT tousseDefinitionAncestorID FROM " + AutobasketInsertionConfig.class.getSimpleName()); + + // 如果数据库中没有配置,则返回原列表 + if (existingAncestorIds.isEmpty()) { + return tousseInstances; + } + + // 过滤不自动入筐的包并收集实例 + return tousseInstances.stream() + .filter(ti -> ti != null + && ti.getTousseDefinition() != null + && !existingAncestorIds.contains(ti.getTousseDefinition().getAncestorID())) + .collect(Collectors.toList()); + } + @Override + public JSONObject autobasketInsertion(List oldTousseInstances, Map cntainerBindingInfo, Map comboToStContainer, Boolean isCombo) { //先按篮筐分组 - if(CollectionUtils.isEmpty(tousseInstances)){ + if(CollectionUtils.isEmpty(oldTousseInstances)){ return null; } if(isCombo != null && isCombo){ @@ -6938,6 +6961,11 @@ return null; } } + //过滤掉不自动入筐的包 + List tousseInstances = filterAutobasketInsertionConfig(oldTousseInstances); + if(CollectionUtils.isEmpty(tousseInstances)){ + return null; + } Map> groups = new HashMap>(); Set packageTypes = new HashSet(); List containerStatusMsgs = new ArrayList(); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/AutobasketInsertionConfig.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/AutobasketInsertionConfig.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/AutobasketInsertionConfig.java (revision 40731) @@ -0,0 +1,46 @@ +package com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Index; +import javax.persistence.Table; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +/** + * 包定义是否自动从清洗篮筐审核装载进灭菌篮筐的设置 + * @author zc.li + * + */ +@Entity +@DynamicInsert(false) +@DynamicUpdate(true) +@Table(name = "AutobasketInsertionConfig") +@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class AutobasketInsertionConfig { + private Long id; + /** + * 包定义祖先id + */ + private Long tousseDefinitionAncestorID; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public Long getTousseDefinitionAncestorID() { + return tousseDefinitionAncestorID; + } + public void setTousseDefinitionAncestorID(Long tousseDefinitionAncestorID) { + this.tousseDefinitionAncestorID = tousseDefinitionAncestorID; + } + +}