diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 56e888df..0895cbd4 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -565,15 +565,32 @@ create table JCL_ORG_DETACH ( create table JCL_ORG_CARDACCESS ( id int auto_increment not null, type_id int not null, - type_name int not null, + type_name varchar(50) not null, status int null, all_people int null, superior int null, all_superior int null, - custom text null , + custom varchar(2000) null , delete_type int null, creator int null, create_time date null, update_time date null, constraint JCL_ORG_CARDACCESS_PK primary key (id) +); + +-- JCL_ORG_CARDBUTTON +create table JCL_ORG_CARDBUTTON ( + id int auto_increment not null, + name varchar(255) not null, + status int null, + url varchar(255) null, + roles varchar(2000) null, + sys_default int not null, + show_order int null, + open int null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + constraint JCL_ORG_CARDBUTTON_PK primary key (id) ); \ No newline at end of file diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index 06682d35..c57283b3 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -504,4 +504,38 @@ create table JCL_ORG_DETACH ( ); +CREATE TABLE JCL_ORG_CARDACCESS ( + ID NUMBER NOT NULL, + TYPE_ID NUMBER NOT NULL, + TYPE_NAME NVARCHAR2(50) NOT NULL, + STATUS NUMBER NULL, + ALL_PEOPLE NUMBER NULL, + SUPERIOR NUMBER NULL, + ALL_SUPERIOR NUMBER NULL, + CUSTOM NVARCHAR2(2000) NULL , + DELETE_TYPE NUMBER NULL, + CREATOR NUMBER NULL, + CREATE_TIME DATE NULL, + UPDATE_TIME DATE NULL, + CONSTRAINT JCL_ORG_CARDACCESS_PK PRIMARY KEY (ID) +) + +CREATE TABLE JCL_ORG_CARDBUTTON ( + ID NUMBER NOT NULL, + NAME NVARCHAR2(255) NOT NULL, + STATUS NUMBER NULL, + URL NVARCHAR2(255) NULL, + ROLES NVARCHAR2(2000) NULL, + SYS_DEFAULT NUMBER NOT NULL, + SHOW_ORDER NUMBER NULL, + OPEN NUMBER NULL, + CREATOR NUMBER NULL, + DELETE_TYPE NUMBER NULL, + CREATE_TIME DATE NULL, + UPDATE_TIME DATE NULL, + CONSTRAINT JCL_ORG_CARDBUTTON_PK PRIMARY KEY (ID) +) + + + diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 77fe7efc..90696e31 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -532,4 +532,43 @@ create table JCL_ORG_DETACH ( create_time date null, update_time date null, constraint JCL_ORG_DETACH_PK primary key (id) +); + + + +-- DROP TABLE JCL_ORG_CARDACCESS; +CREATE TABLE JCL_ORG_CARDACCESS ( + id int IDENTITY(1,1) NOT NULL, + type_id int NOT NULL, + type_name varchar(50) NOT NULL, + status int NULL, + all_people int NULL, + superior int NULL, + all_superior int NULL, + custom varchar(2000) NULL, + delete_type int NULL, + creator int NULL, + create_time date NULL, + update_time date NULL, + CONSTRAINT JCL_ORG_CARDACCESS_PK PRIMARY KEY (id) +); + + + + +-- DROP TABLE JCL_ORG_CARDBUTTON; +CREATE TABLE JCL_ORG_CARDBUTTON ( + id int IDENTITY(1,1) NOT NULL, + name varchar(255) NOT NULL, + status int NULL, + url varchar(255) NULL, + roles varchar(2000) NULL, + sys_default int NOT NULL, + show_order int null, + open int null, + creator int NULL, + delete_type int NULL, + create_time date NULL, + update_time date NULL, + CONSTRAINT JCL_ORG_CARDBUTTON_PK PRIMARY KEY (id) ); \ No newline at end of file diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index f1f74e25..0eea6cbd 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -21,6 +21,7 @@ import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.tree.SearchTreeUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; @@ -126,6 +127,11 @@ public class JobBrowserService extends BrowserService { } } } + // 分权 + DetachUtil detachUtil = new DetachUtil(user.getUID()); + if (detachUtil.isDETACH()) { + sqlWhere += " AND t.parent_comp in (" + detachUtil.getJclRoleLevels() + ")"; + } return sqlWhere; } @@ -138,18 +144,31 @@ public class JobBrowserService extends BrowserService { private List getCurrentTreeNode(SearchTreeParams params) { // 分权 DetachUtil detachUtil = new DetachUtil(user.getUID()); - List jclRoleLevelList = Arrays.asList(detachUtil.getJclRoleLevels().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()); + List jclRoleLevelList; + if (StringUtils.isNotBlank(detachUtil.getJclRoleLevels())) { + jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + } else { + jclRoleLevelList = new ArrayList<>(); + } List treeNodes = new ArrayList<>(); if (StringUtils.isBlank(params.getId())) { // 集团总部 SearchTree topGroup = SearchTreeUtil.getTopGroup(); - topGroup.setIsParent(true); + if (detachUtil.isDETACH()) { + topGroup.setIsParent(StringUtils.isNotBlank(detachUtil.getJclRoleLevels())); + } else { + topGroup.setIsParent(true); + } treeNodes.add(topGroup); } else { // 分部存在下级的ID List compHasSubs; if (detachUtil.isDETACH()) { - compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasDetachSubs(jclRoleLevelList); + if (CollectionUtils.isNotEmpty(jclRoleLevelList)) { + compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasDetachSubs(jclRoleLevelList); + } else { + compHasSubs = new ArrayList<>(); + } } else { compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasSubs(); } @@ -159,9 +178,16 @@ public class JobBrowserService extends BrowserService { if ("0".equals(params.getId())) { List compList; if (detachUtil.isDETACH()) { - compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); - detachUtil.filterCompanyList(compList); - }else{ + if (CollectionUtils.isNotEmpty(jclRoleLevelList)) { + compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); + // 处理上下级关系 + Set collectIds = compList.stream().map(CompPO::getId).collect(Collectors.toSet()); + compList.removeIf(item->collectIds.contains(item.getParentCompany())); + + } else { + compList = new ArrayList<>(); + } + } else { compList = MapperProxyFactory.getProxy(CompMapper.class).listParent(); } // 获取顶层分部 diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 20baf30a..e850b3d3 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -102,8 +102,8 @@ public class ExtendInfoBO { .extendGroupId(extendGroupId) .isenable("1".equals(infoFieldParam.getEnable()) ? 1 : 0) .isrequired("1".equals(infoFieldParam.getRequired()) ? 1 : 0) + .isModify("1".equals(infoFieldParam.getIsModify()) ? 1 : 0) .listShow(1) - // .editShow("0".equals(infoFieldParam.getIsModify()) ? 0 : 1) .editShow(1) .addShow(1) .browserShow(1) diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index 74d5da3e..da0033b1 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -111,6 +111,22 @@ public class ExtendInfoPO { private Integer isSystemDefault; + /** + * 允许个人修改 + */ + private Integer isModify; + + /** + * 允许个人修改属性 + */ + private Integer modifyProps; + + /** + * 启用、必填check框属性 + */ + private Integer checkProps; + + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 8447b659..c1fb690b 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -152,7 +152,7 @@ public class JobBO { SearchTree tree = new SearchTree(); tree.setCanClick(true); tree.setCanceled(false); - tree.setIcon("icon-coms-Branch"); + tree.setIcon("icon-coms-content-o"); tree.setId(item.getId().toString()); tree.setIsParent(false); tree.setIsVirtual("0"); diff --git a/src/com/engine/organization/entity/personnelcard/User.java b/src/com/engine/organization/entity/personnelcard/UserCard.java similarity index 98% rename from src/com/engine/organization/entity/personnelcard/User.java rename to src/com/engine/organization/entity/personnelcard/UserCard.java index d72d1e5b..c286cd50 100644 --- a/src/com/engine/organization/entity/personnelcard/User.java +++ b/src/com/engine/organization/entity/personnelcard/UserCard.java @@ -18,7 +18,7 @@ import org.apache.commons.lang3.StringUtils; @AllArgsConstructor @NoArgsConstructor @Builder -public class User { +public class UserCard { private Integer id; private String ecId; private String image; diff --git a/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java b/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java index 1d8f3e74..7a7d07c1 100644 --- a/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java +++ b/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java @@ -24,7 +24,7 @@ public class CardAccessPO { private Integer typeId; - private Integer typeName; + private String typeName; private Integer status; @@ -32,7 +32,7 @@ public class CardAccessPO { private Integer superior; - private String allSuperior; + private Integer allSuperior; private String custom; diff --git a/src/com/engine/organization/entity/personnelcard/po/CardButtonPO.java b/src/com/engine/organization/entity/personnelcard/po/CardButtonPO.java new file mode 100644 index 00000000..74482d8e --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/po/CardButtonPO.java @@ -0,0 +1,39 @@ +package com.engine.organization.entity.personnelcard.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author:dxfeng + * @createTime: 2022/11/10 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CardButtonPO { + private Integer id; + + private String name; + + private Integer status; + + private String url; + + private String roles; + + private String sysDefault; + + private Long creator; + + private int deleteType; + + private Date createTime; + + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java index d4784433..fd2b043a 100644 --- a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java +++ b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java @@ -1,11 +1,14 @@ package com.engine.organization.entity.personnelcard.vo; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; + /** * @Author weaver_cl @@ -14,8 +17,45 @@ import java.util.Date; * @Version V1.0 **/ - +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "8df45b09-0cda-4f57-a93a-ca9f96a4cfbf", + fields = "t.id," + + "t.type_name," + + "t.status," + + "t.all_people," + + "t.superior," + + "t.all_superior," + + "t.custom", + fromSql = "FROM jcl_org_cardaccess t ", + orderby = "id", + sortway = "asc", + primarykey = "id", + tableType = WeaTableType.CHECKBOX +) public class CardAccessVO { + @OrganizationTableColumn(column = "id", display = false) + private Long id; + + @OrganizationTableColumn(text = "栏目", width = "15%", column = "type_name") + private Integer typeName; + + @OrganizationTableColumn(text = "是否启用", width = "15%", column = "status") + private Integer status; + + @OrganizationTableColumn(text = "所有人可见", width = "15%", column = "all_people") + private Integer allPeople; + + @OrganizationTableColumn(text = "上级可见", width = "15%", column = "superior") + private Integer superior; + + @OrganizationTableColumn(text = "所有上级可见", width = "15%", column = "all_superior") + private Integer allSuperior; + + @OrganizationTableColumn(text = "查看自定义", width = "15%", column = "custom",transmethod = "com.engine.organization.transmethod.SystemTransMethod.getRoleName") + private String custom; } diff --git a/src/com/engine/organization/enums/OrgImportEnum.java b/src/com/engine/organization/enums/OrgImportEnum.java index eea07e33..a4fe57b5 100644 --- a/src/com/engine/organization/enums/OrgImportEnum.java +++ b/src/com/engine/organization/enums/OrgImportEnum.java @@ -1,6 +1,7 @@ package com.engine.organization.enums; import com.engine.organization.exception.OrganizationRunTimeException; +import com.engine.organization.util.saveimport.PostInfoImportUtil; import com.engine.organization.util.saveimport.StaffInfoImportUtil; import weaver.hrm.User; @@ -27,6 +28,20 @@ public enum OrgImportEnum implements OrgImportAdapter { public List> orgForm(User user) { return StaffInfoImportUtil.importForm(user); } + }, + POSTINFO("postInfo"){ + @Override + public Map orgImport(Map params, User user) { + Map resultMap = new HashMap<>(); + String excelFile = (String) params.get("excelfile"); + resultMap.put("pId", PostInfoImportUtil.saveImport("add", excelFile, user)); + return resultMap; + } + + @Override + public List> orgForm(User user) { + return PostInfoImportUtil.importForm(user); + } }; diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index ad6b65d5..63e2fcf2 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -399,6 +399,10 @@ select company_id from JCL_ORG_STAFFPLAN where delete_type = 0 + union + select jcl_rolelevel + from jcl_org_detach + where delete_type = 0 select from jcl_org_cardaccess t WHERE delete_type = 0 - AND id = #{id} + AND type_id = #{id} + + + + + UPDATE jcl_org_cardaccess + SET type_name = #{name} + WHERE type_id = #{id} + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java new file mode 100644 index 00000000..b2f70821 --- /dev/null +++ b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java @@ -0,0 +1,19 @@ +package com.engine.organization.mapper.personnelcard; + +import com.engine.organization.entity.personnelcard.po.CardButtonPO; + +import java.util.List; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/24 + * @Version V1.0 + **/ +public interface CardButtonMapper { + + List listAll(); + + + List listEnableButton(); +} diff --git a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml new file mode 100644 index 00000000..558ee6f7 --- /dev/null +++ b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + t + . + id + , t.name + , t.status + , t.url + , t.roles + , t.sys_default + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java index 8671c926..48828b3f 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java @@ -1,7 +1,7 @@ package com.engine.organization.mapper.personnelcard; import com.engine.organization.entity.personnelcard.ResourceBaseTab; -import com.engine.organization.entity.personnelcard.User; +import com.engine.organization.entity.personnelcard.UserCard; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,7 +18,7 @@ public interface PersonnelCardMapper { * @param id * @return */ - User getUserById(@Param("id") Long id); + UserCard getUserById(@Param("id") Long id); /** * 获取自定义显示栏目 diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml index 535c9bd6..a9184400 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/src/com/engine/organization/mapper/post/PostMapper.java b/src/com/engine/organization/mapper/post/PostMapper.java index ad3bd827..c22834ed 100644 --- a/src/com/engine/organization/mapper/post/PostMapper.java +++ b/src/com/engine/organization/mapper/post/PostMapper.java @@ -26,6 +26,8 @@ public interface PostMapper { */ PostPO getPostByID(@Param("id") long id); + PostPO getPostByName(@Param("postName") String postName); + List listByName(@Param("postName") String postName); /** diff --git a/src/com/engine/organization/mapper/post/PostMapper.xml b/src/com/engine/organization/mapper/post/PostMapper.xml index 4ceb10c3..8df75003 100644 --- a/src/com/engine/organization/mapper/post/PostMapper.xml +++ b/src/com/engine/organization/mapper/post/PostMapper.xml @@ -53,6 +53,13 @@ from jcl_org_post where delete_type = '0' + + + + diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 7495bfb8..27c119a0 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -25,6 +25,13 @@ public interface GradeMapper { */ List listByNo(@Param("gradeNo") String gradeNo); + /** + * 根据No和scheme_id查询 + * @param gradeNo + * @param schemeId + */ + GradePO getGradeByNoAndSid(@Param("gradeNo") String gradeNo,@Param("schemeId") long schemeId); + /** * 根据等级方案查询数据 * diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index e1f6ea45..b92e37c7 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -13,6 +13,7 @@ + @@ -30,6 +31,7 @@ , t.delete_type , t.create_time , t.update_time + , t.is_used + + + @@ -39,6 +41,11 @@ from jcl_org_scheme t where scheme_no = #{schemeNo} AND delete_type = 0 +