Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java =================================================================== diff -u -r17044 -r17158 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java (.../MaterialDefinitionManagerImpl.java) (revision 17044) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java (.../MaterialDefinitionManagerImpl.java) (revision 17158) @@ -34,6 +34,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialType; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.security.tools.Util; import com.forgon.systemsetting.model.HttpOption; import com.forgon.systemsetting.service.HttpOptionManager; @@ -80,6 +81,17 @@ } public void saveOrUpdate(MaterialDefinition materialDefinition) { + if (DatabaseUtil.isPoIdValid(materialDefinition.getId())) { //如果是修改,则需要联动,有此材料定义的包定义的“includeImplant”属性 + Integer includeImplant = TousseDefinition.UNINCLUDE_IMPLANT; + if (StringTools.equals(materialDefinition.getIsImplant(), Constants.STR_YES)) { + includeImplant = TousseDefinition.INCLUDE_IMPLANT; + } + String sql = String.format("update TousseDefinition set includeImplant=%s " + + "where id in(select td.id from MaterialDefinition md join MaterialInstance mi on mi.materialDefinition_id=md.id join TousseDefinition td on td.id=mi.tousse_id where md.id=%s) " + + "and (includeImplant is null or includeImplant<>%s)", + includeImplant, materialDefinition.getId(), includeImplant); + objectDao.executeUpdate(sql); + } objectDao.saveOrUpdate(materialDefinition); }