!22 生产合并

Merge pull request !22 from reset/develop
pull/43/MERGE
reset 3 years ago committed by Gitee
commit 15cccfaed4
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

@ -127,14 +127,14 @@ CREATE TABLE JCL_FIELD_EXTENDINFO (
field_name_desc varchar(100) NULL,
field_type varchar(1000) NULL,
control_type int null,
extend_group int null,
extend_group_id 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,
browser_show int null,
show_order int null,
creator int null,
delete_type int null,
@ -339,12 +339,12 @@ CREATE TABLE JCL_ORG_JOBEXT_DT1 (
-- JCL_ORG_STAFFPLAN
CREATE TABLE JCL_ORG_STAFFPLAN (
id int auto_increment NOT NULL,
staffplan_no varchar(100) NULL,
staffplan_name varchar(100) NULL,
staffplan_year varchar(100) NULL,
plan_no varchar(100) NULL,
plan_name varchar(100) NULL,
plan_year varchar(100) NULL,
time_start date NULL,
time_end date NULL,
apply_company int NULL,
company_id varchar(100) NULL,
description text NULL,
status int NULL,
creator int null,
@ -357,17 +357,17 @@ CREATE TABLE JCL_ORG_STAFFPLAN (
-- JCL_ORG_STAFF
CREATE TABLE JCL_ORG_STAFF (
id int auto_increment NOT NULL,
scheme_id int null,
comp int null,
dept int null,
job int null,
plan_id int null,
comp_id int null,
dept_id int null,
job_id int null,
staff_num int null,
control_policy int null,
staff_permanent_num int null,
freeze_num int null,
lack_status int null,
staff_description varchar(100) NULL,
instruction text null,
description text null,
creator int null,
delete_type int null,
create_time date null,

@ -129,14 +129,14 @@ CREATE TABLE JCL_FIELD_EXTENDINFO (
FIELD_NAME_DESC NVARCHAR2(100) NULL,
FIELD_TYPE NVARCHAR2(1000) NULL,
CONTROL_TYPE NUMBER NULL,
EXTEND_GROUP NUMBER NULL,
EXTEND_GROUP_ID NUMBER NULL,
ISENABLE NUMBER NULL,
ISREQUIRED NUMBER NULL,
LIST_SHOW NUMBER NULL,
SEARCH_SHOW NUMBER NULL,
EDIT_SHOW NUMBER NULL,
ADD_SHOW NUMBER NULL,
BUTTON_SHOW NUMBER NULL,
BROWSER_SHOW NUMBER NULL,
SHOW_ORDER NUMBER NULL,
CREATOR NUMBER NULL,
DELETE_TYPE NUMBER NULL,
@ -340,12 +340,12 @@ CREATE TABLE JCL_ORG_JOBEXT_DT1 (
-- JCL_ORG_STAFFPLAN
CREATE TABLE JCL_ORG_STAFFPLAN (
ID NUMBER NOT NULL,
STAFFPLAN_NO NVARCHAR2(100) NULL,
STAFFPLAN_NAME NVARCHAR2(100) NULL,
STAFFPLAN_YEAR NVARCHAR2(100) NULL,
PLAN_NO NVARCHAR2(100) NULL,
PLAN_NAME NVARCHAR2(100) NULL,
PLAN_YEAR NVARCHAR2(100) NULL,
TIME_START DATE NULL,
TIME_END DATE NULL,
APPLY_COMPANY NUMBER NULL,
COMPANY_ID NVARCHAR2(100) NULL,
DESCRIPTION NVARCHAR2(1000) NULL,
STATUS NUMBER NULL,
CREATOR NUMBER NULL,
@ -358,17 +358,17 @@ CREATE TABLE JCL_ORG_STAFFPLAN (
-- JCL_ORG_STAFF
CREATE TABLE JCL_ORG_STAFF (
ID NUMBER NOT NULL,
SCHEME_ID NUMBER NULL,
COMP NUMBER NULL,
DEPT NUMBER NULL,
JOB NUMBER NULL,
PLAN_ID NUMBER NULL,
COMP_ID NUMBER NULL,
DEPT_ID NUMBER NULL,
JOB_ID NUMBER NULL,
STAFF_NUM NUMBER NULL,
CONTROL_POLICY NUMBER NULL,
STAFF_PERMANENT_NUM NUMBER NULL,
FREEZE_NUM NUMBER NULL,
LACK_STATUS NUMBER NULL,
STAFF_DESCRIPTION NVARCHAR2(100) NULL,
INSTRUCTION NVARCHAR2(1000) NULL,
DESCRIPTION NVARCHAR2(1000) NULL,
CREATOR NUMBER NULL,
DELETE_TYPE NUMBER NULL,
CREATE_TIME DATE NULL,

@ -127,14 +127,14 @@ CREATE TABLE JCL_FIELD_EXTENDINFO (
field_name_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
field_type varchar(1000) COLLATE Chinese_PRC_CI_AS NULL,
control_type int null,
extend_group int null,
extend_group_id 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,
browser_show int null,
show_order int null,
creator int null,
delete_type int null,
@ -339,12 +339,12 @@ CREATE TABLE JCL_ORG_JOBEXT_DT1 (
-- JCL_ORG_STAFFPLAN
CREATE TABLE JCL_ORG_STAFFPLAN (
id int IDENTITY(1,1) NOT NULL,
staffplan_no varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
staffplan_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
staffplan_year varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
plan_no varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
plan_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
plan_year varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
time_start date NULL,
time_end date NULL,
apply_company int NULL,
company_id varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
description text NULL,
status int NULL,
creator int null,
@ -357,17 +357,17 @@ CREATE TABLE JCL_ORG_STAFFPLAN (
-- JCL_ORG_STAFF
CREATE TABLE JCL_ORG_STAFF (
id int IDENTITY(1,1) NOT NULL,
scheme_id int null,
comp int null,
dept int null,
job int null,
plan_id int null,
comp_id int null,
dept_id int null,
job_id int null,
staff_num int null,
control_policy int null,
staff_permanent_num int null,
freeze_num int null,
lack_status int null,
staff_description varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
instruction text null,
description text null,
creator int null,
delete_type int null,
create_time date null,

@ -0,0 +1,13 @@
package com.api.organization.web;
import javax.ws.rs.Path;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
@Path("/bs/hrmorganization/dept")
public class DepartmentController extends com.engine.organization.web.DepartmentController {
}

@ -1,13 +1,14 @@
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.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -17,28 +18,113 @@ import java.util.stream.Collectors;
* @version: 1.0
*/
public class CompBO {
public static List<CompListDTO> buildCompDTOList(Collection<CompPO> list) {
if (CollectionUtils.isEmpty(list)) {
// 递归添加父级数据
Map<Long, CompPO> poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item));
List<CompListDTO> 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<Long, List<CompListDTO>> 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<CompListDTO> buildCompDTOList(Collection<CompPO> list, List<CompPO> filterList) {
// 搜索结果为空,直接返回空
if (CollectionUtils.isEmpty(filterList)) {
return Collections.emptyList();
}
List<CompListDTO> dtoList = list.stream().map(e -> CompListDTO.builder()
// 递归添加父级数据
Map<Long, CompPO> poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item));
List<CompPO> addedList = new ArrayList<>();
for (CompPO po : filterList) {
dealParentData(addedList, po, poMaps);
}
List<CompListDTO> 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(e.getIndustry())
.compPrincipal(e.getCompPrincipal())
.description(e.getDescription())
.industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + ""))
.compPrincipal(getUserNameById(e.getCompPrincipal() + ""))
.forbiddenTag(e.getForbiddenTag())
.build()
).collect(Collectors.toList());
Map<Long, List<CompListDTO>> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany));
return dtoList.stream().filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).map(e -> {
return dtoList.stream().map(e -> {
e.setChildren(collects.get(e.getId()));
return e;
}).collect(Collectors.toList());
}).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<CompPO> addedList, CompPO po, Map<Long, CompPO> 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);
}
}
}

@ -33,21 +33,20 @@ public class CompListDTO {
/**
* id
*/
@TableTitle(title = "id", dataIndex = "id", key = "id")
private Long id;
/**
*
*/
@TableTitle(title = "编号", dataIndex = "compNo", key = "compNo")
private String compNo;
/**
*
*/
@TableTitle(title = "名称", dataIndex = "compName", key = "compName")
private String compName;
/**
*
*/
@TableTitle(title = "编号", dataIndex = "compNo", key = "compNo")
private String compNo;
/**
*
*/
@ -57,7 +56,9 @@ public class CompListDTO {
/**
*
*/
@TableTitle(title = "上级公司", dataIndex = "parentCompany", key = "parentCompany")
@TableTitle(title = "上级公司", dataIndex = "parentCompName", key = "parentCompName")
private String parentCompName;
private Long parentCompany;
/**
@ -70,25 +71,25 @@ public class CompListDTO {
*
*/
@TableTitle(title = "行业", dataIndex = "industry", key = "industry")
private Integer industry;
private String industry;
/**
*
*/
@TableTitle(title = "负责人", dataIndex = "compPrincipal", key = "compPrincipal")
private Integer compPrincipal;
private String compPrincipal;
/**
*
*
*/
@TableTitle(title = "说明", dataIndex = "description", key = "description")
private String description;
@TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag")
private int forbiddenTag;
/**
*
*
*/
@TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag")
private String forbiddenTag;
@TableTitle(title = "操作", dataIndex = "operate", key = "operate")
private String operate;
/**
*

@ -0,0 +1,70 @@
package com.engine.organization.entity.comp.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/16
* @version: 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CompSearchParam extends BaseQueryParam {
/**
*
*/
private Long id;
/**
*
*/
private String compNo;
/**
*
*/
private String compName;
/**
*
*/
private String compNameShort;
/**
*
*/
private Long parentCompany;
/**
*
*/
private String orgCode;
/**
*
*/
private Integer industry;
/**
*
*/
private Integer compPrincipal;
/**
*
*/
private String description;
/**
*
*/
private Boolean forbiddenTag;
}

@ -18,16 +18,57 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
public class CompPO {
/**
*
*/
private Long id;
/**
*
*/
private String compNo;
/**
*
*/
private String compName;
/**
*
*/
private String compNameShort;
/**
*
*/
private Long parentCompany;
/**
*
*/
private String orgCode;
/**
*
*/
private Integer industry;
/**
*
*/
private Integer compPrincipal;
/**
*
*/
private String description;
private String forbiddenTag;
/**
*
*/
private Integer forbiddenTag;
private Long creator;
private int deleteType;
private Date createTime;

@ -0,0 +1,130 @@
package com.engine.organization.entity.department.bo;
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.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.employee.EmployeeMapper;
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.collections.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public class DepartmentBO {
public static List<DepartmentListDTO> buildDeptDTOList(Collection<DepartmentPO> list, List<DepartmentPO> filterList) {
// 搜索结果为空,直接返回空
if (CollectionUtils.isEmpty(filterList)) {
return Collections.emptyList();
}
// 递归添加父级数据
Map<Long, DepartmentPO> poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item));
List<DepartmentPO> addedList = new ArrayList<>();
for (DepartmentPO po : filterList) {
dealParentData(addedList, po, poMaps);
}
List<DepartmentListDTO> 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<Long, List<DepartmentListDTO>> 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());
}
public static DepartmentPO convertParamsToPO(DeptSearchParam param, Long employeeId) {
if (null == param) {
return null;
}
return DepartmentPO.builder()
.id(param.getId() == null ? 0 : param.getId())
.deptNo(param.getDeptNo())
.deptName(param.getDeptName())
.deptNameShort(param.getDeptNameShort())
.parentComp(param.getParentComp())
.parentDept(param.getParentDept())
.deptPrincipal(param.getDeptPrincipal())
.showOrder(param.getShowOrder())
.forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1)
.deleteType(0)
.createTime(new Date())
.updateTime(new Date())
.creator(employeeId).build();
}
public static List<SingleDeptTreeVO> buildSingleDeptTreeVOS(List<DepartmentPO> departmentPOs,Long parentComp) {
if (CollectionUtils.isEmpty(departmentPOs)) {
return Collections.emptyList();
}
List<SingleDeptTreeVO> 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());
//获取非一级部门
Map<Long, List<SingleDeptTreeVO>> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO :: getParentDept));
return singleDeptTreeVOS.stream().map(e -> {
e.setChildren(collects.get(e.getId()));
return e;
}).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList());
}
public static String getDeptNameById(Integer id) {
return MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptNameById(id);
}
public static String getEmployeeNameById(Long id) {
return MapperProxyFactory.getProxy(EmployeeMapper.class).getEmployeeNameById(id);
}
/**
*
*
* @param addedList
* @param po
* @param poMaps
*/
private static void dealParentData(List<DepartmentPO> addedList, DepartmentPO po, Map<Long, DepartmentPO> poMaps) {
if (!addedList.contains(po)) {
addedList.add(po);
}
DepartmentPO parentPO = poMaps.get(po.getParentDept());
if (null != parentPO) {
dealParentData(addedList, parentPO, poMaps);
}
}
}

