diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 3f4162b0..604dc705 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -5,6 +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, creator int null, delete_type int null, create_time date null, @@ -19,6 +20,7 @@ CREATE TABLE JCL_ORG_LEVEL ( description text NULL, scheme_id int null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -34,6 +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, creator int null, delete_type int null, create_time date null, @@ -49,6 +52,7 @@ CREATE TABLE JCL_ORG_SEQUENCE ( description text NULL, scheme_id int null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -62,6 +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, creator int null, delete_type int null, create_time date null, @@ -80,6 +85,7 @@ CREATE TABLE JCL_ORG_POST_INFO ( post_id int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -99,6 +105,7 @@ CREATE TABLE JCL_ORG_COMP ( comp_principal int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -176,6 +183,7 @@ CREATE TABLE JCL_ORG_DEPT ( show_order int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -183,43 +191,6 @@ CREATE TABLE JCL_ORG_DEPT ( CONSTRAINT JCL_ORG_DEPT_PK PRIMARY KEY (id) ); --- JCL_FIELD_EXTENDGROUP_DEPT -CREATE TABLE JCL_FIELD_EXTENDGROUP_DEPT ( - id int auto_increment NOT NULL, - extend_type int null, - group_name varchar(100) 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 auto_increment NOT NULL, - extend_type int null, - table_name varchar(100) NULL, - field_name varchar(100) NULL, - field_name_desc varchar(100) NULL, - field_type varchar(1000) 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 auto_increment NOT NULL, @@ -248,15 +219,16 @@ CREATE TABLE JCL_ORG_JOB ( job_name varchar(100) NULL, parent_comp int null, parent_dept int null, - job_sequence int null, + sequence_id int null, scheme_id int null, parent_job int null, - is_key_job int null, + is_key int null, workplace varchar(100) NULL, - work_description text null, + description text null, work_duty text null, work_authority text null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -268,50 +240,13 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( id int auto_increment NOT NULL, mainid int NULL, - job_rank int null, - job_level 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 auto_increment NOT NULL, - extend_type int null, - group_name varchar(100) 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 auto_increment NOT NULL, - extend_type int null, - table_name varchar(100) NULL, - field_name varchar(100) NULL, - field_name_desc varchar(100) NULL, - field_type varchar(1000) 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_JOB_PK PRIMARY KEY (id) + CONSTRAINT JCL_ORG_JOBDT_PK PRIMARY KEY (id) ); -- JCL_ORG_JOBPEXT @@ -346,7 +281,8 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( time_end date NULL, company_id varchar(100) NULL, description text NULL, - status int NULL, + forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -363,11 +299,12 @@ CREATE TABLE JCL_ORG_STAFF ( job_id int null, staff_num int null, control_policy int null, - staff_permanent_num int null, + permanent_num int null, freeze_num int null, lack_status int null, - staff_description varchar(100) NULL, + staff_desc varchar(100) NULL, description text null, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -380,7 +317,7 @@ CREATE TABLE JCL_ORG_STAFFS ( id int auto_increment NOT NULL, staff_id int null, business_type int null, - business_change_num int null, + change_num int null, business_source int null, requestid int null, creator int null, @@ -391,6 +328,49 @@ CREATE TABLE JCL_ORG_STAFFS ( ); +--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) +); + + + + diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index e8718031..f19323bc 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -250,12 +250,12 @@ CREATE TABLE JCL_ORG_JOB ( JOB_NAME NVARCHAR2(100) NULL, PARENT_COMP NUMBER NULL, PARENT_DEPT NUMBER NULL, - JOB_SEQUENCE NUMBER NULL, + SEQUENCE_ID NUMBER NULL, SCHEME_ID NUMBER NULL, PARENT_JOB NUMBER NULL, - IS_KEY_JOB NUMBER NULL, + IS_KEY NUMBER NULL, WORKPLACE NVARCHAR2(100) NULL, - WORK_DESCRIPTION NVARCHAR2(1000) NULL, + DESCRIPTION NVARCHAR2(1000) NULL, WORK_DUTY NVARCHAR2(1000) NULL, WORK_AUTHORITY NVARCHAR2(1000) NULL, FORBIDDEN_TAG NUMBER NULL, @@ -270,8 +270,8 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( ID NUMBER NOT NULL, MAINID NUMBER NULL, - JOB_RANK NUMBER NULL, - JOB_LEVEL NUMBER NULL, + LEVEL_ID NUMBER NULL, + GRADE_ID NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -347,7 +347,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( TIME_END DATE NULL, COMPANY_ID NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, - STATUS NUMBER NULL, + FORBIDDEN_TAG NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, @@ -364,10 +364,10 @@ CREATE TABLE JCL_ORG_STAFF ( JOB_ID NUMBER NULL, STAFF_NUM NUMBER NULL, CONTROL_POLICY NUMBER NULL, - STAFF_PERMANENT_NUM NUMBER NULL, + PERMANENT_NUM NUMBER NULL, FREEZE_NUM NUMBER NULL, LACK_STATUS NUMBER NULL, - STAFF_DESCRIPTION NVARCHAR2(100) NULL, + STAFF_DESC NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, @@ -381,7 +381,7 @@ CREATE TABLE JCL_ORG_STAFFS ( ID NUMBER NOT NULL, STAFF_ID NUMBER NULL, BUSINESS_TYPE NUMBER NULL, - BUSINESS_CHANGE_NUM NUMBER NULL, + CHANGE_NUM NUMBER NULL, BUSINESS_SOURCE NUMBER NULL, REQUESTID NUMBER NULL, CREATOR NUMBER NULL, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 6b740ca7..8cea6e9b 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -248,12 +248,12 @@ CREATE TABLE JCL_ORG_JOB ( job_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, parent_comp int null, parent_dept int null, - job_sequence int null, + sequence_id int null, scheme_id int null, parent_job int null, - is_key_job int null, + is_key int null, workplace varchar(100) COLLATE Chinese_PRC_CI_AS NULL, - work_description text null, + description text null, work_duty text null, work_authority text null, forbidden_tag int NULL, @@ -268,8 +268,8 @@ CREATE TABLE JCL_ORG_JOB ( CREATE TABLE JCL_ORG_JOBDT ( id int IDENTITY(1,1) NOT NULL, mainid int NULL, - job_rank int null, - job_level int null, + level_id int null, + grade_id int null, creator int null, delete_type int null, create_time date null, @@ -346,7 +346,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( time_end date NULL, company_id varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text NULL, - status int NULL, + forbidden_tag int NULL, creator int null, delete_type int null, create_time date null, @@ -363,10 +363,10 @@ CREATE TABLE JCL_ORG_STAFF ( job_id int null, staff_num int null, control_policy int null, - staff_permanent_num int null, + permanent_num int null, freeze_num int null, lack_status int null, - staff_description varchar(100) COLLATE Chinese_PRC_CI_AS NULL, + staff_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text null, creator int null, delete_type int null, @@ -380,7 +380,7 @@ CREATE TABLE JCL_ORG_STAFFS ( id int IDENTITY(1,1) NOT NULL, staff_id int null, business_type int null, - business_change_num int null, + change_num int null, business_source int null, requestid int null, creator int null, diff --git a/src/com/api/organization/web/CodeSettingController.java b/src/com/api/organization/web/CodeSettingController.java new file mode 100644 index 00000000..cf313578 --- /dev/null +++ b/src/com/api/organization/web/CodeSettingController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +@Path("/bs/hrmorganization/codeSetting") +public class CodeSettingController extends com.engine.organization.web.CodeSettingController { +} diff --git a/src/com/api/organization/web/JobController.java b/src/com/api/organization/web/JobController.java new file mode 100644 index 00000000..7ac87cfc --- /dev/null +++ b/src/com/api/organization/web/JobController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/job") +public class JobController extends com.engine.organization.web.JobController{ +} diff --git a/src/com/api/organization/web/StaffController.java b/src/com/api/organization/web/StaffController.java new file mode 100644 index 00000000..1377ab14 --- /dev/null +++ b/src/com/api/organization/web/StaffController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/staff") +public class StaffController extends com.engine.organization.web.StaffController { +} diff --git a/src/com/api/organization/web/StaffPlanController.java b/src/com/api/organization/web/StaffPlanController.java new file mode 100644 index 00000000..2eb02710 --- /dev/null +++ b/src/com/api/organization/web/StaffPlanController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/staffplan") +public class StaffPlanController extends com.engine.organization.web.StaffPlanController { +} diff --git a/src/com/engine/organization/annotation/CheckboxPopedom.java b/src/com/engine/organization/annotation/CheckboxPopedom.java new file mode 100644 index 00000000..14c8bf08 --- /dev/null +++ b/src/com/engine/organization/annotation/CheckboxPopedom.java @@ -0,0 +1,21 @@ +package com.engine.organization.annotation; + +import java.lang.annotation.*; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +@Target({ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface CheckboxPopedom { + + String id() default ""; + + String showmethod() default ""; + + String popedompara() default ""; +} diff --git a/src/com/engine/organization/annotation/OperatePopedom.java b/src/com/engine/organization/annotation/OperatePopedom.java new file mode 100644 index 00000000..7822389a --- /dev/null +++ b/src/com/engine/organization/annotation/OperatePopedom.java @@ -0,0 +1,25 @@ +package com.engine.organization.annotation; + +import java.lang.annotation.*; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +@Target({ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface OperatePopedom { + + boolean async() default true; + + String transmethod() default ""; + + String otherpara() default ""; + + String otherpara2() default ""; + + String column() default ""; +} diff --git a/src/com/engine/organization/annotation/OrganizationTable.java b/src/com/engine/organization/annotation/OrganizationTable.java index 0217da51..f6cec4a3 100644 --- a/src/com/engine/organization/annotation/OrganizationTable.java +++ b/src/com/engine/organization/annotation/OrganizationTable.java @@ -2,6 +2,7 @@ package com.engine.organization.annotation; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.enums.DeleteTypeEnum; import java.lang.annotation.*; @@ -59,9 +60,16 @@ public @interface OrganizationTable { */ OrganizationTableOperate[] operates() default {}; + /** + * 操作按钮权限控制 + * @return + */ + OperatePopedom operatePopedom() default @OperatePopedom; + /** * 列表选择框 */ WeaTableType tableType() default WeaTableType.NONE; + CheckboxPopedom checkboxPopedom() default @CheckboxPopedom; } diff --git a/src/com/engine/organization/annotation/OrganizationTableOperate.java b/src/com/engine/organization/annotation/OrganizationTableOperate.java index 3df682bd..89f3f63e 100644 --- a/src/com/engine/organization/annotation/OrganizationTableOperate.java +++ b/src/com/engine/organization/annotation/OrganizationTableOperate.java @@ -22,4 +22,6 @@ public @interface OrganizationTableOperate { String index() default "0"; + + } diff --git a/src/com/engine/organization/component/OrganizationWeaTable.java b/src/com/engine/organization/component/OrganizationWeaTable.java index 8bb0121d..35369fbf 100644 --- a/src/com/engine/organization/component/OrganizationWeaTable.java +++ b/src/com/engine/organization/component/OrganizationWeaTable.java @@ -2,9 +2,7 @@ package com.engine.organization.component; import com.cloudstore.eccom.constant.WeaBoolAttr; import com.cloudstore.eccom.pc.table.*; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.engine.organization.annotation.*; import org.apache.commons.lang3.StringUtils; import weaver.general.PageIdConst; import weaver.hrm.User; @@ -64,6 +62,13 @@ public class OrganizationWeaTable extends WeaTable { operateList.add(weaTableOperate); }); WeaTableOperates weaTableOperates = new WeaTableOperates(); + OperatePopedom popedoms = table.operatePopedom(); + WeaTablePopedom popedom = new WeaTablePopedom(); + if (popedoms != null && !"".equals(popedoms.transmethod())) { + popedom.setTransmethod(popedoms.transmethod()); + popedom.setOtherpara(popedoms.otherpara()); + weaTableOperates.setPopedom(popedom); + } weaTableOperates.setOperate(operateList); super.setOperates(weaTableOperates); } @@ -72,9 +77,13 @@ public class OrganizationWeaTable extends WeaTable { //设置check是否可用 if (weaTableTypeEnum == WeaTableType.CHECKBOX) { super.setTableType(weaTableTypeEnum); -// WeaTableCheckboxpopedom checkboxpopedom = new WeaTableCheckboxpopedom(); -// checkboxpopedom.setShowmethod("true"); -// super.setCheckboxpopedom(checkboxpopedom); + CheckboxPopedom checkPopedom = table.checkboxPopedom(); + WeaTableCheckboxpopedom checkboxpopedom = new WeaTableCheckboxpopedom(); + if (checkPopedom != null && !"".equals(checkPopedom.showmethod())){ + checkboxpopedom.setShowmethod(checkPopedom.showmethod()); + checkboxpopedom.setPopedompara(checkPopedom.popedompara()); + } + super.setCheckboxpopedom(checkboxpopedom); } } diff --git a/src/com/engine/organization/entity/QueryParam.java b/src/com/engine/organization/entity/DeleteParam.java similarity index 96% rename from src/com/engine/organization/entity/QueryParam.java rename to src/com/engine/organization/entity/DeleteParam.java index 31b6c31d..422a8735 100644 --- a/src/com/engine/organization/entity/QueryParam.java +++ b/src/com/engine/organization/entity/DeleteParam.java @@ -22,7 +22,7 @@ import java.util.stream.Collectors; @Builder @NoArgsConstructor @AllArgsConstructor -public class QueryParam { +public class DeleteParam { private String ids; public Collection getIds() { diff --git a/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java new file mode 100644 index 00000000..57b705f9 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java @@ -0,0 +1,84 @@ +package com.engine.organization.entity.codesetting.bo; + +import com.engine.organization.entity.codesetting.param.CodeBaseParam; +import com.engine.organization.entity.codesetting.param.CodeSaveDetailParam; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.enums.DeleteTypeEnum; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public class CodeSettingBO { + + public static CodeRulePO buildCodeRule(CodeSaveParam params,Long uid,Long codeRuleId) { + + StringBuilder sb = new StringBuilder(); + parseOneSelfType(params.getDateSerial(), sb); + parseOneSelfType(params.getDeptSerial(), sb); + parseOneSelfType(params.getJobtitlesSerial(), sb); + + CodeRulePO codeRulePO = CodeRulePO.builder() + .serialType(params.getSerialType()) + .serialEnable(Optional.of(params.getSerialEnable()).orElse("0")) + .oneselfType(sb.toString()) + .creator(uid) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .updateTime(new Date()) + .build(); + if (codeRuleId == null) { + codeRulePO.setCreateTime(new Date()); + }else { + codeRulePO.setId(codeRuleId); + } + return codeRulePO; + + } + + public static List bulidCodeDetailList(List codeSaveDetailParams, Long uid,Long codeRuleId) { + if(CollectionUtils.isEmpty(codeSaveDetailParams)) { + return null; + } + + return codeSaveDetailParams.stream().map(e -> CodeRuleDetailPO.builder() + .coderuleId(codeRuleId) + .ruleType(e.getRuletype()) + .ruleValue(e.getRulevalue()) + .showOrder(e.getShoworder()) + .creator(uid) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()) + .build() + ).collect(Collectors.toList()); + } + + + /** + * 解析构建单独流程类型 + * @param param + * @param sb + */ + private static void parseOneSelfType(CodeBaseParam param, StringBuilder sb) { + if(Objects.nonNull(param)) { + String enable = Util.null2String(param.getEnable(),"0"); + String key = param.getKey(); + if (enable.equals("1") && StringUtils.isNotEmpty(key)) { + sb.append(key); + sb.append(","); + } + } + } + + +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java new file mode 100644 index 00000000..640a161b --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java @@ -0,0 +1,24 @@ +package com.engine.organization.entity.codesetting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeBaseParam { + + private String enable; + + private String key; +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java new file mode 100644 index 00000000..05ee0786 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java @@ -0,0 +1,27 @@ +package com.engine.organization.entity.codesetting.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeSaveDetailParam { + + private String ruletype; + + private String rulevalue; + + private int showorder; +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java new file mode 100644 index 00000000..37681351 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java @@ -0,0 +1,34 @@ +package com.engine.organization.entity.codesetting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeSaveParam { + + private String serialEnable; + + private List codeSaveDetailParams; + + private String serialType; + + private CodeBaseParam dateSerial; + + private CodeBaseParam deptSerial; + + private CodeBaseParam jobtitlesSerial; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java new file mode 100644 index 00000000..fbf8a47f --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java @@ -0,0 +1,46 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRuleDetailPO { + + /** + * 主键 + */ + private Long id; + + private Long coderuleId; + + /** + * 规则类型 + */ + private String ruleType; + + /** + * 规则值 + */ + private String ruleValue; + + private int showOrder; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java new file mode 100644 index 00000000..7c54bf92 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java @@ -0,0 +1,47 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRulePO { + + /** + * 主键 + */ + private Long id; + + /** + * 编号类型(目前编号类型未知 后期可设置枚举) + */ + private String serialType; + + /** + * 是否开启 + */ + private String serialEnable; + + /** + * 日期单独流水year,month,day + */ + private String oneselfType; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java new file mode 100644 index 00000000..68ec3c93 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRuleReservedPO { + + /** + * 主键 + */ + private Long id; + + private int codeRuleId; + + private String reservedCode; + + private String reservedDesc; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/comp/bo/CompBO.java b/src/com/engine/organization/entity/comp/bo/CompBO.java deleted file mode 100644 index 4b70dbf7..00000000 --- a/src/com/engine/organization/entity/comp/bo/CompBO.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.engine.organization.entity.comp.bo; - -import com.engine.organization.entity.comp.dto.CompListDTO; -import com.engine.organization.entity.comp.param.CompSearchParam; -import com.engine.organization.entity.comp.po.CompPO; -import org.apache.commons.collections.CollectionUtils; -import weaver.crm.Maint.SectorInfoComInfo; -import weaver.general.StringUtil; -import weaver.hrm.resource.ResourceComInfo; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * @description: TODO - * @author:dxfeng - * @createTime: 2022/05/16 - * @version: 1.0 - */ -public class CompBO { - - public static List buildCompDTOList(Collection list) { - - // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.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()); - Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).collect(Collectors.toList()); - } - - public static List buildCompDTOList(Collection list, List filterList) { - // 搜索结果为空,直接返回空 - if (CollectionUtils.isEmpty(filterList)) { - return Collections.emptyList(); - } - // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); - List addedList = new ArrayList<>(); - for (CompPO po : filterList) { - dealParentData(addedList, po, poMaps); - } - - List dtoList = addedList.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)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).collect(Collectors.toList()); - } - - public static CompPO convertParamToPO(CompSearchParam param, Long employeeId) { - 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(); - - } - - /** - * 递归获取查询后数据的父级数据 - * - * @param addedList - * @param po - * @param poMaps - */ - private static void dealParentData(List addedList, CompPO po, Map poMaps) { - if (!addedList.contains(po)) { - addedList.add(po); - } - CompPO parentCompPO = poMaps.get(po.getParentCompany()); - if (null != parentCompPO) { - dealParentData(addedList, parentCompPO, poMaps); - } - } - - private static String getUserNameById(String userId) { - try { - if (StringUtil.isEmpty(userId)) { - return ""; - } - return new ResourceComInfo().getLastname(userId); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java new file mode 100644 index 00000000..d81bfb6d --- /dev/null +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -0,0 +1,117 @@ +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; +import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections.CollectionUtils; +import weaver.crm.Maint.SectorInfoComInfo; +import weaver.general.StringUtil; +import weaver.hrm.resource.ResourceComInfo; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/16 + * @version: 1.0 + */ +public class CompBO { + + public static List buildCompDTOList(Collection list) { + + 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()); + Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(CompMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } + }).filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).collect(Collectors.toList()); + } + + public static List buildCompDTOList(Collection list, List filterList) { + // 搜索结果为空,直接返回空 + if (CollectionUtils.isEmpty(filterList)) { + return Collections.emptyList(); + } + // 递归添加父级数据 + Map poMaps = list.stream().collect(Collectors.toMap(CompPO::getId, item -> item)); + List addedList = new ArrayList<>(); + for (CompPO po : filterList) { + dealParentData(addedList, po, poMaps); + } + + return buildCompDTOList(addedList); + } + + public static CompPO convertParamToPO(CompSearchParam param, Long employeeId) { + 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(); + + } + + public static List buildSetToSearchTree(Set comps) { + return comps.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-LargeArea"); + tree.setId(item.getId().toString()); + tree.setIsParent(false); + tree.setIsVirtual("0"); + tree.setName(item.getCompName()); + tree.setPid(null == item.getParentCompany() ? "0" : item.getParentCompany().toString()); + tree.setSelected(false); + tree.setType("1"); + return tree; + }).collect(Collectors.toList()); + } + + /** + * 递归获取查询后数据的父级数据 + * + * @param addedList + * @param po + * @param poMaps + */ + private static void dealParentData(List addedList, CompPO po, Map poMaps) { + if (!addedList.contains(po)) { + addedList.add(po); + } + CompPO parentCompPO = poMaps.get(po.getParentCompany()); + if (null != parentCompPO) { + dealParentData(addedList, parentCompPO, poMaps); + } + } + + private static String getUserNameById(String userId) { + try { + if (StringUtil.isEmpty(userId)) { + return ""; + } + return new ResourceComInfo().getLastname(userId); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/com/engine/organization/entity/comp/dto/CompListDTO.java b/src/com/engine/organization/entity/company/dto/CompListDTO.java similarity index 83% rename from src/com/engine/organization/entity/comp/dto/CompListDTO.java rename to src/com/engine/organization/entity/company/dto/CompListDTO.java index 1c1892b0..c456611a 100644 --- a/src/com/engine/organization/entity/comp/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/company/dto/CompListDTO.java @@ -1,6 +1,5 @@ -package com.engine.organization.entity.comp.dto; +package com.engine.organization.entity.company.dto; -import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.organization.annotation.OrganizationTable; import com.engine.organization.annotation.OrganizationTableOperate; import com.engine.organization.annotation.TableTitle; @@ -9,7 +8,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; import java.util.List; /** @@ -23,9 +21,8 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @OrganizationTable(pageId = "2c66b3a4-d4f8-11ec-9774-00ffcbed7508", - tableType = WeaTableType.NONE, operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "查看部门") }) @@ -34,7 +31,10 @@ public class CompListDTO { * 主键id */ private Long id; - + /** + * 是否被引用 + */ + private Integer isUsed; /** * 名称 */ @@ -88,16 +88,11 @@ public class CompListDTO { /** * 操作列 */ - @TableTitle(title = "操作", dataIndex = "operate", key = "operate") + @TableTitle(title = "", dataIndex = "operate", key = "operate") private String operate; /** * 子节点 */ private List children; - - private Long creator; - private int deleteType; - private Date createTime; - private Date updateTime; } diff --git a/src/com/engine/organization/entity/comp/param/CompSearchParam.java b/src/com/engine/organization/entity/company/param/CompSearchParam.java similarity index 94% rename from src/com/engine/organization/entity/comp/param/CompSearchParam.java rename to src/com/engine/organization/entity/company/param/CompSearchParam.java index 0010a515..1aa114cc 100644 --- a/src/com/engine/organization/entity/comp/param/CompSearchParam.java +++ b/src/com/engine/organization/entity/company/param/CompSearchParam.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.comp.param; +package com.engine.organization.entity.company.param; import com.engine.organization.common.BaseQueryParam; import lombok.AllArgsConstructor; diff --git a/src/com/engine/organization/entity/comp/po/CompPO.java b/src/com/engine/organization/entity/company/po/CompPO.java similarity index 95% rename from src/com/engine/organization/entity/comp/po/CompPO.java rename to src/com/engine/organization/entity/company/po/CompPO.java index 671b17fe..1acd4ab3 100644 --- a/src/com/engine/organization/entity/comp/po/CompPO.java +++ b/src/com/engine/organization/entity/company/po/CompPO.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.comp.po; +package com.engine.organization.entity.company.po; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 18fced97..be59ed1e 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -4,6 +4,7 @@ import com.engine.organization.entity.department.dto.DepartmentListDTO; 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.department.DepartmentMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -20,43 +21,63 @@ import java.util.stream.Collectors; **/ public class DepartmentBO { + public static List buildDeptDTOList(Collection list) { + + // 递归添加父级数据 + Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); + List dtoList = list.stream().map(e -> + DepartmentListDTO + .builder() + .id(e.getId()) + .deptNo(e.getDeptNo()) + .deptName(e.getDeptName()) + .deptNameShort(e.getDeptNameShort()) + .parentComp(e.getParentComp() + "")// 命名 + .parentDept(e.getParentDept()) + .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()); + Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(DepartmentMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } + }).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); + } + public static List buildDeptDTOList(Collection list, List filterList) { // 搜索结果为空,直接返回空 if (CollectionUtils.isEmpty(filterList)) { return Collections.emptyList(); } // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); + Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); List addedList = new ArrayList<>(); for (DepartmentPO po : filterList) { dealParentData(addedList, po, poMaps); } - - List dtoList = addedList.stream().map(e -> DepartmentListDTO.builder() - .id(e.getId()) - .deptNo(e.getDeptNo()) - .deptName(e.getDeptName()) - .deptNameShort(e.getDeptNameShort()) - .parentComp(e.getParentComp() + "")// 命名 - .parentDept(e.getParentDept()) - .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) - .deptPrincipal(getEmployeeNameById((long) e.getDeptPrincipal())) - .showOrder(e.getShowOrder()) - .forbiddenTag(e.getForbiddenTag()) - .build() - ).collect(Collectors.toList()); - Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); + return buildDeptDTOList(addedList); } - public static DepartmentPO convertParamsToPO(DeptSearchParam param, Long employeeId) { + public static DepartmentPO convertParamsToPO(DeptSearchParam param, long employeeId) { if (null == param) { return null; } - return DepartmentPO.builder() + return DepartmentPO + .builder() .id(param.getId() == null ? 0 : param.getId()) .deptNo(param.getDeptNo()) .deptName(param.getDeptName()) @@ -66,35 +87,43 @@ public class DepartmentBO { .deptPrincipal(param.getDeptPrincipal()) .showOrder(param.getShowOrder()) .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) - .deleteType(0) + .description(param.getDescription()).deleteType(0) .createTime(new Date()) .updateTime(new Date()) - .creator(employeeId).build(); + .creator(employeeId) + .build(); } - public static List buildSingleDeptTreeVOS(List departmentPOs,Long parentComp) { + public static List buildSingleDeptTreeVOS(List departmentPOs, Long parentComp) { if (CollectionUtils.isEmpty(departmentPOs)) { 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((long) 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)); + Map> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO::getParentDept)); + + return singleDeptTreeVOS.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); + } - return singleDeptTreeVOS.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); + public static List buildSetToSearchTree(Set departmentPOS) { + return departmentPOS.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-Branch"); + tree.setId(item.getId().toString()); + tree.setIsParent(false); + tree.setIsVirtual("0"); + tree.setName(item.getDeptName()); + tree.setPid(null == item.getParentDept() ? "0" : item.getParentDept().toString()); + tree.setSelected(false); + tree.setType("2"); + tree.setParentComp(null == item.getParentComp() ? "0" : item.getParentComp().toString()); + return tree; + }).collect(Collectors.toList()); } @@ -125,6 +154,4 @@ public class DepartmentBO { } - - } diff --git a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java index 1731a5da..5ea3a8f0 100644 --- a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java +++ b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java @@ -24,7 +24,7 @@ import java.util.List; @OrganizationTable(pageId = "96f2bb0d-da73-11ec-a0da-00ffcbed7508", tableType = WeaTableType.NONE, operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "合并"), @OrganizationTableOperate(index = "3", text = "转移"), @@ -34,7 +34,10 @@ import java.util.List; public class DepartmentListDTO { private Long id; - + /** + * 是否被引用 + */ + private Integer isUsed; /** * 编号 */ @@ -90,7 +93,11 @@ public class DepartmentListDTO { */ @TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag") private int forbiddenTag; - + /** + * 操作列 + */ + @TableTitle(title = "", dataIndex = "operate", key = "operate") + private String operate; /** * 子节点 */ diff --git a/src/com/engine/organization/entity/department/param/DeptSearchParam.java b/src/com/engine/organization/entity/department/param/DeptSearchParam.java index 75004134..619b9ec1 100644 --- a/src/com/engine/organization/entity/department/param/DeptSearchParam.java +++ b/src/com/engine/organization/entity/department/param/DeptSearchParam.java @@ -29,9 +29,11 @@ public class DeptSearchParam extends BaseQueryParam { private Long parentDept; - private Integer deptPrincipal; + private Long deptPrincipal; private Integer showOrder; + private String description; + private Boolean forbiddenTag; } diff --git a/src/com/engine/organization/entity/department/po/DepartmentPO.java b/src/com/engine/organization/entity/department/po/DepartmentPO.java index 512b0367..c93a2ae3 100644 --- a/src/com/engine/organization/entity/department/po/DepartmentPO.java +++ b/src/com/engine/organization/entity/department/po/DepartmentPO.java @@ -31,7 +31,7 @@ public class DepartmentPO { private Long parentDept; - private Integer deptPrincipal; //部门负责人 + private Long deptPrincipal; //部门负责人 private Integer showOrder; diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java new file mode 100644 index 00000000..b493b975 --- /dev/null +++ b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java @@ -0,0 +1,43 @@ +package com.engine.organization.entity.employee.vo; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "80e7830c-18e8-4e14-8241-18821195ef31", + fields = "t.id," + + "t.lastname," + + "t.sex", + fromSql = "FROM HrmResource t ", + orderby = "id desc", + primarykey = "id", + tableType = WeaTableType.NONE +) +public class EmployeeTableVO { + + @OrganizationTableColumn(column = "id", display = false) + private Long id; + + @OrganizationTableColumn(text = "姓名", width = "50%", column = "lastname") + private String lastname; + + @OrganizationTableColumn(text = "性别", width = "50%", column = "sex") + private String sex; + + +} diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 479fcc67..192c1ae6 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -41,14 +41,14 @@ public class ExtendInfoBO { // 封装对象为table组件 public static List> convertInfoListToTable(User user, List infoPOList, int viewAttr, boolean showLabel) { - List> lsCol = new ArrayList>(); - Map col = null; + List> lsCol = new ArrayList<>(); + Map col; int width = 100 / infoPOList.size(); for (int i = 0; infoPOList != null && i < infoPOList.size(); i++) { ExtendInfoPO extendInfoPO = infoPOList.get(i); String tmpkey = extendInfoPO.getFieldName(); - col = new HashMap(); + col = new HashMap<>(); col.put("title", extendInfoPO.getFieldNameDesc()); col.put("key", tmpkey); @@ -114,7 +114,7 @@ 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(), "").getBrowserConditionParam(); + BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), extendInfoPO.getCustomBrowserId()).getBrowserConditionParam(); fieldItem.setBrowserConditionParam(browserConditionParam); } diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index aba76bc9..f7b4d707 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -99,6 +99,11 @@ public class ExtendInfoPO { */ private Integer browserShow; + /** + * 自定义浏览按钮标识 + */ + private String customBrowserId; + /** * 显示顺序 */ diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java new file mode 100644 index 00000000..89f50305 --- /dev/null +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -0,0 +1,121 @@ +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.mapper.job.JobMapper; +import com.engine.organization.transmethod.JobTransMethod; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections.CollectionUtils; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/30 + * @version: 1.0 + */ +public class JobBO { + + public static JobPO convertParamsToPO(JobSearchParam param, long employeeId) { + if (null == param) { + return null; + } + return JobPO + .builder() + .id(param.getId() == null ? 0 : param.getId()) + .jobNo(param.getJobNo()) + .jobName(param.getJobName()) + .parentComp(param.getParentComp()) + .parentDept(param.getParentDept()) + .sequenceId(param.getSequenceId()) + .schemeId(param.getSchemeId()) + .parentJob(param.getParentJob()) + .isKey(param.getIsKey()) + .workplace(param.getWorkplace()) + .description(param.getDescription()) + .workDuty(param.getWorkDuty()) + .workAuthority(param.getWorkAuthority()) + .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .creator(employeeId) + .build(); + } + + + public static List buildDTOList(Collection list) { + // 递归添加父级数据 + Map poMaps = list.stream().collect(Collectors.toMap(JobListDTO::getId, item -> item)); + + List dtoList = list.stream().map(e -> + JobListDTO.builder() + .id(e.getId()) + .jobNo(e.getJobNo()) + .jobName(e.getJobName()) + .compName(e.getCompName()) + .deptName(e.getDeptName()) + .sequenceName(e.getSequenceName()) + .schemeName(e.getSchemeName()) + .parentJob(e.getParentJob()) + .parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) + .isKey(JobTransMethod.getIsKeySpan(e.getIsKey())) + .forbiddenTag(e.getForbiddenTag()) + .build()).collect(Collectors.toList()); + Map> collects = dtoList.stream().filter(item -> null != item.getParentJob() && 0 != item.getParentJob()).collect(Collectors.groupingBy(JobListDTO::getParentJob)); + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(JobMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } + }).filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); + } + + + public static List buildJobDTOList(List allList, List filterJobPOs) { + // 搜索结果为空,直接返回空 + if (CollectionUtils.isEmpty(filterJobPOs)) { + return Collections.emptyList(); + } + // 递归添加父级数据 + Map poMaps = allList.stream().collect(Collectors.toMap(JobListDTO::getId, item -> item)); + List addedList = new ArrayList<>(); + for (JobListDTO dto : filterJobPOs) { + dealParentData(addedList, dto, poMaps); + } + // 递归添加父级数据 + return buildDTOList(addedList); + + } + + /** + * 递归获取查询后数据的父级数据 + * + * @param addedList + * @param po + * @param poMaps + */ + private static void dealParentData(List addedList, JobListDTO po, Map poMaps) { + if (!addedList.contains(po)) { + addedList.add(po); + } + JobListDTO parentDto = poMaps.get(po.getParentJob()); + if (null != parentDto) { + dealParentData(addedList, parentDto, poMaps); + } + } + +} diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java new file mode 100644 index 00000000..040b3279 --- /dev/null +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -0,0 +1,100 @@ +package com.engine.organization.entity.job.dto; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableOperate; +import com.engine.organization.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/30 + * @version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "0efea835-dfc5-11ec-a09e-00e04c680716", + tableType = WeaTableType.NONE, + operates = { + @OrganizationTableOperate(text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除"), + @OrganizationTableOperate(index = "2", text = "合并"), + @OrganizationTableOperate(index = "3", text = "转移"), + @OrganizationTableOperate(index = "4", text = "联查岗位"), + @OrganizationTableOperate(index = "4", text = "联查人员") + }) +public class JobListDTO { + /** + * 主键 + */ + private Long id; + /** + * 是否被引用 + */ + private Integer isUsed; + /** + * 编号 + */ + @TableTitle(title = "编号", dataIndex = "jobNo", key = "jobNo") + private String jobNo; + /** + * 名称 + */ + @TableTitle(title = "名称", dataIndex = "jobName", key = "jobName") + private String jobName; + /** + * 所属分部 + */ + @TableTitle(title = "所属分部", dataIndex = "compName", key = "compName") + private String compName; + /** + * 所属部门 + */ + @TableTitle(title = "所属部门", dataIndex = "deptName", key = "deptName") + private String deptName; + /** + * 岗位序列 + */ + @TableTitle(title = "岗位序列", dataIndex = "sequenceName", key = "sequenceName") + private String sequenceName; + /** + * 等级方案 + */ + @TableTitle(title = "等级方案", dataIndex = "schemeName", key = "schemeName") + private String schemeName; + /** + * 上级岗位 + */ + @TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") + private String parentJobName; + private Long parentJob; + /** + * 是否关键岗 + */ + @TableTitle(title = "是否关键岗", dataIndex = "isKey", key = "isKey") + private String isKey; + + /** + * 禁用标记 + */ + @TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag") + private Integer forbiddenTag; + + /** + * 操作列 + */ + @TableTitle(title = "", dataIndex = "operate", key = "operate") + private String operate; + /** + * 子节点 + */ + private List children; +} diff --git a/src/com/engine/organization/entity/job/param/JobSearchParam.java b/src/com/engine/organization/entity/job/param/JobSearchParam.java new file mode 100644 index 00000000..69088ae8 --- /dev/null +++ b/src/com/engine/organization/entity/job/param/JobSearchParam.java @@ -0,0 +1,76 @@ +package com.engine.organization.entity.job.param; + +import com.engine.organization.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/30 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JobSearchParam extends BaseQueryParam { + /** + * 主键 + */ + private Long id; + /** + * 编号 + */ + private String jobNo; + /** + * 名称 + */ + private String jobName; + /** + * 所属分部 + */ + private Long parentComp; + /** + * 所属部门 + */ + private Long parentDept; + /** + * 岗位序列 + */ + private Long sequenceId; + /** + * 等级方案 + */ + private Long schemeId; + /** + * 上级岗位 + */ + private Long parentJob; + /** + * 是否关键岗 + */ + private Integer isKey; + /** + * 工作地点 + */ + private String workplace; + /** + * 工作概述 + */ + private String description; + /** + * 任职职责 + */ + private String workDuty; + /** + * 工作权限 + */ + private String workAuthority; + /** + * 禁用标记 + */ + private Boolean forbiddenTag; +} diff --git a/src/com/engine/organization/entity/job/po/JobDTPO.java b/src/com/engine/organization/entity/job/po/JobDTPO.java new file mode 100644 index 00000000..a259cfbe --- /dev/null +++ b/src/com/engine/organization/entity/job/po/JobDTPO.java @@ -0,0 +1,32 @@ +package com.engine.organization.entity.job.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JobDTPO { + private Long id; + private Long mainId; + private String levelId; + private String gradeId; + private String levelIdspan; + private String gradeIdspan; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/job/po/JobPO.java b/src/com/engine/organization/entity/job/po/JobPO.java new file mode 100644 index 00000000..20d224bd --- /dev/null +++ b/src/com/engine/organization/entity/job/po/JobPO.java @@ -0,0 +1,85 @@ +package com.engine.organization.entity.job.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/30 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JobPO { + /** + * 主键 + */ + private Long id; + /** + * 编号 + */ + private String jobNo; + /** + * 名称 + */ + private String jobName; + /** + * 所属分部 + */ + private Long parentComp; + /** + * 所属部门 + */ + private Long parentDept; + /** + * 岗位序列 + */ + private Long sequenceId; + /** + * 等级方案 + */ + private Long schemeId; + /** + * 上级岗位 + */ + private Long parentJob; + /** + * 是否关键岗 + */ + private Integer isKey; + /** + * 工作地点 + */ + private String workplace; + /** + * 工作概述 + */ + private String description; + /** + * 任职职责 + */ + private String workDuty; + /** + * 工作权限 + */ + private String workAuthority; + /** + * 禁用标记 + */ + private Integer forbiddenTag; + + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; + + +} diff --git a/src/com/engine/organization/entity/post/dto/PostDTO.java b/src/com/engine/organization/entity/postion/dto/PostDTO.java similarity index 88% rename from src/com/engine/organization/entity/post/dto/PostDTO.java rename to src/com/engine/organization/entity/postion/dto/PostDTO.java index 1285763b..c06fd8ac 100644 --- a/src/com/engine/organization/entity/post/dto/PostDTO.java +++ b/src/com/engine/organization/entity/postion/dto/PostDTO.java @@ -1,6 +1,6 @@ -package com.engine.organization.entity.post.dto; +package com.engine.organization.entity.postion.dto; -import com.engine.organization.entity.post.po.PostPO; +import com.engine.organization.entity.postion.po.PostPO; import java.util.Date; diff --git a/src/com/engine/organization/entity/post/dto/PostInfoDTO.java b/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java similarity index 88% rename from src/com/engine/organization/entity/post/dto/PostInfoDTO.java rename to src/com/engine/organization/entity/postion/dto/PostInfoDTO.java index 47bcde77..a21c6de3 100644 --- a/src/com/engine/organization/entity/post/dto/PostInfoDTO.java +++ b/src/com/engine/organization/entity/postion/dto/PostInfoDTO.java @@ -1,7 +1,7 @@ -package com.engine.organization.entity.post.dto; +package com.engine.organization.entity.postion.dto; -import com.engine.organization.entity.post.param.PostInfoSearchParam; -import com.engine.organization.entity.post.po.PostInfoPO; +import com.engine.organization.entity.postion.param.PostInfoSearchParam; +import com.engine.organization.entity.postion.po.PostInfoPO; import java.util.Date; diff --git a/src/com/engine/organization/entity/post/param/PostInfoSearchParam.java b/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java similarity index 94% rename from src/com/engine/organization/entity/post/param/PostInfoSearchParam.java rename to src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java index 1a5bca15..fa309dff 100644 --- a/src/com/engine/organization/entity/post/param/PostInfoSearchParam.java +++ b/src/com/engine/organization/entity/postion/param/PostInfoSearchParam.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.post.param; +package com.engine.organization.entity.postion.param; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/com/engine/organization/entity/post/po/PostInfoPO.java b/src/com/engine/organization/entity/postion/po/PostInfoPO.java similarity index 95% rename from src/com/engine/organization/entity/post/po/PostInfoPO.java rename to src/com/engine/organization/entity/postion/po/PostInfoPO.java index baf8c7d8..d780e7f3 100644 --- a/src/com/engine/organization/entity/post/po/PostInfoPO.java +++ b/src/com/engine/organization/entity/postion/po/PostInfoPO.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.post.po; +package com.engine.organization.entity.postion.po; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/com/engine/organization/entity/post/po/PostPO.java b/src/com/engine/organization/entity/postion/po/PostPO.java similarity index 92% rename from src/com/engine/organization/entity/post/po/PostPO.java rename to src/com/engine/organization/entity/postion/po/PostPO.java index 91120587..0767a090 100644 --- a/src/com/engine/organization/entity/post/po/PostPO.java +++ b/src/com/engine/organization/entity/postion/po/PostPO.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.post.po; +package com.engine.organization.entity.postion.po; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/com/engine/organization/entity/post/vo/PostInfoTableVO.java b/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java similarity index 98% rename from src/com/engine/organization/entity/post/vo/PostInfoTableVO.java rename to src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java index 3bbc6ef7..62d6dc16 100644 --- a/src/com/engine/organization/entity/post/vo/PostInfoTableVO.java +++ b/src/com/engine/organization/entity/postion/vo/PostInfoTableVO.java @@ -1,4 +1,4 @@ -package com.engine.organization.entity.post.vo; +package com.engine.organization.entity.postion.vo; import com.engine.organization.annotation.OrganizationTable; import com.engine.organization.annotation.OrganizationTableColumn; diff --git a/src/com/engine/organization/entity/scheme/po/GradePO.java b/src/com/engine/organization/entity/scheme/po/GradePO.java index bc16d400..3d1a435f 100644 --- a/src/com/engine/organization/entity/scheme/po/GradePO.java +++ b/src/com/engine/organization/entity/scheme/po/GradePO.java @@ -46,6 +46,10 @@ public class GradePO { * 禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/po/LevelPO.java b/src/com/engine/organization/entity/scheme/po/LevelPO.java index b20d3c5d..3a1e9819 100644 --- a/src/com/engine/organization/entity/scheme/po/LevelPO.java +++ b/src/com/engine/organization/entity/scheme/po/LevelPO.java @@ -44,6 +44,10 @@ public class LevelPO { *禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/po/SchemePO.java b/src/com/engine/organization/entity/scheme/po/SchemePO.java index 9561eeef..1cf7918b 100644 --- a/src/com/engine/organization/entity/scheme/po/SchemePO.java +++ b/src/com/engine/organization/entity/scheme/po/SchemePO.java @@ -13,25 +13,29 @@ import java.util.Date; @AllArgsConstructor public class SchemePO { /** - *自增主键 + * 自增主键 */ private long id; /** - *编号 + * 编号 */ private String schemeNo; /** - *方案名称 + * 方案名称 */ private String schemeName; /** - *方案说明 + * 方案说明 */ private String schemeDescription; /** - *禁用标记 + * 禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java index cc11aa94..6f61a22e 100644 --- a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.scheme.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,14 +24,19 @@ import lombok.NoArgsConstructor; " t.description ," + " a.scheme_name ," + " t.level_id ," + - " t.forbidden_tag", + " t.forbidden_tag," + + "t.is_used", fromSql = "from jcl_org_grade t inner join jcl_org_scheme a on t.scheme_id = a.id ", orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class GradeTableVO { /** @@ -40,6 +44,11 @@ public class GradeTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 */ @@ -67,7 +76,7 @@ public class GradeTableVO { /** * 职等 */ - @OrganizationTableColumn(text = "职等", width = "20%", column = "level_id",transmethod = "com.engine.organization.transmethod.LevelTransMethod.getLevelId") + @OrganizationTableColumn(text = "职等", width = "20%", column = "level_id", transmethod = "com.engine.organization.transmethod.LevelTransMethod.getLevelId") private String levelId; /** diff --git a/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java b/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java index 8b6a841e..f33db78a 100644 --- a/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.scheme.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,6 +20,7 @@ import lombok.NoArgsConstructor; "s.scheme_name," + "t.scheme_id," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -29,9 +29,11 @@ import lombok.NoArgsConstructor; orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") ) public class LevelTableVO { /** @@ -39,6 +41,11 @@ public class LevelTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 @@ -56,11 +63,6 @@ public class LevelTableVO { */ @OrganizationTableColumn(text = "描述说明", width = "20%", column = "description") private String description; - /** - * 等级方案 - */ - // @OrganizationTableColumn(text = "等级方案", width = "20%", column = "level_scheme") - private String schemeId; /** * 等级方案 diff --git a/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java b/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java index 9dd69157..ed40b29c 100644 --- a/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.scheme.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -19,6 +18,7 @@ import lombok.NoArgsConstructor; "t.scheme_name," + "t.scheme_description," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -29,7 +29,10 @@ import lombok.NoArgsConstructor; operates = { @OrganizationTableOperate(index = "0", text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") ) public class SchemeTableVO { /** @@ -37,7 +40,11 @@ public class SchemeTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; - + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 方案编号 diff --git a/src/com/engine/organization/entity/searchtree/SearchTree.java b/src/com/engine/organization/entity/searchtree/SearchTree.java new file mode 100644 index 00000000..d15d125c --- /dev/null +++ b/src/com/engine/organization/entity/searchtree/SearchTree.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.searchtree; + +import com.api.hrm.bean.TreeNode; +import lombok.Data; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +@Data +public class SearchTree extends TreeNode { + private String companyid; + private String isVirtual; + private String psubcompanyid; + private String displayType; + private boolean isCanceled; + private String requestParams; + private String parentComp; +} \ No newline at end of file diff --git a/src/com/engine/organization/entity/searchtree/SearchTreeParams.java b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java new file mode 100644 index 00000000..46d9959f --- /dev/null +++ b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java @@ -0,0 +1,30 @@ +package com.engine.organization.entity.searchtree; + +import lombok.Data; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +@Data +public class SearchTreeParams { + /** + * 数据类型 + *

+ * 0:集团 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private String type; + private String id; + private String isVirtual; + // 树搜索条件 + private String keyword; + private String virtualCompanyid; + private String isLoadSubDepartment; + + +} diff --git a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java index 0bd10ec5..0c1b404b 100644 --- a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java +++ b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.sequence.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,6 +24,7 @@ import lombok.NoArgsConstructor; "t.description," + "s.scheme_name," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -33,9 +33,13 @@ import lombok.NoArgsConstructor; orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class SequenceTableVO { @@ -44,7 +48,11 @@ public class SequenceTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; - + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 */ diff --git a/src/com/engine/organization/entity/staff/bo/StaffBO.java b/src/com/engine/organization/entity/staff/bo/StaffBO.java new file mode 100644 index 00000000..aa8a3b56 --- /dev/null +++ b/src/com/engine/organization/entity/staff/bo/StaffBO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.staff.bo; + +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.entity.staff.po.StaffPO; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffBO { + public static StaffPO convertParamToPO(StaffSearchParam param, Long employeeId) { + if (param == null) { + return null; + } + return StaffPO.builder() + .id(param.getId()) + .planId(param.getPlanId()) + .compId(param.getCompId()) + .deptId(param.getDeptId()) + .jobId(param.getJobId()) + .staffNum(param.getStaffNum()) + .controlPolicy(param.getControlPolicy()) + .permanentNum(param.getPermanentNum()) + .freezeNum(param.getFreezeNum()) + .lackStatus(param.getLackStatus()) + .staffDesc(param.getStaffDesc()) + .description(param.getDescription()) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .creator(employeeId) + .build(); + } +} diff --git a/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java new file mode 100644 index 00000000..83efcb56 --- /dev/null +++ b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java @@ -0,0 +1,35 @@ +package com.engine.organization.entity.staff.bo; + +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.entity.staff.po.StaffPlanPO; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanBO { + public static StaffPlanPO convertParamToPO(StaffPlanSearchParam param, Long employeeId) { + if (param == null) { + return null; + } + return StaffPlanPO.builder() + .id(param.getId()) + .planNo(param.getPlanNo()) + .planName(param.getPlanName()) + .planYear(param.getPlanYear()) + .timeStart(param.getTimeStart()) + .timeEnd(param.getTimeEnd()) + .companyId(param.getCompanyId()) + .description(param.getDescription()) + .forbiddenTag(param.getForbiddenTag() == null ? 0 : 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 new file mode 100644 index 00000000..fd55a60e --- /dev/null +++ b/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java @@ -0,0 +1,57 @@ +package com.engine.organization.entity.staff.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffPlanSearchParam { + /** + * 主键 + */ + private Long id; + /** + * 编号 + */ + private String planNo; + /** + * 名称 + */ + private String planName; + /** + * 年度 + */ + private Integer planYear; + /** + * 时间开始 + */ + private Date timeStart; + /** + * 时间结束 + */ + private Date timeEnd; + /** + * 适用公司 + */ + private String companyId; + /** + * 说明 + */ + private String description; + /** + * 状态 + */ + private Boolean forbiddenTag; +} diff --git a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java new file mode 100644 index 00000000..711ea22e --- /dev/null +++ b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java @@ -0,0 +1,68 @@ +package com.engine.organization.entity.staff.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffSearchParam { + /** + * 主键 + */ + private Long id; + /** + * 方案id + */ + private Long planId; + /** + * 分部 + */ + private Long compId; + /** + * 部门 + */ + private Long deptId; + /** + * 岗位 + */ + private Long jobId; + /** + * 编制数 + */ + private Integer staffNum; + /** + * 控制策略 + */ + private Integer controlPolicy; + /** + * 在编 + */ + private Integer permanentNum; + /** + * 冻结数 + */ + private Integer freezeNum; + /** + * 缺编状态 + */ + private Integer lackStatus; + /** + * 编制描述 + */ + private String staffDesc; + + /** + * 说明 + */ + private String description; +} diff --git a/src/com/engine/organization/entity/staff/po/StaffPO.java b/src/com/engine/organization/entity/staff/po/StaffPO.java new file mode 100644 index 00000000..3a813954 --- /dev/null +++ b/src/com/engine/organization/entity/staff/po/StaffPO.java @@ -0,0 +1,75 @@ +package com.engine.organization.entity.staff.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffPO { + /** + * 主键 + */ + private Long id; + /** + * 方案id + */ + private Long planId; + /** + * 分部 + */ + private Long compId; + /** + * 部门 + */ + private Long deptId; + /** + * 岗位 + */ + private Long jobId; + /** + * 编制数 + */ + private Integer staffNum; + /** + * 控制策略 + */ + private Integer controlPolicy; + /** + * 在编 + */ + private Integer permanentNum; + /** + * 冻结数 + */ + private Integer freezeNum; + /** + * 缺编状态 + */ + private Integer lackStatus; + /** + * 编制描述 + */ + private String staffDesc; + /** + * 说明 + */ + private String description; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; + +} diff --git a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java index a396cf57..7092df4a 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java @@ -37,11 +37,11 @@ public class StaffPlanPO { /** * 时间开始 */ - private Date time_start; + private Date timeStart; /** * 时间结束 */ - private Date time_end; + private Date timeEnd; /** * 适用公司 */ diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java new file mode 100644 index 00000000..68f3ef9e --- /dev/null +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -0,0 +1,79 @@ +package com.engine.organization.entity.staff.vo; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "e04abd72-dbd6-11ec-b69e-00ffcbed7508", + fields = "t.id,t.is_used, t.plan_no, t.plan_name, t.plan_year, t.time_start, t.time_end, t.forbidden_tag", + fromSql = "FROM jcl_org_staffplan t ", + orderby = "id desc", + primarykey = "id", + operates = { + @OrganizationTableOperate(text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除"), + @OrganizationTableOperate(index = "2", text = "发起编制流程") + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatStaffOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + +) +public class StaffPlanTableVO { + + /** + * 主键 + */ + @OrganizationTableColumn(column = "id", display = false) + private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; + /** + * 编号 + */ + @OrganizationTableColumn(text = "编号", width = "16%", column = "plan_no") + private String planNo; + /** + * 名称 + */ + @OrganizationTableColumn(text = "名称", width = "16%", column = "plan_name") + private String planName; + /** + * 年度 + */ + @OrganizationTableColumn(text = "年度", width = "16%", column = "plan_year") + private Integer planYear; + /** + * 时间开始 + */ + @OrganizationTableColumn(text = "时间开始", width = "16%", column = "time_start") + private Date timeStart; + /** + * 时间结束 + */ + @OrganizationTableColumn(text = "时间结束", width = "16%", column = "time_end") + private Date timeEnd; + /** + * 状态 + */ + @OrganizationTableColumn(text = "状态", width = "16%", column = "forbidden_tag") + private Integer forbiddenTag; + +} diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java new file mode 100644 index 00000000..c8fab370 --- /dev/null +++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java @@ -0,0 +1,91 @@ +package com.engine.organization.entity.staff.vo; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "0cdfd5bb-dc09-11ec-b69e-00ffcbed7508", + fields = "id,is_used,plan_id,comp_id,dept_id,job_id,staff_num,permanent_num,freeze_num,lack_status,staff_desc", + fromSql = "FROM jcl_org_staff t ", + orderby = "id desc", + primarykey = "id", + operates = { + @OrganizationTableOperate(text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除"), + @OrganizationTableOperate(index = "2", text = "变更") + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatStaffOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + +) +public class StaffTableVO { + /** + * 主键 + */ + @OrganizationTableColumn(column = "id", display = false) + private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; + /** + * 方案id + */ + @OrganizationTableColumn(text = "方案", width = "10%", column = "plan_id", transmethod = "com.engine.organization.transmethod.StaffPlanTransMethod.getSpanById") + private String planId; + /** + * 分部 + */ + @OrganizationTableColumn(text = "分部", width = "10%", column = "comp_id", transmethod = "com.engine.organization.transmethod.CompTransMethod.getSpanById") + private String compId; + /** + * 部门 + */ + @OrganizationTableColumn(text = "部门", width = "10%", column = "dept_id", transmethod = "com.engine.organization.transmethod.DepartmentTransMethod.getSpanById") + private String deptId; + /** + * 岗位 + */ + @OrganizationTableColumn(text = "岗位", width = "10%", column = "job_id", transmethod = "com.engine.organization.transmethod.JobTransMethod.getSpanById") + private String jobId; + /** + * 编制数 + */ + @OrganizationTableColumn(text = "编制数", width = "10%", column = "staff_num") + private Integer staffNum; + /** + * 在编 + */ + @OrganizationTableColumn(text = "在编", width = "10%", column = "permanent_num") + private Integer permanentNum; + /** + * 冻结数 + */ + @OrganizationTableColumn(text = "冻结数", width = "10%", column = "freeze_num") + private Integer freezeNum; + /** + * 缺编状态 + */ + @OrganizationTableColumn(text = "缺编状态", width = "10%", column = "lack_status") + private Integer lackStatus; + /** + * 编制描述 + */ + @OrganizationTableColumn(text = "编制描述", width = "10%", column = "staff_desc") + private String staffDesc; + +} diff --git a/src/com/engine/organization/enums/RuleCodeTypeEnum.java b/src/com/engine/organization/enums/RuleCodeTypeEnum.java new file mode 100644 index 00000000..a8988d3b --- /dev/null +++ b/src/com/engine/organization/enums/RuleCodeTypeEnum.java @@ -0,0 +1,45 @@ +package com.engine.organization.enums; + + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public enum RuleCodeTypeEnum { + + + SUBCOMPANY("SUBCOMPANY"), + DEPARTMENT("DEPARTMENT"), + JOBTITLES("JOBTITLES"), + USER("USER"), + YEAR("YEAR"), + MONTH("MONTH"), + DAY("DAY"), + STRING("STRING"), + NUMBER("NUMBER"); + + private String value; + + RuleCodeTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static RuleCodeTypeEnum getByValue(String value) { + for (RuleCodeTypeEnum ruleCodeType : values()) { + if (ruleCodeType.getValue().equals(value)) { + return ruleCodeType; + } + } + return null; + } +} diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java new file mode 100644 index 00000000..190256be --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java @@ -0,0 +1,12 @@ +package com.engine.organization.mapper.codesetting; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public interface CodeRuleDetailMapper { + + void delete(Long codeRuleId); +} diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml new file mode 100644 index 00000000..1a26183b --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml @@ -0,0 +1,9 @@ + + + + + + + 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 new file mode 100644 index 00000000..69f1e3b7 --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java @@ -0,0 +1,19 @@ +package com.engine.organization.mapper.codesetting; + +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import org.apache.ibatis.annotations.Param; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public interface CodeRuleMapper { + + Long getCodeRuleId(@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 new file mode 100644 index 00000000..6368201e --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + update JCL_CODERULE + + serial_enable = #{serialEnable} + oneself_type = #{oneselfType} + creator=#{creator}, + update_time=#{updateTime}, + + WHERE id = #{codeRuleId} AND delete_type = 0 + + + + + INSERT INTO JCL_CODERULE + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + serial_type, + + + serial_enable, + + + oneself_type, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + serialType, + + + serialEnable, + + + oneselfType, + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/common/RefreshUseMapper.java b/src/com/engine/organization/mapper/common/RefreshUseMapper.java new file mode 100644 index 00000000..8d34418b --- /dev/null +++ b/src/com/engine/organization/mapper/common/RefreshUseMapper.java @@ -0,0 +1,17 @@ +package com.engine.organization.mapper.common; + +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +public interface RefreshUseMapper { + int updateIsUsedByIds(@Param("tableName") String tableName, @Param("ids") Collection ids, @Param("isUsed") int isUsed); + + int initIsUseStatus(@Param("tableName") String tableName); +} diff --git a/src/com/engine/organization/mapper/common/RefreshUseMapper.xml b/src/com/engine/organization/mapper/common/RefreshUseMapper.xml new file mode 100644 index 00000000..dd84e80c --- /dev/null +++ b/src/com/engine/organization/mapper/common/RefreshUseMapper.xml @@ -0,0 +1,20 @@ + + + + + + update ${tableName} set is_used = #{isUsed} where delete_type = 0 and id + + not + + in + + #{id} + + + + update ${tableName} + set is_used = 0 + where delete_type = 0 + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index addd2c09..55c8e024 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -1,10 +1,11 @@ package com.engine.organization.mapper.comp; -import com.engine.organization.entity.comp.po.CompPO; +import com.engine.organization.entity.company.po.CompPO; import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @description: TODO @@ -20,6 +21,13 @@ public interface CompMapper { */ List list(); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 根据搜索条件查询数据 * @@ -42,6 +50,23 @@ public interface CompMapper { */ List listChild(@Param("ids") Collection ids); + /** + * 获取当前ID的子元素 + * + * @param pid + * @return + */ + List listChildByPID(@Param("pid") String pid); + + + /** + * 获取当前ID的子元素个数 + * + * @param pid + * @return + */ + int countChildByPID(@Param("pid") long pid); + /** * 根据ID查询数据 * @@ -60,6 +85,23 @@ public interface CompMapper { List listByNo(@Param("compNo") String compNo); + /** + * 浏览按钮展示数据查询 + * + * @param ids + * @return + */ + List> listCompsByIds(@Param("ids") Collection ids); + + /** + * 根据ID批量查询数据 + * @param ids + * @return + */ + List getCompsByIds(@Param("ids") Collection ids); + + + /** * 保存公司/分部基础信息 * @@ -86,7 +128,7 @@ public interface CompMapper { int updateForbiddenTagById(CompPO compPO); /** - * 批量删除职务信息方案 + * 批量删除 * * @param ids */ diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index 38296611..042a8b3f 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -1,7 +1,7 @@ - + @@ -50,7 +50,7 @@ and NVL(parent_company,'0')='0' - INSERT INTO jcl_org_comp @@ -171,12 +171,13 @@ and id = #{id} - select from jcl_org_comp t where comp_no = #{compNo} AND delete_type = 0 - SELECT FROM @@ -197,6 +198,60 @@ + + + + + + + update jcl_org_comp @@ -215,7 +270,7 @@ - + update jcl_org_comp creator=#{creator}, diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index f4eb2d5f..84569713 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -14,28 +15,94 @@ import java.util.List; **/ public interface DepartmentMapper { - List getDeptListByCompId(); + List getDeptListByCompId(@Param("parentComp") Integer parentComp); List getDeptListByPId(@Param("PId") Long PId); - List getDeptList(DepartmentPO departmentPO); + int countChildByPID(@Param("pid") Long pid); + + + /** + * 查询所有数据 + * + * @return + */ + List list(); + + /** + * 根据No查询数据 + * + * @param deptNo + * @return + */ + List listByNo(@Param("deptNo") String deptNo); /** - * 获取顶级数据 + * 根据搜索条件查询数据 * * @return */ - List listParent(); + List listByFilter(DepartmentPO departmentPO); /** - * 获取子层级数据 + * 浏览按钮展示数据用 * * @param ids * @return */ - List listChild(@Param("ids") Collection ids); + List> listDeptsByIds(@Param("ids") Collection ids); - DepartmentPO getDeptById(@Param("id") int id); + /** + * 根据ID查询数据 + * + * @param id + * @return + */ + DepartmentPO getDeptById(@Param("id") long id); + /** + * 根据ID查询名称 + * + * @param id + * @return + */ String getDeptNameById(@Param("id") int id); + + /** + * 添加数据 + * + * @param departmentPO + * @return + */ + int insertIgnoreNull(DepartmentPO departmentPO); + + /** + * 更新主表内容 + * + * @param departmentPO + * @return + */ + int updateBaseDept(DepartmentPO departmentPO); + + /** + * 更新禁用标记 + * + * @param departmentPO + * @return + */ + int updateForbiddenTagById(DepartmentPO departmentPO); + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index 11061587..1e5b00a9 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -18,10 +18,27 @@ + + + t + . + id + , + t.dept_no, + t.dept_name, + t.dept_name_short, + t.parent_comp, + t.parent_dept, + t.dept_principal, + t.show_order, + t.forbidden_tag + + - - + select + id, + dept_name as name + from jcl_org_dept t + WHERE delete_type = 0 + AND id IN + + #{id} + - SELECT - t.id, - t.dept_no, - t.dept_name, - t.dept_name_short, - t.parent_comp, - t.parent_dept, - t.dept_principal, - t.show_order, - t.forbidden_tag - FROM - jcl_org_dept t + + FROM jcl_org_dept t WHERE t.delete_type = 0 - AND parent_dept IN + + + + + + + INSERT INTO jcl_org_dept + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + dept_no, + + + dept_name, + + + dept_name_short, + + + parent_comp, + + + parent_dept, + + + dept_principal, + + + show_order, + + + description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{deptNo}, + + + #{deptName}, + + + #{deptNameShort}, + + + #{parentComp}, + + + #{parentDept}, + + + #{deptPrincipal}, + + + #{showOrder}, + + + #{description}, + + 0, + + + + + update jcl_org_dept + + creator=#{creator}, + update_time=#{updateTime}, + dept_name=#{deptName}, + dept_name_short=#{deptNameShort}, + parent_comp=#{parentComp}, + parent_dept=#{parentDept}, + dept_principal=#{deptPrincipal}, + show_order=#{showOrder}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + update jcl_org_dept + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_dept + SET delete_type = 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 d6533bc5..261976ae 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.java +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.java @@ -1,9 +1,7 @@ package com.engine.organization.mapper.employee; -import com.engine.organization.entity.department.po.DepartmentPO; import org.apache.ibatis.annotations.Param; -import java.util.List; /** * @Author weaver_cl diff --git a/src/com/engine/organization/mapper/job/JobDTMapper.java b/src/com/engine/organization/mapper/job/JobDTMapper.java new file mode 100644 index 00000000..77c37b70 --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobDTMapper.java @@ -0,0 +1,37 @@ +package com.engine.organization.mapper.job; + +import com.engine.organization.entity.job.po.JobDTPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ +public interface JobDTMapper { + /** + * 查询明细表数据 + * + * @param mainId + * @return + */ + List listJobDTByMainID(@Param("mainId") Long mainId); + /** + * 批量删除 + * + * @param mainId + */ + int deleteByIds(@Param("mainId") Long mainId); + + /** + * 添加数据 + * + * @param jobDTPO + * @return + */ + int insertIgnoreNull(JobDTPO jobDTPO); + +} diff --git a/src/com/engine/organization/mapper/job/JobDTMapper.xml b/src/com/engine/organization/mapper/job/JobDTMapper.xml new file mode 100644 index 00000000..5e196887 --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobDTMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + t + . + id + , + t.mainid, + t.level_id, + t.grade_id, + t.level_id_span, + t.grade_id_span + + + INSERT INTO jcl_org_jobdt + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + mainid, + + + level_id, + + + grade_id, + + + level_id_span, + + + grade_id_span, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{mainId}, + + + #{levelId}, + + + #{gradeId}, + + + #{levelIdspan}, + + + #{gradeIdspan}, + + + + + + delete + from jcl_org_jobdt + where mainid = #{mainId} + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java new file mode 100644 index 00000000..46fb890b --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -0,0 +1,104 @@ +package com.engine.organization.mapper.job; + +import com.engine.organization.entity.job.dto.JobListDTO; +import com.engine.organization.entity.job.po.JobPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/24 + * @version: 1.0 + */ +public interface JobMapper { + + /** + * 根据搜索条件查询数据 + * + * @return + */ + List listByFilter(JobPO jobPO); + + /** + * 展示所有列表数据 + * + * @return + */ + List listNoFilter(); + + /** + * 根据ID查询元素 + * + * @param id + * @return + */ + JobPO getJobById(@Param("id") Long id); + + /** + * 根据父ID查询元素 + * + * @param pid + * @return + */ + List getJobsByPid(@Param("pid") Long pid); + + /** + * 浏览按钮展示数据用 + * + * @param ids + * @return + */ + List> listJobsByIds(@Param("ids") Collection ids); + + /** + * 根据编号查询数据 + * + * @param jobNo + * @return + */ + List listByNo(@Param("jobNo") String jobNo); + + /** + * 添加数据 + * + * @param jobPO + * @return + */ + int insertIgnoreNull(JobPO jobPO); + + + /** + * 更新主表内容 + * + * @param jobPO + * @return + */ + int updateBaseJob(JobPO jobPO); + + /** + * 更新禁用标识 + * + * @param id + * @param forbiddenTag + * @return + */ + int updateForbiddenTagById(@Param("id") long id, @Param("forbiddenTag") int forbiddenTag); + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); +} diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml new file mode 100644 index 00000000..214f8d5d --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + id + , + t.job_no, + t.job_name, + t.parent_comp, + t.parent_dept, + t.sequence_id, + t.scheme_id, + t.parent_job, + t.is_key, + t.workplace, + t.description, + t.work_duty, + t.work_authority, + t.forbidden_tag + + + INSERT INTO jcl_org_job + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + job_no, + + + job_name, + + + parent_comp, + + + parent_dept, + + + sequence_id, + + + scheme_id, + + + parent_job, + + + is_key, + + + workplace, + + + description, + + + work_duty, + + + work_authority, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{jobNo}, + + + #{jobName}, + + + + #{parentComp}, + + + #{parentDept}, + + + #{sequenceId}, + + + #{schemeId}, + + + #{parentJob}, + + + #{isKey}, + + + #{workplace}, + + + #{description}, + + + #{workDuty}, + + + #{workAuthority}, + + 0, + + + + update jcl_org_job + + creator=#{creator}, + update_time=#{updateTime}, + job_name=#{jobName}, + parent_comp=#{parentComp}, + parent_dept=#{parentDept}, + sequence_id=#{sequenceId}, + scheme_id=#{schemeId}, + parent_job=#{parentJob}, + is_key=#{isKey}, + workplace=#{workplace}, + description=#{description}, + work_duty=#{workDuty}, + work_authority=#{workAuthority}, + + WHERE id = #{id} AND delete_type = 0 + + + update jcl_org_job + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_job + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + + + + + + + + + + + + and t.job_no like CONCAT('%',#{jobNo},'%') + + + and t.job_name like CONCAT('%',#{jobName},'%') + + + and t.workplace like CONCAT('%',#{workplace},'%') + + + and t.description like CONCAT('%',#{description},'%') + + + and t.work_duty like CONCAT('%',#{workDuty},'%') + + + and t.work_authority like CONCAT('%',#{workAuthority},'%') + + + + + + and t.job_no like '%'||#{jobNo}||'%' + + + and t.job_name like '%'||#{jobName}||'%' + + + and t.workplace like '%'||#{workplace}||'%' + + + and t.description like '%'||#{description}||'%' + + + and t.work_duty like '%'||#{workDuty}||'%' + + + and t.work_authority like '%'||#{workAuthority}||'%' + + + + + + and t.job_no like '%'+#{jobNo}+'%' + + + and t.job_name like '%'+#{jobName}+'%' + + + and t.workplace like '%'+#{workplace}+'%' + + + and t.description like '%'+#{description}+'%' + + + and t.work_duty like '%'+#{workDuty}+'%' + + + and t.work_authority like '%'+#{workAuthority}+'%' + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/post/PostInfoMapper.java b/src/com/engine/organization/mapper/post/PostInfoMapper.java index f2b2d0d2..baca0ec0 100644 --- a/src/com/engine/organization/mapper/post/PostInfoMapper.java +++ b/src/com/engine/organization/mapper/post/PostInfoMapper.java @@ -1,7 +1,7 @@ package com.engine.organization.mapper.post; -import com.engine.organization.entity.post.po.PostInfoPO; +import com.engine.organization.entity.postion.po.PostInfoPO; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/organization/mapper/post/PostInfoMapper.xml b/src/com/engine/organization/mapper/post/PostInfoMapper.xml index be162ff4..10d12bf9 100644 --- a/src/com/engine/organization/mapper/post/PostInfoMapper.xml +++ b/src/com/engine/organization/mapper/post/PostInfoMapper.xml @@ -1,7 +1,7 @@ - + @@ -35,14 +35,14 @@ , t.create_time , t.update_time - - - + update jcl_org_post_info creator=#{creator}, @@ -77,7 +77,7 @@ WHERE id = #{id} AND delete_type = 0 - INSERT INTO jcl_org_post_info @@ -154,7 +154,7 @@ - + update jcl_org_post_info forbidden_tag=#{forbiddenTag}, diff --git a/src/com/engine/organization/mapper/post/PostMapper.java b/src/com/engine/organization/mapper/post/PostMapper.java index 0a8e0d82..7132e17b 100644 --- a/src/com/engine/organization/mapper/post/PostMapper.java +++ b/src/com/engine/organization/mapper/post/PostMapper.java @@ -2,7 +2,7 @@ package com.engine.organization.mapper.post; import com.engine.organization.entity.TreeData; -import com.engine.organization.entity.post.po.PostPO; +import com.engine.organization.entity.postion.po.PostPO; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/organization/mapper/post/PostMapper.xml b/src/com/engine/organization/mapper/post/PostMapper.xml index 8ab5d466..3604960f 100644 --- a/src/com/engine/organization/mapper/post/PostMapper.xml +++ b/src/com/engine/organization/mapper/post/PostMapper.xml @@ -1,7 +1,7 @@ - + @@ -30,14 +30,14 @@ , t.create_time , t.update_time - - select from jcl_org_post t where post_no = #{postNo} AND delete_type = 0 @@ -61,7 +61,7 @@ select id , post_name from jcl_org_post where delete_type ='0' - + update jcl_org_post creator=#{creator}, @@ -73,7 +73,7 @@ WHERE id = #{id} AND delete_type = 0 - INSERT INTO jcl_org_post diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 0f4e9133..0cc97450 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -23,8 +23,17 @@ public interface GradeMapper { */ List listByNo(@Param("gradeNo") String gradeNo); + /** + * 根据等级方案查询数据 + * + * @param schemeId + * @return + */ + List listGradesBySchemeId(@Param("schemeId") long schemeId); + /** * 获取职级根据ID + * * @param id * @return */ @@ -32,6 +41,7 @@ public interface GradeMapper { /** * 插入职级 + * * @param gradePO * @return */ @@ -62,8 +72,11 @@ public interface GradeMapper { /** * 根据禁用标记统计 + * * @param tag * @return */ int getCountByTag(@Param("tag") int tag); + + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index ccc1b0c6..00ef24cf 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -38,17 +38,27 @@ from jcl_org_grade t where id = #{id} AND delete_type = 0 - select from jcl_org_grade t where grade_no = #{gradeNo} AND delete_type = 0 + + update jcl_org_grade @@ -91,7 +101,8 @@ scheme_id, - + + level_id, forbidden_tag, @@ -120,7 +131,8 @@ #{schemeId}, - + + #{levelId}, 0, diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.java b/src/com/engine/organization/mapper/scheme/LevelMapper.java index 81f4dca1..95f2fc6e 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.java +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.java @@ -25,6 +25,13 @@ public interface LevelMapper { */ List listByNo(@Param("levelNo") String levelNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 获取职等根据ID * @param id diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.xml b/src/com/engine/organization/mapper/scheme/LevelMapper.xml index 2f597ead..5a57cf73 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.xml +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.xml @@ -36,14 +36,14 @@ from jcl_org_level t where id = #{id} AND delete_type = 0 - select from jcl_org_level t where level_no = #{levelNo} AND delete_type = 0 @@ -59,6 +59,15 @@ #{id} + update jcl_org_level diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.java b/src/com/engine/organization/mapper/scheme/SchemeMapper.java index 260f9294..080af6ba 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.java +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.java @@ -26,6 +26,12 @@ public interface SchemeMapper { */ List listByNo(@Param("schemeNo") String schemeNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); /** * 根据ID查询登记方案 * @@ -41,7 +47,7 @@ public interface SchemeMapper { * @return */ @MapKey("id") - List> listSchemesByIds(@Param("ids") Collection ids); + List> listSchemesByIds(@Param("ids") Collection ids); /** * 新增,忽略null字段 diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml index aca1edcf..b43994d7 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml @@ -51,6 +51,23 @@ #{id} + diff --git a/src/com/engine/organization/mapper/sequence/SequenceMapper.java b/src/com/engine/organization/mapper/sequence/SequenceMapper.java index 4bcfa336..d65c01fd 100644 --- a/src/com/engine/organization/mapper/sequence/SequenceMapper.java +++ b/src/com/engine/organization/mapper/sequence/SequenceMapper.java @@ -25,6 +25,13 @@ public interface SequenceMapper { */ List listByNo(@Param("sequenceNo") String sequenceNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 获取岗位根据ID * @param id @@ -77,4 +84,5 @@ public interface SequenceMapper { * @return */ int getCountByTag(@Param("tag") int tag); + } diff --git a/src/com/engine/organization/mapper/sequence/SequenceMapper.xml b/src/com/engine/organization/mapper/sequence/SequenceMapper.xml index ca6a0d38..a764662f 100644 --- a/src/com/engine/organization/mapper/sequence/SequenceMapper.xml +++ b/src/com/engine/organization/mapper/sequence/SequenceMapper.xml @@ -36,14 +36,15 @@ from jcl_org_sequence t where id = #{id} AND delete_type = 0 - select from jcl_org_sequence t where sequence_no = #{sequenceNo} AND delete_type = 0 @@ -59,6 +60,10 @@ #{id} + update jcl_org_sequence diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.java b/src/com/engine/organization/mapper/staff/StaffMapper.java new file mode 100644 index 00000000..0d39e82c --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffMapper.java @@ -0,0 +1,56 @@ +package com.engine.organization.mapper.staff; + + +import com.engine.organization.entity.staff.po.StaffPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @Author dxfeng + * @Description: TODO + * @Date 2022/5/25 + * @Version V1.0 + **/ +public interface StaffMapper { + + /** + * 根据ID查询编制方案 + * + * @param id + * @return + */ + StaffPO getStaffByID(@Param("id") long id); + + /** + * 插入编制方案 + * + * @param staffPO + * @return + */ + int insertIgnoreNull(StaffPO staffPO); + + /** + * 修改,修改所有字段 + * + * @param staffPO + * @return + */ + int updateStaff(StaffPO staffPO); + + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); +} diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.xml b/src/com/engine/organization/mapper/staff/StaffMapper.xml new file mode 100644 index 00000000..137f2b2e --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffMapper.xml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.plan_id + , t.comp_id + , t.dept_id + , t.job_id + , t.staff_num + , t.control_policy + , t.permanent_num + , t.freeze_num + , t.lack_status + , t.staff_desc + , t.description + + + + + + update jcl_org_staff + + creator=#{creator}, + update_time=#{updateTime}, + plan_id=#{planId}, + comp_id=#{compId}, + dept_id=#{deptId}, + job_id=#{jobId}, + staff_num=#{staffNum}, + control_policy=#{controlPolicy}, + permanent_num=#{permanentNum}, + freeze_num=#{freezeNum}, + lack_status=#{lackStatus}, + staff_desc=#{staffDesc}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + INSERT INTO jcl_org_staff + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + plan_id, + + + comp_id, + + + dept_id, + + + job_id, + + + staff_num, + + + control_policy, + + + permanent_num, + + + freeze_num, + + + lack_status, + + + staff_desc, + + + description, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + + #{planId}, + + + #{compId}, + + + #{deptId}, + + + #{jobId}, + + + #{staffNum}, + + + #{controlPolicy}, + + + #{permanentNum}, + + + #{freezeNum}, + + + #{lackStatus}, + + + #{staffDesc}, + + + #{description}, + + + + + + UPDATE jcl_org_staff + 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/staff/StaffPlanMapper.java b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java new file mode 100644 index 00000000..e9046142 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java @@ -0,0 +1,75 @@ +package com.engine.organization.mapper.staff; + + +import com.engine.organization.entity.staff.po.StaffPlanPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @Author dxfeng + * @Description: TODO + * @Date 2022/5/25 + * @Version V1.0 + **/ +public interface StaffPlanMapper { + + /** + * 根据No查询编制方案 + * + * @param planNo + * @return + */ + List listByNo(@Param("planNo") String planNo); + + + List> listPlansByIds(@Param("ids") Collection ids); + + /** + * 根据ID查询编制方案 + * + * @param id + * @return + */ + StaffPlanPO getStaffPlanByID(@Param("id") long id); + + /** + * 插入编制方案 + * + * @param staffPlanPO + * @return + */ + int insertIgnoreNull(StaffPlanPO staffPlanPO); + + /** + * 修改,修改所有字段 + * + * @param staffPlanPO + * @return + */ + int updateStaffPlan(StaffPlanPO staffPlanPO); + + /** + * 更新禁用标记 + * + * @param staffPlanPO + * @return + */ + int updateForbiddenTagById(StaffPlanPO staffPlanPO); + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); +} diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml new file mode 100644 index 00000000..8b58e308 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.plan_no + , t.plan_name + , t.plan_year + , t.time_start + , t.time_end + , t.company_id + , t.description + , t.forbidden_tag + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + + + + update jcl_org_staffplan + + creator=#{creator}, + update_time=#{updateTime}, + plan_no=#{planNo}, + plan_name=#{planName}, + plan_year=#{planYear}, + time_start=#{timeStart}, + time_end=#{timeEnd}, + company_id=#{companyId}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + INSERT INTO jcl_org_staffplan + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + plan_no, + + + plan_name, + + + plan_year, + + + time_start, + + + time_end, + + + company_id, + + + description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{planNo}, + + + #{planName}, + + + #{planYear}, + + + #{timeStart}, + + + #{timeEnd}, + + + #{companyId}, + + + #{description}, + + 0, + + + + + update jcl_org_staffplan + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_staffplan + 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/service/CodeSettingService.java b/src/com/engine/organization/service/CodeSettingService.java new file mode 100644 index 00000000..1c19b309 --- /dev/null +++ b/src/com/engine/organization/service/CodeSettingService.java @@ -0,0 +1,33 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.util.response.ReturnResult; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public interface CodeSettingService { + + /*** + * 是否具有权限 + * @param serialtype + * @return + */ + ReturnResult getHasRight(String serialtype); + + /** + * 保存更新 + * @param params + */ + void saveOrUpdateCodeSetting(CodeSaveParam params); + + /** + * 获取主表id + * @param serialType + * @return + */ + Long getCodeRuleId(String serialType); +} diff --git a/src/com/engine/organization/service/CompService.java b/src/com/engine/organization/service/CompService.java index f140ebc4..e01ec585 100644 --- a/src/com/engine/organization/service/CompService.java +++ b/src/com/engine/organization/service/CompService.java @@ -1,6 +1,6 @@ package com.engine.organization.service; -import com.engine.organization.entity.comp.param.CompSearchParam; +import com.engine.organization.entity.company.param.CompSearchParam; import java.util.Collection; import java.util.Map; diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index 79ae4d39..bd69c703 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.util.page.PageInfo; +import java.util.Collection; import java.util.Map; /** @@ -38,7 +39,53 @@ public interface DepartmentService { * @param params * @return */ - int saveBaseComp(DeptSearchParam params); + int saveBaseForm(DeptSearchParam params); + /** + * 更新禁用标记 + * + * @param params + */ + int updateForbiddenTagById(DeptSearchParam params); + + + /** + * 更新分部主表、拓展表、明细表 + * + * @param params + * @return + */ + int updateForm(Map params); + + + /** + * 根据ID批量删除 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + /** + * 获取列表页面按钮信息 + * + * @return + */ + Map getHasRight(); + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + Map getDeptBaseForm(Map params); /** @@ -48,5 +95,4 @@ public interface DepartmentService { */ Map getSaveForm(); - } diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java new file mode 100644 index 00000000..68a86ebf --- /dev/null +++ b/src/com/engine/organization/service/JobService.java @@ -0,0 +1,101 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.job.param.JobSearchParam; +import com.engine.organization.entity.searchtree.SearchTreeParams; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +public interface JobService { + /** + * 列表左侧树 + * + * @return + */ + Map getSearchTree(SearchTreeParams params); + + /** + * 列表数据展示 + * + * @param param + * @return + */ + Map listPage(JobSearchParam param); + + /** + * 获取列表页面按钮信息 + * + * @return + */ + Map getHasRight(); + + /** + * 获取搜索条件 + * + * @return + */ + Map getSearchCondition(); + + /** + * 获取新增表单 + * + * @return + */ + Map getSaveForm(); + + /** + * 获取详细表单 + * + * @param params + * @return + */ + Map getJobBaseForm(Map params); + + /** + * 保存基础信息 + * + * @param params + * @return + */ + int saveBaseForm(JobSearchParam params); + + /** + * 更新主表、拓展表、明细表 + * + * @param params + * @return + */ + int updateForm(Map params); + + /** + * 复制岗位到指定部门 + * + * @param id + * @param departmentId + * @return + */ + int copyJobItem(long id, long departmentId); + + /** + * 更新禁用标记 + * + * @param params + * @return + */ + int updateForbiddenTagById(JobSearchParam params); + + /** + * 根据ID批量删除 + * + * @param ids + */ + int deleteByIds(Collection ids); + + Map getHrmListByJobId(Long jobId); +} diff --git a/src/com/engine/organization/service/PostInfoService.java b/src/com/engine/organization/service/PostInfoService.java index edeb6560..9aa6a1c5 100644 --- a/src/com/engine/organization/service/PostInfoService.java +++ b/src/com/engine/organization/service/PostInfoService.java @@ -1,6 +1,6 @@ package com.engine.organization.service; -import com.engine.organization.entity.post.param.PostInfoSearchParam; +import com.engine.organization.entity.postion.param.PostInfoSearchParam; import java.util.Collection; import java.util.Map; diff --git a/src/com/engine/organization/service/PostService.java b/src/com/engine/organization/service/PostService.java index 3aa4194d..2c06122e 100644 --- a/src/com/engine/organization/service/PostService.java +++ b/src/com/engine/organization/service/PostService.java @@ -1,7 +1,7 @@ package com.engine.organization.service; import com.engine.organization.entity.TreeData; -import com.engine.organization.entity.post.po.PostPO; +import com.engine.organization.entity.postion.po.PostPO; import java.util.Collection; import java.util.Map; diff --git a/src/com/engine/organization/service/StaffPlanService.java b/src/com/engine/organization/service/StaffPlanService.java new file mode 100644 index 00000000..2935e1ef --- /dev/null +++ b/src/com/engine/organization/service/StaffPlanService.java @@ -0,0 +1,74 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public interface StaffPlanService { + /** + * 编制方案列表 + * + * @param params + * @return + */ + Map listPage(StaffPlanSearchParam params); + + /** + * 新增编制方案 + * @param param + * @return + */ + int saveStaffPlan(StaffPlanSearchParam param); + + /** + * 更新编制方案信息 + * + * @param param + * @return + */ + int updateStaffPlan(StaffPlanSearchParam param); + + /** + * 更新禁用标记 + * + * @param params + */ + int updateForbiddenTagById(StaffPlanSearchParam params); + + /** + * 根据ID批量删除编制方案 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + + /** + * 获取新增、编辑表单 + * + * @param params + * @return + */ + Map getForm(Map params); + + /** + * 获取列表页面按钮信息 + * @return + */ + Map getHasRight(); +} diff --git a/src/com/engine/organization/service/StaffService.java b/src/com/engine/organization/service/StaffService.java new file mode 100644 index 00000000..f38a16f6 --- /dev/null +++ b/src/com/engine/organization/service/StaffService.java @@ -0,0 +1,67 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.staff.param.StaffSearchParam; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public interface StaffService { + /** + * 编制列表 + * + * @param params + * @return + */ + Map listPage(StaffSearchParam params); + + /** + * 新增编制 + * @param param + * @return + */ + int saveStaff(StaffSearchParam param); + + /** + * 更新编制信息 + * + * @param param + * @return + */ + int updateStaff(StaffSearchParam param); + + /** + * 根据ID批量删除编制 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + + /** + * 获取新增、编辑表单 + * + * @param params + * @return + */ + Map getForm(Map params); + + /** + * 获取列表页面按钮信息 + * @return + */ + Map getHasRight(); +} diff --git a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java new file mode 100644 index 00000000..820c2f94 --- /dev/null +++ b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java @@ -0,0 +1,81 @@ +package com.engine.organization.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.hrm.entity.RuleCodeType; +import com.engine.organization.entity.codesetting.bo.CodeSettingBO; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.mapper.codesetting.CodeRuleDetailMapper; +import com.engine.organization.mapper.codesetting.CodeRuleMapper; +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 weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author weaver_cl + * @Description: TODO + * @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); + } + + @Override + public ReturnResult getHasRight(String serialtype) { + boolean hasRight = false; + Map retmap = new HashMap<>(); + switch (RuleCodeType.getByValue(serialtype)) { + case SUBCOMPANY: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleSubcompany:All", user); + break; + case DEPARTMENT: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleDepartment:All", user); + break; + case JOBTITLES: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleJobtitles:All", user); + break; + case USER: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleUser:All", user); + break; + } + retmap.put("hasRight", hasRight); + return ReturnResult.successed(retmap); + } + + @Override + public void saveOrUpdateCodeSetting(CodeSaveParam params) { + OrganizationAssert.notNull(params,"参数不能为空"); + Long codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType()); + CodeRulePO codeRulePO = CodeSettingBO.buildCodeRule(params,(long)user.getUID(),codeRuleId); + //1.新增或更新主表 + if (codeRulePO != null) { + MapperProxyFactory.getProxy(CodeRuleMapper.class).updateCodeRule(codeRulePO); + }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); + + + } + + @Override + public Long getCodeRuleId(String serialType) { + return MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleId(serialType); + } +} diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 53b08975..4a0df575 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -11,10 +11,10 @@ import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.comp.bo.CompBO; -import com.engine.organization.entity.comp.dto.CompListDTO; -import com.engine.organization.entity.comp.param.CompSearchParam; -import com.engine.organization.entity.comp.po.CompPO; +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.mapper.comp.CompMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.service.CompService; @@ -131,20 +131,16 @@ public class CompServiceImpl extends Service implements CompService { public int updateComp(Map params) { CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class); String groupId = (String) params.get("viewCondition"); - int updateBaseComp = 0; CompPO compPO = CompBO.convertParamToPO(searchParam, (long) user.getUID()); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - // 更新主表数据 - updateBaseComp = getCompMapper().updateBaseComp(compPO); - } else { - // 更新主表拓展表 - updateBaseComp = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); - } - + int updateCount = 0; + // 更新主表数据 + updateCount += getCompMapper().updateBaseComp(compPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); //更新明细表 getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId()); - return updateBaseComp; + return updateCount; } @Override diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index befd28b8..1819cf7d 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -1,9 +1,13 @@ 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.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.organization.component.OrganizationWeaTable; import com.engine.organization.entity.department.bo.DepartmentBO; @@ -12,15 +16,21 @@ import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +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.service.DepartmentService; +import com.engine.organization.service.ExtService; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; 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 org.apache.commons.collections4.CollectionUtils; import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; @@ -33,16 +43,45 @@ import java.util.stream.Collectors; **/ public class DepartmentServiceImpl extends Service implements DepartmentService { + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String EXTEND_TYPE = "2"; + /** + * 主表拓展表 + */ + private static final String JCL_ORG_DEPTEXT = "JCL_ORG_DEPTEXT"; + /** + * 明细表拓展表 + */ + private static final String JCL_ORG_DEPTEXT_DT1 = "JCL_ORG_DEPTEXT_DT1"; + private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private ExtendGroupMapper getExtendGroupMapper() { + return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + } + + private ExtService getExtService(User user) { + return ServiceUtil.getService(ExtServiceImpl.class, user); + } + + @Override public PageInfo getDeptListByPid(QuerySingleDeptListParam param) { //1.查询分部下所有部门 //PageUtil.start(param.getCurrent(), param.getPageSize()); - List departmentPOS = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptListByCompId(); + List departmentPOS = MapperProxyFactory.getProxy(DepartmentMapper.class).list(); PageInfo pageInfo = new PageInfo<>(departmentPOS); List singleDeptTreeVOS = DepartmentBO.buildSingleDeptTreeVOS(departmentPOS,param.getParentComp()); PageInfo pageInfos = new PageInfo<>(singleDeptTreeVOS, SingleDeptTreeVO.class); @@ -56,24 +95,27 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map listPage(DeptSearchParam param) { Map datas = new HashMap<>(); - PageUtil.start(param.getCurrent(), param.getPageSize()); - List parentList = getDepartmentMapper().listParent(); - List list = new ArrayList<>(); - list.addAll(parentList); - - if (CollectionUtils.isNotEmpty(parentList)) { - // 递归查询子数据 - getChildPOs(parentList, list); - } DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(param, (long) user.getUID()); - // 搜索条件过滤数据 - List filterList = filterListByParams(list, departmentPO); - - List departmentListDTOS = DepartmentBO.buildDeptDTOList(list, filterList); - PageInfo pageInfo = new PageInfo<>(departmentListDTOS); + boolean filter = isFilter(departmentPO); + PageInfo pageInfos; + List alltList = getDepartmentMapper().list(); + // 通过子级遍历父级元素 + if (filter) { + // 根据条件获取元素 + List filteDeptPOs = getDepartmentMapper().listByFilter(departmentPO); + // 添加父级元素 + List compListDTOS = DepartmentBO.buildDeptDTOList(alltList, filteDeptPOs); + 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 subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, DepartmentListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } - PageInfo pageInfos = new PageInfo<>(departmentListDTOS, DepartmentListDTO.class); - pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(param.getCurrent()); pageInfos.setPageSize(param.getPageSize()); @@ -81,22 +123,146 @@ public class DepartmentServiceImpl extends Service implements DepartmentService List columns = pageInfos.getColumns(); List weaTableColumn = columns.stream().map(v -> new WeaTableColumn("100", v.getTitle(), v.getKey())).collect(Collectors.toList()); - table.setColumns(weaTableColumn); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - datas.put("pageInfo", pageInfos); datas.put("dataKey", result.getResultMap()); return datas; } @Override - public int saveBaseComp(DeptSearchParam params) { - return 0; + public int saveBaseForm(DeptSearchParam params) { + List list = getDepartmentMapper().listByNo(Util.null2String(params.getDeptNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(params, (long) user.getUID()); + return getDepartmentMapper().insertIgnoreNull(departmentPO); + } + + @Override + public int updateForbiddenTagById(DeptSearchParam params) { + DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); + return getDepartmentMapper().updateForbiddenTagById(departmentPO); + } + + @Override + public int updateForm(Map params) { + DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); + String groupId = (String) params.get("viewCondition"); + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam,user.getUID()); + int updateCount = 0; + // 更新主表数据 + updateCount += getDepartmentMapper().updateBaseDept(departmentPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, departmentPO.getId()); + //更新明细表 + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, departmentPO.getId()); + + return updateCount; + } + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getDepartmentMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "deptNo"); + // 名称 + SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "deptName"); + // 简称 + SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "deptNameShort"); + // TODO + // 所属分部 + 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"); + // 禁用标记 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + conditionItems.add(deptNoItem); + conditionItems.add(deptNameItem); + conditionItems.add(deptNameShortItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(deptPrincipalBrowserItem); + conditionItems.add(showOrderItem); + conditionItems.add(forbiddenTagItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @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; + } + + @Override + public Map getDeptBaseForm(Map params) { + OrganizationAssert.notNull(params.get("viewAttr"), "请标识操作类型"); + + // 2编辑 1查看 + int viewAttr = Integer.parseInt((String) params.get("viewAttr")); + long id = Long.parseLong((String) params.get("id")); + String groupId = (String) params.get("viewCondition"); + + HashMap buttonsMap = new HashMap<>(); + buttonsMap.put("hasEdit", true); + 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))); + } + + HashMap resultMap = new HashMap<>(); + resultMap.put("buttons", buttonsMap); + resultMap.put("conditions", addGroups); + resultMap.put("id", id); + // 拓展页面分组 + 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)); + Map apiDatas = new HashMap<>(); + + apiDatas.put("result", resultMap); + + return apiDatas; } @Override @@ -113,7 +279,6 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 简称 SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); deptNameShortItem.setRules("required|string"); - // TODO 自定义按钮 // 所属分部 SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); //上级部门 @@ -142,47 +307,109 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } /** - * 通过搜索条件过滤list数据 + * 是否为搜索查询 * - * @param departmentPOS * @param departmentPO * @return */ - private List filterListByParams(Collection departmentPOS, DepartmentPO departmentPO) { - // 搜索后的数据 - List filterList = new ArrayList<>(); - // 筛选数据 - for (Iterator iterator = departmentPOS.iterator(); iterator.hasNext(); ) { - DepartmentPO next = iterator.next(); - boolean isAdd = (StringUtil.isEmpty(departmentPO.getDeptName()) || next.getDeptName().contains(departmentPO.getDeptName())) // 名称 - && (StringUtil.isEmpty(departmentPO.getDeptNo()) || next.getDeptNo().contains(departmentPO.getDeptNo()))//编号 - && (StringUtil.isEmpty(departmentPO.getDeptNameShort()) || next.getDeptNameShort().contains(departmentPO.getDeptNameShort()))//简称 - && (null == departmentPO.getParentComp() || next.getParentComp().equals(departmentPO.getParentComp()))//所属分部 - && (null == departmentPO.getParentDept() || next.getParentDept().equals(departmentPO.getParentDept()))//上级部门 - && (null == departmentPO.getDeptPrincipal() || next.getDeptPrincipal().equals(departmentPO.getDeptPrincipal()))//部门负责人 - && (null == departmentPO.getShowOrder() || next.getShowOrder().equals(departmentPO.getShowOrder()))//显示顺序 - && (null == departmentPO.getForbiddenTag() || next.getForbiddenTag().equals(departmentPO.getForbiddenTag()));//禁用标记 - - if (isAdd) { - filterList.add(next); - } + 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()); + } + /** + * 基本信息基础表单 + * + * @param viewAttr + * @param id + * @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"); + + + conditionItems.add(deptNoItem); + conditionItems.add(deptNameItem); + conditionItems.add(deptNameShortItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(deptPrincipalBrowserItem); + conditionItems.add(showOrderItem); + conditionItems.add(descriptionItem); + + + // 编辑、查看状态赋值,设置只读状态 + + // 赋值 + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(id); + OrganizationAssert.notNull(departmentPO, "数据不存在或数据已删除"); + deptNoItem.setValue(departmentPO.getDeptNo()); + deptNameItem.setValue(departmentPO.getDeptName()); + deptNameShortItem.setValue(departmentPO.getDeptNameShort()); + + // 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); + } + showOrderItem.setValue(departmentPO.getShowOrder()); + descriptionItem.setValue(departmentPO.getDescription()); + + // 查看,全部置位只读 + if (1 == viewAttr) { + for (SearchConditionItem item : conditionItems) { + item.setViewAttr(viewAttr); + } } - return filterList; + return conditionItems; } /** - * 递归获取子级数据 + * 浏览按钮类型赋值转换 * - * @param parentList - * @param list + * @param id + * @param name + * @return */ - private void getChildPOs(List parentList, List list) { - List ids = parentList.stream().map(DepartmentPO::getId).collect(Collectors.toList()); - List listChild = getDepartmentMapper().listChild(ids); - if (CollectionUtils.isNotEmpty(listChild)) { - list.addAll(listChild); - getChildPOs(listChild, list); - } + 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; + } + + } diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 0b49db23..17841f76 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -28,6 +28,13 @@ import java.util.stream.Collectors; public class ExtServiceImpl extends Service implements ExtService { private static final Integer BROWSER_TYPE = 3; + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String TYPE_JOB = "3"; private ExtendInfoMapper getExtendInfoMapper() { return MapperProxyFactory.getProxy(ExtendInfoMapper.class); @@ -58,9 +65,9 @@ public class ExtServiceImpl extends Service implements ExtService { Map compExtMap = getExtMapper().listCompExt(tableName, fields, id); // 组装拓展页内容 for (ExtendInfoPO extendInfoPO : infoPOList) { - SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, compExtMap.get(extendInfoPO.getFieldName())); + SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null == compExtMap ? null : compExtMap.get(extendInfoPO.getFieldName())); item.setFieldcol(16); - if (null != item && 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { + if (2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { item.setViewAttr(3); item.setRules("required|string"); } @@ -150,19 +157,17 @@ public class ExtServiceImpl extends Service implements ExtService { @Override public void updateExtDT(User user, String extendType, String tableName, Map params, Long id) { - List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", ""); - Map groups = dtInfoPOList.stream().collect(Collectors.toMap(ExtendInfoPO::getExtendGroupId, ExtendInfoPO::getTableName, (k1, k2) -> k1)); + 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)); // 删除原有明细表数据 - groups.forEach((k, v) -> { - if (v.toLowerCase().contains("_dt")) getExtDTMapper().deleteByMainID(v, id); - }); + getExtDTMapper().deleteByMainID(tableName, id); - for (Map.Entry entry : groups.entrySet()) { - int rowNum = Util.getIntValue((String) params.get("rownum" + entry.getKey())); - List filterS = dtInfoPOList.stream().filter(item -> entry.getKey().equals(item.getExtendGroupId())).collect(Collectors.toList()); + for (Long groupId : groupIds) { + int rowNum = Util.getIntValue((String) params.get("rownum" + groupId)); + List filterS = poMaps.get(groupId); for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); - for (ExtendInfoPO extendInfoPO : filterS) { if (BROWSER_TYPE == extendInfoPO.getControlType()) { map.put(extendInfoPO.getFieldName() + "span", params.get(extendInfoPO.getFieldName() + "span_" + i)); @@ -174,7 +179,7 @@ public class ExtServiceImpl extends Service implements ExtService { map.put("delete_type", 0); map.put("create_time", new Date()); map.put("update_time", new Date()); - getExtDTMapper().insertCompExtDT(entry.getValue(), map); + getExtDTMapper().insertCompExtDT(tableName, map); } } } diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 6e95382c..aa172367 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.scheme.dto.GradeDTO; import com.engine.organization.entity.scheme.param.GradeSearchParam; @@ -19,6 +19,7 @@ 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.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -51,6 +52,8 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshGrade("jcl_org_grade"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, GradeTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); @@ -131,12 +134,12 @@ public class GradeServiceImpl extends Service implements GradeService { levelBrowserItem.setValue(gradePO.getLevelId()); BrowserBean schemeBrowserBean = schemeBrowserItem.getBrowserConditionParam(); - List> schemeMaps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(gradePO.getSchemeId().toString()).build().getIds()); + List> schemeMaps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(gradePO.getSchemeId().toString()).build().getIds()); schemeBrowserBean.setReplaceDatas(schemeMaps); schemeBrowserItem.setBrowserConditionParam(schemeBrowserBean); BrowserBean levelBrowserBean = levelBrowserItem.getBrowserConditionParam(); - List> levelMaps = getLevelMapper().listLevelsByIds(QueryParam.builder().ids(gradePO.getLevelId()).build().getIds()); + List> levelMaps = getLevelMapper().listLevelsByIds(DeleteParam.builder().ids(gradePO.getLevelId()).build().getIds()); levelBrowserBean.setReplaceDatas(levelMaps); levelBrowserItem.setBrowserConditionParam(levelBrowserBean); diff --git a/src/com/engine/organization/service/impl/GroupServiceImpl.java b/src/com/engine/organization/service/impl/GroupServiceImpl.java index d2f6d85b..47bb3e61 100644 --- a/src/com/engine/organization/service/impl/GroupServiceImpl.java +++ b/src/com/engine/organization/service/impl/GroupServiceImpl.java @@ -40,7 +40,6 @@ public class GroupServiceImpl extends Service implements GroupService { RecordSet rs = new RecordSet(); String sql = "select * from HrmCompany where id in(" + id + ")"; rs.executeQuery(sql); - rs.executeQuery(sql); int colcount = rs.getColCounts(); while (rs.next()) { Map row = new HashMap(); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java new file mode 100644 index 00000000..7873ca5f --- /dev/null +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -0,0 +1,794 @@ +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.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.job.bo.JobBO; +import com.engine.organization.entity.job.dto.JobListDTO; +import com.engine.organization.entity.job.param.JobSearchParam; +import com.engine.organization.entity.job.po.JobDTPO; +import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.scheme.po.GradePO; +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.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.MenuBtn; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.OrganizationFormItemUtil; +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 org.apache.commons.collections4.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +public class JobServiceImpl extends Service implements JobService { + + /** + * 左侧树 类型表示 + *

+ * 0:集团 + * 1:分部 + * 2:部门 + */ + private static final String TYPE_GROUP = "0"; + private static final String TYPE_COMP = "1"; + private static final String TYPE_DEPT = "2"; + + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String EXTEND_TYPE = "3"; + /** + * 主表拓展表 + */ + private static final String JCL_ORG_JOBEXT = "JCL_ORG_JOBEXT"; + /** + * 明细表拓展表 + */ + private static final String JCL_ORG_JOBEXT_DT1 = "JCL_ORG_JOBEXT_DT1"; + + private JobMapper getJobMapper() { + return MapperProxyFactory.getProxy(JobMapper.class); + } + + private JobDTMapper getJobDTMapper() { + return MapperProxyFactory.getProxy(JobDTMapper.class); + } + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private DepartmentMapper getDepartmentMapper() { + 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 ExtService getExtService(User user) { + return ServiceUtil.getService(ExtServiceImpl.class, user); + } + + + @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; + } + + @Override + public Map listPage(JobSearchParam param) { + Map datas = new HashMap<>(); + JobPO jobPO = JobBO.convertParamsToPO(param, user.getUID()); + boolean filter = isFilter(jobPO); + PageInfo pageInfos; + List allList = getJobMapper().listNoFilter(); + // 通过子级遍历父级元素 + if (filter) { + // 根据条件获取元素 + List filterJobPOs = getJobMapper().listByFilter(jobPO); + // 添加父级元素 + List compListDTOS = JobBO.buildJobDTOList(allList, filterJobPOs); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, JobListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } else { + // 组合list + List compListDTOS = JobBO.buildDTOList(allList); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, JobListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } + + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + + OrganizationWeaTable table = new OrganizationWeaTable<>(user, DepartmentListDTO.class); + List columns = pageInfos.getColumns(); + List weaTableColumn = columns.stream().map(v -> new WeaTableColumn("100", v.getTitle(), v.getKey())).collect(Collectors.toList()); + + table.setColumns(weaTableColumn); + + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + datas.put("pageInfo", pageInfos); + datas.put("dataKey", result.getResultMap()); + return datas; + } + + @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; + } + + @Override + public Map getSearchCondition() { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "jobNo"); + // 名称 + SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "jobName"); + // 所属分部 + 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, "是否关键岗", "forbiddenTag"); + // 工作地点 + SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); + // 工作概述 + // SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作概述", "description"); + // 任职职责 + //SearchConditionItem workDutyItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "任职职责", "workDuty"); + // 工作权限 + // SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作权限", "workAuthority"); + // 禁用标记 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + 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); + conditionItems.add(forbiddenTagItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getSaveForm() { + 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)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getJobBaseForm(Map params) { + OrganizationAssert.notNull(params.get("viewAttr"), "请标识操作类型"); + + // 2编辑 1查看 + int viewAttr = Integer.parseInt((String) params.get("viewAttr")); + long id = Long.parseLong((String) params.get("id")); + String groupId = (String) params.get("viewCondition"); + + HashMap buttonsMap = new HashMap<>(); + buttonsMap.put("hasEdit", true); + 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))); + } + + HashMap resultMap = new HashMap<>(); + resultMap.put("buttons", buttonsMap); + resultMap.put("conditions", addGroups); + resultMap.put("id", id); + // 拓展页面分组 + 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); + + 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()); + tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, viewAttr, false)); + tabinfoMap.put("rownum", "rownum"); + // 去除null 元素 + List maps = getJobDTMapper().listJobDTByMainID(id); + maps.removeIf(Objects::isNull); + tabinfoMap.put("datas", maps); + tableMap.put("tabinfo", tabinfoMap); + // 添加明细表 + extendTables.add(0, tableMap); + + resultMap.put("tables", extendTables); + + Map apiDatas = new HashMap<>(); + + apiDatas.put("result", resultMap); + + return apiDatas; + } + + @Override + public int saveBaseForm(JobSearchParam params) { + List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + JobPO jobPO = JobBO.convertParamsToPO(params, user.getUID()); + jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); + int insertCount = getJobMapper().insertIgnoreNull(jobPO); + if (null != jobPO.getSchemeId()) { + // 插入明细表信息 + // 根据等级方案查询职等、职级 + List gradePOS = MapperProxyFactory.getProxy(GradeMapper.class).listGradesBySchemeId(jobPO.getSchemeId()); + for (GradePO gradePO : gradePOS) { + List> maps = MapperProxyFactory.getProxy(LevelMapper.class).listLevelsByIds(DeleteParam.builder().ids(gradePO.getLevelId()).build().getIds()); + String levelNames = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + insertCount += getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(gradePO.getLevelId()).gradeId(gradePO.getId() + "").levelIdspan(levelNames).gradeIdspan(gradePO.getGradeName()).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); + } + } + return insertCount; + } + + @Override + public int updateForm(Map params) { + 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()); + int updateCount = 0; + // 更新主表数据 + updateCount += getJobMapper().updateBaseJob(jobPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, jobPO.getId()); + // 更新明细表 + getJobDTMapper().deleteByIds(jobPO.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()); + } + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, jobPO.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); + } + + @Override + public int updateForbiddenTagById(JobSearchParam params) { + 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) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + Collection deleteIds = new ArrayList<>(); + // 递归删除子节点 + getChildIds(ids, deleteIds); + return getJobMapper().deleteByIds(deleteIds); + } + + @Override + public Map getHrmListByJobId(Long jobId) { + OrganizationWeaTable table = new OrganizationWeaTable<>(user, EmployeeTableVO.class); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + + /** + * 添加查询元素的父级元素 + * + * @param departmentPO + * @param builderDeparts + */ + private void buildParentDepts(DepartmentPO departmentPO, Set builderDeparts) { + builderDeparts.add(departmentPO); + if (isTop(departmentPO.getParentDept())) { + return; + } + DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getParentDept()); + if (null != parentDept) { + buildParentDepts(parentDept, builderDeparts); + } + } + + /** + * 添加查询元素的父级元素 + * + * @param compPO + * @param builderComps + */ + private void buildParentComps(CompPO compPO, Set builderComps) { + builderComps.add(compPO); + if (isTop(compPO.getParentCompany())) { + return; + } + CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); + if (null != parentComp) { + buildParentComps(parentComp, builderComps); + } + } + + /** + * 获取集团 + * + * @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查询数据 + * + * @param id + * @param type + * @param keyword + * @return + */ + private List getFilterCompany(String id, String type, String keyword) { + List compSearchTree = 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); + } else if (TYPE_DEPT.equals(type)) { + // + // 查询部门信息 + List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).parentDept(Long.parseLong(id)).build()); + Set builderDeparts = new HashSet<>(); + 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); + } + } + return compSearchTree; + } + + /** + * 分部、部门 组装左侧树 + * + * @param departmentBuild + * @param compBuild + * @param compSearchTree + */ + private void buildTreeByCompAndDept(DepartmentPO departmentBuild, CompPO compBuild, List compSearchTree) { + List filterDeparts = getDepartmentMapper().listByFilter(departmentBuild); + // 查询分部信息 + List filterComps = getCompMapper().listByFilter(compBuild); + Set builderDeparts = new HashSet<>(); + for (DepartmentPO departmentPO : filterDeparts) { + buildParentDepts(departmentPO, builderDeparts); + } + List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + // 添加部门的上级分部 + String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(",")); + if (!StringUtil.isEmpty(parentCompS)) { + List compsByIds = getCompMapper().getCompsByIds(DeleteParam.builder().ids(parentCompS).build().getIds()); + if (CollectionUtils.isNotEmpty(compsByIds)) { + filterComps.addAll(compsByIds); + } + } + Set builderComps = new HashSet<>(); + 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); + } + + + /** + * 处理树层级 + * + * @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()); + } + + /** + * 是否有搜索查询 + * + * @param jobPO + * @return + */ + private boolean isFilter(JobPO jobPO) { + return !(StringUtil.isEmpty(jobPO.getJobNo()) + && StringUtil.isEmpty(jobPO.getJobName()) + && StringUtil.isEmpty(jobPO.getWorkplace()) + && StringUtil.isEmpty(jobPO.getDescription()) + && StringUtil.isEmpty(jobPO.getWorkDuty()) + && StringUtil.isEmpty(jobPO.getWorkAuthority()) + && null == jobPO.getParentComp() + && null == jobPO.getParentDept() + && null == jobPO.getSequenceId() + && null == jobPO.getSchemeId() + && null == jobPO.getIsKey()) + && 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; + } + + /** + * 获取待删除数据的子级元素 + * + * @param ids + * @param deleteIds + */ + private void getChildIds(Collection ids, Collection deleteIds) { + for (Long id : ids) { + deleteIds.add(id); + Collection childIds = getJobMapper().getJobsByPid(id).stream().map(JobPO::getId).collect(Collectors.toList()); + getChildIds(childIds, deleteIds); + } + } +} diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 3ea178ce..30593d7d 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.scheme.dto.LevelDTO; import com.engine.organization.entity.scheme.param.LevelSearchParam; @@ -18,6 +18,7 @@ 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.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -46,6 +47,8 @@ public class LevelServiceImpl extends Service implements LevelService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshLevel("jcl_org_level"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, LevelTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); @@ -123,7 +126,7 @@ public class LevelServiceImpl extends Service implements LevelService { browserItem.setValue(levelPO.getSchemeId()); BrowserBean browserBean = browserItem.getBrowserConditionParam(); - List> maps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(levelPO.getSchemeId().toString()).build().getIds()); + List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(levelPO.getSchemeId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); browserItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java index 4e5e4eed..1c27612e 100644 --- a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java @@ -6,11 +6,11 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; -import com.engine.organization.entity.post.dto.PostInfoDTO; -import com.engine.organization.entity.post.param.PostInfoSearchParam; -import com.engine.organization.entity.post.po.PostInfoPO; -import com.engine.organization.entity.post.vo.PostInfoTableVO; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.postion.dto.PostInfoDTO; +import com.engine.organization.entity.postion.param.PostInfoSearchParam; +import com.engine.organization.entity.postion.po.PostInfoPO; +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; @@ -135,7 +135,7 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { descriptionItem.setValue(postInfoPO.getDescription()); BrowserBean browserBean = postIdBrowser.getBrowserConditionParam(); - List> maps = getPostMapper().listPostsByIds(QueryParam.builder().ids(postInfoPO.getPostId().toString()).build().getIds()); + List> maps = getPostMapper().listPostsByIds(DeleteParam.builder().ids(postInfoPO.getPostId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); postIdBrowser.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/PostServiceImpl.java b/src/com/engine/organization/service/impl/PostServiceImpl.java index ed1fe268..2f2561e5 100644 --- a/src/com/engine/organization/service/impl/PostServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostServiceImpl.java @@ -4,8 +4,8 @@ import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.engine.core.impl.Service; import com.engine.organization.entity.TreeData; -import com.engine.organization.entity.post.dto.PostDTO; -import com.engine.organization.entity.post.po.PostPO; +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.OrganizationAssert; diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index 3eac99ef..8175fc31 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -14,6 +14,7 @@ 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.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -37,11 +38,11 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshScheme("jcl_org_scheme"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SchemeTableVO.class); - String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); - WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); @@ -50,7 +51,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map save(SchemeSearchParam param) { - Map apidatas = new HashMap(16); + Map apidatas = new HashMap<>(16); List list = getSchemeMapper().listByNo(Util.null2String(param.getSchemeNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); SchemePO schemePO = SchemeDTO.convertParamToPO(param, (long) user.getUID()); @@ -60,7 +61,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map updateScheme(SchemeSearchParam param) { - Map apidatas = new HashMap(); + Map apidatas = new HashMap<>(); SchemePO schemePO = SchemeDTO.convertParamToPO(param, (long) user.getUID()); getSchemeMapper().updateScheme(schemePO); return apidatas; diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index 58e22368..92439f4e 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.sequence.dto.SequenceDTO; import com.engine.organization.entity.sequence.param.SequenceSearchParam; @@ -18,6 +18,7 @@ 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.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -46,6 +47,8 @@ public class SequenceServiceImpl extends Service implements SequenceService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshSequence("jcl_org_sequence"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SequenceTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); @@ -123,7 +126,7 @@ public class SequenceServiceImpl extends Service implements SequenceService { browserItem.setValue(sequencePO.getSchemeId()); BrowserBean browserBean = browserItem.getBrowserConditionParam(); - List> maps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(sequencePO.getSchemeId().toString()).build().getIds()); + List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(sequencePO.getSchemeId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); browserItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java new file mode 100644 index 00000000..ddd7ab31 --- /dev/null +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -0,0 +1,240 @@ +package com.engine.organization.service.impl; + +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.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.staff.bo.StaffPlanBO; +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.entity.staff.po.StaffPlanPO; +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.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import java.util.*; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanServiceImpl extends Service implements StaffPlanService { + + private StaffPlanMapper getStaffPlanMapper() { + return MapperProxyFactory.getProxy(StaffPlanMapper.class); + } + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + @Override + public Map listPage(StaffPlanSearchParam params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshStaffPlan("jcl_org_staffplan"); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffPlanTableVO.class); + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(params, (long) user.getUID()); + String sqlWhere = buildSqlWhere(staffPlanPO); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + + @Override + public int saveStaffPlan(StaffPlanSearchParam param) { + List list = getStaffPlanMapper().listByNo(Util.null2String(param.getPlanNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); + return getStaffPlanMapper().insertIgnoreNull(staffPlanPO); + } + + @Override + public int updateStaffPlan(StaffPlanSearchParam param) { + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); + return getStaffPlanMapper().updateStaffPlan(staffPlanPO); + } + + @Override + public int updateForbiddenTagById(StaffPlanSearchParam params) { + StaffPlanPO staffPlanPO = StaffPlanPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); + return getStaffPlanMapper().updateForbiddenTagById(staffPlanPO); + } + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getStaffPlanMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem planNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "planNo"); + // 名称 + SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "planName"); + // 年度 + SearchConditionItem planYearItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "年度", "planYear"); + planYearItem.setFormat("YYYY"); + // 时间开始 + SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间开始", "timeStart"); + // 时间结束 + SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间结束", "timeEnd"); + // 适用公司 + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "适用公司", "162", "companyId", "compBrowser"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + // 状态 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + + conditionItems.add(planNoItem); + conditionItems.add(planNameItem); + conditionItems.add(planYearItem); + conditionItems.add(timeStartItem); + conditionItems.add(timeEndItem); + conditionItems.add(companyIdtItem); + conditionItems.add(descriptionItem); + conditionItems.add(forbiddenTagItem); + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getForm(Map params) { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + // 编号 + SearchConditionItem planNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "planNo"); + planNoItem.setRules("required|string"); + // 名称 + SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "planName"); + planNameItem.setRules("required|string"); + // 年度 + SearchConditionItem planYearItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "年度", "planYear"); + planYearItem.setFormat("YYYY"); + planYearItem.setRules("required|string"); + // 时间开始 + SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间开始", "timeStart"); + timeStartItem.setRules("required|string"); + // 时间结束 + SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间结束", "timeEnd"); + timeEndItem.setRules("required|string"); + // 适用公司 + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "适用公司", "162", "companyId", "compBrowser"); + companyIdtItem.setRules("required|string"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + + // 编辑状态下赋值操作 + String id = Util.null2String(params.get("id")); + if (!StringUtil.isEmpty(id)) { + StaffPlanPO staffPlanPO = getStaffPlanMapper().getStaffPlanByID(Integer.parseInt(id)); + OrganizationAssert.notNull(staffPlanPO, "选择的数据不存在,或数据已删除"); + planNoItem.setValue(staffPlanPO.getPlanNo()); + planNameItem.setValue(staffPlanPO.getPlanName()); + planYearItem.setValue(staffPlanPO.getPlanYear()); + timeStartItem.setValue(staffPlanPO.getTimeStart()); + timeEndItem.setValue(staffPlanPO.getTimeEnd()); + + BrowserBean browserBean = companyIdtItem.getBrowserConditionParam(); + List> maps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPlanPO.getCompanyId()).build().getIds()); + browserBean.setReplaceDatas(maps); + companyIdtItem.setBrowserConditionParam(browserBean); + + descriptionItem.setValue(staffPlanPO.getDescription()); + + // 编辑状态下,编号只读 + planNoItem.setViewAttr(1); + } + + selectItems.add(planNoItem); + selectItems.add(planNameItem); + selectItems.add(planYearItem); + selectItems.add(timeStartItem); + selectItems.add(timeEndItem); + selectItems.add(companyIdtItem); + selectItems.add(descriptionItem); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getHasRight() { + return MenuBtn.getCommonBtnDatas(); + } + + + /** + * 查询条件 + * + * @param staffPlanPO + * @return + */ + private String buildSqlWhere(StaffPlanPO staffPlanPO) { + DBType dbType = DBType.get(new RecordSet().getDBType()); + String sqlWhere = " where t.delete_type ='0' "; + String planNo = staffPlanPO.getPlanNo(); + if (StringUtils.isNotBlank(planNo)) { + sqlWhere += " AND t.plan_no " + dbType.like(planNo); + } + String planName = staffPlanPO.getPlanName(); + if (StringUtils.isNotBlank(planName)) { + sqlWhere += " AND t.plan_name " + dbType.like(planName); + } + Integer planYear = staffPlanPO.getPlanYear(); + if (null != planYear) { + sqlWhere += " AND t.plan_year = '" + planYear + "'"; + } + Date timeStart = staffPlanPO.getTimeStart(); + if (null != timeStart) { + sqlWhere += " AND t.time_start = '" + timeStart + "'"; + } + Date timeEnd = staffPlanPO.getTimeEnd(); + if (null != timeEnd) { + sqlWhere += " AND t.time_end = '" + timeEnd + "'"; + } + String companyId = staffPlanPO.getDescription(); + if (StringUtils.isNotBlank(companyId)) { + sqlWhere += " AND t.companyId = '" + companyId + "'"; + } + + String description = staffPlanPO.getDescription(); + if (StringUtils.isNotBlank(description)) { + sqlWhere += " AND t.description " + dbType.like(description); + } + Integer forbiddenTag = staffPlanPO.getForbiddenTag(); + if (null != forbiddenTag) { + sqlWhere += " AND t.forbidden_tag = '" + forbiddenTag + "'"; + } + return sqlWhere; + } +} diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java new file mode 100644 index 00000000..6704fb45 --- /dev/null +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -0,0 +1,280 @@ +package com.engine.organization.service.impl; + +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.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +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.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.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.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import java.util.*; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffServiceImpl extends Service implements StaffService { + private StaffMapper getStaffMapper() { + return MapperProxyFactory.getProxy(StaffMapper.class); + } + + private StaffPlanMapper getStaffPlanMapper() { + return MapperProxyFactory.getProxy(StaffPlanMapper.class); + } + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + private JobMapper getJobMapper() { + return MapperProxyFactory.getProxy(JobMapper.class); + } + + + @Override + public Map listPage(StaffSearchParam params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshStaff("jcl_org_staff"); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffTableVO.class); + StaffPO staffPO = StaffBO.convertParamToPO(params, (long) user.getUID()); + String sqlWhere = buildSqlWhere(staffPO); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + + @Override + public int saveStaff(StaffSearchParam param) { + 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); + } + + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getStaffMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + + // 方案 + SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "方案", "161", "planId", "staffPlanBrowser"); + // 分部 + SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); + // 部门 + SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); + // 岗位 + SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobId", "jobBrowser"); + // 编制数 + SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "编制数", "staffNum"); + // 在编 + SearchConditionItem permanentNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "在编", "permanentNum"); + // 冻结数 + SearchConditionItem freezeNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "冻结数", "freezeNum"); + // 缺编状态 + List selectOptions = new ArrayList<>(); + SearchConditionOption lackOption = new SearchConditionOption("1", "缺编"); + SearchConditionOption fullOption = new SearchConditionOption("2", "满员"); + SearchConditionOption overOption = new SearchConditionOption("3", "超编"); + selectOptions.add(lackOption); + selectOptions.add(fullOption); + selectOptions.add(overOption); + SearchConditionItem lackStatusItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "缺编状态", "lackStatus"); + // 编制描述 + SearchConditionItem staffDescItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编制描述", "staffDesc"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + + conditionItems.add(planIdItem); + conditionItems.add(compIdItem); + conditionItems.add(deptIdItem); + conditionItems.add(jobIdItem); + conditionItems.add(staffNumItem); + conditionItems.add(permanentNumItem); + conditionItems.add(freezeNumItem); + conditionItems.add(lackStatusItem); + conditionItems.add(staffDescItem); + conditionItems.add(descriptionItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getForm(Map params) { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + // 方案 + SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "方案", "161", "planId", "staffPlanBrowser"); + planIdItem.setRules("required|string"); + // 分部 + SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "分部", "161", "compId", "compBrowser"); + compIdItem.setRules("required|string"); + // 部门 + SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "部门", "161", "deptId", "deptBrowser"); + deptIdItem.setRules("required|string"); + // 岗位 + SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "岗位", "161", "jobId", "jobBrowser"); + jobIdItem.setRules("required|string"); + // 编制数 + SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "编制数", "staffNum"); + staffNumItem.setRules("required|string"); + // 控制策略 + List selectOptions = new ArrayList<>(); + SearchConditionOption option1 = new SearchConditionOption("1", "弱控"); + SearchConditionOption option2 = new SearchConditionOption("2", "强控"); + SearchConditionOption option3 = new SearchConditionOption("3", "不控"); + selectOptions.add(option1); + selectOptions.add(option2); + selectOptions.add(option3); + SearchConditionItem controlPolicyItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "控制策略", "controlPolicy"); + controlPolicyItem.setViewAttr(3); + controlPolicyItem.setRules("required|string"); + + // 编辑状态下赋值操作 + String id = Util.null2String(params.get("id")); + if (!StringUtil.isEmpty(id)) { + StaffPO staffPO = getStaffMapper().getStaffByID(Integer.parseInt(id)); + OrganizationAssert.notNull(staffPO, "选择的数据不存在,或数据已删除"); + + BrowserBean planIdItemBean = planIdItem.getBrowserConditionParam(); + List> planIdMaps = getStaffPlanMapper().listPlansByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + planIdItemBean.setReplaceDatas(planIdMaps); + planIdItem.setBrowserConditionParam(planIdItemBean); + + BrowserBean compIdItemBean = compIdItem.getBrowserConditionParam(); + List> compIdMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPO.getPlanId().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()); + deptIdItemBean.setReplaceDatas(deptIdMaps); + deptIdItem.setBrowserConditionParam(deptIdItemBean); + + BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); + List> jobIdMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + jobIdItemBean.setReplaceDatas(jobIdMaps); + jobIdItem.setBrowserConditionParam(jobIdItemBean); + + staffNumItem.setValue(staffPO.getStaffNum()); + controlPolicyItem.setValue(staffPO.getControlPolicy()); + } + selectItems.add(planIdItem); + selectItems.add(compIdItem); + selectItems.add(deptIdItem); + selectItems.add(jobIdItem); + selectItems.add(staffNumItem); + selectItems.add(controlPolicyItem); + + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getHasRight() { + return MenuBtn.getCommonBtnDatas(); + } + + /** + * 查询条件 + * + * @param staffPO + * @return + */ + private String buildSqlWhere(StaffPO staffPO) { + DBType dbType = DBType.get(new RecordSet().getDBType()); + String sqlWhere = " where t.delete_type ='0' "; + + Long planId = staffPO.getPlanId(); + if (null != planId) { + sqlWhere += " AND t.plan_id = '" + planId + "'"; + } + Long compId = staffPO.getCompId(); + if (null != compId) { + sqlWhere += " AND t.comp_id = '" + compId + "'"; + } + Long deptId = staffPO.getDeptId(); + if (null != deptId) { + sqlWhere += " AND t.dept_id = '" + deptId + "'"; + } + Long jobId = staffPO.getJobId(); + if (null != jobId) { + sqlWhere += " AND t.job_id = '" + jobId + "'"; + } + Integer staffNum = staffPO.getStaffNum(); + if (null != staffNum) { + sqlWhere += " AND t.staff_num = '" + staffNum + "'"; + } + Integer controlPolicy = staffPO.getControlPolicy(); + if (null != controlPolicy) { + sqlWhere += " AND t.control_policy = '" + controlPolicy + "'"; + } + Integer permanentNum = staffPO.getPermanentNum(); + if (null != permanentNum) { + sqlWhere += " AND t.permanent_num = '" + permanentNum + "'"; + } + Integer freezeNum = staffPO.getFreezeNum(); + if (null != freezeNum) { + sqlWhere += " AND t.freeze_num = '" + freezeNum + "'"; + } + Integer lackStatus = staffPO.getLackStatus(); + if (null != lackStatus) { + sqlWhere += " AND t.lack_status = '" + lackStatus + "'"; + } + String staffDesc = staffPO.getStaffDesc(); + if (StringUtils.isNotBlank(staffDesc)) { + sqlWhere += " AND t.staff_desc " + dbType.like(staffDesc); + } + String description = staffPO.getDescription(); + if (StringUtils.isNotBlank(description)) { + sqlWhere += " AND t.description " + dbType.like(description); + } + + return sqlWhere; + } +} diff --git a/src/com/engine/organization/transmethod/CompTransMethod.java b/src/com/engine/organization/transmethod/CompTransMethod.java new file mode 100644 index 00000000..a6e5bec3 --- /dev/null +++ b/src/com/engine/organization/transmethod/CompTransMethod.java @@ -0,0 +1,25 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class CompTransMethod { + + public static String getSpanById(String planId) { + CompMapper 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; + } +} diff --git a/src/com/engine/organization/transmethod/DepartmentTransMethod.java b/src/com/engine/organization/transmethod/DepartmentTransMethod.java new file mode 100644 index 00000000..8174029b --- /dev/null +++ b/src/com/engine/organization/transmethod/DepartmentTransMethod.java @@ -0,0 +1,25 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class DepartmentTransMethod { + + public static String getSpanById(String planId) { + DepartmentMapper departmentMapper = MapperProxyFactory.getProxy(DepartmentMapper.class); + List> maps = departmentMapper.listDeptsByIds(DeleteParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java new file mode 100644 index 00000000..3c50bc77 --- /dev/null +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -0,0 +1,26 @@ +package com.engine.organization.transmethod; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +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 ""; + } + + public static String getIsKeySpan(String isKey) { + if ("1".equals(isKey)) + return "是"; + else + return "否"; + } + +} diff --git a/src/com/engine/organization/transmethod/LevelTransMethod.java b/src/com/engine/organization/transmethod/LevelTransMethod.java index 652ea2f2..aa5fb18d 100644 --- a/src/com/engine/organization/transmethod/LevelTransMethod.java +++ b/src/com/engine/organization/transmethod/LevelTransMethod.java @@ -1,6 +1,6 @@ package com.engine.organization.transmethod; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -18,7 +18,7 @@ public class LevelTransMethod { public static String getLevelId(String levelId) { LevelMapper levelMapper = MapperProxyFactory.getProxy(LevelMapper.class); - List> maps = levelMapper.listLevelsByIds(QueryParam.builder().ids(levelId).build().getIds()); + List> maps = levelMapper.listLevelsByIds(DeleteParam.builder().ids(levelId).build().getIds()); String levelName = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return levelName; } diff --git a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java new file mode 100644 index 00000000..deaedfeb --- /dev/null +++ b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java @@ -0,0 +1,25 @@ +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 java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanTransMethod { + + public static String getSpanById(String planId) { + StaffPlanMapper planMapper = MapperProxyFactory.getProxy(StaffPlanMapper.class); + List> maps = planMapper.listPlansByIds(DeleteParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/util/ConfigTrans.java b/src/com/engine/organization/util/ConfigTrans.java new file mode 100644 index 00000000..f97eb711 --- /dev/null +++ b/src/com/engine/organization/util/ConfigTrans.java @@ -0,0 +1,45 @@ +package com.engine.organization.util; + +import com.google.common.collect.Lists; + +import java.util.List; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/27 + * @Version V1.0 + **/ +public class ConfigTrans { + + public static String getCheckBoxPopedom(String status) { + if ("0".equals(status)) + return "true"; + else + return "false"; + } + + public static List formatSourceOperates(String id, String isDefault) { + List list = Lists.newArrayList(); + list.add(true); + if ("0".equals(isDefault)) { + list.add(true); + } else { + list.add(false); + } + return list; + } + + public static List formatStaffOperates(String id, String isDefault) { + List list = Lists.newArrayList(); + list.add(true); + if ("0".equals(isDefault)) { + list.add(true); + } else { + list.add(false); + } + list.add(true); + return list; + } + +} diff --git a/src/com/engine/organization/util/MenuBtn.java b/src/com/engine/organization/util/MenuBtn.java index b8870502..cad98205 100644 --- a/src/com/engine/organization/util/MenuBtn.java +++ b/src/com/engine/organization/util/MenuBtn.java @@ -45,6 +45,15 @@ public class MenuBtn { return MenuBtn.builder().isBatch("1").isTop("1").menuFun("batchDelete").menuIcon("icon-coms-Batch-delete").menuName("批量删除").type( "BTN_BatchDelete").build(); } + /** + * topMenu批量删除 + * + * @return + */ + public static MenuBtn topMenu_copy() { + return MenuBtn.builder().isBatch("1").isTop("1").menuFun("copy").menuIcon("icon-coms-form-copy").menuName("复制").type( "BTN_Copy").build(); + } + /** * rightMenu新增 * @@ -63,6 +72,15 @@ public class MenuBtn { return MenuBtn.builder().isBatch("0").isTop("0").menuFun("log").menuIcon("icon-coms-Print-log").menuName("日志").type("BTN_log").build(); } + /** + * topMenu批量删除 + * + * @return + */ + public static MenuBtn rightMenu_copy() { + return MenuBtn.builder().isBatch("0").isTop("0").menuFun("copy").menuIcon("icon-coms-form-copy").menuName("复制").type( "BTN_Copy").build(); + } + /** * rightMenu显示列定制 * diff --git a/src/com/engine/organization/util/RefreshIsUsedUtil.java b/src/com/engine/organization/util/RefreshIsUsedUtil.java new file mode 100644 index 00000000..c37cbc3d --- /dev/null +++ b/src/com/engine/organization/util/RefreshIsUsedUtil.java @@ -0,0 +1,115 @@ +package com.engine.organization.util; + +import com.engine.organization.mapper.common.RefreshUseMapper; +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.mapper.staff.StaffMapper; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +public class RefreshIsUsedUtil { + + private static RefreshUseMapper getRefreshUseMapper() { + return MapperProxyFactory.getProxy(RefreshUseMapper.class); + } + + + /** + * 刷新等级方案表 引用状态 + *

+ * JCL_ORG_LEVEL,JCL_ORG_GRADE,JCL_ORG_SEQUENCE,JCL_ORG_JOB + */ + public static void RefreshScheme(String tableName) { + List usedIds = MapperProxyFactory.getProxy(SchemeMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新职等表 引用状态 + *

+ * JCL_ORG_GRADE,JCL_ORG_JOBDT + */ + public static void RefreshLevel(String tableName) { + List usedIds = MapperProxyFactory.getProxy(LevelMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新职级表 引用状态 + *

+ * JCL_ORG_JOBDT + */ + public static void RefreshGrade(String tableName) { + List usedIds = MapperProxyFactory.getProxy(GradeMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新岗位序列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshSequence(String tableName) { + List usedIds = MapperProxyFactory.getProxy(SequenceMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新编制方案列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshStaffPlan(String tableName) { + List usedIds = MapperProxyFactory.getProxy(StaffPlanMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新编制表列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshStaff(String tableName) { + List usedIds = MapperProxyFactory.getProxy(StaffMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + + /** + * 更新指定表的引用状态 + * + * @param tableName + * @param usedIds + */ + private static void RefreshIsUsedStatus(String tableName, List usedIds) { + if (CollectionUtils.isNotEmpty(usedIds)) { + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + getRefreshUseMapper().updateIsUsedByIds(tableName, collect, 0); + getRefreshUseMapper().updateIsUsedByIds(tableName, collect, 1); + }else{ + getRefreshUseMapper().initIsUseStatus(tableName); + } + } + + +} diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java new file mode 100644 index 00000000..a9090350 --- /dev/null +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -0,0 +1,64 @@ +package com.engine.organization.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.CodeSettingWrapper; +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; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingController { + + public CodeSettingWrapper getCodeSettingWrapper(User user) { + return ServiceUtil.getService(CodeSettingWrapper.class,user); + } + + + /** + * 是否有权限 + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("serialtype") String serialtype) { + try { + User user = HrmUserVarify.getUser(request, response); + return getCodeSettingWrapper(user).getHasRight(serialtype); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + @POST + @Path("/saveOrUpdateCodeSetting") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody CodeSaveParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return getCodeSettingWrapper(user).saveOrUpdateCodeSetting(params); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + +} diff --git a/src/com/engine/organization/web/CompController.java b/src/com/engine/organization/web/CompController.java index a5938a37..365fcc49 100644 --- a/src/com/engine/organization/web/CompController.java +++ b/src/com/engine/organization/web/CompController.java @@ -2,8 +2,8 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; -import com.engine.organization.entity.comp.param.CompSearchParam; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.CompWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -93,7 +93,7 @@ public class CompController { } /** - * 更新禁用标记 + * 更新表单 * * @param request * @param response @@ -124,7 +124,7 @@ public class CompController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getCompWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index e191dc0d..565e2e1f 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -1,6 +1,8 @@ package com.engine.organization.web; +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.util.response.ReturnResult; @@ -17,6 +19,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import java.util.Map; /** * @Author weaver_cl @@ -52,7 +55,7 @@ public class DepartmentController { * @return */ @POST - @Path("/listDept") + @Path("/listPage") @Produces(MediaType.APPLICATION_JSON) public ReturnResult listDept(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { try { @@ -63,6 +66,146 @@ public class DepartmentController { } } + /** + * 保存公司/分部基础信息 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/saveBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新表单 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/updateForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).updateForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 获取基础表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getDeptBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCompBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).getDeptBaseForm(map)); + } 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 e4d429e7..78228099 100644 --- a/src/com/engine/organization/web/GradeController.java +++ b/src/com/engine/organization/web/GradeController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.GradeSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.GradeWrapper; @@ -122,7 +122,7 @@ public class GradeController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getGradeWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java new file mode 100644 index 00000000..0bdc3de0 --- /dev/null +++ b/src/com/engine/organization/web/JobController.java @@ -0,0 +1,269 @@ +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.job.param.JobSearchParam; +import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.JobWrapper; +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; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +public class JobController { + public JobWrapper getJobWrapper(User user) { + return ServiceUtil.getService(JobWrapper.class, user); + } + + /** + * 左侧树接口 + * + * @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 getJobWrapper(user).getSearchTree(params); + + } + + /** + * 获取list列表 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/listPage") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listDept(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).listPage(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 新增保存表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSaveForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSaveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getSaveForm()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 获取基础表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getJobBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getJobBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getJobWrapper(user).getJobBaseForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 保存基础信息 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/saveBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新表单 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/updateForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getJobWrapper(user).updateForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/copyJobItem") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult copyJobItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).copyJobItem(param.getId(), param.getParentDept())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getSearchCondition()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + @GET + @Path("/getCopyForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCopyForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return getJobWrapper(user).getCopyForm(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + @GET + @Path("/getHrmListByJobId") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHrmListByJobId(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("jobId") Long jobId) { + try { + User user = HrmUserVarify.getUser(request, response); + return getJobWrapper(user).getHrmListByJobId(jobId); + } 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 48b6aad3..772c13cc 100644 --- a/src/com/engine/organization/web/LevelController.java +++ b/src/com/engine/organization/web/LevelController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.LevelSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.LevelWrapper; @@ -122,7 +122,7 @@ public class LevelController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getLevelWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/PostController.java b/src/com/engine/organization/web/PostController.java index 7e13fc8c..245f0baa 100644 --- a/src/com/engine/organization/web/PostController.java +++ b/src/com/engine/organization/web/PostController.java @@ -2,8 +2,8 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; -import com.engine.organization.entity.post.po.PostPO; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.postion.po.PostPO; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.PostWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -84,7 +84,7 @@ public class PostController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getPostWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/PostInfoController.java b/src/com/engine/organization/web/PostInfoController.java index 8fefbcb6..a2c5ae1e 100644 --- a/src/com/engine/organization/web/PostInfoController.java +++ b/src/com/engine/organization/web/PostInfoController.java @@ -2,8 +2,8 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; -import com.engine.organization.entity.post.param.PostInfoSearchParam; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.postion.param.PostInfoSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.PostInfoWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -122,7 +122,7 @@ public class PostInfoController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getPostInfoWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/SchemeController.java b/src/com/engine/organization/web/SchemeController.java index e461a51a..1852d1b7 100644 --- a/src/com/engine/organization/web/SchemeController.java +++ b/src/com/engine/organization/web/SchemeController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.SchemeSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.SchemeWrapper; @@ -128,7 +128,7 @@ public class SchemeController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); getSchemeWrapper(user).deleteByIds(param.getIds()); diff --git a/src/com/engine/organization/web/SequenceController.java b/src/com/engine/organization/web/SequenceController.java index faf2b8b0..557bba6b 100644 --- a/src/com/engine/organization/web/SequenceController.java +++ b/src/com/engine/organization/web/SequenceController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.sequence.param.SequenceSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.SequenceWrapper; @@ -122,7 +122,7 @@ public class SequenceController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getSequenceWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/StaffController.java b/src/com/engine/organization/web/StaffController.java new file mode 100644 index 00000000..9f93a9d9 --- /dev/null +++ b/src/com/engine/organization/web/StaffController.java @@ -0,0 +1,176 @@ +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.staff.param.StaffSearchParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.StaffWrapper; +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.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffController { + public StaffWrapper getStaffWrapper(User user) { + return ServiceUtil.getService(StaffWrapper.class, user); + } + + /** + * 获取list列表 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listStaff(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + StaffSearchParam param = JSONObject.toJavaObject((JSON) JSON.toJSON(map), StaffSearchParam.class); + return ReturnResult.successed(getStaffWrapper(user).listPage(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 添加编制 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/saveStaff") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveStaff(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).saveStaff(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新编制,修改所有字段 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateStaff") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateStaff(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).updateStaff(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 新增、编辑表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffWrapper(user).getForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } +} diff --git a/src/com/engine/organization/web/StaffPlanController.java b/src/com/engine/organization/web/StaffPlanController.java new file mode 100644 index 00000000..b3e593cc --- /dev/null +++ b/src/com/engine/organization/web/StaffPlanController.java @@ -0,0 +1,196 @@ +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.staff.param.StaffPlanSearchParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.StaffPlanWrapper; +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.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanController { + public StaffPlanWrapper getStaffPlanWrapper(User user) { + return ServiceUtil.getService(StaffPlanWrapper.class, user); + } + + /** + * 获取list列表 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + StaffPlanSearchParam param = JSONObject.toJavaObject((JSON) JSON.toJSON(map), StaffPlanSearchParam.class); + return ReturnResult.successed(getStaffPlanWrapper(user).listPage(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 添加编制方案 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/saveStaffPlan") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).saveStaffPlan(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新编制方案,修改所有字段 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateStaffPlan") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).updateStaffPlan(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffPlanWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 新增、编辑表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffPlanWrapper(user).getForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } +} diff --git a/src/com/engine/organization/webservice/CustomBrowserService.java b/src/com/engine/organization/webservice/CustomBrowserService.java index d6086e7f..2c155efb 100644 --- a/src/com/engine/organization/webservice/CustomBrowserService.java +++ b/src/com/engine/organization/webservice/CustomBrowserService.java @@ -1,6 +1,6 @@ package com.engine.organization.webservice; -import com.engine.organization.entity.comp.po.CompPO; +import com.engine.organization.entity.company.po.CompPO; import javax.jws.WebMethod; import javax.jws.WebService; diff --git a/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java b/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java index 94c0d1e1..1591caeb 100644 --- a/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java +++ b/src/com/engine/organization/webservice/CustomBrowserServiceImpl.java @@ -1,6 +1,6 @@ package com.engine.organization.webservice; -import com.engine.organization.entity.comp.po.CompPO; +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; diff --git a/src/com/engine/organization/wrapper/CodeSettingWrapper.java b/src/com/engine/organization/wrapper/CodeSettingWrapper.java new file mode 100644 index 00000000..d5df6b93 --- /dev/null +++ b/src/com/engine/organization/wrapper/CodeSettingWrapper.java @@ -0,0 +1,31 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.service.CodeSettingService; +import com.engine.organization.service.impl.CodeSettingServiceImpl; +import com.engine.organization.util.response.ReturnResult; +import weaver.hrm.User; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingWrapper extends Service { + + public CodeSettingService getCodeSettingService(User user) { + return ServiceUtil.getService(CodeSettingServiceImpl.class,user); + } + + public ReturnResult getHasRight(String serialtype) { + return getCodeSettingService(user).getHasRight(serialtype); + } + + public ReturnResult saveOrUpdateCodeSetting(CodeSaveParam params) { + getCodeSettingService(user).saveOrUpdateCodeSetting(params); + return ReturnResult.successed(); + } +} diff --git a/src/com/engine/organization/wrapper/CompWrapper.java b/src/com/engine/organization/wrapper/CompWrapper.java index d0ea64b6..6e63ba43 100644 --- a/src/com/engine/organization/wrapper/CompWrapper.java +++ b/src/com/engine/organization/wrapper/CompWrapper.java @@ -2,7 +2,7 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.organization.entity.comp.param.CompSearchParam; +import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.service.CompService; import com.engine.organization.service.impl.CompServiceImpl; import weaver.hrm.User; diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 8e90b9fc..363ae0f4 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -4,13 +4,14 @@ 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.vo.SingleDeptTreeVO; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.response.ReturnResult; -import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import weaver.hrm.User; +import java.util.Collection; import java.util.Map; /** @@ -48,4 +49,74 @@ public class DepartmentWrapper extends Service { public Map getSaveForm() { return getDepartmentService(user).getSaveForm(); } + + /** + * 保存部门基础信息 + * + * @param params + * @return + */ + public int saveBaseForm(DeptSearchParam params) { + return getDepartmentService(user).saveBaseForm(params); + } + + + /** + * 更新禁用标记 + * + * @param params + */ + public int updateForbiddenTagById(DeptSearchParam params) { + return getDepartmentService(user).updateForbiddenTagById(params); + } + + /** + * 更新分部主表、拓展表、明细表 + * + * @param params + * @return + */ + public int updateForm(Map params) { + return getDepartmentService(user).updateForm(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(Collection ids) { + return getDepartmentService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getDepartmentService(user).getSearchCondition(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getDepartmentService(user).getHasRight(); + } + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + public Map getDeptBaseForm(Map params) { + return getDepartmentService(user).getDeptBaseForm(params); + } + + } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java new file mode 100644 index 00000000..587cf1de --- /dev/null +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -0,0 +1,159 @@ +package com.engine.organization.wrapper; + +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.job.param.JobSearchParam; +import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.service.JobService; +import com.engine.organization.service.impl.JobServiceImpl; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.response.ReturnResult; +import weaver.hrm.User; + +import java.util.*; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +public class JobWrapper extends Service { + private JobService getJobService(User user) { + return ServiceUtil.getService(JobServiceImpl.class, user); + } + + /** + * 左侧树 + * + * @param params + * @return + */ + public Map getSearchTree(SearchTreeParams params) { + return getJobService(user).getSearchTree(params); + } + + /** + * 列表 + * + * @param param + * @return + */ + public Map listPage(JobSearchParam param) { + return getJobService(user).listPage(param); + } + + /** + * 顶部按钮 + * + * @return + */ + public Map getHasRight() { + return getJobService(user).getHasRight(); + } + + /** + * 搜索条件 + * + * @return + */ + public Map getSearchCondition() { + return getJobService(user).getSearchCondition(); + } + + /** + * 获取新增表单 + * + * @return + */ + public Map getSaveForm() { + return getJobService(user).getSaveForm(); + } + + /** + * 获取详细表单 + * + * @param params + * @return + */ + public Map getJobBaseForm(Map params) { + return getJobService(user).getJobBaseForm(params); + + } + + /** + * 保存基础信息 + * + * @param params + * @return + */ + public int saveBaseForm(JobSearchParam params) { + return getJobService(user).saveBaseForm(params); + } + + /** + * 更新主表、拓展表、明细表 + * + * @param params + * @return + */ + public int updateForm(Map params) { + return getJobService(user).updateForm(params); + } + + /** + * 复制岗位到指定部门 + * + * @param id + * @param departmentId + * @return + */ + public int copyJobItem(long id, long departmentId) { + return getJobService(user).copyJobItem(id, departmentId); + } + + /** + * @param params + * @return + */ + public int updateForbiddenTagById(JobSearchParam params) { + return getJobService(user).updateForbiddenTagById(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + * @return + */ + public int deleteByIds(Collection ids) { + return getJobService(user).deleteByIds(ids); + } + + + /** + * 获取复制表单 + * @return + */ + public ReturnResult getCopyForm() { + List addGroups = new ArrayList<>(); + List condition = new ArrayList<>(); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "161", "department", "deptBrowser"); + deptBrowserItem.setRules("required|string"); + condition.add(deptBrowserItem); + addGroups.add(new SearchConditionGroup("", true, condition)); + return ReturnResult.successed(addGroups); + } + + /** + * 根据岗位获取人员 + * @param jobId + * @return + */ + public ReturnResult getHrmListByJobId(Long jobId) { + Map hrmListByJobId = getJobService(user).getHrmListByJobId(jobId); + return ReturnResult.successed(hrmListByJobId); + } +} diff --git a/src/com/engine/organization/wrapper/PostInfoWrapper.java b/src/com/engine/organization/wrapper/PostInfoWrapper.java index 8a7f4e25..8db4a99a 100644 --- a/src/com/engine/organization/wrapper/PostInfoWrapper.java +++ b/src/com/engine/organization/wrapper/PostInfoWrapper.java @@ -2,7 +2,7 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.organization.entity.post.param.PostInfoSearchParam; +import com.engine.organization.entity.postion.param.PostInfoSearchParam; import com.engine.organization.service.PostInfoService; import com.engine.organization.service.impl.PostInfoServiceImpl; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/organization/wrapper/PostWrapper.java b/src/com/engine/organization/wrapper/PostWrapper.java index b978fb1f..e47e6112 100644 --- a/src/com/engine/organization/wrapper/PostWrapper.java +++ b/src/com/engine/organization/wrapper/PostWrapper.java @@ -3,7 +3,7 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.TreeData; -import com.engine.organization.entity.post.po.PostPO; +import com.engine.organization.entity.postion.po.PostPO; import com.engine.organization.service.PostService; import com.engine.organization.service.impl.PostServiceImpl; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/organization/wrapper/StaffPlanWrapper.java b/src/com/engine/organization/wrapper/StaffPlanWrapper.java new file mode 100644 index 00000000..8881ea1c --- /dev/null +++ b/src/com/engine/organization/wrapper/StaffPlanWrapper.java @@ -0,0 +1,102 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.service.StaffPlanService; +import com.engine.organization.service.impl.StaffPlanServiceImpl; +import org.apache.ibatis.annotations.Param; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanWrapper extends Service { + private StaffPlanService getStaffPlanService(User user) { + return ServiceUtil.getService(StaffPlanServiceImpl.class, user); + } + + /** + * 编制方案列表 + * + * @param params + * @return + */ + public Map listPage(StaffPlanSearchParam params) { + return getStaffPlanService(user).listPage(params); + } + + /** + * 新增编制方案 + * + * @param param + * @return + */ + public int saveStaffPlan(StaffPlanSearchParam param) { + return getStaffPlanService(user).saveStaffPlan(param); + } + + /** + * 更新编制方案 + * + * @param param + * @return + */ + public int updateStaffPlan(StaffPlanSearchParam param) { + return getStaffPlanService(user).updateStaffPlan(param); + } + + /** + * 更新禁用标记 + * + * @param params + */ + public int updateForbiddenTagById(StaffPlanSearchParam params) { + return getStaffPlanService(user).updateForbiddenTagById(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(@Param("ids") Collection ids) { + return getStaffPlanService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getStaffPlanService(user).getSearchCondition(params); + } + + + /** + * 获取新增表单 + * + * @param params + * @return + */ + public Map getForm(Map params) { + return getStaffPlanService(user).getForm(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getStaffPlanService(user).getHasRight(); + } +} diff --git a/src/com/engine/organization/wrapper/StaffWrapper.java b/src/com/engine/organization/wrapper/StaffWrapper.java new file mode 100644 index 00000000..dec481eb --- /dev/null +++ b/src/com/engine/organization/wrapper/StaffWrapper.java @@ -0,0 +1,93 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.service.StaffService; +import com.engine.organization.service.impl.StaffServiceImpl; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffWrapper extends Service { + private StaffService getStaffService(User user) { + return ServiceUtil.getService(StaffServiceImpl.class, user); + } + + /** + * 编制列表 + * + * @param params + * @return + */ + public Map listPage(StaffSearchParam params) { + return getStaffService(user).listPage(params); + } + + /** + * 新增编制 + * + * @param param + * @return + */ + public int saveStaff(StaffSearchParam param) { + return getStaffService(user).saveStaff(param); + } + + /** + * 更新编制 + * + * @param param + * @return + */ + public int updateStaff(StaffSearchParam param) { + return getStaffService(user).updateStaff(param); + } + + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(Collection ids) { + return getStaffService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getStaffService(user).getSearchCondition(params); + } + + + /** + * 获取新增表单 + * + * @param params + * @return + */ + public Map getForm(Map params) { + return getStaffService(user).getForm(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getStaffService(user).getHasRight(); + } +}