diff --git a/src/com/engine/organization/entity/chart/CompanyTreePO.java b/src/com/engine/organization/entity/chart/CompanyTreePO.java
index c5c3dd1e..e002c8d0 100644
--- a/src/com/engine/organization/entity/chart/CompanyTreePO.java
+++ b/src/com/engine/organization/entity/chart/CompanyTreePO.java
@@ -22,6 +22,7 @@ public class CompanyTreePO {
private boolean isLeaf;
private String key;
private boolean disabled;
+ private String type;
public boolean getIsLeaf() {
return isLeaf;
@@ -38,4 +39,11 @@ public class CompanyTreePO {
public String getValue() {
return id;
}
+
+ public String getType() {
+ if(id.startsWith("d")){
+ return "2";
+ }
+ return "1";
+ }
}
diff --git a/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java b/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java
index ea79ddf8..f3854a3e 100644
--- a/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java
+++ b/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java
@@ -24,6 +24,8 @@ public class ManagerDetachParam {
private Integer ecManager;
+ private Integer roleId;
+
private Integer jclManager;
private String ecRolelevel;
diff --git a/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java
index 42c6ed23..7b7f6353 100644
--- a/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java
+++ b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@OrganizationTable(pageId = "0bf9b7bc-c8b0-4225-bf28-4cd015d96e98",
fields = "t.id," +
+ "t.manager_type," +
"t.ec_manager," +
"t.ec_rolelevel," +
"t.manage_module," +
@@ -45,8 +46,11 @@ public class ManagerDetachVO {
@OrganizationTableColumn(column = "id", display = false)
private Long id;
+ @OrganizationTableColumn(labelId = 513540, text = "管理员类型", width = "20%", column = "manager_type")
+ private Integer managerType;
- @OrganizationTableColumn(labelId = 547405, text = "管理员", width = "20%", column = "ec_manager", transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getManagerName")
+
+ @OrganizationTableColumn(labelId = 547405, text = "管理员", width = "20%", column = "ec_manager", transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getManagerName",otherPara = "column:manager_type")
private Integer ecManager;
@OrganizationTableColumn(labelId = 547407, text = "可管理组织机构", width = "40%", column = "ec_rolelevel", transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getRoleLevel")
diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java
index 570b621c..a520d0fa 100644
--- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java
+++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java
@@ -411,6 +411,10 @@ public class ExtendInfoBO {
searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, fieldlabel, new String[]{fieldname}, browserbean);
} else {
searchConditionItem = conditionFactory.createCondition(ConditionType.BROWSER, fieldlabel, fieldname, detailtype);
+ //隐藏虚拟组织
+ if(searchConditionItem != null ) {
+ searchConditionItem.getBrowserConditionParam().setHideVirtualOrg(true);
+ }
}
// 岗位浏览按钮
if ("666".equals(detailtype)) {
diff --git a/src/com/engine/organization/entity/hrmresource/param/SearchTemplateParam.java b/src/com/engine/organization/entity/hrmresource/param/SearchTemplateParam.java
index cd05eeff..35ae665d 100644
--- a/src/com/engine/organization/entity/hrmresource/param/SearchTemplateParam.java
+++ b/src/com/engine/organization/entity/hrmresource/param/SearchTemplateParam.java
@@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.util.Objects;
+
/**
* @author:dxfeng
* @createTime: 2023/01/05
@@ -19,4 +21,21 @@ public class SearchTemplateParam {
//private boolean selected;
private String showname;
private String fields;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SearchTemplateParam that = (SearchTemplateParam) o;
+ return key.equals(that.key);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key);
+ }
}
diff --git a/src/com/engine/organization/entity/hrmresource/po/JclOrgCustomTemplatePO.java b/src/com/engine/organization/entity/hrmresource/po/JclOrgCustomTemplatePO.java
index 03ccf830..68a8864b 100644
--- a/src/com/engine/organization/entity/hrmresource/po/JclOrgCustomTemplatePO.java
+++ b/src/com/engine/organization/entity/hrmresource/po/JclOrgCustomTemplatePO.java
@@ -64,4 +64,6 @@ public class JclOrgCustomTemplatePO implements Serializable {
private static final long serialVersionUID = 1L;
+ private Integer overall;
+
}
\ No newline at end of file
diff --git a/src/com/engine/organization/entity/hrmresource/po/SearchTemplatePO.java b/src/com/engine/organization/entity/hrmresource/po/SearchTemplatePO.java
index 4393a206..6fd748ca 100644
--- a/src/com/engine/organization/entity/hrmresource/po/SearchTemplatePO.java
+++ b/src/com/engine/organization/entity/hrmresource/po/SearchTemplatePO.java
@@ -26,4 +26,5 @@ public class SearchTemplatePO {
private Integer creator;
private Date createTime;
private Date updateTime;
+ private Integer overall;
}
diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java
index 526a864a..363af91e 100644
--- a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java
+++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java
@@ -18,7 +18,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@OrganizationTable(pageId = "0cdfd5bb-dc09-11ec-b69e-00ffcbed7508",
- fields = "t.id,t.is_used,s.control_dimension,t.plan_id,t.comp_id,t.dept_id,t.job_id,t.staff_num,t.permanent_num,t.freeze_num,t.lack_status,t.staff_desc",
+ fields = "t.id,t.is_used,s.control_dimension,t.plan_id,t.comp_id,t.dept_id,t.job_id,t.staff_num,t.permanent_num,t.freeze_num,t.lack_status,t.staff_desc,t.description",
fromSql = "FROM jcl_org_staff t inner join jcl_org_staffplan s on t.plan_id = s.id",
orderby = "id desc",
primarykey = "id",
@@ -91,4 +91,11 @@ public class StaffTableVO {
@OrganizationTableColumn(labelId = 547349, text = "编制描述", width = "10%", column = "staff_desc")
private String staffDesc;
+ /**
+ * 描述说明
+ */
+ @OrganizationTableColumn(labelId = 547142, text = "描述说明", width = "10%", column = "description")
+ private String description;
+
+
}
diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml
index 272449ad..752ac012 100644
--- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml
+++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml
@@ -122,7 +122,7 @@
diff --git a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java
index 258114c1..b0d0b05b 100644
--- a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java
+++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java
@@ -24,7 +24,9 @@ public interface ManagerDetachMapper {
ManagerDetachPO getDetachById(@Param("id") Integer id);
- List getDetachListById(@Param("ecManager") Integer ecManager);
+ List getDetachListById(@Param("ecManager") Integer ecManager,@Param("managerType") Integer managerType);
+
+ List selectDetachListByManager(@Param("ids") Collection ids);
ManagerDetachPO selectManagerDetachByUid(@Param("uid") Integer uId);
}
diff --git a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml
index c3c41703..859e13b3 100644
--- a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml
+++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml
@@ -216,6 +216,19 @@
from jcl_org_detach t
WHERE delete_type = 0
and ec_manager = #{ecManager}
+ and manager_type = #{managerType}
+
+
+
+
+ select *
+ from jcl_org_custom_template
+ where overall = 1
+
+
+
+
select id,workcode,lastname,sex,departmentid,subcompanyid1,jobtitle,status,mobile
from hrmresource where departmentid = #{departmentId} and status < 4 order by id
@@ -462,5 +488,12 @@
order by id
+
+ select *
+ from jcl_org_search_template
+ where ISUSED = 1
+ and creator = #{userId}
+
\ No newline at end of file
diff --git a/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.java b/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.java
index 2f71bb38..747da547 100644
--- a/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.java
+++ b/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.java
@@ -34,8 +34,10 @@ public interface JclOrgCustomTemplateMapper {
int deleteByIds(@Param("ids") Collection ids);
- int updateUsed(@Param("isused")String isused,@Param("id") String id,@Param("creator") String creator);
+ int updateUsed(@Param("overall")Integer overall,@Param("isused")String isused,@Param("id") String id,@Param("creator") String creator);
JclOrgCustomTemplatePO queryIsusedTemp(@Param("isused")String isused,@Param("creator") String creator);
+ JclOrgCustomTemplatePO queryOverAll();
+
}
diff --git a/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.xml b/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.xml
index 3043f7a8..bfd7213d 100644
--- a/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.xml
+++ b/src/com/engine/organization/mapper/resource/JclOrgCustomTemplateMapper.xml
@@ -14,12 +14,13 @@
+
id,name,basic_fields,
personal_fields,work_fields,isused,
- creator,create_time,update_time
+ creator,create_time,update_time,overall
@@ -31,7 +32,7 @@
select
- from jcl_org_custom_template where creator = #{creator} order by id
+ from jcl_org_custom_template where creator = #{creator} order by id
@@ -132,8 +133,9 @@
update JCL_ORG_CUSTOM_TEMPLATE set isused = #{isused}
+ overall is null
- id = #{id}
+ and id = #{id}
and creator = #{creator}
@@ -144,9 +146,17 @@
select
- from JCL_ORG_CUSTOM_TEMPLATE t where t.isused = #{isused} and t.creator = #{creator}
+ from JCL_ORG_CUSTOM_TEMPLATE t where t.isused = #{isused} and t.creator = #{creator} and overall is null
+
+ select
+
+ from JCL_ORG_CUSTOM_TEMPLATE t where overall = 1
+
+
+
+
select
id
diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java
index be26495e..99b0f721 100644
--- a/src/com/engine/organization/service/ChartService.java
+++ b/src/com/engine/organization/service/ChartService.java
@@ -101,4 +101,13 @@ public interface ChartService {
* @return: java.util.Map
*/
Map selectLabel();
+
+ /**
+ * @Description: 历史版本删除
+ * @Author: liang.cheng
+ * @Date: 2024/8/1 4:30 PM
+ * @param: []
+ * @return: java.util.Map
+ */
+ Map versionDelete(Integer versionId);
}
diff --git a/src/com/engine/organization/service/HrmResourceService.java b/src/com/engine/organization/service/HrmResourceService.java
index 7cba3ccf..17aff125 100644
--- a/src/com/engine/organization/service/HrmResourceService.java
+++ b/src/com/engine/organization/service/HrmResourceService.java
@@ -133,7 +133,7 @@ public interface HrmResourceService {
* @param params
* @return
*/
- Integer saveCustomTemplate(SearchTemplateParam params);
+ Map saveCustomTemplate(SearchTemplateParam params);
/**
* 批量修改保存定制列模板
@@ -179,4 +179,12 @@ public interface HrmResourceService {
Map chartResourceList(Integer departmentId,String versionId,String dimension,String statusValue);
+ /**
+ * @Description: 将当前模板应用到所有人
+ * @Author: liang.cheng
+ * @Date: 2024/7/23 3:02 PM
+ * @param: [params]
+ * @return: java.util.Map
+ */
+ Map customOverall(Map params);
}
diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java
index b3c3b360..957a0852 100644
--- a/src/com/engine/organization/service/impl/ChartServiceImpl.java
+++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java
@@ -89,6 +89,7 @@ public class ChartServiceImpl extends Service implements ChartService {
// 根结点
String root = Util.null2String(params.get("root"));
root = StringUtils.isBlank(root) ? "0" : root;
+ boolean isDepartment = root.startsWith("d");
// 维度
String dimension = Util.null2String(params.get("fclass"));
@@ -140,6 +141,10 @@ public class ChartServiceImpl extends Service implements ChartService {
// 向下查询数据
if (null != topChartPO) {
+ // 如果根结点是部门,顶层层级设置为1
+ if(topChartPO.getFtype().equals("2")){
+ topChartPO.setDepartmentDepth(1);
+ }
findChildData(topChartPO, dataList, Integer.parseInt(depth), id, hideDepartment);
}
@@ -461,14 +466,31 @@ public class ChartServiceImpl extends Service implements ChartService {
" versionid = " + versionId + " and companyvirtualid = " + dimension;
}
} else {
- if (hasVirtualFields) {
- if (showVirtual) {
- return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual,a.job_num,a.staff_num from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and subcompanyid = " + root;
+ String numSql = ",a.job_num,a.staff_num";
+ if (!isRealDimension) {
+ numSql = "";
+ }
+ if (root.startsWith("d")) {
+ root = root.replace("d", "");
+ if (hasVirtualFields) {
+ if (showVirtual) {
+ return "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual" + numSql + " from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and " + DEPARTMENT_ID + " = '" + root + "' and versionid = " + versionId;
+ } else {
+ return "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual" + numSql + " from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and " + DEPARTMENT_ID + " = '" + root + "' and versionid = " + versionId;
+ }
} else {
- return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual,a.job_num,a.staff_num from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and subcompanyid = " + root + " and (isvirtual is null or isvirtual != '1')";
+ return "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type" + numSql + " from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and " + DEPARTMENT_ID + " = '" + root + "' and versionid = " + versionId;
}
} else {
- return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,a.job_num,a.staff_num from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and subcompanyid = " + root;
+ if (hasVirtualFields) {
+ if (showVirtual) {
+ return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual" + numSql + " from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and " + SUB_COMPANY_ID + " = " + root;
+ } else {
+ return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual" + numSql + " from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and " + SUB_COMPANY_ID + " = " + root + " and (isvirtual is null or isvirtual != '1')";
+ }
+ } else {
+ return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type" + numSql + " from " + SUB_COMPANY_TABLE + " a where versionid = " + versionId + " and " + SUB_COMPANY_ID + " = " + root;
+ }
}
}
}
@@ -524,6 +546,19 @@ public class ChartServiceImpl extends Service implements ChartService {
public Map getDepartmentTree(Map params) {
Map result = new HashMap<>(2);
+ List departmentTree = getDepartmentTreeList(params);
+ result.put("departmentTree", departmentTree);
+ result.put("api_status", true);
+ return result;
+ }
+
+ /**
+ * 获取部门树集合
+ *
+ * @param params
+ * @return
+ */
+ public static List getDepartmentTreeList(Map params) {
RecordSet rs = new RecordSet();
List departmentTree = new ArrayList<>();
String subCompany = Util.null2String(params.get("subcompany"));
@@ -535,11 +570,9 @@ public class ChartServiceImpl extends Service implements ChartService {
String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
rs.executeQuery(sql);
while (rs.next()) {
- departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).disabled(!rs.getString("id").startsWith("d")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build());
+ departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).disabled(false).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build());
}
- result.put("departmentTree", departmentTree);
- result.put("api_status", true);
- return result;
+ return departmentTree;
}
@Override
@@ -701,6 +734,32 @@ public class ChartServiceImpl extends Service implements ChartService {
return labelData;
}
+ @Override
+ public Map versionDelete(Integer versionId) {
+
+ Map data = new HashMap<>();
+
+
+ RecordSet rs = new RecordSet();
+ //1.删除版本表
+ rs.executeUpdate("delete from jcl_org_chartversion where id = ?",versionId);
+
+ //2.删除历史分部表
+ rs.executeUpdate("delete from jcl_chart_subcompany where versionid = ?",versionId);
+
+ //3.删除历史部门表
+ rs.executeUpdate("delete from jcl_chart_department where versionid = ?",versionId);
+
+ //4.删除历史聚才林岗位表
+ rs.executeUpdate("delete from jcl_chart_job where versionid = ?",versionId);
+
+ //5.删除历史人员表
+ rs.executeUpdate("delete from jcl_chart_resource where versionid = ?",versionId);
+
+ data.put("versionId",versionId);
+ return data;
+ }
+
/**
* 生成人数
* @param stp
@@ -1339,15 +1398,28 @@ public class ChartServiceImpl extends Service implements ChartService {
return "select id,companyname as name,'0' as type from " + COMPANY_TABLE + " where id = '" + dimension + "'";
}
} else {
- if (hasVirtualFields) {
- if (showVirtual) {
- return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,c.on_job_num,c.staff_num from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid left join jcl_org_onjob c on a.id=c.data_id and c.type=1 where a.id = '" + root + "' order by showorder,id";
+ if(root.startsWith("d")) {
+ root = root.replace("d", "");
+ if (hasVirtualFields) {
+ if (showVirtual) {
+ return "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual,c.on_job_num,c.staff_num from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid left join jcl_org_onjob c on a.id=c.data_id and c.type=2 where (a.canceled is null or a.canceled != '1') and a.id = '" + root + "'";
+ } else {
+ return "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual,c.on_job_num,c.staff_num from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid left join jcl_org_onjob c on a.id=c.data_id and c.type=2 where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.id = '" + root + "'";
+ }
} else {
- return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,c.on_job_num,c.staff_num from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid left join jcl_org_onjob c on a.id=c.data_id and c.type=1 where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1') order by showorder,id";
+ return "select a.id,a.departmentname as name,'2' as type,b.on_job_num,b.staff_num from " + DEPARTMENT_TABLE + " a left join jcl_org_onjob b on a.id=b.data_id and b.type=2 where (canceled is null or canceled != '1') and a.id = '" + root + "'";
+ }
+ }else {
+ if (hasVirtualFields) {
+ if (showVirtual) {
+ return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,c.on_job_num,c.staff_num from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid left join jcl_org_onjob c on a.id=c.data_id and c.type=1 where a.id = '" + root + "' order by showorder,id";
+ } else {
+ return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,c.on_job_num,c.staff_num from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid left join jcl_org_onjob c on a.id=c.data_id and c.type=1 where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1') order by showorder,id";
+ }
+ } else {
+ return "select a.id,a.subcompanyname as name,'1' as type,b.on_job_num,b.staff_num from " + SUB_COMPANY_TABLE + " a left join jcl_org_onjob b on a.id=b.data_id and b.type=1 where a.id = '" + root + "' order by a.showorder,a.id";
}
- } else {
- return "select a.id,a.subcompanyname as name,'1' as type,b.on_job_num,b.staff_num from " + SUB_COMPANY_TABLE + " a left join jcl_org_onjob b on a.id=b.data_id and b.type=1 where a.id = '" + root + "' order by a.showorder,a.id";
}
}
}
@@ -1654,10 +1726,10 @@ public class ChartServiceImpl extends Service implements ChartService {
* @param subCompany 上级Id
* @return SQL
*/
- private String getDepartmentTreeSql(String versionId, String dimension, String subCompany) {
+ private static String getDepartmentTreeSql(String versionId, String dimension, String subCompany) {
// 是否展示当前数据
boolean isSearchCurrent = StringUtils.isBlank(versionId) || "0".equals(versionId);
- boolean isCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension);
+ boolean isNotCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension);
boolean isDepartment = subCompany.startsWith("d");
String sql;
DBType dbType = DBType.get(new RecordSet().getDBType());
@@ -1665,36 +1737,37 @@ public class ChartServiceImpl extends Service implements ChartService {
subCompany = subCompany.replace("d", "");
if (isSearchCurrent) {
sql = "select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from hrmdepartment where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany;
- if (isCurrentDimension) {
+ sql += " order by showorder,id ";
+ if (isNotCurrentDimension) {
sql = "select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from hrmdepartmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany;
}
- sql += " order by showorder,id ";
} else {
sql = "select " + dbType.concat("d", "departmentid") + "as id, departmentid as value, departmentname as title, " + dbType.concat("d", "supdepartmentid") + " as pId from jcl_chart_department where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepartmentid", "0") + " = " + subCompany;
- if (isCurrentDimension) {
+ if (isNotCurrentDimension) {
sql = "select " + dbType.concat("d", "departmentvirtualid") + "as id, departmentvirtualid as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from jcl_chart_departmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany;
}
// 添加时间轴条件
sql += " and versionid = " + versionId;
}
} else {
+ // TODO 分权
if (isSearchCurrent) {
sql = "select " + dbType.concat("", "id") + " as id, id as value, subcompanyname as title, supsubcomid as pId, showorder from hrmsubcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcomid", "0") + " = " + subCompany +
" union select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, subcompanyid1 as pId, showorder from hrmdepartment where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) and " + dbType.ifNull("subcompanyid1", "0") + " = " + subCompany;
- if (isCurrentDimension) {
+ sql += " order by showorder,id ";
+ if (isNotCurrentDimension) {
sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompanyvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcomid", "0") + " = " + subCompany + " and companyid = '" + dimension + "' " +
" union select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, subcompanyid1 as pId from hrmdepartmentvirtual where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid1", "0") + " = " + subCompany;
}
- sql += " order by showorder,id ";
} else {
- sql = "select " + dbType.concat("", "subcompanyid") + " as id, subcompanyid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany +
- " union select " + dbType.concat("d", "subcompanyid") + "as id, subcompanyid as value, departmentname as title, subcompanyid as pId from jcl_chart_department where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid =0) and " + dbType.ifNull("subcompanyid", "0") + " = " + subCompany;
- if (isCurrentDimension) {
- sql = "select " + dbType.concat("", "subcompanyvirtualid") + " as id, subcompanyvirtualid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany + " and companyid = '" + dimension + "' " +
- " union select " + dbType.concat("d", "departmentvirtualid") + "as id, departmentvirtualid as value, departmentname as title, subcompanyid as pId from jcl_chart_departmentvirtual where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid", "0") + " = " + subCompany;
+ sql = "select " + dbType.concat("", "subcompanyid") + " as id, subcompanyid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany + " and versionid = " + versionId +
+ " union select " + dbType.concat("d", "departmentid") + "as id, departmentid as value, departmentname as title, subcompanyid as pId from jcl_chart_department where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid =0) and " + dbType.ifNull("subcompanyid", "0") + " = " + subCompany + " and versionid = " + versionId ;
+ if (isNotCurrentDimension) {
+ sql = "select " + dbType.concat("", "subcompanyvirtualid") + " as id, subcompanyvirtualid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany + " and companyid = '" + dimension + "' " + " and versionid = " + versionId +
+ " union select " + dbType.concat("d", "departmentvirtualid") + "as id, departmentvirtualid as value, departmentname as title, subcompanyid as pId from jcl_chart_departmentvirtual where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid", "0") + " = " + subCompany + " and versionid = " + versionId ;
}
- // 添加时间轴条件
- sql += " and versionid = " + versionId;
+ //// 添加时间轴条件
+ //sql += " and versionid = " + versionId;
}
}
return sql;
@@ -1716,7 +1789,7 @@ public class ChartServiceImpl extends Service implements ChartService {
* @param subCompany 上级元素ID
* @return
*/
- private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
+ private static boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
RecordSet recordSet = new RecordSet();
String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
recordSet.executeQuery(sql);
diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java
index 5c2b1369..d755dfbf 100644
--- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java
+++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java
@@ -14,12 +14,14 @@ 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.po.DepartmentPO;
+import com.engine.organization.entity.hrmresource.po.JclOrgCustomTemplatePO;
import com.engine.organization.entity.hrmresource.po.SearchTemplatePO;
import com.engine.organization.entity.hrmresource.vo.HrmResourceVO;
import com.engine.organization.entity.staff.po.StaffPO;
import com.engine.organization.entity.staff.vo.StaffTableVO;
import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.resource.HrmResourceMapper;
+import com.engine.organization.mapper.resource.JclOrgCustomTemplateMapper;
import com.engine.organization.mapper.resource.ResourceMapper;
import com.engine.organization.mapper.staff.StaffMapper;
import com.engine.organization.mapper.staff.StaffPlanMapper;
@@ -141,18 +143,31 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ
HrmResourceServiceImpl hrmResourceService = ServiceUtil.getService(HrmResourceServiceImpl.class,user);
List allConditions = hrmResourceService.getAllConditions();
- List columnList;
+ JclOrgCustomTemplatePO jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).queryIsusedTemp("1", String.valueOf(user.getUID()));
- // 查询当前台账定制列
- SearchTemplatePO usedCustomTemplate = MapperProxyFactory.getProxy(HrmResourceMapper.class).getUsedCustomTemplateByUser(user.getUID());
- if (null == usedCustomTemplate) {
- // 默认列定制
- String selectKeys = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid";
- columnList = Arrays.asList(selectKeys.split(","));
+ //2.是否存在通用模板
+ if (null == jclOrgCustomTemplatePO) {
+ jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).queryOverAll();
+ }
+
+ String columns = "";
+ if (jclOrgCustomTemplatePO != null) {
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(jclOrgCustomTemplatePO.getBasicFields())) {
+ columns = jclOrgCustomTemplatePO.getBasicFields();
+ }
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(jclOrgCustomTemplatePO.getPersonalFields())) {
+ columns = columns + "," + jclOrgCustomTemplatePO.getPersonalFields();
+ }
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(jclOrgCustomTemplatePO.getWorkFields())) {
+ columns = columns + "," + jclOrgCustomTemplatePO.getWorkFields();
+ }
} else {
- columnList = hrmResourceService.getSelectKeys(usedCustomTemplate);
+ //初次使用,无模板初始值
+ columns = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_subcompanyid1,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid,-1_hrm_sporder";
}
+ List columnList = Arrays.asList(columns.split(","));
+
BigDecimal decimal = new BigDecimal(100 / columnList.size());
@@ -168,7 +183,8 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ
weaTableColumn.setText(MapperProxyFactory.getProxy(HrmResourceMapper.class).queryLabelName(fieldName, scopeId, user.getLanguage()));
weaTableColumn.setColumn(hrmResourceService.buildTableSql(columnName).replace(".", "_"));
weaTableColumn.setDisplay(columnList.contains(columnName) ? WeaBoolAttr.TRUE : WeaBoolAttr.FALSE);
- weaTableColumn.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getFieldTrueValue");
+ // 导出专用转换,去除html标签
+ weaTableColumn.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getFieldTrueValueExp");
weaTableColumn.setOtherpara(columnName);
weaTableColumn.setWidth(decimal.setScale(2, RoundingMode.HALF_UP).doubleValue() + "%");
if (weaTableColumn.getDisplay().getBoolVal()) {
diff --git a/src/com/engine/organization/service/impl/FunctionOutStaffServiceImpl.java b/src/com/engine/organization/service/impl/FunctionOutStaffServiceImpl.java
index 8e7bbd60..5f6bd9d2 100644
--- a/src/com/engine/organization/service/impl/FunctionOutStaffServiceImpl.java
+++ b/src/com/engine/organization/service/impl/FunctionOutStaffServiceImpl.java
@@ -75,7 +75,7 @@ public class FunctionOutStaffServiceImpl {
private Integer frozenStaffNums(StaffOutParam param) {
StaffPO staffPO = select(param);
- List numberF = Arrays.asList(staffPO.getFreezeNum(),param.getNum());
+ List numberF = Arrays.asList(staffPO.getFreezeNum(),param.getNum(),staffPO.getPermanentNum());
//1.增加冻结数 (num为负数时为减少冻结数)
Integer sum = numberF.stream()
.mapToInt(Integer::intValue)
diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java
index fbe393a8..128e0f1d 100644
--- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java
+++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java
@@ -34,6 +34,7 @@ import com.engine.organization.entity.search.QuickSearchDetail;
import com.engine.organization.entity.searchtree.SearchTree;
import com.engine.organization.entity.searchtree.SearchTreeParams;
import com.engine.organization.enums.HrmGroupEnum;
+import com.engine.organization.exception.OrganizationRunTimeException;
import com.engine.organization.mapper.comp.CompMapper;
import com.engine.organization.mapper.condition.QuickSearchMapper;
import com.engine.organization.mapper.department.DepartmentMapper;
@@ -149,6 +150,12 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
table.setSqlwhere(sqlWhere);
List weaTableColumnList = new ArrayList<>();
JclOrgCustomTemplatePO jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).queryIsusedTemp("1", String.valueOf(user.getUID()));
+
+ //2.是否存在通用模板
+ if (null == jclOrgCustomTemplatePO) {
+ jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).queryOverAll();
+ }
+
String columns = "";
List fields = new ArrayList<>();
List allConditions = getAllConditions();
@@ -266,6 +273,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
templatePO.setCreator(user.getUID());
templatePO.setCreateTime(new Date());
templatePO.setUpdateTime(new Date());
+ templatePO.setIsused("1");
+ // 将之前的模板,isused置为null
+ getHrmResourceMapper().updateCustomTemplateUsed(user.getUID());
getHrmResourceMapper().insertSearchTemplate(templatePO);
return templatePO.getId();
}
@@ -314,39 +324,53 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
int userUID = user.getUID();
// 根据ID查询所存储的模板
List templates;
+ boolean addDefault = true;
if ("custom".equals(type)) {
templates = getHrmResourceMapper().getCustomTemplatesByUser(userUID);
+ SearchTemplatePO overallCustomTemplate = getHrmResourceMapper().getOverallCustomTemplate();
+ if (null != overallCustomTemplate) {
+ if("-1".equals(id)) {
+ id = overallCustomTemplate.getId().toString();
+ }
+ templates.add(SearchTemplateParam.builder().key(overallCustomTemplate.getId().toString()).showname(overallCustomTemplate.getName()).build());
+ //}
+ addDefault = false;
+ }
returnMap.put("id", id);
-// SearchTemplatePO usedCustomTemplate = getHrmResourceMapper().getUsedCustomTemplateByUser(user.getUID());
-// if (null != usedCustomTemplate) {
-// returnMap.put("templateId", usedCustomTemplate.getId().toString());
-// } else {
-// returnMap.put("templateId", "-1");
-// }
} else {
templates = getHrmResourceMapper().getSearchTemplatesByUser(userUID);
}
- templates.add(0, SearchTemplateParam.builder().key("-1").showname("默认模板").build());
- returnMap.put("templates", templates);
+ if (addDefault) {
+ templates.add(0, SearchTemplateParam.builder().key("-1").showname("默认模板").build());
+ }
+
+ LinkedHashSet