diff --git a/src/com/engine/organization/entity/version/HrmDepartmentVersion.java b/src/com/engine/organization/entity/version/HrmDepartmentVersion.java
new file mode 100644
index 00000000..9435263b
--- /dev/null
+++ b/src/com/engine/organization/entity/version/HrmDepartmentVersion.java
@@ -0,0 +1,24 @@
+package com.engine.organization.entity.version;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class HrmDepartmentVersion {
+
+ int id;
+ int departmentId;
+ String departmentMark;
+ String departmentCode;
+ String departmentName;
+ int subCompanyId1;
+ int supDepId;
+ int bmfzr;
+ int showOrder;
+ int canceled;
+ String description;
+ String operator;
+ Double version;
+ Date operateTime;
+}
diff --git a/src/com/engine/organization/entity/version/HrmResourceVersion.java b/src/com/engine/organization/entity/version/HrmResourceVersion.java
new file mode 100644
index 00000000..618df54c
--- /dev/null
+++ b/src/com/engine/organization/entity/version/HrmResourceVersion.java
@@ -0,0 +1,162 @@
+package com.engine.organization.entity.version;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class HrmResourceVersion {
+
+ private Integer id;
+
+ private Integer resourceid;
+
+ private Date companystartdate;
+
+ private Integer companyworkyear;
+
+ private Date workstartdate;
+
+ private Integer workyear;
+
+ private Integer usekind;
+
+ private Integer jobcall;
+
+ private String accumfundaccount;
+
+ private String birthplace;
+
+ private String folk;
+
+ private String residentphone;
+
+ private String residentpostcode;
+
+ private String extphone;
+
+ private String managerstr;
+
+ private Integer status;
+
+ private String fax;
+
+ private String islabouunion;
+
+ private Integer weight;
+
+ private String tempresidentnumber;
+
+ private Date probationenddate;
+
+ private Integer countryid;
+
+ private Date passwdchgdate;
+
+ private String lloginid;
+
+ private Integer dsporder;
+
+ private Integer passwordstate;
+
+ private Integer accounttype;
+
+ private Integer belongto;
+
+ private String messagerurl;
+
+ private String accountname;
+
+ private String loginid;
+
+ private String password;
+
+ private String lastname;
+
+ private String sex;
+
+ private String birthday;
+
+ private Integer nationality;
+
+ private String maritalstatus;
+
+ private String telephone;
+
+ private String mobile;
+
+ private String mobilecall;
+
+ private String email;
+
+ private Integer locationid;
+
+ private String workroom;
+
+ private String homeaddress;
+
+ private String resourcetype;
+
+ private Date startdate;
+
+ private Date enddate;
+
+ private Integer jobtitle;
+
+ private String jobactivitydesc;
+
+ private Integer joblevel;
+
+ private Integer seclevel;
+
+ private Integer departmentid;
+
+ private Integer subcompanyid1;
+
+ private Integer costcenterid;
+
+ private Integer managerid;
+
+ private Integer assistantid;
+
+ private Integer bankid1;
+
+ private String accountid1;
+
+ private Integer resourceimageid;
+
+ private String certificatenum;
+
+ private String nativeplace;
+
+ private Integer educationlevel;
+
+ private Date bememberdate;
+
+ private Date bepartydate;
+
+ private String workcode;
+
+ private String regresidentplace;
+
+ private String healthinfo;
+
+ private String residentplace;
+
+ private String policy;
+
+ private String degree;
+
+ private String height;
+
+ private String classification;
+
+ private String description;
+
+ private String operator;
+
+ private Double version;
+
+ private Date operateTime;
+
+}
diff --git a/src/com/engine/organization/entity/version/HrmSubCompanyVersion.java b/src/com/engine/organization/entity/version/HrmSubCompanyVersion.java
new file mode 100644
index 00000000..5fcd7fa4
--- /dev/null
+++ b/src/com/engine/organization/entity/version/HrmSubCompanyVersion.java
@@ -0,0 +1,22 @@
+package com.engine.organization.entity.version;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class HrmSubCompanyVersion {
+
+ Integer id;
+ Integer subComId;
+ String subCompanyDesc;
+ String subCompanyCode;
+ String subCompanyName;
+ Integer supsSubComId;
+ Integer showOrder;
+ Integer canceled;
+ String description;
+ String operator;
+ Double version;
+ Date operateTime;
+}
diff --git a/src/com/engine/organization/mapper/version/CompanyVersionMapper.java b/src/com/engine/organization/mapper/version/CompanyVersionMapper.java
index a962522d..02c8cbaa 100644
--- a/src/com/engine/organization/mapper/version/CompanyVersionMapper.java
+++ b/src/com/engine/organization/mapper/version/CompanyVersionMapper.java
@@ -1,5 +1,10 @@
package com.engine.organization.mapper.version;
+import com.engine.organization.entity.version.HrmDepartmentVersion;
+import com.engine.organization.entity.version.HrmResourceVersion;
+import com.engine.organization.entity.version.HrmSubCompanyVersion;
+import org.apache.ibatis.annotations.Param;
+
/**
* @Author weaver_cl
* @Description:
@@ -7,4 +12,37 @@ package com.engine.organization.mapper.version;
* @Version V1.0
**/
public interface CompanyVersionMapper {
+
+ /**
+ * 取分部版本最大记录
+ */
+ HrmSubCompanyVersion getMaxVersion(@Param("subComId") String subComId);
+
+ /**
+ * 新增分部版本
+ */
+ int insertHrmSubComVersion(HrmSubCompanyVersion hrmSubCompanyVersion);
+
+
+ /**
+ * 取部门版本最大记录
+ */
+ HrmDepartmentVersion getMaxDeptVersion(@Param("departmentid") String departmentid);
+
+
+ /**
+ * 新增部门版本
+ */
+ int insertHrmDeptVersion(HrmDepartmentVersion hrmDepartmentVersion);
+
+
+ /**
+ * 人员版本最大记录
+ */
+ HrmResourceVersion getMaxHrmVersion(@Param("getMaxHrmVersion") String getMaxHrmVersion);
+
+ /**
+ * 新增人员版本
+ */
+ int insertHrmResourceVersion(HrmResourceVersion hrmResourceVersion);
}
diff --git a/src/com/engine/organization/mapper/version/CompanyVersionMapper.xml b/src/com/engine/organization/mapper/version/CompanyVersionMapper.xml
new file mode 100644
index 00000000..e4c5ee19
--- /dev/null
+++ b/src/com/engine/organization/mapper/version/CompanyVersionMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ t.id ,t.subcomid ,t.subcompanydesc ,t.subcompanycode ,t.subcompanyname ,t.supsubcomid ,
+ t.showorder ,t.canceled ,t.description ,t.operator ,t.version ,t.operate_time
+
+
+
+
+
+ insert into hrmsubcompany_version
+ (subcomid ,subcompanydesc ,subcompanycode ,subcompanyname ,supsubcomid ,
+ showorder ,canceled ,description ,operator ,version ,operate_time)
+ values (#{subComId}, #{subCompanyDesc}, #{subCompanyCode}, #{subCompanyName}, #{supsSubComId},
+ #{showOrder}, #{canceled}, #{description}, #{operator}, #{version}, #{operateTime})
+
+
+
+
+
+ insert into hrmdepartment_version
+ (departmentid, departmentmark, departmentcode, departmentname, subcompanyid1, supdepid,
+ bmfzr, showorder, canceled, description, operator, version, operate_time)
+ VALUES (#{departmentId}, #{departmentMark}, #{departmentCode}, #{departmentName}, #{subCompanyId1}, #{supDepId},
+ #{bmfzr}, #{showOrder}, #{canceled}, #{description}, #{operator}, #{version}, #{operateTime})
+
+
+
+
+
+ insert into hrmresource_version
+ (resourceid, companystartdate, companyworkyear, workstartdate, workyear, usekind, jobcall,
+ accumfundaccount, birthplace, folk, residentphone, residentpostcode, extphone, managerstr,
+ status, fax, islabouunion, weight, tempresidentnumber, probationenddate, countryid, passwdchgdate,
+ lloginid, dsporder, passwordstate, accounttype, belongto, messagerurl, accountname,
+ loginid, password, lastname, sex, birthday, nationality, maritalstatus, telephone, mobile,
+ mobilecall, email, locationid, workroom, homeaddress, resourcetype, startdate, enddate, jobtitle,
+ jobactivitydesc, joblevel, seclevel, departmentid, subcompanyid1, costcenterid, managerid, assistantid,
+ bankid1, accountid1, resourceimageid, certificatenum, nativeplace, educationlevel, bememberdate,
+ bepartydate, workcode, regresidentplace, healthinfo, residentplace, policy, degree, height,
+ classification, description, operator, version, operate_time)
+ values (#{resourceid}, #{companystartdate}, #{companyworkyear}, #{workstartdate}, #{workyear}, #{usekind}, #{jobcall},
+ #{accumfundaccount}, #{birthplace}, #{folk}, #{residentphone}, #{residentpostcode}, #{extphone}, #{managerstr},
+ #{status}, #{fax}, #{islabouunion}, #{weight}, #{tempresidentnumber}, #{probationenddate}, #{countryid}, #{passwdchgdate},
+ #{lloginid}, #{dsporder}, #{passwordstate}, #{accounttype}, #{belongto}, #{messagerurl}, #{accountname},
+ #{loginid}, #{password}, #{lastname}, #{sex}, #{birthday}, #{nationality}, #{maritalstatus}, #{telephone}, #{mobile},
+ #{mobilecall}, #{email}, #{locationid}, #{workroom}, #{homeaddress}, #{resourcetype}, #{startdate}, #{enddate}, #{jobtitle},
+ #{jobactivitydesc}, #{joblevel}, #{seclevel}, #{departmentid}, #{subcompanyid1}, #{costcenterid}, #{managerid}, #{assistantid},
+ #{bankid1}, #{accountid1}, #{resourceimageid}, #{certificatenum}, #{nativeplace}, #{educationlevel}, #{bememberdate},
+ #{bepartydate}, #{workcode}, #{regresidentplace}, #{healthinfo}, #{residentplace}, #{policy}, #{degree}, #{height},
+ #{classification}, #{description}, #{operator}, #{version}, #{operateTime})
+
+
+
\ No newline at end of file
diff --git a/src/com/engine/organization/service/VersionManageService.java b/src/com/engine/organization/service/VersionManageService.java
index 25b9037d..f3cb162a 100644
--- a/src/com/engine/organization/service/VersionManageService.java
+++ b/src/com/engine/organization/service/VersionManageService.java
@@ -1,6 +1,7 @@
package com.engine.organization.service;
import com.engine.organization.enums.ModuleTypeEnum;
+import weaver.hrm.User;
import java.util.Map;
@@ -17,5 +18,5 @@ public interface VersionManageService {
* @param moduleTypeEnum
* @param params
*/
- void save(ModuleTypeEnum moduleTypeEnum, Map params);
+ void save(ModuleTypeEnum moduleTypeEnum, Map params, User user);
}
diff --git a/src/com/engine/organization/service/impl/VersionManageServiceImpl.java b/src/com/engine/organization/service/impl/VersionManageServiceImpl.java
index 35022362..dec3dbd0 100644
--- a/src/com/engine/organization/service/impl/VersionManageServiceImpl.java
+++ b/src/com/engine/organization/service/impl/VersionManageServiceImpl.java
@@ -1,11 +1,26 @@
package com.engine.organization.service.impl;
import com.engine.core.impl.Service;
+import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
+import com.engine.organization.entity.map.JclOrgMap;
+import com.engine.organization.entity.version.HrmDepartmentVersion;
+import com.engine.organization.entity.version.HrmResourceVersion;
+import com.engine.organization.entity.version.HrmSubCompanyVersion;
import com.engine.organization.enums.ModuleTypeEnum;
+import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
+import com.engine.organization.mapper.resource.ResourceMapper;
+import com.engine.organization.mapper.trigger.CompTriggerMapper;
import com.engine.organization.mapper.version.CompanyVersionMapper;
import com.engine.organization.service.VersionManageService;
+import com.engine.organization.util.OrganizationDateUtil;
import com.engine.organization.util.db.MapperProxyFactory;
+import org.apache.commons.lang3.StringUtils;
+import weaver.common.DateUtil;
+import weaver.general.Util;
+import weaver.hrm.User;
+import java.sql.Date;
+import java.util.Calendar;
import java.util.Map;
/**
@@ -20,14 +35,200 @@ public class VersionManageServiceImpl extends Service implements VersionManageSe
return MapperProxyFactory.getProxy(CompanyVersionMapper.class);
}
+ private JclOrgMapper getJclOrgMapMapper(){
+ return MapperProxyFactory.getProxy(JclOrgMapper.class);
+ }
+
@Override
- public void save(ModuleTypeEnum moduleTypeEnum, Map params) {
+ public void save(ModuleTypeEnum moduleTypeEnum, Map params, User user) {
+
+ switch (moduleTypeEnum.getValue()){
+ case 1:
+ saveSubComToMap(params);
+ saveSubComToVersion(params,user);
+ break;
+ case 2:
+ saveComToVersion(params, user);
+ saveDeptToMap(params);
+ break;
+ case 4:
+ break;
+ default:
+ break;
+ }
+
+ }
+
+ /**
+ * 分部保存至map表
+ */
+ void saveSubComToMap(Map params) {
+ String id = (String) params.get("id");
+ String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
+
+ JclOrgMap jclOrgMap = new JclOrgMap();
+ jclOrgMap.setId(Integer.parseInt((String) params.get("id")));
+ jclOrgMap.setFType(1);
+ jclOrgMap.setFObjId(Integer.parseInt((String) params.get("id")));
+ jclOrgMap.setFClass(0);
+ jclOrgMap.setFClassName("行政维度");
+ jclOrgMap.setFName((String) params.get("subCompanyName"));
+ jclOrgMap.setFParentId(Integer.parseInt((String) params.get("supSubComId")));
+ jclOrgMap.setFIsVitual(0);
+ jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
+ jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2022-12-31").getTime()));
- //1.参数处理
+ 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);
+ }
- //2.枚举处理不同mapper
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(jclOrgMap.getFDateBegin());
+ Calendar calendar = DateUtil.addDay(cal, -1);
+ Date time = new Date(calendar.getTime().getTime());
- //3.保存逻辑
- //版本表 操作者,操作时间,版本V1.0 + 0.1 (默认字段)
+ getJclOrgMapMapper().deleteMap("1", id, jclOrgMap.getFDateBegin());
+ getJclOrgMapMapper().updateMap("1", id, jclOrgMap.getFDateBegin(), time);
+
+ getJclOrgMapMapper().insertMap(jclOrgMap);
}
+
+ /**
+ * 部门保存到map表
+ */
+ void saveDeptToMap(Map params) {
+ String id = (String) params.get("id");
+ int st = 100000000;
+ int sj = 200000000;
+ int sk = 300000000;
+ 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("行政维度");
+ String bmfzr = (String) params.get("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()));
+ }
+ jclOrgMap.setFName((String) params.get("departmentName"));
+ jclOrgMap.setFParentId(Integer.parseInt((String) params.get("subCompanyId1")));
+ jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
+ jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2022-12-31").getTime()));
+ jclOrgMap.setFIsVitual(0);
+
+ JclOrgMap jclOrgMapByFParentId = getJclOrgMapMapper().getSumPlanAndJobByFParentId(jclOrgMap.getFDateBegin(), String.valueOf(jclOrgMap.getId()));
+ if (null != jclOrgMapByFParentId) {
+ 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("2", id, jclOrgMap.getFDateBegin());
+ getJclOrgMapMapper().updateMap("2", id, jclOrgMap.getFDateBegin(), time);
+
+ getJclOrgMapMapper().insertMap(jclOrgMap);
+ }
+
+ /**
+ * 分部保存至版本表
+ */
+ void saveSubComToVersion(Map params,User user) {
+ String id = (String) params.get("id");
+ String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
+
+ HrmSubCompanyVersion hrmSubCompanyVersion = new HrmSubCompanyVersion();
+ hrmSubCompanyVersion.setSubComId(Integer.parseInt(id));
+ hrmSubCompanyVersion.setSubCompanyDesc((String) params.get("subCompanyDesc"));
+ hrmSubCompanyVersion.setSubCompanyCode((String) params.get("subCompanyCode"));
+ hrmSubCompanyVersion.setSubCompanyName((String) params.get("subCompanyName"));
+ hrmSubCompanyVersion.setSupsSubComId(Integer.parseInt((String) params.get("supSubComId")));
+ String showOrder = (String) params.get("showOrder");
+ hrmSubCompanyVersion.setShowOrder(null==showOrder ? null : Integer.parseInt(showOrder));
+
+ hrmSubCompanyVersion.setCanceled(Integer.parseInt((String) params.get("canceled")));
+ hrmSubCompanyVersion.setDescription((String) params.get("description"));
+ hrmSubCompanyVersion.setOperator(user.getUsername());
+ hrmSubCompanyVersion.setVersion(genVersionId(1,id));
+ hrmSubCompanyVersion.setOperateTime(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
+
+ getCompanyVersionMapper().insertHrmSubComVersion(hrmSubCompanyVersion);
+ }
+
+ /**
+ * 部门保存至版本
+ */
+ void saveComToVersion(Map params,User user) {
+ String id = (String) params.get("id");
+ String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
+
+ HrmDepartmentVersion hrmDepartmentVersion = new HrmDepartmentVersion();
+ hrmDepartmentVersion.setDepartmentId(Integer.parseInt(id));
+ hrmDepartmentVersion.setDepartmentMark((String) params.get("departmentMark"));
+ hrmDepartmentVersion.setDepartmentCode((String) params.get("departmentCode"));
+ hrmDepartmentVersion.setDepartmentName((String) params.get("departmentName"));
+ hrmDepartmentVersion.setSubCompanyId1(Integer.parseInt((String) params.get("subCompanyId1")));
+ hrmDepartmentVersion.setSupDepId(Integer.parseInt((String) params.get("supDepId")));
+ String bmfzr = (String) params.get("bmfzr");
+ if (!"".equals(bmfzr)){
+ hrmDepartmentVersion.setBmfzr(Integer.parseInt(bmfzr));
+ }
+ String showOrder = (String) params.get("showOrder");
+ hrmDepartmentVersion.setShowOrder(null==showOrder ? null : Integer.parseInt(showOrder));
+ hrmDepartmentVersion.setCanceled(Integer.parseInt((String) params.get("canceled")));
+ hrmDepartmentVersion.setDescription((String) params.get("description"));
+ hrmDepartmentVersion.setOperator(user.getLastname());
+ hrmDepartmentVersion.setVersion(genVersionId(2,id));
+ hrmDepartmentVersion.setOperateTime(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
+
+ getCompanyVersionMapper().insertHrmDeptVersion(hrmDepartmentVersion);
+ }
+
+ /**
+ * 版本号生成
+ */
+ private Double genVersionId(int fType,String sid) {
+ // 版本V1.0 + 0.1 (默认字段)
+ double id = 1.0;
+ 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;
+ }
+ return id;
+ }
+
}
diff --git a/src/com/engine/organization/wrapper/VersionManageWrapper.java b/src/com/engine/organization/wrapper/VersionManageWrapper.java
index 482d45cd..c8187866 100644
--- a/src/com/engine/organization/wrapper/VersionManageWrapper.java
+++ b/src/com/engine/organization/wrapper/VersionManageWrapper.java
@@ -23,6 +23,6 @@ public class VersionManageWrapper extends OrganizationWrapper {
}
public void save(ModuleTypeEnum moduleTypeEnum, Map params) {
- getVersionManageService(user).save(moduleTypeEnum,params);
+ getVersionManageService(user).save(moduleTypeEnum,params,user);
}
}