Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js =================================================================== diff -u -r12532 -r13624 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js (.../foreignProxyDisinfectionView.js) (revision 12532) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js (.../foreignProxyDisinfectionView.js) (revision 13624) @@ -2,6 +2,15 @@ var grid; var foreignItemStore; +var mustScanBasketForForeignProxy = true; +//外部代理灭菌是否必须扫描灭菌筐(配置为true或未配置此项时则为true,否则为false) +if(sstsConfig.mustScanBasketForForeignProxy != true){ + mustScanBasketForForeignProxy = false; +} +if(sstsConfig.mustScanBasketForForeignProxy == null){ + mustScanBasketForForeignProxy = true; +} + var tousseStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getExternalTousseDefinitionData.do', @@ -355,7 +364,7 @@ var packageType = top.Ext.getCmp('packageType1').getValue(); var sterilingType = top.Ext.getCmp('sterilingType1').getValue(); var basketName = top.Ext.getCmp('basketName').getValue(); - if(basketName!=null && basketName.trim().length==0){ + if(mustScanBasketForForeignProxy && basketName!=null && basketName.trim().length==0){ showResult("请先扫描灭菌筐!"); return; } Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r13024 -r13624 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 13024) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 13624) @@ -806,17 +806,19 @@ */ private CssdServiceDepts getCssdServiceDeptsConfig(CssdServiceDepts cssdServiceDepts){ String sql = " where 1=1 "; - if(cssdServiceDepts.getCssdOrgUnitId() != null){ + //由于科室会反复删除导致每次科室id的数据变化,所以科室id不再用做判断的条件,只记录该科室的id + /*if(cssdServiceDepts.getCssdOrgUnitId() != null){ sql += " and cssdOrgUnitId = " + cssdServiceDepts.getCssdOrgUnitId(); - } + }*/ if(StringUtils.isNotBlank(cssdServiceDepts.getCssdOrgUnitCode())){ sql += " and cssdOrgUnitCode = '" + cssdServiceDepts.getCssdOrgUnitCode() + "'"; } - if(cssdServiceDepts.getClinicOrgUnitId() != null){ + //由于科室会反复删除导致每次科室id的数据变化,所以科室id不再用做判断的条件,只记录该科室的id + /*if(cssdServiceDepts.getClinicOrgUnitId() != null){ sql += " and clinicOrgUnitId = " + cssdServiceDepts.getClinicOrgUnitId(); - } + }*/ if(StringUtils.isNotBlank(cssdServiceDepts.getClinicOrgUnitCode())){ sql += " and clinicOrgUnitCode = '" + cssdServiceDepts.getClinicOrgUnitCode() + "'"; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js =================================================================== diff -u -r13261 -r13624 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 13261) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 13624) @@ -419,8 +419,8 @@ } var taskGroupJsonStore = new Ext.data.SimpleStore({ - fields : [ 'taskGroupName' ], - url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getTaskGroupName.do', + fields : [ 'taskGroupName','departCode','departName' ], + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getTaskGroupList.do', listeners:{ load:function(store,records) { if(records.length>0 && id==0) { @@ -512,14 +512,20 @@ editable : false, allowBlank : true, triggerAction : 'all', - anchor : '100%' + anchor : '100%', + listeners : { + select : function(combo , record , index){ + Ext.getCmp("departCodeOfProcessingForeignTousse").setValue(record.data.departCode); + Ext.getCmp("departNameOfProcessingForeignTousse").setValue(record.data.departName); + } + } }] },{ columnWidth : .25, labelWidth : 180, layout : 'form', - items:[{ + items:[/*{ xtype : 'combo', fieldLabel : '外来器械包处理科室', id : 'departNameOfProcessingForeignTousse', @@ -550,7 +556,16 @@ Ext.getCmp("departCodeOfProcessingForeignTousse").setValue(record.data.departCode); } } - }] + }*/ + { + xtype :'textfield', + fieldLabel :'外来器械包处理科室', + id :'departNameOfProcessingForeignTousse', + name :'departNameOfProcessingForeignTousse', + anchor : '100%', + readOnly : true, + allowBlank : true + }] }, { layout:'form', labelWidth : 180, Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r13570 -r13624 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13570) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13624) @@ -1108,7 +1108,28 @@ List taskVos = new ArrayList(); try { if (StringUtils.isNotBlank(taskGroup)) { + //普通器械包、消毒物品及敷料包的装配任务查询 List taskList = findPackingTaskFromCssdHandleToussesConfig(taskGroup,basketBarcode); + + SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); + if(supplyRoomConfig != null){ + if(StringUtils.equals(taskGroup, supplyRoomConfig.getDefalutTaskGroup())){ + //外来器械包的装配任务查询 + List foreignTousseTaskList = findForeignToussePackingTask(basketBarcode); + if(CollectionUtils.isNotEmpty(foreignTousseTaskList)){ + taskList.addAll(foreignTousseTaskList); + } + } + + if(StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ + //自定义器械包的装配任务查询 + List customerTousseTaskList = findCustomerToussePackingTask(basketBarcode); + if(CollectionUtils.isNotEmpty(customerTousseTaskList)){ + taskList.addAll(customerTousseTaskList); + } + } + } + Map taskMap = new HashMap(); if (taskList != null) { @@ -1244,7 +1265,8 @@ } /** - * 查询待装配装配任务集合(v4.1代码旧的方法,按包定义的任务组查询) + * 查询器械包、消毒物品、敷料包的待装配装配任务集合(v4.1代码新的方法,按供应室处理器械包配置的任务组查询) + * 适合器械包、消毒物品、敷料包的装配任务查询 * @param taskGroup * @param basketBarcode * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 @@ -1271,6 +1293,76 @@ sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; } + return findPackingTaskBySql(sql); + } + + /** + * 查询自定义器械包的待装配装配任务集合(按科室供应室配置的任务组查询) + * @param taskGroup + * @param basketBarcode + * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 + */ + private List findForeignToussePackingTask(String basketBarcode) { + List queryResult = new ArrayList(); + String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + String sql = "select po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType," + + "td.id as tousseDefinitionId,td.name,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName from PackingTask po , TousseDefinition td " + + "where po.tousseDefinition_id = td.id and td.tousseType='"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"' and po.orgUnitCoding = '" + orgCode + "'"; + if(StringUtils.isNotBlank(basketBarcode)){ + //验证篮筐是否清洗 + Container basket = containerManager + .getContainerByBarcode(basketBarcode); + String status = basket + .getStatus(); + if (basket != null + && Container.CONTAINER_STATUS_WASHLOADING.equals(status) + || Container.CONTAINER_STATUS_WASHING.equals(status)) { + return null; + } + sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; + } + + return findPackingTaskBySql(sql); + } + + /** + * 查询自定义器械包的待装配装配任务集合(按科室供应室配置的任务组查询) + * @param taskGroup + * @param basketBarcode + * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 + */ + private List findCustomerToussePackingTask(String basketBarcode) { + List queryResult = new ArrayList(); + String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + String sql = "select po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType," + + "td.id as tousseDefinitionId,td.name,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName from PackingTask po , TousseDefinition td " + + "where po.tousseDefinition_id = td.id and td.tousseType='"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"' and po.orgUnitCoding = '" + orgCode + "'"; + if(StringUtils.isNotBlank(basketBarcode)){ + //验证篮筐是否清洗 + Container basket = containerManager + .getContainerByBarcode(basketBarcode); + String status = basket + .getStatus(); + if (basket != null + && Container.CONTAINER_STATUS_WASHLOADING.equals(status) + || Container.CONTAINER_STATUS_WASHING.equals(status)) { + return null; + } + sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; + } + + return findPackingTaskBySql(sql); + } + + /** + * 根据sql语句查询装配任务及器械包信息 + * @param sql + * @return + */ + private List findPackingTaskBySql(String sql) { + List queryResult = new ArrayList(); ResultSet rs = null; try{ rs = objectDao.executeSql(sql); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r13497 -r13624 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 13497) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 13624) @@ -853,12 +853,36 @@ String jsonStr = JSONArray.fromObject(taskGroupNameList).toString(); HttpServletResponse response = StrutsParamUtils.getResponse(); try { - response.setCharacterEncoding("utf-8"); + response.setContentType("text/html;charset=utf-8"); response.getWriter().print(jsonStr); } catch (IOException e) { e.printStackTrace(); } } + + /** + * 查询所有的任务组 + * [['任务组1','科室编码1','科室名称1'],['任务组2','科室编码2','科室名称2']] + */ + public void getTaskGroupList() { + List taskGroupList = taskGroupManager.findAllTaskGroup(); + List> taskGroupNameList = new ArrayList>(); + for(TaskGroup taskGroup : taskGroupList){ + List tempList = new ArrayList(); + tempList.add(taskGroup.getTaskGroupName()); + tempList.add(taskGroup.getDepartCode()); + tempList.add(taskGroup.getDepartName()); + taskGroupNameList.add(tempList); + } + String jsonStr = JSONArray.fromObject(taskGroupNameList).toString(); + HttpServletResponse response = StrutsParamUtils.getResponse(); + try { + response.setContentType("text/html;charset=utf-8"); + response.getWriter().print(jsonStr); + } catch (IOException e) { + e.printStackTrace(); + } + } /** * 获取所有的外来包 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java =================================================================== diff -u -r13258 -r13624 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 13258) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 13624) @@ -58,7 +58,7 @@ private Integer supplyRoomType; // 供应室类型 - private String defalutTaskGroup;// 默认装配组 + private String defalutTaskGroup;// 默认装配组(外来器械包默认装配组) private String customTousseDefaultTaskGroup;// 自定义器械包默认装配组 Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.jsp =================================================================== diff -u -r12532 -r13624 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.jsp (.../foreignProxyDisinfectionView.jsp) (revision 12532) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.jsp (.../foreignProxyDisinfectionView.jsp) (revision 13624) @@ -47,7 +47,6 @@ - @@ -59,6 +58,9 @@ + + +