@ -0,0 +1,98 @@
package com.engine.organization.entity.department.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;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/19
* @Version V1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@OrganizationTable(pageId = "96f2bb0d-da73-11ec-a0da-00ffcbed7508",
tableType = WeaTableType.NONE,
operates = {
@OrganizationTableOperate(index = "0", text = "编辑"),
@OrganizationTableOperate(index = "1", text = "删除"),
@OrganizationTableOperate(index = "2", text = "合并"),
@OrganizationTableOperate(index = "3", text = "转移"),
@OrganizationTableOperate(index = "4", text = "联查岗位"),
@OrganizationTableOperate(index = "4", text = "联查人员")
})
public class DepartmentListDTO {
private Long id;
/**
*
*/
@TableTitle(title = "编号", dataIndex = "deptNo", key = "deptNo")
private String deptNo;
/**
*
*/
@TableTitle(title = "名称", dataIndex = "deptName", key = "deptName")
private String deptName;
/**
*
*/
@TableTitle(title = "简称", dataIndex = "deptNameShort", key = "deptNameShort")
private String deptNameShort;
/**
*
*/
@TableTitle(title = "所属分部", dataIndex = "parentComp", key = "parentComp")
private String parentComp;
/**
*
*/
@TableTitle(title = "上级部门", dataIndex = "parentDeptName", key = "parentDeptName")
private String parentDeptName;
private Long parentDept;
/**
*
*/
@TableTitle(title = "部门负责人", dataIndex = "deptPrincipal", key = "deptPrincipal")
private String deptPrincipal;
/**
*
*/
@TableTitle(title = "显示顺序", dataIndex = "showOrder", key = "showOrder")
private int showOrder;
/**
*
*/
@TableTitle(title = "说明", dataIndex = "description", key = "description")
private String description;
/**
*
*/
@TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag")
private int forbiddenTag;
/**
*
*/
private List<DepartmentListDTO> children;
}

@ -0,0 +1,37 @@
package com.engine.organization.entity.department.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/23
* @version: 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeptSearchParam extends BaseQueryParam {
private Long id;
private String deptNo;
private String deptName;
private String deptNameShort;
private Long parentComp;
private Long parentDept;
private Integer deptPrincipal;
private Integer showOrder;
private Boolean forbiddenTag;
}

@ -0,0 +1,23 @@
package com.engine.organization.entity.department.param;
import com.engine.organization.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuerySingleDeptListParam extends BaseQueryParam {
private Long parentComp;
}

@ -0,0 +1,49 @@
package com.engine.organization.entity.department.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/19
* @Version V1.0
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DepartmentPO {
private Long id;
private String deptNo;
private String deptName;
private String deptNameShort;
private Long parentComp;
private Long parentDept;
private Integer deptPrincipal; //部门负责人
private Integer showOrder;
private String description;
private Integer forbiddenTag;
private Long creator;
private int deleteType;
private Date createTime;
private Date updateTime;
}

@ -0,0 +1,47 @@
package com.engine.organization.entity.department.vo;
import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.organization.annotation.OrganizationTable;
import com.engine.organization.annotation.TableTitle;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@OrganizationTable(pageId = "01b397a9-638b-4d58-89c7-4a1d17f98656",
tableType = WeaTableType.NONE)
public class SingleDeptTreeVO {
private Long id;
@TableTitle(title = "部门名称", dataIndex = "deptName", key = "deptName")
private String deptName;
private Long parentComp; //上级分部
private Long parentDept; //上级部门id
@TableTitle(title = "上级部门", dataIndex = "parentDeptName", key = "parentDeptName")
private String parentDeptName; //上级部门
@TableTitle(title = "部门负责人", dataIndex = "deptPrincipalName", key = "deptPrincipalName")
private String deptPrincipalName; //部门负责人
//子节点
private List<SingleDeptTreeVO> children;
}

@ -0,0 +1,28 @@
package com.engine.organization.entity.employee;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
private Long employeeId;
private String username;
private Long departmentId;
//....
}

