Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/dwr/table/SupplyRoomConfigTableManager.java =================================================================== diff -u -r39621 -r40730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/dwr/table/SupplyRoomConfigTableManager.java (.../SupplyRoomConfigTableManager.java) (revision 39621) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/dwr/table/SupplyRoomConfigTableManager.java (.../SupplyRoomConfigTableManager.java) (revision 40730) @@ -9,6 +9,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.InstrumentRepairRemindOrgUnit; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.tools.db.DatabaseUtil; @@ -43,10 +44,13 @@ public SupplyRoomConfig getStartTimeObject(){ SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); //加载“器械维修结果提醒科室”CDSLQYQYYY-118 + boolean enbaleLoadAutomaticallyIntoBasketsAfterAssembly = CssdUtils.getSystemSetConfigByNameBool("enbaleLoadAutomaticallyIntoBasketsAfterAssembly", false); + if(enbaleLoadAutomaticallyIntoBasketsAfterAssembly){ + supplyRoomConfig.setAutobasketInsertionConfigInfos(supplyRoomConfigManager.getAutobasketInsertionConfig().toString()); + } loadInstrumentRepairRemindOrgUnit(supplyRoomConfig); return supplyRoomConfig; } - /** * 加载“器械维修结果提醒科室”CDSLQYQYYY-118 * @param supplyRoomConfig Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java =================================================================== diff -u -r40431 -r40730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 40431) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 40730) @@ -8,6 +8,7 @@ import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -23,13 +24,15 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ArrayUtils; +import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.CssdServiceDepts; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.AutobasketInsertionConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.systemsetting.service.SystemSettingManager; import com.forgon.exception.SystemException; @@ -1241,4 +1244,67 @@ sqlBuffer.append(" where cssdOrgUnitCode = ? and clinicOrgUnitCode = ? "); return objectDao.countObjectBySql(CssdServiceDepts.class.getSimpleName(), sqlBuffer.toString(), new String[]{AcegiHelper.getCurrentOrgUnitCode(), orgUnitCode}) > 0; } + @Override + public void batchUpdateAutobasketInsertionConfig(String tdIdsOfAutobasketInsertion) { + if (StringUtils.isBlank(tdIdsOfAutobasketInsertion)) { + // 清空表 + objectDao.excuteSQL("DELETE FROM " + AutobasketInsertionConfig.class.getSimpleName()); + } else { + // 解析传入的ID集合 + Set tdIds = SqlUtils.splitLongToSet(tdIdsOfAutobasketInsertion, Constants.IDS_SEPARATOR, false); + + // 获取数据库中现有的ID集合 + Set tdIdsOfDB = objectDao.getLongSet( + "SELECT tousseDefinitionAncestorID FROM " + AutobasketInsertionConfig.class.getSimpleName()); + + // 需要新增的ID(传入的有但数据库没有的) + Set idsToAdd = new HashSet<>(tdIds); + idsToAdd.removeAll(tdIdsOfDB); + + // 需要删除的ID(数据库有但传入的没有的) + Set idsToRemove = new HashSet<>(tdIdsOfDB); + idsToRemove.removeAll(tdIds); + + // 批量删除 + if (!idsToRemove.isEmpty()) { + String deleteHql = "DELETE FROM " + AutobasketInsertionConfig.class.getSimpleName() + + " WHERE 1=1 " + + SqlUtils.getInLongListSql("tousseDefinitionAncestorID", idsToRemove); + objectDao.excuteSQL(deleteHql); + } + + // 批量新增 + if (!idsToAdd.isEmpty()) { + for (Long id : idsToAdd) { + AutobasketInsertionConfig config = new AutobasketInsertionConfig(); + config.setTousseDefinitionAncestorID(id); + objectDao.save(config); + } + } + } + } + @Override + public JSONArray getAutobasketInsertionConfig() { + String hql = "SELECT c.tousseDefinitionAncestorID, t.name FROM " + + AutobasketInsertionConfig.class.getSimpleName() + +" c LEFT JOIN " + + TousseDefinition.class.getSimpleName() + + " t ON c.tousseDefinitionAncestorID = t.id"; + JSONArray arr = new JSONArray(); + ResultSet rs = null; + try { + rs = objectDao.executeSql(hql); + while(rs.next()){ + JSONObject obj = new JSONObject(); + obj.put("name", rs.getString("name")); + obj.put("tousseDefinitionAncestorID", rs.getLong("tousseDefinitionAncestorID")); + arr.add(obj); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return arr; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r40550 -r40730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 40550) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 40730) @@ -38,6 +38,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.InstrumentRepairRemindOrgUnit; 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.TousseDefinition; import com.forgon.disinfectsystem.entity.urgent.UrgentLevel; import com.forgon.entity.PageEntity; @@ -977,7 +978,7 @@ }else{ supplyRoomConfig.setDefineFormModificationMode(SupplyRoomConfig.MODIFY_THROUGH_ADMINISTRATIVE_PERMISSIONS); } - + supplyRoomConfigManager.batchUpdateAutobasketInsertionConfig(rq.getParameter("tdIdsOfAutobasketInsertion")); String deviceMaintenanceUpdateMode = rq.getParameter("deviceMaintenanceUpdateMode"); //默认就是MODIFY_THROUGH_ADMINISTRATIVE_PERMISSIONS if(StringUtils.isBlank(deviceMaintenanceUpdateMode)){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManager.java =================================================================== diff -u -r40310 -r40730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManager.java (.../SupplyRoomConfigManager.java) (revision 40310) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManager.java (.../SupplyRoomConfigManager.java) (revision 40730) @@ -334,5 +334,13 @@ * false: 开启了配置项,并且当前登录科室是供应室,并且科室编码不在当前登录科室的供应室服务临床科室的配置之下; */ public boolean isValidDepartForSupplyRoomDataIsolationModuleConfig(String dataIsolationModule, String orgUnitCode); - + /** + * GDSKQYY-10 指定器械包装配时不自动装载到灭菌篮筐 + * @param tdIdsOfAutobasketInsertion 装配时不自动装载到灭菌篮筐的祖先包定义id + */ + public void batchUpdateAutobasketInsertionConfig(String tdIdsOfAutobasketInsertion); + /** + * 获取已设置不自动审核入框的包 + */ + public JSONArray getAutobasketInsertionConfig(); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java =================================================================== diff -u -r40550 -r40730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 40550) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 40730) @@ -638,8 +638,12 @@ * “器械维修结果提醒科室”名称,不保存到数据库(CDSLQYQYYY-118) */ private String instrumentRepairRemindOrgUnitNames; - /** + * 指定装配时不自动装载到灭菌篮筐的器械包信息 主要是包定义id和名称 + * GDSKQYY-10 不保存本表SupplyRoomConfig 但是保存在autobasketInsertionConfig表中 + */ + private String autobasketInsertionConfigInfos; + /** * 器械包拍摄图片/视频保留时长(天) * (DGKHYY-29) */ @@ -1662,7 +1666,16 @@ String instrumentRepairRemindOrgUnitNames) { this.instrumentRepairRemindOrgUnitNames = instrumentRepairRemindOrgUnitNames; } - + @Transient + public String getAutobasketInsertionConfigInfos() { + return autobasketInsertionConfigInfos; + } + + public void setAutobasketInsertionConfigInfos( + String autobasketInsertionConfigInfos) { + this.autobasketInsertionConfigInfos = autobasketInsertionConfigInfos; + } + public Integer getTousseCamImgVidRetentionTime() { return tousseCamImgVidRetentionTime; }