Index: ssts-web/src/main/webapp/homepage/portalPage.js =================================================================== diff -u -r15151 -r15564 --- ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 15151) +++ ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 15564) @@ -1225,7 +1225,7 @@ var contentFormWindow = Ext.getCmp('changeDepartWindow'); var currentOrgUnitId = record.data.orgUnitId; - if (currentOrgUnitId == dirOrgCode) { //如果选中的,就是当前科室,则不再重新请求后台 + if (currentOrgUnitId == oldCurrentOrgUnitCoding) { //如果选中的,就是当前科室,则不再重新请求后台 return; } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js =================================================================== diff -u -r15086 -r15564 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js (.../userIPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js) (revision 15086) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js (.../iPAndOrgUnitMapping/iPAndOrgUnitMappingForm.js) (revision 15564) @@ -1,50 +1,33 @@ var id; var formObj; -var userIPAndOrgUnitMappingWindow; +var iPAndOrgUnitMappingWindow; -function addAndEditUserIPAndOrgUnitMapping(id) { +function addAndEditIpAndOrgUnitMapping(id) { this.id = id; /** * 用户的当前科室的store */ - var currentOrgUnitJsonStore = new Ext.data.SimpleStore({ - fields : [ 'currentOrgUnitValue', 'currentOrgUnitDisplay' ], - url : WWWROOT + '/systemmanage/orgUnit/getOrgUnitCodingAndNameByUserName.do', + var orgUnitSimpleStore = new Ext.data.SimpleStore({ + fields : [ 'orgUnitValue', 'orgUnitDisplay' ], + url : WWWROOT + '/systemmanage/orgUnit/getOrgUnitCodingAndNameByName.do', listeners : { beforeload : function(thisCombo, options) { - currentOrgUnitJsonStore.baseParams.userName = top.Ext.getCmp('userName').getValue(); //加载之前先把用户名传给后台 + orgUnitSimpleStore.baseParams.orgUnit = top.Ext.getCmp('orgUnit').getRawValue(); }, load : function(store, records) { if (records.length > 0) { - top.Ext.getCmp('currentOrgUnit').setValue(records[0].data.currentOrgUnitValue); - top.Ext.getCmp('currentOrgUnit').setRawValue(records[0].data.currentOrgUnitDisplay); - } - if (!(records.length > 0)) { - top.Ext.getCmp('currentOrgUnit').setValue(''); - top.Ext.getCmp('currentOrgUnit').setRawValue(''); - showResult('此用户没有所属科室,不能进行设置!'); + top.Ext.getCmp('orgUnit').setValue(records[0].data.orgUnitValue); + top.Ext.getCmp('orgUnit').setRawValue(records[0].data.orgUnitDisplay); } } } }); - /** - * 用户名的store - */ - var userNameJsonStore = new Ext.data.SimpleStore({ - fields : [ 'userNameValue', 'userNameDisplay' ], - url : WWWROOT + '/systemmanage/user/getAllUserFullNameAndNameByUserName.do', - listeners : { - beforeload : function(thisCombo, options) { - userNameJsonStore.baseParams.userName = top.Ext.getCmp('userName').getRawValue(); - } - } - }); - formObj = new top.Ext.FormPanel({ - id : 'userIPAndOrgUnitMappingForm', + id : 'iPAndOrgUnitMappingForm', + name : 'iPAndOrgUnitMappingForm', frame : true, labelSeparator : ':', bodyStyle : 'padding:5px 5px 0px 5px', @@ -54,98 +37,66 @@ labelAlign : 'right', items : [{ xtype : 'combo', - fieldLabel : '用户名', - valueField : 'userNameValue', - displayField : 'userNameDisplay', - store : userNameJsonStore, + name : "orgUnit", + id : "orgUnit", + fieldLabel : '科室', + valueField : 'orgUnitValue', + displayField : 'orgUnitDisplay', + store : orgUnitSimpleStore, allowBlank : false, blankText : '此文本框不能为空', forceSelection : true, triggerAction : 'all', - hideTrigger : true, minChars : 0, - name : "userName", - id : "userName", maxHeight : 200, - anchor : '95%', - listeners : { - select : function(thisCombo, record, index) { - var fullName = top.Ext.getCmp('userName').getRawValue(); - fullName = fullName.substring((fullName.indexOf('(') + 1) ,fullName.lastIndexOf(')')); - top.Ext.getCmp('fullName').setValue(fullName); - - currentOrgUnitJsonStore.load(); - } - } - }, { - xtype : 'textfield', - fieldLabel : '用户姓名', - id : 'fullName', - name : 'fullName', - allowBlank : false, - blankText : '此文本框不能为空', - readOnly : true, anchor : '95%' }, { - xtype : 'combo', - fieldLabel : '默认科室', - valueField : 'currentOrgUnitValue', - displayField : 'currentOrgUnitDisplay', - store : currentOrgUnitJsonStore, - allowBlank : false, - blankText : '此文本框不能为空', - forceSelection : true, - triggerAction : 'all', - name : "currentOrgUnit", - id : "currentOrgUnit", - maxHeight : 200, - anchor : '95%' - }, { xtype : 'textarea', - fieldLabel : 'IP或者IP段', - height : 150, name : 'ipAddress', id : 'ipAddress', + fieldLabel : 'IP或者IP段', + height : 150, anchor : '95%', emptyText : '格式如:(192.168.1.1,192.168.1.1-192.168.1.10),IP地址之间用半角逗号分隔,IP地址段用"-"分隔', allowBlank : false, blankText : '此文本框不能为空' }], buttons : [{ - id : 'saveBtn', text : '保存', handler : save }, { text : '取消', - id : 'saveAndNewBtn', - handler : cancel + handler : function() { + iPAndOrgUnitMappingWindow.close(); + } }] }); - userIPAndOrgUnitMappingWindow = new top.Ext.Window( { - id : 'userIPAndOrgUnitMappingWindow', + iPAndOrgUnitMappingWindow = new top.Ext.Window( { + id : 'iPAndOrgUnitMappingWindow', + name : 'iPAndOrgUnitMappingWindow', layout : 'fit', - title : '用户IP地址段对应的默认科室配置', - width : 650, + title : 'Ip地址段对应的默认科室配置', + width : 500, + height : 260, border : false, modal : true, - autoHeight : true, +// autoHeight : true, plain : true, items : formObj }); - userIPAndOrgUnitMappingWindow.show(); + iPAndOrgUnitMappingWindow.show(); - if (id){ //如果是修改就加载需要的数据 formObj.form.load({ - url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!loadUserIPAndOrgUnitMapping.do', + url : WWWROOT + '/disinfectSystem/baseData/ipAndOrgUnitMappingAction!loadIpAndOrgUnitMapping.do', method : 'POST', waitMsg : '正在加载数据,请稍候', params : {id : id}, success : function(form, action) { var data = action.result.data; - top.Ext.getCmp('currentOrgUnit').setValue(data.defaultOrgUnitCode); - top.Ext.getCmp('currentOrgUnit').setRawValue(data.defaultOrgUnitName); + top.Ext.getCmp('orgUnit').setValue(data.orgUnitCoding); + top.Ext.getCmp('orgUnit').setRawValue(data.orgUnitName); }, failure : function(form, action) { } @@ -154,48 +105,7 @@ } - /** - * 验证ip是否合格的方法 - * - */ -function checkIpAddress(ipAddressString) { - var ipAddressStringArray = ipAddressString.split(','); - var temp = ''; - var ipReg = /^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/; - for (var i = 0; i < ipAddressStringArray.length; i ++) { - temp = ipAddressStringArray[i]; - if (temp.indexOf('-') > 0) { - var tempArray = temp.split('-'); - var ip1 = tempArray[0], ip2 = tempArray[1]; - if (ipReg.test(ip1) && ipReg.test(ip2) && (ip1.substring(0, ip1.lastIndexOf('.')) == ip2.substring(0, ip2.lastIndexOf('.')))) { //先判断这两个是不是IP的格式,并且IP的前三段要相同 - var number1 = parseInt(ip1.substring(ip1.lastIndexOf('.') + 1)); - var number2 = parseInt(ip2.substring(ip2.lastIndexOf('.') + 1)); - if (!(!isNaN(number1) && !isNaN(number2) && (number1 < number2))) { - return false; - } - } else { - return false; - } - } else { - if (!ipReg.test(temp)) { - return false; - } - - } - } - return true; -} - -/** - * 点击编辑窗口的取消按钮执行的方法 - */ -function cancel(thisButton) { - userIPAndOrgUnitMappingWindow.close(); -} - - -/** * 点击编辑窗口的保存按钮执行的方法 */ function save(thisButton) { @@ -206,9 +116,8 @@ return false; } - var userName = top.Ext.getCmp('userName').getValue(); - var defaultOrgUnitCode = top.Ext.getCmp('currentOrgUnit').getValue(); - var defaultOrgUnitName = top.Ext.getCmp('currentOrgUnit').getRawValue(); + var orgUnitCoding = top.Ext.getCmp('orgUnit').getValue(); + var orgUnitName = top.Ext.getCmp('orgUnit').getRawValue(); var ipAddress = top.Ext.getCmp('ipAddress').getValue().replace(/\s/ig, ''); //把回车换行、空格等等不可见字符去掉 //验证输入的ip是否符合规范 @@ -219,19 +128,17 @@ } - top.Ext.getCmp('userName').setRawValue(userName); //这里改变表单中的用户名的值,再提交 top.Ext.getCmp('ipAddress').setRawValue(ipAddress); //把回车换行、空格等等不可见字符去掉,再提交 formObj.form.submit({ - url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!saveUserIPAndOrgUnitMapping.do', + url : WWWROOT + '/disinfectSystem/baseData/ipAndOrgUnitMappingAction!saveIpAndOrgUnitMapping.do', method : 'POST', params : { - defaultOrgUnitCode : defaultOrgUnitCode, - defaultOrgUnitName : defaultOrgUnitName, + orgUnitCoding : orgUnitCoding, + orgUnitName : orgUnitName, id : id }, - success : function(thisForm, action) { - userIPAndOrgUnitMappingWindow.close(); + iPAndOrgUnitMappingWindow.close(); showResult('保存成功'); grid.dwrReload(); }, @@ -242,4 +149,35 @@ } +/** + * 验证ip是否合格的方法 + * + */ +function checkIpAddress(ipAddressString) { + var ipAddressStringArray = ipAddressString.split(','); + var temp = ''; + var ipReg = /^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/; + for (var i = 0; i < ipAddressStringArray.length; i ++) { + temp = ipAddressStringArray[i]; + if (temp.indexOf('-') > 0) { + var tempArray = temp.split('-'); + var ip1 = tempArray[0], ip2 = tempArray[1]; + if (ipReg.test(ip1) && ipReg.test(ip2) && (ip1.substring(0, ip1.lastIndexOf('.')) == ip2.substring(0, ip2.lastIndexOf('.')))) { //先判断这两个是不是IP的格式,并且IP的前三段要相同 + var number1 = parseInt(ip1.substring(ip1.lastIndexOf('.') + 1)); + var number2 = parseInt(ip2.substring(ip2.lastIndexOf('.') + 1)); + if (!(!isNaN(number1) && !isNaN(number2) && (number1 < number2))) { + return false; + } + } else { + return false; + } + } else { + if (!ipReg.test(temp)) { + return false; + } + + } + } + return true; +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/dwr/IpAndOrgUnitMappingTableManager.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/dwr/IpAndOrgUnitMappingTableManager.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/dwr/IpAndOrgUnitMappingTableManager.java (revision 15564) @@ -0,0 +1,33 @@ +package com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.dwr; + +import java.util.List; +import java.util.Map; + +import com.forgon.component.grid.GridManager; +import com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping.IpAndOrgUnitMapping; + +/** + * + * @author Chenjiaru 2016-09-05 + * + * + */ +public class IpAndOrgUnitMappingTableManager { + + + private GridManager gridManager; + + public void setGridManager(GridManager gridManager) { + this.gridManager = gridManager; + } + + public String findIpAndOrgUnitMappingTableList(Map> parameterMap) { + + String jsonDataString = gridManager.renderGrid(parameterMap, IpAndOrgUnitMapping.class.getSimpleName(), "where 1=1 ", new String[] {}); + + return jsonDataString; + + } + + +} Index: forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java =================================================================== diff -u -r14964 -r15564 --- forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 14964) +++ forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 15564) @@ -386,22 +386,22 @@ } /** - * 根据用户名获取科室和科室编码 + * 根据科室名称获取科室名称和科室编码 * chenjiaru 2016-09-10 */ - public String getOrgUnitCodingAndNameByUserName() { + public String getOrgUnitCodingAndNameByName() { try { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); - String userName = StrutsParamUtils.getPraramValue("userName", ""); + String orgUnitName = StrutsParamUtils.getPraramValue("orgUnit", ""); - List arrayList = orgUnitManager.findOrgUnitCodingAndNameByUserName(userName); + List orgUnitList = orgUnitManager.searchOrgUnitCodingAndNameByName(orgUnitName); JSONArray jSONArray = new JSONArray(); - for (String[] stringArray : arrayList) { + for (OrgUnit orgUnit : orgUnitList) { JSONArray jSONArrayTemp = new JSONArray(); - jSONArrayTemp.add(stringArray[0]); - jSONArrayTemp.add(stringArray[1]); + jSONArrayTemp.add(orgUnit.getOrgUnitCoding()); + jSONArrayTemp.add(orgUnit.getName()); jSONArray.add(jSONArrayTemp); } String jsonDataString = jSONArray.toString(); @@ -413,5 +413,5 @@ return null; } - + } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js =================================================================== diff -u -r15086 -r15564 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js (.../userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js) (revision 15086) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js (.../iPAndOrgUnitMapping/iPAndOrgUnitMappingView.js) (revision 15564) @@ -1,6 +1,7 @@ -var entityName = '用户IP地址段对应的默认科室配置'; +var entityName = 'Ip地址段对应的默认科室配置'; var grid; + /** * 点击修改时执行的方法 * @@ -16,7 +17,7 @@ return false; } id = records[0].data['id']; - addAndEditUserIPAndOrgUnitMapping(id); + addAndEditIpAndOrgUnitMapping(id); } /** @@ -32,7 +33,7 @@ * 点击删除时执行的方法 * */ -function deleteUserIPAndOrgUnitMapping(grid) { +function deleteIpAndOrgUnitMapping(grid) { var records = grid.getSelectionModel().getSelections(); if (records.length == 0) { @@ -51,7 +52,7 @@ function(button, text) { if ("yes" == button){ Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!deleteUserIPAndOrgUnitMapping.do', + url : WWWROOT + '/disinfectSystem/baseData/ipAndOrgUnitMappingAction!deleteIpAndOrgUnitMapping.do', params : {ids : ids}, success : function(response, options) { var result = Ext.decode(response.responseText); @@ -71,44 +72,38 @@ } - Ext.onReady(function() { Ext.QuickTips.init(); // 记录cookie(3步) var columns = [ - {header : "用户名", width : 120,dataIndex : 'userName', renderer : modifyRecord}, - {header : "用户姓名", width : 120,dataIndex : 'fullName'}, - {header : "默认科室", width : 120,dataIndex : 'defaultOrgUnitName'}, - {header : "IP地址范围", width : 120,dataIndex : 'ipAddress', id : 'cleaningMethod'} + {header : "科室", width : 120, dataIndex : 'orgUnitName', renderer : modifyRecord}, + {header : "Ip地址段", width : 120, dataIndex : 'ipAddress', id : 'cleaningMethod'} ]; var readerDetail = [ {name : 'id'}, - {name : 'userName'}, - {name : 'fullName'}, - {name : 'defaultOrgUnitName'}, + {name : 'orgUnitName'}, {name : 'ipAddress'} ]; var tbar = [{ text : '添加', iconCls : 'btn_ext_application_add', handler : function() { - addAndEditUserIPAndOrgUnitMapping(); + addAndEditIpAndOrgUnitMapping(); } }, '-', { text : '修改', iconCls : 'btn_ext_application_edit', - id : 'editTbar', handler : function() { loadFormDataAndUpdate(grid); } }, '-', { text : '删除', iconCls : 'btn_ext_application_del', handler : function() { - deleteUserIPAndOrgUnitMapping(grid); + deleteIpAndOrgUnitMapping(grid); } }]; @@ -127,7 +122,7 @@ columns : columns, frame : false }, readerDetail, - UserIPAndOrgUnitMappingTableManager.findUserIPAndOrgUnitMappingTableList, + IpAndOrgUnitMappingTableManager.findIpAndOrgUnitMappingTableList, null // 这个参数只是占位作用 ); Index: ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml =================================================================== diff -u -r15410 -r15564 --- ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 15410) +++ ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 15564) @@ -2003,12 +2003,12 @@ class="com.forgon.disinfectsystem.basedatamanager.staffArchives.service.StaffArchiveManagerImpl"> - - + - + @@ -2017,11 +2017,11 @@ - + - + Index: ssts-web/src/main/webapp/WEB-INF/dwr.xml =================================================================== diff -u -r15543 -r15564 --- ssts-web/src/main/webapp/WEB-INF/dwr.xml (.../dwr.xml) (revision 15543) +++ ssts-web/src/main/webapp/WEB-INF/dwr.xml (.../dwr.xml) (revision 15564) @@ -503,9 +503,9 @@ - - - + + + Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManagerImpl.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManagerImpl.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManagerImpl.java (revision 15564) @@ -0,0 +1,89 @@ +package com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.service; + +import java.util.List; + + + + + + +import com.forgon.directory.vo.LoginUserData; +import com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping.IpAndOrgUnitMapping; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.hibernate.ObjectDao; + +/** + * + * @author Chenjiaru 2016-09-10 + * + */ +public class IpAndOrgUnitMappingManagerImpl implements IpAndOrgUnitMappingManager{ + + private ObjectDao objectDao; + + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + + + @Override + public void saveOrUpdate(IpAndOrgUnitMapping ipAndOrgUnitMapping) { + objectDao.saveOrUpdate(ipAndOrgUnitMapping); + } + + @Override + public IpAndOrgUnitMapping getIpAndOrgUnitMappingById(String id) { + return (IpAndOrgUnitMapping) objectDao.getByProperty(IpAndOrgUnitMapping.class.getSimpleName(), "id", Long.valueOf(id)); + + } + + @Override + public void deleteIpAndOrgUnitMapping(Object[] idArray) { + for (Object object : idArray) { + objectDao.deleteById(IpAndOrgUnitMapping.class.getSimpleName(), object.toString()); + } + } + + + @Override + public boolean updateCurrentOrgUnit(LoginUserData loginUserData) { + + boolean flag = false; + String userIP = loginUserData.getUserIP(); + if(userIP.lastIndexOf(".") < 0){ + return flag; + } + String userIPTheFirstThree = userIP.substring(0, userIP.lastIndexOf(".")); + int userIPLast = Integer.parseInt(userIP.substring(userIP.lastIndexOf(".") + 1)); + + + List ipAndOrgUnitMappingList = objectDao.findAllObjects(IpAndOrgUnitMapping.class.getSimpleName()); + + for (IpAndOrgUnitMapping ipAndOrgUnitMapping : ipAndOrgUnitMappingList) { + String[] ipArray = ipAndOrgUnitMapping.getIpAddress().split(","); + for (String ip : ipArray) { + if (ip.indexOf("-") > 0) { + String[] tempArray = ip.split("-"); + String ip1 = tempArray[0]; + String ip2 = tempArray[1]; + String ip1TheFirstThree = ip1.substring(0, ip1.lastIndexOf(".")); + int ip1Last = Integer.parseInt(ip1.substring(ip1.lastIndexOf(".") + 1)); + int ip2Last = Integer.parseInt(ip2.substring(ip2.lastIndexOf(".") + 1)); + + flag = (userIPTheFirstThree.equals(ip1TheFirstThree) && ip1Last <= userIPLast && userIPLast <= ip2Last); + } else { + flag = userIP.equals(ip); + } + if (flag) { + loginUserData.setCurrentOrgUnitCode(ipAndOrgUnitMapping.getOrgUnitCoding()); + loginUserData.setCurrentOrgUnitName(ipAndOrgUnitMapping.getOrgUnitName()); + return flag; + } + } + } + return flag; + + } + + +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/action/IpAndOrgUnitMappingAction.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/action/IpAndOrgUnitMappingAction.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/action/IpAndOrgUnitMappingAction.java (revision 15564) @@ -0,0 +1,131 @@ +package com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.action; + + + +import net.sf.json.JSONObject; + +import org.apache.commons.lang.StringUtils; +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; +import org.springframework.beans.factory.annotation.Autowired; + +import com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.service.IpAndOrgUnitMappingManager; +import com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping.IpAndOrgUnitMapping; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; +import com.opensymphony.xwork2.ModelDriven; +import com.opensymphony.xwork2.Preparable; + +/** + * + * @author Chenjiaru 2016-09-10 + * + */ +@ParentPackage(value = "default") +@Namespace(value = "/disinfectSystem/baseData") +@Action(value = "ipAndOrgUnitMappingAction") +public class IpAndOrgUnitMappingAction implements ModelDriven, Preparable{ + + private IpAndOrgUnitMapping ipAndOrgUnitMapping; + +// @Autowired + private IpAndOrgUnitMappingManager ipAndOrgUnitMappingManager; + + public void setIpAndOrgUnitMappingManager(IpAndOrgUnitMappingManager ipAndOrgUnitMappingManager) { + this.ipAndOrgUnitMappingManager = ipAndOrgUnitMappingManager; + } + + + public void iniInfo() { + + try { + String id = StrutsParamUtils.getPraramValue("id", ""); + if (StringUtils.isNotBlank(id)) { + ipAndOrgUnitMapping = ipAndOrgUnitMappingManager.getIpAndOrgUnitMappingById(id); + } else { + ipAndOrgUnitMapping = new IpAndOrgUnitMapping(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + @Override + public IpAndOrgUnitMapping getModel() { + return ipAndOrgUnitMapping; + } + @Override + public void prepare() throws Exception { + iniInfo(); + } + + /** + * 保存的方法 + */ + public String saveIpAndOrgUnitMapping() { + JSONObject outputJson = JSONUtil.buildJsonObject(false, "保存失败"); + try { + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + + ipAndOrgUnitMappingManager.saveOrUpdate(ipAndOrgUnitMapping); + + outputJson = JSONUtil.buildJsonObject(true, "保存成功"); + StrutsResponseUtils.output(outputJson); + } catch (Exception e) { + e.printStackTrace(); + StrutsResponseUtils.output(outputJson); + } + + return null; + } + + /** + * 删除的方法 + */ + public String deleteIpAndOrgUnitMapping() { + + String ids = StrutsParamUtils.getPraramValue("ids", ""); + String message = ""; + try { + String[] idArray = ids.split(";"); + ipAndOrgUnitMappingManager.deleteIpAndOrgUnitMapping(idArray); + message = "{\"success\":true}"; + } catch (Exception e) { + message = "{\"success\":false}"; + e.printStackTrace(); + } + + try { + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + StrutsParamUtils.getResponse().getWriter().print(message); + } catch (Exception e) { + + } + + return null; + } + + /** + * 加载要修改的那一条记录的方法 + */ + public String loadIpAndOrgUnitMapping() { + try { + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + + org.json.JSONObject jsonObject = new org.json.JSONObject(); + jsonObject.put("success", true); + jsonObject.put("data", new org.json.JSONObject(ipAndOrgUnitMapping)); + + String jsonString = jsonObject.toString(); + StrutsParamUtils.getResponse().getWriter().println(jsonString); + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/ipandorgunitmapping/UserIPAndOrgUnitMapping.java =================================================================== diff -u -r15086 -r15564 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/ipandorgunitmapping/UserIPAndOrgUnitMapping.java (.../useripandorgunitmapping/UserIPAndOrgUnitMapping.java) (revision 15086) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/ipandorgunitmapping/UserIPAndOrgUnitMapping.java (.../ipandorgunitmapping/IpAndOrgUnitMapping.java) (revision 15564) @@ -1,4 +1,4 @@ -package com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping; +package com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping; import javax.persistence.Column; import javax.persistence.Entity; @@ -10,56 +10,25 @@ import org.hibernate.annotations.CacheConcurrencyStrategy; /** - * 用户ip地址段对应的默认科室配置 + * IP地址段对应的默认科室配置 * @author Chenjiaru 2106-09-05 * * */ @Entity @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) -public class UserIPAndOrgUnitMapping { +public class IpAndOrgUnitMapping { private Long id; - private String userName; //用户登录名 + private String orgUnitCoding; //科室编码 - private String fullName; //用户姓名 + private String orgUnitName; //科室名称 - private String defaultOrgUnitCode; //用户当前科室编码 - - private String defaultOrgUnitName; //用户当前科室名称 - - private String ipAddress; //当前科室绑定的IP(可以是单个IP地址,也可以是IP地址段,也可以两者并存) + private String ipAddress; //此科室绑定的IP(可以是单个IP地址,也可以是IP地址段,也可以两者并存) - - - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getDefaultOrgUnitCode() { - return defaultOrgUnitCode; - } - - public void setDefaultOrgUnitCode(String defaultOrgUnitCode) { - this.defaultOrgUnitCode = defaultOrgUnitCode; - } - - public String getDefaultOrgUnitName() { - return defaultOrgUnitName; - } - - public void setDefaultOrgUnitName(String defaultOrgUnitName) { - this.defaultOrgUnitName = defaultOrgUnitName; - } - @Column(length = 2000) public String getIpAddress() { return ipAddress; @@ -79,15 +48,20 @@ this.id = id; } - public String getFullName() { - return fullName; + public String getOrgUnitCoding() { + return orgUnitCoding; } - public void setFullName(String fullName) { - this.fullName = fullName; + public void setOrgUnitCoding(String orgUnitCoding) { + this.orgUnitCoding = orgUnitCoding; } - - - - + + public String getOrgUnitName() { + return orgUnitName; + } + + public void setOrgUnitName(String orgUnitName) { + this.orgUnitName = orgUnitName; + } + } Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r15543 -r15564 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 15543) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 15564) @@ -978,9 +978,9 @@ SSTS_ImportBaseData = false; -var SSTS_UserIPAndOrgUnitMapping = true; - -SSTS_UserIPAndOrgUnitMapping = false; +var SSTS_IPAndOrgUnitMapping = true; + +SSTS_IPAndOrgUnitMapping = false; var SSTS_Tousse_Update = true; Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r15543 -r15564 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 15543) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 15564) @@ -559,7 +559,7 @@ {hidden :SSTS_QualityItem,text:"质量监测项设置",href:WWWROOT+'/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualitymonitoringConfigView.jsp?type=质量监测',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_Qualitymonitoring,text:"定期监测项设置",href:WWWROOT+'/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualitymonitoringConfigView.jsp?type=定期监测',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ImportBaseData,text:"导入导出基础数据",href:WWWROOT+'/disinfectsystem/basedatamanager/importbasedata/importBasedata.mhtml',hrefTarget:linkTarget,leaf:true}, - {hidden :!(SSTS_UserIPAndOrgUnitMapping || sstsConfig.enableUserIPAndOrgUnitMapping),text:"IP对应的默认科室配置",href:WWWROOT+'/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp',hrefTarget:linkTarget,leaf:true}, //用户当前科室的配置 + {hidden :!(SSTS_IPAndOrgUnitMapping || sstsConfig.enableIPAndOrgUnitMapping),text:"IP对应的默认科室配置",href:WWWROOT+'/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/iPAndOrgUnitMappingView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GoodsBindingConfig,text:"物品绑定",href:WWWROOT+ '/disinfectsystem/goodsBindingConfig/goodsBindingConfigView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_SupplyRoomType,text:"科室供应室设置",href:WWWROOT+'/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeView.jsp?editMode=true',hrefTarget:linkTarget,leaf:true} // {hidden :false,text:"打印表单模板设置",href:WWWROOT+'/disinfectsystem/print/printForm.jsp',hrefTarget:linkTarget,leaf:true} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManager.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManager.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/ipandorgunitmapping/service/IpAndOrgUnitMappingManager.java (revision 15564) @@ -0,0 +1,39 @@ +package com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.service; + +import com.forgon.directory.vo.LoginUserData; +import com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping.IpAndOrgUnitMapping; + +/** + * + * @author Chenjiaru 2016-09-10 + * + */ +public interface IpAndOrgUnitMappingManager { + + /** + * 保存或者更新的方法 + * @param ipAndOrgUnitMapping + */ + public void saveOrUpdate(IpAndOrgUnitMapping ipAndOrgUnitMapping); + + /** + * 根据id得到IpAndOrgUnitMapping的一条记录 + * @param id + * @return + */ + public IpAndOrgUnitMapping getIpAndOrgUnitMappingById(String id); + + /** + * 删除给定id的记录的方法(支持批量删除) + * @param idArray + */ + public void deleteIpAndOrgUnitMapping(Object[] idArray); + + /** + * 此用户IP如果是经过配置过,那么就修改,没有就则不管(cjr) + * @param loginUserData + * @return + */ + public boolean updateCurrentOrgUnit(LoginUserData loginUserData); + +} Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r15543 -r15564 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 15543) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 15564) @@ -474,7 +474,7 @@ - + Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp =================================================================== diff -u -r14952 -r15564 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp (.../userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp) (revision 14952) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/iPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp (.../iPAndOrgUnitMapping/iPAndOrgUnitMappingView.jsp) (revision 15564) @@ -4,14 +4,14 @@ -用户IP地址段对应的默认科室配置 +Ip地址段对应的默认科室配置 - + - - + + Index: ssts-web/src/main/webapp/homepage/portalPage.jsp =================================================================== diff -u -r15337 -r15564 --- ssts-web/src/main/webapp/homepage/portalPage.jsp (.../portalPage.jsp) (revision 15337) +++ ssts-web/src/main/webapp/homepage/portalPage.jsp (.../portalPage.jsp) (revision 15564) @@ -53,7 +53,7 @@ } String openSelectOrgUnitWindow = (String)session.getAttribute("openSelectOrgUnitWindow"); //决定要不要显示切换科室的窗口 if ("打开".equals(openSelectOrgUnitWindow)) { - session.setAttribute("openSelectOrgUnitWindow", "不打开"); + session.setAttribute("openSelectOrgUnitWindow", "不打开"); //这一步防止刷新又会打开 } %> @@ -167,6 +167,7 @@ var directOrgUnitCodesWhereUserBelong = '<%=directOrgUnitCodesWhereUserBelong%>'; var directOrgUnitNamesWhereUserBelong = '<%=userData.getDirectOrgUnitNamesWhereUserBelong()%>'; var dirOrgCode = '<%=request.getAttribute("departCoding")%>'; +var oldCurrentOrgUnitCoding = '<%=userData.getCurrentOrgUnitCode()%>'; //(cjr) var jsonObj = eval('('+'${allSortPortalListData}'+')'); var hasOpenedTitleCodeArr = new Array();//已打开的tab标签 code(除个人桌面外) Index: ssts-web/src/main/webapp/openSystemMainPage.jsp =================================================================== diff -u -r15016 -r15564 --- ssts-web/src/main/webapp/openSystemMainPage.jsp (.../openSystemMainPage.jsp) (revision 15016) +++ ssts-web/src/main/webapp/openSystemMainPage.jsp (.../openSystemMainPage.jsp) (revision 15564) @@ -2,14 +2,14 @@ <%@ include file="/common/taglibs.jsp" %> <%@ page import="com.forgon.security.service.*,com.forgon.directory.vo.LoginUserData,com.forgon.tools.SpringBeanManger,com.forgon.security.service.OperationManager"%> <%@page import="com.forgon.systemsetting.service.HttpOptionManager,com.forgon.disinfectsystem.common.*"%> -<%@page import="com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.service.UserIPAndOrgUnitMappingManager"%> +<%@page import="com.forgon.disinfectsystem.basedatamanager.ipandorgunitmapping.service.IpAndOrgUnitMappingManager"%> <%@page import="java.util.List"%> <% LoginUserData loginUserData = AcegiHelper.getLoginUser(); session.setAttribute("openSelectOrgUnitWindow", "打开"); //决定要不要打切换科室的窗口 if(loginUserData.getDirectOrgUnitCodesWhereUserBelong() != null && loginUserData.getDirectOrgUnitCodesWhereUserBelong().indexOf(";") > 0){ - boolean flag = ((UserIPAndOrgUnitMappingManager)SpringBeanManger.getBean("userIPAndOrgUnitMappingManager")).setUserIPAndOrgUnitMapping(loginUserData); //查看此用户是否跟科室绑定过IP地址 - if (flag) { + boolean flag = ((IpAndOrgUnitMappingManager)SpringBeanManger.getBean("ipAndOrgUnitMappingManager")).updateCurrentOrgUnit(loginUserData); //此用户IP如果是经过配置过,那么就修改,没有就则不管 + if (flag) { //此用户IP如果是经过配置过,那么就不用弹出切换科室的小窗口 session.setAttribute("openSelectOrgUnitWindow", "不打开"); } } Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManagerImpl.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/dwr/UserIPAndOrgUnitMappingTableManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/action/UserIPAndOrgUnitMappingAction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 15564 refers to a dead (removed) revision in file `ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/useripandorgunitmapping/UserIPAndOrgUnitMapping.java'. Fisheye: No comparison available. Pass `N' to diff?