@ -0,0 +1,418 @@
package com.engine.organization.entity.extend.bo;
import com.api.browser.bean.BrowserBean;
import com.api.browser.bean.BrowserValueInfo;
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.service.BrowserValueInfoService;
import com.api.browser.util.BrowserInitUtil;
import com.api.browser.util.ConditionFactory;
import com.api.browser.util.ConditionType;
import com.api.hrm.bean.FieldItem;
import com.api.hrm.util.FieldType;
import com.api.hrm.util.ServiceUtil;
import com.engine.kq.cmd.shiftmanagement.toolkit.ShiftManagementToolKit;
import com.engine.organization.entity.extend.po.ExtendInfoPO;
import com.engine.organization.util.OrganizationFormItemUtil;
import com.engine.sensitive.biz.SensitiveWordTypeComInfo;
import weaver.file.ImageFileManager;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.definedfield.HrmFieldManager;
import weaver.systeminfo.SystemEnv;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/19
* @version: 1.0
*/
public class ExtendInfoBO {
public static String DATE_SELECT = "select";
public static String DATE_FROM = "from";
public static String DATE_TO = "to";
public static String DATE_Time_FROM = "_start";
public static String DATE_Time_TO = "_end";
// 封装对象为table组件
public static List<Map<String, Object>> convertInfoListToTable(User user, List<ExtendInfoPO> infoPOList, int viewAttr, boolean showLabel) {
List<Map<String, Object>> lsCol = new ArrayList<Map<String, Object>>();
Map<String, Object> col = null;
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<String, Object>();
col.put("title", extendInfoPO.getFieldNameDesc());
col.put("key", tmpkey);
col.put("dataIndex", tmpkey);
col.put("com", getFieldDetialInfo(user, extendInfoPO, viewAttr, showLabel, width));
col.put("width", width + "%");
lsCol.add(col);
}
return lsCol;
}
/**
*
*
* @param user
* @param extendInfoPO
* @param viewAttr
* @return
*/
private static List<FieldItem> getFieldDetialInfo(User user, ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
List<FieldItem> ls = new ArrayList<FieldItem>();
FieldItem fieldItem = createField(user, extendInfoPO, viewAttr, showLabel, width);
ls.add(fieldItem);
return ls;
}
/**
*
*
* @param user
* @param extendInfoPO
* @param viewAttr
* @param showLabel
* @param width
* @return
*/
private static FieldItem createField(User user, ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
FieldItem fieldItem = new FieldItem();
if (showLabel) {
fieldItem.setLabel(extendInfoPO.getFieldNameDesc());
} else {
fieldItem.setLabel("");
}
fieldItem.setType(getFieldhtmltype(extendInfoPO.getControlType() + ""));
fieldItem.setKey(extendInfoPO.getFieldName());
// 查看操作 全部设置为只读
if (1 == viewAttr) {
fieldItem.setViewAttr(viewAttr);
} else {
// 必填
if (1 == extendInfoPO.getIsrequired()) {
fieldItem.setViewAttr(3);
fieldItem.setRules("required|string");
} else {
fieldItem.setViewAttr(2);
}
}
// 浏览按钮特殊处理
if (FieldType.BROWSER.equals(fieldItem.getType())) {
BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), "").getBrowserConditionParam();
fieldItem.setBrowserConditionParam(browserConditionParam);
}
fieldItem.setWidth(width + "%");
return fieldItem;
}
/**
*
*
* @param fieldhtmltype
* @return
*/
private static FieldType getFieldhtmltype(String fieldhtmltype) {
FieldType fieldtype = null;
if (fieldhtmltype.equals("1")) {
fieldtype = FieldType.INPUT;
} else if (fieldhtmltype.equals("2")) {
fieldtype = FieldType.TEXTAREA;
} else if (fieldhtmltype.equals("3")) {
fieldtype = FieldType.BROWSER;
} else if (fieldhtmltype.equals("4")) {
fieldtype = FieldType.CHECKBOX;
} else if (fieldhtmltype.equals("5")) {
fieldtype = FieldType.SELECT;
} else if (fieldhtmltype.equals("6")) {
fieldtype = FieldType.FILEUPLOAD;
} else if (fieldhtmltype.equals("7")) {
fieldtype = FieldType.TEXT;
}
return fieldtype;
}
public static SearchConditionItem getSearchConditionItem(User user, int viewAttr, ExtendInfoPO extendInfoPO, Object fieldvalue) {
SearchConditionItem searchConditionItem = null;
try {
if (user == null) {
user = new User();
user.setLanguage(7);
}
ConditionFactory conditionFactory = new ConditionFactory(user);
HrmFieldManager hrmFieldManager = new HrmFieldManager();
String fieldid = Util.null2String(extendInfoPO.getId());//字段id
String fieldname = Util.null2String(extendInfoPO.getFieldName());//字段名
String fieldlabel = Util.null2String(extendInfoPO.getFieldNameDesc());//字段显示名
String fieldhtmltype = Util.null2String(extendInfoPO.getControlType());//字段类型
String detailtype = Util.null2String(extendInfoPO.getBrowserType());//字段二级类型(浏览框--单人力)
String dmlurl = Util.null2String("");
boolean isQuickSearch = true;
boolean isScope = false;
if (fieldhtmltype.equals("1")) {//单行文本框
if (isScope) {//范围
if (Util.null2String(fieldvalue).length() == 0) {
fieldvalue = new HashMap<String, Object>();
}
searchConditionItem = conditionFactory.createCondition(ConditionType.SCOPE, fieldlabel, new String[]{fieldname, fieldname + "to"});
} else if (detailtype.equals("2")) {//数字
searchConditionItem = conditionFactory.createCondition(ConditionType.INPUTNUMBER, fieldlabel, fieldname, isQuickSearch);
} else {
searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, fieldlabel, fieldname, isQuickSearch);
}
} else if (fieldhtmltype.equals("2")) {//多行文本框
searchConditionItem = conditionFactory.createCondition(ConditionType.TEXTAREA, fieldlabel, fieldname);
} else if (fieldhtmltype.equals("3")) {//浏览按钮
if (detailtype.equals("2")) {
if (!extendInfoPO.getTableName().toLowerCase().contains("_dt")) {
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname);
} else {
searchConditionItem = conditionFactory.createCondition(ConditionType.DATE, fieldlabel, fieldname, detailtype);
searchConditionItem.setDomkey(new String[]{fieldname + DATE_SELECT, fieldname + DATE_FROM, fieldname + DATE_TO});
searchConditionItem.setOptions(ServiceUtil.getDateSelectFromTo(user.getLanguage()));
}
} else if (detailtype.equals("19")) {
searchConditionItem = conditionFactory.createCondition(ConditionType.TIMEPICKER, fieldlabel, fieldname, detailtype);
} else if (detailtype.equals("402")) { // 年
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname, detailtype);
searchConditionItem.setFormat("yyyy");
searchConditionItem.setMode("year");
searchConditionItem.setPlaceholder(SystemEnv.getHtmlLabelNames("526306", user.getLanguage()));
searchConditionItem.setShowTime(false);
} else if (detailtype.equals("403")) {
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname, detailtype);
searchConditionItem.setFormat("yyyy-MM");
searchConditionItem.setMode("month");
searchConditionItem.setPlaceholder(SystemEnv.getHtmlLabelNames("126137", user.getLanguage()));
searchConditionItem.setShowTime(false);
} else if (detailtype.equals("RANGEPICKER")) {//日期区间
String[] domkey = new String[]{DATE_FROM + fieldname, DATE_TO + fieldname};
searchConditionItem = conditionFactory.createCondition(ConditionType.RANGEPICKER, fieldlabel, domkey);
searchConditionItem.setValue(fieldvalue);
} else if (detailtype.equals("TIMERANGEPICKER")) {//时间区间
String[] domkey = new String[]{fieldname + DATE_Time_FROM, fieldname + DATE_Time_TO};
searchConditionItem = conditionFactory.createCondition(ConditionType.TIMERANGEPICKER, fieldlabel, domkey);
searchConditionItem.setValue(fieldvalue);
} else {
//if (detailtype.equals("161") || detailtype.equals("162") || detailtype.equals("256") || detailtype.equals("257")) {
// BrowserBean browserbean = new BrowserBean(detailtype + "");
// BrowserInitUtil browserInitUtil = new BrowserInitUtil();
// String fielddbtype = dmlurl;
// if (!dmlurl.startsWith("browser.")) {
// fielddbtype = "browser." + dmlurl;
// }
// if (detailtype.equals("161") || detailtype.equals("162")) {
// browserInitUtil.initCustomizeBrow(browserbean, fielddbtype, Util.getIntValue(detailtype), user.getUID());
// } else {
// browserbean.getDataParams().put("cube_treeid", dmlurl);
// browserbean.getDataParams().put("currenttime", System.currentTimeMillis());
// browserInitUtil.initBrowser(browserbean, user.getLanguage());
// }
// searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()), new String[]{fieldname}, browserbean);
//} else {
searchConditionItem = conditionFactory.createCondition(ConditionType.BROWSER, fieldlabel, fieldname, detailtype);
//}
// searchConditionItem.getBrowserConditionParam().setHideVirtualOrg(hrmFieldBean.getHideVirtualOrg());
List<Map<String, Object>> replaceDatas = new ArrayList<Map<String, Object>>();
String tmpFieldValue = Util.null2String(fieldvalue);
if (detailtype.equals("mkqshift")) {
ShiftManagementToolKit shiftManagementToolKit = new ShiftManagementToolKit();
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
String fieldshowname = Util.null2String(shiftManagementToolKit.getShiftOnOffWorkSections(fieldvalues[i], user.getLanguage()));
if (fieldshowname.length() == 0) continue;
Map<String, Object> replaceData = new HashMap<String, Object>();
replaceData.put("id", fieldvalues[i]);
replaceData.put("name", fieldshowname);
replaceDatas.add(replaceData);
}
} else if (detailtype.equals("sensitivewordstype")) {
SensitiveWordTypeComInfo sensitiveWordTypeComInfo = new SensitiveWordTypeComInfo();
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
String fieldshowname = Util.null2String(sensitiveWordTypeComInfo.getName(fieldvalues[i]));
if (fieldshowname.length() == 0) continue;
Map<String, Object> replaceData = new HashMap<String, Object>();
replaceData.put("id", fieldvalues[i]);
replaceData.put("name", fieldshowname);
replaceDatas.add(replaceData);
}
} else if (detailtype.equals("doccategory")) {
List<BrowserValueInfo> fieldvalues = new BrowserValueInfoService().getBrowserValueInfo(detailtype, Util.null2String(fieldvalue));
for (int i = 0; fieldvalues != null && i < fieldvalues.size(); i++) {
BrowserValueInfo valueInfo = fieldvalues.get(i);
String fieldshowname = valueInfo.getName();
if (fieldshowname.length() == 0) continue;
Map<String, Object> replaceData = new HashMap<String, Object>();
replaceData.put("id", valueInfo.getId());
replaceData.put("name", fieldshowname);
replaceDatas.add(replaceData);
}
} else {
if (tmpFieldValue.length() > 0) {
String fieldshowname = hrmFieldManager.getFieldvalue(user, dmlurl, Util.getIntValue(fieldid), Util.getIntValue(fieldhtmltype), Util.getIntValue(detailtype), tmpFieldValue, 0);
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
String[] fieldshownames = Util.splitString(fieldshowname, ",");
if (detailtype.equals("257")) {
if (fieldshowname.endsWith("&nbsp")) {
fieldshowname = fieldshowname.substring(0, fieldshowname.length() - 5);
}
fieldshownames = Util.splitString(fieldshowname, "&nbsp");
}
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
if (fieldvalues.length != fieldshownames.length) {
break;
}
if (Util.null2String(fieldshownames[i]).length() == 0) continue;
Map<String, Object> replaceData = new HashMap<String, Object>();
replaceData.put("id", fieldvalues[i]);
replaceData.put("name", fieldshownames[i]);
replaceDatas.add(replaceData);
}
}
}
fieldvalue = replaceDatas;
}
} else if (fieldhtmltype.equals("4")) {//Check框
searchConditionItem = conditionFactory.createCondition(ConditionType.CHECKBOX, fieldlabel, fieldname);
if (detailtype.equals("2")) {
searchConditionItem.setConditionType(ConditionType.SWITCH);
}
} else if (fieldhtmltype.equals("5")) { //选择框
// List<SearchConditionOption> statusOptions = hrmFieldBean.getSelectOption();
// if (statusOptions == null) statusOptions = new ArrayList<SearchConditionOption>();
// try {
// if (fieldid.length() > 0) {
// rs = new RecordSet();
// char flag = Util.getSeparator();
// if (hrmFieldBean.getIsFormField()) {
// if (Util.null2String(hrmFieldBean.getIssystem()).equals("1")) {
// rs.executeProc("hrm_selectitembyid_new", "" + fieldid + flag + 1);
// } else {
// rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1);
// }
// } else {
// if (fieldname.startsWith("column_")) {
// rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1);
// } else {
// rs.executeProc("hrm_searchselectitembyid", fieldid);
// }
// }
// while (rs.next()) {
// String tmpselectvalue = Util.null2String(rs.getString("selectvalue"));
// String tmpselectname = Util.toScreen(rs.getString("selectname"), user.getLanguage());
// if (Util.null2String(rs.getString("cancel")).equals("1")) continue;
// boolean isDefault = Util.null2String(rs.getString("isdefault")).equals("y");
// if (!isDefault) {
// isDefault = Util.null2String(rs.getString("hrm_isdefault")).equals("1");
// }
// SearchConditionOption searchConditionOption = new SearchConditionOption(tmpselectvalue, tmpselectname, isDefault);
// if (!statusOptions.contains(searchConditionOption)) {
// statusOptions.add(searchConditionOption);
// }
// }
// }
// } catch (Exception e) {
// writeLog(e);
// }
// searchConditionItem = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname, statusOptions);
// if (detailtype.equals("") || detailtype.equals("0")) {
// detailtype = "1";
// }
// searchConditionItem.setKey(Util.null2String(fieldvalue));
// searchConditionItem.setValue(fieldvalue);
// searchConditionItem.setDetailtype(Util.getIntValue(detailtype, 3));
} else if (fieldhtmltype.equals("6")) {//附件
if (fieldname.equals("resourceimageid")) {
searchConditionItem = conditionFactory.createCondition(ConditionType.RESOURCEIMG, fieldlabel, fieldname, isQuickSearch);
} else {
searchConditionItem = conditionFactory.createCondition(ConditionType.UPLOAD, fieldlabel, fieldname, isQuickSearch);
searchConditionItem.setUploadUrl("/api/doc/upload/uploadFile");
searchConditionItem.setCategory("category");
searchConditionItem.setMaxFilesNumber(10);
searchConditionItem.setMultiSelection(true);
Map<String, Object> otherParamsMap = new HashMap<>();
otherParamsMap.put("showClearAll", false);
otherParamsMap.put("showOrder", true);
searchConditionItem.setOtherParams(otherParamsMap);
if (Util.null2String(fieldvalue).length() > 0) {
List<Object> datas = new ArrayList<Object>();
Map<String, Object> data = null;
String[] tmpIds = Util.splitString(Util.null2String(fieldvalue), ",");
for (int i = 0; i < tmpIds.length; i++) {
String fileid = tmpIds[i];
ImageFileManager manager = new ImageFileManager();
manager.getImageFileInfoById(Util.getIntValue(fileid));
String filename = manager.getImageFileName();
String extname = filename.contains(".") ? filename.substring(filename.lastIndexOf(".") + 1) : "";
data = new HashMap<String, Object>();
data.put("acclink", "/weaver/weaver.file.FileDownload?fileid=" + fileid);
data.put("fileExtendName", extname);
data.put("fileid", fileid);
//if (Util.null2String(this.isMobile).equals("1")) {
// data.put("filelink", "/spa/document/static4mobile/index.html#/attach/" + fileid);
//} else {
data.put("filelink", "/spa/document/index2file.jsp?imagefileId=" + fileid + "#/main/document/fileView");
//}
data.put("filename", filename);
data.put("filesize", manager.getImgsize());
data.put("imgSrc", "");
data.put("isImg", "");
data.put("loadlink", "/weaver/weaver.file.FileDownload?fileid=" + fileid + "&download=1");
data.put("showDelete", "true");
data.put("showLoad", "true");
datas.add(data);
}
searchConditionItem.setDatas(datas);
}
}
} else if (fieldhtmltype.equals("7")) {//颜色选择
searchConditionItem = conditionFactory.createCondition(ConditionType.COLORPICKER, fieldlabel, fieldname, true);
searchConditionItem.setValue(fieldvalue);
} else if (fieldhtmltype.equals("8")) {//DESCRIPTION
searchConditionItem = conditionFactory.createCondition(ConditionType.DESCRIPTION, fieldlabel, fieldname);
searchConditionItem.setValue(fieldvalue);
}
if (searchConditionItem != null) {
BrowserInitUtil.setConditionItemDefaultValue(searchConditionItem, fieldvalue, 2);
searchConditionItem.setLabelcol(6);
searchConditionItem.setFieldcol(12);
searchConditionItem.setViewAttr(viewAttr);
if (searchConditionItem.getBrowserConditionParam() != null) {
searchConditionItem.getBrowserConditionParam().setViewAttr(viewAttr);
}
if (searchConditionItem.getConditionType().equals(ConditionType.DATE)) {
searchConditionItem.setFieldcol(18);
}
if (Util.null2String(extendInfoPO.getFieldNameDesc()).length() > 0) {
searchConditionItem.setLabel(extendInfoPO.getFieldNameDesc());
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return searchConditionItem;
}
}

