Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.jsp (revision 14952)
@@ -0,0 +1,29 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ include file="/common/taglibs.jsp"%>
+<%@ include file="/common/includeExtJsAndCss.jsp"%>
+
+
+
+用户IP地址段对应的默认科室配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingForm.js (revision 14952)
@@ -0,0 +1,232 @@
+var id;
+var formObj;
+var userIPAndOrgUnitMappingWindow;
+
+function addAndEditUserIPAndOrgUnitMapping(id) {
+
+ this.id = id;
+ /**
+ * 用户的当前科室的store
+ */
+ var currentOrgUnitJsonStore = new Ext.data.SimpleStore({
+ fields : [ 'currentOrgUnitValue', 'currentOrgUnitDisplay' ],
+ url : WWWROOT + '/systemmanage/orgUnit/getOrgUnitCodingAndNameByUserName.do',
+ listeners : {
+ beforeload : function(thisCombo, options) {
+ currentOrgUnitJsonStore.baseParams.userName = top.Ext.getCmp('userName').getValue(); //加载之前先把用户名传给后台
+ },
+ load : function(store, records) {
+ if (records.length > 0 && !id) { //如果是修改的按钮不会走这里
+ 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('此用户没有所属科室,不能进行设置!');
+ }
+ }
+ }
+ });
+
+ /**
+ * 用户名的store
+ */
+ var userNameJsonStore = new Ext.data.SimpleStore({
+ fields : [ 'userNameValue', 'userNameDisplay' ],
+ url : WWWROOT + '/systemmanage/user/getAllUserFillNameAndNameByUserName.do',
+ listeners : {
+ beforeload : function(thisCombo, options) {
+ userNameJsonStore.baseParams.userName = top.Ext.getCmp('userName').getRawValue();
+ }
+ }
+ });
+
+
+ formObj = new top.Ext.FormPanel({
+ id : 'userIPAndOrgUnitMappingForm',
+ frame : true,
+ labelSeparator : ':',
+ bodyStyle : 'padding:5px 5px 0px 5px',
+ labelWidth : 100,
+ height : 400,
+ autoScroll : true,
+ labelAlign : 'right',
+ items : [{
+ xtype : 'combo',
+ fieldLabel : '用户名',
+ valueField : 'userNameValue',
+ displayField : 'userNameDisplay',
+ store : userNameJsonStore,
+ 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) {
+ currentOrgUnitJsonStore.load();
+ }
+ }
+ }, {
+ 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',
+ 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
+ }]
+ });
+
+ userIPAndOrgUnitMappingWindow = new top.Ext.Window( {
+ id : 'userIPAndOrgUnitMappingWindow',
+ layout : 'fit',
+ title : '用户IP地址段对应的默认科室配置',
+ width : 650,
+ border : false,
+ modal : true,
+ autoHeight : true,
+ plain : true,
+ items : formObj
+ });
+ userIPAndOrgUnitMappingWindow.show();
+
+
+ if (id){ //如果是修改就加载需要的数据
+ formObj.form.load({
+ url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!loadUserIPAndOrgUnitMapping.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);
+ },
+ failure : function(form, action) {
+ }
+ });
+ }
+
+}
+
+
+/**
+ * 验证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) {
+ thisButton.disable();
+ if (!formObj.form.isValid()) {
+ showResult('请正确填写表单各值');
+ thisButton.enable();
+ return false;
+ }
+
+ var userName = top.Ext.getCmp('userName').getValue();
+ var defaultOrgUnitCode = top.Ext.getCmp('currentOrgUnit').getValue();
+ var defaultOrgUnitName = top.Ext.getCmp('currentOrgUnit').getRawValue();
+ var ipAddress = top.Ext.getCmp('ipAddress').getValue().replace(/\s/ig, ''); //把回车换行、空格等等不可见字符去掉
+
+ //验证输入的ip是否符合规范
+ if (!checkIpAddress(ipAddress)) {
+ showResult('请正确填写IP地址');
+ thisButton.enable();
+ return false;
+ }
+
+
+ top.Ext.getCmp('userName').setRawValue(userName); //这里改变表单中的用户名的值,再提交
+ top.Ext.getCmp('ipAddress').setRawValue(ipAddress); //把回车换行、空格等等不可见字符去掉,再提交
+ formObj.form.submit({
+ url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!saveUserIPAndOrgUnitMapping.do',
+ method : 'POST',
+ params : {
+ defaultOrgUnitCode : defaultOrgUnitCode,
+ defaultOrgUnitName : defaultOrgUnitName,
+ id : id
+ },
+
+ success : function(thisForm, action) {
+ userIPAndOrgUnitMappingWindow.close();
+ showResult('保存成功');
+ grid.dwrReload();
+ },
+ failure : function(thisForm, action) {
+ alert('保存失败了');
+ }
+ });
+
+}
+
+
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManagerImpl.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManagerImpl.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManagerImpl.java (revision 14952)
@@ -0,0 +1,90 @@
+package com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.service;
+
+import java.util.List;
+
+
+
+
+
+import com.forgon.directory.vo.LoginUserData;
+import com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping.UserIPAndOrgUnitMapping;
+import com.forgon.tools.StrutsParamUtils;
+import com.forgon.tools.hibernate.ObjectDao;
+
+/**
+ *
+ * @author Chenjiaru 2016-09-10
+ *
+ */
+public class UserIPAndOrgUnitMappingManagerImpl implements UserIPAndOrgUnitMappingManager{
+
+ private ObjectDao objectDao;
+
+ public void setObjectDao(ObjectDao objectDao) {
+ this.objectDao = objectDao;
+ }
+
+
+ @Override
+ public void saveOrUpdate(UserIPAndOrgUnitMapping userIPAndOrgUnitMapping) {
+ objectDao.saveOrUpdate(userIPAndOrgUnitMapping);
+ }
+
+ @Override
+ public UserIPAndOrgUnitMapping getUserIPAndOrgUnitMappingById(String id) {
+ return (UserIPAndOrgUnitMapping) objectDao.getByProperty(UserIPAndOrgUnitMapping.class.getSimpleName(), "id", Long.valueOf(id));
+
+ }
+
+ @Override
+ public void deleteUserIPAndOrgUnitMapping(Object[] idArray) {
+ for (Object object : idArray) {
+ objectDao.deleteById(UserIPAndOrgUnitMapping.class.getSimpleName(), object.toString());
+ }
+ }
+
+
+ @Override
+ public LoginUserData setUserIPAndOrgUnitMapping(LoginUserData loginUserData) {
+
+ String userName = loginUserData.getUserName();
+ String userIP = loginUserData.getUserIP();
+ if(userIP.lastIndexOf(".") < 0){
+ return loginUserData;
+ }
+ String userIPTheFirstThree = userIP.substring(0, userIP.lastIndexOf("."));
+ int userIPLast = Integer.parseInt(userIP.substring(userIP.lastIndexOf(".") + 1));
+
+
+ List userIPAndOrgUnitMappingList = objectDao.findByProperty(UserIPAndOrgUnitMapping.class.getSimpleName(), "userName", userName);
+
+ boolean flag = false;
+ for (UserIPAndOrgUnitMapping userIPAndOrgUnitMapping : userIPAndOrgUnitMappingList) {
+ String[] ipArray = userIPAndOrgUnitMapping.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(userIPAndOrgUnitMapping.getDefaultOrgUnitCode());
+ loginUserData.setCurrentOrgUnitName(userIPAndOrgUnitMapping.getDefaultOrgUnitName());
+ return loginUserData;
+ }
+ }
+ }
+
+ return loginUserData;
+
+
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/userIPAndOrgUnitMapping/userIPAndOrgUnitMappingView.js (revision 14952)
@@ -0,0 +1,141 @@
+var entityName = '用户IP地址段对应的默认科室配置';
+var grid;
+
+/**
+ * 点击修改时执行的方法
+ *
+ */
+function loadFormDataAndUpdate(grid) {
+ var records = grid.getSelectionModel().getSelections();
+ if (records.length == 0) {
+ showResult("请选择要修改的记录!");
+ return false;
+ }
+ if (records.length > 1) {
+ showResult("一次只能修改一条记录!");
+ return false;
+ }
+ id = records[0].data['id'];
+ addAndEditUserIPAndOrgUnitMapping(id);
+}
+
+/**
+ * 修改记录
+ * modifyRecord函数 触发modify函数调用,并传入当前列的值以及record.data对象
+ * 页面中需要定义 modify(v,data) 函数
+ */
+function modify(v,data){
+ loadFormDataAndUpdate(grid);
+}
+
+/**
+ * 点击删除时执行的方法
+ *
+ */
+function deleteUserIPAndOrgUnitMapping(grid) {
+ var records = grid.getSelectionModel().getSelections();
+
+ if (records.length == 0) {
+ showResult("请选择要删除的记录!");
+ return false;
+ }
+ var ids = null;
+ for (var i = 0, len = records.length; i < len; i ++) {
+ if (ids == null) {
+ ids = records[i].data['id'];
+ } else {
+ ids = ids + ';' + records[i].data['id'];
+ }
+ }
+ top.Ext.MessageBox.confirm("请确认","是否确定要删除选中的记录?",
+ function(button, text) {
+ if ("yes" == button){
+ Ext.Ajax.request({
+ url : WWWROOT + '/disinfectSystem/baseData/userIPAndOrgUnitMappingAction!deleteUserIPAndOrgUnitMapping.do',
+ params : {ids : ids},
+ success : function(response, options) {
+ var result = Ext.decode(response.responseText);
+ if (result.success) {
+ showResult('删除成功!');
+ grid.dwrReload();
+ } else {
+ showResult('删除失败!');
+ }
+ },
+ failure : function(response, options) {
+ showResult('对不起!服务器正忙,删除失败');
+ }
+ });
+ }
+ });
+
+}
+
+
+Ext.onReady(function() {
+ Ext.QuickTips.init();
+ // 记录cookie(3步)
+
+ var columns = [
+ {header : "用户名", width : 120,dataIndex : 'userName', renderer : modifyRecord},
+ {header : "默认科室", width : 120,dataIndex : 'defaultOrgUnitName'},
+ {header : "IP地址范围", width : 120,dataIndex : 'ipAddress', id : 'cleaningMethod'}
+ ];
+
+ var readerDetail = [
+ {name : 'id'},
+ {name : 'userName'},
+ {name : 'defaultOrgUnitName'},
+ {name : 'ipAddress'}
+ ];
+
+ var tbar = [{
+ text : '添加',
+ iconCls : 'btn_ext_application_add',
+ handler : function() {
+ addAndEditUserIPAndOrgUnitMapping();
+ }
+ }, '-', {
+ text : '修改',
+ iconCls : 'btn_ext_application_edit',
+ id : 'editTbar',
+ handler : function() {
+ loadFormDataAndUpdate(grid);
+ }
+ }, '-', {
+ text : '删除',
+ iconCls : 'btn_ext_application_del',
+ handler : function() {
+ deleteUserIPAndOrgUnitMapping(grid);
+ }
+ }];
+
+ Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() {}; //这句是干嘛的
+
+ grid = new Ext.ux.ForgonPageGrid( {
+ rememberSelected : false, //取消清除已选
+ autoExpandColumn : 'cleaningMethod', //自动扩展的列
+// renderTo : 'gridDiv', //这句是干嘛的
+ isCheckboxSelectionModel : true, //复选框模式
+ defaultSortField : 'id',
+ defaultSortDirection : 'DESC',
+ tbar : tbar,
+ pageSize : 20,
+ title : entityName,
+ columns : columns,
+ frame : false
+ }, readerDetail,
+ UserIPAndOrgUnitMappingTableManager.findUserIPAndOrgUnitMappingTableList,
+ null // 这个参数只是占位作用
+ );
+
+ var viewport = new Ext.Viewport({
+ layout : 'border',
+ items : [{
+ region : 'center',
+ margins : '0 0 0 0',
+ layout : 'fit',
+ items : grid
+ }]
+ });
+});
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/dwr/UserIPAndOrgUnitMappingTableManager.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/dwr/UserIPAndOrgUnitMappingTableManager.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/dwr/UserIPAndOrgUnitMappingTableManager.java (revision 14952)
@@ -0,0 +1,33 @@
+package com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.dwr;
+
+import java.util.List;
+import java.util.Map;
+
+import com.forgon.component.grid.GridManager;
+import com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping.UserIPAndOrgUnitMapping;
+
+/**
+ *
+ * @author Chenjiaru 2016-09-05
+ *
+ *
+ */
+public class UserIPAndOrgUnitMappingTableManager {
+
+
+ private GridManager gridManager;
+
+ public void setGridManager(GridManager gridManager) {
+ this.gridManager = gridManager;
+ }
+
+ public String findUserIPAndOrgUnitMappingTableList(Map> parameterMap) {
+
+ String jsonDataString = gridManager.renderGrid(parameterMap, UserIPAndOrgUnitMapping.class.getSimpleName(), "where 1=1 ", new String[] {});
+
+ return jsonDataString;
+
+ }
+
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/useripandorgunitmapping/UserIPAndOrgUnitMapping.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/useripandorgunitmapping/UserIPAndOrgUnitMapping.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/useripandorgunitmapping/UserIPAndOrgUnitMapping.java (revision 14952)
@@ -0,0 +1,83 @@
+package com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+/**
+ * 用户ip地址段对应的默认科室配置
+ * @author Chenjiaru 2106-09-05
+ *
+ *
+ */
+
+@Entity
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class UserIPAndOrgUnitMapping {
+
+ private Long id;
+
+ private String userName; //用户登录名
+
+ private String defaultOrgUnitCode; //用户当前科室编码
+
+ private String defaultOrgUnitName; //用户当前科室名称
+
+ 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;
+ }
+
+ public void setIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ }
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+
+
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManager.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManager.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/service/UserIPAndOrgUnitMappingManager.java (revision 14952)
@@ -0,0 +1,40 @@
+package com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.service;
+
+import com.forgon.directory.vo.LoginUserData;
+import com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping.UserIPAndOrgUnitMapping;
+
+/**
+ *
+ * @author Chenjiaru 2016-09-10
+ *
+ */
+public interface UserIPAndOrgUnitMappingManager {
+
+ /**
+ * 保存或者更新的方法
+ * @param userIPAndOrgUnitMapping
+ */
+ public void saveOrUpdate(UserIPAndOrgUnitMapping userIPAndOrgUnitMapping);
+
+ /**
+ * 根据id得到UserCurrentOrgUnit的一条记录
+ * @param id
+ * @return
+ */
+ public UserIPAndOrgUnitMapping getUserIPAndOrgUnitMappingById(String id);
+
+ /**
+ * 删除给定id的记录的方法(支持批量删除)
+ * @param idArray
+ */
+ public void deleteUserIPAndOrgUnitMapping(Object[] idArray);
+
+ /**
+ * 如果当前登陆的用户和科室绑定过ip,则把当前科室设置成这个绑定的科室
+ * @param loginUserData:登录用户的VO
+ * @param userIP:用户的IP地址
+ * @return
+ */
+ public LoginUserData setUserIPAndOrgUnitMapping(LoginUserData loginUserData);
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/action/UserIPAndOrgUnitMappingAction.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/action/UserIPAndOrgUnitMappingAction.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/useripandorgunitmapping/action/UserIPAndOrgUnitMappingAction.java (revision 14952)
@@ -0,0 +1,132 @@
+package com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.action;
+
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletResponse;
+
+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 com.forgon.disinfectsystem.basedatamanager.useripandorgunitmapping.service.UserIPAndOrgUnitMappingManager;
+import com.forgon.disinfectsystem.entity.basedatamanager.useripandorgunitmapping.UserIPAndOrgUnitMapping;
+import com.forgon.tools.StrutsParamUtils;
+import com.forgon.tools.StrutsResponseUtils;
+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 = "userIPAndOrgUnitMappingAction")
+public class UserIPAndOrgUnitMappingAction implements ModelDriven, Preparable{
+
+ private UserIPAndOrgUnitMapping userIPAndOrgUnitMapping;
+
+ private UserIPAndOrgUnitMappingManager userIPAndOrgUnitMappingManager;
+
+ public void setUserIPAndOrgUnitMappingManager(UserIPAndOrgUnitMappingManager userIPAndOrgUnitMappingManager) {
+ this.userIPAndOrgUnitMappingManager = userIPAndOrgUnitMappingManager;
+ }
+
+ public void iniInfo() {
+
+ try {
+ String id = StrutsParamUtils.getPraramValue("id", "");
+ if (StringUtils.isNotBlank(id)) {
+ userIPAndOrgUnitMapping = userIPAndOrgUnitMappingManager.getUserIPAndOrgUnitMappingById(id);
+ } else {
+ userIPAndOrgUnitMapping = new UserIPAndOrgUnitMapping();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ @Override
+ public UserIPAndOrgUnitMapping getModel() {
+ return userIPAndOrgUnitMapping;
+ }
+ @Override
+ public void prepare() throws Exception {
+ iniInfo();
+ }
+
+ /**
+ * 保存的方法
+ */
+ public String saveUserIPAndOrgUnitMapping() {
+ JSONObject outputJson = JSONUtil.buildJsonObject(false, "保存失败");
+ try {
+ StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8");
+
+ userIPAndOrgUnitMappingManager.saveOrUpdate(userIPAndOrgUnitMapping);
+
+ outputJson = JSONUtil.buildJsonObject(true, "保存成功");
+ StrutsResponseUtils.output(outputJson);
+ } catch (Exception e) {
+ e.printStackTrace();
+ StrutsResponseUtils.output(outputJson);
+ }
+
+
+ return null;
+ }
+
+ /**
+ * 删除的方法
+ */
+ public String deleteUserIPAndOrgUnitMapping() {
+
+ String ids = StrutsParamUtils.getPraramValue("ids", "");
+ String message = "";
+ try {
+ String[] idArray = ids.split(";");
+ userIPAndOrgUnitMappingManager.deleteUserIPAndOrgUnitMapping(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 loadUserIPAndOrgUnitMapping() {
+ 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(userIPAndOrgUnitMapping));
+
+ String jsonString = jsonObject.toString();
+ StrutsParamUtils.getResponse().getWriter().println(jsonString);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ return null;
+ }
+
+
+}