Index: ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java =================================================================== diff -u -r14209 -r14537 --- ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java (.../UserTableManager.java) (revision 14209) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java (.../UserTableManager.java) (revision 14537) @@ -18,7 +18,6 @@ import com.forgon.component.grid.GridManager; import com.forgon.component.grid.vo.GridVo; import com.forgon.directory.acegi.tools.AcegiHelper; -import com.forgon.directory.model.OrgUnit; import com.forgon.directory.model.OrgUserRelation; import com.forgon.directory.service.SysUserManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; @@ -246,6 +245,12 @@ userDetail.put("orgUnitNames", orgName); userDetail.put("roleNames", user.getRoleNames()); + if ("是".equals(user.getLockStatus())) { //是否被锁定,加了一个判断主要处理:医院之前没有这个字段,是一个null值,就把转成否(陈家儒改) + userDetail.put("lockStatus", user.getLockStatus()); + } else { + userDetail.put("lockStatus", "否"); + } + userObj.put("user", userDetail); userArray.add(userObj); Index: forgon-core/src/main/java/com/forgon/security/model/User.java =================================================================== diff -u -r14350 -r14537 --- forgon-core/src/main/java/com/forgon/security/model/User.java (.../User.java) (revision 14350) +++ forgon-core/src/main/java/com/forgon/security/model/User.java (.../User.java) (revision 14537) @@ -142,6 +142,11 @@ */ private String source = Constants.SOURCE_MANUAL; //默认手工 + /** + * 此用户是否被锁定(陈家儒改) + */ + private String lockStatus = "否"; //默认不锁定 + public String getPasswd() { return this.passwd; } @@ -641,6 +646,14 @@ this.source = source; } + public String getLockStatus() { + return lockStatus; + } + + public void setLockStatus(String lockStatus) { + this.lockStatus = lockStatus; + } + // 是否属于当前登录的用户的部门 @Transient public boolean isBelongsToCurrentLoginUserOrgs(){ Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java =================================================================== diff -u -r14406 -r14537 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 14406) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 14537) @@ -308,7 +308,7 @@ } } - if (!flag) { //没有给此用户手工指定过关系 + if (!flag && !"是".equals(user.getLockStatus())) { //没有给此用户手工指定过关系,并且没有被锁定 objectDao.delete(user); } } @@ -378,15 +378,36 @@ Map map = new HashMap(); for(UserVo vo : allVos){ // 检查用户是否存在 - ResultSet rs = objectDao.executeSql( - "select count(*) from SS_USERS u,OrgUserRelation r,OrgUnit o " - + "where u.id = r.userId and o.id = r.orgUnitId and o.orgUnitCoding " - + "= '"+ vo.orgUnitCoding+"' and u.name = '"+vo.coding+"'"); - boolean userExist = false; +// ResultSet rs = objectDao.executeSql( +// "select count(*) from SS_USERS u,OrgUserRelation r,OrgUnit o " +// + "where u.id = r.userId and o.id = r.orgUnitId and o.orgUnitCoding " +// + "= '"+ vo.orgUnitCoding+"' and u.name = '"+vo.coding+"'"); +// boolean userExist = false; +// try { +// while(rs.next()){ +// if(rs.getInt(1) > 0){ +// userExist = true; +// } +// } +// } catch (SQLException e) { +// e.printStackTrace(); +// }finally { +// DatabaseUtil.closeResultSetAndStatement(rs); +// } + ResultSet rs = objectDao.executeSql("select u.lockStatus from SS_USERS u,OrgUserRelation r,OrgUnit o " + + "where u.id = r.userId and o.id = r.orgUnitId and o.orgUnitCoding " + + "= '"+ (vo.orgUnitCoding == null ? '0' : vo.orgUnitCoding) +"' and u.name = '"+vo.coding+"'"); //这个用户存在的话,就找出与科室的关系(根据his那边的关系)这里有且只会查到一条 + + boolean userExist = false; //此用户是否存在 + boolean isLockStatus = false; //此用户是否被锁定 try { while(rs.next()){ - if(rs.getInt(1) > 0){ + String lockStatus = rs.getString(1); //这里取出来的可能为null,因为旧数据表没有这个字段,不过也他修改无所谓,(这里对被锁定的用户不会被影响的) + if(lockStatus != null){ userExist = true; + if ("是".equals(lockStatus)) { + isLockStatus = true; + } } } } catch (SQLException e) { @@ -395,8 +416,13 @@ DatabaseUtil.closeResultSetAndStatement(rs); } - if(userExist && !更新交集数据){ - continue; +// if(userExist && !更新交集数据){ +// continue; +// } + if (userExist) { + if (!更新交集数据 || isLockStatus) { //如果用户被锁定了, 则不允许修改 + continue; + } } Index: ssts-web/src/main/webapp/systemmanage/userFormExt.js =================================================================== diff -u -r14209 -r14537 --- ssts-web/src/main/webapp/systemmanage/userFormExt.js (.../userFormExt.js) (revision 14209) +++ ssts-web/src/main/webapp/systemmanage/userFormExt.js (.../userFormExt.js) (revision 14537) @@ -231,6 +231,21 @@ }] }] },{ + xtype : 'combo', //(陈家儒改) + fieldLabel : '是否锁定', + name : 'lockStatus', + id : 'lockStatus', + triggerAction: 'all', + mode : 'local', + forceSelection : true, + store : new Ext.data.SimpleStore({ + fields: ['id', 'displayText'], + data: [['否', '否'], ['是', '是']] + }), + valueField : 'id', + displayField : 'displayText', + value : '否' + },{ fieldLabel: '所属部门', width: 428, xtype : 'trigger', Index: forgon-core/src/main/java/com/forgon/directory/action/UserAction.java =================================================================== diff -u -r12331 -r14537 --- forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 12331) +++ forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 14537) @@ -195,6 +195,9 @@ Map map = new HashMap(); map.put("success", true); + if (!"是".equals(user.getLockStatus())) { //这个判断主要处理:医院之前没有这个字段,是一个null值,就把转成否(陈家儒改) + user.setLockStatus("否"); + } map.put("data", user); JSONObject jsonObject = JSONObject.fromObject(map, config); String jsonStr = jsonObject.toString(); Index: ssts-web/src/main/webapp/systemmanage/userExtView.js =================================================================== diff -u -r14505 -r14537 --- ssts-web/src/main/webapp/systemmanage/userExtView.js (.../userExtView.js) (revision 14505) +++ ssts-web/src/main/webapp/systemmanage/userExtView.js (.../userExtView.js) (revision 14537) @@ -86,6 +86,8 @@ function deleteUser(){ var ids = grid.getSelectedValues('user.id', ';'); var userName = ";" + grid.getSelectedValues('user.name', ';') + ";"; + var lockStatus = ";" + grid.getSelectedValues('user.lockStatus', ';') + ";"; + if(ids == ""){ //(陈家儒改).trim() alert("请选择要删除的用户!"); return false; @@ -94,6 +96,10 @@ alert("不能删除系统管理员帐号!"); return false; } + if(lockStatus.indexOf(";是;") >= 0){ //(陈家儒改) + alert("不能删除被锁定的用户!"); + return false; + } showWaitMsg("删除用户"); UserTableManager.deleteUserByKeyIds(ids, function(){showSuccess();grid.dwrReload();}); } @@ -263,12 +269,13 @@ //Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); var columns = [ - {header: "user.id", width: 50, hidden:true,sortable: true,resizable: true, menuDisabled: false, dataIndex: 'user.id'}, + /*{header: "user.id", width: 50, hidden:true,sortable: true,resizable: true, menuDisabled: false, dataIndex: 'user.id'},*/ {header: "姓名", width: 100, dataIndex: 'user.fullName', renderer : gotoPage, sortable: false, menuDisabled: true}, {header: "登录名", width: 100, dataIndex: 'user.name', sortable: false, menuDisabled: true}, {header: "所属科室", width: 200, dataIndex: 'user.orgUnitNames', sortable: false, menuDisabled: true, renderer : returnEmptyValueIfNull}, {header : '条码',width: 150, dataIndex: 'user.barcode', sortable: false}, {header : '数据来源',width: 100, dataIndex: 'user.source', sortable: false}, //陳家儒: + {header : '锁定',width: 100, dataIndex: 'user.lockStatus', sortable: false}, //陳家儒: {id:'operationDescription', header: "拥有角色", width: 150, dataIndex: 'user.roleNames', sortable: false, menuDisabled: true, renderer : returnEmptyValueIfNull}, {header: "排序操作", width: 100, dataIndex: 'id', renderer : moveUpDown, hidden: true, sortable: false, menuDisabled: true}, {header: "拼音码", width: 100, dataIndex: 'user.spelling', hidden: true, sortable: false, menuDisabled: true}, @@ -284,6 +291,7 @@ {name: 'user.name'}, {name: 'user.orgUnitNames'}, {name: 'user.source'}, //陳家儒: + {name: 'user.lockStatus'}, {name: 'user.roleNames'} ];