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..4a7e7181
--- /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;
+ String 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..198e9282 100644
--- a/src/com/engine/organization/mapper/version/CompanyVersionMapper.java
+++ b/src/com/engine/organization/mapper/version/CompanyVersionMapper.java
@@ -1,5 +1,8 @@
package com.engine.organization.mapper.version;
+import com.engine.organization.entity.version.HrmSubCompanyVersion;
+import org.apache.ibatis.annotations.Param;
+
/**
* @Author weaver_cl
* @Description:
@@ -7,4 +10,14 @@ package com.engine.organization.mapper.version;
* @Version V1.0
**/
public interface CompanyVersionMapper {
+
+ /**
+ * 取分部版本最大记录
+ */
+ HrmSubCompanyVersion getMaxVersion(@Param("sid") String sid);
+
+ /**
+ * 新增分部版本
+ */
+ int insertHrmSubComVersion(HrmSubCompanyVersion hrmSubCompanyVersion);
}
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..6a456a29
--- /dev/null
+++ b/src/com/engine/organization/mapper/version/CompanyVersionMapper.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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})
+
+
+
+
+
\ 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..029c1fb6 100644
--- a/src/com/engine/organization/service/impl/VersionManageServiceImpl.java
+++ b/src/com/engine/organization/service/impl/VersionManageServiceImpl.java
@@ -1,11 +1,20 @@
package com.engine.organization.service.impl;
import com.engine.core.impl.Service;
+import com.engine.organization.entity.map.JclOrgMap;
+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.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 weaver.common.DateUtil;
+import weaver.hrm.User;
+import java.sql.Date;
+import java.util.Calendar;
import java.util.Map;
/**
@@ -20,14 +29,97 @@ 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:
+ 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("departmentName"));
+ 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()));
+
+ JclOrgMap jclOrgMapByFParentId = getJclOrgMapMapper().getJclOrgMapByFParentId(jclOrgMap.getFDateBegin(), id);
+ jclOrgMap.setFPlan(jclOrgMapByFParentId.getFPlan());
+ jclOrgMap.setFOnJob(jclOrgMapByFParentId.getFOnJob());
- //1.参数处理
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(jclOrgMap.getFDateBegin());
+ Calendar calendar = DateUtil.addDay(cal, -1);
+ Date time = new Date(calendar.getTime().getTime());
- //2.枚举处理不同mapper
+ MapperProxyFactory.getProxy(CompTriggerMapper.class).deleteMap(jclOrgMap.getFType(), jclOrgMap.getFObjId(), jclOrgMap.getFDateBegin());
+ MapperProxyFactory.getProxy(CompTriggerMapper.class).updateMap(jclOrgMap.getFType(), jclOrgMap.getFObjId(), jclOrgMap.getFDateBegin(), time);
- //3.保存逻辑
- //版本表 操作者,操作时间,版本V1.0 + 0.1 (默认字段)
+ 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")));
+ hrmSubCompanyVersion.setShowOrder(Integer.parseInt((String) params.get("showOrder")));
+ hrmSubCompanyVersion.setCanceled(Integer.parseInt((String) params.get("canceled")));
+ hrmSubCompanyVersion.setDescription((String) params.get("description"));
+ hrmSubCompanyVersion.setOperator(user.getUsername());
+ hrmSubCompanyVersion.setVersion(genVersionId(id));
+ hrmSubCompanyVersion.setOperateTime(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
+
+ getCompanyVersionMapper().insertHrmSubComVersion(hrmSubCompanyVersion);
+ }
+
+ /**
+ * 版本号生成
+ */
+ private String genVersionId(String sid) {
+ // 版本V1.0 + 0.1 (默认字段)
+ double id = 1.0;
+ HrmSubCompanyVersion hrmSubCompanyVersion = getCompanyVersionMapper().getMaxVersion(sid);
+ if (null != hrmSubCompanyVersion) {
+ id = id + Double.parseDouble(hrmSubCompanyVersion.getVersion());
+ }
+ return String.valueOf(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);
}
}