@ -0,0 +1,41 @@
package com.engine.organization.entity.extend.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/18
* @version: 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExtendGroupPO {
/**
*
*/
private Long id;
/**
*
*/
private Integer extendType;
/**
*
*/
private String groupName;
private Long creator;
private int deleteType;
private Date createTime;
private Date updateTime;
}

@ -0,0 +1,111 @@
package com.engine.organization.entity.extend.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/19
* @version: 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExtendInfoPO {
/**
*
*/
private Long id;
/**
*
*/
private Integer extendType;
/**
*
*/
private String tableName;
/**
*
*/
private String fieldName;
/**
*
*/
private String fieldNameDesc;
/**
*
*/
private String fieldType;
/**
*
*/
private Integer controlType;
/**
*
*/
private String browserType;
/**
*
*/
private Long extendGroupId;
/**
*
*/
private Integer isenable;
/**
*
*/
private Integer isrequired;
/**
*
*/
private Integer listShow;
/**
*
*/
private Integer searchShow;
/**
*
*/
private Integer editShow;
/**
*
*/
private Integer addShow;
/**
*
*/
private Integer browserShow;
/**
*
*/
private Integer showOrder;
private Long creator;
private int deleteType;
private Date createTime;
private Date updateTime;
}

@ -0,0 +1,62 @@
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/24
* @version: 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StaffPlanPO {
/**
*
*/
private Long id;
/**
*
*/
private String planNo;
/**
*
*/
private String planName;
/**
*
*/
private Integer planYear;
/**
*
*/
private Date time_start;
/**
*
*/
private Date time_end;
/**
*
*/
private String companyId;
/**
*
*/
private String description;
/**
*
*/
private Integer forbiddenTag;
private Long creator;
private int deleteType;
private Date createTime;
private Date updateTime;
}

@ -1,9 +1,9 @@
package com.engine.organization.mapper.comp;
import com.engine.organization.common.BaseQueryParam;
import com.engine.organization.entity.comp.po.CompPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
/**
@ -15,8 +15,80 @@ import java.util.List;
public interface CompMapper {
/**
*
* @param queryParam
*
* @return
*/
List<CompPO> list(@Param("param") BaseQueryParam queryParam);
List<CompPO> list();
/**
*
*
* @return
*/
List<CompPO> listByFilter(CompPO compPO);
/**
*
*
* @return
*/
List<CompPO> listParent();
/**
*
*
* @param ids
* @return
*/
List<CompPO> listChild(@Param("ids") Collection ids);
/**
* ID
*
* @param id
* @return
*/
CompPO listById(@Param("id") long id);
/**
* No
*
* @param compNo
* @return
*/
List<CompPO> listByNo(@Param("compNo") String compNo);
/**
* /
*
* @param compPO
* @return
*/
int insertIgnoreNull(CompPO compPO);
/**
*
*
* @param compPO
* @return
*/
int updateBaseComp(CompPO compPO);
/**
*
*
* @param compPO
* @return
*/
int updateForbiddenTagById(CompPO compPO);
/**
*
*
* @param ids
*/
int deleteByIds(@Param("ids") Collection<Long> ids);
}

