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); } }