diff --git a/docs/权限SQL/权限插入SQL.sql b/docs/权限SQL/权限插入SQL.sql new file mode 100644 index 00000000..00adefc4 --- /dev/null +++ b/docs/权限SQL/权限插入SQL.sql @@ -0,0 +1,71 @@ +-- 等级方案 +insert into SystemRights (id,rightdesc,righttype) values (-20220601,'等级方案权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220601,7,'等级方案权限','等级方案权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220601,8,'Scheme Right','Scheme Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220601,'等级方案权限','Scheme:All',-20220601) ; + +-- 职等 +insert into SystemRights (id,rightdesc,righttype) values (-20220602,'职等权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220602,7,'职等权限','职等权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220602,8,'Level Right','Level Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220602,'职等权限','Level:All',-20220602) ; + +-- 职级 +insert into SystemRights (id,rightdesc,righttype) values (-20220603,'职级权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220603,7,'职级权限','职级权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220603,8,'Grade Right','Grade Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220603,'职级权限','Grade:All',-20220603) ; + +-- 岗位序列 +insert into SystemRights (id,rightdesc,righttype) values (-20220604,'岗位序列权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220604,7,'岗位序列权限','岗位序列权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220604,8,'Sequence Right','Sequence Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220604,'岗位序列权限','Sequence:All',-20220604) ; + +-- 职务分类 +insert into SystemRights (id,rightdesc,righttype) values (-20220605,'职务分类权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220605,7,'职务分类权限','职务分类权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220605,8,'Post Right','Post Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220605,'职务分类权限','Post:All',-20220605) ; + +-- 职务信息 +insert into SystemRights (id,rightdesc,righttype) values (-20220606,'职务信息权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220606,7,'职务信息权限','职务信息权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220606,8,'PostInfo Right','PostInfo Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220606,'职务信息权限','PostInfo:All',-20220606) ; + +-- 集团管理 +insert into SystemRights (id,rightdesc,righttype) values (-20220607,'集团管理权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220607,7,'集团管理权限','集团管理权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220607,8,'Group Right','Group Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220607,'集团管理权限','Group:All',-20220607) ; + +-- 公司/分部管理 +insert into SystemRights (id,rightdesc,righttype) values (-20220608,'公司/分部管理权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220608,7,'公司/分部管理权限','公司/分部管理权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220608,8,'Company Right','Company Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220608,'公司/分部管理权限','Company:All',-20220608) ; + +-- 部门管理 +insert into SystemRights (id,rightdesc,righttype) values (-20220609,'部门管理权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220609,7,'部门管理权限','部门管理权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220609,8,'Department Right','Department Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220609,'部门管理权限','Department:All',-20220609) ; + +-- 岗位管理 +insert into SystemRights (id,rightdesc,righttype) values (-20220610,'岗位管理权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220610,7,'岗位管理权限','岗位管理权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220610,8,'Job Right','Job Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220610,'岗位管理权限','Job:All',-20220610) ; + +-- 编制方案 +insert into SystemRights (id,rightdesc,righttype) values (-20220611,'编制方案权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220611,7,'编制方案权限','编制方案权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220611,8,'StaffPlan Right','StaffPlan Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220611,'编制方案权限','StaffPlan:All',-20220611) ; + +-- 编制表 +insert into SystemRights (id,rightdesc,righttype) values (-20220612,'编制表权限','0'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220612,7,'编制表权限','编制表权限'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220612,8,'Staff Right','Staff Right'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220612,'编制表权限','Staff:All',-20220612) ; \ No newline at end of file diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 604dc705..3bc3bbe4 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -5,7 +5,7 @@ CREATE TABLE JCL_ORG_SCHEME ( scheme_name varchar(100) NULL, scheme_description text NULL, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -20,7 +20,7 @@ CREATE TABLE JCL_ORG_LEVEL ( description text NULL, scheme_id int null, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -36,7 +36,7 @@ CREATE TABLE JCL_ORG_GRADE ( scheme_id int null, level_id varchar(100) null, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -52,7 +52,7 @@ CREATE TABLE JCL_ORG_SEQUENCE ( description text NULL, scheme_id int null, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -66,7 +66,7 @@ CREATE TABLE JCL_ORG_POST ( post_no varchar(100) null, post_name varchar(100) NULL, description text NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -85,7 +85,7 @@ CREATE TABLE JCL_ORG_POST_INFO ( post_id int null, description text NULL, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -105,7 +105,7 @@ CREATE TABLE JCL_ORG_COMP ( comp_principal int null, description text NULL, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -116,8 +116,10 @@ CREATE TABLE JCL_ORG_COMP ( -- JCL_FIELD_EXTENDGROUP CREATE TABLE JCL_FIELD_EXTENDGROUP ( id int auto_increment NOT NULL, + pid int null, extend_type int null, group_name varchar(100) NULL, + show_order int null, creator int null, delete_type int null, create_time date null, @@ -125,6 +127,20 @@ CREATE TABLE JCL_FIELD_EXTENDGROUP ( CONSTRAINT JCL_FIELD_EXTENDGROUP_PK PRIMARY KEY (id) ); +-- JCL_FIELD_EXTENDTITLE +create table JCL_FIELD_EXTENDTITLE ( + id int auto_increment not null, + group_id int null, + title varchar(100) null, + show_order int null, + is_show int null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + constraint JCL_FIELD_EXTENDTITLE_PK primary key (id) +); + -- JCL_FIELD_EXTENDINFO CREATE TABLE JCL_FIELD_EXTENDINFO ( id int auto_increment NOT NULL, @@ -134,6 +150,8 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( field_name_desc varchar(100) NULL, field_type varchar(1000) NULL, control_type int null, + browser_type varchar(100) NULL, + custom_value text null, extend_group_id int null, isenable int null, isrequired int null, @@ -141,7 +159,7 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( search_show int null, edit_show int null, add_show int null, - browser_show int null, + browser_show int null, show_order int null, creator int null, delete_type int null, @@ -152,7 +170,7 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( -- JCL_ORG_COMPEXT CREATE TABLE JCL_ORG_COMPEXT ( - id int auto_increment NOT NULL, + id int NOT NULL, creator int null, delete_type int null, create_time date null, @@ -183,7 +201,7 @@ CREATE TABLE JCL_ORG_DEPT ( show_order int null, description text NULL, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -191,14 +209,14 @@ CREATE TABLE JCL_ORG_DEPT ( CONSTRAINT JCL_ORG_DEPT_PK PRIMARY KEY (id) ); --- JCL_ORG_DEPTPEXT -CREATE TABLE JCL_ORG_DEPTPEXT ( - id int auto_increment NOT NULL, +-- JCL_ORG_DEPTEXT +CREATE TABLE JCL_ORG_DEPTEXT ( + id int NOT NULL, creator int null, delete_type int null, create_time date null, update_time date null, - CONSTRAINT JCL_ORG_DEPTPEXT_PK PRIMARY KEY (id) + CONSTRAINT JCL_ORG_DEPTEXT_PK PRIMARY KEY (id) ); -- JCL_ORG_DEPTEXT_DT1 @@ -228,7 +246,7 @@ CREATE TABLE JCL_ORG_JOB ( work_duty text null, work_authority text null, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -240,8 +258,10 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( id int auto_increment NOT NULL, mainid int NULL, - level_id int null, - grade_id int null, + level_id varchar(100) NULL, + grade_id varchar(100) NULL, + level_id_span varchar(1000) NULL, + grade_id_span varchar(1000) NULL, creator int null, delete_type int null, create_time date null, @@ -249,14 +269,14 @@ CREATE TABLE JCL_ORG_JOBDT ( CONSTRAINT JCL_ORG_JOBDT_PK PRIMARY KEY (id) ); --- JCL_ORG_JOBPEXT -CREATE TABLE JCL_ORG_JOBPEXT ( - id int auto_increment NOT NULL, +-- JCL_ORG_JOBEXT +CREATE TABLE JCL_ORG_JOBEXT ( + id int NOT NULL, creator int null, delete_type int null, create_time date null, update_time date null, - CONSTRAINT JCL_ORG_JOBPEXT_PK PRIMARY KEY (id) + CONSTRAINT JCL_ORG_JOBEXT_PK PRIMARY KEY (id) ); -- JCL_ORG_JOBEXT_DT1 @@ -282,7 +302,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( company_id varchar(100) NULL, description text NULL, forbidden_tag int NULL, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -304,7 +324,7 @@ CREATE TABLE JCL_ORG_STAFF ( lack_status int null, staff_desc varchar(100) NULL, description text null, - is_used int not null, + is_used int null, creator int null, delete_type int null, create_time date null, @@ -325,56 +345,4 @@ CREATE TABLE JCL_ORG_STAFFS ( create_time date null, update_time date null, CONSTRAINT JCL_ORG_STAFFS_PK PRIMARY KEY (id) -); - - ---JCL_CODERULE -CREATE TABLE JCL_CODERULE ( - id int auto_increment NOT NULL, - serial_type varchar(50) null, - serial_enable char(1) null, - oneself_type varchar(50) null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_CODERULE PRIMARY KEY (id) -); - ---JCL_CODERULE_DETAIL -CREATE TABLE JCL_CODERULE_DETAIL ( - id int auto_increment NOT NULL, - coderule_id int(11) null, - rule_type varchar(50) null, - rule_value varchar(255) null, - show_order int(11) null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_CODERULE_DETAIL PRIMARY KEY (id) -); - ---JCL_CODERULE_RESERVED -CREATE TABLE JCL_CODERULE_RESERVED ( - id int auto_increment NOT NULL, - coderule_id int(11) null, - reserved_code varchar(255) null, - reserved_desc varchar (1000) null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_CODERULE_RESERVED PRIMARY KEY (id) -); - - - - - - - - - - - +); \ No newline at end of file diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index f19323bc..ebc68141 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -5,6 +5,7 @@ CREATE TABLE JCL_ORG_SCHEME ( SCHEME_NAME NVARCHAR2(100) NULL, SCHEME_DESCRIPTION NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -19,6 +20,7 @@ CREATE TABLE JCL_ORG_LEVEL ( DESCRIPTION NVARCHAR2(1000) NULL, SCHEME_ID NUMBER NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -35,6 +37,7 @@ CREATE TABLE JCL_ORG_GRADE ( SCHEME_ID NUMBER NULL, LEVEL_ID NVARCHAR2(100) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -51,6 +54,7 @@ CREATE TABLE JCL_ORG_SEQUENCE ( DESCRIPTION NVARCHAR2(1000) NULL, SCHEME_ID NUMBER NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -64,6 +68,7 @@ CREATE TABLE JCL_ORG_POST ( POST_NO NVARCHAR2(100) NULL, POST_NAME NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -81,7 +86,8 @@ CREATE TABLE JCL_ORG_POST_INFO ( POST_INFO_QUALIFICATION NVARCHAR2(1000) NULL, POST_ID NUMBER NULL, DESCRIPTION NVARCHAR2(1000) NULL, - FORBIDDEN_TAG NUMBER NULL, + FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -101,6 +107,7 @@ CREATE TABLE JCL_ORG_COMP ( COMP_PRINCIPAL NUMBER NULL, DESCRIPTION NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -111,8 +118,10 @@ CREATE TABLE JCL_ORG_COMP ( -- JCL_FIELD_EXTENDGROUP CREATE TABLE JCL_FIELD_EXTENDGROUP ( ID NUMBER NOT NULL, - EXTEND_TYPE NUMBER NULL, + PID NUMBER NULL, + EXTEND_TYPE NUMBER NULL, GROUP_NAME NVARCHAR2(100) NULL, + SHOW_ORDER NUMBER null, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -120,6 +129,20 @@ CREATE TABLE JCL_FIELD_EXTENDGROUP ( CONSTRAINT JCL_FIELD_EXTENDGROUP_PK PRIMARY KEY (ID) ); +-- JCL_FIELD_EXTENDTITLE +CREATE TABLE JCL_FIELD_EXTENDTITLE ( + ID NUMBER NOT NULL, + GROUP_ID NUMBER NULL, + TITLE VARCHAR(100) NULL, + SHOW_ORDER NUMBER NULL, + IS_SHOW NUMBER NULL, + CREATOR NUMBER NULL, + DELETE_TYPE NUMBER NULL, + CREATE_TIME DATE NULL, + UPDATE_TIME DATE NULL, + CONSTRAINT JCL_FIELD_EXTENDTITLE_PK PRIMARY KEY (ID) +); + -- JCL_FIELD_EXTENDINFO CREATE TABLE JCL_FIELD_EXTENDINFO ( ID NUMBER NOT NULL, @@ -129,6 +152,8 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( FIELD_NAME_DESC NVARCHAR2(100) NULL, FIELD_TYPE NVARCHAR2(1000) NULL, CONTROL_TYPE NUMBER NULL, + CUSTOM_VALUE NVARCHAR2(1000) NULL, + BROWSER_TYPE NVARCHAR2(100) NULL, EXTEND_GROUP_ID NUMBER NULL, ISENABLE NUMBER NULL, ISREQUIRED NUMBER NULL, @@ -178,6 +203,7 @@ CREATE TABLE JCL_ORG_DEPT ( SHOW_ORDER NUMBER NULL, DESCRIPTION NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -185,51 +211,14 @@ CREATE TABLE JCL_ORG_DEPT ( CONSTRAINT JCL_ORG_DEPT_PK PRIMARY KEY (ID) ); --- JCL_FIELD_EXTENDGROUP_DEPT -CREATE TABLE JCL_FIELD_EXTENDGROUP_DEPT ( +-- JCL_ORG_DEPTEXT +CREATE TABLE JCL_ORG_DEPTEXT ( ID NUMBER NOT NULL, - EXTEND_TYPE NUMBER NULL, - GROUP_NAME NVARCHAR2(100) NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, UPDATE_TIME DATE NULL, - CONSTRAINT JCL_FIELD_EXTENDGROUP_DEPT_PK PRIMARY KEY (ID) -); - --- JCL_FIELD_EXTENDINFO_DEPT -CREATE TABLE JCL_FIELD_EXTENDINFO_DEPT ( - ID NUMBER NOT NULL, - EXTEND_TYPE NUMBER NULL, - TABLE_NAME NVARCHAR2(100) NULL, - FIELD_NAME NVARCHAR2(100) NULL, - FIELD_NAME_DESC NVARCHAR2(100) NULL, - FIELD_TYPE NVARCHAR2(1000) NULL, - CONTROL_TYPE NUMBER NULL, - EXTEND_GROUP NUMBER NULL, - ISENABLE NUMBER NULL, - ISREQUIRED NUMBER NULL, - LIST_SHOW NUMBER NULL, - SEARCH_SHOW NUMBER NULL, - EDIT_SHOW NUMBER NULL, - ADD_SHOW NUMBER NULL, - BUTTON_SHOW NUMBER NULL, - SHOW_ORDER NUMBER NULL, - CREATOR NUMBER NULL, - DELETE_TYPE NUMBER NULL, - CREATE_TIME DATE NULL, - UPDATE_TIME DATE NULL, - CONSTRAINT JCL_FIELD_EXTENDINFO_DEPT_PK PRIMARY KEY (ID) -); - --- JCL_ORG_DEPTPEXT -CREATE TABLE JCL_ORG_DEPTPEXT ( - ID NUMBER NOT NULL, - CREATOR NUMBER NULL, - DELETE_TYPE NUMBER NULL, - CREATE_TIME DATE NULL, - UPDATE_TIME DATE NULL, - CONSTRAINT JCL_ORG_DEPTPEXT_PK PRIMARY KEY (ID) + CONSTRAINT JCL_ORG_DEPTEXT_PK PRIMARY KEY (ID) ); -- JCL_ORG_DEPTEXT_DT1 @@ -259,6 +248,7 @@ CREATE TABLE JCL_ORG_JOB ( WORK_DUTY NVARCHAR2(1000) NULL, WORK_AUTHORITY NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -270,60 +260,25 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( ID NUMBER NOT NULL, MAINID NUMBER NULL, - LEVEL_ID NUMBER NULL, - GRADE_ID NUMBER NULL, + LEVEL_ID NVARCHAR2(100) NULL, + GRADE_ID NVARCHAR2(100) NULL, + LEVEL_ID_SPAN NVARCHAR2(1000) NULL, + GRADE_ID_SPAN NVARCHAR2(1000) NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, UPDATE_TIME DATE NULL, - CONSTRAINT CL_ORG_DEPTPEXT_PK PRIMARY KEY (ID) + CONSTRAINT JCL_ORG_JOBDT_PK PRIMARY KEY (ID) ); --- JCL_FIELD_EXTENDGROUP_JOB -CREATE TABLE JCL_FIELD_EXTENDGROUP_JOB ( +-- JCL_ORG_JOBEXT +CREATE TABLE JCL_ORG_JOBEXT ( ID NUMBER NOT NULL, - EXTEND_TYPE NUMBER NULL, - GROUP_NAME NVARCHAR2(100) NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, UPDATE_TIME DATE NULL, - CONSTRAINT JCL_FIELD_EXTENDGROUP_JOB_PK PRIMARY KEY (ID) -); - --- JCL_FIELD_EXTENDINFO_JOB -CREATE TABLE JCL_FIELD_EXTENDINFO_JOB ( - ID NUMBER NOT NULL, - EXTEND_TYPE NUMBER NULL, - TABLE_NAME NVARCHAR2(100) NULL, - FIELD_NAME NVARCHAR2(100) NULL, - FIELD_NAME_DESC NVARCHAR2(100) NULL, - FIELD_TYPE NVARCHAR2(1000) NULL, - CONTROL_TYPE NUMBER NULL, - EXTEND_GROUP NUMBER NULL, - ISENABLE NUMBER NULL, - ISREQUIRED NUMBER NULL, - LIST_SHOW NUMBER NULL, - SEARCH_SHOW NUMBER NULL, - EDIT_SHOW NUMBER NULL, - ADD_SHOW NUMBER NULL, - BUTTON_SHOW NUMBER NULL, - SHOW_ORDER NUMBER NULL, - CREATOR NUMBER NULL, - DELETE_TYPE NUMBER NULL, - CREATE_TIME DATE NULL, - UPDATE_TIME DATE NULL, - CONSTRAINT JCL_FIELD_EXTENDINFO_JOB_PK PRIMARY KEY (ID) -); - --- JCL_ORG_JOBPEXT -CREATE TABLE JCL_ORG_JOBPEXT ( - ID NUMBER NOT NULL, - CREATOR NUMBER NULL, - DELETE_TYPE NUMBER NULL, - CREATE_TIME DATE NULL, - UPDATE_TIME DATE NULL, - CONSTRAINT JCL_ORG_JOBPEXT_PK PRIMARY KEY (ID) + CONSTRAINT JCL_ORG_JOBEXT_PK PRIMARY KEY (ID) ); -- JCL_ORG_JOBEXT_DT1 @@ -348,6 +303,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( COMPANY_ID NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -369,6 +325,7 @@ CREATE TABLE JCL_ORG_STAFF ( LACK_STATUS NUMBER NULL, STAFF_DESC NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, + IS_USED NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -389,13 +346,4 @@ CREATE TABLE JCL_ORG_STAFFS ( CREATE_TIME DATE NULL, UPDATE_TIME DATE NULL, CONSTRAINT JCL_ORG_STAFFS_PK PRIMARY KEY (ID) -); - - - - - - - - - +); \ No newline at end of file diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 8cea6e9b..d6c4d2b6 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -5,10 +5,11 @@ CREATE TABLE JCL_ORG_SCHEME ( scheme_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, scheme_description text COLLATE Chinese_PRC_CI_AS NULL, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_SCHEME_PK PRIMARY KEY (id) ); -- JCL_ORG_LEVEL @@ -19,10 +20,11 @@ CREATE TABLE JCL_ORG_LEVEL ( description text COLLATE Chinese_PRC_CI_AS NULL, scheme_id int null, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_LEVEL_PK PRIMARY KEY (id) ); -- JCL_ORG_GRADE @@ -34,10 +36,11 @@ CREATE TABLE JCL_ORG_GRADE ( scheme_id int null, level_id varchar(100) null, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_GRADE_PK PRIMARY KEY (id) ); @@ -49,10 +52,11 @@ CREATE TABLE JCL_ORG_SEQUENCE ( description text COLLATE Chinese_PRC_CI_AS NULL, scheme_id int null, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_SEQUENCE_PK PRIMARY KEY (id) ); @@ -62,10 +66,11 @@ CREATE TABLE JCL_ORG_POST ( post_no varchar(100) COLLATE Chinese_PRC_CI_AS NULL, post_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text COLLATE Chinese_PRC_CI_AS NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_POST_PK PRIMARY KEY (id) ); @@ -79,11 +84,12 @@ CREATE TABLE JCL_ORG_POST_INFO ( post_info_qualification text null, post_id int null, description text COLLATE Chinese_PRC_CI_AS NULL, - forbidden_tag int NULL, + forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_POST_INFO_PK PRIMARY KEY (id) ); @@ -99,25 +105,42 @@ CREATE TABLE JCL_ORG_COMP ( comp_principal int null, description text COLLATE Chinese_PRC_CI_AS NULL, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_COMP_PK PRIMARY KEY (id) ); -- JCL_FIELD_EXTENDGROUP CREATE TABLE JCL_FIELD_EXTENDGROUP ( id int IDENTITY(1,1) NOT NULL, + pid int null, extend_type int null, group_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, + show_order int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_FIELD_EXTENDGROUP_PK PRIMARY KEY (id) ); +-- JCL_FIELD_EXTENDTITLE +create table JCL_FIELD_EXTENDTITLE ( + id int IDENTITY(1,1) NOT NULL, + group_id int null, + title varchar(100) COLLATE Chinese_PRC_CI_AS NULL, + show_order int null, + is_show int null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + CONSTRAINT JCL_FIELD_EXTENDTITLE_PK PRIMARY KEY (id) +); + -- JCL_FIELD_EXTENDINFO CREATE TABLE JCL_FIELD_EXTENDINFO ( id int IDENTITY(1,1) NOT NULL, @@ -127,6 +150,8 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( field_name_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, field_type varchar(1000) COLLATE Chinese_PRC_CI_AS NULL, control_type int null, + custom_value text null, + browser_type varchar(100) COLLATE Chinese_PRC_CI_AS NULL, extend_group_id int null, isenable int null, isrequired int null, @@ -138,18 +163,18 @@ CREATE TABLE JCL_FIELD_EXTENDINFO ( show_order int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_FIELD_EXTENDINFO_PK PRIMARY KEY (id) ); -- JCL_ORG_COMPEXT CREATE TABLE JCL_ORG_COMPEXT ( - id int IDENTITY(1,1) NOT NULL, + id int NOT NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_COMPEXT_PK PRIMARY KEY (id) ); @@ -159,8 +184,8 @@ CREATE TABLE JCL_ORG_COMPEXT_DT1 ( mainid int NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_COMPEXT_DT1_PK PRIMARY KEY (id) ); @@ -176,58 +201,22 @@ CREATE TABLE JCL_ORG_DEPT ( show_order int null, description text COLLATE Chinese_PRC_CI_AS NULL, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_DEPT_PK PRIMARY KEY (id) ); --- JCL_FIELD_EXTENDGROUP_DEPT -CREATE TABLE JCL_FIELD_EXTENDGROUP_DEPT ( - id int IDENTITY(1,1) NOT NULL, - extend_type int null, - group_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDGROUP_DEPT_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDINFO_DEPT -CREATE TABLE JCL_FIELD_EXTENDINFO_DEPT ( - id int IDENTITY(1,1) NOT NULL, - extend_type int null, - table_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_name_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_type varchar(1000) COLLATE Chinese_PRC_CI_AS NULL, - control_type int null, - extend_group int null, - isenable int null, - isrequired int null, - list_show int null, - search_show int null, - edit_show int null, - add_show int null, - button_show int null, - show_order int null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDINFO_DEPT_PK PRIMARY KEY (id) -); - --- JCL_ORG_DEPTPEXT -CREATE TABLE JCL_ORG_DEPTPEXT ( - id int IDENTITY(1,1) NOT NULL, +-- JCL_ORG_DEPTEXT +CREATE TABLE JCL_ORG_DEPTEXT ( + id int NOT NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_ORG_DEPTPEXT_PK PRIMARY KEY (id) + create_time datetime null, + update_time datetime null, + CONSTRAINT JCL_ORG_DEPTEXT_PK PRIMARY KEY (id) ); -- JCL_ORG_DEPTEXT_DT1 @@ -236,8 +225,8 @@ CREATE TABLE JCL_ORG_DEPTEXT_DT1 ( mainid int NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_DEPTEXT_DT1_PK PRIMARY KEY (id) ); @@ -248,7 +237,7 @@ CREATE TABLE JCL_ORG_JOB ( job_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, parent_comp int null, parent_dept int null, - sequence_id int null, + sequence_id int null, scheme_id int null, parent_job int null, is_key int null, @@ -257,10 +246,11 @@ CREATE TABLE JCL_ORG_JOB ( work_duty text null, work_authority text null, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_JOB_PK PRIMARY KEY (id) ); @@ -268,60 +258,25 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( id int IDENTITY(1,1) NOT NULL, mainid int NULL, - level_id int null, - grade_id int null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT CL_ORG_DEPTPEXT_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDGROUP_JOB -CREATE TABLE JCL_FIELD_EXTENDGROUP_JOB ( - id int IDENTITY(1,1) NOT NULL, - extend_type int null, - group_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDGROUP_JOB_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDINFO_JOB -CREATE TABLE JCL_FIELD_EXTENDINFO_JOB ( - id int IDENTITY(1,1) NOT NULL, - extend_type int null, - table_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_name_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - field_type varchar(1000) COLLATE Chinese_PRC_CI_AS NULL, - control_type int null, - extend_group int null, - isenable int null, - isrequired int null, - list_show int null, - search_show int null, - edit_show int null, - add_show int null, - button_show int null, - show_order int null, + level_id varchar(100) NULL, + grade_id varchar(100) NULL, + level_id_span varchar(1000) NULL, + grade_id_span varchar(1000) NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDINFO_JOB_PK PRIMARY KEY (id) + create_time datetime null, + update_time datetime null, + CONSTRAINT JCL_ORG_JOBDT_PK PRIMARY KEY (id) ); --- JCL_ORG_JOBPEXT -CREATE TABLE JCL_ORG_JOBPEXT ( - id int IDENTITY(1,1) NOT NULL, +-- JCL_ORG_JOBEXT +CREATE TABLE JCL_ORG_JOBEXT ( + id int NOT NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_ORG_JOBPEXT_PK PRIMARY KEY (id) + create_time datetime null, + update_time datetime null, + CONSTRAINT JCL_ORG_JOBEXT_PK PRIMARY KEY (id) ); -- JCL_ORG_JOBEXT_DT1 @@ -330,8 +285,8 @@ CREATE TABLE JCL_ORG_JOBEXT_DT1 ( mainid int NULL, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_JOBEXT_DT1_PK PRIMARY KEY (id) ); @@ -342,15 +297,16 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( plan_no varchar(100) COLLATE Chinese_PRC_CI_AS NULL, plan_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, plan_year varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - time_start date NULL, - time_end date NULL, + time_start datetime null, + time_end datetime null, company_id varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text NULL, forbidden_tag int NULL, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_STAFFPLAN_PK PRIMARY KEY (id) ); @@ -367,11 +323,12 @@ CREATE TABLE JCL_ORG_STAFF ( freeze_num int null, lack_status int null, staff_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - description text null, + description text null, + is_used int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_STAFF_PK PRIMARY KEY (id) ); @@ -385,16 +342,7 @@ CREATE TABLE JCL_ORG_STAFFS ( requestid int null, creator int null, delete_type int null, - create_time date null, - update_time date null, + create_time datetime null, + update_time datetime null, CONSTRAINT JCL_ORG_STAFFS_PK PRIMARY KEY (id) -); - - - - - - - - - +); \ No newline at end of file diff --git a/src/com/api/organization/web/CodeSettingController.java b/src/com/api/organization/web/CodeSettingController.java index cf313578..b9d10b54 100644 --- a/src/com/api/organization/web/CodeSettingController.java +++ b/src/com/api/organization/web/CodeSettingController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/api/organization/web/CompController.java b/src/com/api/organization/web/CompController.java index 093fa968..582c31e3 100644 --- a/src/com/api/organization/web/CompController.java +++ b/src/com/api/organization/web/CompController.java @@ -3,7 +3,7 @@ package com.api.organization.web; import javax.ws.rs.Path; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/17 * @version: 1.0 diff --git a/src/com/api/organization/web/DemoController.java b/src/com/api/organization/web/DemoController.java index f8e72094..d27f10a9 100644 --- a/src/com/api/organization/web/DemoController.java +++ b/src/com/api/organization/web/DemoController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/api/organization/web/DepartmentController.java b/src/com/api/organization/web/DepartmentController.java index b79f621a..86d91a66 100644 --- a/src/com/api/organization/web/DepartmentController.java +++ b/src/com/api/organization/web/DepartmentController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/20 * @Version V1.0 **/ diff --git a/src/com/api/organization/web/FieldDefinedController.java b/src/com/api/organization/web/FieldDefinedController.java new file mode 100644 index 00000000..6d42fd0c --- /dev/null +++ b/src/com/api/organization/web/FieldDefinedController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +@Path("/bs/hrmorganization/fieldDefined") +public class FieldDefinedController extends com.engine.organization.web.FieldDefinedController { +} diff --git a/src/com/api/organization/web/GradeController.java b/src/com/api/organization/web/GradeController.java index d116f3e1..389d763e 100644 --- a/src/com/api/organization/web/GradeController.java +++ b/src/com/api/organization/web/GradeController.java @@ -3,7 +3,7 @@ package com.api.organization.web; import javax.ws.rs.Path; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/api/organization/web/GroupController.java b/src/com/api/organization/web/GroupController.java index fe147c93..61304304 100644 --- a/src/com/api/organization/web/GroupController.java +++ b/src/com/api/organization/web/GroupController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/api/organization/web/JobController.java b/src/com/api/organization/web/JobController.java index 7ac87cfc..d3b47a9c 100644 --- a/src/com/api/organization/web/JobController.java +++ b/src/com/api/organization/web/JobController.java @@ -3,7 +3,7 @@ package com.api.organization.web; import javax.ws.rs.Path; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/27 * @version: 1.0 diff --git a/src/com/api/organization/web/LevelController.java b/src/com/api/organization/web/LevelController.java index 019b2529..d952e5e6 100644 --- a/src/com/api/organization/web/LevelController.java +++ b/src/com/api/organization/web/LevelController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 diff --git a/src/com/api/organization/web/PostController.java b/src/com/api/organization/web/PostController.java index 195a23b8..19e8ec0d 100644 --- a/src/com/api/organization/web/PostController.java +++ b/src/com/api/organization/web/PostController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/api/organization/web/PostInfoController.java b/src/com/api/organization/web/PostInfoController.java index 701e6646..39336d71 100644 --- a/src/com/api/organization/web/PostInfoController.java +++ b/src/com/api/organization/web/PostInfoController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/api/organization/web/SchemeController.java b/src/com/api/organization/web/SchemeController.java index 81b153ae..39b1e08c 100644 --- a/src/com/api/organization/web/SchemeController.java +++ b/src/com/api/organization/web/SchemeController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 diff --git a/src/com/api/organization/web/SequenceController.java b/src/com/api/organization/web/SequenceController.java index 66fd1118..4aadacd2 100644 --- a/src/com/api/organization/web/SequenceController.java +++ b/src/com/api/organization/web/SequenceController.java @@ -4,7 +4,7 @@ import javax.ws.rs.Path; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/api/organization/web/StaffController.java b/src/com/api/organization/web/StaffController.java index 1377ab14..f406ba99 100644 --- a/src/com/api/organization/web/StaffController.java +++ b/src/com/api/organization/web/StaffController.java @@ -3,7 +3,7 @@ package com.api.organization.web; import javax.ws.rs.Path; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/api/organization/web/StaffPlanController.java b/src/com/api/organization/web/StaffPlanController.java index 2eb02710..5435cf96 100644 --- a/src/com/api/organization/web/StaffPlanController.java +++ b/src/com/api/organization/web/StaffPlanController.java @@ -3,7 +3,7 @@ package com.api.organization.web; import javax.ws.rs.Path; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/annotation/CheckboxPopedom.java b/src/com/engine/organization/annotation/CheckboxPopedom.java index 14c8bf08..199cb6e0 100644 --- a/src/com/engine/organization/annotation/CheckboxPopedom.java +++ b/src/com/engine/organization/annotation/CheckboxPopedom.java @@ -4,7 +4,7 @@ import java.lang.annotation.*; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/engine/organization/annotation/Log.java b/src/com/engine/organization/annotation/Log.java index 124c5ea7..9ef0d9e0 100644 --- a/src/com/engine/organization/annotation/Log.java +++ b/src/com/engine/organization/annotation/Log.java @@ -6,7 +6,7 @@ import java.lang.annotation.*; /** * @Author dxfeng - * @Description: TODO + * @Description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/annotation/OperatePopedom.java b/src/com/engine/organization/annotation/OperatePopedom.java index 7822389a..d86f9b3f 100644 --- a/src/com/engine/organization/annotation/OperatePopedom.java +++ b/src/com/engine/organization/annotation/OperatePopedom.java @@ -4,7 +4,7 @@ import java.lang.annotation.*; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/engine/organization/annotation/OrganizationTable.java b/src/com/engine/organization/annotation/OrganizationTable.java index f6cec4a3..ec6d14bb 100644 --- a/src/com/engine/organization/annotation/OrganizationTable.java +++ b/src/com/engine/organization/annotation/OrganizationTable.java @@ -8,7 +8,7 @@ import java.lang.annotation.*; /** * @Author dxfeng - * @Description: TODO + * @Description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/annotation/OrganizationTableColumn.java b/src/com/engine/organization/annotation/OrganizationTableColumn.java index 7467de68..852f228f 100644 --- a/src/com/engine/organization/annotation/OrganizationTableColumn.java +++ b/src/com/engine/organization/annotation/OrganizationTableColumn.java @@ -4,7 +4,7 @@ import java.lang.annotation.*; /** * @Author dxfeng - * @Description: TODO + * @Description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/annotation/OrganizationTableOperate.java b/src/com/engine/organization/annotation/OrganizationTableOperate.java index 89f3f63e..e1d718fc 100644 --- a/src/com/engine/organization/annotation/OrganizationTableOperate.java +++ b/src/com/engine/organization/annotation/OrganizationTableOperate.java @@ -4,7 +4,7 @@ import java.lang.annotation.*; /** * @Author dxfeng - * @Description: TODO + * @Description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/DeleteParam.java b/src/com/engine/organization/entity/DeleteParam.java index 422a8735..724745d0 100644 --- a/src/com/engine/organization/entity/DeleteParam.java +++ b/src/com/engine/organization/entity/DeleteParam.java @@ -9,12 +9,11 @@ import weaver.general.StringUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.List; import java.util.stream.Collectors; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ @@ -29,8 +28,7 @@ public class DeleteParam { if(StringUtil.isEmpty(ids)){ return new ArrayList<>(); } - List collect = Arrays.stream(ids.split(",")).map(item -> Long.parseLong(item)).collect(Collectors.toList()); - return collect; + return Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); } } diff --git a/src/com/engine/organization/entity/LoggerContext.java b/src/com/engine/organization/entity/LoggerContext.java index 1d8c3699..4db04287 100644 --- a/src/com/engine/organization/entity/LoggerContext.java +++ b/src/com/engine/organization/entity/LoggerContext.java @@ -11,7 +11,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO 日志实体类 hr_log + * @description: 日志实体类 hr_log * @Date 2022/4/27 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/SelectOptionParam.java b/src/com/engine/organization/entity/SelectOptionParam.java new file mode 100644 index 00000000..94f75911 --- /dev/null +++ b/src/com/engine/organization/entity/SelectOptionParam.java @@ -0,0 +1,116 @@ +package com.engine.organization.entity; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.api.browser.bean.SearchConditionOption; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2022/06/13 + * @version: 1.0 + */ +public class SelectOptionParam { + + /** + * 下拉框Json转换 + * + * @param customValue + * @return + */ + public static List convertJsonToListOption(String customValue) { + List selectOptions = new ArrayList<>(); + JSONArray objects = JSONObject.parseArray(customValue); + if (objects.size() < 3) { + return selectOptions; + } + JSONObject o = (JSONObject) objects.get(2); + JSONArray datas = o.getJSONArray("datas"); + if (!datas.isEmpty()) { + int size = datas.size(); + for (int i = 0; i < size; i++) { + JSONObject jsonObject = (JSONObject) datas.get(i); + SearchConditionOption option = new SearchConditionOption(StringUtils.isEmpty(jsonObject.getString("key")) ? i + "" : jsonObject.getString("key"), jsonObject.getString("option")); + selectOptions.add(option); + } + } + return selectOptions; + } + + /** + * 获取自定义浏览按钮标识 + * + * @param customValue + * @return + */ + public static String getCustomBrowserId(String customValue) { + try { + JSONArray objects = JSONObject.parseArray(customValue); + if (null != objects && objects.size() > 2) { + JSONObject object = (JSONObject) objects.get(2); + return object.getString("value"); + } + } catch (Exception e) { + + } + return customValue; + } + + /** + * 获取自定义浏览按钮标识 + * + * @param customValue + * @return + */ + public static String getCustomBrowserValueSpan(String customValue) { + JSONArray objects = JSONObject.parseArray(customValue); + if (null != objects && objects.size() > 2) { + JSONObject object = (JSONObject) objects.get(2); + return object.getString("valueSpan"); + } + return customValue; + } + + /** + * 获取文本长度 + * + * @param customValue + * @return + */ + public static String getTextLength(String customValue) { + JSONArray objects = JSONObject.parseArray(customValue); + + if (null != objects && objects.size() > 2) { + return objects.get(2).toString(); + } + return customValue; + } + + /** + * 获取下拉框信息 + * + * @param customValue + * @return + */ + public static List getSelectFields(String customValue) { + List selectFields = new ArrayList<>(); + JSONArray objects = JSONObject.parseArray(customValue); + if (objects.size() < 3) { + return selectFields; + } + JSONObject o = (JSONObject) objects.get(2); + JSONArray datas = o.getJSONArray("datas"); + if (!datas.isEmpty()) { + int size = datas.size(); + for (int i = 0; i < size; i++) { + selectFields.add(datas.get(i)); + } + } + return selectFields; + } + + +} diff --git a/src/com/engine/organization/entity/TopTab.java b/src/com/engine/organization/entity/TopTab.java index ae7ffa82..d731f57f 100644 --- a/src/com/engine/organization/entity/TopTab.java +++ b/src/com/engine/organization/entity/TopTab.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/entity/TreeData.java b/src/com/engine/organization/entity/TreeData.java index a34c09de..45655ac6 100644 --- a/src/com/engine/organization/entity/TreeData.java +++ b/src/com/engine/organization/entity/TreeData.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.ArrayList; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java index 57b705f9..eb170cb8 100644 --- a/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java +++ b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java @@ -15,7 +15,7 @@ import java.util.stream.Collectors; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java index 640a161b..c7ce06e6 100644 --- a/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java +++ b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java index 05ee0786..4f6b8660 100644 --- a/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java index 37681351..8cfd6871 100644 --- a/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java @@ -9,7 +9,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java index fbf8a47f..3a5826bd 100644 --- a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java @@ -9,7 +9,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java index 7c54bf92..24449e0d 100644 --- a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java +++ b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java @@ -9,7 +9,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java index 68ec3c93..01ac3ddf 100644 --- a/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java @@ -9,7 +9,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO + * @Description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index d81bfb6d..38ce339b 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -1,6 +1,5 @@ package com.engine.organization.entity.company.bo; -import com.api.hrm.bean.TreeNode; import com.engine.organization.entity.company.dto.CompListDTO; import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.entity.company.po.CompPO; @@ -16,7 +15,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 @@ -27,7 +26,20 @@ public class CompBO { Map poMaps = list.stream().collect(Collectors.toMap(CompPO::getId, item -> item)); - List dtoList = list.stream().map(e -> CompListDTO.builder().id(e.getId()).compNo(e.getCompNo()).compName(e.getCompName()).compNameShort(e.getCompNameShort()).parentCompany(e.getParentCompany()).parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()).orgCode(e.getOrgCode()).industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")).compPrincipal(getUserNameById(e.getCompPrincipal() + "")).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); + List dtoList = list.stream().map(e -> + CompListDTO + .builder() + .id(e.getId()) + .compNo(e.getCompNo()) + .compName(e.getCompName()) + .compNameShort(e.getCompNameShort()) + .parentCompany(e.getParentCompany()) + .parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()) + .orgCode(e.getOrgCode()) + .industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")) + .compPrincipal(getUserNameById(e.getCompPrincipal() + "")) + .forbiddenTag(e.getForbiddenTag()) + .build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); // 处理被引用数据 List usedIds = MapperProxyFactory.getProxy(CompMapper.class).listUsedId(); @@ -66,11 +78,27 @@ public class CompBO { if (null == param) { return null; } - return CompPO.builder().id(param.getId() == null ? 0 : param.getId()).compNo(param.getCompNo()).compName(param.getCompName()).compNameShort(param.getCompNameShort()).parentCompany(param.getParentCompany()).orgCode(param.getOrgCode()).industry(param.getIndustry()).compPrincipal(param.getCompPrincipal()).description(param.getDescription()).forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1).deleteType(0).createTime(new Date()).updateTime(new Date()).creator(employeeId).build(); + return CompPO + .builder() + .id(param.getId() == null ? 0 : param.getId()) + .compNo(param.getCompNo()) + .compName(param.getCompName()) + .compNameShort(param.getCompNameShort()) + .parentCompany(param.getParentCompany()) + .orgCode(param.getOrgCode()) + .industry(param.getIndustry()) + .compPrincipal(param.getCompPrincipal()) + .description(param.getDescription()) + .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .creator(employeeId) + .build(); } - public static List buildSetToSearchTree(Set comps) { + public static List buildSetToSearchTree(Set comps) { return comps.stream().map(item -> { SearchTree tree = new SearchTree(); tree.setCanClick(true); diff --git a/src/com/engine/organization/entity/company/dto/CompListDTO.java b/src/com/engine/organization/entity/company/dto/CompListDTO.java index c456611a..1e630d21 100644 --- a/src/com/engine/organization/entity/company/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/company/dto/CompListDTO.java @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; import java.util.List; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/entity/company/param/CompSearchParam.java b/src/com/engine/organization/entity/company/param/CompSearchParam.java index 1aa114cc..a82c93b3 100644 --- a/src/com/engine/organization/entity/company/param/CompSearchParam.java +++ b/src/com/engine/organization/entity/company/param/CompSearchParam.java @@ -7,7 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/entity/company/po/CompPO.java b/src/com/engine/organization/entity/company/po/CompPO.java index 1acd4ab3..f23ab7cb 100644 --- a/src/com/engine/organization/entity/company/po/CompPO.java +++ b/src/com/engine/organization/entity/company/po/CompPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index be59ed1e..1a960959 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -15,7 +16,7 @@ import java.util.stream.Collectors; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -32,13 +33,13 @@ public class DepartmentBO { .deptNo(e.getDeptNo()) .deptName(e.getDeptName()) .deptNameShort(e.getDeptNameShort()) - .parentComp(e.getParentComp() + "")// 命名 + .parentComp(null == e.getParentComp() ? "" : MapperProxyFactory.getProxy(CompMapper.class).listById(e.getParentComp()).getCompName()) .parentDept(e.getParentDept()) - .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()) - .getDeptName()).deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) + .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) + .deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) .showOrder(null == e.getShowOrder() ? 0 : e.getShowOrder()) .forbiddenTag(e.getForbiddenTag()) - .build()).collect(Collectors.toList()); + .build() ).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); // 处理被引用数据 List usedIds = MapperProxyFactory.getProxy(DepartmentMapper.class).listUsedId(); @@ -80,14 +81,15 @@ public class DepartmentBO { .builder() .id(param.getId() == null ? 0 : param.getId()) .deptNo(param.getDeptNo()) - .deptName(param.getDeptName()) + .deptName(param.getDepartmentName()) .deptNameShort(param.getDeptNameShort()) - .parentComp(param.getParentComp()) - .parentDept(param.getParentDept()) + .parentComp(null == param.getParentComp() ? param.getSubcompanyid1() : param.getParentComp()) + .parentDept(null == param.getParentDept() ? param.getDepartmentid() : param.getParentDept()) .deptPrincipal(param.getDeptPrincipal()) .showOrder(param.getShowOrder()) .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) - .description(param.getDescription()).deleteType(0) + .description(param.getDescription()) + .deleteType(0) .createTime(new Date()) .updateTime(new Date()) .creator(employeeId) @@ -100,7 +102,16 @@ public class DepartmentBO { return Collections.emptyList(); } - List singleDeptTreeVOS = departmentPOs.stream().map(e -> SingleDeptTreeVO.builder().id(e.getId()).deptName(e.getDeptName()).parentComp(e.getParentComp()).parentDept(e.getParentDept()).parentDeptName(e.getParentDept() == null ? "" : getDeptNameById(e.getParentDept().intValue())).deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())).build()).collect(Collectors.toList()); + List singleDeptTreeVOS = departmentPOs.stream().map(e -> + SingleDeptTreeVO + .builder() + .id(e.getId()) + .deptName(e.getDeptName()) + .parentComp(e.getParentComp()) + .parentDept(e.getParentDept()) + .parentDeptName(e.getParentDept() == null ? "" : getDeptNameById(e.getParentDept().intValue())) + .deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())) + .build()).collect(Collectors.toList()); //获取非一级部门 Map> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO::getParentDept)); diff --git a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java index 5ea3a8f0..b7c24e29 100644 --- a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java +++ b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java @@ -13,7 +13,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/19 * @Version V1.0 **/ @@ -82,11 +82,11 @@ public class DepartmentListDTO { @TableTitle(title = "显示顺序", dataIndex = "showOrder", key = "showOrder") private int showOrder; - /** - * 说明 - */ - @TableTitle(title = "说明", dataIndex = "description", key = "description") - private String description; + ///** + // * 说明 + // */ + //@TableTitle(title = "说明", dataIndex = "description", key = "description") + //private String description; /** * 禁用标记 diff --git a/src/com/engine/organization/entity/department/param/DepartmentMergeParam.java b/src/com/engine/organization/entity/department/param/DepartmentMergeParam.java new file mode 100644 index 00000000..e4468c7b --- /dev/null +++ b/src/com/engine/organization/entity/department/param/DepartmentMergeParam.java @@ -0,0 +1,31 @@ +package com.engine.organization.entity.department.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/02 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentMergeParam { + /** + * 所选部门 + */ + private Long id; + /** + * 合并部门 + */ + private Long department; + /** + * 合并后名称 + */ + private String mergeName; +} diff --git a/src/com/engine/organization/entity/department/param/DepartmentMoveParam.java b/src/com/engine/organization/entity/department/param/DepartmentMoveParam.java new file mode 100644 index 00000000..a3aee686 --- /dev/null +++ b/src/com/engine/organization/entity/department/param/DepartmentMoveParam.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.department.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/02 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentMoveParam { + private Long id; + private String moveType; + private Long company; + private Long department; +} diff --git a/src/com/engine/organization/entity/department/param/DeptCopyParam.java b/src/com/engine/organization/entity/department/param/DeptCopyParam.java new file mode 100644 index 00000000..057cf0fb --- /dev/null +++ b/src/com/engine/organization/entity/department/param/DeptCopyParam.java @@ -0,0 +1,26 @@ +package com.engine.organization.entity.department.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DeptCopyParam { + private String ids; + + private String company; + /** + * 是否复制岗位 + */ + private String copyJob; +} diff --git a/src/com/engine/organization/entity/department/param/DeptSearchParam.java b/src/com/engine/organization/entity/department/param/DeptSearchParam.java index 619b9ec1..1eaff53c 100644 --- a/src/com/engine/organization/entity/department/param/DeptSearchParam.java +++ b/src/com/engine/organization/entity/department/param/DeptSearchParam.java @@ -7,7 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/23 * @version: 1.0 @@ -21,7 +21,7 @@ public class DeptSearchParam extends BaseQueryParam { private String deptNo; - private String deptName; + private String departmentName; private String deptNameShort; @@ -36,4 +36,8 @@ public class DeptSearchParam extends BaseQueryParam { private String description; private Boolean forbiddenTag; + + private Long subcompanyid1; + + private Long departmentid; } diff --git a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java index aee890e3..2845d015 100644 --- a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java +++ b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -20,4 +20,6 @@ public class QuerySingleDeptListParam extends BaseQueryParam { private Long parentComp; + private Long parentDept; + } diff --git a/src/com/engine/organization/entity/department/po/DepartmentPO.java b/src/com/engine/organization/entity/department/po/DepartmentPO.java index c93a2ae3..aef54892 100644 --- a/src/com/engine/organization/entity/department/po/DepartmentPO.java +++ b/src/com/engine/organization/entity/department/po/DepartmentPO.java @@ -9,7 +9,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/19 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java b/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java index c1536203..319d1f26 100644 --- a/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java +++ b/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java @@ -12,7 +12,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/employee/Employee.java b/src/com/engine/organization/entity/employee/Employee.java index d64979c6..17258d83 100644 --- a/src/com/engine/organization/entity/employee/Employee.java +++ b/src/com/engine/organization/entity/employee/Employee.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java index b493b975..ed1c9e78 100644 --- a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java +++ b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java @@ -1,7 +1,7 @@ package com.engine.organization.entity.employee.vo; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/31 * @version: 1.0 diff --git a/src/com/engine/organization/entity/extend/ExtendInfoOperateType.java b/src/com/engine/organization/entity/extend/ExtendInfoOperateType.java new file mode 100644 index 00000000..2f1046d5 --- /dev/null +++ b/src/com/engine/organization/entity/extend/ExtendInfoOperateType.java @@ -0,0 +1,24 @@ +package com.engine.organization.entity.extend; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/13 + * @version: 1.0 + */ +public enum ExtendInfoOperateType { + LIST("list"), + SEARCH("search"), + EDIT("edit"), + ADD("add"); + + private String value; + + ExtendInfoOperateType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java new file mode 100644 index 00000000..76614a44 --- /dev/null +++ b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java @@ -0,0 +1,90 @@ +package com.engine.organization.entity.extend.bo; + +import com.engine.organization.entity.extend.po.ExtendGroupPO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; +import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; +import org.apache.commons.collections.CollectionUtils; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/14 + * @Version V1.0 + **/ +public class ExtendGroupBO { + + public static List buildTypeTree(List extendGroupPOS) { + + if (CollectionUtils.isEmpty(extendGroupPOS)) { + return Collections.emptyList(); + } + + List typeTreeVOS = extendGroupPOS.stream().map(e -> + TypeTreeVO.builder() + .canClick(true) + .addChild(e.getPid() == null) + .domid(String.valueOf(e.getId())) + .childs(Lists.newArrayList()) + .hasGroup(isHasGroup(e.getId())) + .isShow(e.getIsShow()) + .key(e.getId()) + .name(e.getGroupName()) + .viewAttr(e.getIsSystemDefault() == 0 ? 1 : 2) + .pid(e.getPid()) + .build()).collect(Collectors.toList()); + + //获取非一级 + Map> collects = typeTreeVOS.stream().filter(item -> item.getPid() != null).collect(Collectors.groupingBy(TypeTreeVO::getPid)); + + return typeTreeVOS.stream().peek(e -> { + e.setChilds(collects.get(e.getKey())); + e.setHaschild(collects.get(e.getKey()) != null && collects.get(e.getKey()).size() > 0); + }).filter(item -> item.getPid() == null).collect(Collectors.toList()); + } + + + private static boolean isHasGroup(Long id) { + List titlesByGroupID = MapperProxyFactory.getProxy(ExtendTitleMapper.class).getTitlesByGroupID(id); + return titlesByGroupID.size() > 0; + } + + /** + * 获取对应表名 + * + * @param extendGroupPO + * @return + */ + public static String getTableNameByGroupPO(ExtendGroupPO extendGroupPO) { + String tableName = ""; + switch (extendGroupPO.getExtendType()) { + case 1: + tableName = "JCL_ORG_COMP"; + break; + case 2: + tableName = "JCL_ORG_DEPT"; + break; + case 3: + tableName = "JCL_ORG_JOB"; + break; + default: + break; + } + + if (extendGroupPO.getIsSystemDefault() == 0) { + + } else if (null == extendGroupPO.getPid()) { + tableName += "EXT"; + } else { + tableName += "EXT_DT1"; + } + return tableName; + } +} diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 192c1ae6..0adfead5 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -3,6 +3,7 @@ package com.engine.organization.entity.extend.bo; import com.api.browser.bean.BrowserBean; import com.api.browser.bean.BrowserValueInfo; import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; import com.api.browser.service.BrowserValueInfoService; import com.api.browser.util.BrowserInitUtil; import com.api.browser.util.ConditionFactory; @@ -11,22 +12,26 @@ import com.api.hrm.bean.FieldItem; import com.api.hrm.util.FieldType; import com.api.hrm.util.ServiceUtil; import com.engine.kq.cmd.shiftmanagement.toolkit.ShiftManagementToolKit; +import com.engine.organization.entity.SelectOptionParam; +import com.engine.organization.entity.extend.param.ExtendInfoFieldParam; +import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; +import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.MapperProxyFactory; import com.engine.sensitive.biz.SensitiveWordTypeComInfo; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.definedfield.HrmFieldManager; import weaver.systeminfo.SystemEnv; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/19 * @version: 1.0 @@ -63,6 +68,69 @@ public class ExtendInfoBO { } + /** + * 新增自定义字段时,对象转换 + * + * @param user + * @param infoFieldParam + * @param extendGroupPO + * @param extendGroupId + * @param showOrder + * @return + */ + public static ExtendInfoPO convertFieldParam2ExtendInfo(User user, ExtendInfoFieldParam infoFieldParam, ExtendGroupPO extendGroupPO, Long extendGroupId, Integer showOrder) { + if (null == infoFieldParam) { + return null; + } + String controlType = infoFieldParam.getControlType(); + String browserType = infoFieldParam.getBrowserType(controlType); + String dbType = infoFieldParam.getDbType(controlType, browserType); + if (StringUtils.isEmpty(dbType)) { + dbType = infoFieldParam.getDbType("2", ""); + } + return ExtendInfoPO + .builder() + .id(infoFieldParam.getId()) + .extendType(extendGroupPO.getExtendType()) + .tableName(ExtendGroupBO.getTableNameByGroupPO(extendGroupPO)) + .fieldName(infoFieldParam.getFieldname()) + .fieldNameDesc(infoFieldParam.getFieldlabel()) + // 数据库类型 + .fieldType(dbType) + .controlType(Integer.parseInt(controlType)) + .browserType(browserType) + .extendGroupId(extendGroupId) + .isenable("1".equals(infoFieldParam.getEnable()) ? 1 : 0) + .isrequired("1".equals(infoFieldParam.getRequired()) ? 1 : 0) + .listShow(1) + .editShow("0".equals(infoFieldParam.getIsModify()) ? 0 : 1) + .addShow(1) + .browserShow(1) + .customValue(infoFieldParam.getFieldType().toString()) + .showOrder(showOrder) + // 非系统初始化字段 + .isSystemDefault(1) + .creator((long) user.getUID()) + .deleteType(0) + .createTime(new Date()) + .build(); + } + + /** + * 当前自定义字段是否已使用 + * + * @param tableName + * @param fieldName + * @return + */ + public static boolean fieldIsUsed(String tableName, String fieldName) { + if (StringUtils.isAnyEmpty(tableName, fieldName)) { + return true; + } + List objects = MapperProxyFactory.getProxy(ExtendInfoMapper.class).listFieldsByTableName(tableName, fieldName); + objects.removeIf(Objects::isNull); + return CollectionUtils.isNotEmpty(objects); + } /** * 明细表字段 @@ -114,7 +182,8 @@ public class ExtendInfoBO { // 浏览按钮特殊处理 if (FieldType.BROWSER.equals(fieldItem.getType())) { - BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), extendInfoPO.getCustomBrowserId()).getBrowserConditionParam(); + String browserId = SelectOptionParam.getCustomBrowserId(extendInfoPO.getCustomValue()); + BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), browserId).getBrowserConditionParam(); fieldItem.setBrowserConditionParam(browserConditionParam); } @@ -163,7 +232,7 @@ public class ExtendInfoBO { String fieldlabel = Util.null2String(extendInfoPO.getFieldNameDesc());//字段显示名 String fieldhtmltype = Util.null2String(extendInfoPO.getControlType());//字段类型 String detailtype = Util.null2String(extendInfoPO.getBrowserType());//字段二级类型(浏览框--单人力) - String dmlurl = Util.null2String(""); + String customValue = Util.null2String(extendInfoPO.getCustomValue()); boolean isQuickSearch = true; boolean isScope = false; @@ -176,11 +245,12 @@ public class ExtendInfoBO { } else if (detailtype.equals("2")) {//数字 searchConditionItem = conditionFactory.createCondition(ConditionType.INPUTNUMBER, fieldlabel, fieldname, isQuickSearch); } else { - searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, fieldlabel, fieldname, isQuickSearch); + searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, "25034", fieldname, isQuickSearch); } } else if (fieldhtmltype.equals("2")) {//多行文本框 searchConditionItem = conditionFactory.createCondition(ConditionType.TEXTAREA, fieldlabel, fieldname); } else if (fieldhtmltype.equals("3")) {//浏览按钮 + customValue = SelectOptionParam.getCustomBrowserId(customValue); if (detailtype.equals("2")) { if (!extendInfoPO.getTableName().toLowerCase().contains("_dt")) { searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname); @@ -212,25 +282,25 @@ public class ExtendInfoBO { searchConditionItem = conditionFactory.createCondition(ConditionType.TIMERANGEPICKER, fieldlabel, domkey); searchConditionItem.setValue(fieldvalue); } else { - //if (detailtype.equals("161") || detailtype.equals("162") || detailtype.equals("256") || detailtype.equals("257")) { - // BrowserBean browserbean = new BrowserBean(detailtype + ""); - // BrowserInitUtil browserInitUtil = new BrowserInitUtil(); - // String fielddbtype = dmlurl; - // if (!dmlurl.startsWith("browser.")) { - // fielddbtype = "browser." + dmlurl; - // } - // if (detailtype.equals("161") || detailtype.equals("162")) { - // browserInitUtil.initCustomizeBrow(browserbean, fielddbtype, Util.getIntValue(detailtype), user.getUID()); - // } else { - // browserbean.getDataParams().put("cube_treeid", dmlurl); - // browserbean.getDataParams().put("currenttime", System.currentTimeMillis()); - // browserInitUtil.initBrowser(browserbean, user.getLanguage()); - // } - // searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()), new String[]{fieldname}, browserbean); - //} else { - searchConditionItem = conditionFactory.createCondition(ConditionType.BROWSER, fieldlabel, fieldname, detailtype); - //} - // searchConditionItem.getBrowserConditionParam().setHideVirtualOrg(hrmFieldBean.getHideVirtualOrg()); + if (detailtype.equals("161") || detailtype.equals("162") || detailtype.equals("256") || detailtype.equals("257")) { + BrowserBean browserbean = new BrowserBean(detailtype + ""); + BrowserInitUtil browserInitUtil = new BrowserInitUtil(); + String fielddbtype = customValue; + if (!customValue.startsWith("browser.")) { + fielddbtype = "browser." + customValue; + } + if (detailtype.equals("161") || detailtype.equals("162")) { + browserInitUtil.initCustomizeBrow(browserbean, fielddbtype, Util.getIntValue(detailtype), user.getUID()); + } else { + browserbean.getDataParams().put("cube_treeid", customValue); + browserbean.getDataParams().put("currenttime", System.currentTimeMillis()); + browserInitUtil.initBrowser(browserbean, user.getLanguage()); + } + searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, fieldlabel, new String[]{fieldname}, browserbean); + } else { + searchConditionItem = conditionFactory.createCondition(ConditionType.BROWSER, fieldlabel, fieldname, detailtype); + } + //searchConditionItem.getBrowserConditionParam().setHideVirtualOrg(hrmFieldBean.getHideVirtualOrg()); List> replaceDatas = new ArrayList>(); String tmpFieldValue = Util.null2String(fieldvalue); if (detailtype.equals("mkqshift")) { @@ -260,7 +330,9 @@ public class ExtendInfoBO { for (int i = 0; fieldvalues != null && i < fieldvalues.size(); i++) { BrowserValueInfo valueInfo = fieldvalues.get(i); String fieldshowname = valueInfo.getName(); - if (fieldshowname.length() == 0) continue; + if (fieldshowname.length() == 0) { + continue; + } Map replaceData = new HashMap(); replaceData.put("id", valueInfo.getId()); replaceData.put("name", fieldshowname); @@ -268,7 +340,7 @@ public class ExtendInfoBO { } } else { if (tmpFieldValue.length() > 0) { - String fieldshowname = hrmFieldManager.getFieldvalue(user, dmlurl, Util.getIntValue(fieldid), Util.getIntValue(fieldhtmltype), Util.getIntValue(detailtype), tmpFieldValue, 0); + String fieldshowname = hrmFieldManager.getFieldvalue(user, customValue, Util.getIntValue(fieldid), Util.getIntValue(fieldhtmltype), Util.getIntValue(detailtype), tmpFieldValue, 0); String[] fieldvalues = Util.splitString(tmpFieldValue, ","); String[] fieldshownames = Util.splitString(fieldshowname, ","); if (detailtype.equals("257")) { @@ -281,7 +353,9 @@ public class ExtendInfoBO { if (fieldvalues.length != fieldshownames.length) { break; } - if (Util.null2String(fieldshownames[i]).length() == 0) continue; + if (Util.null2String(fieldshownames[i]).length() == 0) { + continue; + } Map replaceData = new HashMap(); replaceData.put("id", fieldvalues[i]); replaceData.put("name", fieldshownames[i]); @@ -298,49 +372,15 @@ public class ExtendInfoBO { } } else if (fieldhtmltype.equals("5")) { //选择框 - // List statusOptions = hrmFieldBean.getSelectOption(); - // if (statusOptions == null) statusOptions = new ArrayList(); - // try { - // if (fieldid.length() > 0) { - // rs = new RecordSet(); - // char flag = Util.getSeparator(); - // if (hrmFieldBean.getIsFormField()) { - // if (Util.null2String(hrmFieldBean.getIssystem()).equals("1")) { - // rs.executeProc("hrm_selectitembyid_new", "" + fieldid + flag + 1); - // } else { - // rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1); - // } - // } else { - // if (fieldname.startsWith("column_")) { - // rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1); - // } else { - // rs.executeProc("hrm_searchselectitembyid", fieldid); - // } - // } - // while (rs.next()) { - // String tmpselectvalue = Util.null2String(rs.getString("selectvalue")); - // String tmpselectname = Util.toScreen(rs.getString("selectname"), user.getLanguage()); - // if (Util.null2String(rs.getString("cancel")).equals("1")) continue; - // boolean isDefault = Util.null2String(rs.getString("isdefault")).equals("y"); - // if (!isDefault) { - // isDefault = Util.null2String(rs.getString("hrm_isdefault")).equals("1"); - // } - // SearchConditionOption searchConditionOption = new SearchConditionOption(tmpselectvalue, tmpselectname, isDefault); - // if (!statusOptions.contains(searchConditionOption)) { - // statusOptions.add(searchConditionOption); - // } - // } - // } - // } catch (Exception e) { - // writeLog(e); - // } - // searchConditionItem = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname, statusOptions); - // if (detailtype.equals("") || detailtype.equals("0")) { - // detailtype = "1"; - // } - // searchConditionItem.setKey(Util.null2String(fieldvalue)); - // searchConditionItem.setValue(fieldvalue); - // searchConditionItem.setDetailtype(Util.getIntValue(detailtype, 3)); + + List searchConditionOptions = SelectOptionParam.convertJsonToListOption(customValue); + searchConditionItem = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname, searchConditionOptions); + if (detailtype.equals("") || detailtype.equals("0")) { + detailtype = "1"; + } + searchConditionItem.setKey(Util.null2String(fieldvalue)); + searchConditionItem.setValue(fieldvalue + ""); + searchConditionItem.setDetailtype(Util.getIntValue(detailtype, 3)); } else if (fieldhtmltype.equals("6")) {//附件 if (fieldname.equals("resourceimageid")) { searchConditionItem = conditionFactory.createCondition(ConditionType.RESOURCEIMG, fieldlabel, fieldname, isQuickSearch); diff --git a/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java new file mode 100644 index 00000000..5487d7c0 --- /dev/null +++ b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java @@ -0,0 +1,35 @@ +package com.engine.organization.entity.extend.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import weaver.general.StringUtil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * @author:dxfeng + * @createTime: 2022/06/16 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendFieldSearchParam { + private String id; + private Long groupId; + private Long groupType; + + + public Collection getId() { + if (StringUtil.isEmpty(id)) { + return new ArrayList<>(); + } + return Arrays.stream(id.split(",")).map(Long::parseLong).collect(Collectors.toList()); + } +} diff --git a/src/com/engine/organization/entity/extend/param/ExtendInfoChangeParam.java b/src/com/engine/organization/entity/extend/param/ExtendInfoChangeParam.java new file mode 100644 index 00000000..139a5c26 --- /dev/null +++ b/src/com/engine/organization/entity/extend/param/ExtendInfoChangeParam.java @@ -0,0 +1,22 @@ +package com.engine.organization.entity.extend.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/06/16 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendInfoChangeParam { + private String fieldids; + private String fieldnames; + private Long groupid; + private Long scopeid; +} diff --git a/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java b/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java new file mode 100644 index 00000000..7e055d9c --- /dev/null +++ b/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java @@ -0,0 +1,130 @@ +package com.engine.organization.entity.extend.param; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.hrm.biz.FieldParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.lang.StringUtils; +import weaver.general.Util; + +/** + * @author:dxfeng + * @createTime: 2022/06/15 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendInfoFieldParam { + private Long id; + // field_name + private String fieldname; + // field_name_desc + private String fieldlabel; + + private Object fieldType; + + private String enable; + + private String required; + + private String isModify; + + private String key; + + public String getControlType() { + JSONArray fieldType = (JSONArray) this.getFieldType(); + String fieldHtmlType = Util.null2String(fieldType.get(0)); + if (fieldHtmlType.equals("input")) { + fieldHtmlType = "1"; + } else if (fieldHtmlType.equals("textarea")) { + fieldHtmlType = "2"; + } else if (fieldHtmlType.equals("browser")) { + fieldHtmlType = "3"; + } else if (fieldHtmlType.equals("check")) { + fieldHtmlType = "4"; + } else if (fieldHtmlType.equals("select")) { + fieldHtmlType = "5"; + } else if (fieldHtmlType.equals("upload")) { + fieldHtmlType = "6"; + } + return fieldHtmlType; + } + + public String getBrowserType(String controlType) { + String browserType = "1"; + JSONArray fieldType = (JSONArray) this.getFieldType(); + if (fieldType.size() > 1) { + browserType = Util.null2String(fieldType.get(1)); + } + if (controlType.equals("1")) { + if (browserType.equals("text")) { + browserType = "1"; + } else if (browserType.equals("int")) { + browserType = "2"; + } else if (browserType.equals("float")) { + browserType = "3"; + } else if (browserType.equals("file")) { + browserType = "1"; + } + } + if (controlType.equals("2")) { + browserType = "1"; + } else if (controlType.equals("3")) { + browserType = Util.null2String(((JSONObject) fieldType.get(1)).get("value")); + } else if (controlType.equals("4")) { + browserType = "1"; + } else if (controlType.equals("5")) { + browserType = "1"; + } else if (controlType.equals("6")) { + if (browserType.equals("file")) { + browserType = "1"; + } + } + return browserType; + } + + public String getDbType(String controlType, String browserType) { + FieldParam fp = new FieldParam(); + if (controlType.equals("1")) { + JSONArray fieldType = (JSONArray) this.getFieldType(); + String dbLength = "100"; + if (fieldType.size() > 2) { + dbLength = fieldType.get(2).toString(); + } + fp.setSimpleText(Util.getIntValue(browserType, -1), dbLength); + } else if (controlType.equals("2")) { + fp.setText(); + } else if (controlType.equals("3")) { + fp.setBrowser(Util.getIntValue(browserType, -1)); + } else if (controlType.equals("4")) { + fp.setCheck(); + } else if (controlType.equals("5")) { + fp.setSelect(); + } else if (controlType.equals("6")) { + fp.setAttach(); + } + return fp.getFielddbtype(); + } + + public static String toDbc(String input) { + if (StringUtils.isBlank(input)) { + return ""; + } + char[] c = input.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (c[i] == 12288) { + c[i] = (char) 32; + continue; + } + if (c[i] > 65280 && c[i] < 65375) { + c[i] = (char) (c[i] - 65248); + } + } + return new String(c); + } +} \ No newline at end of file diff --git a/src/com/engine/organization/entity/extend/param/ExtendTitleSaveParam.java b/src/com/engine/organization/entity/extend/param/ExtendTitleSaveParam.java new file mode 100644 index 00000000..60e54077 --- /dev/null +++ b/src/com/engine/organization/entity/extend/param/ExtendTitleSaveParam.java @@ -0,0 +1,24 @@ +package com.engine.organization.entity.extend.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/06/15 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendTitleSaveParam { + private String data; + private Long groupType; + private Long id; + private String groupName; + private String isShow; + +} diff --git a/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java b/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java index 5c840aa2..2bbffbd0 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/18 * @version: 1.0 @@ -33,6 +33,17 @@ public class ExtendGroupPO { */ private String groupName; + /** + * 父级 + */ + private Long pid; + + private String isShow; + + private Integer showOrder; + + private Integer isSystemDefault; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index f7b4d707..74d5da3e 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/19 * @version: 1.0 @@ -100,15 +100,17 @@ public class ExtendInfoPO { private Integer browserShow; /** - * 自定义浏览按钮标识 + * 自定义标识 */ - private String customBrowserId; + private String customValue; /** * 显示顺序 */ private Integer showOrder; + private Integer isSystemDefault; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java new file mode 100644 index 00000000..884c355f --- /dev/null +++ b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java @@ -0,0 +1,50 @@ +package com.engine.organization.entity.extend.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author:dxfeng + * @createTime: 2022/06/14 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendTitlePO { + /** + * 主键 + */ + private Long id; + + /** + * 分组标识 + */ + private Long groupId; + + /** + * 分组名称 + */ + private String title; + /** + * 展示排序 + */ + private Integer showOrder; + + /** + * 是否展示 + */ + private String isShow; + + private Integer isSystemDefault; + + private Long creator; + private Integer deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/fieldset/param/FieldTypeTreeParam.java b/src/com/engine/organization/entity/fieldset/param/FieldTypeTreeParam.java new file mode 100644 index 00000000..a9100ecc --- /dev/null +++ b/src/com/engine/organization/entity/fieldset/param/FieldTypeTreeParam.java @@ -0,0 +1,36 @@ +package com.engine.organization.entity.fieldset.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/15 + * @Version V1.0 + **/ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FieldTypeTreeParam { + + private String data; //信息维护json数据 + + private Long id; + + private Long parentId; + + private String name; + + private String isShow; + + private String groupOrder; + + private List childs; +} diff --git a/src/com/engine/organization/entity/fieldset/vo/TypeTreeVO.java b/src/com/engine/organization/entity/fieldset/vo/TypeTreeVO.java new file mode 100644 index 00000000..32c09f11 --- /dev/null +++ b/src/com/engine/organization/entity/fieldset/vo/TypeTreeVO.java @@ -0,0 +1,72 @@ +package com.engine.organization.entity.fieldset.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author weaver_cl + * @description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TypeTreeVO { + + //是否可以增加子节点 + private boolean addChild; + + private boolean canCanceled; + + //当前节点是否可点击 + private boolean canClick; + + //树id + private String domid; + + //是否存在分组 + private boolean hasGroup; + + //是否有子节点 + private boolean haschild; + + //是否是叶子节点 + private boolean isLeaf; + + //是否是父节点 + private boolean isParent; + + //是否默认选中 + private boolean isSelected; + + //是否展示 + private String isShow; + + //是否默认展开 + private boolean isopen; + + //键 + private Long key; + + //树名称 + private String name; + + //子节点 + private List childs; + + // + private int viewAttr; + + private ArrayList subs; + + //父节点id + private Long pid; + +} diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 89f50305..5e8bec08 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -3,6 +3,7 @@ package com.engine.organization.entity.job.bo; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.transmethod.JobTransMethod; import com.engine.organization.util.db.MapperProxyFactory; @@ -12,7 +13,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/30 * @version: 1.0 @@ -28,8 +29,8 @@ public class JobBO { .id(param.getId() == null ? 0 : param.getId()) .jobNo(param.getJobNo()) .jobName(param.getJobName()) - .parentComp(param.getParentComp()) - .parentDept(param.getParentDept()) + .parentComp(null == param.getParentComp() ? param.getSubcompanyid1() : param.getParentComp()) + .parentDept(null == param.getParentDept() ? param.getDepartmentid() : param.getParentDept()) .sequenceId(param.getSequenceId()) .schemeId(param.getSchemeId()) .parentJob(param.getParentJob()) @@ -47,6 +48,29 @@ public class JobBO { } + public static List buildSingleJobTreeVOS(List jobPOS, Long parentDept) { + if (CollectionUtils.isEmpty(jobPOS)) { + return Collections.emptyList(); + } + Map poMaps = jobPOS.stream().collect(Collectors.toMap(JobPO::getId, item -> item)); + + List singleJobTreeVOS = jobPOS.stream().map(e -> + SingleJobTreeVO + .builder() + .id(e.getId()) + .jobNo(e.getJobNo()) + .jobName(e.getJobName()) + .parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) + .parentJob(e.getParentJob()) + .parentDept(e.getParentDept()) + .build()).collect(Collectors.toList()); + //获取非一级部门 + Map> collects = singleJobTreeVOS.stream().filter(item -> null != item.getParentJob()).collect(Collectors.groupingBy(SingleJobTreeVO::getParentJob)); + + return singleJobTreeVOS.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> parentDept.equals(item.getParentDept()) && null == item.getParentJob()).collect(Collectors.toList()); + } + + public static List buildDTOList(Collection list) { // 递归添加父级数据 Map poMaps = list.stream().collect(Collectors.toMap(JobListDTO::getId, item -> item)); diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java index 040b3279..28b7c573 100644 --- a/src/com/engine/organization/entity/job/dto/JobListDTO.java +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; import java.util.List; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/30 * @version: 1.0 diff --git a/src/com/engine/organization/entity/job/param/JobCopyParam.java b/src/com/engine/organization/entity/job/param/JobCopyParam.java new file mode 100644 index 00000000..b958e8a4 --- /dev/null +++ b/src/com/engine/organization/entity/job/param/JobCopyParam.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.job.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JobCopyParam { + private String ids; + + private String department; + +} diff --git a/src/com/engine/organization/entity/job/param/JobSearchParam.java b/src/com/engine/organization/entity/job/param/JobSearchParam.java index 69088ae8..c1da3d3b 100644 --- a/src/com/engine/organization/entity/job/param/JobSearchParam.java +++ b/src/com/engine/organization/entity/job/param/JobSearchParam.java @@ -7,7 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/30 * @version: 1.0 @@ -73,4 +73,8 @@ public class JobSearchParam extends BaseQueryParam { * 禁用标记 */ private Boolean forbiddenTag; + + private Long subcompanyid1; + + private Long departmentid; } diff --git a/src/com/engine/organization/entity/job/po/JobDTPO.java b/src/com/engine/organization/entity/job/po/JobDTPO.java index a259cfbe..3c8f2c74 100644 --- a/src/com/engine/organization/entity/job/po/JobDTPO.java +++ b/src/com/engine/organization/entity/job/po/JobDTPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/31 * @version: 1.0 diff --git a/src/com/engine/organization/entity/job/po/JobPO.java b/src/com/engine/organization/entity/job/po/JobPO.java index 20d224bd..a99bb164 100644 --- a/src/com/engine/organization/entity/job/po/JobPO.java +++ b/src/com/engine/organization/entity/job/po/JobPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/30 * @version: 1.0 diff --git a/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java new file mode 100644 index 00000000..56e2b718 --- /dev/null +++ b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java @@ -0,0 +1,44 @@ +package com.engine.organization.entity.job.vo; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/02 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "434c1b24-e248-11ec-8a67-00e04c680716", + tableType = WeaTableType.NONE) +public class SingleJobTreeVO { + + private Long id; + + @TableTitle(title = "编号", dataIndex = "jobNo", key = "jobNo") + private String jobNo; + + @TableTitle(title = "名称", dataIndex = "jobName", key = "jobName") + private String jobName; + + @TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") + private String parentJobName; + + private Long parentJob; + + private Long parentDept; + + private List children; + +} diff --git a/src/com/engine/organization/entity/po/Demo.java b/src/com/engine/organization/entity/po/Demo.java index 41d0388a..f572caff 100644 --- a/src/com/engine/organization/entity/po/Demo.java +++ b/src/com/engine/organization/entity/po/Demo.java @@ -9,7 +9,7 @@ import java.util.Date; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/postion/dto/PostDTO.java b/src/com/engine/organization/entity/postion/dto/PostDTO.java index c06fd8ac..51de900f 100644 --- a/src/com/engine/organization/entity/postion/dto/PostDTO.java +++ b/src/com/engine/organization/entity/postion/dto/PostDTO.java @@ -5,7 +5,7 @@ import com.engine.organization.entity.postion.po.PostPO; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java b/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java index a21c6de3..bfdf7d76 100644 --- a/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java +++ b/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java @@ -6,7 +6,7 @@ import com.engine.organization.entity.postion.po.PostInfoPO; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java b/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java index fa309dff..93de6af8 100644 --- a/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java +++ b/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/postion/po/PostInfoPO.java b/src/com/engine/organization/entity/postion/po/PostInfoPO.java index d780e7f3..6fdcf20e 100644 --- a/src/com/engine/organization/entity/postion/po/PostInfoPO.java +++ b/src/com/engine/organization/entity/postion/po/PostInfoPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/postion/po/PostPO.java b/src/com/engine/organization/entity/postion/po/PostPO.java index 0767a090..e9f07b1f 100644 --- a/src/com/engine/organization/entity/postion/po/PostPO.java +++ b/src/com/engine/organization/entity/postion/po/PostPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java b/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java index 62d6dc16..58bd87d5 100644 --- a/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java +++ b/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java @@ -9,7 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/entity/scheme/dto/GradeDTO.java b/src/com/engine/organization/entity/scheme/dto/GradeDTO.java index f6f0699d..8156d597 100644 --- a/src/com/engine/organization/entity/scheme/dto/GradeDTO.java +++ b/src/com/engine/organization/entity/scheme/dto/GradeDTO.java @@ -11,7 +11,7 @@ import java.util.Date; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/11 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/dto/LevelDTO.java b/src/com/engine/organization/entity/scheme/dto/LevelDTO.java index 4bf86d20..62fab86e 100644 --- a/src/com/engine/organization/entity/scheme/dto/LevelDTO.java +++ b/src/com/engine/organization/entity/scheme/dto/LevelDTO.java @@ -11,7 +11,7 @@ import java.util.Date; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/dto/SchemeDTO.java b/src/com/engine/organization/entity/scheme/dto/SchemeDTO.java index b442cf71..3c54ec7e 100644 --- a/src/com/engine/organization/entity/scheme/dto/SchemeDTO.java +++ b/src/com/engine/organization/entity/scheme/dto/SchemeDTO.java @@ -11,7 +11,7 @@ import java.util.Date; import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/param/GradeSearchParam.java b/src/com/engine/organization/entity/scheme/param/GradeSearchParam.java index 81ed4b4c..bf7aac27 100644 --- a/src/com/engine/organization/entity/scheme/param/GradeSearchParam.java +++ b/src/com/engine/organization/entity/scheme/param/GradeSearchParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/11 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/param/LevelSearchParam.java b/src/com/engine/organization/entity/scheme/param/LevelSearchParam.java index b4e5bf13..33d40a40 100644 --- a/src/com/engine/organization/entity/scheme/param/LevelSearchParam.java +++ b/src/com/engine/organization/entity/scheme/param/LevelSearchParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/param/SchemeSearchParam.java b/src/com/engine/organization/entity/scheme/param/SchemeSearchParam.java index 18a3112a..84d53a8d 100644 --- a/src/com/engine/organization/entity/scheme/param/SchemeSearchParam.java +++ b/src/com/engine/organization/entity/scheme/param/SchemeSearchParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/scheme/po/GradePO.java b/src/com/engine/organization/entity/scheme/po/GradePO.java index 3d1a435f..511a8521 100644 --- a/src/com/engine/organization/entity/scheme/po/GradePO.java +++ b/src/com/engine/organization/entity/scheme/po/GradePO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/entity/scheme/po/LevelPO.java b/src/com/engine/organization/entity/scheme/po/LevelPO.java index 3a1e9819..4616c707 100644 --- a/src/com/engine/organization/entity/scheme/po/LevelPO.java +++ b/src/com/engine/organization/entity/scheme/po/LevelPO.java @@ -9,7 +9,7 @@ import java.util.Date; /** * - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/09 * @version: 1.0 diff --git a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java index 6f61a22e..ef037941 100644 --- a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/entity/searchtree/SearchTree.java b/src/com/engine/organization/entity/searchtree/SearchTree.java index d15d125c..14c98631 100644 --- a/src/com/engine/organization/entity/searchtree/SearchTree.java +++ b/src/com/engine/organization/entity/searchtree/SearchTree.java @@ -4,7 +4,7 @@ import com.api.hrm.bean.TreeNode; import lombok.Data; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/26 * @version: 1.0 diff --git a/src/com/engine/organization/entity/searchtree/SearchTreeParams.java b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java index 46d9959f..bc1b08f2 100644 --- a/src/com/engine/organization/entity/searchtree/SearchTreeParams.java +++ b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java @@ -3,7 +3,7 @@ package com.engine.organization.entity.searchtree; import lombok.Data; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/26 * @version: 1.0 diff --git a/src/com/engine/organization/entity/sequence/dto/SequenceDTO.java b/src/com/engine/organization/entity/sequence/dto/SequenceDTO.java index 1a9cfa77..175b0b56 100644 --- a/src/com/engine/organization/entity/sequence/dto/SequenceDTO.java +++ b/src/com/engine/organization/entity/sequence/dto/SequenceDTO.java @@ -11,7 +11,7 @@ import java.util.Date; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/11 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/sequence/param/SequenceSearchParam.java b/src/com/engine/organization/entity/sequence/param/SequenceSearchParam.java index d7b29951..bff55778 100644 --- a/src/com/engine/organization/entity/sequence/param/SequenceSearchParam.java +++ b/src/com/engine/organization/entity/sequence/param/SequenceSearchParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/12 * @Version V1.0 **/ diff --git a/src/com/engine/organization/entity/sequence/po/SequencePO.java b/src/com/engine/organization/entity/sequence/po/SequencePO.java index df6db25a..0e568fbb 100644 --- a/src/com/engine/organization/entity/sequence/po/SequencePO.java +++ b/src/com/engine/organization/entity/sequence/po/SequencePO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java index 0c1b404b..b061d363 100644 --- a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java +++ b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/entity/staff/bo/StaffBO.java b/src/com/engine/organization/entity/staff/bo/StaffBO.java index aa8a3b56..2fc56f5b 100644 --- a/src/com/engine/organization/entity/staff/bo/StaffBO.java +++ b/src/com/engine/organization/entity/staff/bo/StaffBO.java @@ -2,11 +2,12 @@ package com.engine.organization.entity.staff.bo; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.entity.staff.po.StaffPO; +import com.engine.organization.transmethod.StaffTransMethod; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -35,4 +36,44 @@ public class StaffBO { .creator(employeeId) .build(); } + + public static void buildStaffDesc(StaffPO staffPO) { + staffPO.setLackStatus(parseLackStatus(null == staffPO.getStaffNum() ? 0 : staffPO.getStaffNum(), null == staffPO.getPermanentNum() ? 0 : staffPO.getPermanentNum())); + StringBuilder sb = new StringBuilder(); + sb.append("编制数:").append(parseNull(staffPO.getStaffNum())) + .append(",在编数:").append(parseNull(staffPO.getPermanentNum())) + .append(",冻结数:").append(parseNull(staffPO.getFreezeNum())) + .append(",缺编状态:").append(StaffTransMethod.getLackSpan(staffPO.getLackStatus()+"")); + staffPO.setStaffDesc(sb.toString()); + + } + + + /** + * null 转换为 0 + * + * @param number + * @return + */ + private static Integer parseNull(Integer number) { + return null == number ? 0 : number; + + } + + /** + * 转换缺编状态 + * + * @param staffNum + * @param permanentNum + * @return + */ + private static int parseLackStatus(int staffNum, int permanentNum) { + if (staffNum == permanentNum) { + return 2; + } + if (staffNum > permanentNum) { + return 1; + } + return 3; + } } diff --git a/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java index 83efcb56..c102902e 100644 --- a/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java +++ b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java @@ -2,11 +2,13 @@ package com.engine.organization.entity.staff.bo; import com.engine.organization.entity.staff.param.StaffPlanSearchParam; import com.engine.organization.entity.staff.po.StaffPlanPO; +import weaver.common.DateUtil; +import weaver.general.StringUtil; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -21,15 +23,17 @@ public class StaffPlanBO { .planNo(param.getPlanNo()) .planName(param.getPlanName()) .planYear(param.getPlanYear()) - .timeStart(param.getTimeStart()) - .timeEnd(param.getTimeEnd()) + .timeStart(StringUtil.isEmpty(param.getTimeStart()) ? null : DateUtil.parseToDateTime(param.getTimeStart())) + .timeEnd(StringUtil.isEmpty(param.getTimeEnd()) ? null : DateUtil.parseToDateTime(param.getTimeEnd())) .companyId(param.getCompanyId()) .description(param.getDescription()) - .forbiddenTag(param.getForbiddenTag() == null ? 0 : param.getForbiddenTag() ? 0 : 1) + .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) .deleteType(0) .createTime(new Date()) .updateTime(new Date()) .creator(employeeId) .build(); } + + } diff --git a/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java index fd55a60e..533fca14 100644 --- a/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java +++ b/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java @@ -5,10 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; - /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -37,11 +35,11 @@ public class StaffPlanSearchParam { /** * 时间开始 */ - private Date timeStart; + private String timeStart; /** * 时间结束 */ - private Date timeEnd; + private String timeEnd; /** * 适用公司 */ diff --git a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java index 711ea22e..95773df5 100644 --- a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java +++ b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -65,4 +65,14 @@ public class StaffSearchParam { * 说明 */ private String description; + + /** + * 方案名称 + */ + private String staffName; + + /** + * 调整数量 + */ + private Integer changeNum; } diff --git a/src/com/engine/organization/entity/staff/po/StaffPO.java b/src/com/engine/organization/entity/staff/po/StaffPO.java index 3a813954..992d5ee7 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java index 7092df4a..4b11d365 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/24 * @version: 1.0 diff --git a/src/com/engine/organization/entity/staff/po/StaffsPO.java b/src/com/engine/organization/entity/staff/po/StaffsPO.java new file mode 100644 index 00000000..a68211ad --- /dev/null +++ b/src/com/engine/organization/entity/staff/po/StaffsPO.java @@ -0,0 +1,50 @@ +package com.engine.organization.entity.staff.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/07 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffsPO { + /** + * 主键 + */ + private Long id; + /** + * 编制ID + */ + private Long staffId; + /** + * 业务类型 + */ + private Integer businessType; + /** + * 编制变动数 + */ + private Integer changeNum; + /** + * 业务来源 + */ + private Integer businessSource; + /** + * 关联流程 + */ + private Integer requestId; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java index 68f3ef9e..01bae639 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -7,10 +7,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; - /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -63,13 +61,13 @@ public class StaffPlanTableVO { /** * 时间开始 */ - @OrganizationTableColumn(text = "时间开始", width = "16%", column = "time_start") - private Date timeStart; + @OrganizationTableColumn(text = "时间开始", width = "16%", column = "time_start", transmethod = "com.engine.organization.transmethod.StaffPlanTransMethod.getFormatDateString") + private String timeStart; /** * 时间结束 */ - @OrganizationTableColumn(text = "时间结束", width = "16%", column = "time_end") - private Date timeEnd; + @OrganizationTableColumn(text = "时间结束", width = "16%", column = "time_end", transmethod = "com.engine.organization.transmethod.StaffPlanTransMethod.getFormatDateString") + private String timeEnd; /** * 状态 */ diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java index c8fab370..165d3632 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -80,8 +80,8 @@ public class StaffTableVO { /** * 缺编状态 */ - @OrganizationTableColumn(text = "缺编状态", width = "10%", column = "lack_status") - private Integer lackStatus; + @OrganizationTableColumn(text = "缺编状态", width = "10%", column = "lack_status", transmethod = "com.engine.organization.transmethod.StaffTransMethod.getLackSpan") + private String lackStatus; /** * 编制描述 */ diff --git a/src/com/engine/organization/enums/BaseEnum.java b/src/com/engine/organization/enums/BaseEnum.java new file mode 100644 index 00000000..edb5764e --- /dev/null +++ b/src/com/engine/organization/enums/BaseEnum.java @@ -0,0 +1,18 @@ +package com.engine.organization.enums; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/14 + * @Version V1.0 + **/ +public interface BaseEnum { + + String name(); + + T getValue(); + + Integer getLabelId(); + + String getDefaultLabel(); +} diff --git a/src/com/engine/organization/enums/DeleteTypeEnum.java b/src/com/engine/organization/enums/DeleteTypeEnum.java index 92a833ba..0d693ffb 100644 --- a/src/com/engine/organization/enums/DeleteTypeEnum.java +++ b/src/com/engine/organization/enums/DeleteTypeEnum.java @@ -2,7 +2,7 @@ package com.engine.organization.enums; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/28 * @Version V1.0 **/ diff --git a/src/com/engine/organization/enums/ModuleTypeEnum.java b/src/com/engine/organization/enums/ModuleTypeEnum.java new file mode 100644 index 00000000..404fa62b --- /dev/null +++ b/src/com/engine/organization/enums/ModuleTypeEnum.java @@ -0,0 +1,43 @@ +package com.engine.organization.enums; + + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/14 + * @Version V1.0 + **/ +public enum ModuleTypeEnum implements BaseEnum { + + subcompanyfielddefined(1, "分部", -84967), + departmentfielddefined(2, "部门", -84967), + jobfielddefined(3, "岗位", -84967), + resourcefielddefined(4, "人员", -84967); + + private int value; + + private String defaultLabel; + + private int labelId; + + ModuleTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/organization/enums/OperateTypeEnum.java b/src/com/engine/organization/enums/OperateTypeEnum.java index b8b1505e..f4d4c4fa 100644 --- a/src/com/engine/organization/enums/OperateTypeEnum.java +++ b/src/com/engine/organization/enums/OperateTypeEnum.java @@ -2,7 +2,7 @@ package com.engine.organization.enums; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/28 * @Version V1.0 **/ diff --git a/src/com/engine/organization/enums/RuleCodeTypeEnum.java b/src/com/engine/organization/enums/RuleCodeTypeEnum.java index a8988d3b..c662a202 100644 --- a/src/com/engine/organization/enums/RuleCodeTypeEnum.java +++ b/src/com/engine/organization/enums/RuleCodeTypeEnum.java @@ -3,7 +3,7 @@ package com.engine.organization.enums; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/31 * @Version V1.0 **/ diff --git a/src/com/engine/organization/exception/OrganizationRunTimeException.java b/src/com/engine/organization/exception/OrganizationRunTimeException.java index fba75ba0..2715a997 100644 --- a/src/com/engine/organization/exception/OrganizationRunTimeException.java +++ b/src/com/engine/organization/exception/OrganizationRunTimeException.java @@ -2,7 +2,7 @@ package com.engine.organization.exception; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/DemoMapper.java b/src/com/engine/organization/mapper/DemoMapper.java index f44b7ce1..8cbb8844 100644 --- a/src/com/engine/organization/mapper/DemoMapper.java +++ b/src/com/engine/organization/mapper/DemoMapper.java @@ -7,7 +7,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/3/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/SISLog/SISLogMapper.java b/src/com/engine/organization/mapper/SISLog/SISLogMapper.java index 4999c0d4..55a51ca8 100644 --- a/src/com/engine/organization/mapper/SISLog/SISLogMapper.java +++ b/src/com/engine/organization/mapper/SISLog/SISLogMapper.java @@ -4,7 +4,7 @@ import com.engine.organization.entity.LoggerContext; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/28 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java index 190256be..5ade0998 100644 --- a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java @@ -1,12 +1,25 @@ package com.engine.organization.mapper.codesetting; +import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/31 * @Version V1.0 **/ public interface CodeRuleDetailMapper { void delete(Long codeRuleId); + + /** + * 批量插入明细表数据 + * + * @param codeRuleDetailPOs + * @return + */ + void batchInsert(@Param("codeRuleDetailPOs") List codeRuleDetailPOs); } diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml index 1a26183b..89d1bfba 100644 --- a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml @@ -2,8 +2,17 @@ + + insert into hrm_coderuledetail (coderuleid, ruletype, rulevalue, showorder) values + + (#{CodeRuleDetailPO.coderuleId},#{CodeRuleDetailPO.ruleType},#{CodeRuleDetailPO.ruleValue},#{CodeRuleDetailPO.showOrder}) + + + - delete from JCL_CODERULE_DETAIL where coderule_id = #{codeRuleId} + delete + from JCL_CODERULE_DETAIL + where coderule_id = #{codeRuleId} \ No newline at end of file diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java index 69f1e3b7..1c9ce8bb 100644 --- a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/31 * @Version V1.0 **/ @@ -13,6 +13,8 @@ public interface CodeRuleMapper { Long getCodeRuleId(@Param("serialType") String serialType); + CodeRulePO getCodeRuleByType(@Param("serialType") String serialType); + void updateCodeRule(@Param("codeRulePO") CodeRulePO codeRulePO); void insertCodeRule(CodeRulePO codeRulePO); diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml index 6368201e..28d40a6d 100644 --- a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml @@ -8,6 +8,12 @@ where serial_type = #{serialType} + + update JCL_CODERULE @@ -21,7 +27,8 @@ - INSERT INTO JCL_CODERULE diff --git a/src/com/engine/organization/mapper/common/RefreshUseMapper.java b/src/com/engine/organization/mapper/common/RefreshUseMapper.java index 8d34418b..e25fa705 100644 --- a/src/com/engine/organization/mapper/common/RefreshUseMapper.java +++ b/src/com/engine/organization/mapper/common/RefreshUseMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/06/01 * @version: 1.0 diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index 55c8e024..33477e2a 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index 84569713..0df6b635 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -9,7 +9,7 @@ import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -92,6 +92,14 @@ public interface DepartmentMapper { */ int updateForbiddenTagById(DepartmentPO departmentPO); + /** + * 批量禁用部门 + * + * @param ids + * @return + */ + int forbiddenDepartmentByIds(@Param("ids") Collection ids); + /** * 批量删除 * diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index 1e5b00a9..e5ec0fff 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -31,6 +31,7 @@ t.parent_dept, t.dept_principal, t.show_order, + t.description, t.forbidden_tag @@ -243,6 +244,13 @@ #{id} + + update jcl_org_dept set forbidden_tag = 1 WHERE delete_type = 0 + AND id IN + + #{id} + + diff --git a/src/com/engine/organization/mapper/employee/EmployeeMapper.java b/src/com/engine/organization/mapper/employee/EmployeeMapper.java index 261976ae..bac40ab8 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.java +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/extend/ExtDTMapper.java b/src/com/engine/organization/mapper/extend/ExtDTMapper.java index baf68619..47737dc8 100644 --- a/src/com/engine/organization/mapper/extend/ExtDTMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtDTMapper.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/20 * @version: 1.0 diff --git a/src/com/engine/organization/mapper/extend/ExtMapper.java b/src/com/engine/organization/mapper/extend/ExtMapper.java index da7b11d5..1a258c10 100644 --- a/src/com/engine/organization/mapper/extend/ExtMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/20 * @version: 1.0 @@ -19,7 +19,7 @@ public interface ExtMapper { * @param id * @return */ - Map listCompExt(@Param("tableName") String tableName, @Param("fields") String fields, @Param("id") long id); + Map listExt(@Param("tableName") String tableName, @Param("fields") String fields, @Param("id") long id); /** * 判断当前数据是否存在 @@ -28,7 +28,7 @@ public interface ExtMapper { * @param id * @return */ - int countCompExtById(@Param("tableName") String tableName, @Param("id") long id); + int countExtById(@Param("tableName") String tableName, @Param("id") long id); /** * 插入主表拓展表 @@ -36,7 +36,7 @@ public interface ExtMapper { * @param map * @return */ - int insertCompExt(@Param("tableName") String tableName, @Param("map") Map map); + int insertExt(@Param("tableName") String tableName, @Param("map") Map map); /** * 更新主表拓展表 @@ -44,5 +44,5 @@ public interface ExtMapper { * @param map * @return */ - int updateCompExt(@Param("tableName") String tableName, @Param("id") long id, @Param("map") Map map); + int updateExt(@Param("tableName") String tableName, @Param("id") long id, @Param("map") Map map); } diff --git a/src/com/engine/organization/mapper/extend/ExtMapper.xml b/src/com/engine/organization/mapper/extend/ExtMapper.xml index 40b9672f..612c228b 100644 --- a/src/com/engine/organization/mapper/extend/ExtMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtMapper.xml @@ -3,7 +3,7 @@ - + insert into ${tableName} ( ${key} @@ -16,7 +16,7 @@ ) - + update ${tableName} set ${key} = #{value} @@ -24,14 +24,14 @@ where id = #{id} - select ${fields} from ${tableName} where delete_type = 0 and id = #{id} - select count(1) from ${tableName} where delete_type = 0 diff --git a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.java b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.java index 05a32cfc..7f07081e 100644 --- a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.java @@ -3,10 +3,12 @@ package com.engine.organization.mapper.extend; import com.engine.organization.entity.extend.po.ExtendGroupPO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; +import java.util.Set; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/18 * @version: 1.0 @@ -15,10 +17,28 @@ public interface ExtendGroupMapper { /** * 列表查询 * - * @param groupType + * @param extendType * @return */ - List listByType(@Param("groupType") String groupType); + List listByType(@Param("extendType") Integer extendType); + + /** + * 根据ID 查询数据 + * + * @param ids + * @return + */ + List listGroupByIds(@Param("ids") Collection ids); + + ExtendGroupPO getGroupById(@Param("id") Long id); + + /** + * 根据ID 查询数据 + * + * @param pid + * @return + */ + List listGroupByPid(@Param("pid") Long pid); /** * 根据ID查询分组名称 @@ -27,4 +47,14 @@ public interface ExtendGroupMapper { * @return */ String getGroupNameById(@Param("id") String id); + + void insertIgnoreNull(ExtendGroupPO extendGroupPO); + + void update(@Param("id") Long id, @Param("name") String name); + + void delete(@Param("id") Long id); + + void updateNameAndOrder(@Param("id") Long id, @Param("groupName") String groupName, @Param("showOrder") Integer showOrder, @Param("isShow") String isShow); + + void batchDelete(@Param("ids") Set removeSet); } diff --git a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml index ba748796..2aa5a5ad 100644 --- a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml @@ -5,6 +5,8 @@ + + @@ -16,9 +18,13 @@ t . id + , t.pid , t.extend_type , t.group_name + , t.is_system_default , t.creator + , t.is_show + , t.show_order , t.delete_type , t.create_time , t.update_time @@ -34,12 +40,148 @@ and extend_type = #{extendType} + order by show_order + + + + + + INSERT INTO jcl_field_extendgroup + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + extend_type, + + + group_name, + + + pid, + + + is_show, + + + show_order, + + + is_system_default, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{extendType}, + + + #{groupName}, + + + #{pid}, + + + #{isShow}, + + + #{showOrder}, + + + #{isSystemDefault}, + + + + + + update jcl_field_extendgroup + + group_name=#{name}, + + WHERE id = #{id} AND delete_type = 0 + + + + update jcl_field_extendgroup + + delete_type=1, + + WHERE id = #{id} AND delete_type = 0 + + + + update jcl_field_extendgroup + + group_name=#{groupName}, + show_order=#{showOrder}, + is_show = #{isShow} + + WHERE id = #{id} AND delete_type = 0 + + + UPDATE jcl_field_extendgroup + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java index 287411ce..cca8368f 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java @@ -3,22 +3,39 @@ package com.engine.organization.mapper.extend; import com.engine.organization.entity.extend.po.ExtendInfoPO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/19 * @version: 1.0 */ public interface ExtendInfoMapper { - /** - * 列表查询 - * - * @param extendType - * @param extendGroupId - * @param tableName - * @return - */ - List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName); + + List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName, @Param("operateType") String operateType); + + int countFieldsByGroupId(@Param("tableName") String tableName, @Param("groupId") Long groupId); + + int updateExtendInfo(ExtendInfoPO extendInfo); + + int insertExtendInfo(ExtendInfoPO extendInfo); + + // 添加表结构 + void addTableColumn(@Param("tableName") String tableName, @Param("fieldName") String fieldName, @Param("dbType") String dbType); + + Long getMaxId(); + + List listFieldsByTableName(@Param("tableName") String tableName, @Param("fieldName") String fieldName); + + int deleteExtendInfoByIds(@Param("ids") Collection ids); + + void deleteTableColumn(@Param("tableName") String tableName, @Param("fieldName") String fieldName); + + List getExtendInfosByIds(@Param("ids") Collection ids); + + int updateExtendGroupId(@Param("groupId") Long groupId, @Param("ids") Collection ids); + + } diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 5d9855cc..725c17ac 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -18,7 +18,9 @@ + + @@ -45,12 +47,196 @@ , t.edit_show , t.add_show , t.browser_show + , t.custom_value , t.show_order + , t.is_system_default , t.creator , t.delete_type , t.create_time , t.update_time + + INSERT INTO jcl_field_extendinfo + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + extend_type, + + + table_name, + + + field_name, + + + field_name_desc, + + + field_type, + + + control_type, + + + browser_type, + + + extend_group_id, + + + isenable, + + + isrequired, + + + list_show, + + + search_show, + + + edit_show, + + + add_show, + + + browser_show, + + + custom_value, + + + show_order, + + + is_system_default, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{extendType}, + + + #{tableName}, + + + #{fieldName}, + + + #{fieldNameDesc}, + + + #{fieldType}, + + + #{controlType}, + + + #{browserType}, + + + #{extendGroupId}, + + + #{isenable}, + + + #{isrequired}, + + + #{listShow}, + + + #{searchShow}, + + + #{editShow}, + + + #{addShow}, + + + #{browserShow}, + + + #{customValue}, + + + #{showOrder}, + + + #{isSystemDefault}, + + + + + ALTER TABLE ${tableName} + ADD ${fieldName} ${dbType} NULL; + + + update jcl_field_extendinfo + + update_time=#{updateTime}, + field_name_desc=#{fieldNameDesc}, + isenable=#{isenable}, + isrequired=#{isrequired}, + edit_show=#{editShow}, + show_order=#{showOrder}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_field_extendinfo + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + ALTER TABLE ${tableName} + DROP + COLUMN + ${fieldName}; + + + UPDATE jcl_field_extendinfo + SET extend_group_id = #{groupId} + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + diff --git a/src/com/engine/organization/mapper/extend/ExtendTitleMapper.java b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.java new file mode 100644 index 00000000..2408ad34 --- /dev/null +++ b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.java @@ -0,0 +1,54 @@ +package com.engine.organization.mapper.extend; + +import com.engine.organization.entity.extend.po.ExtendTitlePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2022/06/14 + * @version: 1.0 + */ +public interface ExtendTitleMapper { + /** + * 根据分组类型获取标题信息 + * + * @param groupId + * @return + */ + List getTitlesByGroupID(@Param("groupId") Long groupId); + + /** + * 根据ID查询数据 + * + * @param ids + * @return + */ + List getTitlesByIds(@Param("ids") Collection ids); + + /** + * 新增 + * + * @param extendTitle + * @return + */ + int insertIgnoreNull(ExtendTitlePO extendTitle); + + /** + * 更新 + * + * @param extendTitle + * @return + */ + int updateExtendTitle(ExtendTitlePO extendTitle); + + /** + * 根据ID批量删除数据 + * + * @param ids + * @return + */ + int deleteExtendTitleByIds(@Param("ids") Collection ids); +} diff --git a/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml new file mode 100644 index 00000000..62cff4b5 --- /dev/null +++ b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + t + . + id + , t.group_id + , t.title + , t.show_order + , t.is_show + , t.is_system_default + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + INSERT INTO jcl_field_extendtitle + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + group_id, + + + title, + + + show_order, + + + is_show, + + + is_system_default, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{groupId}, + + + #{title}, + + + + #{showOrder}, + + + #{isShow}, + + + #{isSystemDefault}, + + + + + update jcl_field_extendtitle + + update_time=#{updateTime}, + group_id=#{groupId}, + title=#{title}, + show_order=#{showOrder}, + is_show=#{isShow}, + + WHERE id = #{id} AND delete_type = 0 + + + UPDATE jcl_field_extendtitle + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/job/JobDTMapper.java b/src/com/engine/organization/mapper/job/JobDTMapper.java index 77c37b70..f8a1d2ea 100644 --- a/src/com/engine/organization/mapper/job/JobDTMapper.java +++ b/src/com/engine/organization/mapper/job/JobDTMapper.java @@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/31 * @version: 1.0 diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index 46fb890b..d9cc3f66 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/24 * @version: 1.0 @@ -30,6 +30,13 @@ public interface JobMapper { */ List listNoFilter(); + /** + * 查询所有数据 + * + * @return + */ + List listAll(); + /** * 根据ID查询元素 * @@ -62,6 +69,14 @@ public interface JobMapper { */ List listByNo(@Param("jobNo") String jobNo); + /** + * 根据所属部门查询数据 + * + * @param departmentId + * @return + */ + List listJobsByDepartmentId(@Param("departmentId") long departmentId); + /** * 添加数据 * diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 214f8d5d..5e8ce87a 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -197,9 +197,9 @@ d.scheme_name, FROM jcl_org_job t - inner join jcl_org_comp a on + left join jcl_org_comp a on t.parent_comp = a.id - inner join jcl_org_dept b on + left join jcl_org_dept b on t.parent_dept = b.id left join jcl_org_sequence c on t.sequence_id = c.id @@ -235,9 +235,9 @@ d.scheme_name, FROM jcl_org_job t - inner join jcl_org_comp a on + left join jcl_org_comp a on t.parent_comp = a.id - inner join jcl_org_dept b on + left join jcl_org_dept b on t.parent_dept = b.id left join jcl_org_sequence c on t.sequence_id = c.id @@ -276,11 +276,25 @@ where delete_type = 0 and parent_job = #{pid} + + + diff --git a/src/com/engine/organization/mapper/post/PostInfoMapper.java b/src/com/engine/organization/mapper/post/PostInfoMapper.java index baca0ec0..9beeb3f8 100644 --- a/src/com/engine/organization/mapper/post/PostInfoMapper.java +++ b/src/com/engine/organization/mapper/post/PostInfoMapper.java @@ -11,7 +11,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/13 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/post/PostMapper.java b/src/com/engine/organization/mapper/post/PostMapper.java index 7132e17b..0ec48e85 100644 --- a/src/com/engine/organization/mapper/post/PostMapper.java +++ b/src/com/engine/organization/mapper/post/PostMapper.java @@ -13,7 +13,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/13 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 0cc97450..eb1fa65a 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -9,7 +9,7 @@ import java.util.List; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/11 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.java b/src/com/engine/organization/mapper/scheme/LevelMapper.java index 95f2fc6e..8258dc5e 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.java +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.java @@ -11,7 +11,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.java b/src/com/engine/organization/mapper/scheme/SchemeMapper.java index 080af6ba..e3f6ec68 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.java +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.java @@ -11,7 +11,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/sequence/SequenceMapper.java b/src/com/engine/organization/mapper/sequence/SequenceMapper.java index d65c01fd..9d53fd71 100644 --- a/src/com/engine/organization/mapper/sequence/SequenceMapper.java +++ b/src/com/engine/organization/mapper/sequence/SequenceMapper.java @@ -11,7 +11,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/12 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.java b/src/com/engine/organization/mapper/staff/StaffMapper.java index 0d39e82c..a2ffa394 100644 --- a/src/com/engine/organization/mapper/staff/StaffMapper.java +++ b/src/com/engine/organization/mapper/staff/StaffMapper.java @@ -9,7 +9,7 @@ import java.util.List; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/25 * @Version V1.0 **/ @@ -23,6 +23,16 @@ public interface StaffMapper { */ StaffPO getStaffByID(@Param("id") long id); + /** + * 根据分部、部门、岗位查询编制 + * + * @param companyId + * @param departmentId + * @param jobId + * @return + */ + StaffPO getStaffByFilter(@Param("companyId") Long companyId, @Param("departmentId") Long departmentId, @Param("jobId") Long jobId); + /** * 插入编制方案 * diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.xml b/src/com/engine/organization/mapper/staff/StaffMapper.xml index 137f2b2e..af99fd66 100644 --- a/src/com/engine/organization/mapper/staff/StaffMapper.xml +++ b/src/com/engine/organization/mapper/staff/StaffMapper.xml @@ -48,6 +48,21 @@ from jcl_org_staffs where delete_type = 0 + update jcl_org_staff diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java index e9046142..2317f4d5 100644 --- a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java @@ -10,7 +10,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/25 * @Version V1.0 **/ diff --git a/src/com/engine/organization/mapper/staff/StaffsMapper.java b/src/com/engine/organization/mapper/staff/StaffsMapper.java new file mode 100644 index 00000000..6b7636c5 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffsMapper.java @@ -0,0 +1,19 @@ +package com.engine.organization.mapper.staff; + +import com.engine.organization.entity.staff.po.StaffsPO; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/07 + * @version: 1.0 + */ +public interface StaffsMapper { + /** + * 插入编制方案 + * + * @param staffsPO + * @return + */ + int insertIgnoreNull(StaffsPO staffsPO); +} diff --git a/src/com/engine/organization/mapper/staff/StaffsMapper.xml b/src/com/engine/organization/mapper/staff/StaffsMapper.xml new file mode 100644 index 00000000..11695407 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffsMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + t + . + id + , t.staff_id + , t.business_type + , t.change_num + , t.business_source + , t.staff_num + , t.requestid + + + + + INSERT INTO jcl_org_staffs + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + staff_id, + + + business_type, + + + change_num, + + + business_source, + + + requestid, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + + #{staffId}, + + + #{businessType}, + + + #{changeNum}, + + + #{businessSource}, + + + #{requestId}, + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/CodeSettingService.java b/src/com/engine/organization/service/CodeSettingService.java index 1c19b309..9c5d1362 100644 --- a/src/com/engine/organization/service/CodeSettingService.java +++ b/src/com/engine/organization/service/CodeSettingService.java @@ -5,7 +5,7 @@ import com.engine.organization.util.response.ReturnResult; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/30 * @Version V1.0 **/ @@ -22,7 +22,7 @@ public interface CodeSettingService { * 保存更新 * @param params */ - void saveOrUpdateCodeSetting(CodeSaveParam params); + String saveOrUpdateCodeSetting(CodeSaveParam params); /** * 获取主表id @@ -30,4 +30,10 @@ public interface CodeSettingService { * @return */ Long getCodeRuleId(String serialType); + + /** + * 获取编码规则配置信息 + * @return + */ + String getCodeSetting(String serialType); } diff --git a/src/com/engine/organization/service/CompService.java b/src/com/engine/organization/service/CompService.java index e01ec585..c6f16a79 100644 --- a/src/com/engine/organization/service/CompService.java +++ b/src/com/engine/organization/service/CompService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 @@ -27,7 +27,7 @@ public interface CompService { * @param params * @return */ - int saveBaseComp(CompSearchParam params); + int saveBaseComp(Map params); /** * 更新禁用标记 diff --git a/src/com/engine/organization/service/DemoService.java b/src/com/engine/organization/service/DemoService.java index a2ee0596..863f1d01 100644 --- a/src/com/engine/organization/service/DemoService.java +++ b/src/com/engine/organization/service/DemoService.java @@ -6,7 +6,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/27 * @Version V1.0 **/ diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index bd69c703..176e31ae 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -1,16 +1,19 @@ package com.engine.organization.service; -import com.engine.organization.entity.department.param.DeptSearchParam; -import com.engine.organization.entity.department.param.QuerySingleDeptListParam; +import com.api.browser.bean.SearchConditionGroup; +import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; +import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.page.PageInfo; import java.util.Collection; +import java.util.List; import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -25,6 +28,22 @@ public interface DepartmentService { */ PageInfo getDeptListByPid(QuerySingleDeptListParam param); + /** + * 部门联查岗位 + * + * @param param + * @return + */ + PageInfo getJobListByPid(QuerySingleDeptListParam param); + + + /** + * 列表左侧树 + * + * @return + */ + Map getSearchTree(SearchTreeParams params); + /** * 列表数据展示 * @@ -39,7 +58,8 @@ public interface DepartmentService { * @param params * @return */ - int saveBaseForm(DeptSearchParam params); + int saveBaseForm(Map params); + /** * 更新禁用标记 * @@ -95,4 +115,49 @@ public interface DepartmentService { */ Map getSaveForm(); + /** + * 复制表单 + * + * @return + */ + List getCopyForm(); + + /** + * 复制岗位到指定部门 + * + * @param copyParam + * @return + */ + int copyDepartment(DeptCopyParam copyParam); + + /** + * 获取合并表单 + * + * @return + */ + List getMergeForm(Long id); + + /** + * 合并到指定部门 + * + * @param mergeParam + * @return + */ + int mergeDepartment(DepartmentMergeParam mergeParam); + + /** + * 获取转移表单 + * + * @return + */ + List getMoveForm(); + + /** + * 转移到指定分部或部门 + * + * @param moveParam + * @return + */ + int moveDepartment(DepartmentMoveParam moveParam); + } diff --git a/src/com/engine/organization/service/ExtService.java b/src/com/engine/organization/service/ExtService.java index 4165b5b9..af0e8484 100644 --- a/src/com/engine/organization/service/ExtService.java +++ b/src/com/engine/organization/service/ExtService.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/24 * @version: 1.0 @@ -16,7 +16,7 @@ import java.util.Map; public interface ExtService { /** - * 组装主表拓展表表单 + * 组装主表、主表拓展表表单 * * @param user * @param extendType @@ -26,7 +26,19 @@ public interface ExtService { * @param groupId * @return */ - List getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId); + List getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId, String... readOnlyFields); + + /** + * 组装主表新增表单 + * + * @param user + * @param extendType + * @param tableName + * @param viewAttr + * @param groupId + * @return + */ + List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType); /** * 组装明细表表单 @@ -39,8 +51,7 @@ public interface ExtService { * @param showLabel * @return */ - List> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel); - + List> getExtendTables(User user, String extendType, Long groupId,String tableName, long id, int viewAttr, boolean showLabel); /** * 拓展页面分组 * diff --git a/src/com/engine/organization/service/FieldDefinedService.java b/src/com/engine/organization/service/FieldDefinedService.java new file mode 100644 index 00000000..381e74f0 --- /dev/null +++ b/src/com/engine/organization/service/FieldDefinedService.java @@ -0,0 +1,117 @@ +package com.engine.organization.service; + + +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; +import com.engine.organization.entity.extend.param.ExtendInfoChangeParam; +import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; +import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; +import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.enums.ModuleTypeEnum; + +import java.util.List; +import java.util.Map; + +/** + * @Author weaver_cl + * @description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +public interface FieldDefinedService { + + + /** + * 获取左侧树 + * + * @param moduleTypeEnum + * @return + */ + List getTree(ModuleTypeEnum moduleTypeEnum); + + /** + * 获取标题分组 + * + * @param groupType + * @return + */ + Map getTabInfo(String groupType); + + /** + * 保存自定义字段 + * + * @param data + * @return + */ + int saveFields(String data); + + /** + * 分组维护 + * + * @param param + * @return + */ + Map saveGroup(ExtendTitleSaveParam param); + + /** + * 新建分组 + * + * @param param + * @return + */ + Map saveTitle(ExtendTitleSaveParam param); + + + /** + * 新增或编辑类型树 + * + * @param moduleTypeEnum + * @param fieldTypeTreeParam + * @return + */ + void changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam); + + /** + * 删除标题信息 + * + * @param param + * @return + */ + int deleteTitle(ExtendTitleSaveParam param); + + /** + * 获取自定义字段列表 + * + * @param param + * @return + */ + Map getFieldDefinedInfo(ExtendFieldSearchParam param); + + /** + * 删除树类型 + * + * @param id + */ + void deleteTree(Long id); + + /** + * 子信息维护 + * + * @param moduleTypeEnum + * @param fieldTypeTreeParam + */ + void saveTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam); + + /** + * 删除自定义字段 + * + * @param param + */ + void deleteFieldDefined(ExtendFieldSearchParam param); + + /** + * 移动分组 + * + * @param param + */ + void changeGroup(ExtendInfoChangeParam param); +} diff --git a/src/com/engine/organization/service/GradeService.java b/src/com/engine/organization/service/GradeService.java index 426a436a..93a63251 100644 --- a/src/com/engine/organization/service/GradeService.java +++ b/src/com/engine/organization/service/GradeService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/service/GroupService.java b/src/com/engine/organization/service/GroupService.java index fc02bf8e..7a9dd0c3 100644 --- a/src/com/engine/organization/service/GroupService.java +++ b/src/com/engine/organization/service/GroupService.java @@ -3,7 +3,7 @@ package com.engine.organization.service; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index 68a86ebf..57ff8c5d 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/26 * @version: 1.0 @@ -63,7 +63,7 @@ public interface JobService { * @param params * @return */ - int saveBaseForm(JobSearchParam params); + int saveBaseForm(Map params); /** * 更新主表、拓展表、明细表 @@ -76,11 +76,11 @@ public interface JobService { /** * 复制岗位到指定部门 * - * @param id - * @param departmentId + * @param ids + * @param department * @return */ - int copyJobItem(long id, long departmentId); + int copyJobItem(String ids, String department); /** * 更新禁用标记 diff --git a/src/com/engine/organization/service/LevelService.java b/src/com/engine/organization/service/LevelService.java index 9cf15c3e..dff80c24 100644 --- a/src/com/engine/organization/service/LevelService.java +++ b/src/com/engine/organization/service/LevelService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 diff --git a/src/com/engine/organization/service/PostInfoService.java b/src/com/engine/organization/service/PostInfoService.java index 9aa6a1c5..3377a9a0 100644 --- a/src/com/engine/organization/service/PostInfoService.java +++ b/src/com/engine/organization/service/PostInfoService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/service/PostService.java b/src/com/engine/organization/service/PostService.java index 2c06122e..7a606e2b 100644 --- a/src/com/engine/organization/service/PostService.java +++ b/src/com/engine/organization/service/PostService.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/service/SchemeService.java b/src/com/engine/organization/service/SchemeService.java index c3c28023..ced25c40 100644 --- a/src/com/engine/organization/service/SchemeService.java +++ b/src/com/engine/organization/service/SchemeService.java @@ -7,7 +7,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/service/SequenceService.java b/src/com/engine/organization/service/SequenceService.java index 335d97b5..90d03775 100644 --- a/src/com/engine/organization/service/SequenceService.java +++ b/src/com/engine/organization/service/SequenceService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/service/StaffPlanService.java b/src/com/engine/organization/service/StaffPlanService.java index 2935e1ef..a5d1d45e 100644 --- a/src/com/engine/organization/service/StaffPlanService.java +++ b/src/com/engine/organization/service/StaffPlanService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/service/StaffService.java b/src/com/engine/organization/service/StaffService.java index f38a16f6..2090dbf1 100644 --- a/src/com/engine/organization/service/StaffService.java +++ b/src/com/engine/organization/service/StaffService.java @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/service/TestService.java b/src/com/engine/organization/service/TestService.java index 3af4b3e2..64c131c1 100644 --- a/src/com/engine/organization/service/TestService.java +++ b/src/com/engine/organization/service/TestService.java @@ -5,7 +5,7 @@ import com.engine.organization.entity.po.Demo; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/28 * @Version V1.0 **/ diff --git a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java index 820c2f94..a55965fa 100644 --- a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java +++ b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.organization.service.impl; +import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrm.entity.RuleCodeType; @@ -13,6 +14,9 @@ import com.engine.organization.service.CodeSettingService; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.response.ReturnResult; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -22,14 +26,14 @@ import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/30 * @Version V1.0 **/ public class CodeSettingServiceImpl extends Service implements CodeSettingService { public CodeSettingService getCodeSettingService(User user) { - return ServiceUtil.getService(CodeSettingServiceImpl.class,user); + return ServiceUtil.getService(CodeSettingServiceImpl.class, user); } @Override @@ -55,27 +59,78 @@ public class CodeSettingServiceImpl extends Service implements CodeSettingServic } @Override - public void saveOrUpdateCodeSetting(CodeSaveParam params) { - OrganizationAssert.notNull(params,"参数不能为空"); + public String saveOrUpdateCodeSetting(CodeSaveParam params) { + OrganizationAssert.notNull(params, "参数不能为空"); Long codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType()); - CodeRulePO codeRulePO = CodeSettingBO.buildCodeRule(params,(long)user.getUID(),codeRuleId); + CodeRulePO codeRulePO = CodeSettingBO.buildCodeRule(params, (long) user.getUID(), codeRuleId); //1.新增或更新主表 - if (codeRulePO != null) { + if (codeRuleId != null) { MapperProxyFactory.getProxy(CodeRuleMapper.class).updateCodeRule(codeRulePO); - }else { + } else { MapperProxyFactory.getProxy(CodeRuleMapper.class).insertCodeRule(codeRulePO); } //2.插入明细表 codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType()); MapperProxyFactory.getProxy(CodeRuleDetailMapper.class).delete(codeRuleId); - List codeRuleDetailPO = CodeSettingBO.bulidCodeDetailList(params.getCodeSaveDetailParams(),(long)user.getUID(),codeRuleId); - - + List codeRuleDetailPOs = CodeSettingBO.bulidCodeDetailList(params.getCodeSaveDetailParams(), (long) user.getUID(), codeRuleId); + if (CollectionUtils.isEmpty(codeRuleDetailPOs)) { + MapperProxyFactory.getProxy(CodeRuleDetailMapper.class).batchInsert(codeRuleDetailPOs); + } + Map apidatas = new HashMap<>(); + apidatas.put("coderuleid", codeRuleId); + return JSONObject.toJSONString(apidatas); } @Override public Long getCodeRuleId(String serialType) { return MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleId(serialType); } + + @Override + public String getCodeSetting(String serialType) { + Map datas = new HashMap<>(); + CodeRulePO codeRulePO = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(serialType); + if (null != codeRulePO) { + datas.put("serialtype", serialType); + datas.put("serialenable", Util.null2String(codeRulePO.getSerialEnable(), "0")); + String oneselftype = Util.null2String(codeRulePO.getOneselfType(), ""); + if (StringUtils.isNotEmpty(oneselftype)) { + String[] oneselftypes = oneselftype.split(","); + // 日期流水 + Map dateSerialMap = new HashMap<>(); + dateSerialMap.put("enable", "0"); + // 机构流水 + Map deptSerialMap = new HashMap<>(); + deptSerialMap.put("enable", "0"); + // 岗位 + Map jobtitlesSerialMap = new HashMap<>(); + jobtitlesSerialMap.put("enable", "0"); + for (String type : oneselftypes) { + switch (RuleCodeType.getByValue(type)) { + case YEAR: + case MONTH: + case DAY: + dateSerialMap.put("enable", "1"); + dateSerialMap.put("key", type); + break; + case SUBCOMPANY: + case DEPARTMENT: + deptSerialMap.put("enable", "1"); + deptSerialMap.put("key", type); + break; + case JOBTITLES: + jobtitlesSerialMap.put("enable", "1"); + jobtitlesSerialMap.put("key", type); + break; + } + } + datas.put("dateSerial", dateSerialMap); + datas.put("deptSerial", deptSerialMap); + datas.put("jobtitlesSerial", jobtitlesSerialMap); + } + + } + return null; + } } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 4a0df575..28f232f8 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -2,7 +2,6 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; @@ -10,33 +9,36 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.dto.CompListDTO; import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.service.CompService; import com.engine.organization.service.ExtService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; -import weaver.crm.Maint.SectorInfoComInfo; +import org.apache.commons.collections.CollectionUtils; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; -import weaver.hrm.resource.ResourceComInfo; import java.util.*; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 @@ -49,6 +51,10 @@ public class CompServiceImpl extends Service implements CompService { * 3:岗位 */ private static final String EXTEND_TYPE = "1"; + /** + * 主表表名 + */ + private static final String JCL_ORG_COMP = "JCL_ORG_COMP"; /** * 主表拓展表 */ @@ -58,12 +64,19 @@ public class CompServiceImpl extends Service implements CompService { */ private static final String JCL_ORG_COMPEXT_DT1 = "JCL_ORG_COMPEXT_DT1"; + private static final String RIGHT_NAME = "Company:All"; + + /** + * 公司/分部主表title指定ID + */ + private static final Long GROUP_ID = 1L; + private CompMapper getCompMapper() { return MapperProxyFactory.getProxy(CompMapper.class); } - private ExtendGroupMapper getExtendGroupMapper() { - return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } private ExtService getExtService(User user) { @@ -74,6 +87,11 @@ public class CompServiceImpl extends Service implements CompService { @Override public Map listPage(CompSearchParam params) { Map datas = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + datas.put("hasRight", hasRight); + if (!hasRight) { + return datas; + } CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID()); boolean filter = isFilter(compPO); PageInfo pageInfos; @@ -114,37 +132,46 @@ public class CompServiceImpl extends Service implements CompService { } @Override - public int saveBaseComp(CompSearchParam params) { - List list = getCompMapper().listByNo(Util.null2String(params.getCompNo())); + public int saveBaseComp(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + String compNo = (String) params.get("comp_no"); + compNo = CodeRuleUtil.generateCode(RuleCodeType.SUBCOMPANY, compNo); + List list = getCompMapper().listByNo(Util.null2String(compNo)); OrganizationAssert.isEmpty(list, "编号不允许重复"); - CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID()); - return getCompMapper().insertIgnoreNull(compPO); + params.put("comp_no", compNo); + + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null); } @Override public int updateForbiddenTagById(CompSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); CompPO compPO = CompPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getCompMapper().updateForbiddenTagById(compPO); } @Override public int updateComp(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class); String groupId = (String) params.get("viewCondition"); - CompPO compPO = CompBO.convertParamToPO(searchParam, (long) user.getUID()); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } int updateCount = 0; // 更新主表数据 - updateCount += getCompMapper().updateBaseComp(compPO); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", searchParam.getId()); // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, searchParam.getId()); //更新明细表 - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, searchParam.getId()); return updateCount; } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getCompMapper().deleteByIds(ids); } @@ -160,7 +187,6 @@ public class CompServiceImpl extends Service implements CompService { SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "compName"); // 简称 SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "compNameShort"); - // TODO // 上级公司 SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser"); // 组织机构代码 @@ -193,26 +219,13 @@ public class CompServiceImpl extends Service implements CompService { @Override public Map getHasRight() { - Map btnDatas = new HashMap<>(); - ArrayList topMenuList = new ArrayList<>(); - ArrayList rightMenuList = new ArrayList<>(); - // 新增 - topMenuList.add(MenuBtn.topMenu_addNew()); - // 批量删除 - topMenuList.add(MenuBtn.topMenu_batchDelete()); - btnDatas.put("topMenu", topMenuList); - // 新增 - rightMenuList.add(MenuBtn.rightMenu_addNew()); - // 日志 - rightMenuList.add(MenuBtn.rightMenu_btnLog()); - btnDatas.put("rightMenu", rightMenuList); - return btnDatas; + return MenuBtn.getDatasNoBtnColum(); } @Override public Map getCompBaseForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notNull(params.get("viewAttr"), "请标识操作类型"); - // 2编辑 1查看 int viewAttr = Integer.parseInt((String) params.get("viewAttr")); long id = Long.parseLong((String) params.get("id")); @@ -223,10 +236,15 @@ public class CompServiceImpl extends Service implements CompService { buttonsMap.put("hasSave", true); List addGroups = new ArrayList<>(); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); - } else { - addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, viewAttr, id, groupId))); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_COMP : JCL_ORG_COMPEXT, viewAttr, id, extendTitle.getId() + "", "comp_no"))); + } } HashMap resultMap = new HashMap<>(); @@ -236,7 +254,7 @@ public class CompServiceImpl extends Service implements CompService { // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_COMPEXT)); // 处理明细表 - resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, id, viewAttr, false)); + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId), JCL_ORG_COMPEXT_DT1, id, viewAttr, false)); Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); @@ -247,48 +265,21 @@ public class CompServiceImpl extends Service implements CompService { @Override public Map getCompSaveForm() { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "compNo"); - compNoItem.setRules("required|string"); - // 名称 - SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "compName"); - compNameItem.setRules("required|string"); - // 简称 - SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "compNameShort"); - compNameShortItem.setRules("required|string"); - // 上级公司 - SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser"); - // 组织机构代码 - SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "组织机构代码", "orgCode"); - orgCodeItem.setRules("required|string"); - // 行业 - SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", ""); - // 负责人 - SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "负责人", "1", "compPrincipal", ""); - compPrincipalItem.setRules("required|string"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); - - conditionItems.add(compNoItem); - conditionItems.add(compNameItem); - conditionItems.add(compNameShortItem); - conditionItems.add(compBrowserItem); - conditionItems.add(orgCodeItem); - conditionItems.add(industryItem); - conditionItems.add(compPrincipalItem); - conditionItems.add(descriptionItem); - - - addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_COMP, 2, extendTitle.getId() + "", "comp_no", RuleCodeType.SUBCOMPANY.getValue()))); + } + } apiDatas.put("condition", addGroups); - return apiDatas; } + /** * 是否为搜索查询 * @@ -306,105 +297,4 @@ public class CompServiceImpl extends Service implements CompService { && null == compPO.getForbiddenTag()); } - - /** - * 浏览按钮类型赋值转换 - * - * @param id - * @param name - * @return - */ - private List> creatReplaceDatas(Object id, Object name) { - List> datas = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("id", id); - map.put("name", name); - datas.add(map); - return datas; - - } - - - /** - * 基本信息基础表单 - * - * @param viewAttr - * @param id - * @return - */ - private List getBaseForm(int viewAttr, long id) { - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "compNo"); - // 名称 - SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "compName"); - compNameItem.setRules("required|string"); - // 简称 - SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "compNameShort"); - compNameShortItem.setRules("required|string"); - // TODO 自定义按钮 - // 上级公司 - SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser"); - // 组织机构代码 - SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode"); - orgCodeItem.setRules("required|string"); - // 行业 - SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", ""); - // 负责人 - SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "负责人", "1", "compPrincipal", ""); - compPrincipalItem.setRules("required|string"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); - - - conditionItems.add(compNoItem); - conditionItems.add(compNameItem); - conditionItems.add(compNameShortItem); - conditionItems.add(compBrowserItem); - conditionItems.add(orgCodeItem); - conditionItems.add(industryItem); - conditionItems.add(compPrincipalItem); - conditionItems.add(descriptionItem); - - - // 编辑、查看状态赋值,设置只读状态 - - // 赋值 - CompPO compPO = getCompMapper().listById(id); - OrganizationAssert.notNull(compPO, "数据不存在或数据已删除"); - compNoItem.setValue(compPO.getCompNo()); - compNameItem.setValue(compPO.getCompName()); - compNameShortItem.setValue(compPO.getCompNameShort()); - - // compBrowserItem - if (null != compPO.getParentCompany()) { - BrowserBean compBrowserBean = compBrowserItem.getBrowserConditionParam(); - compBrowserBean.setReplaceDatas(creatReplaceDatas(compPO.getParentCompany(), getCompMapper().listById(compPO.getParentCompany()).getCompName())); - compBrowserItem.setBrowserConditionParam(compBrowserBean); - } - orgCodeItem.setValue(compPO.getOrgCode()); - // industryItem - BrowserBean industryBean = industryItem.getBrowserConditionParam(); - industryBean.setReplaceDatas(creatReplaceDatas(compPO.getIndustry(), new SectorInfoComInfo().getSectorInfoname(compPO.getIndustry() + ""))); - industryItem.setBrowserConditionParam(industryBean); - try { - // compPrincipalItem - BrowserBean PrincipalBean = compPrincipalItem.getBrowserConditionParam(); - PrincipalBean.setReplaceDatas(creatReplaceDatas(compPO.getCompPrincipal(), new ResourceComInfo().getLastname(compPO.getCompPrincipal() + ""))); - compPrincipalItem.setBrowserConditionParam(PrincipalBean); - } catch (Exception e) { - throw new RuntimeException(e); - } - descriptionItem.setValue(compPO.getDescription()); - - // 查看,全部置位只读 - if (1 == viewAttr) { - for (SearchConditionItem item : conditionItems) { - item.setViewAttr(viewAttr); - } - } - return conditionItems; - } - - } diff --git a/src/com/engine/organization/service/impl/DemoServiceImpl.java b/src/com/engine/organization/service/impl/DemoServiceImpl.java index 62e9a6d5..d5adcd73 100644 --- a/src/com/engine/organization/service/impl/DemoServiceImpl.java +++ b/src/com/engine/organization/service/impl/DemoServiceImpl.java @@ -18,7 +18,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/27 * @Version V1.0 **/ diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 1819cf7d..798f3350 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; @@ -9,25 +8,38 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.company.bo.CompBO; +import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.dto.DepartmentListDTO; -import com.engine.organization.entity.department.param.DeptSearchParam; -import com.engine.organization.entity.department.param.QuerySingleDeptListParam; +import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; +import com.engine.organization.entity.job.bo.JobBO; +import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; +import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.ExtService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; +import com.engine.organization.util.tree.SearchTreeUtil; +import org.apache.commons.collections4.CollectionUtils; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; @@ -37,7 +49,7 @@ import java.util.stream.Collectors; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -50,6 +62,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService * 3:岗位 */ private static final String EXTEND_TYPE = "2"; + /** + * 主表 + */ + private static final String JCL_ORG_DEPT = "JCL_ORG_DEPT"; /** * 主表拓展表 */ @@ -59,6 +75,14 @@ public class DepartmentServiceImpl extends Service implements DepartmentService */ private static final String JCL_ORG_DEPTEXT_DT1 = "JCL_ORG_DEPTEXT_DT1"; + private static final String RIGHT_NAME = "Department:All"; + + /** + * 部门主表title指定ID + */ + private static final Long GROUP_ID = 2L; + + private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } @@ -67,8 +91,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return MapperProxyFactory.getProxy(CompMapper.class); } - private ExtendGroupMapper getExtendGroupMapper() { - return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } private ExtService getExtService(User user) { @@ -78,12 +102,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public PageInfo getDeptListByPid(QuerySingleDeptListParam param) { - //1.查询分部下所有部门 //PageUtil.start(param.getCurrent(), param.getPageSize()); List departmentPOS = MapperProxyFactory.getProxy(DepartmentMapper.class).list(); PageInfo pageInfo = new PageInfo<>(departmentPOS); - List singleDeptTreeVOS = DepartmentBO.buildSingleDeptTreeVOS(departmentPOS,param.getParentComp()); + List singleDeptTreeVOS = DepartmentBO.buildSingleDeptTreeVOS(departmentPOS, param.getParentComp()); PageInfo pageInfos = new PageInfo<>(singleDeptTreeVOS, SingleDeptTreeVO.class); pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(param.getCurrent()); @@ -92,25 +115,52 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return pageInfos; } + @Override + public PageInfo getJobListByPid(QuerySingleDeptListParam param) { + List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listAll(); + PageInfo pageInfo = new PageInfo<>(jobPOS); + List singleDeptTreeVOS = JobBO.buildSingleJobTreeVOS(jobPOS, param.getParentDept()); + PageInfo pageInfos = new PageInfo<>(singleDeptTreeVOS, SingleJobTreeVO.class); + pageInfos.setTotal(pageInfo.getTotal()); + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + return pageInfos; + } + + + @Override + public Map getSearchTree(SearchTreeParams params) { + String keyword = params.getKeyword(); + String id = params.getId(); + String type = Util.null2String(params.getType()); + List treeList = getFilterCompany(id, keyword); + return SearchTreeUtil.getSearchTree(type, treeList); + } + @Override public Map listPage(DeptSearchParam param) { Map datas = new HashMap<>(); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(param, (long) user.getUID()); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + datas.put("hasRight", hasRight); + if (!hasRight) { + return datas; + } + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(param, user.getUID()); boolean filter = isFilter(departmentPO); PageInfo pageInfos; - List alltList = getDepartmentMapper().list(); + List allList = getDepartmentMapper().list(); // 通过子级遍历父级元素 if (filter) { // 根据条件获取元素 - List filteDeptPOs = getDepartmentMapper().listByFilter(departmentPO); + List filterDeptPOs = getDepartmentMapper().listByFilter(departmentPO); // 添加父级元素 - List compListDTOS = DepartmentBO.buildDeptDTOList(alltList, filteDeptPOs); + List compListDTOS = DepartmentBO.buildDeptDTOList(allList, filterDeptPOs); List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); pageInfos = new PageInfo<>(subList, DepartmentListDTO.class); pageInfos.setTotal(compListDTOS.size()); } else { // 组合list - List compListDTOS = DepartmentBO.buildDeptDTOList(alltList); + List compListDTOS = DepartmentBO.buildDeptDTOList(allList); List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); pageInfos = new PageInfo<>(subList, DepartmentListDTO.class); pageInfos.setTotal(compListDTOS.size()); @@ -135,37 +185,46 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } @Override - public int saveBaseForm(DeptSearchParam params) { - List list = getDepartmentMapper().listByNo(Util.null2String(params.getDeptNo())); + public int saveBaseForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + String deptNo = (String) params.get("dept_no"); + deptNo = CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptNo); + List list = getDepartmentMapper().listByNo(Util.null2String(deptNo)); OrganizationAssert.isEmpty(list, "编号不允许重复"); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(params, (long) user.getUID()); - return getDepartmentMapper().insertIgnoreNull(departmentPO); + params.put("dept_no", deptNo); + + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null); } @Override public int updateForbiddenTagById(DeptSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getDepartmentMapper().updateForbiddenTagById(departmentPO); } @Override public int updateForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); String groupId = (String) params.get("viewCondition"); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam,user.getUID()); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } int updateCount = 0; // 更新主表数据 - updateCount += getDepartmentMapper().updateBaseDept(departmentPO); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", searchParam.getId()); // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, departmentPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, searchParam.getId()); //更新明细表 - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, departmentPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, searchParam.getId()); return updateCount; } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getDepartmentMapper().deleteByIds(ids); } @@ -178,10 +237,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 编号 SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "deptNo"); // 名称 - SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "deptName"); + SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "departmentName"); // 简称 SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "deptNameShort"); - // TODO // 所属分部 SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); // 上级部门 @@ -214,20 +272,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map getHasRight() { - Map btnDatas = new HashMap<>(); - ArrayList topMenuList = new ArrayList<>(); - ArrayList rightMenuList = new ArrayList<>(); - // 新增 - topMenuList.add(MenuBtn.topMenu_addNew()); - // 批量删除 - topMenuList.add(MenuBtn.topMenu_batchDelete()); - btnDatas.put("topMenu", topMenuList); - // 新增 - rightMenuList.add(MenuBtn.rightMenu_addNew()); - // 日志 - rightMenuList.add(MenuBtn.rightMenu_btnLog()); - btnDatas.put("rightMenu", rightMenuList); - return btnDatas; + return MenuBtn.getDatasHasCopy(); } @Override @@ -244,10 +289,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService buttonsMap.put("hasSave", true); List addGroups = new ArrayList<>(); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); - } else { - addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, viewAttr, id, groupId))); + + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_DEPT : JCL_ORG_DEPTEXT, viewAttr, id, extendTitle.getId().toString(), "dept_no"))); + } } HashMap resultMap = new HashMap<>(); @@ -257,7 +307,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_DEPTEXT)); // 处理明细表 - resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, id, viewAttr, false)); + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId), JCL_ORG_DEPTEXT_DT1, id, viewAttr, false)); Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); @@ -267,149 +317,222 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map getSaveForm() { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo"); - deptNoItem.setRules("required|string"); - // 名称 - SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "deptName"); - deptNameItem.setRules("required|string"); - // 简称 - SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); - deptNameShortItem.setRules("required|string"); - // 所属分部 - SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - //上级部门 - SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentDept", "deptBrowser"); - // 部门负责人 - SearchConditionItem deptPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); - // 显示顺序 - SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "showOrder"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); - - conditionItems.add(deptNoItem); - conditionItems.add(deptNameItem); - conditionItems.add(deptNameShortItem); - conditionItems.add(compBrowserItem); - conditionItems.add(deptBrowserItem); - conditionItems.add(deptPrincipalItem); - conditionItems.add(showOrderItem); - conditionItems.add(descriptionItem); - + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); - addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_DEPT, 2, extendTitle.getId().toString(), "dept_no", RuleCodeType.DEPARTMENT.getValue()))); + } + } apiDatas.put("condition", addGroups); - return apiDatas; } /** - * 是否为搜索查询 + * 复制表单 * - * @param departmentPO * @return */ - private boolean isFilter(DepartmentPO departmentPO) { - return !(StringUtil.isEmpty(departmentPO.getDeptNo()) && StringUtil.isEmpty(departmentPO.getDeptName()) && StringUtil.isEmpty(departmentPO.getDeptNameShort()) && null == departmentPO.getParentComp() && null == departmentPO.getParentDept() && null == departmentPO.getDeptPrincipal() && null == departmentPO.getShowOrder() && null == departmentPO.getForbiddenTag()); + @Override + public List getCopyForm() { + List addGroups = new ArrayList<>(); + List condition = new ArrayList<>(); + SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "161", "company", "compBrowser"); + compBrowserItem.setRules("required|string"); + List selectOptions = new ArrayList<>(); + SearchConditionOption Option = new SearchConditionOption("1", ""); + selectOptions.add(Option); + SearchConditionItem isCheckItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 5, 10, false, "是否复制岗位信息", "copyJob"); + isCheckItem.setDetailtype(2); + condition.add(compBrowserItem); + condition.add(isCheckItem); + addGroups.add(new SearchConditionGroup("", true, condition)); + return addGroups; } /** - * 基本信息基础表单 + * 复制岗位到指定部门 * - * @param viewAttr - * @param id + * @param copyParam * @return */ - private List getBaseForm(int viewAttr, long id) { - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "deptNo"); - // 名称 - SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "deptName"); - deptNameItem.setRules("required|string"); - // 简称 - SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); - deptNameShortItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 上级部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级部门", "161", "parentDept", "deptBrowser"); - // 部门负责人 - SearchConditionItem deptPrincipalBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); - // 显示顺序 - SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "显示顺序", "showOrder"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); + @Override + public int copyDepartment(DeptCopyParam copyParam) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + OrganizationAssert.notBlank(copyParam.getCompany(), "请指定需要复制的公司/分部"); + int insertCount = 0; + List idList = Arrays.stream(copyParam.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); + for (Long id : idList) { + DepartmentPO deptById = getDepartmentMapper().getDeptById(id); + // 处理自动编号 + deptById.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptById.getDeptNo(), true)); + deptById.setParentComp(Long.parseLong(copyParam.getCompany())); + insertCount += getDepartmentMapper().insertIgnoreNull(deptById); + if ("1".equals(copyParam.getCopyJob())) { + List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listJobsByDepartmentId(id); + for (JobPO jobPO : jobPOS) { + // 处理自动编号 + jobPO.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobPO.getJobNo(), true)); + jobPO.setParentDept(deptById.getId()); + jobPO.setCreator((long) user.getUID()); + jobPO.setCreateTime(new Date()); + jobPO.setParentComp(deptById.getParentComp()); + insertCount += MapperProxyFactory.getProxy(JobMapper.class).insertIgnoreNull(jobPO); + } + } + } + return insertCount; + } + @Override + public List getMergeForm(Long id) { + List addGroups = new ArrayList<>(); + List condition = new ArrayList<>(); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "合并到部门", "161", "department", "deptBrowser"); + deptBrowserItem.setRules("required|string"); + SearchConditionItem mergeNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "合并后名称", "mergeName"); + mergeNameItem.setRules("required|string"); + String departmentName = getDepartmentMapper().getDeptNameById(id.intValue()); + mergeNameItem.setValue(departmentName); + + condition.add(deptBrowserItem); + condition.add(mergeNameItem); + addGroups.add(new SearchConditionGroup("", true, condition)); + return addGroups; + } - conditionItems.add(deptNoItem); - conditionItems.add(deptNameItem); - conditionItems.add(deptNameShortItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(deptPrincipalBrowserItem); - conditionItems.add(showOrderItem); - conditionItems.add(descriptionItem); + @Override + public int mergeDepartment(DepartmentMergeParam mergeParam) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + int updateCount = 0; + OrganizationAssert.isFalse(mergeParam.getId().equals(mergeParam.getDepartment()), "所选部门与待合并部门一致,无需操作"); + OrganizationAssert.notNull(mergeParam.getDepartment(), "请选择需要合并的部门"); + OrganizationAssert.notBlank(mergeParam.getMergeName(), "请输入合并后的名称"); + // 所选部门 + DepartmentPO mergeDepartment = getDepartmentMapper().getDeptById(mergeParam.getId()); + mergeDepartment.setDeptName(mergeParam.getMergeName()); + mergeDepartment.setDeptNameShort(mergeParam.getMergeName()); + mergeDepartment.setParentDept(mergeParam.getDepartment()); + updateCount += getDepartmentMapper().updateBaseDept(mergeDepartment); + // 合并后部门及子部门禁用 + Set ids = new HashSet<>(); + ids.add(mergeParam.getId()); + List deptList = getDepartmentMapper().getDeptListByPId(mergeParam.getId()); + forbiddenChildTag(deptList, ids); + updateCount += getDepartmentMapper().forbiddenDepartmentByIds(ids); + return updateCount; + } + @Override + public List getMoveForm() { + List addGroups = new ArrayList<>(); + List condition = new ArrayList<>(); + SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "请选择公司/分部", "161", "company", "compBrowser"); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "请选择部门", "161", "department", "deptBrowser"); - // 编辑、查看状态赋值,设置只读状态 - // 赋值 - DepartmentPO departmentPO = getDepartmentMapper().getDeptById(id); - OrganizationAssert.notNull(departmentPO, "数据不存在或数据已删除"); - deptNoItem.setValue(departmentPO.getDeptNo()); - deptNameItem.setValue(departmentPO.getDeptName()); - deptNameShortItem.setValue(departmentPO.getDeptNameShort()); + List selectOptions = new ArrayList<>(); + SearchConditionOption compOption = new SearchConditionOption("0", "公司/分部"); + SearchConditionOption deptOption = new SearchConditionOption("1", "部门"); + selectOptions.add(compOption); + selectOptions.add(deptOption); + SearchConditionItem moveTypeItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "转移到", "moveType"); + moveTypeItem.setDetailtype(3); + moveTypeItem.setValue("0"); + + condition.add(moveTypeItem); + condition.add(compBrowserItem); + condition.add(deptBrowserItem); + addGroups.add(new SearchConditionGroup("", true, condition)); + return addGroups; + } - // parentCompBrowserItem - if (null != departmentPO.getParentComp()) { - BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentComp(), getCompMapper().listById(departmentPO.getParentComp()).getCompName())); - parentCompBrowserItem.setBrowserConditionParam(browserBean); - } - // parentDeptBrowserItem - if (null != departmentPO.getParentDept()) { - BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentDept(), getDepartmentMapper().getDeptById(departmentPO.getParentDept()).getDeptName())); - parentDeptBrowserItem.setBrowserConditionParam(browserBean); - } - // deptPrincipalBrowserItem - if (null != departmentPO.getDeptPrincipal()) { - BrowserBean browserBean = deptPrincipalBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getDeptPrincipal(), DepartmentBO.getEmployeeNameById(departmentPO.getDeptPrincipal()))); - deptPrincipalBrowserItem.setBrowserConditionParam(browserBean); + @Override + public int moveDepartment(DepartmentMoveParam moveParam) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + OrganizationAssert.notBlank(moveParam.getMoveType(), "请选择转移类型"); + DepartmentPO deptById = getDepartmentMapper().getDeptById(moveParam.getId()); + // 0:公司/分部 1:部门 + if ("0".equals(moveParam.getMoveType())) { + Long company = moveParam.getCompany(); + OrganizationAssert.notNull(company, "请选择要转移到的公司/分部"); + deptById.setParentComp(company); + deptById.setParentDept(null); + } else if ("1".equals(moveParam.getMoveType())) { + Long department = moveParam.getDepartment(); + OrganizationAssert.notNull(department, "请选择要转移到的部门"); + deptById.setParentDept(department); + deptById.setParentComp(null); } - showOrderItem.setValue(departmentPO.getShowOrder()); - descriptionItem.setValue(departmentPO.getDescription()); + return getDepartmentMapper().updateBaseDept(deptById); + } - // 查看,全部置位只读 - if (1 == viewAttr) { - for (SearchConditionItem item : conditionItems) { - item.setViewAttr(viewAttr); + /** + * 获取所有子部门id + * + * @param deptList + * @param ids + */ + void forbiddenChildTag(List deptList, Set ids) { + if (CollectionUtils.isNotEmpty(deptList)) { + for (DepartmentPO departmentPO : deptList) { + ids.add(departmentPO.getId()); + List childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); + forbiddenChildTag(childList, ids); } } - return conditionItems; } /** - * 浏览按钮类型赋值转换 + * 是否为搜索查询 + * + * @param departmentPO + * @return + */ + private boolean isFilter(DepartmentPO departmentPO) { + return !(StringUtil.isEmpty(departmentPO.getDeptNo()) && StringUtil.isEmpty(departmentPO.getDeptName()) && StringUtil.isEmpty(departmentPO.getDeptNameShort()) && null == departmentPO.getParentComp() && null == departmentPO.getParentDept() && null == departmentPO.getDeptPrincipal() && null == departmentPO.getShowOrder() && null == departmentPO.getForbiddenTag()); + } + + + /** + * 根据keyword查询数据 * * @param id - * @param name + * @param keyword * @return */ - private List> creatReplaceDatas(Object id, Object name) { - List> datas = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("id", id); - map.put("name", name); - datas.add(map); - return datas; + private List getFilterCompany(String id, String keyword) { + // 查询部门信息 + Long parentCompId = StringUtil.isEmpty(id) ? null : Long.parseLong(id); + CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).build(); + List filterComps = getCompMapper().listByFilter(compBuild); + + Set builderComps = new HashSet<>(); + for (CompPO compPO : filterComps) { + buildParentComps(compPO, builderComps); + } + return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps)); } + /** + * 添加查询元素的父级元素 + * + * @param compPO + * @param builderComps + */ + private void buildParentComps(CompPO compPO, Set builderComps) { + builderComps.add(compPO); + if (SearchTreeUtil.isTop(compPO.getParentCompany())) { + return; + } + CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); + if (null != parentComp) { + buildParentComps(parentComp, builderComps); + } + } } diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 17841f76..91a68d3f 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -3,16 +3,19 @@ package com.engine.organization.service.impl; import com.api.browser.bean.SearchConditionItem; import com.engine.core.impl.Service; import com.engine.organization.entity.TopTab; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.entity.extend.ExtendInfoOperateType; import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; -import com.engine.organization.mapper.extend.ExtDTMapper; -import com.engine.organization.mapper.extend.ExtMapper; -import com.engine.organization.mapper.extend.ExtendGroupMapper; -import com.engine.organization.mapper.extend.ExtendInfoMapper; +import com.engine.organization.entity.extend.po.ExtendTitlePO; +import com.engine.organization.mapper.codesetting.CodeRuleMapper; +import com.engine.organization.mapper.extend.*; import com.engine.organization.service.ExtService; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.general.Util; import weaver.hrm.User; @@ -20,7 +23,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/24 * @version: 1.0 @@ -44,6 +47,10 @@ public class ExtServiceImpl extends Service implements ExtService { return MapperProxyFactory.getProxy(ExtendGroupMapper.class); } + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); + } + private ExtDTMapper getExtDTMapper() { return MapperProxyFactory.getProxy(ExtDTMapper.class); } @@ -54,33 +61,74 @@ public class ExtServiceImpl extends Service implements ExtService { @Override - public List getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId) { + public List getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId, String... readOnlyFields) { List conditionItems = new ArrayList<>(); // 2编辑 1查看 OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); - List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName); + List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.EDIT.getValue()); String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(",")); - infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(",")); - Map compExtMap = getExtMapper().listCompExt(tableName, fields, id); + if (StringUtils.isEmpty(fields)) { + return conditionItems; + } + Map compExtMap = getExtMapper().listExt(tableName, fields, id); + List readOnlyFieldList = Arrays.asList(readOnlyFields); // 组装拓展页内容 for (ExtendInfoPO extendInfoPO : infoPOList) { SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null == compExtMap ? null : compExtMap.get(extendInfoPO.getFieldName())); item.setFieldcol(16); - if (2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { + if (2 == viewAttr) { + if (readOnlyFieldList.contains(extendInfoPO.getFieldName())) { + item.setViewAttr(1); + } else if (1 == extendInfoPO.getIsrequired()) { + item.setViewAttr(3); + item.setRules("required|string"); + } + } + conditionItems.add(item); + } + return conditionItems; + } + + @Override + public List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType) { + List conditionItems = new ArrayList<>(); + + // 2编辑 1查看 + OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); + List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.ADD.getValue()); + // 组装拓展页内容 + for (ExtendInfoPO extendInfoPO : infoPOList) { + SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null); + item.setFieldcol(16); + if (1 == extendInfoPO.getIsrequired()) { item.setViewAttr(3); item.setRules("required|string"); } + if (extendInfoPO.getFieldName().equals(autoNoField)) { + // 判断是否开启自动编号 + CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(serialType); + if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) { + item.setViewAttr(2); + item.setHelpfulTip("编号为空,则按照指定规则自动生成编号"); + item.setRules(""); + } + } conditionItems.add(item); } return conditionItems; } @Override - public List> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel) { + public List> getExtendTables(User user, String extendType, Long groupId, String tableName, long id, int viewAttr, boolean showLabel) { List> tables = new ArrayList<>(); + List infoPOList = new ArrayList<>(); + // 查询明细表 + List extendGroupList = getExtendGroupMapper().listGroupByPid(groupId); + for (ExtendGroupPO extendGroup : extendGroupList) { + infoPOList.addAll(getExtendInfoMapper().listFields(extendType, extendGroup.getId() + "", tableName, "")); + } // 查询所有分布模块,拓展明细表信息 - List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); Map> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); // 遍历Map,组装数据 for (Map.Entry> entry : groupMap.entrySet()) { @@ -93,7 +141,7 @@ public class ExtServiceImpl extends Service implements ExtService { // 浏览按钮添加filespan字段 String fields = entry.getValue().stream().map(item -> { - if (BROWSER_TYPE == item.getControlType()) { + if (BROWSER_TYPE.equals(item.getControlType())) { return item.getFieldName() + "," + item.getFieldName() + "span"; } return item.getFieldName(); @@ -116,15 +164,20 @@ public class ExtServiceImpl extends Service implements ExtService { */ public List getTabInfo(String extendType, String tableName) { List topTabs = new ArrayList<>(); - // 基本信息 - topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build()); + List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ExtendInfoOperateType.EDIT.getValue()); + List infoPOList1 = getExtendInfoMapper().listFields(extendType, "", tableName.toLowerCase().replace("ext", ""), ExtendInfoOperateType.EDIT.getValue()); + infoPOList.addAll(infoPOList1); + List ids = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList()); + List extendTitles = getExtendTitleMapper().getTitlesByIds(ids); + Set groupIds = extendTitles.stream().map(ExtendTitlePO::getGroupId).collect(Collectors.toSet()); + List extendGroupList = getExtendGroupMapper().listByType(Integer.parseInt(extendType)); - List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); - List extendGroups = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList()); // 拓展信息 - if (CollectionUtils.isNotEmpty(extendGroups)) { - for (Long groupId : extendGroups) { - topTabs.add(TopTab.builder().color("#000000").groupId(groupId + "").showcount(false).title(getExtendGroupMapper().getGroupNameById(groupId + "")).viewCondition(groupId + "").build()); + if (CollectionUtils.isNotEmpty(extendGroupList) && CollectionUtils.isNotEmpty(groupIds)) { + for (ExtendGroupPO extendGroup : extendGroupList) { + if (groupIds.contains(extendGroup.getId())) { + topTabs.add(TopTab.builder().color("#000000").groupId(extendGroup.getId().toString()).showcount(false).title(extendGroup.getGroupName()).viewCondition(extendGroup.getId().toString()).build()); + } } } return topTabs; @@ -133,31 +186,44 @@ public class ExtServiceImpl extends Service implements ExtService { @Override public int updateExtForm(User user, String extendType, String tableName, Map params, String groupId, Long id) { int updateBaseComp; - List extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName); - List extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); + List extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.EDIT.getValue()); Map map = new HashMap<>(); - for (String dtField : extFields) { - map.put(dtField, params.get(dtField)); + for (ExtendInfoPO extendInfoPO : extInfoPOList) { + String key = extendInfoPO.getFieldName(); + Object value = params.get(extendInfoPO.getFieldName()); + if ("int".equals(extendInfoPO.getFieldType()) && StringUtils.isEmpty((String) value)) { + value = null; + } + map.put(key, value); } - // 判断更新还是插入 - int count = getExtMapper().countCompExtById(tableName, id); - if (count > 0) { - map.put("update_time", new Date()); - updateBaseComp = getExtMapper().updateCompExt(tableName, id, map); + if (null != id) { + // 判断更新还是插入 + int count = getExtMapper().countExtById(tableName, id); + if (count > 0) { + map.put("update_time", new Date()); + updateBaseComp = getExtMapper().updateExt(tableName, id, map); + } else { + map.put("creator", user.getUID()); + map.put("delete_type", 0); + map.put("create_time", new Date()); + map.put("update_time", new Date()); + map.put("id", id); + updateBaseComp = getExtMapper().insertExt(tableName, map); + } } else { + map.put("forbidden_tag", 0); map.put("creator", user.getUID()); map.put("delete_type", 0); map.put("create_time", new Date()); map.put("update_time", new Date()); - map.put("id", id); - updateBaseComp = getExtMapper().insertCompExt(tableName, map); + updateBaseComp = getExtMapper().insertExt(tableName, map); } return updateBaseComp; } @Override public void updateExtDT(User user, String extendType, String tableName, Map params, Long id) { - List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); + List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ""); List groupIds = dtInfoPOList.stream().map(ExtendInfoPO::getExtendGroupId).distinct().collect(Collectors.toList()); Map> poMaps = dtInfoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); // 删除原有明细表数据 @@ -169,7 +235,7 @@ public class ExtServiceImpl extends Service implements ExtService { for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); for (ExtendInfoPO extendInfoPO : filterS) { - if (BROWSER_TYPE == extendInfoPO.getControlType()) { + if (BROWSER_TYPE.equals(extendInfoPO.getControlType())) { map.put(extendInfoPO.getFieldName() + "span", params.get(extendInfoPO.getFieldName() + "span_" + i)); } map.put(extendInfoPO.getFieldName(), params.get(extendInfoPO.getFieldName() + "_" + i)); diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java new file mode 100644 index 00000000..9a2b60cd --- /dev/null +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -0,0 +1,562 @@ +package com.engine.organization.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.SelectOptionParam; +import com.engine.organization.entity.extend.bo.ExtendGroupBO; +import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; +import com.engine.organization.entity.extend.param.ExtendInfoChangeParam; +import com.engine.organization.entity.extend.param.ExtendInfoFieldParam; +import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; +import com.engine.organization.entity.extend.po.ExtendGroupPO; +import com.engine.organization.entity.extend.po.ExtendInfoPO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; +import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; +import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.enums.DeleteTypeEnum; +import com.engine.organization.enums.ModuleTypeEnum; +import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.extend.ExtendInfoMapper; +import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.service.FieldDefinedService; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; +import weaver.systeminfo.SystemEnv; +import weaver.workflow.field.BrowserComInfo; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +public class FieldDefinedServiceImpl extends Service implements FieldDefinedService { + + private ExtendGroupMapper getExtendGroupMapper() { + return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + } + + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); + } + + private ExtendInfoMapper getExtendInfoMapper() { + return MapperProxyFactory.getProxy(ExtendInfoMapper.class); + } + + @Override + public List getTree(ModuleTypeEnum moduleTypeEnum) { + Integer extendType = moduleTypeEnum.getValue(); + List extendGroupPOS = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(extendType); + return ExtendGroupBO.buildTypeTree(extendGroupPOS); + } + + @Override + public Map getTabInfo(String groupType) { + OrganizationAssert.notBlank(groupType, "分组信息有误,请确认"); + Map datas = new HashMap<>(); + Long groupId = Long.parseLong(groupType); + String tableName = ExtendGroupBO.getTableNameByGroupPO(getExtendGroupMapper().getGroupById(groupId)); + List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId); + List> tabs = new ArrayList<>(); + int idx = 1; + for (ExtendTitlePO extendTitle : extendTitleList) { + Map tab = new HashMap<>(); + tab.put("tabkey", idx++); + tab.put("title", extendTitle.getTitle()); + tab.put("isShow", extendTitle.getIsShow()); + tab.put("groupid", String.valueOf(extendTitle.getId())); + tab.put("viewAttr", extendTitle.getIsSystemDefault() == 0 ? 1 : 2); + tab.put("editable", getExtendInfoMapper().countFieldsByGroupId(tableName, extendTitle.getId()) == 0); + tabs.add(tab); + } + datas.put("status", "1"); + datas.put("tabs", tabs); + return datas; + } + + @Override + public int saveFields(String data) { + if (StringUtils.isEmpty(data)) { + return 0; + } + JSONObject jsonObject = JSON.parseObject(data); + // extend_group主键 + Long groupType = jsonObject.getLong("groupType"); + ExtendGroupPO extendGroup = getExtendGroupMapper().getGroupById(groupType); + + // 主表、主表拓展表为extend_title主键;明细表为extend_group主键 + Long extendGroupId = jsonObject.getLong("groupId"); + + JSONArray records = jsonObject.getJSONArray("records"); + int updateCount = 0; + for (int i = 0; i < records.size(); i++) { + // 存在ID则更新 ,不存在ID则增加 + ExtendInfoFieldParam infoFieldParam = JSONObject.toJavaObject((JSONObject) records.get(i), ExtendInfoFieldParam.class); + ExtendInfoPO extendInfo = ExtendInfoBO.convertFieldParam2ExtendInfo(user, infoFieldParam, extendGroup, extendGroupId, i + 1); + + if (null != extendInfo.getId()) { + // 更新 extend_title数据 + updateCount += getExtendInfoMapper().updateExtendInfo(extendInfo); + } else { + // 新增extend_title数据 + // 获取操作表最大id,生成字段名 + Long maxId = getExtendInfoMapper().getMaxId(); + extendInfo.setFieldName("field" + (maxId + 1)); + extendInfo.setIsSystemDefault(1); + updateCount += getExtendInfoMapper().insertExtendInfo(extendInfo); + // 新增表结构 + getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName(), extendInfo.getFieldType()); + // 明细表且为浏览按钮字段,添加span字段 + if (null != extendGroup.getPid() && 3 == extendInfo.getControlType()) { + String dbType = infoFieldParam.getDbType("2", ""); + getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName() + "span", dbType); + } + + } + } + return updateCount; + } + + @Override + public Map saveGroup(ExtendTitleSaveParam param) { + Map datas = new HashMap<>(); + Long groupType = param.getGroupType(); + Set lsDelGroupId = new HashSet<>(); + List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupType); + extendTitleList.forEach(item -> lsDelGroupId.add(item.getId())); + String data = param.getData(); + JSONObject jsonObject = JSON.parseObject(data); + Set ids = new HashSet<>(); + JSONArray records = jsonObject.getJSONArray("records"); + for (int i = 0; i < records.size(); i++) { + ExtendTitlePO extendTitle = new ExtendTitlePO(); + JSONObject object = (JSONObject) records.get(i); + extendTitle.setId(object.getLong("id")); + extendTitle.setGroupId(groupType); + extendTitle.setIsShow(object.getString("isShow")); + extendTitle.setTitle(object.getString("groupName")); + extendTitle.setShowOrder(i + 1); + + if (null != extendTitle.getId()) { + lsDelGroupId.remove(extendTitle.getId()); + } + + if (null == extendTitle.getId()) { + extendTitle.setIsSystemDefault(1); + extendTitle.setCreator((long) user.getUID()); + extendTitle.setCreateTime(new Date()); + extendTitle.setDeleteType(0); + getExtendTitleMapper().insertIgnoreNull(extendTitle); + } else { + extendTitle.setUpdateTime(new Date()); + getExtendTitleMapper().updateExtendTitle(extendTitle); + } + ids.add(extendTitle.getId()); + } + if (CollectionUtils.isNotEmpty(lsDelGroupId)) { + getExtendTitleMapper().deleteExtendTitleByIds(lsDelGroupId); + } + datas.put("groupid", StringUtils.join(ids, ",")); + datas.put("status", "1"); + return datas; + } + + @Override + public Map saveTitle(ExtendTitleSaveParam param) { + Map datas = new HashMap<>(); + + List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType()); + ExtendTitlePO extendTitlePO = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).orElse(ExtendTitlePO.builder().showOrder(1).build()); + Set ids = titlesByGroupID.stream().map(ExtendTitlePO::getId).collect(Collectors.toSet()); + ExtendTitlePO extendTitle = new ExtendTitlePO(); + extendTitle.setGroupId(param.getGroupType()); + extendTitle.setIsShow(param.getIsShow()); + extendTitle.setTitle(param.getGroupName()); + extendTitle.setShowOrder(extendTitlePO.getShowOrder() + 1); + extendTitle.setCreator((long) user.getUID()); + extendTitle.setCreateTime(new Date()); + extendTitle.setDeleteType(0); + extendTitle.setIsSystemDefault(1); + getExtendTitleMapper().insertIgnoreNull(extendTitle); + ids.add(extendTitle.getId()); + + datas.put("groupid", StringUtils.join(ids, ",")); + datas.put("status", "1"); + return datas; + } + + @Override + public void changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { + if (fieldTypeTreeParam.getId() == null) { + List extendGroupPOList = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(moduleTypeEnum.getValue()); + ExtendGroupPO extendGroup = extendGroupPOList.stream().max(Comparator.comparing(ExtendGroupPO::getShowOrder)).get(); + ExtendGroupPO extendGroupPO = buildExtendGroupType(moduleTypeEnum, fieldTypeTreeParam, extendGroup.getShowOrder()); + MapperProxyFactory.getProxy(ExtendGroupMapper.class).insertIgnoreNull(extendGroupPO); + //默认新增title + ExtendTitlePO extendTitlePO = buildExtendTitleType(extendGroupPO, 1); + MapperProxyFactory.getProxy(ExtendTitleMapper.class).insertIgnoreNull(extendTitlePO); + } else { + MapperProxyFactory.getProxy(ExtendGroupMapper.class).update(fieldTypeTreeParam.getId(), fieldTypeTreeParam.getName()); + } + + } + + @Override + public int deleteTitle(ExtendTitleSaveParam param) { + getExtendTitleMapper().deleteExtendTitleByIds(DeleteParam.builder().ids(param.getId().toString()).build().getIds()); + List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType()); + + if (CollectionUtils.isEmpty(titlesByGroupID)) { + // 删除整个分组 + getExtendGroupMapper().delete(param.getGroupType()); + return 1; + } + return 0; + } + + @Override + public Map getFieldDefinedInfo(ExtendFieldSearchParam param) { + Map returnMap = new HashMap<>(); + List> lsFieldInfo = new ArrayList<>(); + Map fieldInfo; + Map recordInfo; + Map propsInfo; + Map comInfo; + List fieldTypeInfo; + List lsComDetialInfo; + Map comDetialInfo; + // 区分主表明细表 + Long groupType = param.getGroupType(); + ExtendGroupPO extendGroupPO = getExtendGroupMapper().getGroupById(groupType); + String tableName = ExtendGroupBO.getTableNameByGroupPO(extendGroupPO); + List infoPOList = getExtendInfoMapper().listFields("", param.getGroupId().toString(), tableName, ""); + for (ExtendInfoPO extendInfoPO : infoPOList) { + Long fieldId = extendInfoPO.getId(); + String fieldName = extendInfoPO.getFieldName(); + String fieldLabel = extendInfoPO.getFieldNameDesc(); + String fieldHtmlType = extendInfoPO.getControlType().toString(); + String browserType = extendInfoPO.getBrowserType(); + String customValue = extendInfoPO.getCustomValue(); + String fieldStrLength = SelectOptionParam.getTextLength(customValue); + //自定义字段排序 标识rowKey + String fieldIdRowKey; + int showOrder = extendInfoPO.getShowOrder(); + boolean isUsed = false; + // 是否为系统字段 + boolean isSysField = extendInfoPO.getIsSystemDefault() == 0; + if (isSysField) { + fieldIdRowKey = fieldId + "_hrm"; + } else { + fieldIdRowKey = fieldId + "_cus"; + } + if (!isSysField) { + isUsed = ExtendInfoBO.fieldIsUsed(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); + } + + BrowserComInfo BrowserComInfo = new BrowserComInfo(); + List fieldTypeObj = new ArrayList<>(); + String fieldType = ""; + switch (fieldHtmlType) { + case "1": + fieldTypeObj.add("input"); + fieldType = SystemEnv.getHtmlLabelName(688, user.getLanguage()); + switch (browserType) { + case "1": + fieldTypeObj.add("text"); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()) + ":" + fieldStrLength; + fieldTypeObj.add(fieldStrLength); + break; + case "2": + fieldTypeObj.add("int"); + fieldType += " " + SystemEnv.getHtmlLabelName(696, user.getLanguage()); + break; + case "3": + fieldTypeObj.add("float"); + fieldType += " " + SystemEnv.getHtmlLabelName(697, user.getLanguage()); + break; + } + break; + case "2": + fieldTypeObj.add("textarea"); + fieldType = SystemEnv.getHtmlLabelName(689, user.getLanguage()); + break; + case "3": { + fieldTypeObj.add("browser"); + List replaceDatas = new ArrayList<>(); + Map tmp = new HashMap<>(); + tmp.put("value", browserType); + tmp.put("valueSpan", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage())); + Map tmp1 = new HashMap<>(); + tmp1.put("id", browserType); + tmp1.put("name", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage())); + replaceDatas.add(tmp1); + tmp.put("replaceDatas", replaceDatas); + fieldTypeObj.add(tmp); + fieldType = SystemEnv.getHtmlLabelName(695, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage()); + if (browserType.equals("161") || browserType.equals("162") || browserType.equals("256") || browserType.equals("257")) { + tmp = new HashMap<>(); + tmp.put("value", SelectOptionParam.getCustomBrowserId(customValue)); + tmp.put("valueSpan", SelectOptionParam.getCustomBrowserValueSpan(customValue)); + fieldTypeObj.add(tmp); + fieldType += " " + SelectOptionParam.getCustomBrowserValueSpan(customValue); + } + break; + } + case "4": + fieldTypeObj.add("check"); + fieldType = SystemEnv.getHtmlLabelName(691, user.getLanguage()); + break; + case "5": { + fieldTypeObj.add("select"); + fieldTypeObj.add("select"); + Map tmp = new HashMap<>(); + tmp.put("datas", SelectOptionParam.getSelectFields(customValue)); + tmp.put("sort", "horizontal"); + fieldTypeObj.add(tmp); + fieldType = SystemEnv.getHtmlLabelName(690, user.getLanguage()); + break; + } + case "6": + fieldTypeObj.add("upload"); + fieldTypeObj.add("file"); + fieldType = SystemEnv.getHtmlLabelName(17616, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(20798, user.getLanguage()); + break; + } + + fieldInfo = new HashMap<>(); + recordInfo = new HashMap<>(); + recordInfo.put("id", "" + fieldId); + recordInfo.put("fieldlabel", fieldLabel); + recordInfo.put("fieldname", fieldName); + recordInfo.put("fieldType", fieldType); + recordInfo.put("fieldTypeObj", fieldTypeObj); + recordInfo.put("enable", extendInfoPO.getIsenable() + ""); + recordInfo.put("required", extendInfoPO.getIsrequired() + ""); + recordInfo.put("isModify", extendInfoPO.getEditShow() + ""); + recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); + recordInfo.put("key", "" + showOrder); + recordInfo.put("fieldidrowKey", fieldIdRowKey); + + fieldInfo.put("record", recordInfo); + + propsInfo = new HashMap<>(); + Map checkPropsInfo = new HashMap<>(); + Map checkPropsEnableInfo = new HashMap<>(); + Map checkPropsRequiredInfo = new HashMap<>(); + + //允许个人修改字段check框属性 + Map checkPropsModifyInfo = new HashMap<>(); + checkPropsEnableInfo.put("viewAttr", !isSysField ? 2 : 1); + checkPropsModifyInfo.put("viewAttr", !isSysField ? 2 : 1); + checkPropsRequiredInfo.put("viewAttr", !isSysField ? 2 : 1); + + checkPropsInfo.put("enable", checkPropsEnableInfo); + checkPropsInfo.put("required", checkPropsRequiredInfo); + checkPropsInfo.put("isModify", checkPropsModifyInfo); + propsInfo.put("checkProps", checkPropsInfo); + fieldInfo.put("props", propsInfo); + + comInfo = new HashMap<>(); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + if (isSysField) { + comDetialInfo.put("type", "TEXT"); + } else { + comDetialInfo.put("type", "INPUT"); + } + comDetialInfo.put("width", "15%"); + comDetialInfo.put("key", "fieldlabel"); + comDetialInfo.put("viewAttr", "3"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldlabel", lsComDetialInfo); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + comDetialInfo.put("type", "TEXT"); + comDetialInfo.put("width", "15%"); + comDetialInfo.put("key", "fieldname"); + comDetialInfo.put("viewAttr", "3"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldname", lsComDetialInfo); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + comDetialInfo.put("type", fieldHtmlType.equals("5") ? "CUSTOMFIELD" : "TEXT"); + comDetialInfo.put("width", "60%"); + comDetialInfo.put("key", "fieldType"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldType", lsComDetialInfo); + + fieldInfo.put("com", comInfo); + fieldInfo.put("isSysField", isSysField); + + fieldTypeInfo = new ArrayList<>(); + fieldTypeInfo.add("select"); + fieldTypeInfo.add("select"); + Map fieldTypeParamInfo = new HashMap<>(); + + if (fieldHtmlType.equals("5")) { + + fieldTypeParamInfo.put("datas", SelectOptionParam.getSelectFields(customValue)); + fieldTypeParamInfo.put("sort", "horizontal"); + fieldTypeInfo.add(fieldTypeParamInfo); + fieldInfo.put("fieldType", fieldTypeInfo); + } + lsFieldInfo.add(fieldInfo); + + } + + + returnMap.put("data", lsFieldInfo); + returnMap.put("encryptEnable", false); + return returnMap; + } + + @Override + public void deleteTree(Long id) { + //明细表删除字段信息、删除表结构 + ExtendGroupPO extendGroupPO = getExtendGroupMapper().getGroupById(id); + MapperProxyFactory.getProxy(ExtendGroupMapper.class).delete(id); + List extendInfoList = getExtendInfoMapper().listFields(extendGroupPO.getExtendType().toString(), extendGroupPO.getId().toString(), ExtendGroupBO.getTableNameByGroupPO(extendGroupPO), ""); + List ids = extendInfoList.stream().map(ExtendInfoPO::getId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(ids)) { + // 删除数据 + dropColumns(ids, extendGroupPO, extendInfoList); + } + } + + @Override + public void saveTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { + Set collect = MapperProxyFactory.getProxy(ExtendGroupMapper.class) + .listGroupByPid(fieldTypeTreeParam.getParentId()).stream().map(ExtendGroupPO::getId).collect(Collectors.toSet()); + Integer extendType = moduleTypeEnum.getValue(); + List extendGroupPOS = JSONArray.parseArray(fieldTypeTreeParam.getData(), ExtendGroupPO.class); + + List collect1 = extendGroupPOS.stream().map(ExtendGroupPO::getId).collect(Collectors.toList()); + collect1.forEach(e -> { + if (collect.contains(e)) { + collect.remove(e); + } + }); + if (CollectionUtils.isNotEmpty(collect)) { + MapperProxyFactory.getProxy(ExtendGroupMapper.class).batchDelete(collect); + } + + AtomicInteger showOrder = new AtomicInteger(0); + extendGroupPOS.forEach(e -> { + showOrder.getAndIncrement(); + e.setExtendType(extendType); + e.setPid(fieldTypeTreeParam.getParentId()); + e.setShowOrder(showOrder.get()); + e.setIsSystemDefault(1); + e.setCreator((long) user.getUID()); + e.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + e.setCreateTime(new Date()); + e.setUpdateTime(new Date()); + + if (e.getId() == null) {//新增 + MapperProxyFactory.getProxy(ExtendGroupMapper.class).insertIgnoreNull(e); + } else { //更新 + MapperProxyFactory.getProxy(ExtendGroupMapper.class).updateNameAndOrder(e.getId(), e.getGroupName(), e.getShowOrder(), e.getIsShow()); + } + }); + + + } + + @Override + public void deleteFieldDefined(ExtendFieldSearchParam param) { + Collection ids = param.getId(); + Long groupType = param.getGroupType(); + ExtendGroupPO extendGroupPO = getExtendGroupMapper().getGroupById(groupType); + + List extendInfoList = getExtendInfoMapper().getExtendInfosByIds(ids); + dropColumns(ids, extendGroupPO, extendInfoList); + + } + + @Override + public void changeGroup(ExtendInfoChangeParam param) { + // 移动字段的ID + String fieldids = param.getFieldids(); + // extendTiele表ID + Long groupid = param.getGroupid(); + + if (StringUtils.isNotEmpty(fieldids) && null != groupid) { + // 更新extendInfo表的extend_group_id + List ids = Arrays.asList(fieldids.split(",")).stream().map(item -> Long.parseLong(item)).collect(Collectors.toList()); + getExtendInfoMapper().updateExtendGroupId(groupid, ids); + } + + } + + /** + * 删除数据及表结构 + * + * @param ids + * @param extendGroupPO + * @param extendInfoList + */ + private void dropColumns(Collection ids, ExtendGroupPO extendGroupPO, List extendInfoList) { + // 删除数据 + getExtendInfoMapper().deleteExtendInfoByIds(ids); + // 删除表结构 + for (ExtendInfoPO extendInfoPO : extendInfoList) { + getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); + // 明细表浏览按钮,额外删除span字段 + if (null != extendGroupPO.getPid() && 3 == extendInfoPO.getControlType()) { + getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName() + "span"); + } + + } + } + + private ExtendTitlePO buildExtendTitleType(ExtendGroupPO extendGroupPO, Integer max) { + return ExtendTitlePO.builder() + .groupId(extendGroupPO.getId()) + .title(extendGroupPO.getGroupName()) + .showOrder(max) + .isShow("1") + .isSystemDefault(1) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()).build(); + } + + + private ExtendGroupPO buildExtendGroupType(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam, Integer max) { + return ExtendGroupPO.builder() + .extendType(moduleTypeEnum.getValue()) + .groupName(fieldTypeTreeParam.getName()) + .showOrder(++max) + .isSystemDefault(1) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()) + .pid(fieldTypeTreeParam.getParentId()) + .isShow(fieldTypeTreeParam.getIsShow() == null ? "1" : fieldTypeTreeParam.getIsShow()).build(); + } + + +} diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index aa172367..c217bb8e 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -16,10 +16,7 @@ import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.service.GradeService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -31,13 +28,15 @@ import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 */ public class GradeServiceImpl extends Service implements GradeService { + private static final String RIGHT_NAME = "Grade:All"; + private GradeMapper getGradeMapper() { return MapperProxyFactory.getProxy(GradeMapper.class); } @@ -53,6 +52,12 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public Map listPage(Map params) { // 刷新引用状态 + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } RefreshIsUsedUtil.RefreshGrade("jcl_org_grade"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, GradeTableVO.class); String sqlWhere = buildSqlWhere(params); @@ -60,12 +65,14 @@ public class GradeServiceImpl extends Service implements GradeService { WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int saveGrade(GradeSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); @@ -74,18 +81,21 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public int updateGrade(GradeSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); return getGradeMapper().updateGrade(gradePO); } @Override public int updateForbiddenTagById(GradeSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); GradePO gradePO = GradePO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getGradeMapper().updateForbiddenTagById(gradePO); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getGradeMapper().deleteByIds(ids); } @@ -108,6 +118,7 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public Map getGradeForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -204,4 +215,5 @@ public class GradeServiceImpl extends Service implements GradeService { } return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/GroupServiceImpl.java b/src/com/engine/organization/service/impl/GroupServiceImpl.java index 47bb3e61..1588052c 100644 --- a/src/com/engine/organization/service/impl/GroupServiceImpl.java +++ b/src/com/engine/organization/service/impl/GroupServiceImpl.java @@ -5,6 +5,7 @@ import com.api.browser.bean.SearchConditionItem; import com.engine.core.impl.Service; import com.engine.organization.entity.TopTab; import com.engine.organization.service.GroupService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; @@ -18,12 +19,14 @@ import java.util.List; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 */ public class GroupServiceImpl extends Service implements GroupService { + private static final String RIGHT_NAME = "Group:All"; + @Override public Map getGroupFormField(Map params) { Map apiDatas = new HashMap<>(); @@ -72,6 +75,7 @@ public class GroupServiceImpl extends Service implements GroupService { @Override public boolean updateGroup(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); String id = Util.null2String(params.get("id")); OrganizationAssert.notNull(id, "数据有误"); String companyname = (String) params.get("companyname"); @@ -93,6 +97,7 @@ public class GroupServiceImpl extends Service implements GroupService { // 编辑 rightMenuList.add(MenuBtn.builder().isTop("1").menuFun("doEdit").menuIcon("icon-coms-edit").menuName("编辑").type("BTN_EDIT").build()); btnDatas.put("rightMenu", rightMenuList); + btnDatas.put("hasRight", HasRightUtil.hasRight(user, RIGHT_NAME, true)); return btnDatas; } @@ -102,7 +107,7 @@ public class GroupServiceImpl extends Service implements GroupService { List topTabs = new ArrayList<>(); topTabs.add(TopTab.builder().title("总部信息").viewCondition("1").build()); apiDatas.put("topTabs", topTabs); - return apiDatas; } + } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 7873ca5f..c6ce1991 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -1,25 +1,24 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; -import com.api.hrm.bean.TreeNode; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; -import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.employee.vo.EmployeeTableVO; import com.engine.organization.entity.extend.bo.ExtendInfoBO; import com.engine.organization.entity.extend.po.ExtendInfoPO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; @@ -30,24 +29,24 @@ import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.job.JobDTMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.mapper.scheme.LevelMapper; -import com.engine.organization.mapper.scheme.SchemeMapper; -import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; +import com.engine.organization.util.tree.SearchTreeUtil; import org.apache.commons.collections4.CollectionUtils; -import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; @@ -56,7 +55,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/26 * @version: 1.0 @@ -70,7 +69,6 @@ public class JobServiceImpl extends Service implements JobService { * 1:分部 * 2:部门 */ - private static final String TYPE_GROUP = "0"; private static final String TYPE_COMP = "1"; private static final String TYPE_DEPT = "2"; @@ -81,6 +79,10 @@ public class JobServiceImpl extends Service implements JobService { * 3:岗位 */ private static final String EXTEND_TYPE = "3"; + /** + * 主表 + */ + private static final String JCL_ORG_JOB = "JCL_ORG_JOB"; /** * 主表拓展表 */ @@ -90,6 +92,13 @@ public class JobServiceImpl extends Service implements JobService { */ private static final String JCL_ORG_JOBEXT_DT1 = "JCL_ORG_JOBEXT_DT1"; + private static final String RIGHT_NAME = "Job:All"; + + /** + * 岗位主表title指定ID + */ + private static final Long GROUP_ID = 3L; + private JobMapper getJobMapper() { return MapperProxyFactory.getProxy(JobMapper.class); } @@ -106,16 +115,8 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(DepartmentMapper.class); } - private SequenceMapper getSequenceMapper() { - return MapperProxyFactory.getProxy(SequenceMapper.class); - } - - private SchemeMapper getSchemeMapper() { - return MapperProxyFactory.getProxy(SchemeMapper.class); - } - - private ExtendGroupMapper getExtendGroupMapper() { - return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } private ExtService getExtService(User user) { @@ -125,36 +126,21 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map getSearchTree(SearchTreeParams params) { - Map dataMap = new HashMap<>(); - SearchTree topGroup = getTopGroup(); - // 集团 - List companyList = new ArrayList<>(); - companyList.add(topGroup); String keyword = params.getKeyword(); - String type = Util.null2String(params.getType()); String id = params.getId(); - - List treeDatas = getFilterCompany(id, type, keyword); - // 未点击,初始化树结构 - if (StringUtil.isEmpty(type)) { - dataMap.put("companys", companyList); - SearchTree rootCompany = getTopGroup(); - rootCompany.setSubs(treeDatas); - rootCompany.setIsParent(CollectionUtils.isNotEmpty(rootCompany.getSubs())); - Map rootCompanyMap = new HashMap<>(); - rootCompanyMap.put("rootCompany", rootCompany); - dataMap.put("datas", rootCompanyMap); - } else { - // 根据ID查询 - dataMap.put("datas", treeDatas); - } - - return dataMap; + String type = Util.null2String(params.getType()); + List treeList = getFilterCompany(id, type, keyword); + return SearchTreeUtil.getSearchTree(type, treeList); } @Override public Map listPage(JobSearchParam param) { Map datas = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + datas.put("hasRight", hasRight); + if (!hasRight) { + return datas; + } JobPO jobPO = JobBO.convertParamsToPO(param, user.getUID()); boolean filter = isFilter(jobPO); PageInfo pageInfos; @@ -164,22 +150,22 @@ public class JobServiceImpl extends Service implements JobService { // 根据条件获取元素 List filterJobPOs = getJobMapper().listByFilter(jobPO); // 添加父级元素 - List compListDTOS = JobBO.buildJobDTOList(allList, filterJobPOs); - List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + List jobListDTOS = JobBO.buildJobDTOList(allList, filterJobPOs); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), jobListDTOS); pageInfos = new PageInfo<>(subList, JobListDTO.class); - pageInfos.setTotal(compListDTOS.size()); + pageInfos.setTotal(jobListDTOS.size()); } else { // 组合list - List compListDTOS = JobBO.buildDTOList(allList); - List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + List jobListDTOS = JobBO.buildDTOList(allList); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), jobListDTOS); pageInfos = new PageInfo<>(subList, JobListDTO.class); - pageInfos.setTotal(compListDTOS.size()); + pageInfos.setTotal(jobListDTOS.size()); } pageInfos.setPageNum(param.getCurrent()); pageInfos.setPageSize(param.getPageSize()); - OrganizationWeaTable table = new OrganizationWeaTable<>(user, DepartmentListDTO.class); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, JobListDTO.class); List columns = pageInfos.getColumns(); List weaTableColumn = columns.stream().map(v -> new WeaTableColumn("100", v.getTitle(), v.getKey())).collect(Collectors.toList()); @@ -196,24 +182,7 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map getHasRight() { - Map btnDatas = new HashMap<>(); - ArrayList topMenuList = new ArrayList<>(); - ArrayList rightMenuList = new ArrayList<>(); - // 新增 - topMenuList.add(MenuBtn.topMenu_addNew()); - // 批量删除 - topMenuList.add(MenuBtn.topMenu_batchDelete()); - // 复制 - topMenuList.add(MenuBtn.topMenu_copy()); - btnDatas.put("topMenu", topMenuList); - // 新增 - rightMenuList.add(MenuBtn.rightMenu_addNew()); - // 复制 - rightMenuList.add(MenuBtn.rightMenu_copy()); - // 日志 - rightMenuList.add(MenuBtn.rightMenu_btnLog()); - btnDatas.put("rightMenu", rightMenuList); - return btnDatas; + return MenuBtn.getDatasHasCopy(); } @Override @@ -279,44 +248,15 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map getSaveForm() { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "jobNo"); - jobNoItem.setRules("required|string"); - // 名称 - SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNameItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); - // 岗位序列 - SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); - // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); - // 上级岗位 - SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); - // 是否关键岗 - List isKeyOptions = new ArrayList<>(); - SearchConditionOption yesOption = new SearchConditionOption("0", "否"); - SearchConditionOption noOption = new SearchConditionOption("1", "是"); - isKeyOptions.add(yesOption); - isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); - isKeyItem.setDetailtype(3); - - conditionItems.add(jobNoItem); - conditionItems.add(jobNameItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); - conditionItems.add(parentJobBrowserItem); - conditionItems.add(isKeyItem); - - addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendTitle.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue()))); + } + } apiDatas.put("condition", addGroups); return apiDatas; } @@ -335,12 +275,15 @@ public class JobServiceImpl extends Service implements JobService { buttonsMap.put("hasSave", true); List addGroups = new ArrayList<>(); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); - } else { - addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, viewAttr, id, groupId))); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + if (CollectionUtils.isNotEmpty(extendTitles)) { + for (ExtendTitlePO extendTitle : extendTitles) { + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_JOB : JCL_ORG_JOBEXT, viewAttr, id, extendTitle.getId().toString(), "job_no"))); + } } - HashMap resultMap = new HashMap<>(); resultMap.put("buttons", buttonsMap); resultMap.put("conditions", addGroups); @@ -348,15 +291,15 @@ public class JobServiceImpl extends Service implements JobService { // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_JOBEXT)); // 处理明细表 - List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, id, viewAttr, false); + List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId),JCL_ORG_JOBEXT_DT1, id, viewAttr, false); Map tableMap = new HashMap<>(); tableMap.put("hide", false); tableMap.put("tabname", "职等职级"); Map tabinfoMap = new HashMap<>(); List infoPOList = new ArrayList<>(); - infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customBrowserId("gradeBrowser").build()); - infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customBrowserId("levelBrowser").build()); + infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customValue("[\"browser\",{\"value\":\"161\",\"valueSpan\":\"自定义单选\",\"replaceDatas\":[{\"id\":\"161\",\"name\":\"自定义单选\"}]},{\"value\":\"gradeBrowser\",\"valueSpan\":\"职级浏览按钮\",\"replaceDatas\":[{\"showname\":\"gradeBrowser\",\"shownamespan\":\"gradeBrowser\",\"namespan\":\"职级浏览按钮\",\"name\":\"职级浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"gradeBrowser\",\"id\":\"gradeBrowser\"}]}]").build()); + infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customValue("[\"browser\",{\"value\":\"162\",\"valueSpan\":\"自定义多选\",\"replaceDatas\":[{\"id\":\"162\",\"name\":\"自定义多选\"}]},{\"value\":\"LevelBrowser\",\"valueSpan\":\"职等浏览按钮\",\"replaceDatas\":[{\"showname\":\"LevelBrowser\",\"shownamespan\":\"LevelBrowser\",\"namespan\":\"职等浏览按钮\",\"name\":\"职等浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"LevelBrowser\",\"id\":\"LevelBrowser\"}]}]").build()); tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, viewAttr, false)); tabinfoMap.put("rownum", "rownum"); // 去除null 元素 @@ -377,12 +320,21 @@ public class JobServiceImpl extends Service implements JobService { } @Override - public int saveBaseForm(JobSearchParam params) { - List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); + public int saveBaseForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); + + // 处理自动编号 + searchParam.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, searchParam.getJobNo())); + List list = getJobMapper().listByNo(Util.null2String(searchParam.getJobNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); - JobPO jobPO = JobBO.convertParamsToPO(params, user.getUID()); + JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); int insertCount = getJobMapper().insertIgnoreNull(jobPO); + params.put("job_no", jobPO.getJobNo()); + params.put("is_key", jobPO.getIsKey()); + + getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", jobPO.getId()); if (null != jobPO.getSchemeId()) { // 插入明细表信息 // 根据等级方案查询职等、职级 @@ -398,46 +350,61 @@ public class JobServiceImpl extends Service implements JobService { @Override public int updateForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); String groupId = (String) params.get("viewCondition"); - JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); - jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); + searchParam.setIsKey(null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } int updateCount = 0; // 更新主表数据 - updateCount += getJobMapper().updateBaseJob(jobPO); + params.put("is_key", searchParam.getIsKey()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", searchParam.getId()); + // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, jobPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId()); // 更新明细表 - getJobDTMapper().deleteByIds(jobPO.getId()); + getJobDTMapper().deleteByIds(searchParam.getId()); int rowNum = Util.getIntValue((String) params.get("rownum")); for (int i = 0; i < rowNum; i++) { String levelId = (String) params.get("levelId_" + i); String gradeId = (String) params.get("gradeId_" + i); String levelIdspan = (String) params.get("levelIdspan_" + i); String gradeIdspan = (String) params.get("gradeIdspan_" + i); - getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(levelId).gradeId(gradeId).levelIdspan(levelIdspan).gradeIdspan(gradeIdspan).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); + getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(levelId).gradeId(gradeId).levelIdspan(levelIdspan).gradeIdspan(gradeIdspan).mainId(searchParam.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); } - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, jobPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, searchParam.getId()); return updateCount; } @Override - public int copyJobItem(long id, long departmentId) { - JobPO jobById = getJobMapper().getJobById(id); - // TODO 自动编号 - jobById.setJobNo("复制_" + jobById.getJobNo()); - jobById.setParentDept(departmentId); - return getJobMapper().insertIgnoreNull(jobById); + public int copyJobItem(String ids, String department) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); + OrganizationAssert.notBlank(department, "请指定需要复制的部门"); + int insertCount = 0; + List idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); + for (Long id : idList) { + JobPO jobById = getJobMapper().getJobById(id); + // 处理自动编号 + jobById.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobById.getJobNo(), true)); + jobById.setParentDept(Long.parseLong(department)); + insertCount += getJobMapper().insertIgnoreNull(jobById); + } + + return insertCount; } @Override public int updateForbiddenTagById(JobSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); JobPO jobPO = JobPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getJobMapper().updateForbiddenTagById(jobPO.getId(), jobPO.getForbiddenTag()); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); Collection deleteIds = new ArrayList<>(); // 递归删除子节点 @@ -462,7 +429,7 @@ public class JobServiceImpl extends Service implements JobService { */ private void buildParentDepts(DepartmentPO departmentPO, Set builderDeparts) { builderDeparts.add(departmentPO); - if (isTop(departmentPO.getParentDept())) { + if (SearchTreeUtil.isTop(departmentPO.getParentDept())) { return; } DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getParentDept()); @@ -479,7 +446,7 @@ public class JobServiceImpl extends Service implements JobService { */ private void buildParentComps(CompPO compPO, Set builderComps) { builderComps.add(compPO); - if (isTop(compPO.getParentCompany())) { + if (SearchTreeUtil.isTop(compPO.getParentCompany())) { return; } CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); @@ -488,30 +455,6 @@ public class JobServiceImpl extends Service implements JobService { } } - /** - * 获取集团 - * - * @return - */ - private SearchTree getTopGroup() { - RecordSet rs = new RecordSet(); - String sql = "select * from HrmCompany "; - rs.executeQuery(sql); - SearchTree groupTree = new SearchTree(); - groupTree.setCanClick(false); - groupTree.setCanceled(false); - groupTree.setCompanyid("1"); - groupTree.setIcon("icon-coms-LargeArea"); - groupTree.setId("0"); - groupTree.setIsVirtual("0"); - while (rs.next()) { - groupTree.setName(rs.getString("COMPANYNAME")); - } - groupTree.setSelected(false); - groupTree.setType(TYPE_GROUP); - return groupTree; - } - /** * 根据keyword查询数据 * @@ -520,14 +463,14 @@ public class JobServiceImpl extends Service implements JobService { * @param keyword * @return */ - private List getFilterCompany(String id, String type, String keyword) { - List compSearchTree = new ArrayList<>(); + private List getFilterCompany(String id, String type, String keyword) { + List searchTree = new ArrayList<>(); // 通过分部、公司 组装数据 if (StringUtil.isEmpty(id) || TYPE_COMP.equals(type)) { Long parentCompId = StringUtil.isEmpty(id) ? null : Long.parseLong(id); DepartmentPO departmentBuild = DepartmentPO.builder().deptName(keyword).parentComp(parentCompId).build(); CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).build(); - buildTreeByCompAndDept(departmentBuild, compBuild, compSearchTree); + searchTree = buildTreeByCompAndDept(departmentBuild, compBuild); } else if (TYPE_DEPT.equals(type)) { // // 查询部门信息 @@ -536,16 +479,10 @@ public class JobServiceImpl extends Service implements JobService { for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); } - List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); - // 排序,设置是否为叶子节点 - List collect = deptTrees.stream().peek(item -> - item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) - ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(collect)) { - compSearchTree.addAll(collect); - } + searchTree = SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + } - return compSearchTree; + return searchTree; } /** @@ -553,9 +490,9 @@ public class JobServiceImpl extends Service implements JobService { * * @param departmentBuild * @param compBuild - * @param compSearchTree + * @return */ - private void buildTreeByCompAndDept(DepartmentPO departmentBuild, CompPO compBuild, List compSearchTree) { + private List buildTreeByCompAndDept(DepartmentPO departmentBuild, CompPO compBuild) { List filterDeparts = getDepartmentMapper().listByFilter(departmentBuild); // 查询分部信息 List filterComps = getCompMapper().listByFilter(compBuild); @@ -563,7 +500,7 @@ public class JobServiceImpl extends Service implements JobService { for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); } - List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + List deptTrees = SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); // 添加部门的上级分部 String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(",")); if (!StringUtil.isEmpty(parentCompS)) { @@ -576,81 +513,10 @@ public class JobServiceImpl extends Service implements JobService { for (CompPO compPO : filterComps) { buildParentComps(compPO, builderComps); } - List compTrees = builderTreeMode(CompBO.buildSetToSearchTree(builderComps), deptTrees); - - // 排序,设置是否为叶子节点 - List collect = compTrees.stream().peek(item -> - item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) - ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(collect)) { - compSearchTree.addAll(collect); - } - } - - /** - * 判断是为顶层数据 - * - * @param pid - * @return - */ - private boolean isTop(Long pid) { - return null == pid; - } - - /** - * 判断是为顶层数据 - * - * @param pid - * @return - */ - private boolean isTop(String pid) { - return StringUtil.isEmpty(pid) || "0".equals(pid); + return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps), deptTrees); } - /** - * 处理树层级 - * - * @param treeList - * @return - */ - private List builderTreeMode(List treeList) { - Map> collects = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); - return treeList.stream().peek(e -> e.setSubs(collects.get(e.getId()))).peek(item -> { - if (CollectionUtils.isNotEmpty(item.getSubs())) { - item.setIsParent(true); - } - }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); - } - - /** - * 组合分部、部门层级关系 - * - * @param treeList - * @param deptTrees - * @return - */ - private List builderTreeMode(List treeList, List deptTrees) { - Map> parentMap = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); - Map> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp)); - boolean isAdd = !childMap.isEmpty(); - return treeList.stream().peek(e -> { - List treeNodes = new ArrayList<>(); - List nodes = parentMap.get(e.getId()); - if (CollectionUtils.isNotEmpty(nodes)) { - treeNodes.addAll(nodes); - } - if (isAdd && CollectionUtils.isNotEmpty(childMap.get(e.getId()))) { - treeNodes.addAll(childMap.get(e.getId())); - } - e.setSubs(treeNodes); - }).peek(item -> { - if (CollectionUtils.isNotEmpty(item.getSubs())) { - item.setIsParent(true); - } - }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); - } - /** * 是否有搜索查询 * @@ -672,112 +538,6 @@ public class JobServiceImpl extends Service implements JobService { && null == jobPO.getForbiddenTag(); } - /** - * 基本信息基础表单 - * - * @param viewAttr - * @param id - * @return - */ - private List getBaseForm(int viewAttr, long id) { - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "jobNo"); - // 名称 - SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNameItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); - // 岗位序列 - SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); - // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); - // 上级岗位 - SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); - // 是否关键岗 - List isKeyOptions = new ArrayList<>(); - SearchConditionOption yesOption = new SearchConditionOption("0", "否"); - SearchConditionOption noOption = new SearchConditionOption("1", "是"); - isKeyOptions.add(yesOption); - isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); - isKeyItem.setDetailtype(3); - // 工作地点 - SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); - // 工作概述 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作概述", "description"); - // 任职职责 - SearchConditionItem workDutyItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "任职职责", "workDuty"); - // 工作权限 - SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作权限", "workAuthority"); - - conditionItems.add(jobNoItem); - conditionItems.add(jobNameItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); - conditionItems.add(parentJobBrowserItem); - conditionItems.add(isKeyItem); - conditionItems.add(workplaceItem); - conditionItems.add(descriptionItem); - conditionItems.add(workDutyItem); - conditionItems.add(workAuthorityItem); - - - // 编辑、查看状态赋值,设置只读状态 - JobPO jobPO = getJobMapper().getJobById(id); - OrganizationAssert.notNull(jobPO, "数据不存在或数据已删除"); - jobNoItem.setValue(jobPO.getJobNo()); - jobNameItem.setValue(jobPO.getJobName()); - isKeyItem.setValue(null == jobPO.getIsKey() ? "0" : jobPO.getIsKey() + ""); - workplaceItem.setValue(jobPO.getWorkplace()); - descriptionItem.setValue(jobPO.getDescription()); - workDutyItem.setValue(jobPO.getWorkDuty()); - workAuthorityItem.setValue(jobPO.getWorkAuthority()); - - if (null != jobPO.getParentComp()) { - BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); - List> compMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(jobPO.getParentComp().toString()).build().getIds()); - browserBean.setReplaceDatas(compMaps); - parentCompBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getParentDept()) { - BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); - List> deptMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(jobPO.getParentDept().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - parentDeptBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getSequenceId()) { - BrowserBean browserBean = sequenceBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSequenceMapper().listSequencesByIds(DeleteParam.builder().ids(jobPO.getSequenceId().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - sequenceBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getSchemeId()) { - BrowserBean browserBean = schemeBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(jobPO.getSchemeId().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - schemeBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getParentJob()) { - BrowserBean browserBean = parentJobBrowserItem.getBrowserConditionParam(); - List> deptMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(jobPO.getParentJob().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - schemeBrowserItem.setBrowserConditionParam(browserBean); - } - - // 查看,全部置为只读 - if (1 == viewAttr) { - for (SearchConditionItem item : conditionItems) { - item.setViewAttr(viewAttr); - } - } - return conditionItems; - } - /** * 获取待删除数据的子级元素 * @@ -791,4 +551,5 @@ public class JobServiceImpl extends Service implements JobService { getChildIds(childIds, deleteIds); } } + } diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 30593d7d..01ff55dd 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -15,10 +15,7 @@ import com.engine.organization.entity.scheme.vo.LevelTableVO; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.service.LevelService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -30,13 +27,15 @@ import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 */ public class LevelServiceImpl extends Service implements LevelService { + private static final String RIGHT_NAME = "Level:All"; + private LevelMapper getLevelMapper() { return MapperProxyFactory.getProxy(LevelMapper.class); } @@ -47,6 +46,12 @@ public class LevelServiceImpl extends Service implements LevelService { @Override public Map listPage(Map params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } // 刷新引用状态 RefreshIsUsedUtil.RefreshLevel("jcl_org_level"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, LevelTableVO.class); @@ -55,12 +60,14 @@ public class LevelServiceImpl extends Service implements LevelService { WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int saveLevel(LevelSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getLevelMapper().listByNo(Util.null2String(param.getLevelNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); @@ -69,18 +76,21 @@ public class LevelServiceImpl extends Service implements LevelService { @Override public int updateLevel(LevelSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); return getLevelMapper().updateLevel(levelPO); } @Override public int updateForbiddenTagById(LevelSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); LevelPO levelPO = LevelPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getLevelMapper().updateForbiddenTagById(levelPO); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getLevelMapper().deleteByIds(ids); } @@ -103,6 +113,7 @@ public class LevelServiceImpl extends Service implements LevelService { @Override public Map getLevelForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); diff --git a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java index 1c27612e..1a0f7565 100644 --- a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java @@ -14,6 +14,7 @@ import com.engine.organization.entity.postion.vo.PostInfoTableVO; import com.engine.organization.mapper.post.PostInfoMapper; import com.engine.organization.mapper.post.PostMapper; import com.engine.organization.service.PostInfoService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; @@ -28,13 +29,15 @@ import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 */ public class PostInfoServiceImpl extends Service implements PostInfoService { + private static final String RIGHT_NAME = "PostInfo:All"; + private PostInfoMapper getPostInfoMapper() { return MapperProxyFactory.getProxy(PostInfoMapper.class); } @@ -45,18 +48,26 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { @Override public Map listPage(Map params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } OrganizationWeaTable table = new OrganizationWeaTable<>(user, PostInfoTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int savePostInfo(PostInfoSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getPostInfoMapper().listByNo(Util.null2String(param.getPostInfoNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); PostInfoPO postInfoPO = PostInfoDTO.convertParamToPO(param, (long) user.getUID()); @@ -65,12 +76,14 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { @Override public int updatePostInfo(PostInfoSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); PostInfoPO postInfoPO = PostInfoDTO.convertParamToPO(param, (long) user.getUID()); return getPostInfoMapper().updatePostInfo(postInfoPO); } @Override public int updateForbiddenTagById(PostInfoSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); PostInfoPO postInfoPO = PostInfoPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getPostInfoMapper().updateForbiddenTagById(postInfoPO); } @@ -78,6 +91,7 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getPostInfoMapper().deleteByIds(ids); } @@ -100,6 +114,7 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { @Override public Map getPostInfoForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -180,4 +195,5 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { } return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/PostServiceImpl.java b/src/com/engine/organization/service/impl/PostServiceImpl.java index 2f2561e5..9bb6f26a 100644 --- a/src/com/engine/organization/service/impl/PostServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.organization.entity.postion.dto.PostDTO; import com.engine.organization.entity.postion.po.PostPO; import com.engine.organization.mapper.post.PostMapper; import com.engine.organization.service.PostService; +import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -17,37 +18,43 @@ import weaver.general.Util; import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 */ public class PostServiceImpl extends Service implements PostService { + private static final String RIGHT_NAME = "Post:All"; + private PostMapper getPostMapper() { return MapperProxyFactory.getProxy(PostMapper.class); } @Override public int savePost(PostPO postPO) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getPostMapper().listByNo(Util.null2String(postPO.getPostNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); - return getPostMapper().insertIgnoreNull(PostDTO.convertPO(postPO,user.getUID())); + return getPostMapper().insertIgnoreNull(PostDTO.convertPO(postPO, user.getUID())); } @Override public int updatePost(PostPO postPO) { - return getPostMapper().updatePost(PostDTO.convertPO(postPO,user.getUID())); + HasRightUtil.hasRight(user, RIGHT_NAME, false); + return getPostMapper().updatePost(PostDTO.convertPO(postPO, user.getUID())); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getPostMapper().deleteByIds(ids); } @Override public Map getPostForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -82,4 +89,6 @@ public class PostServiceImpl extends Service implements PostService { ArrayList treeDataList = getPostMapper().getTreeData(); return TreeData.builder().children(treeDataList).title("全部类型").key("-1").build(); } + + } diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index 8175fc31..3ee3c742 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -11,10 +11,7 @@ import com.engine.organization.entity.scheme.po.SchemePO; import com.engine.organization.entity.scheme.vo.SchemeTableVO; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.service.SchemeService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -26,18 +23,27 @@ import java.util.*; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ public class SchemeServiceImpl extends Service implements SchemeService { + private static final String RIGHT_NAME = "Scheme:All"; + private SchemeMapper getSchemeMapper() { return MapperProxyFactory.getProxy(SchemeMapper.class); } + @Override public Map listPage(Map params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } // 刷新引用状态 RefreshIsUsedUtil.RefreshScheme("jcl_org_scheme"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SchemeTableVO.class); @@ -46,11 +52,13 @@ public class SchemeServiceImpl extends Service implements SchemeService { WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public Map save(SchemeSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apidatas = new HashMap<>(16); List list = getSchemeMapper().listByNo(Util.null2String(param.getSchemeNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); @@ -61,6 +69,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map updateScheme(SchemeSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apidatas = new HashMap<>(); SchemePO schemePO = SchemeDTO.convertParamToPO(param, (long) user.getUID()); getSchemeMapper().updateScheme(schemePO); @@ -69,6 +78,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public void updateForbiddenTagById(SchemeSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); SchemePO schemePO = SchemePO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); getSchemeMapper().updateForbiddenTagById(schemePO); } @@ -76,6 +86,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public void deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); getSchemeMapper().deleteByIds(ids); } @@ -98,6 +109,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map getSchemeForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -153,4 +165,5 @@ public class SchemeServiceImpl extends Service implements SchemeService { return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index 92439f4e..01aae2e1 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -12,13 +12,10 @@ import com.engine.organization.entity.sequence.dto.SequenceDTO; import com.engine.organization.entity.sequence.param.SequenceSearchParam; import com.engine.organization.entity.sequence.po.SequencePO; import com.engine.organization.entity.sequence.vo.SequenceTableVO; -import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.mapper.scheme.SchemeMapper; +import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.service.SequenceService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -30,13 +27,15 @@ import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 */ public class SequenceServiceImpl extends Service implements SequenceService { + private static final String RIGHT_NAME = "Sequence:All"; + private SequenceMapper getSequenceMapper() { return MapperProxyFactory.getProxy(SequenceMapper.class); } @@ -47,6 +46,12 @@ public class SequenceServiceImpl extends Service implements SequenceService { @Override public Map listPage(Map params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } // 刷新引用状态 RefreshIsUsedUtil.RefreshSequence("jcl_org_sequence"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SequenceTableVO.class); @@ -55,12 +60,14 @@ public class SequenceServiceImpl extends Service implements SequenceService { WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int saveSequence(SequenceSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getSequenceMapper().listByNo(Util.null2String(param.getSequenceNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); SequencePO sequencePO = SequenceDTO.convertParamToPO(param, (long) user.getUID()); @@ -69,18 +76,21 @@ public class SequenceServiceImpl extends Service implements SequenceService { @Override public int updateSequence(SequenceSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); SequencePO sequencePO = SequenceDTO.convertParamToPO(param, (long) user.getUID()); return getSequenceMapper().updateSequence(sequencePO); } @Override public int updateForbiddenTagById(SequenceSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); SequencePO sequencePO = SequencePO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getSequenceMapper().updateForbiddenTagById(sequencePO); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getSequenceMapper().deleteByIds(ids); } @@ -103,6 +113,7 @@ public class SequenceServiceImpl extends Service implements SequenceService { @Override public Map getSequenceForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -190,4 +201,5 @@ public class SequenceServiceImpl extends Service implements SequenceService { } return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index ddd7ab31..766b161d 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -15,13 +15,11 @@ import com.engine.organization.entity.staff.vo.StaffPlanTableVO; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.service.StaffPlanService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; @@ -29,13 +27,15 @@ import weaver.general.Util; import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 */ public class StaffPlanServiceImpl extends Service implements StaffPlanService { + private static final String RIGHT_NAME = "StaffPlan:All"; + private StaffPlanMapper getStaffPlanMapper() { return MapperProxyFactory.getProxy(StaffPlanMapper.class); } @@ -46,6 +46,12 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { @Override public Map listPage(StaffPlanSearchParam params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } // 刷新引用状态 RefreshIsUsedUtil.RefreshStaffPlan("jcl_org_staffplan"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffPlanTableVO.class); @@ -55,11 +61,13 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int saveStaffPlan(StaffPlanSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getStaffPlanMapper().listByNo(Util.null2String(param.getPlanNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); @@ -68,18 +76,21 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { @Override public int updateStaffPlan(StaffPlanSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); return getStaffPlanMapper().updateStaffPlan(staffPlanPO); } @Override public int updateForbiddenTagById(StaffPlanSearchParam params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); StaffPlanPO staffPlanPO = StaffPlanPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); return getStaffPlanMapper().updateForbiddenTagById(staffPlanPO); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getStaffPlanMapper().deleteByIds(ids); } @@ -101,7 +112,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { // 时间结束 SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间结束", "timeEnd"); // 适用公司 - SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "适用公司", "162", "companyId", "compBrowser"); + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "适用公司", "161", "companyId", "compBrowser"); // 说明 SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); // 状态 @@ -128,6 +139,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { @Override public Map getForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -160,9 +172,9 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { OrganizationAssert.notNull(staffPlanPO, "选择的数据不存在,或数据已删除"); planNoItem.setValue(staffPlanPO.getPlanNo()); planNameItem.setValue(staffPlanPO.getPlanName()); - planYearItem.setValue(staffPlanPO.getPlanYear()); - timeStartItem.setValue(staffPlanPO.getTimeStart()); - timeEndItem.setValue(staffPlanPO.getTimeEnd()); + planYearItem.setValue(staffPlanPO.getPlanYear() + ""); + timeStartItem.setValue(DateUtil.getDate(staffPlanPO.getTimeStart(),"yyyy-MM-dd")); + timeEndItem.setValue(DateUtil.getDate(staffPlanPO.getTimeEnd(),"yyyy-MM-dd")); BrowserBean browserBean = companyIdtItem.getBrowserConditionParam(); List> maps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPlanPO.getCompanyId()).build().getIds()); @@ -216,13 +228,13 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { } Date timeStart = staffPlanPO.getTimeStart(); if (null != timeStart) { - sqlWhere += " AND t.time_start = '" + timeStart + "'"; + sqlWhere += " AND t.time_start >= '" + timeStart + "'"; } Date timeEnd = staffPlanPO.getTimeEnd(); if (null != timeEnd) { - sqlWhere += " AND t.time_end = '" + timeEnd + "'"; + sqlWhere += " AND t.time_end <= '" + timeEnd + "'"; } - String companyId = staffPlanPO.getDescription(); + String companyId = staffPlanPO.getCompanyId(); if (StringUtils.isNotBlank(companyId)) { sqlWhere += " AND t.companyId = '" + companyId + "'"; } @@ -237,4 +249,5 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { } return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 6704fb45..feae82bd 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -11,17 +11,16 @@ import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.staff.bo.StaffBO; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.entity.staff.po.StaffPO; +import com.engine.organization.entity.staff.po.StaffsPO; import com.engine.organization.entity.staff.vo.StaffTableVO; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.mapper.staff.StaffsMapper; import com.engine.organization.service.StaffService; -import com.engine.organization.util.MenuBtn; -import com.engine.organization.util.OrganizationAssert; -import com.engine.organization.util.OrganizationFormItemUtil; -import com.engine.organization.util.RefreshIsUsedUtil; +import com.engine.organization.util.*; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -32,12 +31,15 @@ import weaver.general.Util; import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 */ public class StaffServiceImpl extends Service implements StaffService { + + private static final String RIGHT_NAME = "Staff:All"; + private StaffMapper getStaffMapper() { return MapperProxyFactory.getProxy(StaffMapper.class); } @@ -61,33 +63,60 @@ public class StaffServiceImpl extends Service implements StaffService { @Override public Map listPage(StaffSearchParam params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } // 刷新引用状态 RefreshIsUsedUtil.RefreshStaff("jcl_org_staff"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffTableVO.class); - StaffPO staffPO = StaffBO.convertParamToPO(params, (long) user.getUID()); - String sqlWhere = buildSqlWhere(staffPO); + String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - return result.getResultMap(); + resultMap.putAll(result.getResultMap()); + return resultMap; } @Override public int saveStaff(StaffSearchParam param) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); return getStaffMapper().insertIgnoreNull(staffPO); } @Override public int updateStaff(StaffSearchParam param) { - StaffPO staffPlanPO = StaffBO.convertParamToPO(param, (long) user.getUID()); - return getStaffMapper().updateStaff(staffPlanPO); + HasRightUtil.hasRight(user, RIGHT_NAME, false); + StaffPO staffByID = getStaffMapper().getStaffByID(param.getId()); + StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); + + Integer changeNum = param.getChangeNum(); + if (null == changeNum) { + // 插入明细表数据 + StaffsPO staffsPO = StaffsPO.builder().staffId(staffPO.getId()).businessType(1).changeNum(staffPO.getStaffNum() - staffByID.getStaffNum()).businessSource(1).build(); + MapperProxyFactory.getProxy(StaffsMapper.class).insertIgnoreNull(staffsPO); + + } else { + // 插入明细表数据 + StaffsPO staffsPO = StaffsPO.builder().staffId(staffPO.getId()).businessType(2).changeNum(changeNum).businessSource(1).build(); + MapperProxyFactory.getProxy(StaffsMapper.class).insertIgnoreNull(staffsPO); + // 更新编制表 + staffPO.setStaffNum(staffPO.getStaffNum() + changeNum); + } + OrganizationAssert.isFalse(staffPO.getStaffNum() < 0, "调整后编制数小于0,请更正"); + StaffBO.buildStaffDesc(staffPO); + // 更新主表 + return getStaffMapper().updateStaff(staffPO); } @Override public int deleteByIds(Collection ids) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getStaffMapper().deleteByIds(ids); } @@ -144,6 +173,7 @@ public class StaffServiceImpl extends Service implements StaffService { @Override public Map getForm(Map params) { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); @@ -161,7 +191,7 @@ public class StaffServiceImpl extends Service implements StaffService { jobIdItem.setRules("required|string"); // 编制数 SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "编制数", "staffNum"); - staffNumItem.setRules("required|string"); + staffNumItem.setRules("required"); // 控制策略 List selectOptions = new ArrayList<>(); SearchConditionOption option1 = new SearchConditionOption("1", "弱控"); @@ -173,6 +203,8 @@ public class StaffServiceImpl extends Service implements StaffService { SearchConditionItem controlPolicyItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "控制策略", "controlPolicy"); controlPolicyItem.setViewAttr(3); controlPolicyItem.setRules("required|string"); + SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "描述说明", "description"); + // 编辑状态下赋值操作 String id = Util.null2String(params.get("id")); @@ -186,22 +218,23 @@ public class StaffServiceImpl extends Service implements StaffService { planIdItem.setBrowserConditionParam(planIdItemBean); BrowserBean compIdItemBean = compIdItem.getBrowserConditionParam(); - List> compIdMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> compIdMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPO.getCompId().toString()).build().getIds()); compIdItemBean.setReplaceDatas(compIdMaps); compIdItem.setBrowserConditionParam(compIdItemBean); BrowserBean deptIdItemBean = deptIdItem.getBrowserConditionParam(); - List> deptIdMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> deptIdMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(staffPO.getDeptId().toString()).build().getIds()); deptIdItemBean.setReplaceDatas(deptIdMaps); deptIdItem.setBrowserConditionParam(deptIdItemBean); BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); - List> jobIdMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> jobIdMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(staffPO.getJobId().toString()).build().getIds()); jobIdItemBean.setReplaceDatas(jobIdMaps); jobIdItem.setBrowserConditionParam(jobIdItemBean); staffNumItem.setValue(staffPO.getStaffNum()); - controlPolicyItem.setValue(staffPO.getControlPolicy()); + controlPolicyItem.setValue(staffPO.getControlPolicy() + ""); + descriptionItem.setValue(staffPO.getDescription()); } selectItems.add(planIdItem); selectItems.add(compIdItem); @@ -209,6 +242,17 @@ public class StaffServiceImpl extends Service implements StaffService { selectItems.add(jobIdItem); selectItems.add(staffNumItem); selectItems.add(controlPolicyItem); + selectItems.add(descriptionItem); + String operateType = (String) params.get("operateType"); + if ("2".equals(operateType)) { + selectItems.forEach(item -> { + item.setViewAttr(1); + item.setRules(null); + }); + SearchConditionItem changeNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "调整数量", "changeNum"); + staffNumItem.setRules("required"); + selectItems.add(changeNumItem); + } addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); apiDatas.put("condition", addGroups); @@ -223,58 +267,63 @@ public class StaffServiceImpl extends Service implements StaffService { /** * 查询条件 * - * @param staffPO + * @param param * @return */ - private String buildSqlWhere(StaffPO staffPO) { + private String buildSqlWhere(StaffSearchParam param) { DBType dbType = DBType.get(new RecordSet().getDBType()); String sqlWhere = " where t.delete_type ='0' "; - Long planId = staffPO.getPlanId(); + Long planId = param.getPlanId(); if (null != planId) { sqlWhere += " AND t.plan_id = '" + planId + "'"; } - Long compId = staffPO.getCompId(); + Long compId = param.getCompId(); if (null != compId) { sqlWhere += " AND t.comp_id = '" + compId + "'"; } - Long deptId = staffPO.getDeptId(); + Long deptId = param.getDeptId(); if (null != deptId) { sqlWhere += " AND t.dept_id = '" + deptId + "'"; } - Long jobId = staffPO.getJobId(); + Long jobId = param.getJobId(); if (null != jobId) { sqlWhere += " AND t.job_id = '" + jobId + "'"; } - Integer staffNum = staffPO.getStaffNum(); + Integer staffNum = param.getStaffNum(); if (null != staffNum) { sqlWhere += " AND t.staff_num = '" + staffNum + "'"; } - Integer controlPolicy = staffPO.getControlPolicy(); + Integer controlPolicy = param.getControlPolicy(); if (null != controlPolicy) { sqlWhere += " AND t.control_policy = '" + controlPolicy + "'"; } - Integer permanentNum = staffPO.getPermanentNum(); + Integer permanentNum = param.getPermanentNum(); if (null != permanentNum) { sqlWhere += " AND t.permanent_num = '" + permanentNum + "'"; } - Integer freezeNum = staffPO.getFreezeNum(); + Integer freezeNum = param.getFreezeNum(); if (null != freezeNum) { sqlWhere += " AND t.freeze_num = '" + freezeNum + "'"; } - Integer lackStatus = staffPO.getLackStatus(); + Integer lackStatus = param.getLackStatus(); if (null != lackStatus) { sqlWhere += " AND t.lack_status = '" + lackStatus + "'"; } - String staffDesc = staffPO.getStaffDesc(); + String staffDesc = param.getStaffDesc(); if (StringUtils.isNotBlank(staffDesc)) { sqlWhere += " AND t.staff_desc " + dbType.like(staffDesc); } - String description = staffPO.getDescription(); + String description = param.getDescription(); if (StringUtils.isNotBlank(description)) { sqlWhere += " AND t.description " + dbType.like(description); } + String staffName = param.getStaffName(); + if (StringUtils.isNotBlank(staffName)) { + sqlWhere += " AND t.plan_id in ( select id from jcl_org_staffplan where plan_name " + dbType.like(staffName) + ") "; + } return sqlWhere; } + } diff --git a/src/com/engine/organization/service/impl/TestServiceImpl.java b/src/com/engine/organization/service/impl/TestServiceImpl.java index 79fe00aa..c4646859 100644 --- a/src/com/engine/organization/service/impl/TestServiceImpl.java +++ b/src/com/engine/organization/service/impl/TestServiceImpl.java @@ -2,15 +2,14 @@ package com.engine.organization.service.impl; import com.engine.organization.entity.po.Demo; import com.engine.organization.service.TestService; -import com.weaverboot.frame.ioc.anno.classAnno.WeaIocService; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/28 * @Version V1.0 **/ -@WeaIocService +//@WeaIocService public class TestServiceImpl implements TestService { @Override diff --git a/src/com/engine/organization/transmethod/CompTransMethod.java b/src/com/engine/organization/transmethod/CompTransMethod.java index a6e5bec3..cbe1df11 100644 --- a/src/com/engine/organization/transmethod/CompTransMethod.java +++ b/src/com/engine/organization/transmethod/CompTransMethod.java @@ -9,7 +9,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/transmethod/DepartmentTransMethod.java b/src/com/engine/organization/transmethod/DepartmentTransMethod.java index 8174029b..d490418f 100644 --- a/src/com/engine/organization/transmethod/DepartmentTransMethod.java +++ b/src/com/engine/organization/transmethod/DepartmentTransMethod.java @@ -9,7 +9,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java index 3c50bc77..76d3ae1e 100644 --- a/src/com/engine/organization/transmethod/JobTransMethod.java +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -1,7 +1,15 @@ package com.engine.organization.transmethod; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -9,18 +17,18 @@ package com.engine.organization.transmethod; public class JobTransMethod { public static String getSpanById(String planId) { - //JobMapper compMapper = MapperProxyFactory.getProxy(CompMapper.class); - //List> maps = compMapper.listCompsByIds(DeleteParam.builder().ids(planId).build().getIds()); - //String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); - //return names; - return ""; + JobMapper jobMapper = MapperProxyFactory.getProxy(JobMapper.class); + List> maps = jobMapper.listJobsByIds(DeleteParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; } public static String getIsKeySpan(String isKey) { - if ("1".equals(isKey)) + if ("1".equals(isKey)) { return "是"; - else + } else { return "否"; + } } } diff --git a/src/com/engine/organization/transmethod/LevelTransMethod.java b/src/com/engine/organization/transmethod/LevelTransMethod.java index aa5fb18d..d6ac9ee7 100644 --- a/src/com/engine/organization/transmethod/LevelTransMethod.java +++ b/src/com/engine/organization/transmethod/LevelTransMethod.java @@ -9,7 +9,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java index deaedfeb..f15bd9f0 100644 --- a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java +++ b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java @@ -3,13 +3,14 @@ package com.engine.organization.transmethod; import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 @@ -22,4 +23,11 @@ public class StaffPlanTransMethod { String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return names; } + + public static String getFormatDateString(String dateStr) { + if (StringUtils.isNotBlank(dateStr)) { + return dateStr.substring(0, 10); + } + return ""; + } } diff --git a/src/com/engine/organization/transmethod/StaffTransMethod.java b/src/com/engine/organization/transmethod/StaffTransMethod.java new file mode 100644 index 00000000..88949cbe --- /dev/null +++ b/src/com/engine/organization/transmethod/StaffTransMethod.java @@ -0,0 +1,28 @@ +package com.engine.organization.transmethod; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/07 + * @version: 1.0 + */ +public class StaffTransMethod { + public static String getLackSpan(String lackStatus) { + String lackSpan = ""; + switch (lackStatus) { + case "1": + lackSpan = "缺编"; + break; + case "2": + lackSpan = "满员"; + break; + case "3": + lackSpan = "超编"; + break; + default: + break; + + } + return lackSpan; + } +} diff --git a/src/com/engine/organization/util/ConfigTrans.java b/src/com/engine/organization/util/ConfigTrans.java index f97eb711..0efbc1b9 100644 --- a/src/com/engine/organization/util/ConfigTrans.java +++ b/src/com/engine/organization/util/ConfigTrans.java @@ -6,7 +6,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/27 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/HasRightUtil.java b/src/com/engine/organization/util/HasRightUtil.java new file mode 100644 index 00000000..dfb08ed6 --- /dev/null +++ b/src/com/engine/organization/util/HasRightUtil.java @@ -0,0 +1,29 @@ +package com.engine.organization.util; + +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/07 + * @version: 1.0 + */ +public class HasRightUtil { + + /** + * 判断是否拥有对应权限 + * + * @param user + * @param rightName + * @param isReturnFalse + * @return + */ + public static boolean hasRight(User user, String rightName, boolean isReturnFalse) { + boolean hasRight = HrmUserVarify.checkUserRight("Scheme:All", user); + if (!isReturnFalse) { + OrganizationAssert.isTrue(hasRight, "暂无权限访问"); + } + return hasRight; + } +} diff --git a/src/com/engine/organization/util/HrmI18nUtil.java b/src/com/engine/organization/util/HrmI18nUtil.java index 39f81790..ad67f0d3 100644 --- a/src/com/engine/organization/util/HrmI18nUtil.java +++ b/src/com/engine/organization/util/HrmI18nUtil.java @@ -2,7 +2,7 @@ package com.engine.organization.util; /** * @Author weaver_cl - * @Description: TODO 多语言工具类 + * @description: 多语言工具类 * @Date 2022/3/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/LogAspect.java b/src/com/engine/organization/util/LogAspect.java index 8962dcb6..41be247c 100644 --- a/src/com/engine/organization/util/LogAspect.java +++ b/src/com/engine/organization/util/LogAspect.java @@ -17,7 +17,7 @@ import java.util.concurrent.Executors; /** * @Author weaver_cl - * @Description: TODO 日志切面操作 + * @description: 日志切面操作 * @Date 2022/4/27 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/MenuBtn.java b/src/com/engine/organization/util/MenuBtn.java index cad98205..b95ad66d 100644 --- a/src/com/engine/organization/util/MenuBtn.java +++ b/src/com/engine/organization/util/MenuBtn.java @@ -113,5 +113,53 @@ public class MenuBtn { return btnDatas; } + /** + * 获取常用按钮列表 + * @return + */ + public static Map getDatasNoBtnColum() { + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + // 显示列定制 + rightMenuList.add(MenuBtn.rightMenu_btnColumn()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + + /** + * 获取常用按钮列表 + * @return + */ + public static Map getDatasHasCopy() { + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + // 复制 + topMenuList.add(MenuBtn.topMenu_copy()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 复制 + rightMenuList.add(MenuBtn.rightMenu_copy()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + } diff --git a/src/com/engine/organization/util/OrganizationAssert.java b/src/com/engine/organization/util/OrganizationAssert.java index eb3e9368..b25e1d96 100644 --- a/src/com/engine/organization/util/OrganizationAssert.java +++ b/src/com/engine/organization/util/OrganizationAssert.java @@ -9,7 +9,7 @@ import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/OrganizationEnumUtil.java b/src/com/engine/organization/util/OrganizationEnumUtil.java new file mode 100644 index 00000000..9eaecc3f --- /dev/null +++ b/src/com/engine/organization/util/OrganizationEnumUtil.java @@ -0,0 +1,44 @@ +package com.engine.organization.util; + +import com.engine.organization.enums.BaseEnum; +import org.apache.commons.lang.StringUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @description: + * @Date 2022/6/14 + * @Version V1.0 + **/ +public class OrganizationEnumUtil { + /** + * 根据枚举的value获取枚举对象 + * + * @param value 枚举中的value + * @param list + * @param T + * @param + * @return + */ + @SuppressWarnings("unchecked") + public static T enumMatchByValue(Integer value, BaseEnum[] list, Class> T) { + return (T) Arrays.stream(list).filter(item -> Objects.equals(item.getValue(), value)).findFirst().get(); + } + + /** + * 枚举数组转字符串 + * + * @param list + * @return + */ + public static String enumArrToString(BaseEnum[] list) { + List collect = Arrays.stream(list).map(item -> String.valueOf(item.getValue())).collect(Collectors.toList()); + return StringUtils.join(collect, ","); + } + + +} diff --git a/src/com/engine/organization/util/OrganizationFormItemUtil.java b/src/com/engine/organization/util/OrganizationFormItemUtil.java index 4e468e57..3096622e 100644 --- a/src/com/engine/organization/util/OrganizationFormItemUtil.java +++ b/src/com/engine/organization/util/OrganizationFormItemUtil.java @@ -14,7 +14,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/RefreshIsUsedUtil.java b/src/com/engine/organization/util/RefreshIsUsedUtil.java index c37cbc3d..5f256ebd 100644 --- a/src/com/engine/organization/util/RefreshIsUsedUtil.java +++ b/src/com/engine/organization/util/RefreshIsUsedUtil.java @@ -16,7 +16,7 @@ import java.util.Objects; import java.util.stream.Collectors; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/06/01 * @version: 1.0 diff --git a/src/com/engine/organization/util/coderule/CodeRuleUtil.java b/src/com/engine/organization/util/coderule/CodeRuleUtil.java new file mode 100644 index 00000000..465b4fbc --- /dev/null +++ b/src/com/engine/organization/util/coderule/CodeRuleUtil.java @@ -0,0 +1,43 @@ +package com.engine.organization.util.coderule; + +import com.engine.hrm.entity.RuleCodeType; +import com.engine.hrm.util.CodeRuleManager; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/06 + * @version: 1.0 + */ +public class CodeRuleUtil { + /** + * 自动编号 + * + * @param ruleCodeType + * @param code + * @return + */ + public static String generateCode(RuleCodeType ruleCodeType, String code) { + try { + return CodeRuleManager.getCodeRuleManager().generateRuleCode(ruleCodeType, code); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * 复制过程 自动生成编号 + * + * @param ruleCodeType + * @param code + * @param isCopy + * @return + */ + public static String generateCode(RuleCodeType ruleCodeType, String code, boolean isCopy) { + if (isCopy) { + return generateCode(ruleCodeType, code); + } else { + return generateCode(ruleCodeType, code + "_cp"); + } + } +} diff --git a/src/com/engine/organization/util/response/ReturnResult.java b/src/com/engine/organization/util/response/ReturnResult.java index 81e7567c..f011e61f 100644 --- a/src/com/engine/organization/util/response/ReturnResult.java +++ b/src/com/engine/organization/util/response/ReturnResult.java @@ -2,7 +2,7 @@ package com.engine.organization.util.response; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/engine/organization/util/tree/SearchTreeUtil.java b/src/com/engine/organization/util/tree/SearchTreeUtil.java new file mode 100644 index 00000000..763eea85 --- /dev/null +++ b/src/com/engine/organization/util/tree/SearchTreeUtil.java @@ -0,0 +1,146 @@ +package com.engine.organization.util.tree; + +import com.api.hrm.bean.TreeNode; +import com.engine.organization.entity.searchtree.SearchTree; +import org.apache.commons.collections4.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/06 + * @version: 1.0 + */ +public class SearchTreeUtil { + /** + * 左侧树 类型表示 + *

+ * 0:集团 + * 1:分部 + * 2:部门 + */ + private static final String TYPE_GROUP = "0"; + + public static Map getSearchTree(String type, List treeList) { + Map dataMap = new HashMap<>(); + SearchTree topGroup = getTopGroup(); + // 集团 + List companyList = new ArrayList<>(); + companyList.add(topGroup); + + List treeDatas = new ArrayList<>(); + // 排序,设置是否为叶子节点 + List collect = treeList.stream().peek(item -> + item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) + ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + treeDatas.addAll(collect); + } + + // 未点击,初始化树结构 + if (StringUtil.isEmpty(type)) { + dataMap.put("companys", companyList); + SearchTree rootCompany = getTopGroup(); + rootCompany.setSubs(treeDatas); + rootCompany.setIsParent(CollectionUtils.isNotEmpty(rootCompany.getSubs())); + Map rootCompanyMap = new HashMap<>(); + rootCompanyMap.put("rootCompany", rootCompany); + dataMap.put("datas", rootCompanyMap); + } else { + // 根据ID查询 + dataMap.put("datas", treeDatas); + } + return dataMap; + } + + /** + * 获取集团 + * + * @return + */ + private static SearchTree getTopGroup() { + RecordSet rs = new RecordSet(); + String sql = "select * from HrmCompany "; + rs.executeQuery(sql); + SearchTree groupTree = new SearchTree(); + groupTree.setCanClick(false); + groupTree.setCanceled(false); + groupTree.setCompanyid("1"); + groupTree.setIcon("icon-coms-LargeArea"); + groupTree.setId("0"); + groupTree.setIsVirtual("0"); + while (rs.next()) { + groupTree.setName(rs.getString("COMPANYNAME")); + } + groupTree.setSelected(false); + groupTree.setType(TYPE_GROUP); + return groupTree; + } + + /** + * 处理树层级 + * + * @param treeList + * @return + */ + public static List builderTreeMode(List treeList) { + Map> collects = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); + return treeList.stream().peek(e -> e.setSubs(collects.get(e.getId()))).peek(item -> { + if (CollectionUtils.isNotEmpty(item.getSubs())) { + item.setIsParent(true); + } + }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); + } + + /** + * 组合分部、部门层级关系 + * + * @param treeList + * @param deptTrees + * @return + */ + public static List builderTreeMode(List treeList, List deptTrees) { + Map> parentMap = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); + Map> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp)); + boolean isAdd = !childMap.isEmpty(); + return treeList.stream().peek(e -> { + List treeNodes = new ArrayList<>(); + List nodes = parentMap.get(e.getId()); + if (CollectionUtils.isNotEmpty(nodes)) { + treeNodes.addAll(nodes); + } + if (isAdd && CollectionUtils.isNotEmpty(childMap.get(e.getId()))) { + treeNodes.addAll(childMap.get(e.getId())); + } + e.setSubs(treeNodes); + }).peek(item -> { + if (CollectionUtils.isNotEmpty(item.getSubs())) { + item.setIsParent(true); + } + }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); + } + + /** + * 判断是为顶层数据 + * + * @param pid + * @return + */ + private static boolean isTop(String pid) { + return StringUtil.isEmpty(pid) || "0".equals(pid); + } + + /** + * 判断是为顶层数据 + * + * @param pid + * @return + */ + public static boolean isTop(Long pid) { + return null == pid; + } +} diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java index a9090350..23413eb6 100644 --- a/src/com/engine/organization/web/CodeSettingController.java +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -16,7 +16,7 @@ import javax.ws.rs.core.MediaType; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/30 * @Version V1.0 **/ diff --git a/src/com/engine/organization/web/CompController.java b/src/com/engine/organization/web/CompController.java index 365fcc49..fd10e420 100644 --- a/src/com/engine/organization/web/CompController.java +++ b/src/com/engine/organization/web/CompController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 @@ -57,13 +57,12 @@ public class CompController { * * @param request * @param response - * @param params * @return */ @POST @Path("/saveBaseComp") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody CompSearchParam params) { + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody Map params) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getCompWrapper(user).saveBaseComp(params)); diff --git a/src/com/engine/organization/web/DemoController.java b/src/com/engine/organization/web/DemoController.java index f8b65633..3a8b5d6e 100644 --- a/src/com/engine/organization/web/DemoController.java +++ b/src/com/engine/organization/web/DemoController.java @@ -5,7 +5,6 @@ import com.engine.organization.entity.po.Demo; import com.engine.organization.service.TestService; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.DemoWrapper; -import com.weaverboot.frame.ioc.anno.fieldAnno.WeaAutowired; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -17,11 +16,10 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; -import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ @@ -48,7 +46,7 @@ public class DemoController { /** * 方案2 基于weaverboot 实现后端架构(推荐使用) */ - @WeaAutowired + //@WeaAutowired private TestService testService; @GET diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 565e2e1f..58ee9955 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -1,10 +1,12 @@ package com.engine.organization.web; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.DeleteParam; -import com.engine.organization.entity.department.param.DeptSearchParam; -import com.engine.organization.entity.department.param.QuerySingleDeptListParam; +import com.engine.organization.entity.department.param.*; +import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.DepartmentWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -23,7 +25,7 @@ import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -46,6 +48,38 @@ public class DepartmentController { } } + @GET + @Path("/getJobListByPid") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getJobListByPid(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String parentDept = (String) map.get("parentDept"); + return ReturnResult.successed(getDepartmentWrapper(user).getJobListByPid(QuerySingleDeptListParam.builder().parentDept(Long.parseLong(parentDept)).build())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 左侧树接口 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchTree") + @Produces(MediaType.APPLICATION_JSON) + public Map getSearchTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + SearchTreeParams params = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), SearchTreeParams.class); + return getDepartmentWrapper(user).getSearchTree(params); + + } + /** * 获取list列表 * @@ -77,7 +111,7 @@ public class DepartmentController { @POST @Path("/saveBaseForm") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map params) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); @@ -226,4 +260,78 @@ public class DepartmentController { } + @GET + @Path("/getCopyForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCopyForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).getCopyForm()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/copyDepartment") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult copyDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptCopyParam copyParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).copyDepartment(copyParam)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @GET + @Path("/getMergeForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getMergeForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String id = (String) map.get("id"); + return ReturnResult.successed(getDepartmentWrapper(user).getMergeForm(Long.parseLong(id))); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/mergeDepartment") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult mergeDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DepartmentMergeParam mergeParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).mergeDepartment(mergeParam)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @GET + @Path("/getMoveForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getMoveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).getMoveForm()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/moveDepartment") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult moveDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DepartmentMoveParam moveParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).moveDepartment(moveParam)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + } diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java new file mode 100644 index 00000000..d569a9b3 --- /dev/null +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -0,0 +1,206 @@ +package com.engine.organization.web; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; +import com.engine.organization.entity.extend.param.ExtendInfoChangeParam; +import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; +import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; +import com.engine.organization.enums.ModuleTypeEnum; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.FieldDefinedWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @Author weaver_cl + * @description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +public class FieldDefinedController { + + private FieldDefinedWrapper getFieldDefinedWrapper(User user) { + return ServiceUtil.getService(FieldDefinedWrapper.class, user); + } + + @GET + @Path("/{moduleTypeEnum}/getTree") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getTree(@Context HttpServletRequest request, @Context HttpServletResponse response, + @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { + try { + User user = HrmUserVarify.getUser(request, response); + return getFieldDefinedWrapper(user).getTree(moduleTypeEnum); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/saveTree") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveTree(@Context HttpServletRequest request, @Context HttpServletResponse response, + @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody FieldTypeTreeParam fieldTypeTreeParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return getFieldDefinedWrapper(user).saveTree(moduleTypeEnum, fieldTypeTreeParam); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/changeTree") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult changeTree(@Context HttpServletRequest request, @Context HttpServletResponse response, + @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody FieldTypeTreeParam fieldTypeTreeParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return getFieldDefinedWrapper(user).changeTree(moduleTypeEnum, fieldTypeTreeParam); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/deleteTree") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteTree(@Context HttpServletRequest request, @Context HttpServletResponse response, + @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody FieldTypeTreeParam fieldTypeTreeParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return getFieldDefinedWrapper(user).deleteTree(fieldTypeTreeParam.getId()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + @GET + @Path("/{moduleTypeEnum}/getTabInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getTabInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String groupType = (String) map.get("groupType"); + return ReturnResult.successed(getFieldDefinedWrapper(user).getTabInfo(groupType)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 分组维护 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/{moduleTypeEnum}/saveGroup") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveGroup(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendTitleSaveParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getFieldDefinedWrapper(user).saveGroup(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 新建分组 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/{moduleTypeEnum}/saveTitle") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveTitle(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendTitleSaveParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getFieldDefinedWrapper(user).saveTitle(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/deleteTitle") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteTitle(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendTitleSaveParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getFieldDefinedWrapper(user).deleteTitle(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/saveFields") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveFields(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendTitleSaveParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getFieldDefinedWrapper(user).saveFields(param.getData())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @GET + @Path("/{moduleTypeEnum}/getFieldDefinedInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getFieldDefinedInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + Long groupType = Long.parseLong((String) map.get("groupType")); + Long groupId = Long.parseLong((String) map.get("groupId")); + return ReturnResult.successed(getFieldDefinedWrapper(user).getFieldDefinedInfo(ExtendFieldSearchParam.builder().groupType(groupType).groupId(groupId).build())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/del") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteFieldDefined(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendFieldSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + getFieldDefinedWrapper(user).deleteFieldDefined(param); + return ReturnResult.successed(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/changeGroup") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult changeGroup(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendInfoChangeParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + getFieldDefinedWrapper(user).changeGroup(param); + return ReturnResult.successed(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } +} diff --git a/src/com/engine/organization/web/GradeController.java b/src/com/engine/organization/web/GradeController.java index 78228099..55bce20d 100644 --- a/src/com/engine/organization/web/GradeController.java +++ b/src/com/engine/organization/web/GradeController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/web/GroupController.java b/src/com/engine/organization/web/GroupController.java index be6a5b9e..674dfe4b 100644 --- a/src/com/engine/organization/web/GroupController.java +++ b/src/com/engine/organization/web/GroupController.java @@ -19,7 +19,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index 0bdc3de0..789aa392 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.job.param.JobCopyParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.response.ReturnResult; @@ -21,7 +22,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/27 * @version: 1.0 @@ -119,7 +120,7 @@ public class JobController { @POST @Path("/saveBaseForm") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map params) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params)); @@ -168,13 +169,21 @@ public class JobController { } } + /** + * 复制到指定部门 + * + * @param request + * @param response + * @param param + * @return + */ @POST @Path("/copyJobItem") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult copyJobItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam param) { + public ReturnResult copyJobItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobCopyParam param) { try { User user = HrmUserVarify.getUser(request, response); - return ReturnResult.successed(getJobWrapper(user).copyJobItem(param.getId(), param.getParentDept())); + return ReturnResult.successed(getJobWrapper(user).copyJobItem(param.getIds(), param.getDepartment())); } catch (Exception e) { return ReturnResult.exceptionHandle(e.getMessage()); } diff --git a/src/com/engine/organization/web/LevelController.java b/src/com/engine/organization/web/LevelController.java index 772c13cc..fad3db68 100644 --- a/src/com/engine/organization/web/LevelController.java +++ b/src/com/engine/organization/web/LevelController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 diff --git a/src/com/engine/organization/web/PostController.java b/src/com/engine/organization/web/PostController.java index 245f0baa..f5e15d43 100644 --- a/src/com/engine/organization/web/PostController.java +++ b/src/com/engine/organization/web/PostController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/web/PostInfoController.java b/src/com/engine/organization/web/PostInfoController.java index a2c5ae1e..a3e0ca70 100644 --- a/src/com/engine/organization/web/PostInfoController.java +++ b/src/com/engine/organization/web/PostInfoController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/web/SchemeController.java b/src/com/engine/organization/web/SchemeController.java index 1852d1b7..d6f815a0 100644 --- a/src/com/engine/organization/web/SchemeController.java +++ b/src/com/engine/organization/web/SchemeController.java @@ -22,7 +22,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/web/SequenceController.java b/src/com/engine/organization/web/SequenceController.java index 557bba6b..d87116cb 100644 --- a/src/com/engine/organization/web/SequenceController.java +++ b/src/com/engine/organization/web/SequenceController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/web/StaffController.java b/src/com/engine/organization/web/StaffController.java index 9f93a9d9..bd342fdc 100644 --- a/src/com/engine/organization/web/StaffController.java +++ b/src/com/engine/organization/web/StaffController.java @@ -23,7 +23,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/web/StaffPlanController.java b/src/com/engine/organization/web/StaffPlanController.java index b3e593cc..91463cab 100644 --- a/src/com/engine/organization/web/StaffPlanController.java +++ b/src/com/engine/organization/web/StaffPlanController.java @@ -23,7 +23,7 @@ import javax.ws.rs.core.MediaType; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/webservice/CustomBrowserService.java b/src/com/engine/organization/webservice/CustomBrowserService.java deleted file mode 100644 index 2c155efb..00000000 --- a/src/com/engine/organization/webservice/CustomBrowserService.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.engine.organization.webservice; - -import com.engine.organization.entity.company.po.CompPO; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import java.util.List; - -/** - * @description: TODO - * @author:dxfeng - * @createTime: 2022/05/23 - * @version: 1.0 - */ -@WebService -public interface CustomBrowserService { - - - /** - * 公司/分部 树形列表 - * 只获取未删除且启用的数据 - * - * @return - */ - @WebMethod( - operationName = "getCompTreeList", - action = "com.engine.organization.webservice.CustomBrowserService.getCompTreeList" - ) - List getCompTreeList(); -} diff --git a/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java b/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java deleted file mode 100644 index 1591caeb..00000000 --- a/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.engine.organization.webservice; - -import com.engine.organization.entity.company.po.CompPO; -import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.util.db.MapperProxyFactory; -import org.apache.commons.collections4.CollectionUtils; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @description: TODO - * @author:dxfeng - * @createTime: 2022/05/23 - * @version: 1.0 - */ -public class CustomBrowserServiceImpl implements CustomBrowserService { - private CompMapper getCompMapper() { - return MapperProxyFactory.getProxy(CompMapper.class); - } - - @Override - public List getCompTreeList() { - // 获取所有启用数据 - List allList = getCompMapper().list().stream().filter(item -> 0 == item.getForbiddenTag()).collect(Collectors.toList()); - - List parentList = allList.stream().filter(item -> (null == item.getParentCompany() || 0 == item.getParentCompany())).collect(Collectors.toList()); - Map> compMap = allList.stream().filter(item -> (null != item.getParentCompany() && 0 != item.getParentCompany())).collect(Collectors.groupingBy(CompPO::getParentCompany)); - List returnList = new ArrayList<>(); - dealChildren(parentList, returnList, compMap); - - return returnList; - } - - /** - * 处理分部子节点 - * - * @param parentList - * @param returnList - * @param compMap - */ - private void dealChildren(List parentList, List returnList, Map> compMap) { - if (CollectionUtils.isEmpty(parentList)) { - return; - } - for (CompPO compPO : parentList) { - returnList.add(compPO); - dealChildren(compMap.get(compPO.getId()), returnList, compMap); - } - } -} diff --git a/src/com/engine/organization/wrapper/CodeSettingWrapper.java b/src/com/engine/organization/wrapper/CodeSettingWrapper.java index d5df6b93..1ac60a5e 100644 --- a/src/com/engine/organization/wrapper/CodeSettingWrapper.java +++ b/src/com/engine/organization/wrapper/CodeSettingWrapper.java @@ -10,14 +10,14 @@ import weaver.hrm.User; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/30 * @Version V1.0 **/ public class CodeSettingWrapper extends Service { public CodeSettingService getCodeSettingService(User user) { - return ServiceUtil.getService(CodeSettingServiceImpl.class,user); + return ServiceUtil.getService(CodeSettingServiceImpl.class, user); } public ReturnResult getHasRight(String serialtype) { @@ -25,7 +25,6 @@ public class CodeSettingWrapper extends Service { } public ReturnResult saveOrUpdateCodeSetting(CodeSaveParam params) { - getCodeSettingService(user).saveOrUpdateCodeSetting(params); - return ReturnResult.successed(); + return ReturnResult.successed(getCodeSettingService(user).saveOrUpdateCodeSetting(params)); } } diff --git a/src/com/engine/organization/wrapper/CompWrapper.java b/src/com/engine/organization/wrapper/CompWrapper.java index 6e63ba43..6363ee2b 100644 --- a/src/com/engine/organization/wrapper/CompWrapper.java +++ b/src/com/engine/organization/wrapper/CompWrapper.java @@ -11,7 +11,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 @@ -38,7 +38,7 @@ public class CompWrapper extends Service { * @param params * @return */ - public int saveBaseComp(CompSearchParam params) { + public int saveBaseComp(Map params) { return getCompService(user).saveBaseComp(params); } diff --git a/src/com/engine/organization/wrapper/DemoWrapper.java b/src/com/engine/organization/wrapper/DemoWrapper.java index affe8c5b..d2a6a32e 100644 --- a/src/com/engine/organization/wrapper/DemoWrapper.java +++ b/src/com/engine/organization/wrapper/DemoWrapper.java @@ -12,7 +12,7 @@ import java.util.List; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/4/26 * @Version V1.0 **/ diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 363ae0f4..197e9f1a 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -1,10 +1,12 @@ package com.engine.organization.wrapper; +import com.api.browser.bean.SearchConditionGroup; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.organization.entity.department.param.DeptSearchParam; -import com.engine.organization.entity.department.param.QuerySingleDeptListParam; +import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; +import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; import com.engine.organization.util.page.PageInfo; @@ -12,11 +14,12 @@ import com.engine.organization.util.response.ReturnResult; import weaver.hrm.User; import java.util.Collection; +import java.util.List; import java.util.Map; /** * @Author weaver_cl - * @Description: TODO + * @description: * @Date 2022/5/20 * @Version V1.0 **/ @@ -31,6 +34,26 @@ public class DepartmentWrapper extends Service { return ReturnResult.successed(singleDeptTreeVOS); } + /** + * 部门联查岗位 + * + * @param param + * @return + */ + public PageInfo getJobListByPid(QuerySingleDeptListParam param) { + return getDepartmentService(user).getJobListByPid(param); + } + + /** + * 左侧树 + * + * @param params + * @return + */ + public Map getSearchTree(SearchTreeParams params) { + return getDepartmentService(user).getSearchTree(params); + } + /** * 列表数据展示 * @@ -56,7 +79,7 @@ public class DepartmentWrapper extends Service { * @param params * @return */ - public int saveBaseForm(DeptSearchParam params) { + public int saveBaseForm(Map params) { return getDepartmentService(user).saveBaseForm(params); } @@ -118,5 +141,61 @@ public class DepartmentWrapper extends Service { return getDepartmentService(user).getDeptBaseForm(params); } + /** + * 复制表单 + * + * @return + */ + public List getCopyForm() { + return getDepartmentService(user).getCopyForm(); + } + + /** + * 复制岗位到指定部门 + * + * @param copyParam + * @return + */ + public int copyDepartment(DeptCopyParam copyParam) { + return getDepartmentService(user).copyDepartment(copyParam); + } + + /** + * 获取合并表单 + * + * @param id + * @return + */ + public List getMergeForm(Long id) { + return getDepartmentService(user).getMergeForm(id); + } + + /** + * 合并到指定部门 + * + * @param mergeParam + * @return + */ + public int mergeDepartment(DepartmentMergeParam mergeParam) { + return getDepartmentService(user).mergeDepartment(mergeParam); + } + + /** + * 获取转移表单 + * + * @return + */ + public List getMoveForm() { + return getDepartmentService(user).getMoveForm(); + } + /** + * 转移到指定分部或部门 + * + * @param moveParam + * @return + */ + public int moveDepartment(DepartmentMoveParam moveParam) { + return getDepartmentService(user).moveDepartment(moveParam); + } } diff --git a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java new file mode 100644 index 00000000..93dddf98 --- /dev/null +++ b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java @@ -0,0 +1,104 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; +import com.engine.organization.entity.extend.param.ExtendInfoChangeParam; +import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; +import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; +import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.enums.ModuleTypeEnum; +import com.engine.organization.service.FieldDefinedService; +import com.engine.organization.service.impl.FieldDefinedServiceImpl; +import com.engine.organization.util.response.ReturnResult; +import weaver.hrm.User; + +import java.util.List; +import java.util.Map; + +/** + * @Author weaver_cl + * @description: + * @Date 2022/6/13 + * @Version V1.0 + **/ +public class FieldDefinedWrapper extends Service { + + private FieldDefinedService getFieldDefinedService(User user) { + return ServiceUtil.getService(FieldDefinedServiceImpl.class, user); + } + + + public ReturnResult getTree(ModuleTypeEnum moduleTypeEnum) { + List treeDTOS = getFieldDefinedService(user).getTree(moduleTypeEnum); + return ReturnResult.successed(treeDTOS); + } + + /** + * 获取标题分组 + * + * @param groupType + * @return + */ + public Map getTabInfo(String groupType) { + return getFieldDefinedService(user).getTabInfo(groupType); + } + + /** + * 分组维护 + * + * @param param + * @return + */ + public Map saveGroup(ExtendTitleSaveParam param) { + return getFieldDefinedService(user).saveGroup(param); + } + + /** + * 新建分组 + * + * @param param + * @return + */ + public Map saveTitle(ExtendTitleSaveParam param) { + return getFieldDefinedService(user).saveTitle(param); + } + + + public ReturnResult changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { + getFieldDefinedService(user).changeTree(moduleTypeEnum, fieldTypeTreeParam); + return ReturnResult.successed(); + } + + + public int deleteTitle(ExtendTitleSaveParam param) { + return getFieldDefinedService(user).deleteTitle(param); + } + + + public ReturnResult deleteTree(Long id) { + getFieldDefinedService(user).deleteTree(id); + return ReturnResult.successed(); + } + + public ReturnResult saveTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { + getFieldDefinedService(user).saveTree(moduleTypeEnum, fieldTypeTreeParam); + return ReturnResult.successed(); + } + + public int saveFields(String data) { + return getFieldDefinedService(user).saveFields(data); + } + + public Map getFieldDefinedInfo(ExtendFieldSearchParam param) { + return getFieldDefinedService(user).getFieldDefinedInfo(param); + } + + public void deleteFieldDefined(ExtendFieldSearchParam param) { + getFieldDefinedService(user).deleteFieldDefined(param); + } + + public void changeGroup(ExtendInfoChangeParam param) { + getFieldDefinedService(user).changeGroup(param); + } +} diff --git a/src/com/engine/organization/wrapper/GradeWrapper.java b/src/com/engine/organization/wrapper/GradeWrapper.java index 0afffe26..3eaf1216 100644 --- a/src/com/engine/organization/wrapper/GradeWrapper.java +++ b/src/com/engine/organization/wrapper/GradeWrapper.java @@ -12,7 +12,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/11 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/GroupWrapper.java b/src/com/engine/organization/wrapper/GroupWrapper.java index f56a4a86..ec205f9f 100644 --- a/src/com/engine/organization/wrapper/GroupWrapper.java +++ b/src/com/engine/organization/wrapper/GroupWrapper.java @@ -9,7 +9,7 @@ import weaver.hrm.User; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/16 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 587cf1de..9eab4a7c 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -15,7 +15,7 @@ import weaver.hrm.User; import java.util.*; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/27 * @version: 1.0 @@ -89,7 +89,7 @@ public class JobWrapper extends Service { * @param params * @return */ - public int saveBaseForm(JobSearchParam params) { + public int saveBaseForm(Map params) { return getJobService(user).saveBaseForm(params); } @@ -106,12 +106,12 @@ public class JobWrapper extends Service { /** * 复制岗位到指定部门 * - * @param id - * @param departmentId + * @param ids + * @param department * @return */ - public int copyJobItem(long id, long departmentId) { - return getJobService(user).copyJobItem(id, departmentId); + public int copyJobItem(String ids, String department) { + return getJobService(user).copyJobItem(ids, department); } /** @@ -135,6 +135,7 @@ public class JobWrapper extends Service { /** * 获取复制表单 + * * @return */ public ReturnResult getCopyForm() { @@ -149,6 +150,7 @@ public class JobWrapper extends Service { /** * 根据岗位获取人员 + * * @param jobId * @return */ diff --git a/src/com/engine/organization/wrapper/LevelWrapper.java b/src/com/engine/organization/wrapper/LevelWrapper.java index bfe46899..20c733e0 100644 --- a/src/com/engine/organization/wrapper/LevelWrapper.java +++ b/src/com/engine/organization/wrapper/LevelWrapper.java @@ -12,7 +12,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/10 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/PostInfoWrapper.java b/src/com/engine/organization/wrapper/PostInfoWrapper.java index 8db4a99a..579863e3 100644 --- a/src/com/engine/organization/wrapper/PostInfoWrapper.java +++ b/src/com/engine/organization/wrapper/PostInfoWrapper.java @@ -12,7 +12,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/PostWrapper.java b/src/com/engine/organization/wrapper/PostWrapper.java index e47e6112..7457c0a5 100644 --- a/src/com/engine/organization/wrapper/PostWrapper.java +++ b/src/com/engine/organization/wrapper/PostWrapper.java @@ -13,7 +13,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/13 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/SchemeWrapper.java b/src/com/engine/organization/wrapper/SchemeWrapper.java index 1e3c0388..fbb0d6ab 100644 --- a/src/com/engine/organization/wrapper/SchemeWrapper.java +++ b/src/com/engine/organization/wrapper/SchemeWrapper.java @@ -13,7 +13,7 @@ import java.util.Map; /** * @Author dxfeng - * @Description: TODO + * @description: * @Date 2022/5/9 * @Version V1.0 **/ diff --git a/src/com/engine/organization/wrapper/SequenceWrapper.java b/src/com/engine/organization/wrapper/SequenceWrapper.java index 26990dc4..7715d247 100644 --- a/src/com/engine/organization/wrapper/SequenceWrapper.java +++ b/src/com/engine/organization/wrapper/SequenceWrapper.java @@ -12,7 +12,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/12 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/StaffPlanWrapper.java b/src/com/engine/organization/wrapper/StaffPlanWrapper.java index 8881ea1c..dbf96297 100644 --- a/src/com/engine/organization/wrapper/StaffPlanWrapper.java +++ b/src/com/engine/organization/wrapper/StaffPlanWrapper.java @@ -12,7 +12,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/com/engine/organization/wrapper/StaffWrapper.java b/src/com/engine/organization/wrapper/StaffWrapper.java index dec481eb..e781782c 100644 --- a/src/com/engine/organization/wrapper/StaffWrapper.java +++ b/src/com/engine/organization/wrapper/StaffWrapper.java @@ -11,7 +11,7 @@ import java.util.Collection; import java.util.Map; /** - * @description: TODO + * @description: * @author:dxfeng * @createTime: 2022/05/25 * @version: 1.0 diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java new file mode 100644 index 00000000..33be3335 --- /dev/null +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -0,0 +1,82 @@ +package weaver.interfaces.organization.action; + +import com.engine.organization.entity.staff.bo.StaffBO; +import com.engine.organization.entity.staff.po.StaffPO; +import com.engine.organization.entity.staff.po.StaffsPO; +import com.engine.organization.mapper.staff.StaffMapper; +import com.engine.organization.mapper.staff.StaffsMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; +import weaver.workflow.request.RequestManager; + +import java.util.Date; + +/** + * @description: + * @author:dxfeng + * @createTime: 2022/06/07 + * @version: 1.0 + */ +public class StaffChangeAction implements Action { + @Override + public String execute(RequestInfo requestInfo) { + Integer requestid = Integer.parseInt(requestInfo.getRequestid()); + Long companyId = null; + Long departmentId = null; + Long jobId = null; + Integer changeNum = null; + RequestManager requestManager = requestInfo.getRequestManager(); + int creator = requestManager.getCreater(); + MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); + Property[] property = mainTableInfo.getProperty(); + // 取表单数据赋值 + for (int i = 0; i < property.length; i++) { + String name = property[i].getName(); + String value = Util.null2String(property[i].getValue()); + if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) { + switch (name) { + case "fb": + companyId = Long.parseLong(value); + break; + case "bm": + departmentId = Long.parseLong(value); + break; + case "gw": + jobId = Long.parseLong(value); + + break; + case "bzbds": + changeNum = Integer.parseInt(value); + break; + default: + break; + } + } + + } + + // 根据分部、部门、岗位 定位具体编制信息 + StaffPO staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffByFilter(companyId, departmentId, jobId); + if (null != staffPO) { + + // 插入明细表 + StaffsPO staffsPO = StaffsPO.builder().staffId(staffPO.getId()).businessType(2).changeNum(changeNum).businessSource(2).requestId(requestid).deleteType(0).creator((long) creator).createTime(new Date()).build(); + MapperProxyFactory.getProxy(StaffsMapper.class).insertIgnoreNull(staffsPO); + + // 更新编制表 + staffPO.setStaffNum(staffPO.getStaffNum() + changeNum); + + StaffBO.buildStaffDesc(staffPO); + + MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO); + } + + return null; + } + +}