@ -38,6 +38,101 @@
, t.update_time
</sql>
<sql id="nullSql">
and ifnull(parent_company,'0')='0'
</sql>
<sql id="nullSql" databaseId="sqlserver">
and isnull(parent_company,'0')='0'
</sql>
<sql id="nullSql" databaseId="oracle">
and NVL(parent_company,'0')='0'
</sql>
<insert id="insertIgnoreNull" parameterType="com.engine.organization.entity.comp.po.CompPO" keyProperty="id"
keyColumn="id" useGeneratedKeys="true">
INSERT INTO jcl_org_comp
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="compNo != null ">
comp_no,
</if>
<if test="compName != null ">
comp_name,
</if>
<if test="compNameShort != null ">
comp_name_short,
</if>
<if test="parentCompany != null ">
parent_company,
</if>
<if test="orgCode != null ">
org_code,
</if>
<if test="industry != null ">
industry,
</if>
<if test="compPrincipal != null ">
comp_principal,
</if>
<if test="description != null ">
description,
</if>
forbidden_tag,
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="compNo != null ">
#{compNo},
</if>
<if test="compName != null ">
#{compName},
</if>
<if test="compNameShort != null ">
#{compNameShort},
</if>
<if test="parentCompany != null ">
#{parentCompany},
</if>
<if test="orgCode != null ">
#{orgCode},
</if>
<if test="industry != null ">
#{industry},
</if>
<if test="compPrincipal != null ">
#{compPrincipal},
</if>
<if test="description != null ">
#{description},
</if>
0,
</trim>
</insert>
<select id="list" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
@ -46,5 +141,139 @@
WHERE t.delete_type = 0
</select>
<select id="listParent" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_org_comp t
WHERE t.delete_type = 0
<include refid="nullSql"/>
</select>
<select id="listChild" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_org_comp t
WHERE t.delete_type = 0
AND parent_company IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<select id="listById" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_org_comp t
WHERE t.delete_type = 0
and id = #{id}
</select>
<select id="listByNo" parameterType="com.engine.organization.entity.comp.po.CompPO" resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from jcl_org_comp t where comp_no = #{compNo} AND delete_type = 0
</select>
<select id="listByFilter" parameterType="com.engine.organization.entity.comp.po.CompPO" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_org_comp t
WHERE t.delete_type = 0
<include refid="likeSQL"/>
<if test=" parentCompany != null ">
and t.parent_company = #{parentCompany}
</if>
<if test=" industry != null ">
and t.industry = #{industry}
</if>
<if test=" compPrincipal != null ">
and t.comp_principal = #{compPrincipal}
</if>
<if test=" forbiddenTag != null ">
and t.forbidden_tag = #{forbiddenTag}
</if>
</select>
<update id="updateForbiddenTagById" parameterType="com.engine.organization.entity.sequence.po.SequencePO">
update jcl_org_comp
<set>
forbidden_tag=#{forbiddenTag},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<update id="deleteByIds">
UPDATE jcl_org_comp
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
<update id="updateBaseComp" parameterType="com.engine.organization.entity.comp.po.CompPO">
update jcl_org_comp
<set>
creator=#{creator},
update_time=#{updateTime},
comp_name=#{compName},
comp_name_short=#{compNameShort},
parent_company=#{parentCompany},
org_code=#{orgCode},
industry=#{industry},
comp_principal=#{compPrincipal},
description=#{description},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<sql id="likeSQL">
<if test=" compNo != null and compNo != '' ">
and t.comp_no like CONCAT('%',#{compNo},'%')
</if>
<if test=" compName != null and compName != '' ">
and t.comp_name like CONCAT('%',#{compName},'%')
</if>
<if test=" compNameShort != null and compNameShort != '' ">
and t.comp_name_short like CONCAT('%',#{compNameShort},'%')
</if>
<if test=" orgCode != null and orgCode != '' ">
and t.org_code like CONCAT('%',#{orgCode},'%')
</if>
</sql>
<sql id="likeSQL" databaseId="oracle">
<if test=" compNo != null and compNo != '' ">
and t.comp_no like '%'||#{compNo}||'%'
</if>
<if test=" compName != null and compName != '' ">
and t.comp_name like '%'||#{compName}||'%'
</if>
<if test=" compNameShort != null and compNameShort != '' ">
and t.comp_name_short like '%'||#{compNameShort}||'%'
</if>
<if test=" orgCode != null and orgCode != '' ">
and t.org_code like '%'||#{orgCode}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="sqlserver">
<if test=" compNo != null and compNo != '' ">
and t.comp_no like '%'+#{compNo}+'%'
</if>
<if test=" compName != null and compName != '' ">
and t.comp_name like '%'+#{compName}+'%'
</if>
<if test=" compNameShort != null and compNameShort != '' ">
and t.comp_name_short like '%'+#{compNameShort}+'%'
</if>
<if test=" orgCode != null and orgCode != '' ">
and t.org_code like '%'+#{orgCode}+'%'
</if>
</sql>
</mapper>

@ -0,0 +1,41 @@
package com.engine.organization.mapper.department;
import com.engine.organization.entity.department.po.DepartmentPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public interface DepartmentMapper {
List<DepartmentPO> getDeptListByCompId();
List<DepartmentPO> getDeptListByPId(@Param("PId") Long PId);
List<DepartmentPO> getDeptList(DepartmentPO departmentPO);
/**
*
*
* @return
*/
List<DepartmentPO> listParent();
/**
*
*
* @param ids
* @return
*/
List<DepartmentPO> listChild(@Param("ids") Collection ids);
DepartmentPO getDeptById(@Param("id") int id);
String getDeptNameById(@Param("id") int id);
}

@ -0,0 +1,171 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.department.DepartmentMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.department.po.DepartmentPO">
<result column="id" property="id"/>
<result column="dept_no" property="deptNo"/>
<result column="dept_name" property="deptName"/>
<result column="dept_name_short" property="deptNameShort"/>
<result column="parent_comp" property="parentComp"/>
<result column="parent_dept" property="parentDept"/>
<result column="dept_principal" property="deptPrincipal"/>
<result column="show_order" property="showOrder"/>
<result column="description" property="description"/>
<result column="forbidden_tag" property="forbiddenTag"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<select id="getDeptListByCompId" resultType="com.engine.organization.entity.department.po.DepartmentPO">
select t.id, t.dept_name, t.parent_dept, t.dept_principal,t.parent_dept,t.parent_comp
from jcl_org_dept t
where delete_type = 0
</select>
<select id="getDeptListByPId" resultType="com.engine.organization.entity.department.po.DepartmentPO">
select t.id, t.dept_name, t.parent_dept, t.dept_principal
from jcl_org_dept t
where delete_type = 0
and parent_dept = #{PId}
</select>
<select id="getDeptNameById" resultType="string">
select t.dept_name
from jcl_org_dept t
where id = #{id}
</select>
<select id="getDeptList" parameterType="com.engine.organization.entity.department.po.DepartmentPO"
resultMap="BaseResultMap">
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
where delete_type = 0
<include refid="likeSQL"/>
<if test=" parentComp != null ">
and t.parent_comp = #{parentComp}
</if>
<if test=" parentDept != null ">
and t.parent_dept = #{parentDept}
</if>
<if test=" deptPrincipal != null ">
and t.dept_principal = #{deptPrincipal}
</if>
<if test=" showOrder != null ">
and t.show_order = #{showOrder}
</if>
<if test=" forbiddenTag != null ">
and t.forbidden_tag = #{forbiddenTag}
</if>
</select>
<select id="getDeptById" resultType="com.engine.organization.entity.department.po.DepartmentPO">
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
where delete_type = 0
and id = #{id}
</select>
<select id="listParent" resultMap="BaseResultMap">
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
WHERE t.delete_type = 0
<include refid="nullSql"/>
</select>
<select id="listChild" resultMap="BaseResultMap">
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
WHERE t.delete_type = 0
AND parent_dept IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<sql id="likeSQL">
<if test=" deptNo != null and deptNo != '' ">
and t.dept_no like CONCAT('%',#{deptNo},'%')
</if>
<if test=" deptName != null and deptName != '' ">
and t.dept_name like CONCAT('%',#{deptName},'%')
</if>
<if test=" deptNameShort != null and deptNameShort != '' ">
and t.dept_name_short like CONCAT('%',#{deptNameShort},'%')
</if>
</sql>
<sql id="likeSQL" databaseId="oracle">
<if test=" deptNo != null and deptNo != '' ">
and t.dept_no like '%'||#{deptNo}||'%'
</if>
<if test=" deptName != null and deptName != '' ">
and t.dept_name like '%'||#{deptName}||'%'
</if>
<if test=" deptNameShort != null and deptNameShort != '' ">
and t.dept_name_short like '%'||#{deptNameShort}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="sqlserver">
<if test=" deptNo != null and deptNo != '' ">
and t.dept_no like '%'+#{deptNo}+'%'
</if>
<if test=" deptName != null and deptName != '' ">
and t.dept_name like '%'+#{deptName}+'%'
</if>
<if test=" deptNameShort != null and deptNameShort != '' ">
and t.dept_name_short like '%'+#{deptNameShort}+'%'
</if>
</sql>
<sql id="nullSql">
and ifnull(parent_dept,'0')='0'
</sql>
<sql id="nullSql" databaseId="sqlserver">
and isnull(parent_dept,'0')='0'
</sql>
<sql id="nullSql" databaseId="oracle">
and NVL(parent_dept,'0')='0'
</sql>
</mapper>

@ -0,0 +1,17 @@
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
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public interface EmployeeMapper {
String getEmployeeNameById(@Param("employeeId") Long id);
}

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.employee.EmployeeMapper">
<select id="getEmployeeNameById" resultType="string">
select t.lastname
from hrmresource t
where id = #{employeeId}
</select>
</mapper>

@ -0,0 +1,41 @@
package com.engine.organization.mapper.extend;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/20
* @version: 1.0
*/
public interface ExtDTMapper {
/**
* id,
*
* @param tableName
* @param id
* @return
*/
List<Map<String, Object>> listCompExtDT(@Param("tableName") String tableName, @Param("id") long id, @Param("fields") String fields);
/**
*
*
* @param map
* @return
*/
int insertCompExtDT(@Param("tableName") String tableName, @Param("map") Map<String, Object> map);
/**
* mainId
*
* @param tableName
* @param mainId
* @return
*/
int deleteByMainID(@Param("tableName") String tableName, @Param("mainId") long mainId);
}

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.extend.ExtDTMapper">
<insert id="insertCompExtDT" parameterType="java.util.Map">
insert into ${tableName} (
<foreach collection="map" item="value" index="key" separator=",">
${key}
</foreach>
)
values (
<foreach collection="map" item="value" index="key" separator=",">
#{value}
</foreach>
)
</insert>
<delete id="deleteByMainID">
delete
from ${tableName}
where mainid = #{mainId}
</delete>
<select id="listCompExtDT" resultType="map">
select ${fields}
from ${tableName}
where mainid = #{id}
and delete_type = 0
</select>
</mapper>

@ -0,0 +1,48 @@
package com.engine.organization.mapper.extend;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/20
* @version: 1.0
*/
public interface ExtMapper {
/**
* id,
*
* @param tableName
* @param id
* @return
*/
Map<String, Object> listCompExt(@Param("tableName") String tableName, @Param("fields") String fields, @Param("id") long id);
/**
*
*
* @param tableName
* @param id
* @return
*/
int countCompExtById(@Param("tableName") String tableName, @Param("id") long id);
/**
*
*
* @param map
* @return
*/
int insertCompExt(@Param("tableName") String tableName, @Param("map") Map<String, Object> map);
/**
*
*
* @param map
* @return
*/
int updateCompExt(@Param("tableName") String tableName, @Param("id") long id, @Param("map") Map<String, Object> map);
}

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.extend.ExtMapper">
<insert id="insertCompExt" parameterType="java.util.Map">
insert into ${tableName} (
<foreach collection="map" item="value" index="key" separator=",">
${key}
</foreach>
)
values (
<foreach collection="map" item="value" index="key" separator=",">
#{value}
</foreach>
)
</insert>
<update id="updateCompExt" parameterType="java.util.Map">
update ${tableName} set
<foreach collection="map" item="value" index="key" separator=",">
${key} = #{value}
</foreach>
where id = #{id}
</update>
<select id="listCompExt" resultType="map">
select ${fields}
from ${tableName}
where delete_type = 0
and id = #{id}
</select>
<select id="countCompExtById" resultType="java.lang.Integer">
select count(1)
from ${tableName}
where delete_type = 0
and id = #{id}
</select>
</mapper>

@ -0,0 +1,30 @@
package com.engine.organization.mapper.extend;
import com.engine.organization.entity.extend.po.ExtendGroupPO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/18
* @version: 1.0
*/
public interface ExtendGroupMapper {
/**
*
*
* @param groupType
* @return
*/
List<ExtendGroupPO> listByType(@Param("groupType") String groupType);
/**
* ID
*
* @param id
* @return
*/
String getGroupNameById(@Param("id") String id);
}

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.extend.ExtendGroupMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.extend.po.ExtendGroupPO">
<result column="id" property="id"/>
<result column="extend_type" property="extendType"/>
<result column="group_name" property="groupName"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.extend_type
, t.group_name
, t.creator
, t.delete_type
, t.create_time
, t.update_time
</sql>
<select id="listByType" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_field_extendgroup t
WHERE t.delete_type = 0
<if test=" extendType != null and extendType != '' ">
and extend_type = #{extendType}
</if>
</select>
<select id="getGroupNameById" resultType="java.lang.String">
select group_name
from jcl_field_extendgroup
where id = #{id} and delete_type = 0
</select>
</mapper>

@ -0,0 +1,24 @@
package com.engine.organization.mapper.extend;
import com.engine.organization.entity.extend.po.ExtendInfoPO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/19
* @version: 1.0
*/
public interface ExtendInfoMapper {
/**
*
*
* @param extendType
* @param extendGroupId
* @param tableName
* @return
*/
List<ExtendInfoPO> listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName);
}

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.extend.ExtendInfoMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.extend.po.ExtendInfoPO">
<result column="id" property="id"/>
<result column="extend_type" property="extendType"/>
<result column="table_name" property="tableName"/>
<result column="field_name" property="fieldName"/>
<result column="field_name_desc" property="fieldNameDesc"/>
<result column="field_type" property="fieldType"/>
<result column="control_type" property="controlType"/>
<result column="browser_type" property="browserType"/>
<result column="extend_group_id" property="extendGroupId"/>
<result column="isenable" property="isenable"/>
<result column="isrequired" property="isrequired"/>
<result column="list_show" property="listShow"/>
<result column="search_show" property="searchShow"/>
<result column="edit_show" property="editShow"/>
<result column="add_show" property="addShow"/>
<result column="browser_show" property="browserShow"/>
<result column="show_order" property="showOrder"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.extend_type
, t.table_name
, t.field_name
, t.field_name_desc
, t.field_type
, t.control_type
, t.browser_type
, t.extend_group_id
, t.isenable
, t.isrequired
, t.list_show
, t.search_show
, t.edit_show
, t.add_show
, t.browser_show
, t.show_order
, t.creator
, t.delete_type
, t.create_time
, t.update_time
</sql>
<select id="listFields" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_field_extendinfo t
WHERE t.delete_type = 0
<if test=" extendType != null and extendType != '' ">
and extend_type = #{extendType}
</if>
<if test=" extendGroupId != null and extendGroupId != '' ">
and extend_group_id = #{extendGroupId}
</if>
<if test=" tableName != null and tableName != '' ">
and table_name = #{tableName}
</if>
</select>
</mapper>

@ -154,7 +154,7 @@
</trim>
</insert>
<update id="updateForbiddenTagById" parameterType="com.engine.organization.entity.sequence.po.SequencePO">
<update id="updateForbiddenTagById" parameterType="com.engine.organization.entity.post.po.PostInfoPO">
update jcl_org_post_info
<set>
forbidden_tag=#{forbiddenTag},

@ -42,7 +42,7 @@
from jcl_org_level t where level_no = #{levelNo} AND delete_type = 0
</select>
<select id="getCountByTag" resultType="java.lang.Integer">
select count(1) from jcl_org_level where 1=1 AND delete_type = 0
select count(1) from jcl_org_level where delete_type = 0
<if test=" tag != -1 " >
and forbidden_tag = #{tag}
</if>

@ -1,7 +1,8 @@
package com.engine.organization.service;
import com.engine.organization.common.BaseQueryParam;
import com.engine.organization.entity.comp.param.CompSearchParam;
import java.util.Collection;
import java.util.Map;
/**
@ -14,8 +15,72 @@ public interface CompService {
/**
*
* @param baseQueryParam
*
* @param params
* @return
*/
Map<String,Object> listPage(BaseQueryParam baseQueryParam);
Map<String, Object> listPage(CompSearchParam params);
/**
* /
*
* @param params
* @return
*/
int saveBaseComp(CompSearchParam params);
/**
*
*
* @param params
*/
int updateForbiddenTagById(CompSearchParam params);
/**
*
*
* @param params
* @return
*/
int updateComp(Map<String, Object> params);
/**
* ID
*
* @param ids
*/
int deleteByIds(Collection<Long> ids);
/**
*
*
* @param params
* @return
*/
Map<String, Object> getSearchCondition(Map<String, Object> params);
/**
*
*
* @return
*/
Map<String, Object> getHasRight();
/**
*
*
* @param params
* @return
*/
Map<String, Object> getCompBaseForm(Map<String, Object> params);
/**
*
*
* @return
*/
Map<String, Object> getCompSaveForm();
}

@ -0,0 +1,52 @@
package com.engine.organization.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.util.page.PageInfo;
import java.util.Map;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public interface DepartmentService {
/**
* idtree
*
*
* @param param
* @return
*/
PageInfo<SingleDeptTreeVO> getDeptListByPid(QuerySingleDeptListParam param);
/**
*
*
* @param param
* @return
*/
Map<String, Object> listPage(DeptSearchParam param);
/**
*
*
* @param params
* @return
*/
int saveBaseComp(DeptSearchParam params);
/**
*
*
* @return
*/
Map<String, Object> getSaveForm();
}

@ -0,0 +1,77 @@
package com.engine.organization.service;
import com.api.browser.bean.SearchConditionItem;
import com.engine.organization.entity.TopTab;
import weaver.hrm.User;
import java.util.List;
import java.util.Map;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/24
* @version: 1.0
*/
public interface ExtService {
/**
*
*
* @param user
* @param extendType
* @param tableName
* @param viewAttr
* @param id
* @param groupId
* @return
*/
List<SearchConditionItem> getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId);
/**
*
*
* @param user
* @param extendType
* @param tableName
* @param id
* @param viewAttr
* @param showLabel
* @return
*/
List<Map<String, Object>> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel);
/**
*
*
* @param extendType
* @param tableName
* @return
*/
List<TopTab> getTabInfo(String extendType, String tableName);
/**
*
*
* @param user
* @param extendType
* @param tableName
* @param params
* @param groupId
* @param id
* @return
*/
int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id);
/**
*
*
* @param user
* @param extendType
* @param tableName
* @param params
* @param id
*/
void updateExtDT(User user, String extendType, String tableName, Map<String, Object> params, Long id);
}

@ -17,14 +17,24 @@ public interface GroupService {
*/
Map<String, Object> getGroupFormField(Map<String, Object> params);
/**
*
*
* @param params
* @return
*/
boolean updateGroup(Map<String, Object> params);
/**
*
*
* @return
*/
Map<String, Object> getHasRight();
/**
* tabs
*
* @return
*/
Map<String, Object> getTabInfo();

@ -1,25 +1,38 @@
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.common.BaseQueryParam;
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.mapper.comp.CompMapper;
import com.engine.organization.mapper.extend.ExtendGroupMapper;
import com.engine.organization.service.CompService;
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 weaver.crm.Maint.SectorInfoComInfo;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -29,23 +42,61 @@ import java.util.stream.Collectors;
* @version: 1.0
*/
public class CompServiceImpl extends Service implements CompService {
/**
*
* 1
* 2
* 3
*/
private static final String EXTEND_TYPE = "1";
/**
*
*/
private static final String JCL_ORG_COMPEXT = "JCL_ORG_COMPEXT";
/**
*
*/
private static final String JCL_ORG_COMPEXT_DT1 = "JCL_ORG_COMPEXT_DT1";
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 Map<String, Object> listPage(BaseQueryParam queryParam) {
Map<String,Object> datas = new HashMap<>();
PageUtil.start(queryParam.getCurrent(), queryParam.getPageSize());
List<CompPO> list = getCompMapper().list(queryParam);
PageInfo<CompPO> pageInfo = new PageInfo<>(list, CompPO.class);
Collection<CompPO> compPOS = pageInfo.getList();
List<CompListDTO> compListDTOS = CompBO.buildCompDTOList(compPOS);
PageInfo<CompListDTO> pageInfos = new PageInfo<>(compListDTOS, CompListDTO.class);
pageInfos.setTotal(pageInfo.getTotal());
pageInfos.setPageNum(queryParam.getCurrent());
pageInfos.setPageSize(queryParam.getPageSize());
public Map<String, Object> listPage(CompSearchParam params) {
Map<String, Object> datas = new HashMap<>();
CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID());
boolean filter = isFilter(compPO);
PageInfo<CompListDTO> pageInfos;
List<CompPO> alltList = getCompMapper().list();
// 通过子级遍历父级元素
if (filter) {
// 根据条件获取元素
List<CompPO> filterCompPOs = getCompMapper().listByFilter(compPO);
// 添加父级元素
List<CompListDTO> compListDTOS = CompBO.buildCompDTOList(alltList, filterCompPOs);
List<CompListDTO> subList = PageUtil.subList(params.getCurrent(), params.getPageSize(), compListDTOS);
pageInfos = new PageInfo<>(subList, CompListDTO.class);
pageInfos.setTotal(compListDTOS.size());
} else {
// 组合list
List<CompListDTO> compListDTOS = CompBO.buildCompDTOList(alltList);
List<CompListDTO> subList = PageUtil.subList(params.getCurrent(), params.getPageSize(), compListDTOS);
pageInfos = new PageInfo<>(subList, CompListDTO.class);
pageInfos.setTotal(compListDTOS.size());
}
pageInfos.setPageNum(params.getCurrent());
pageInfos.setPageSize(params.getPageSize());
OrganizationWeaTable<CompListDTO> table = new OrganizationWeaTable<>(user, CompListDTO.class);
List<Column> columns = pageInfos.getColumns();
@ -57,9 +108,307 @@ public class CompServiceImpl extends Service implements CompService {
result.putAll(table.makeDataResult());
result.success();
datas.put("pageInfo", pageInfos);
datas.put("dataKey",result.getResultMap());
datas.put("dataKey", result.getResultMap());
return datas;
}
@Override
public int saveBaseComp(CompSearchParam params) {
List<CompPO> list = getCompMapper().listByNo(Util.null2String(params.getCompNo()));
OrganizationAssert.isEmpty(list, "编号不允许重复");
CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID());
return getCompMapper().insertIgnoreNull(compPO);
}
@Override
public int updateForbiddenTagById(CompSearchParam params) {
CompPO compPO = CompPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build();
return getCompMapper().updateForbiddenTagById(compPO);
}
@Override
public int updateComp(Map<String, Object> 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());
}
//更新明细表
getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId());
return updateBaseComp;
}
@Override
public int deleteByIds(Collection<Long> ids) {
OrganizationAssert.notEmpty(ids, "请选择要删除的数据");
return getCompMapper().deleteByIds(ids);
}
@Override
public Map<String, Object> getSearchCondition(Map<String, Object> params) {
Map<String, Object> apiDatas = new HashMap<>();
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> conditionItems = new ArrayList<>();
// 编号
SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "compNo");
// 名称
SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "compName");
// 简称
SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "compNameShort");
// TODO
// 上级公司
SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser");
// 组织机构代码
SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode");
// 行业
SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", "");
// 负责人
SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "负责人", "1", "compPrincipal", "");
// 禁用标记
List<SearchConditionOption> 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(compNoItem);
conditionItems.add(compNameItem);
conditionItems.add(compNameShortItem);
conditionItems.add(compBrowserItem);
conditionItems.add(orgCodeItem);
conditionItems.add(industryItem);
conditionItems.add(compPrincipalItem);
conditionItems.add(forbiddenTagItem);
addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems));
apiDatas.put("conditions", addGroups);
return apiDatas;
}
@Override
public Map<String, Object> getHasRight() {
Map<String, Object> btnDatas = new HashMap<>();
ArrayList<MenuBtn> topMenuList = new ArrayList<>();
ArrayList<MenuBtn> 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<String, Object> getCompBaseForm(Map<String, Object> 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<String, Object> buttonsMap = new HashMap<>();
buttonsMap.put("hasEdit", true);
buttonsMap.put("hasSave", true);
List<SearchConditionGroup> addGroups = new ArrayList<>();
if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) {
addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id)));
} else {
addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, viewAttr, id, groupId)));
}
HashMap<String, Object> 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_COMPEXT));
// 处理明细表
resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, id, viewAttr, false));
Map<String, Object> apiDatas = new HashMap<>();
apiDatas.put("result", resultMap);
return apiDatas;
}
@Override
public Map<String, Object> getCompSaveForm() {
Map<String, Object> apiDatas = new HashMap<>();
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> conditionItems = new ArrayList<>();
// 编号
SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "compNo");
compNoItem.setRules("required|string");
// 名称
SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "compName");
compNameItem.setRules("required|string");
// 简称
SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "compNameShort");
compNameShortItem.setRules("required|string");
// 上级公司
SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser");
// 组织机构代码
SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "组织机构代码", "orgCode");
orgCodeItem.setRules("required|string");
// 行业
SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", "");
// 负责人
SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "负责人", "1", "compPrincipal", "");
compPrincipalItem.setRules("required|string");
// 说明
SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description");
conditionItems.add(compNoItem);
conditionItems.add(compNameItem);
conditionItems.add(compNameShortItem);
conditionItems.add(compBrowserItem);
conditionItems.add(orgCodeItem);
conditionItems.add(industryItem);
conditionItems.add(compPrincipalItem);
conditionItems.add(descriptionItem);
addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems));
apiDatas.put("condition", addGroups);
return apiDatas;
}
/**
*
*
* @param compPO
* @return
*/
private boolean isFilter(CompPO compPO) {
return !(StringUtil.isEmpty(compPO.getCompName())
&& StringUtil.isEmpty(compPO.getCompNo())
&& StringUtil.isEmpty(compPO.getCompNameShort())
&& StringUtil.isEmpty(compPO.getOrgCode())
&& null == compPO.getParentCompany()
&& null == compPO.getIndustry()
&& null == compPO.getCompPrincipal()
&& null == compPO.getForbiddenTag());
}
/**
*
*
* @param id
* @param name
* @return
*/
private List<Map<String, Object>> creatReplaceDatas(Object id, Object name) {
List<Map<String, Object>> datas = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("name", name);
datas.add(map);
return datas;
}
/**
*
*
* @param viewAttr
* @param id
* @return
*/
private List<SearchConditionItem> getBaseForm(int viewAttr, long id) {
List<SearchConditionItem> conditionItems = new ArrayList<>();
// 编号
SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "compNo");
// 名称
SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "compName");
compNameItem.setRules("required|string");
// 简称
SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "compNameShort");
compNameShortItem.setRules("required|string");
// TODO 自定义按钮
// 上级公司
SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser");
// 组织机构代码
SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode");
orgCodeItem.setRules("required|string");
// 行业
SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", "");
// 负责人
SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "负责人", "1", "compPrincipal", "");
compPrincipalItem.setRules("required|string");
// 说明
SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description");
conditionItems.add(compNoItem);
conditionItems.add(compNameItem);
conditionItems.add(compNameShortItem);
conditionItems.add(compBrowserItem);
conditionItems.add(orgCodeItem);
conditionItems.add(industryItem);
conditionItems.add(compPrincipalItem);
conditionItems.add(descriptionItem);
// 编辑、查看状态赋值,设置只读状态
// 赋值
CompPO compPO = getCompMapper().listById(id);
OrganizationAssert.notNull(compPO, "数据不存在或数据已删除");
compNoItem.setValue(compPO.getCompNo());
compNameItem.setValue(compPO.getCompName());
compNameShortItem.setValue(compPO.getCompNameShort());
// compBrowserItem
if (null != compPO.getParentCompany()) {
BrowserBean compBrowserBean = compBrowserItem.getBrowserConditionParam();
compBrowserBean.setReplaceDatas(creatReplaceDatas(compPO.getParentCompany(), getCompMapper().listById(compPO.getParentCompany()).getCompName()));
compBrowserItem.setBrowserConditionParam(compBrowserBean);
}
orgCodeItem.setValue(compPO.getOrgCode());
// industryItem
BrowserBean industryBean = industryItem.getBrowserConditionParam();
industryBean.setReplaceDatas(creatReplaceDatas(compPO.getIndustry(), new SectorInfoComInfo().getSectorInfoname(compPO.getIndustry() + "")));
industryItem.setBrowserConditionParam(industryBean);
try {
// compPrincipalItem
BrowserBean PrincipalBean = compPrincipalItem.getBrowserConditionParam();
PrincipalBean.setReplaceDatas(creatReplaceDatas(compPO.getCompPrincipal(), new ResourceComInfo().getLastname(compPO.getCompPrincipal() + "")));
compPrincipalItem.setBrowserConditionParam(PrincipalBean);
} catch (Exception e) {
throw new RuntimeException(e);
}
descriptionItem.setValue(compPO.getDescription());
// 查看,全部置位只读
if (1 == viewAttr) {
for (SearchConditionItem item : conditionItems) {
item.setViewAttr(viewAttr);
}
}
return conditionItems;
}
}

