Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManager.java =================================================================== diff -u --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManager.java (revision 0) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManager.java (revision 36237) @@ -0,0 +1,53 @@ +package com.forgon.disinfectsystem.tousse.toussedefinition.service; + +import java.util.List; + +import net.sf.json.JSONArray; + +import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefOptionalSterilization; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.tools.hibernate.BasePoManager; + +/** + * 器械包定义的可选灭菌程序的manager(ZSRY-20) + * @since 2023-06-30 + */ +public interface TousseDefOptionalSterilizationManager extends BasePoManager{ + + /** + * 设置可选的灭菌程序ZSRY-20 + * @param objectDao + * @param optionalSterilizationIds 包定义可选灭菌程序的id,例如:1;2;3 + */ + public void saveOptionalSterilization(TousseDefinition tousseDefinition, String optionalSterilizationIds); + + /** + * 设置可选的灭菌程序ZSRY-20 + * @param sterilisationList + * @param objectDao + */ + public void saveOptionalSterilizationList(TousseDefinition tousseDefinition, List sterilisationList); + + /** + * 查询可选的灭菌查询名称ZSRY-20 + * @param objectDao + * @return + */ + public String loadOptionalSterilizationName(TousseDefinition tousseDefinition); + + /** + * 查询包定义可选灭菌ZSRY-20 + * @param objectDao + * @return + */ + public List loadOptionalSterilizationList(TousseDefinition tousseDefinition); + + /** + * 查询包定义可选灭菌,返回jason数组ZSRY-20 + * @param objectDao + * @return + */ + public JSONArray loadOptionalSterilizationJSONArray(TousseDefinition tousseDefinition); + +} Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManagerImpl.java =================================================================== diff -u --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManagerImpl.java (revision 0) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionalSterilizationManagerImpl.java (revision 36237) @@ -0,0 +1,118 @@ +package com.forgon.disinfectsystem.tousse.toussedefinition.service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.disinfectsystem.datamodifyrecord.service.DataModifyRecordManager; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefOptionalSterilization; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.datamodifyrecord.DataModifyRecord; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.BasePoManagerImpl; +import com.forgon.tools.string.StringTools; + +public class TousseDefOptionalSterilizationManagerImpl extends BasePoManagerImpl implements TousseDefOptionalSterilizationManager{ + + private DataModifyRecordManager dataModifyRecordManager; + + public void setDataModifyRecordManager( + DataModifyRecordManager dataModifyRecordManager) { + this.dataModifyRecordManager = dataModifyRecordManager; + } + + @Override + @SuppressWarnings("unchecked") + public void saveOptionalSterilization(TousseDefinition tousseDefinition, String optionalSterilizationIds) { + if(tousseDefinition == null || !DatabaseUtil.isPoIdValid(tousseDefinition.getId())){ + return; + } + List sterilisationList = new ArrayList(); + if(StringUtils.isNotBlank(optionalSterilizationIds)){ + List optionalSterilizationIdList = (List) StringTools.parseToLongs(optionalSterilizationIds, ";"); + if(CollectionUtils.isNotEmpty(optionalSterilizationIdList)){ + sterilisationList = objectDao.getCollection(Sterilisation.class.getSimpleName(), "id", optionalSterilizationIdList); + } + } + this.saveOptionalSterilizationList(tousseDefinition, sterilisationList); + } + + @Override + public void saveOptionalSterilizationList(TousseDefinition tousseDefinition, List sterilisationList){ + if(tousseDefinition == null || !DatabaseUtil.isPoIdValid(tousseDefinition.getId())){ + return; + } + String oldOptionalSterilizations = this.loadOptionalSterilizationName(tousseDefinition); + // 删除旧的关联关系 + String deleteSql = String.format("delete from %s where tousseDefinitionId = %s", TousseDefOptionalSterilization.class.getSimpleName(), tousseDefinition.getId()); + objectDao.excuteSQL(deleteSql); + String newOptionalSterilizations = ""; + List sterilisationNameList = new ArrayList(); + if(CollectionUtils.isNotEmpty(sterilisationList)){ + for (Sterilisation sterilisation : sterilisationList) { + TousseDefOptionalSterilization tousseDefOptionalSterilization = new TousseDefOptionalSterilization(); + tousseDefOptionalSterilization.setSterilizationId(sterilisation.getId()); + tousseDefOptionalSterilization.setTousseDefinitionId(tousseDefinition.getId()); + objectDao.saveOrUpdate(tousseDefOptionalSterilization); + sterilisationNameList.add(sterilisation.getSterilisation()); + } + newOptionalSterilizations = StringTools.join(sterilisationNameList, ";"); + } + if(!StringUtils.equals(oldOptionalSterilizations, newOptionalSterilizations)){ + //保存“可选灭菌程序”改动记录 + dataModifyRecordManager.saveDataModifyRecord(tousseDefinition.getId(), "可选灭菌程序", newOptionalSterilizations, oldOptionalSterilizations, new Date(), DataModifyRecord.MODEL_TOUSSEDEFINITION, DataModifyRecord.MODIFY_TYPE_MANUAL, AcegiHelper.getLoginUser().getUserId()); + } + } + + @Override + public String loadOptionalSterilizationName(TousseDefinition tousseDefinition) { + List optionalSterilizationList = this.loadOptionalSterilizationList(tousseDefinition); + if(CollectionUtils.isEmpty(optionalSterilizationList)){ + return ""; + } + List optionalSterilizationNameList = new ArrayList(); + for (Sterilisation sterilisation : optionalSterilizationList) { + optionalSterilizationNameList.add(sterilisation.getSterilisation()); + } + return StringTools.join(optionalSterilizationNameList, ";"); + } + + @Override + @SuppressWarnings("unchecked") + public List loadOptionalSterilizationList(TousseDefinition tousseDefinition){ + if(tousseDefinition == null || !DatabaseUtil.isPoIdValid(tousseDefinition.getId())){ + return null; + } + String hql = String.format("select po from %s po where po.id in (select sterilizationId from %s where tousseDefinitionId = %s)", + Sterilisation.class.getSimpleName(), + TousseDefOptionalSterilization.class.getSimpleName(), + tousseDefinition.getId()); + return objectDao.findByHql(hql); + } + + @Override + public JSONArray loadOptionalSterilizationJSONArray(TousseDefinition tousseDefinition) { + JSONArray result = new JSONArray(); + List optionalSterilizationList = this.loadOptionalSterilizationList(tousseDefinition); + if(CollectionUtils.isEmpty(optionalSterilizationList)){ + return result; + } + for (Sterilisation sterilisation : optionalSterilizationList) { + JSONObject json = new JSONObject(); + json.put("id", sterilisation.getId()); + json.put("barcode", sterilisation.getBarcode()); + json.put("sterilisation", sterilisation.getSterilisation()); + result.add(json); + } + return result; + } + +} Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r36001 -r36237 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 36001) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 36237) @@ -91,6 +91,7 @@ import com.forgon.disinfectsystem.tousse.tousseDefinitionBelongOrgUnit.service.TousseDefinitionBelongDepartManager; import com.forgon.disinfectsystem.tousse.toussedefinition.dto.TousseDefinitionParameterDto; import com.forgon.disinfectsystem.tousse.toussedefinition.service.SearchTousseDefinitionParams; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefOptionalSterilizationManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionHelper; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; @@ -175,6 +176,12 @@ */ private String origineTdNote; + private TousseDefOptionalSterilizationManager tousseDefOptionalSterilizationManager; + + public void setTousseDefOptionalSterilizationManager( + TousseDefOptionalSterilizationManager tousseDefOptionalSterilizationManager) { + this.tousseDefOptionalSterilizationManager = tousseDefOptionalSterilizationManager; + } public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -454,6 +461,12 @@ List deleteErrorMaterialInstanceIdList = (List) StringTools.parseToLongs(deleteErrorListString, ";"); tdParameterDto.setDeleteErrorMaterialInstanceIdList(deleteErrorMaterialInstanceIdList); } + //可选灭菌程序ZSRY-20 + String optionalSterilizationIds= StrutsParamUtils.getPraramValue("optionalSterilizationIds", ""); + //optionalSterilizationIds = "14805;14806"; + if(StringUtils.isNotBlank(optionalSterilizationIds)){ + tdParameterDto.setOptionalSterilizationIds(optionalSterilizationIds); + } //保存或更新器械包定义 tousseDefinitionManager.saveOrUpdateTousseDefinition(origineTd, tousseDefinition,tdParameterDto); // 如果是另存为操作,需要给新器械包定义设置图片和视频 @@ -1281,8 +1294,21 @@ JSONObject data = jsonObject.optJSONObject("data"); data.put("assetsBelong", assetsBelong); //器械包种类GDSZYY-86 - JSONArray jsonArr = tousseDefinition.getInstrumentSetTypeJSONArray(objectDao); - data.put("instrumentSetTypeJSONArray", jsonArr); + JSONArray instrumentSetTypeJSONArray = new JSONArray(); + boolean enableInstrumentSetTypeSetting = + ConfigUtils.getSystemSetConfigByNameBool("enableInstrumentSetTypeSetting"); + if(enableInstrumentSetTypeSetting){ + instrumentSetTypeJSONArray = tousseDefinition.getInstrumentSetTypeJSONArray(objectDao); + } + data.put("instrumentSetTypeJSONArray", instrumentSetTypeJSONArray); + //可选灭菌程序ZSRY-20 + JSONArray optionalSterilizationJsonArr = new JSONArray(); + boolean enableAvailableSterilizationProgramsOfTousseFunction = + ConfigUtils.getSystemSetConfigByNameBool("enableAvailableSterilizationProgramsOfTousseFunction"); + if(enableAvailableSterilizationProgramsOfTousseFunction){ + optionalSterilizationJsonArr = tousseDefOptionalSterilizationManager.loadOptionalSterilizationJSONArray(tousseDefinition); + } + data.put("optionalSterilizationJsonArr", optionalSterilizationJsonArr); StrutsResponseUtils.output(jsonObject); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dto/TousseDefinitionParameterDto.java =================================================================== diff -u -r34913 -r36237 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dto/TousseDefinitionParameterDto.java (.../TousseDefinitionParameterDto.java) (revision 34913) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dto/TousseDefinitionParameterDto.java (.../TousseDefinitionParameterDto.java) (revision 36237) @@ -33,6 +33,11 @@ */ private List deleteErrorMaterialInstanceIdList; + /** + * 包定义可选灭菌程序的id,例如:1;2;3(ZSRY-20) + */ + private String optionalSterilizationIds; + public String getMaterialDefinitionConfigResult() { return materialDefinitionConfigResult; } @@ -74,5 +79,13 @@ List deleteErrorMaterialInstanceIdList) { this.deleteErrorMaterialInstanceIdList = deleteErrorMaterialInstanceIdList; } - + + public String getOptionalSterilizationIds() { + return optionalSterilizationIds; + } + + public void setOptionalSterilizationIds(String optionalSterilizationIds) { + this.optionalSterilizationIds = optionalSterilizationIds; + } + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r36143 -r36237 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 36143) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 36237) @@ -1355,6 +1355,7 @@ return count; } + @SuppressWarnings("unchecked") public ImageFile getTeachingImageAt(ObjectDao objectDao, int index) { ImageFile image = null; @@ -1388,6 +1389,7 @@ @Transient public List getIDCardDefinitions(ObjectDao dao) { + @SuppressWarnings("unchecked") List list = dao.findByProperty(IDCardDefinition.class.getSimpleName(), "tousseDefinitionID", ""+id); return list; } @@ -1468,6 +1470,7 @@ Query query = session.createQuery("from VideoFile where tousseDefinition_id = :id order by serialNum asc"); query.setLong("id", id); + @SuppressWarnings("unchecked") List videos = query.list(); return videos; @@ -2449,28 +2452,33 @@ * @param objectDao * @return */ - @SuppressWarnings("unchecked") @Transient @JsonIgnore public JSONArray getInstrumentSetTypeJSONArray(ObjectDao objectDao){ JSONArray result = new JSONArray(); - if(this.id != null && this.id.longValue() != 0){ - List typeTDList = objectDao.findByProperty( - InstrumentSetType_TD.class.getSimpleName(), "tousseDefinitionId", this.id); - if(CollectionUtils.isEmpty(typeTDList)){ - return result; - } - List typeIdList = new ArrayList(); - for (InstrumentSetType_TD type : typeTDList) { - typeIdList.add(type.getInstrumentSetTypeId()); - } - List typeList = objectDao.getCollection(InstrumentSetType.class.getSimpleName(), "id", typeIdList); - if(CollectionUtils.isNotEmpty(typeList)){ - return JSONArray.fromObject(typeList); - } + List typeList = loadInstrumentSetTypeList(objectDao); + if(CollectionUtils.isNotEmpty(typeList)){ + return JSONArray.fromObject(typeList); } return result; } + + /** + * 查询包定义的器械种类 + * @param objectDao + * @return + */ + @SuppressWarnings("unchecked") + public List loadInstrumentSetTypeList(ObjectDao objectDao){ + if(DatabaseUtil.isPoIdValid(id)){ + String hql = String.format("select po from %s po where po.id in (select instrumentSetTypeId from %s where tousseDefinitionId = %s)", + InstrumentSetType.class.getSimpleName(), + InstrumentSetType_TD.class.getSimpleName(), + id); + return objectDao.findByHql(hql); + } + return null; + } /** * 设置器械包种类GDSZYY-86 @@ -2482,25 +2490,30 @@ if(objectDao == null || !DatabaseUtil.isPoIdValid(this.getId())){ return; } - // 删除旧的关联关系 - String deleteSql = String.format("delete from %s where tousseDefinitionId = %s", InstrumentSetType_TD.class.getSimpleName(), this.getId()); - objectDao.excuteSQL(deleteSql); - - if(StringUtils.isBlank(instrumentSetTypeIds)){ - return; + List typeList = new ArrayList(); + if(StringUtils.isNotBlank(instrumentSetTypeIds)){ + List typeIdList = (List) StringTools.parseToLongs(instrumentSetTypeIds, ";"); + if(CollectionUtils.isNotEmpty(typeIdList)){ + typeList = objectDao.getCollection(InstrumentSetType.class.getSimpleName(), "id", typeIdList); + } } - List typeIdList = new ArrayList(); - String[] idArr = instrumentSetTypeIds.split(";"); - for (String idStr : idArr) { - typeIdList.add(Long.parseLong(idStr)); - } - if(CollectionUtils.isEmpty(typeIdList)){ + saveInstrumentSetTypes(objectDao, typeList); + } + + /** + * 设置器械包种类GDSZYY-86 + * @param objectDao + * @param typeList + */ + public void saveInstrumentSetTypes(ObjectDao objectDao, List typeList) { + if(objectDao == null || !DatabaseUtil.isPoIdValid(this.getId())){ return; } - List typeList = objectDao.getCollection(InstrumentSetType.class.getSimpleName(), "id", typeIdList); + // 删除旧的关联关系 + String deleteSql = String.format("delete from %s where tousseDefinitionId = %s", InstrumentSetType_TD.class.getSimpleName(), this.getId()); + objectDao.excuteSQL(deleteSql); if(CollectionUtils.isNotEmpty(typeList)){ - List typeTDList = new ArrayList(); for (InstrumentSetType instrumentSetType : typeList) { InstrumentSetType_TD typeTd = new InstrumentSetType_TD(); typeTd.setInstrumentSetTypeId(instrumentSetType.getId()); @@ -2515,27 +2528,19 @@ * @param objectDao * @return */ - @SuppressWarnings("unchecked") @Transient @JsonIgnore public String getInstrumentSetTypes(ObjectDao objectDao) { String result = ""; if(this.id != null && this.id.longValue() != 0){ - List typeTDList = objectDao.findByProperty( - InstrumentSetType_TD.class.getSimpleName(), "tousseDefinitionId", this.id); - if(CollectionUtils.isEmpty(typeTDList)){ - return result; - } - List typeIdList = new ArrayList(); - for (InstrumentSetType_TD type : typeTDList) { - typeIdList.add(type.getInstrumentSetTypeId()); - } - List typeList = objectDao.getCollection(InstrumentSetType.class.getSimpleName(), "id", typeIdList); - for (InstrumentSetType instrumentSetType : typeList) { - if(StringUtils.isBlank(result)){ - result = instrumentSetType.getName(); - }else{ - result += ";" + instrumentSetType.getName(); + List typeList = this.loadInstrumentSetTypeList(objectDao); + if(CollectionUtils.isNotEmpty(typeList)){ + for (InstrumentSetType instrumentSetType : typeList) { + if(StringUtils.isBlank(result)){ + result = instrumentSetType.getName(); + }else{ + result += ";" + instrumentSetType.getName(); + } } } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r36152 -r36237 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 36152) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 36237) @@ -187,7 +187,14 @@ private DataModifyRecordManager dataModifyRecordManager; private JdbcTemplate jdbcTemplate; + + private TousseDefOptionalSterilizationManager tousseDefOptionalSterilizationManager; + public void setTousseDefOptionalSterilizationManager( + TousseDefOptionalSterilizationManager tousseDefOptionalSterilizationManager) { + this.tousseDefOptionalSterilizationManager = tousseDefOptionalSterilizationManager; + } + public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @@ -4387,15 +4394,25 @@ e.printStackTrace(); } } - // 设置器械包种类(保存到中间表InstrumentSetType_TD)GDSZYY-86 if(tdParameterDto != null){ - String oldInstrumentSetTypes = tousseDefinition.getInstrumentSetTypes(objectDao); - tousseDefinition.saveInstrumentSetTypes(objectDao, tdParameterDto.getInstrumentSetTypeIds()); - String newInstrumentSetTypes = tousseDefinition.getInstrumentSetTypes(objectDao); - if(!StringUtils.equals(oldInstrumentSetTypes, newInstrumentSetTypes)){ - //保存“器械包种类”改动记录 - dataModifyRecordManager.saveDataModifyRecord(tousseDefinition.getId(), "器械包种类", newInstrumentSetTypes, oldInstrumentSetTypes, new Date(), DataModifyRecord.MODEL_TOUSSEDEFINITION, DataModifyRecord.MODIFY_TYPE_MANUAL, AcegiHelper.getLoginUser().getUserId()); + // 设置器械包种类(保存到中间表InstrumentSetType_TD)GDSZYY-86 + boolean enableInstrumentSetTypeSetting = + ConfigUtils.getSystemSetConfigByNameBool("enableInstrumentSetTypeSetting"); + if(enableInstrumentSetTypeSetting){ + String oldInstrumentSetTypes = tousseDefinition.getInstrumentSetTypes(objectDao); + tousseDefinition.saveInstrumentSetTypes(objectDao, tdParameterDto.getInstrumentSetTypeIds()); + String newInstrumentSetTypes = tousseDefinition.getInstrumentSetTypes(objectDao); + if(!StringUtils.equals(oldInstrumentSetTypes, newInstrumentSetTypes)){ + //保存“器械包种类”改动记录 + dataModifyRecordManager.saveDataModifyRecord(tousseDefinition.getId(), "器械包种类", newInstrumentSetTypes, oldInstrumentSetTypes, new Date(), DataModifyRecord.MODEL_TOUSSEDEFINITION, DataModifyRecord.MODIFY_TYPE_MANUAL, AcegiHelper.getLoginUser().getUserId()); + } } + //设置可选灭菌程序ZSRY-20 + boolean enableAvailableSterilizationProgramsOfTousseFunction = + ConfigUtils.getSystemSetConfigByNameBool("enableAvailableSterilizationProgramsOfTousseFunction"); + if(enableAvailableSterilizationProgramsOfTousseFunction){ + tousseDefOptionalSterilizationManager.saveOptionalSterilization(tousseDefinition, tdParameterDto.getOptionalSterilizationIds()); + } } // if(isUpdate){ Index: ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml =================================================================== diff -u -r35953 -r36237 --- ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 35953) +++ ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 36237) @@ -2923,4 +2923,15 @@ class="com.forgon.disinfectsystem.diposablegoods.service.DisposableGoodsSummaryManagerImpl"> + + + + + + + + + \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilisation/service/SterilisationManagerImpl.java =================================================================== diff -u -r34606 -r36237 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilisation/service/SterilisationManagerImpl.java (.../SterilisationManagerImpl.java) (revision 34606) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilisation/service/SterilisationManagerImpl.java (.../SterilisationManagerImpl.java) (revision 36237) @@ -12,6 +12,7 @@ import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefOptionalSterilization; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.exception.SystemException; import com.forgon.serialnumber.model.SerialNum; @@ -82,7 +83,18 @@ } public void deleteSterilisationById(String id) { - objectDao.delete(getSterilisationById(id)); + Sterilisation sterilisation = getSterilisationById(id); + if(sterilisation == null){ + throw new SystemException("灭菌程序已经被删除"); + } + //判断是否设置成包定义的可选灭菌程序 + int tousseDefOptionalSterilisationCount = objectDao.countBySql(String.format("select count(1) from % po where po.sterilizationId = %s", + TousseDefOptionalSterilization.class.getSimpleName(), + id)); + if(tousseDefOptionalSterilisationCount > 0){ + throw new SystemException("【" + sterilisation.getSterilisation() + "】已经被设置为可选程序,请先移除后再删除。"); + } + objectDao.delete(sterilisation); } public boolean verifySterilisation(String id, String sterilisation) { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefOptionalSterilization.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefOptionalSterilization.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefOptionalSterilization.java (revision 36237) @@ -0,0 +1,67 @@ +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; + +/** + * 器械包定义的可选灭菌程序ZSRY-20 + * @since 2023-06-29 + */ +@Entity +@DynamicInsert(false) +@DynamicUpdate(true) +@Table(name = "TousseDefOptionalSterilization",indexes = { +@Index(columnList = "tousseDefinitionId", name = "isttd_tdid_index"), +@Index(columnList = "sterilizationId", name = "isttd_istid_index") +}) +@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class TousseDefOptionalSterilization { + + private Long id; + + /** + * 包定义ID + */ + private Long tousseDefinitionId; + + /** + * 灭菌程序ID + */ + private Long sterilizationId; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getTousseDefinitionId() { + return tousseDefinitionId; + } + + public void setTousseDefinitionId(Long tousseDefinitionId) { + this.tousseDefinitionId = tousseDefinitionId; + } + + public Long getSterilizationId() { + return sterilizationId; + } + + public void setSterilizationId(Long sterilizationId) { + this.sterilizationId = sterilizationId; + } + +}