1.聚才林产品功能(组织时点报表)

聚才林产品功能
Chengliang 7 months ago
parent b0e7595ad7
commit 5fa313187e

@ -1,8 +1,7 @@
package com.engine.jclproduct.entity.bo;
import cn.hutool.core.collection.CollectionUtil;
import com.engine.jclproduct.entity.po.EmploymentRecordPo;
import com.engine.jclproduct.entity.po.HrmresourcePo;
import com.engine.jclproduct.entity.po.*;
import com.engine.jclproduct.utils.EmploymentUtil;
import weaver.common.DateUtil;
@ -51,12 +50,58 @@ public class EmploymentRecordBo {
).collect(Collectors.toList());
}
public static List<OrganizationRecordPo> buildOrganizationRecordPo(List<SubCompanyPo> subCompanyPos, List<DepartmentPo> departmentPos) {
List<OrganizationRecordPo> organizationRecordPos = new ArrayList<>();
if (CollectionUtil.isNotEmpty(subCompanyPos)){
subCompanyPos.forEach(e -> organizationRecordPos.add(setOrganizationRecordPo(e,null,0)));
}
if (CollectionUtil.isNotEmpty(departmentPos)) {
departmentPos.forEach(e -> organizationRecordPos.add(setOrganizationRecordPo(null,e,1)));
}
return organizationRecordPos;
}
public static OrganizationRecordPo setOrganizationRecordPo(SubCompanyPo sub,DepartmentPo dept,Integer type) {
String currentDate = DateUtil.getCurrentDate();
if (type == 0) {
return OrganizationRecordPo.builder()
.orgStatus(sub.getCanceled() == 1 ? 1 : 0)
.startDate(currentDate)
.stopDate("9999-12-31")
.oId(sub.getSubcompanyId())
.oType(0)
.oName(sub.getSubcompanyName())
.oParentId(sub.getSupsubcomId())
.changeType(sub.getCanceled() == 1 ? 2 : 0)
.showorder(sub.getShoworder())
.organizationCode(sub.getSubcompanyCode())
.build();
}else {
return OrganizationRecordPo.builder()
.orgStatus(dept.getCanceled() == 1 ? 1 : 0)
.startDate(currentDate)
.stopDate("9999-12-31")
.oId(dept.getSubcompanyId())
.oType(1)
.oName(dept.getDepartmentmark())
.oParentId(dept.getSupdepId())
.oChargeId(dept.getBmfzr())
.changeType(dept.getCanceled() == 1 ? 2 : 0)
.showorder(dept.getShoworder())
.organizationCode(dept.getDepartmentCode())
.build();
}
}
public static EmploymentRecordPo setEmploymentRecordPo(HrmresourcePo h){
Map<String, Integer> map = EmploymentUtil.dateSplitExample(h.getCompanyStartDate());
//处理其他参数
return EmploymentRecordPo.builder()
.userId(h.getUserId())
.workcode(h.getWorkcode())

@ -0,0 +1,47 @@
package com.engine.jclproduct.entity.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author liang.cheng
* @Date 2024/11/8 3:04 PM
* @Description: TODO
* @Version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrganizationRecordPo {
private Integer orgStatus;
private String startDate;
private String stopDate;
private Integer oId;
private Integer oType;
private String oName;
private Integer oParentId;
private String oChargeId;
private Integer changeType;
private String newName;
private Integer newParentId;
private String newOChargeId;
private float showorder;
private String organizationCode;
}

@ -0,0 +1,76 @@
package com.engine.jclproduct.entity.vo;
import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.jclproduct.annotation.WeaverTable;
import com.engine.jclproduct.annotation.WeaverTableColumn;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author liang.cheng
* @Date 2024/10/25 2:22 PM
* @Description:
* @Version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@WeaverTable(pageId = "ab83519e-1df8-48a0-9c4b-4ba60aa69c5e",
fields = "t.id," +
"t.orgStatus," +
"t.organizationCode," +
"t.oName," +
"t.oParentId," +
"t.showorder",
fromSql = "FROM uf_orgChange t where oType = 0",
orderby = "showorder",
sortway = "asc",
primarykey = "id",
tableType = WeaTableType.NONE
)
public class TimeSubCompanyVo {
/**
*
*/
@WeaverTableColumn(column = "id",text = "序号", display = false)
private Integer id;
/**
*
*/
@WeaverTableColumn( text = "状态", width = "10%", column = "orgStatus",transmethod = "")
private String orgStatus;
/**
*
*/
@WeaverTableColumn( text = "分部编码", width = "10%", column = "organizationCode")
private String organizationCode;
/**
*
*/
@WeaverTableColumn( text = "分部名称", width = "10%", column = "oName")
private String oName;
/**
*
*/
@WeaverTableColumn( text = "上级分部", width = "10%", column = "oParentId",transmethod = "com.engine.jclproduct.transmethod.EmReportTransMethod.subCompanyName")
private String oParentId;
/**
*
*/
@WeaverTableColumn( text = "显示顺序", width = "10%", column = "showorder")
private String showorder;
}

@ -75,4 +75,13 @@ public interface EmployeeRecordReportService {
* @return: org.apache.poi.xssf.usermodel.XSSFWorkbook
*/
XSSFWorkbook reportExport(Map<String, Object> params);
/**
* @Description:
* @Author: liang.cheng
* @Date: 2024/11/8 4:16 PM
* @param: [params]
* @return: java.util.Map<java.lang.String,java.lang.Object>
*/
Map<String,Object> orgReport(Map<String, Object> params);
}

@ -5,10 +5,7 @@ import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.core.impl.Service;
import com.engine.jclproduct.component.WeaverWeaTable;
import com.engine.jclproduct.entity.param.TransferParam;
import com.engine.jclproduct.entity.vo.CaluResourceVo;
import com.engine.jclproduct.entity.vo.LeaveResourceVo;
import com.engine.jclproduct.entity.vo.TimeResourceVo;
import com.engine.jclproduct.entity.vo.TransferResourceVo;
import com.engine.jclproduct.entity.vo.*;
import com.engine.jclproduct.service.EmployeeRecordReportService;
import com.engine.jclproduct.utils.EmploymentUtil;
import com.engine.jclproduct.utils.ExcelUtil;
@ -62,7 +59,6 @@ public class EmployeeRecordReportServiceImpl extends Service implements Employee
WeaverWeaTable<TimeResourceVo> table = new WeaverWeaTable<>(user, TimeResourceVo.class);
String sqlWhere = buildtimeResoureceSql(params);
//sqlWhere += " order by userid asc";
table.setSqlwhere(sqlWhere);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(table.makeDataResult());
@ -218,6 +214,36 @@ public class EmployeeRecordReportServiceImpl extends Service implements Employee
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
}
@Override
public Map<String, Object> orgReport(Map<String, Object> params) {
Map<String, Object> result = new HashMap<>(8);
String selectedKey = Util.null2String(params.get("selectedKey"));
switch (selectedKey) {
case "0":
result = timeOrganization(params);
break;
case "1":
result = leaveResourece(params);
break;
default:
break;
}
return result;
}
private Map<String, Object> timeOrganization(Map<String, Object> params) {
Map<String, Object> resultMap = new HashMap<>(8);
WeaverWeaTable<TimeSubCompanyVo> table = new WeaverWeaTable<>(user, TimeSubCompanyVo.class);
// String sqlWhere = buildtimeResoureceSql(params);
// table.setSqlwhere(sqlWhere);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(table.makeDataResult());
result.success();
resultMap.putAll(result.getResultMap());
return resultMap;
}
private String buildtransferResoureceSql(Map<String, Object> params) {
String pointValue = Util.null2String(params.get("pointValue"));
String startDate = Util.null2String(params.get("startDate"));

@ -2,8 +2,7 @@ package com.engine.jclproduct.service.impl;
import com.engine.core.impl.Service;
import com.engine.jclproduct.entity.bo.EmploymentRecordBo;
import com.engine.jclproduct.entity.po.EmploymentRecordPo;
import com.engine.jclproduct.entity.po.HrmresourcePo;
import com.engine.jclproduct.entity.po.*;
import com.engine.jclproduct.service.EmploymentRecordService;
import com.engine.jclproduct.utils.EmploymentUtil;
import com.weaver.file.ConfigOperator;
@ -71,7 +70,7 @@ public class EmploymentRecordServiceImpl extends Service implements EmploymentRe
@Override
public Map<String, Object> initOrganization() {
Map<String, Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<>(8);
//1.任职记录表初始化数据 只执行一次
RecordSet rs = new RecordSet();
rs.executeQuery("select count(1) as num from uf_orgChange");
@ -83,13 +82,24 @@ public class EmploymentRecordServiceImpl extends Service implements EmploymentRe
}
//1.人力资源分部中间表
List<SubCompanyPo> subCompany = EmploymentUtil.getSubCompany();
subCompany.forEach(e -> rs.executeUpdate("insert into uf_hrmsubcompany(subcompanyId,subcompanyName,companyId,supsubcomId,showorder,canceled,subcompanyCode) values(?,?,?,?,?,?,?)",e.getSubcompanyId(),
e.getSubcompanyName(),e.getCompanyId(),e.getSupsubcomId(),e.getShoworder(),e.getCanceled(),e.getSubcompanyCode()));
map.put("msg1","人力资源分部中间表初始化完成,共"+subCompany.size()+"条数据");
//2.人力资源部门中间表
List<DepartmentPo> department = EmploymentUtil.getDepartment();
department.forEach(e -> rs.executeUpdate("insert into uf_hrmdepartment(departmentId,departmentmark,subcompanyId,supdepId,showorder,canceled,departmentCode,bmfzr) values(?,?,?,?,?,?,?,?)",e.getDepartmentId(),
e.getDepartmentmark(),e.getSubcompanyId(),e.getSupdepId(),e.getShoworder(),e.getCanceled(),e.getDepartmentCode(),e.getBmfzr()));
map.put("msg2","人力资源部门中间表初始化完成,共"+department.size()+"条数据");
//3.组织变更记录表
List<OrganizationRecordPo> organizationRecordPos = EmploymentRecordBo.buildOrganizationRecordPo(subCompany, department);
organizationRecordPos.forEach(e -> rs.executeUpdate("insert into uf_orgChange(orgStatus,startDate,stopDate,oId,oType,oName,oParentId,oChargeId,changeType,showorder,organizationCode) values(?,?,?,?,?,?,?,?,?,?,?)",e.getOrgStatus(),
e.getStartDate(),e.getStopDate(),e.getOId(),e.getOType(),e.getOName(),e.getOParentId(),e.getOChargeId(),e.getChangeType(),e.getShoworder(),e.getOrganizationCode()));
map.put("msg3","组织变更记录表初始化完成,共"+organizationRecordPos.size()+"条数据");
return map;
}