@ -0,0 +1,188 @@
package com.engine.organization.service.impl;
import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.core.impl.Service;
import com.engine.organization.component.OrganizationWeaTable;
import com.engine.organization.entity.department.bo.DepartmentBO;
import com.engine.organization.entity.department.dto.DepartmentListDTO;
import com.engine.organization.entity.department.param.DeptSearchParam;
import com.engine.organization.entity.department.param.QuerySingleDeptListParam;
import com.engine.organization.entity.department.po.DepartmentPO;
import com.engine.organization.entity.department.vo.SingleDeptTreeVO;
import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.service.DepartmentService;
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 java.util.*;
import java.util.stream.Collectors;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public class DepartmentServiceImpl extends Service implements DepartmentService {
private DepartmentMapper getDepartmentMapper() {
return MapperProxyFactory.getProxy(DepartmentMapper.class);
}
@Override
public PageInfo<SingleDeptTreeVO> getDeptListByPid(QuerySingleDeptListParam param) {
//1.查询分部下所有部门
//PageUtil.start(param.getCurrent(), param.getPageSize());
List<DepartmentPO> departmentPOS = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptListByCompId();
PageInfo<DepartmentPO> pageInfo = new PageInfo<>(departmentPOS);
List<SingleDeptTreeVO> singleDeptTreeVOS = DepartmentBO.buildSingleDeptTreeVOS(departmentPOS,param.getParentComp());
PageInfo<SingleDeptTreeVO> pageInfos = new PageInfo<>(singleDeptTreeVOS, SingleDeptTreeVO.class);
pageInfos.setTotal(pageInfo.getTotal());
pageInfos.setPageNum(param.getCurrent());
pageInfos.setPageSize(param.getPageSize());
return pageInfos;
}
@Override
public Map<String, Object> listPage(DeptSearchParam param) {
Map<String, Object> datas = new HashMap<>();
PageUtil.start(param.getCurrent(), param.getPageSize());
List<DepartmentPO> parentList = getDepartmentMapper().listParent();
List<DepartmentPO> list = new ArrayList<>();
list.addAll(parentList);
if (CollectionUtils.isNotEmpty(parentList)) {
// 递归查询子数据
getChildPOs(parentList, list);
}
DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(param, (long) user.getUID());
// 搜索条件过滤数据
List<DepartmentPO> filterList = filterListByParams(list, departmentPO);
List<DepartmentListDTO> departmentListDTOS = DepartmentBO.buildDeptDTOList(list, filterList);
PageInfo<DepartmentListDTO> pageInfo = new PageInfo<>(departmentListDTOS);
PageInfo<DepartmentListDTO> pageInfos = new PageInfo<>(departmentListDTOS, DepartmentListDTO.class);
pageInfos.setTotal(pageInfo.getTotal());
pageInfos.setPageNum(param.getCurrent());
pageInfos.setPageSize(param.getPageSize());
OrganizationWeaTable<DepartmentListDTO> table = new OrganizationWeaTable<>(user, DepartmentListDTO.class);
List<Column> columns = pageInfos.getColumns();
List<WeaTableColumn> 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;
}
@Override
public Map<String, Object> getSaveForm() {
Map<String, Object> apiDatas = new HashMap<>();
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> conditionItems = new ArrayList<>();
// 编号
SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo");
deptNoItem.setRules("required|string");
// 名称
SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "deptName");
deptNameItem.setRules("required|string");
// 简称
SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort");
deptNameShortItem.setRules("required|string");
// TODO 自定义按钮
// 所属分部
SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser");
//上级部门
SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentDept", "deptBrowser");
// 部门负责人
SearchConditionItem deptPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", "");
// 显示顺序
SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "showOrder");
// 说明
SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description");
conditionItems.add(deptNoItem);
conditionItems.add(deptNameItem);
conditionItems.add(deptNameShortItem);
conditionItems.add(compBrowserItem);
conditionItems.add(deptBrowserItem);
conditionItems.add(deptPrincipalItem);
conditionItems.add(showOrderItem);
conditionItems.add(descriptionItem);
addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems));
apiDatas.put("condition", addGroups);
return apiDatas;
}
/**
* list
*
* @param departmentPOS
* @param departmentPO
* @return
*/
private List<DepartmentPO> filterListByParams(Collection<DepartmentPO> departmentPOS, DepartmentPO departmentPO) {
// 搜索后的数据
List<DepartmentPO> filterList = new ArrayList<>();
// 筛选数据
for (Iterator<DepartmentPO> 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);
}
}
return filterList;
}
/**
*
*
* @param parentList
* @param list
*/
private void getChildPOs(List<DepartmentPO> parentList, List<DepartmentPO> list) {
List<Long> ids = parentList.stream().map(DepartmentPO::getId).collect(Collectors.toList());
List<DepartmentPO> listChild = getDepartmentMapper().listChild(ids);
if (CollectionUtils.isNotEmpty(listChild)) {
list.addAll(listChild);
getChildPOs(listChild, list);
}
}
}

