weaver-hrm-organization/src/com/engine/organization/service/impl/VersionManageServiceImpl.java

376 lines
17 KiB
Java
Raw Normal View History

2022-12-08 09:56:25 +08:00
package com.engine.organization.service.impl;
2022-12-15 09:59:57 +08:00
import com.alibaba.fastjson.JSONObject;
import com.engine.common.entity.HrmSubCompanyEntity;
2022-12-08 09:56:25 +08:00
import com.engine.core.impl.Service;
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
2022-12-09 08:50:23 +08:00
import com.engine.organization.entity.map.JclOrgMap;
2022-12-09 16:04:35 +08:00
import com.engine.organization.entity.version.HrmDepartmentVersion;
import com.engine.organization.entity.version.HrmResourceVersion;
2022-12-09 08:50:23 +08:00
import com.engine.organization.entity.version.HrmSubCompanyVersion;
2022-12-08 09:56:25 +08:00
import com.engine.organization.enums.ModuleTypeEnum;
2022-12-09 08:50:23 +08:00
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
import com.engine.organization.mapper.resource.ResourceMapper;
2022-12-08 09:56:25 +08:00
import com.engine.organization.mapper.version.CompanyVersionMapper;
import com.engine.organization.service.VersionManageService;
2022-12-09 08:50:23 +08:00
import com.engine.organization.util.OrganizationDateUtil;
2022-12-08 09:56:25 +08:00
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.lang3.StringUtils;
2022-12-09 08:50:23 +08:00
import weaver.common.DateUtil;
2022-12-12 17:55:50 +08:00
import weaver.conn.RecordSet;
2022-12-09 16:04:35 +08:00
import weaver.general.Util;
2022-12-09 08:50:23 +08:00
import weaver.hrm.User;
2022-12-08 09:56:25 +08:00
2022-12-09 08:50:23 +08:00
import java.sql.Date;
2022-12-12 17:55:50 +08:00
import java.sql.Timestamp;
2022-12-15 14:38:48 +08:00
import java.util.*;
2022-12-08 09:56:25 +08:00
/**
* @Author weaver_cl
* @Description:
* @Date 2022/12/8
* @Version V1.0
**/
public class VersionManageServiceImpl extends Service implements VersionManageService {
private CompanyVersionMapper getCompanyVersionMapper(){
return MapperProxyFactory.getProxy(CompanyVersionMapper.class);
}
2022-12-09 08:50:23 +08:00
private JclOrgMapper getJclOrgMapMapper(){
return MapperProxyFactory.getProxy(JclOrgMapper.class);
}
2022-12-08 09:56:25 +08:00
@Override
2022-12-09 08:50:23 +08:00
public void save(ModuleTypeEnum moduleTypeEnum, Map<String, Object> params, User user) {
2022-12-15 09:59:57 +08:00
String id = (String) params.get("id");
JSONObject paramMap = null;
2022-12-15 14:38:48 +08:00
2022-12-09 08:50:23 +08:00
switch (moduleTypeEnum.getValue()){
case 1:
2022-12-15 09:59:57 +08:00
paramMap = getCompanyVersionMapper().getHrmSubComp(id);
saveSubComToVersion(paramMap,user);
saveSubComToMap(paramMap);
2022-12-09 08:50:23 +08:00
break;
case 2:
2022-12-15 09:59:57 +08:00
paramMap = getCompanyVersionMapper().getHrmDepartment(id);
saveDeptToVersion(paramMap, user);
saveDeptToMap(paramMap);
2022-12-09 08:50:23 +08:00
break;
case 4:
2022-12-15 09:59:57 +08:00
paramMap = getCompanyVersionMapper().getHrmResource(id);
saveHrmToVersion(paramMap, user);
saveHrmToMap(paramMap);
2022-12-09 08:50:23 +08:00
break;
default:
break;
}
}
2022-12-13 14:58:22 +08:00
@Override
2022-12-15 14:38:48 +08:00
public Map<String, Object> getVersion(ModuleTypeEnum moduleTypeEnum, Map<String, Object> params, User user) {
String operateName = user.getUsername();
String id = (String) params.get("id");
String supComId = (String) params.get("subComId");
String operateTime = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
Map<String,Object> resultMap = new HashMap<>();
2022-12-15 09:59:57 +08:00
switch (moduleTypeEnum.getValue()){
case 1:
2022-12-15 14:38:48 +08:00
List<HrmSubCompanyVersion> list = getCompanyVersionMapper().getSubComVersionList(operateName,operateTime,supComId,null);
List versions = new ArrayList<>();
Map<String,String> map = new HashMap<>();
for (HrmSubCompanyVersion hrmSubCompanyVersion:list){
map.put("value", String.valueOf(hrmSubCompanyVersion.getVersion()));
versions.add(map);
}
List<HrmSubCompanyVersion> list2 = getCompanyVersionMapper().getSubComVersionList(operateName,operateTime,supComId,id);
// List datas = new ArrayList<>();
// Map<String,String> map2 = new HashMap<>();
// for (HrmSubCompanyVersion hrmSubCompanyVersion:list){
// map2.put("fieldId", String.valueOf(hrmSubCompanyVersion.getVersion()));
// map2.put("fieldValue", String.valueOf(hrmSubCompanyVersion.getVersion()));
// versions.add(map);
// }
resultMap.put("operateName",operateName);
resultMap.put("operateTime",operateTime);
resultMap.put("versions",versions);
resultMap.put("datas",list2);
2022-12-15 09:59:57 +08:00
break;
case 2:
break;
case 4:
break;
default:
break;
}
2022-12-15 14:38:48 +08:00
return resultMap;
2022-12-13 14:58:22 +08:00
}
2022-12-09 08:50:23 +08:00
/**
* 分部保存至map表
*/
2022-12-15 09:59:57 +08:00
void saveSubComToMap(JSONObject params) {
2022-12-09 08:50:23 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
2022-12-15 09:59:57 +08:00
String id = params.getString("id");
2022-12-09 08:50:23 +08:00
JclOrgMap jclOrgMap = new JclOrgMap();
2022-12-15 09:59:57 +08:00
jclOrgMap.setId(Integer.parseInt(id));
2022-12-09 08:50:23 +08:00
jclOrgMap.setFType(1);
2022-12-15 09:59:57 +08:00
jclOrgMap.setFObjId(Integer.parseInt(id));
2022-12-09 08:50:23 +08:00
jclOrgMap.setFClass(0);
jclOrgMap.setFClassName("行政维度");
2022-12-15 09:59:57 +08:00
jclOrgMap.setFName(params.getString("subcompanyname"));
String supSubComId = params.getString("supsubcomid");
jclOrgMap.setFParentId(StringUtils.isNotBlank(supSubComId)?Integer.parseInt(supSubComId):null);
2022-12-09 16:04:35 +08:00
jclOrgMap.setFIsVitual(0);
jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2022-12-31").getTime()));
JclOrgMap jclOrgMapByFParentId = getJclOrgMapMapper().getSumPlanAndJobByFParentId(jclOrgMap.getFDateBegin(), String.valueOf(jclOrgMap.getId()));
if(jclOrgMapByFParentId !=null){
jclOrgMap.setFPlan(jclOrgMapByFParentId.getFPlan());
jclOrgMap.setFOnJob(jclOrgMapByFParentId.getFOnJob());
}else{
jclOrgMap.setFPlan(0);
jclOrgMap.setFOnJob(0);
}
Calendar cal = Calendar.getInstance();
cal.setTime(jclOrgMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getJclOrgMapMapper().deleteMap("1", id, jclOrgMap.getFDateBegin());
getJclOrgMapMapper().updateMap("1", id, jclOrgMap.getFDateBegin(), time);
getJclOrgMapMapper().insertMap(jclOrgMap);
}
/**
* 部门保存到map表
*/
2022-12-15 09:59:57 +08:00
void saveDeptToMap(JSONObject params) {
String id = params.getString("id");
2022-12-09 16:04:35 +08:00
int st = 100000000;
2022-12-12 17:55:50 +08:00
2022-12-09 16:04:35 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
JclOrgMap jclOrgMap = new JclOrgMap();
jclOrgMap.setId(st + Integer.parseInt(id));
jclOrgMap.setFType(2);
jclOrgMap.setFObjId(Integer.parseInt(id));
jclOrgMap.setFClass(0);
jclOrgMap.setFClassName("行政维度");
2022-12-15 09:59:57 +08:00
String bmfzr = params.getString("bmfzr");
if (StringUtils.isNotBlank(bmfzr)) {
jclOrgMap.setFLeader(Integer.parseInt(bmfzr));
HrmResourcePO hrmResourcePO = MapperProxyFactory.getProxy(ResourceMapper.class).getResourceById(bmfzr);
jclOrgMap.setFLeaderImg(hrmResourcePO.getResourceImageId());
jclOrgMap.setFLeaderName(hrmResourcePO.getLastName());
jclOrgMap.setFLeaderJobId(Math.toIntExact(hrmResourcePO.getJobTitle()));
}
2022-12-15 09:59:57 +08:00
jclOrgMap.setFName(params.getString("departmentname"));
String subCompanyId1 = params.getString("subcompanyid1");
String supdepid = params.getString("supdepid");
if (supdepid!=null){
jclOrgMap.setFParentId(st + Integer.parseInt(supdepid));
}
if ("0".equals(supdepid)){
jclOrgMap.setFParentId(Integer.parseInt(subCompanyId1));
}
2022-12-09 08:50:23 +08:00
jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2022-12-31").getTime()));
jclOrgMap.setFIsVitual(0);
2022-12-09 08:50:23 +08:00
2022-12-09 16:04:35 +08:00
JclOrgMap jclOrgMapByFParentId = getJclOrgMapMapper().getSumPlanAndJobByFParentId(jclOrgMap.getFDateBegin(), String.valueOf(jclOrgMap.getId()));
if (null != jclOrgMapByFParentId) {
2022-12-09 16:04:35 +08:00
jclOrgMap.setFPlan(jclOrgMapByFParentId.getFPlan());
jclOrgMap.setFOnJob(jclOrgMapByFParentId.getFOnJob());
} else {
2022-12-09 16:04:35 +08:00
jclOrgMap.setFPlan(0);
jclOrgMap.setFOnJob(0);
}
2022-12-09 08:50:23 +08:00
Calendar cal = Calendar.getInstance();
cal.setTime(jclOrgMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
2022-12-08 09:56:25 +08:00
2022-12-09 16:04:35 +08:00
getJclOrgMapMapper().deleteMap("2", id, jclOrgMap.getFDateBegin());
getJclOrgMapMapper().updateMap("2", id, jclOrgMap.getFDateBegin(), time);
2022-12-09 08:50:23 +08:00
getJclOrgMapMapper().insertMap(jclOrgMap);
2022-12-08 09:56:25 +08:00
}
2022-12-09 08:50:23 +08:00
2022-12-12 17:55:50 +08:00
/**
* 人员保存至map
*/
2022-12-15 09:59:57 +08:00
void saveHrmToMap(JSONObject params){
String id = params.getString("id");
2022-12-12 17:55:50 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
int sk = 300000000;
RecordSet rs = new RecordSet();
JclOrgMap jclOrgMap = new JclOrgMap();
jclOrgMap.setId(sk + Integer.parseInt(id));
jclOrgMap.setFType(4);
jclOrgMap.setFObjId(Integer.parseInt(id));
jclOrgMap.setFClass(0);
jclOrgMap.setFClassName("行政维度");
2022-12-15 09:59:57 +08:00
jclOrgMap.setFName(params.getString("lastname"));
2022-12-12 17:55:50 +08:00
if (StringUtils.isNotBlank(id)) {
rs.executeQuery("select messagerurl, lastname, jobtitle from hrmresource where id="+id+";");
if (rs.next()){
jclOrgMap.setFLeaderImg(Util.null2String(rs.getString("messagerurl")));
jclOrgMap.setFLeaderName(Util.null2String(rs.getString("lastname")));
jclOrgMap.setFLeaderJobId(Integer.valueOf(rs.getString("jobtitle")));
}
}
2022-12-15 09:59:57 +08:00
String jobtitle = params.getString("jobtitle");
jclOrgMap.setFParentId(StringUtils.isNotBlank(jobtitle)?sk+Integer.parseInt(jobtitle):null);
jclOrgMap.setFPlan(0);
jclOrgMap.setFOnJob(0);
2022-12-12 17:55:50 +08:00
jclOrgMap.setFIsVitual(0);
jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2022-12-31").getTime()));
Calendar cal = Calendar.getInstance();
cal.setTime(jclOrgMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
getJclOrgMapMapper().deleteMap("4", id, jclOrgMap.getFDateBegin());
getJclOrgMapMapper().updateMap("4", id, jclOrgMap.getFDateBegin(), time);
getJclOrgMapMapper().insertMap(jclOrgMap);
}
2022-12-09 08:50:23 +08:00
/**
* 分部保存至版本表
*/
2022-12-15 09:59:57 +08:00
void saveSubComToVersion(JSONObject params,User user) {
2022-12-12 17:55:50 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDateTime(new java.util.Date());
2022-12-15 09:59:57 +08:00
String id = params.getString("id");
2022-12-09 08:50:23 +08:00
HrmSubCompanyVersion hrmSubCompanyVersion = new HrmSubCompanyVersion();
hrmSubCompanyVersion.setSubComId(Integer.parseInt(id));
2022-12-15 09:59:57 +08:00
hrmSubCompanyVersion.setSubCompanyDesc(params.getString("subcompanydesc"));
hrmSubCompanyVersion.setSubCompanyCode(params.getString("subcompanycode"));
hrmSubCompanyVersion.setSubCompanyName(params.getString("subcompanyname"));
String supSubComId = params.getString("supsubcomid");
2022-12-15 14:38:48 +08:00
hrmSubCompanyVersion.setSupSubComId(StringUtils.isNotBlank(supSubComId) ? Integer.parseInt(supSubComId) : null);
2022-12-15 09:59:57 +08:00
String showOrder = params.getString("showorder");
2022-12-15 14:38:48 +08:00
if (showOrder != null) {
showOrder = showOrder.substring(0, showOrder.indexOf("."));
}
2022-12-15 09:59:57 +08:00
hrmSubCompanyVersion.setShowOrder(null == showOrder ? null : Integer.parseInt(showOrder));
2022-12-15 14:38:48 +08:00
String canceled = params.getString("canceled");
;
2022-12-15 09:59:57 +08:00
hrmSubCompanyVersion.setCanceled(StringUtils.isNotBlank(canceled) ? Integer.parseInt(canceled) : null);
hrmSubCompanyVersion.setDescription(null);
2022-12-09 08:50:23 +08:00
hrmSubCompanyVersion.setOperator(user.getUsername());
2022-12-15 09:59:57 +08:00
hrmSubCompanyVersion.setVersion(genVersionId(1, id));
2022-12-12 17:55:50 +08:00
hrmSubCompanyVersion.setOperateTime(new Timestamp(OrganizationDateUtil.stringToDateTime(currentDate).getTime()));
2022-12-09 08:50:23 +08:00
getCompanyVersionMapper().insertHrmSubComVersion(hrmSubCompanyVersion);
}
2022-12-09 16:04:35 +08:00
/**
* 部门保存至版本
*/
2022-12-15 09:59:57 +08:00
void saveDeptToVersion(JSONObject params,User user) {
String id = params.getString("id");
2022-12-12 17:55:50 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDateTime(new java.util.Date());
2022-12-09 16:04:35 +08:00
HrmDepartmentVersion hrmDepartmentVersion = new HrmDepartmentVersion();
hrmDepartmentVersion.setDepartmentId(Integer.parseInt(id));
2022-12-15 09:59:57 +08:00
hrmDepartmentVersion.setDepartmentMark(params.getString("departmentmark"));
hrmDepartmentVersion.setDepartmentCode(params.getString("departmentcode"));
hrmDepartmentVersion.setDepartmentName(params.getString("departmentname"));
String subCompanyId1 = params.getString("subcompanyid1");
hrmDepartmentVersion.setSubCompanyId1(StringUtils.isNotBlank(subCompanyId1) ? Integer.parseInt(subCompanyId1) : null);
2022-12-15 14:38:48 +08:00
String supDepId = params.getString("supdepid");
2022-12-15 09:59:57 +08:00
if (supDepId != null) {
hrmDepartmentVersion.setSupDepId(Integer.parseInt(supDepId));
}
2022-12-15 09:59:57 +08:00
String bmfzr = params.getString("bmfzr");
if (!"".equals(bmfzr) && bmfzr != null) {
hrmDepartmentVersion.setBmfzr(Integer.parseInt(bmfzr));
}
2022-12-15 14:38:48 +08:00
String showOrder = params.getString("showorder");
if (showOrder != null) {
showOrder = showOrder.substring(0, showOrder.indexOf("."));
}
2022-12-15 09:59:57 +08:00
hrmDepartmentVersion.setShowOrder(null == showOrder ? null : Integer.parseInt(showOrder));
String canceled = params.getString("canceled");
hrmDepartmentVersion.setCanceled(StringUtils.isNotBlank(canceled) ? Integer.parseInt(canceled) : null);
hrmDepartmentVersion.setDescription(null);
2022-12-09 16:04:35 +08:00
hrmDepartmentVersion.setOperator(user.getLastname());
2022-12-15 09:59:57 +08:00
hrmDepartmentVersion.setVersion(genVersionId(2, id));
2022-12-12 17:55:50 +08:00
hrmDepartmentVersion.setOperateTime(new Timestamp(OrganizationDateUtil.stringToDateTime(currentDate).getTime()));
getCompanyVersionMapper().insertHrmDeptVersion(hrmDepartmentVersion);
2022-12-09 16:04:35 +08:00
}
2022-12-12 17:55:50 +08:00
/**
* 人员保存至版本
*/
2022-12-15 09:59:57 +08:00
void saveHrmToVersion(JSONObject params,User user){
String id = params.getString("id");
2022-12-12 17:55:50 +08:00
String currentDate = OrganizationDateUtil.getFormatLocalDateTime(new java.util.Date());
HrmResourceVersion hrmResourceVersion = new HrmResourceVersion();
hrmResourceVersion.setResourceid(Integer.parseInt(id));
/* hrmResourceVersion.setCompanystartdate(new Date(OrganizationDateUtil.stringToDate((String) params.get("companystartdate")).getTime()));
hrmResourceVersion.setCompanyworkyear(Integer.parseInt((String) params.get("companyworkyear")));
hrmResourceVersion.setWorkstartdate(new Date(OrganizationDateUtil.stringToDate((String) params.get("workstartdate")).getTime()));*/
2022-12-15 09:59:57 +08:00
hrmResourceVersion.setDepartmentid(Integer.parseInt( params.getString("departmentid")));
hrmResourceVersion.setDsporder(Double.valueOf(params.getString("dsporder")).intValue());
hrmResourceVersion.setSubcompanyid1(Integer.parseInt(params.getString("subcompanyid1")));
hrmResourceVersion.setJobtitle(Integer.parseInt(params.getString("jobtitle")));
hrmResourceVersion.setMobile( params.getString("mobile"));
hrmResourceVersion.setTelephone(params.getString("telephone"));
String managerid = params.getString("managerid");
hrmResourceVersion.setManagerid(StringUtils.isNotBlank(managerid) ? Integer.parseInt(managerid):null);
2022-12-15 09:59:57 +08:00
hrmResourceVersion.setLastname(params.getString("lastname"));
2022-12-12 17:55:50 +08:00
hrmResourceVersion.setOperator(user.getLastname());
hrmResourceVersion.setVersion(genVersionId(4,id));
hrmResourceVersion.setOperateTime(new Timestamp(OrganizationDateUtil.stringToDateTime(currentDate).getTime()));
getCompanyVersionMapper().insertHrmResourceVersion(hrmResourceVersion);
}
2022-12-09 08:50:23 +08:00
/**
* 版本号生成
*/
2022-12-09 16:04:35 +08:00
private Double genVersionId(int fType,String sid) {
2022-12-09 08:50:23 +08:00
// 版本V1.0 + 0.1 (默认字段)
double id = 1.0;
2022-12-09 16:04:35 +08:00
switch (fType) {
case 1:
HrmSubCompanyVersion hrmSubCompanyVersion = getCompanyVersionMapper().getMaxVersion(sid);
if (null != hrmSubCompanyVersion) {
id = 0.1 + hrmSubCompanyVersion.getVersion();
}
break;
case 2:
HrmDepartmentVersion hrmDepartmentVersion = getCompanyVersionMapper().getMaxDeptVersion(sid);
if (null != hrmDepartmentVersion) {
id = 0.1 + hrmDepartmentVersion.getVersion();
}
break;
case 3:
HrmResourceVersion hrmResourceVersion = getCompanyVersionMapper().getMaxHrmVersion(sid);
if (null != hrmResourceVersion) {
id = 0.1 + hrmResourceVersion.getVersion();
}
break;
2022-12-09 08:50:23 +08:00
}
2022-12-09 16:04:35 +08:00
return id;
2022-12-09 08:50:23 +08:00
}
2022-12-08 09:56:25 +08:00
}