diff --git a/erp_web/pages/manage/user.html b/erp_web/pages/manage/user.html index 7e2548b6..9ba2e063 100644 --- a/erp_web/pages/manage/user.html +++ b/erp_web/pages/manage/user.html @@ -104,7 +104,7 @@ - 用户排序 + 排序 @@ -175,7 +175,7 @@ title: '操作', field: 'isystem', align: "center", width: 80, formatter: function (value, rec, index) { var str = ''; - if(rec.loginName != "jsh") { + if(rec.userType != "演示用户") { str += '   '; } if(isShowOpFun()) { @@ -188,19 +188,7 @@ return str; } }, - { - title: '用户类型', field: 'userType', width: 80, formatter: function (value, rec, index) { - var str = ''; - if (rec.id == rec.tenantId) { - str = "租户"; - } else if(rec.tenantId == null){ - str = "超管"; - } else { - str = "普通"; - } - return str; - } - }, + {title: '用户类型', field: 'userType', width: 80}, {title: '登录名称', field: 'loginName', width: 80, align: "center"}, {title: '用户姓名', field: 'username', width: 80, align: "center"}, {title: '角色', field: 'roleName', width: 80, align: "center"}, @@ -208,7 +196,7 @@ {title: '机构', field: 'orgAbr', width: 115, align: "center"}, {title: '电子邮箱', field: 'email', width: 150, align: "center"}, {title: '电话号码', field: 'phonenum', width: 150, align: "center"}, - {title: '用户排序', field: 'userBlngOrgaDsplSeq', width: 80, align: "center"}, + {title: '排序', field: 'userBlngOrgaDsplSeq', width: 80, align: "center"}, {title: '描述', field: 'description', width: 130}, {field: 'orgaId',hidden:true, width: 10} ]], diff --git a/src/main/java/com/jsh/erp/datasource/entities/UserEx.java b/src/main/java/com/jsh/erp/datasource/entities/UserEx.java index 04f08be0..8209408e 100644 --- a/src/main/java/com/jsh/erp/datasource/entities/UserEx.java +++ b/src/main/java/com/jsh/erp/datasource/entities/UserEx.java @@ -18,6 +18,8 @@ public class UserEx extends User{ private String roleName; + private String userType; + public String getOrgAbr() { return orgAbr; } @@ -57,4 +59,12 @@ public class UserEx extends User{ public void setRoleName(String roleName) { this.roleName = roleName; } + + public String getUserType() { + return userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java index c5154c98..bb7a9932 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -21,7 +21,7 @@ public interface DepotHeadMapperEx { List selectByConditionDepotHead( @Param("type") String type, @Param("subType") String subType, - @Param("handsPersonId") Long handsPersonId, + @Param("handsPersonIds") String[] handsPersonIds, @Param("number") String number, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @@ -33,7 +33,7 @@ public interface DepotHeadMapperEx { Long countsByDepotHead( @Param("type") String type, @Param("subType") String subType, - @Param("handsPersonId") Long handsPersonId, + @Param("handsPersonIds") String[] handsPersonIds, @Param("number") String number, @Param("beginTime") String beginTime, @Param("endTime") String endTime, diff --git a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index d77763c1..54a9d354 100644 --- a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -15,6 +15,7 @@ import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.JshException; import com.jsh.erp.service.depotItem.DepotItemService; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.orgaUserRel.OrgaUserRelService; import com.jsh.erp.service.serialNumber.SerialNumberService; import com.jsh.erp.service.supplier.SupplierService; import com.jsh.erp.service.user.UserService; @@ -53,6 +54,8 @@ public class DepotHeadService { @Resource private SerialNumberService serialNumberService; @Resource + private OrgaUserRelService orgaUserRelService; + @Resource DepotItemMapperEx depotItemMapperEx; @Resource private LogService logService; @@ -81,15 +84,21 @@ public class DepotHeadService { public List select(String type, String subType, String roleType, String number, String beginTime, String endTime, String materialParam, String depotIds, int offset, int rows)throws Exception { - Long handsPersonId = null; + String handsPersonIds = ""; User user = userService.getCurrentUser(); if("个人数据".equals(roleType)) { - handsPersonId = user.getId(); + handsPersonIds = user.getId().toString(); + } else if("本机构数据".equals(roleType)) { + handsPersonIds = orgaUserRelService.getUserIdListByUserId(user.getId()); + } + String [] handsPersonIdArray=null; + if(StringUtil.isNotEmpty(handsPersonIds)){ + handsPersonIdArray = handsPersonIds.split(","); } List resList = new ArrayList(); List list=null; try{ - list=depotHeadMapperEx.selectByConditionDepotHead(type, subType, handsPersonId, number, beginTime, endTime, materialParam, depotIds, offset, rows); + list=depotHeadMapperEx.selectByConditionDepotHead(type, subType, handsPersonIdArray, number, beginTime, endTime, materialParam, depotIds, offset, rows); }catch(Exception e){ JshException.readFail(logger, e); } @@ -125,14 +134,20 @@ public class DepotHeadService { public Long countDepotHead(String type, String subType, String roleType,String number, String beginTime, String endTime, String materialParam, String depotIds) throws Exception{ - Long handsPersonId = null; + String handsPersonIds = ""; User user = userService.getCurrentUser(); if("个人数据".equals(roleType)) { - handsPersonId = user.getId(); + handsPersonIds = user.getId().toString(); + } else if("本机构数据".equals(roleType)) { + handsPersonIds = orgaUserRelService.getUserIdListByUserId(user.getId()); + } + String [] handsPersonIdArray=null; + if(StringUtil.isNotEmpty(handsPersonIds)){ + handsPersonIdArray = handsPersonIds.split(","); } Long result=null; try{ - result=depotHeadMapperEx.countsByDepotHead(type, subType, handsPersonId, number, beginTime, endTime, materialParam, depotIds); + result=depotHeadMapperEx.countsByDepotHead(type, subType, handsPersonIdArray, number, beginTime, endTime, materialParam, depotIds); }catch(Exception e){ JshException.readFail(logger, e); } diff --git a/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java b/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java index 17f9ac50..66701eb7 100644 --- a/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java +++ b/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java @@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -41,6 +42,8 @@ public class OrgaUserRelService { @Resource private UserService userService; @Resource + private OrganizationService organizationService; + @Resource private LogService logService; public OrgaUserRel getOrgaUserRel(long id) throws Exception{ @@ -169,4 +172,48 @@ public class OrgaUserRelService { } return null; } + + /** + * 根据用户id获取用户id列表 + * @param userId + * @return + * @throws Exception + */ + public String getUserIdListByUserId(Long userId) throws Exception{ + OrgaUserRel our = new OrgaUserRel(); + OrgaUserRelExample example = new OrgaUserRelExample(); + example.createCriteria().andUserIdEqualTo(userId); + List list = orgaUserRelMapper.selectByExample(example); + if(list!=null && list.size()>0) { + our = list.get(0); + } + List userIdList = getUserIdListByOrgId(our.getOrgaId()); + String users = ""; + for(Long u: userIdList){ + users = users + u + ","; + } + if(users.length()>0){ + users = users.substring(0,users.length()-1); + } + return users; + } + + /** + * 根据组织id获取所属的用户id列表(包含组织的递归) + * @param orgId + * @return + */ + public List getUserIdListByOrgId(Long orgId) { + List orgIdList = organizationService.getOrgIdByParentId(orgId); + List userIdList = new ArrayList(); + OrgaUserRelExample example = new OrgaUserRelExample(); + example.createCriteria().andOrgaIdIn(orgIdList).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = orgaUserRelMapper.selectByExample(example); + if(list!=null && list.size()>0) { + for(OrgaUserRel our: list) { + userIdList.add(our.getUserId()); + } + } + return userIdList; + } } diff --git a/src/main/java/com/jsh/erp/service/organization/OrganizationService.java b/src/main/java/com/jsh/erp/service/organization/OrganizationService.java index 5452240f..dc356e77 100644 --- a/src/main/java/com/jsh/erp/service/organization/OrganizationService.java +++ b/src/main/java/com/jsh/erp/service/organization/OrganizationService.java @@ -273,4 +273,38 @@ public class OrganizationService { } return result; } + + /** + * 根据父级id递归获取子集组织id + * @return + */ + public List getOrgIdByParentId(Long orgId) { + List idList = new ArrayList(); + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdEqualTo(orgId).andOrgStcdNotEqualTo(BusinessConstants.ORGANIZATION_STCD_REMOVED); + List orgList = organizationMapper.selectByExample(example); + if(orgList!=null && orgList.size()>0) { + idList.add(orgId); + getOrgIdByParentNo(idList, orgList.get(0).getOrgNo()); + } + return idList; + } + + /** + * 根据组织编号递归获取下级编号 + * @param orgNo + * @return + */ + public void getOrgIdByParentNo(List idList,String orgNo) { + List list = new ArrayList(); + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andOrgParentNoEqualTo(orgNo).andOrgStcdNotEqualTo(BusinessConstants.ORGANIZATION_STCD_REMOVED); + List orgList = organizationMapper.selectByExample(example); + if(orgList!=null && orgList.size()>0) { + for(Organization o: orgList) { + idList.add(o.getId()); + getOrgIdByParentNo(idList, o.getOrgNo()); + } + } + } } diff --git a/src/main/java/com/jsh/erp/service/user/UserService.java b/src/main/java/com/jsh/erp/service/user/UserService.java index 9900a126..5c64434a 100644 --- a/src/main/java/com/jsh/erp/service/user/UserService.java +++ b/src/main/java/com/jsh/erp/service/user/UserService.java @@ -101,6 +101,21 @@ public class UserService { List list=null; try{ list=userMapperEx.selectByConditionUser(userName, loginName, offset, rows); + for(UserEx ue: list){ + String userType = ""; + if(demonstrateOpen && TEST_USER.equals(ue.getLoginName())){ + userType = "演示用户"; + } else { + if (ue.getId().equals(ue.getTenantId())) { + userType = "租户"; + } else if(ue.getTenantId() == null){ + userType = "超管"; + } else { + userType = "普通"; + } + } + ue.setUserType(userType); + } }catch(Exception e){ JshException.readFail(logger, e); } diff --git a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index b2bef646..340357d9 100644 --- a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -55,9 +55,6 @@ and dh.sub_type='${subType}' - - and dh.hands_person_id='${handsPersonId}' - and dh.number like '%${number}%' @@ -73,6 +70,13 @@ and di.depot_id in (${depotIds}) + + and dh.hands_person_id in ( + + #{handsPersonId} + + ) + and ifnull(dh.delete_flag,'0') !='1' order by dh.id desc @@ -92,9 +96,6 @@ and sub_type='${subType}' - - and hands_person_id='${handsPersonId}' - and number like '%${number}%' @@ -110,6 +111,13 @@ and di.depot_id in (${depotIds}) + + and hands_person_id in ( + + #{handsPersonId} + + ) + and ifnull(jsh_depot_head.delete_Flag,'0') !='1') tb diff --git a/src/main/resources/mapper_xml/UserMapperEx.xml b/src/main/resources/mapper_xml/UserMapperEx.xml index 4f246ef3..1c89c782 100644 --- a/src/main/resources/mapper_xml/UserMapperEx.xml +++ b/src/main/resources/mapper_xml/UserMapperEx.xml @@ -29,7 +29,7 @@ and user.login_name like '%${loginName}%' - order by user.id desc + order by rel.user_blng_orga_dspl_seq,user.id desc limit #{offset},#{rows}