@ -0,0 +1,181 @@
package com.engine.organization.service.impl;
import com.api.browser.bean.SearchConditionItem;
import com.engine.core.impl.Service;
import com.engine.organization.entity.TopTab;
import com.engine.organization.entity.extend.bo.ExtendInfoBO;
import com.engine.organization.entity.extend.po.ExtendInfoPO;
import com.engine.organization.mapper.extend.ExtDTMapper;
import com.engine.organization.mapper.extend.ExtMapper;
import com.engine.organization.mapper.extend.ExtendGroupMapper;
import com.engine.organization.mapper.extend.ExtendInfoMapper;
import com.engine.organization.service.ExtService;
import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.collections4.CollectionUtils;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/24
* @version: 1.0
*/
public class ExtServiceImpl extends Service implements ExtService {
private static final Integer BROWSER_TYPE = 3;
private ExtendInfoMapper getExtendInfoMapper() {
return MapperProxyFactory.getProxy(ExtendInfoMapper.class);
}
private ExtendGroupMapper getExtendGroupMapper() {
return MapperProxyFactory.getProxy(ExtendGroupMapper.class);
}
private ExtDTMapper getExtDTMapper() {
return MapperProxyFactory.getProxy(ExtDTMapper.class);
}
private ExtMapper getExtMapper() {
return MapperProxyFactory.getProxy(ExtMapper.class);
}
@Override
public List<SearchConditionItem> getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId) {
List<SearchConditionItem> conditionItems = new ArrayList<>();
// 2编辑 1查看
OrganizationAssert.notNull(groupId, "请选择对应的拓展页");
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName);
String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
Map<String, Object> compExtMap = getExtMapper().listCompExt(tableName, fields, id);
// 组装拓展页内容
for (ExtendInfoPO extendInfoPO : infoPOList) {
SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, compExtMap.get(extendInfoPO.getFieldName()));
item.setFieldcol(16);
if (null != item && 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) {
item.setViewAttr(3);
item.setRules("required|string");
}
conditionItems.add(item);
}
return conditionItems;
}
@Override
public List<Map<String, Object>> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel) {
List<Map<String, Object>> tables = new ArrayList<>();
// 查询所有分布模块,拓展明细表信息
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName);
Map<Long, List<ExtendInfoPO>> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId));
// 遍历Map,组装数据
for (Map.Entry<Long, List<ExtendInfoPO>> entry : groupMap.entrySet()) {
Map<String, Object> tableMap = new HashMap<>();
tableMap.put("hide", false);
tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + ""));
Map<String, Object> tabinfoMap = new HashMap<>();
tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, entry.getValue(), viewAttr, showLabel));
tabinfoMap.put("rownum", "rownum" + entry.getKey());
// 浏览按钮添加filespan字段
String fields = entry.getValue().stream().map(item -> {
if (BROWSER_TYPE == item.getControlType()) {
return item.getFieldName() + "," + item.getFieldName() + "span";
}
return item.getFieldName();
}).collect(Collectors.joining(","));
// 去除null 元素
List<Map<String, Object>> maps = getExtDTMapper().listCompExtDT(tableName, id, fields);
maps.removeIf(Objects::isNull);
tabinfoMap.put("datas", maps);
tableMap.put("tabinfo", tabinfoMap);
tables.add(tableMap);
}
return tables;
}
/**
*
*
* @return
*/
public List<TopTab> getTabInfo(String extendType, String tableName) {
List<TopTab> topTabs = new ArrayList<>();
// 基本信息
topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build());
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName);
List<Long> extendGroups = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList());
// 拓展信息
if (CollectionUtils.isNotEmpty(extendGroups)) {
for (Long groupId : extendGroups) {
topTabs.add(TopTab.builder().color("#000000").groupId(groupId + "").showcount(false).title(getExtendGroupMapper().getGroupNameById(groupId + "")).viewCondition(groupId + "").build());
}
}
return topTabs;
}
@Override
public int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id) {
int updateBaseComp;
List<ExtendInfoPO> extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName);
List<String> extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
Map<String, Object> map = new HashMap<>();
for (String dtField : extFields) {
map.put(dtField, params.get(dtField));
}
// 判断更新还是插入
int count = getExtMapper().countCompExtById(tableName, id);
if (count > 0) {
map.put("update_time", new Date());
updateBaseComp = getExtMapper().updateCompExt(tableName, id, map);
} else {
map.put("creator", user.getUID());
map.put("delete_type", 0);
map.put("create_time", new Date());
map.put("update_time", new Date());
map.put("id", id);
updateBaseComp = getExtMapper().insertCompExt(tableName, map);
}
return updateBaseComp;
}
@Override
public void updateExtDT(User user, String extendType, String tableName, Map<String, Object> params, Long id) {
List<ExtendInfoPO> dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", "");
Map<Long, String> groups = dtInfoPOList.stream().collect(Collectors.toMap(ExtendInfoPO::getExtendGroupId, ExtendInfoPO::getTableName, (k1, k2) -> k1));
// 删除原有明细表数据
groups.forEach((k, v) -> {
if (v.toLowerCase().contains("_dt")) getExtDTMapper().deleteByMainID(v, id);
});
for (Map.Entry<Long, String> entry : groups.entrySet()) {
int rowNum = Util.getIntValue((String) params.get("rownum" + entry.getKey()));
List<ExtendInfoPO> filterS = dtInfoPOList.stream().filter(item -> entry.getKey().equals(item.getExtendGroupId())).collect(Collectors.toList());
for (int i = 0; i < rowNum; i++) {
Map<String, Object> map = new HashMap<>();
for (ExtendInfoPO extendInfoPO : filterS) {
if (BROWSER_TYPE == extendInfoPO.getControlType()) {
map.put(extendInfoPO.getFieldName() + "span", params.get(extendInfoPO.getFieldName() + "span_" + i));
}
map.put(extendInfoPO.getFieldName(), params.get(extendInfoPO.getFieldName() + "_" + i));
}
map.put("mainid", id);
map.put("creator", user.getUID());
map.put("delete_type", 0);
map.put("create_time", new Date());
map.put("update_time", new Date());
getExtDTMapper().insertCompExtDT(entry.getValue(), map);
}
}
}
}

@ -114,7 +114,9 @@ public class GradeServiceImpl extends Service implements GradeService {
gradeNoCondition.setRules("required|string");
SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description");
SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser");
schemeBrowserItem.setRules("required|string");
SearchConditionItem levelBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "职等", "162", "levelId", "LevelBrowser");
levelBrowserItem.setRules("required|string");
// 编辑状态下赋值操作
String id = Util.null2String(params.get("id"));