@ -106,7 +106,7 @@ public class EmploymentUtil {
public static List<SubCompanyPo> getSubCompany() {
List<SubCompanyPo> subCompanyPoList = new ArrayList<>();
RecordSet rs = new RecordSet();
rs.executeQuery("select id,subcompanyname,companyid,supsubcomid,showorder,canceled,subcompanycode from hrmsubcompany");
rs.executeQuery("select id,subcompanyname,companyid,supsubcomid,showorder,canceled,subcompanycode from hrmsubcompany order by showorder asc");
while (rs.next()) {
subCompanyPoList.add(SubCompanyPo.builder()
.subcompanyId(Util.getIntValue(rs.getString("id")))
@ -130,7 +130,7 @@ public class EmploymentUtil {
List<DepartmentPo> departmentPoList = new ArrayList<>();
RecordSet rs = new RecordSet();
rs.executeQuery("select a.id,departmentmark,subcompanyid1,supdepid,showorder,canceled,departmentcode,b.bmfzr from hrmdepartment a\n" +
" left join hrmdepartmentdefined b on a.id = b.deptid");
" left join hrmdepartmentdefined b on a.id = b.deptid order by showorder asc");
while (rs.next()) {
departmentPoList.add(DepartmentPo.builder()
.departmentId(Util.getIntValue(rs.getString("id")))

@ -53,6 +53,8 @@ public class EmployeeRecordReportAction {
return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect);
}
@GET
@Path("/employee/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@ -73,4 +75,20 @@ public class EmployeeRecordReportAction {
response.setContentType("application/octet-stream");
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
}
@GET
@Path("/record/organization")
@Produces(MediaType.TEXT_PLAIN)
public String orgReport(@Context HttpServletRequest request, @Context HttpServletResponse response){
Map<String, Object> data = new HashMap<>(8);
try {
User user = HrmUserVarify.getUser(request, response);
data.put("datas",getService(user).orgReport(ParamUtil.request2Map(request)));
data.put("api_status", true);
} catch (Exception e) {
data.put("api_status", false);
data.put("msg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect);
}
}

Loading…
Cancel
Save