@ -6,6 +6,7 @@ import com.engine.core.impl.Service;
import com.engine.organization.entity.TopTab;
import com.engine.organization.service.GroupService;
import com.engine.organization.util.MenuBtn;
import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.OrganizationFormItemUtil;
import weaver.conn.RecordSet;
import weaver.general.StringUtil;
@ -37,7 +38,6 @@ public class GroupServiceImpl extends Service implements GroupService {
String id = Util.null2String(params.get("id"));
if (!StringUtil.isEmpty(id)) {
RecordSet rs = new RecordSet();
String sql = "select * from HrmCompany where id in(" + id + ")";
rs.executeQuery(sql);
rs.executeQuery(sql);
@ -71,6 +71,18 @@ public class GroupServiceImpl extends Service implements GroupService {
return apiDatas;
}
@Override
public boolean updateGroup(Map<String, Object> params) {
String id = Util.null2String(params.get("id"));
OrganizationAssert.notNull(id, "数据有误");
String companyname = (String) params.get("companyname");
String companydesc = (String) params.get("companydesc");
String companyweb = (String) params.get("companyweb");
RecordSet rs = new RecordSet();
return rs.executeUpdate("update HrmCompany set COMPANYNAME = ?,COMPANYDESC=?,COMPANYWEB=? where id = ?", companyname, companydesc, companyweb, id);
}
@Override
public Map<String, Object> getHasRight() {
Map<String, Object> btnDatas = new HashMap<>();

@ -109,6 +109,7 @@ public class LevelServiceImpl extends Service implements LevelService {
levelNoCondition.setRules("required|string");
SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description");
SearchConditionItem browserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser");
browserItem.setRules("required|string");
// 编辑状态下赋值操作
String id = Util.null2String(params.get("id"));

@ -109,6 +109,7 @@ public class SequenceServiceImpl extends Service implements SequenceService {
sequenceNoCondition.setRules("required|string");
SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description");
SearchConditionItem browserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser");
browserItem.setRules("required|string");
// 编辑状态下赋值操作
String id = Util.null2String(params.get("id"));

@ -33,7 +33,7 @@ public class MenuBtn {
* @return
*/
public static MenuBtn topMenu_addNew() {
return MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新").type("BTN_Addnew").build();
return MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新").type("BTN_Addnew").build();
}
/**
@ -51,7 +51,7 @@ public class MenuBtn {
* @return
*/
public static MenuBtn rightMenu_addNew() {
return MenuBtn.builder().isBatch("0").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新").type("BTN_Addnew").build();
return MenuBtn.builder().isBatch("0").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新").type("BTN_Addnew").build();
}
/**
@ -80,12 +80,12 @@ public class MenuBtn {
Map<String, Object> btnDatas = new HashMap<>();
ArrayList<MenuBtn> topMenuList = new ArrayList<>();
ArrayList<MenuBtn> 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());

@ -1,7 +1,9 @@
package com.engine.organization.web;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.organization.common.BaseQueryParam;
import com.engine.organization.entity.QueryParam;
import com.engine.organization.entity.comp.param.CompSearchParam;
import com.engine.organization.util.response.ReturnResult;
import com.engine.organization.wrapper.CompWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
@ -10,11 +12,13 @@ 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
@ -32,17 +36,180 @@ public class CompController {
*
* @param request
* @param response
* @param params
* @return
*/
@POST
@Path("/listComp")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult listComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody BaseQueryParam queryParam) {
public ReturnResult listComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody CompSearchParam params) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getCompWrapper(user).listPage(queryParam));
return ReturnResult.successed(getCompWrapper(user).listPage(params));
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
* /
*
* @param request
* @param response
* @param params
* @return
*/
@POST
@Path("/saveBaseComp")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody CompSearchParam params) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getCompWrapper(user).saveBaseComp(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 CompSearchParam param) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getCompWrapper(user).updateForbiddenTagById(param));
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
*
*
* @param request
* @param response
* @return
*/
@POST
@Path("/updateComp")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult updateComp(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request);
return ReturnResult.successed(getCompWrapper(user).updateComp(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 QueryParam param) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getCompWrapper(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<String, Object> map = ParamUtil.request2Map(request);
return ReturnResult.successed(getCompWrapper(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(getCompWrapper(user).getHasRight());
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
*
*
* @param request
* @param response
* @return
*/
@GET
@Path("/getCompBaseForm")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult getCompBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request);
return ReturnResult.successed(getCompWrapper(user).getCompBaseForm(map));
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
*
*
* @param request
* @param response
* @return
*/
@GET
@Path("/getCompSaveForm")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult getCompSaveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getCompWrapper(user).getCompSaveForm());
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
}

@ -0,0 +1,86 @@
package com.engine.organization.web;
import com.engine.common.util.ServiceUtil;
import com.engine.organization.entity.department.param.DeptSearchParam;
import com.engine.organization.entity.department.param.QuerySingleDeptListParam;
import com.engine.organization.util.response.ReturnResult;
import com.engine.organization.wrapper.DepartmentWrapper;
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;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public class DepartmentController {
private DepartmentWrapper getDepartmentWrapper(User user) {
return ServiceUtil.getService(DepartmentWrapper.class, user);
}
@POST
@Path("/getDeptListByPid")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult getDeptListByPid(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QuerySingleDeptListParam querySingleDeptListParam) {
try {
User user = HrmUserVarify.getUser(request, response);
return getDepartmentWrapper(user).getDeptListByPid(querySingleDeptListParam);
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
* list
*
* @param request
* @param response
* @param params
* @return
*/
@POST
@Path("/listDept")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult listDept(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getDepartmentWrapper(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(getDepartmentWrapper(user).getSaveForm());
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
}

@ -4,12 +4,14 @@ import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.organization.util.response.ReturnResult;
import com.engine.organization.wrapper.GroupWrapper;
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;
@ -47,6 +49,18 @@ public class GroupController {
}
}
@POST
@Path("/updateGroup")
@Produces(MediaType.APPLICATION_JSON)
public ReturnResult updateGroup(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map<String, Object> map) {
try {
User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getGroupWrapper(user).updateGroup(map));
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
/**
*
*

@ -0,0 +1,30 @@
package com.engine.organization.webservice;
import com.engine.organization.entity.comp.po.CompPO;
import javax.jws.WebMethod;
import javax.jws.WebService;
import java.util.List;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/23
* @version: 1.0
*/
@WebService
public interface CustomBrowserService {
/**
* /
*
*
* @return
*/
@WebMethod(
operationName = "getCompTreeList",
action = "com.engine.organization.webservice.CustomBrowserService.getCompTreeList"
)
List<CompPO> getCompTreeList();
}

@ -0,0 +1,53 @@
package com.engine.organization.webservice;
import com.engine.organization.entity.comp.po.CompPO;
import com.engine.organization.mapper.comp.CompMapper;
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/05/23
* @version: 1.0
*/
public class CustomBrowserServiceImpl implements CustomBrowserService {
private CompMapper getCompMapper() {
return MapperProxyFactory.getProxy(CompMapper.class);
}
@Override
public List<CompPO> getCompTreeList() {
// 获取所有启用数据
List<CompPO> allList = getCompMapper().list().stream().filter(item -> 0 == item.getForbiddenTag()).collect(Collectors.toList());
List<CompPO> parentList = allList.stream().filter(item -> (null == item.getParentCompany() || 0 == item.getParentCompany())).collect(Collectors.toList());
Map<Long, List<CompPO>> compMap = allList.stream().filter(item -> (null != item.getParentCompany() && 0 != item.getParentCompany())).collect(Collectors.groupingBy(CompPO::getParentCompany));
List<CompPO> returnList = new ArrayList<>();
dealChildren(parentList, returnList, compMap);
return returnList;
}
/**
*
*
* @param parentList
* @param returnList
* @param compMap
*/
private void dealChildren(List<CompPO> parentList, List<CompPO> returnList, Map<Long, List<CompPO>> compMap) {
if (CollectionUtils.isEmpty(parentList)) {
return;
}
for (CompPO compPO : parentList) {
returnList.add(compPO);
dealChildren(compMap.get(compPO.getId()), returnList, compMap);
}
}
}

@ -2,11 +2,12 @@ package com.engine.organization.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.organization.common.BaseQueryParam;
import com.engine.organization.entity.comp.param.CompSearchParam;
import com.engine.organization.service.CompService;
import com.engine.organization.service.impl.CompServiceImpl;
import weaver.hrm.User;
import java.util.Collection;
import java.util.Map;
/**
@ -26,7 +27,85 @@ public class CompWrapper extends Service {
* @param params
* @return
*/
public Map<String, Object> listPage(BaseQueryParam params) {
public Map<String, Object> listPage(CompSearchParam params) {
return getCompService(user).listPage(params);
}
/**
* /
*
* @param params
* @return
*/
public int saveBaseComp(CompSearchParam params) {
return getCompService(user).saveBaseComp(params);
}
/**
*
*
* @param params
*/
public int updateForbiddenTagById(CompSearchParam params) {
return getCompService(user).updateForbiddenTagById(params);
}
/**
*
*
* @param params
* @return
*/
public int updateComp(Map<String, Object> params) {
return getCompService(user).updateComp(params);
}
/**
* ID
*
* @param ids
*/
public int deleteByIds(Collection<Long> ids) {
return getCompService(user).deleteByIds(ids);
}
/**
*
*
* @param params
* @return
*/
public Map<String, Object> getSearchCondition(Map<String, Object> params) {
return getCompService(user).getSearchCondition(params);
}
/**
*
*
* @return
*/
public Map<String, Object> getHasRight() {
return getCompService(user).getHasRight();
}
/**
*
*
* @param params
* @return
*/
public Map<String, Object> getCompBaseForm(Map<String, Object> params) {
return getCompService(user).getCompBaseForm(params);
}
/**
*
*
* @return
*/
public Map<String, Object> getCompSaveForm() {
return getCompService(user).getCompSaveForm();
}
}

@ -0,0 +1,51 @@
package com.engine.organization.wrapper;
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.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.Map;
/**
* @Author weaver_cl
* @Description: TODO
* @Date 2022/5/20
* @Version V1.0
**/
public class DepartmentWrapper extends Service {
public DepartmentService getDepartmentService(User user) {
return ServiceUtil.getService(DepartmentServiceImpl.class, user);
}
public ReturnResult getDeptListByPid(QuerySingleDeptListParam param) {
PageInfo<SingleDeptTreeVO> singleDeptTreeVOS = getDepartmentService(user).getDeptListByPid(param);
return ReturnResult.successed(singleDeptTreeVOS);
}
/**
*
*
* @param param
* @return
*/
public Map<String, Object> listPage(DeptSearchParam param) {
return getDepartmentService(user).listPage(param);
}
/**
*
*
* @return
*/
public Map<String, Object> getSaveForm() {
return getDepartmentService(user).getSaveForm();
}
}

@ -30,6 +30,16 @@ public class GroupWrapper extends Service {
return getGroupService(user).getGroupFormField(params);
}
/**
*
*
* @param params
* @return
*/
public boolean updateGroup(Map<String, Object> params) {
return getGroupService(user).updateGroup(params);
}
/**
*
*

Loading…
Cancel
Save