From 3d61bfa9a6f4f1299fef408d2b925736da820076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Dec 2024 10:45:03 +0800 Subject: [PATCH 01/38] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E6=98=BE=E7=A4=BA=E5=AE=9A=E5=88=B6=E5=88=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202412030103.sql | 8 ++ resource/sqlupgrade/GS/sql202412030103.sql | 8 ++ resource/sqlupgrade/JC/sql202412030103.sql | 8 ++ resource/sqlupgrade/Mysql/sql202412030103.sql | 3 + .../sqlupgrade/Oracle/sql202412030103.sql | 7 ++ resource/sqlupgrade/PG/sql202412030103.sql | 3 + .../sqlupgrade/SQLServer/sql202412030103.sql | 5 + resource/sqlupgrade/ST/sql202412030103.sql | 8 ++ .../setting/dto/PageListTemplateDTO.java | 1 - .../param/PageListSettingQueryParam.java | 1 - .../entity/setting/po/PageListTemplatePO.java | 51 +++++----- .../salary/enums/common/SharedTypeEnum.java | 37 ++++++++ .../salary/mapper/setting/PageLinkMapper.java | 1 - .../salary/mapper/setting/PageLinkMapper.xml | 8 -- .../mapper/setting/PageListTemplateMapper.xml | 15 +++ .../SalaryStatisticsEmployeeWrapper.java | 12 +-- .../engine/salary/service/SettingService.java | 29 +++++- .../service/impl/SettingServiceImpl.java | 94 +++++++++++++------ .../salary/wrapper/SalaryCommonWrapper.java | 2 +- 19 files changed, 226 insertions(+), 75 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202412030103.sql create mode 100644 resource/sqlupgrade/GS/sql202412030103.sql create mode 100644 resource/sqlupgrade/JC/sql202412030103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202412030103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202412030103.sql create mode 100644 resource/sqlupgrade/PG/sql202412030103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202412030103.sql create mode 100644 resource/sqlupgrade/ST/sql202412030103.sql create mode 100644 src/com/engine/salary/enums/common/SharedTypeEnum.java diff --git a/resource/sqlupgrade/DM/sql202412030103.sql b/resource/sqlupgrade/DM/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/GS/sql202412030103.sql b/resource/sqlupgrade/GS/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/JC/sql202412030103.sql b/resource/sqlupgrade/JC/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202412030103.sql b/resource/sqlupgrade/Mysql/sql202412030103.sql new file mode 100644 index 000000000..66c85fb04 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int; + +update hrsa_page_list_template set system_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412030103.sql b/resource/sqlupgrade/Oracle/sql202412030103.sql new file mode 100644 index 000000000..9c8b29ae9 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412030103.sql @@ -0,0 +1,7 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +) +/ + +update hrsa_page_list_template set system_type=0 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412030103.sql b/resource/sqlupgrade/PG/sql202412030103.sql new file mode 100644 index 000000000..640452d4a --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int ; + +update hrsa_page_list_template set system_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412030103.sql b/resource/sqlupgrade/SQLServer/sql202412030103.sql new file mode 100644 index 000000000..1e1d3086c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412030103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_template ADD system_type int NULL +GO + +update hrsa_page_list_template set system_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202412030103.sql b/resource/sqlupgrade/ST/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index c79352ed9..763485c8e 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -16,5 +16,4 @@ import java.util.List; public class PageListTemplateDTO { private List setting; private List checked; - } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java index b00d55c5d..1825719e8 100644 --- a/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java @@ -20,5 +20,4 @@ public class PageListSettingQueryParam { private String name; - private Integer defaultSetting; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java index 8177534c1..c6a013da1 100644 --- a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java +++ b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.setting.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.common.SharedTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -17,6 +18,7 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor +//hrsa_page_list_template public class PageListTemplatePO { @@ -44,16 +46,23 @@ public class PageListTemplatePO { /** * 是否共享,0否,1是 + * @see SharedTypeEnum */ - @ElogTransform(name = "是否共享,0否,1是") + @ElogTransform(name = "可见性:0公共,1私有") private Integer sharedType; + /** + * 是否系统模板 + */ + @ElogTransform(name = "是否系统模板,0否,1是") + private Integer systemType; - /** - * 限制 - */ - @ElogTransform(name = "限制") - private List limitIds; + + /** + * 限制 + */ + @ElogTransform(name = "限制") + private List limitIds; /** * 租户ID @@ -67,23 +76,23 @@ public class PageListTemplatePO { @ElogTransform(name = "更新时间") private Date updateTime; - /** - * 创建时间 - */ - @ElogTransform(name = "创建时间") - private Date createTime; + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; - /** - * 创建人 - */ - @ElogTransform(name = "创建人") - private Long creator; + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; - /** - * 是否已删除。0:未删除、1:已删除 - */ - @ElogTransform(name = "是否已删除。0:未删除、1:已删除") - private Integer deleteType; + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; //主键id集合 diff --git a/src/com/engine/salary/enums/common/SharedTypeEnum.java b/src/com/engine/salary/enums/common/SharedTypeEnum.java new file mode 100644 index 000000000..eec98de1d --- /dev/null +++ b/src/com/engine/salary/enums/common/SharedTypeEnum.java @@ -0,0 +1,37 @@ +package com.engine.salary.enums.common; + +import com.engine.salary.enums.BaseEnum; + + +public enum SharedTypeEnum implements BaseEnum { + PUBLIC(0, "公共", 86568), + PRIVATE(1, "私有", 86569); + + private Integer value; + + private String defaultLabel; + + private Integer labelId; + + SharedTypeEnum(Integer value, String defaultLabel, Integer labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public Integer getValue() { + return this.value; + } + + @Override + public Integer getLabelId() { + return this.labelId; + } + + @Override + public String getDefaultLabel() { + return this.defaultLabel; + } +} diff --git a/src/com/engine/salary/mapper/setting/PageLinkMapper.java b/src/com/engine/salary/mapper/setting/PageLinkMapper.java index a15e69330..c0d806049 100644 --- a/src/com/engine/salary/mapper/setting/PageLinkMapper.java +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.java @@ -70,5 +70,4 @@ public interface PageLinkMapper { */ void deleteByIds(@Param("ids") Collection ids); - PageLinkPO getLink(@Param("employeeId")Long employeeId, @Param("page")String page); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageLinkMapper.xml b/src/com/engine/salary/mapper/setting/PageLinkMapper.xml index 7e5d1856c..ec66fde24 100644 --- a/src/com/engine/salary/mapper/setting/PageLinkMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.xml @@ -220,13 +220,5 @@ - \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml index 3ba245afd..02d015d13 100644 --- a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml @@ -11,6 +11,7 @@ + @@ -28,6 +29,7 @@ , t.page , t.setting , t.shared_type + , t.system_type , t.tenant_key , t.update_time @@ -78,6 +80,9 @@ AND shared_type = #{sharedType} + + + AND system_type = #{systemType} AND tenant_key = #{tenantKey} @@ -127,6 +132,9 @@ shared_type, + + system_type, + tenant_key, @@ -162,6 +170,9 @@ #{sharedType}, + + #{systemType}, + #{tenantKey}, @@ -183,6 +194,7 @@ page=#{page}, setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, shared_type=#{sharedType}, + system_type=#{systemType}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -218,6 +230,9 @@ shared_type=#{sharedType}, + + system_type=#{systemType}, + tenant_key=#{tenantKey}, diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 4f6a71d93..746647841 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -10,8 +10,6 @@ import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; -import com.engine.salary.entity.setting.dto.PageListTemplateDTO; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.report.entity.bo.SalaryStatisticsReportBO; @@ -184,15 +182,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { pageInfo.setList(records); pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); - List weaTableColumns; - //显示方案1,显示模板 - if (templateShow) { - weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue()); - } else { - PageListSettingQueryParam param = PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).defaultSetting(0).build(); - PageListTemplateDTO pageListSetting = getSettingService(user).getPageListSetting(param); - weaTableColumns = pageListSetting.getChecked(); - } + List weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue()); // 结果 resultMap.put("columns", weaTableColumns); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 3bc47a569..7bf701910 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -8,18 +8,45 @@ import com.engine.salary.entity.setting.po.PageListTemplatePO; import java.util.List; public interface SettingService { + + @Deprecated void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); - PageListTemplateDTO getPageListSetting(PageListSettingQueryParam param); + /** + * 获取原有显示列定制配置 + * @param param + * @return + */ + PageListTemplateDTO getDefaultPageListSetting(PageListSettingQueryParam param); + @Deprecated void resetPageListSetting(PageListSettingResetParam param); + /** + * 获取指定模板配置或者指定页面默认配置 + * @param param + * @return + */ PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param); + /** + * 获取可选模板列表 + * @param queryParam + * @return + */ List getPageListTemplates(PageListTemplateQueryParam queryParam); + /** + * 保存模板 + * @param param + * @return + */ PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param); + /** + * 更换模板 + * @param param + */ void changePageListTemplate(PageListTemplateChangeParam param); List getPageListColumns(String page); diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 203d36621..eda0c7b1f 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -14,6 +14,8 @@ import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.common.SharedTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.setting.PageLinkMapper; import com.engine.salary.mapper.setting.PageListSettingMapper; @@ -92,7 +94,7 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public PageListTemplateDTO getPageListSetting(PageListSettingQueryParam param) { + public PageListTemplateDTO getDefaultPageListSetting(PageListSettingQueryParam param) { String page = param.getPage(); if (SALARY_DETAILS_REPORT.getValue().equals(page)) { List columns = new ArrayList<>(); @@ -132,23 +134,13 @@ public class SettingServiceImpl extends Service implements SettingService { columns.addAll(collect); - Integer defaultSetting = param.getDefaultSetting(); Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); - List checkedList = new ArrayList<>(); - //是否查询默认设置 - PageListSettingPO pageListSettingPO; - if (defaultSetting == 0) { - pageListSettingPO = getPageListSettingMapper().getByPage(page, 0, (long) user.getUID()); - //查不到个人查默认 - if (pageListSettingPO == null) { - pageListSettingPO = getPageListSettingMapper().getByPage(page, 1, null); - } - } else { - pageListSettingPO = getPageListSettingMapper().getByPage(page, 1, null); - } + //默认设置 + PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page, 1, null); //查询选中的项目 + List checkedList = new ArrayList<>(); if (pageListSettingPO != null) { checkedList = Optional.ofNullable(pageListSettingPO.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); } else { @@ -177,7 +169,6 @@ public class SettingServiceImpl extends Service implements SettingService { @Override public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { String page = param.getPage(); - Long id = param.getId(); if (SALARY_DETAILS_REPORT.getValue().equals(page)) { List columns = new ArrayList<>(); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "薪资所属月"), "salaryMonth")); @@ -196,7 +187,7 @@ public class SettingServiceImpl extends Service implements SettingService { } List salaryItemList = getSalaryItemService(user).listAll(); - List collect = salaryItemList.stream().filter(po -> { + List salaryItemCols = salaryItemList.stream().filter(po -> { String name = param.getName(); if (StrUtil.isNotEmpty(name)) { return po.getName() != null && po.getName().contains(name); @@ -214,15 +205,25 @@ public class SettingServiceImpl extends Service implements SettingService { } }).map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)).collect(Collectors.toList()); - columns.addAll(collect); + columns.addAll(salaryItemCols); Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); - List checkedList = new ArrayList<>(); + List checkedList = columns; + Long id = param.getId(); if (id != null) { + //编辑模板,指定模板id PageListTemplatePO po = getPageListTemplateMapper().getById(id); if (po != null) { checkedList = Optional.ofNullable(po.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); - + } + } else { + //打开选中的模板 + List pageListTemplates = getPageListTemplates(PageListTemplateQueryParam.builder().page(page).build()); + List columnList = pageListTemplates.stream() + .filter(PageListTemplatePO::getChecked).map(PageListTemplatePO::getSetting).findFirst().orElse(new ArrayList<>()) + .stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(columnList)) { + checkedList = columnList; } } return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build(); @@ -236,14 +237,53 @@ public class SettingServiceImpl extends Service implements SettingService { ValidUtil.doValidator(param); + Date now = new Date(); String page = param.getPage(); + //个人配置模板 PageListTemplatePO build = PageListTemplatePO.builder().page(page).build(); List pos = getPageListTemplateMapper().listSome(build); - //获取当前选择的模板 - PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), SALARY_DETAILS_REPORT.getValue()); + //如果查不到不到系统模板,创建系统模板 + PageListTemplatePO systemTemplate = pos.stream().filter(po -> po.getSystemType() != null && po.getSystemType() == 1).findFirst().orElse(null); + if (systemTemplate == null) { + //查询系统默认配置 + PageListTemplateDTO pageListSetting = getDefaultPageListSetting(PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build()); + systemTemplate = PageListTemplatePO.builder() + .id(IdGenerator.generate()) + .page(param.getPage()) + .name("系统模板") + .sharedType(SharedTypeEnum.PUBLIC.getValue()) + .systemType(SalaryOnOffEnum.ON.getValue()) + .setting(pageListSetting.getChecked().stream().map(WeaTableColumn::getColumn).collect(Collectors.toList())) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY).build(); + getPageListTemplateMapper().insertIgnoreNull(systemTemplate); + pos.add(systemTemplate); + } + + //获取当前选择的模板 + PageLinkPO link = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(SALARY_DETAILS_REPORT.getValue()).build()).stream().findFirst().orElse(null); + if (link == null) { + link = PageLinkPO.builder() + .id(IdGenerator.generate()) + .employeeId((long) user.getUID()) + .page(param.getPage()) + .templateId(systemTemplate.getId()) + .tenantKey(DEFAULT_TENANT_KEY) + .createTime(new Date()) + .updateTime(new Date()) + .creator((long) user.getUID()) + .deleteType(0).build(); + getPageLinkMapper().insertIgnoreNull(link); + } + Long templateId = link.getTemplateId(); + + //权限控制 Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); pos = pos.stream().filter(po -> { @@ -253,7 +293,7 @@ public class SettingServiceImpl extends Service implements SettingService { } return true; }).peek(po -> { - po.setChecked(link != null && po.getId().equals(link.getTemplateId())); + po.setChecked(po.getId().equals(templateId)); }).collect(Collectors.toList()); return pos; } @@ -301,13 +341,7 @@ public class SettingServiceImpl extends Service implements SettingService { @Override public List getPageListColumns(String page) { - PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), page); - if (link != null) { - PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).id(link.getTemplateId()).build()); - return pageListTemplate.getChecked(); - } else { - PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).build()); - return pageListTemplate.getSetting(); - } + PageListTemplateDTO pageListTemplate = getPageListTemplate((PageListTemplateQueryParam.builder().page(page).build())); + return pageListTemplate.getChecked(); } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index c8182fef1..2cf59dd73 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -42,7 +42,7 @@ public class SalaryCommonWrapper extends Service { public PageListTemplateDTO getPageListSetting(PageListSettingQueryParam param) { - return getSettingService(user).getPageListSetting(param); + return getSettingService(user).getDefaultPageListSetting(param); } From c3b71201a41799331b1e8f23da5ab003d8d17c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Dec 2024 16:39:02 +0800 Subject: [PATCH 02/38] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/hrm/po/HrmSnapshotPO.java | 428 +++++ .../salary/mapper/hrm/HrmSnapshotMapper.java | 90 + .../salary/mapper/hrm/HrmSnapshotMapper.xml | 1616 +++++++++++++++++ .../engine/salary/timer/HrmSnapshotJob.java | 51 + 4 files changed, 2185 insertions(+) create mode 100644 src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java create mode 100644 src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java create mode 100644 src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml create mode 100644 src/com/engine/salary/timer/HrmSnapshotJob.java diff --git a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java new file mode 100644 index 000000000..2dc410de5 --- /dev/null +++ b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java @@ -0,0 +1,428 @@ +package com.engine.salary.entity.hrm.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HrmSnapshotPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 快照时间 + */ + @ElogTransform(name = "快照时间") + private Date snapshotTime; + + + /** + * 人员id + */ + @ElogTransform(name = "人员id") + private Long employeeId; + + /** + * 姓名 + */ + @ElogTransform(name = "姓名") + private String lastname; + + + /** + * 工资帐号1 + */ + @ElogTransform(name = "工资帐号1") + private String accountid1; + + /** + * 工资账号户名 + */ + @ElogTransform(name = "工资账号户名") + private String accountname; + + /** + * 帐号类型 + */ + @ElogTransform(name = "帐号类型") + private Integer accounttype; + + /** + * 公积金帐号 + */ + @ElogTransform(name = "公积金帐号") + private String accumfundaccount; + + /** + * 助理 + */ + @ElogTransform(name = "助理") + private Integer assistantid; + + /** + * 工资银行1 + */ + @ElogTransform(name = "工资银行1") + private Integer bankid1; + + /** + * 所属主帐号 + */ + @ElogTransform(name = "所属主帐号") + private Integer belongto; + + /** + * 入团时间 + */ + @ElogTransform(name = "入团时间") + private String bememberdate; + + /** + * 入党时间 + */ + @ElogTransform(name = "入党时间") + private String bepartydate; + + /** + * 生日 + */ + @ElogTransform(name = "生日") + private String birthday; + + /** + * 出生地 + */ + @ElogTransform(name = "出生地") + private String birthplace; + + /** + * 身份证号码 + */ + @ElogTransform(name = "身份证号码") + private String certificatenum; + + /** + * 公司开始日期 + */ + @ElogTransform(name = "公司开始日期") + private String companystartdate; + + /** + * 公司年限 + */ + @ElogTransform(name = "公司年限") + private BigDecimal companyworkyear; + + /** + * 所属成本中心 + */ + @ElogTransform(name = "所属成本中心") + private Integer costcenterid; + + /** + * 国家id + */ + @ElogTransform(name = "国家id") + private Integer countryid; + + /** + * 学位 + */ + @ElogTransform(name = "学位") + private String degree; + + /** + * 所属部门 + */ + @ElogTransform(name = "所属部门") + private Integer departmentid; + + /** + * 部门名称 + */ + @ElogTransform(name = "部门名称") + private String departmentname; + + /** + * 学历 + */ + @ElogTransform(name = "学历") + private Integer educationlevel; + + /** + * 电子邮件 + */ + @ElogTransform(name = "电子邮件") + private String email; + + + /** + * 合同结束日期 + */ + @ElogTransform(name = "合同结束日期") + private String enddate; + + /** + * 分机 + */ + @ElogTransform(name = "分机") + private String extphone; + + /** + * 传真 + */ + @ElogTransform(name = "传真") + private String fax; + + /** + * 民族 + */ + @ElogTransform(name = "民族") + private String folk; + + /** + * 健康状况 + */ + @ElogTransform(name = "健康状况") + private String healthinfo; + + /** + * 家庭住址 + */ + @ElogTransform(name = "家庭住址") + private String homeaddress; + + + /** + * 是否为工会会员 + */ + @ElogTransform(name = "是否为工会会员") + private String islabouunion; + + /** + * 职责描述 + */ + @ElogTransform(name = "职责描述") + private String jobactivitydesc; + + /** + * 职称 + */ + @ElogTransform(name = "职称") + private Integer jobcall; + + /** + * 工作级别 + */ + @ElogTransform(name = "工作级别") + private Integer joblevel; + + /** + * 岗位 + */ + @ElogTransform(name = "岗位") + private Integer jobtitle; + + /** + * 岗位名称 + */ + @ElogTransform(name = "岗位名称") + private String jobtitlename; + + /** + * 最后登陆日期 + */ + @ElogTransform(name = "最后登陆日期") + private String lastlogindate; + + /** + * 工作地点 + */ + @ElogTransform(name = "工作地点") + private Integer locationid; + + /** + * 系统登陆帐号 + */ + @ElogTransform(name = "系统登陆帐号") + private String loginid; + + /** + * 经理 + */ + @ElogTransform(name = "经理") + private Integer managerid; + + /** + * 所有上级 + */ + @ElogTransform(name = "所有上级") + private String managerstr; + + /** + * 婚姻状况 + */ + @ElogTransform(name = "婚姻状况") + private String maritalstatus; + + /** + * 手机 + */ + @ElogTransform(name = "手机") + private String mobile; + + /** + * 其他电话 + */ + @ElogTransform(name = "其他电话") + private String mobilecall; + + /** + * 国籍 + */ + @ElogTransform(name = "国籍") + private Integer nationality; + + /** + * 籍贯 + */ + @ElogTransform(name = "籍贯") + private String nativeplace; + + /** + * 政治面貌 + */ + @ElogTransform(name = "政治面貌") + private String policy; + + /** + * 试用期结束日期 + */ + @ElogTransform(name = "试用期结束日期") + private String probationenddate; + + /** + * 户口 + */ + @ElogTransform(name = "户口") + private String regresidentplace; + + /** + * 居住地电话 + */ + @ElogTransform(name = "居住地电话") + private String residentphone; + + /** + * 居住地 + */ + @ElogTransform(name = "居住地") + private String residentplace; + + /** + * 居住地邮编 + */ + @ElogTransform(name = "居住地邮编") + private String residentpostcode; + + /** + * 用户类别 + */ + @ElogTransform(name = "用户类别") + private String resourcetype; + + /** + * 安全级别 + */ + @ElogTransform(name = "安全级别") + private Integer seclevel; + + /** + * 性别 + */ + @ElogTransform(name = "性别") + private String sex; + + + + /** + * 合同开始日期 + */ + @ElogTransform(name = "合同开始日期") + private String startdate; + + /** + * 0:试用
1:正式
2:临时
3:试用延期
4:解聘
5:离职
6:退休
7:无效 + */ + @ElogTransform(name = " 0:试用
1:正式
2:临时
3:试用延期
4:解聘
5:离职
6:退休
7:无效") + private Integer status; + + /** + * 所属分部1 + */ + @ElogTransform(name = "所属分部1") + private Integer subcompanyid1; + + /** + * 分部名称 + */ + @ElogTransform(name = "分部名称") + private String subcompanyname; + + /** + * 电话 + */ + @ElogTransform(name = "电话") + private String telephone; + + /** + * 暂住证号码 + */ + @ElogTransform(name = "暂住证号码") + private String tempresidentnumber; + + /** + * 用工性质 + */ + @ElogTransform(name = "用工性质") + private Integer usekind; + + /** + * 编号 + */ + @ElogTransform(name = "编号") + private String workcode; + + /** + * 办公室 + */ + @ElogTransform(name = "办公室") + private String workroom; + + /** + * 工作开始日期 + */ + @ElogTransform(name = "工作开始日期") + private String workstartdate; + + /** + * 工作年限 + */ + @ElogTransform(name = "工作年限") + private BigDecimal workyear; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java new file mode 100644 index 000000000..077e96d70 --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -0,0 +1,90 @@ +package com.engine.salary.mapper.hrm; + +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +public interface HrmSnapshotMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(HrmSnapshotPO hrmSnapshot); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + HrmSnapshotPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param hrmSnapshot 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(HrmSnapshotPO hrmSnapshot); + + /** + * 批量插入 + * + * @param hrmSnapshot + */ + void batchInsert(@Param("collection") List hrmSnapshot); + + /** + * 修改,修改所有字段 + * + * @param hrmSnapshot 修改的记录 + * @return 返回影响行数 + */ + int update(HrmSnapshotPO hrmSnapshot); + + /** + * 修改,忽略null字段 + * + * @param hrmSnapshot 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(HrmSnapshotPO hrmSnapshot); + + /** + * 删除记录 + * + * @param hrmSnapshot 待删除的记录 + * @return 返回影响行数 + */ + int delete(HrmSnapshotPO hrmSnapshot); + + /** + * 批量删除记录 + * + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteBySnapshotTime(Date snapshotTime); + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List currentEmpData(); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml new file mode 100644 index 000000000..4ceb64c7a --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -0,0 +1,1616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + ACCOUNTID1 + , t.ACCOUNTNAME + , t.ACCOUNTTYPE + , t.ACCUMFUNDACCOUNT + , t.ASSISTANTID + , t.BANKID1 + , t.BELONGTO + , t.BEMEMBERDATE + , t.BEPARTYDATE + , t.BIRTHDAY + , t.BIRTHPLACE + , t.CERTIFICATENUM + , t.companystartdate + , t.companyworkyear + , t.COSTCENTERID + , t.COUNTRYID + , t.DEGREE + , t.DEPARTMENTID + , t.DEPARTMENTNAME + , t.EDUCATIONLEVEL + , t.EMAIL + , t.employee_id + , t.ENDDATE + , t.EXTPHONE + , t.FAX + , t.FOLK + , t.HEALTHINFO + , t.HOMEADDRESS + , t.ID + , t.ISLABOUUNION + , t.JOBACTIVITYDESC + , t.JOBCALL + , t.JOBLEVEL + , t.JOBTITLE + , t.JOBTITLENAME + , t.LASTLOGINDATE + , t.LASTNAME + , t.LOCATIONID + , t.loginid + , t.MANAGERID + , t.MANAGERSTR + , t.MARITALSTATUS + , t.MOBILE + , t.MOBILECALL + , t.NATIONALITY + , t.NATIVEPLACE + , t.POLICY + , t.PROBATIONENDDATE + , t.REGRESIDENTPLACE + , t.RESIDENTPHONE + , t.RESIDENTPLACE + , t.RESIDENTPOSTCODE + , t.RESOURCETYPE + , t.SECLEVEL + , t.SEX + , t.snapshot_time + , t.STARTDATE + , t.STATUS + , t.SUBCOMPANYID1 + , t.SUBCOMPANYNAME + , t.TELEPHONE + , t.TEMPRESIDENTNUMBER + , t.USEKIND + , t.WORKCODE + , t.WORKROOM + , t.workstartdate + , t.workyear + + + + + + + + + + + + + + + INSERT INTO hrsa_hrm_snapshot + + + + ACCOUNTID1, + + + ACCOUNTNAME, + + + ACCOUNTTYPE, + + + ACCUMFUNDACCOUNT, + + + ASSISTANTID, + + + BANKID1, + + + BELONGTO, + + + BEMEMBERDATE, + + + BEPARTYDATE, + + + BIRTHDAY, + + + BIRTHPLACE, + + + CERTIFICATENUM, + + + companystartdate, + + + companyworkyear, + + + COSTCENTERID, + + + COUNTRYID, + + + DEGREE, + + + DEPARTMENTID, + + + DEPARTMENTNAME, + + + EDUCATIONLEVEL, + + + EMAIL, + + + employee_id, + + + ENDDATE, + + + EXTPHONE, + + + FAX, + + + FOLK, + + + HEALTHINFO, + + + HOMEADDRESS, + + + ID, + + + ISLABOUUNION, + + + JOBACTIVITYDESC, + + + JOBCALL, + + + JOBLEVEL, + + + JOBTITLE, + + + JOBTITLENAME, + + + LASTLOGINDATE, + + + LASTNAME, + + + LOCATIONID, + + + loginid, + + + MANAGERID, + + + MANAGERSTR, + + + MARITALSTATUS, + + + MOBILE, + + + MOBILECALL, + + + NATIONALITY, + + + NATIVEPLACE, + + + POLICY, + + + PROBATIONENDDATE, + + + REGRESIDENTPLACE, + + + RESIDENTPHONE, + + + RESIDENTPLACE, + + + RESIDENTPOSTCODE, + + + RESOURCETYPE, + + + SECLEVEL, + + + SEX, + + + snapshot_time, + + + STARTDATE, + + + STATUS, + + + SUBCOMPANYID1, + + + SUBCOMPANYNAME, + + + TELEPHONE, + + + TEMPRESIDENTNUMBER, + + + USEKIND, + + + WORKCODE, + + + WORKROOM, + + + workstartdate, + + + workyear, + + + + + #{accountid1}, + + + #{accountname}, + + + #{accounttype}, + + + #{accumfundaccount}, + + + #{assistantid}, + + + #{bankid1}, + + + #{belongto}, + + + #{bememberdate}, + + + #{bepartydate}, + + + #{birthday}, + + + #{birthplace}, + + + #{certificatenum}, + + + #{companystartdate}, + + + #{companyworkyear}, + + + #{costcenterid}, + + + #{countryid}, + + + #{degree}, + + + #{departmentid}, + + + #{departmentname}, + + + #{educationlevel}, + + + #{email}, + + + #{employeeId}, + + + #{enddate}, + + + #{extphone}, + + + #{fax}, + + + #{folk}, + + + #{healthinfo}, + + + #{homeaddress}, + + + #{id}, + + + #{islabouunion}, + + + #{jobactivitydesc}, + + + #{jobcall}, + + + #{joblevel}, + + + #{jobtitle}, + + + #{jobtitlename}, + + + #{lastlogindate}, + + + #{lastname}, + + + #{locationid}, + + + #{loginid}, + + + #{managerid}, + + + #{managerstr}, + + + #{maritalstatus}, + + + #{mobile}, + + + #{mobilecall}, + + + #{nationality}, + + + #{nativeplace}, + + + #{policy}, + + + #{probationenddate}, + + + #{regresidentplace}, + + + #{residentphone}, + + + #{residentplace}, + + + #{residentpostcode}, + + + #{resourcetype}, + + + #{seclevel}, + + + #{sex}, + + + #{snapshotTime}, + + + #{startdate}, + + + #{status}, + + + #{subcompanyid1}, + + + #{subcompanyname}, + + + #{telephone}, + + + #{tempresidentnumber}, + + + #{usekind}, + + + #{workcode}, + + + #{workroom}, + + + #{workstartdate}, + + + #{workyear}, + + + + + + + + INSERT INTO hrsa_hrm_snapshot + ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + VALUES + + + ( + #{item.accountid1}, + #{item.accountname}, + #{item.accounttype}, + #{item.accumfundaccount}, + #{item.assistantid}, + #{item.bankid1}, + #{item.belongto}, + #{item.bememberdate}, + #{item.bepartydate}, + #{item.birthday}, + #{item.birthplace}, + #{item.certificatenum}, + #{item.companystartdate}, + #{item.companyworkyear}, + #{item.costcenterid}, + #{item.countryid}, + #{item.degree}, + #{item.departmentid}, + #{item.departmentname}, + #{item.educationlevel}, + #{item.email}, + #{item.employeeId}, + #{item.enddate}, + #{item.extphone}, + #{item.fax}, + #{item.folk}, + #{item.healthinfo}, + #{item.homeaddress}, + #{item.id}, + #{item.islabouunion}, + #{item.jobactivitydesc}, + #{item.jobcall}, + #{item.joblevel}, + #{item.jobtitle}, + #{item.jobtitlename}, + #{item.lastlogindate}, + #{item.lastname}, + #{item.locationid}, + #{item.loginid}, + #{item.managerid}, + #{item.managerstr}, + #{item.maritalstatus}, + #{item.mobile}, + #{item.mobilecall}, + #{item.nationality}, + #{item.nativeplace}, + #{item.policy}, + #{item.probationenddate}, + #{item.regresidentplace}, + #{item.residentphone}, + #{item.residentplace}, + #{item.residentpostcode}, + #{item.resourcetype}, + #{item.seclevel}, + #{item.sex}, + #{item.snapshotTime}, + #{item.startdate}, + #{item.status}, + #{item.subcompanyid1}, + #{item.subcompanyname}, + #{item.telephone}, + #{item.tempresidentnumber}, + #{item.usekind}, + #{item.workcode}, + #{item.workroom}, + #{item.workstartdate}, + #{item.workyear}, + ) + + + + + + + INSERT INTO hrsa_hrm_snapshot ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + + + select + #{item.accountid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accountname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accounttype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accumfundaccount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.assistantid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bankid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.belongto,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bememberdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bepartydate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.birthday,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.birthplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.certificatenum,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.companystartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.companyworkyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.costcenterid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.countryid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.degree,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.departmentid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.departmentname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.educationlevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.email,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.employeeId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.enddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.extphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.fax,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.folk,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.healthinfo,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.homeaddress,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.islabouunion,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobactivitydesc,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobcall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.joblevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobtitle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobtitlename,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.lastlogindate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.lastname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.locationid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.loginid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.managerid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.managerstr,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.maritalstatus,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.mobile,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.mobilecall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.nationality,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.nativeplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.policy,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.probationenddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.regresidentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentpostcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.resourcetype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.seclevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.sex,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.snapshotTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.startdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.status,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.subcompanyid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.subcompanyname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.telephone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.tempresidentnumber,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.usekind,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workroom,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workstartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + from dual + + + + + + + INSERT INTO hrsa_hrm_snapshot ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + VALUES + ( + #{item.accountid1}, + #{item.accountname}, + #{item.accounttype}, + #{item.accumfundaccount}, + #{item.assistantid}, + #{item.bankid1}, + #{item.belongto}, + #{item.bememberdate}, + #{item.bepartydate}, + #{item.birthday}, + #{item.birthplace}, + #{item.certificatenum}, + #{item.companystartdate}, + #{item.companyworkyear}, + #{item.costcenterid}, + #{item.countryid}, + #{item.degree}, + #{item.departmentid}, + #{item.departmentname}, + #{item.educationlevel}, + #{item.email}, + #{item.employeeId}, + #{item.enddate}, + #{item.extphone}, + #{item.fax}, + #{item.folk}, + #{item.healthinfo}, + #{item.homeaddress}, + #{item.id}, + #{item.islabouunion}, + #{item.jobactivitydesc}, + #{item.jobcall}, + #{item.joblevel}, + #{item.jobtitle}, + #{item.jobtitlename}, + #{item.lastlogindate}, + #{item.lastname}, + #{item.locationid}, + #{item.loginid}, + #{item.managerid}, + #{item.managerstr}, + #{item.maritalstatus}, + #{item.mobile}, + #{item.mobilecall}, + #{item.nationality}, + #{item.nativeplace}, + #{item.policy}, + #{item.probationenddate}, + #{item.regresidentplace}, + #{item.residentphone}, + #{item.residentplace}, + #{item.residentpostcode}, + #{item.resourcetype}, + #{item.seclevel}, + #{item.sex}, + #{item.snapshotTime}, + #{item.startdate}, + #{item.status}, + #{item.subcompanyid1}, + #{item.subcompanyname}, + #{item.telephone}, + #{item.tempresidentnumber}, + #{item.usekind}, + #{item.workcode}, + #{item.workroom}, + #{item.workstartdate}, + #{item.workyear}, + ) + + + + + + UPDATE hrsa_hrm_snapshot + + ACCOUNTID1=#{accountid1}, + ACCOUNTNAME=#{accountname}, + ACCOUNTTYPE=#{accounttype}, + ACCUMFUNDACCOUNT=#{accumfundaccount}, + ASSISTANTID=#{assistantid}, + BANKID1=#{bankid1}, + BELONGTO=#{belongto}, + BEMEMBERDATE=#{bememberdate}, + BEPARTYDATE=#{bepartydate}, + BIRTHDAY=#{birthday}, + BIRTHPLACE=#{birthplace}, + CERTIFICATENUM=#{certificatenum}, + companystartdate=#{companystartdate}, + companyworkyear=#{companyworkyear}, + COSTCENTERID=#{costcenterid}, + COUNTRYID=#{countryid}, + DEGREE=#{degree}, + DEPARTMENTID=#{departmentid}, + DEPARTMENTNAME=#{departmentname}, + EDUCATIONLEVEL=#{educationlevel}, + EMAIL=#{email}, + employee_id=#{employeeId}, + ENDDATE=#{enddate}, + EXTPHONE=#{extphone}, + FAX=#{fax}, + FOLK=#{folk}, + HEALTHINFO=#{healthinfo}, + HOMEADDRESS=#{homeaddress}, + ISLABOUUNION=#{islabouunion}, + JOBACTIVITYDESC=#{jobactivitydesc}, + JOBCALL=#{jobcall}, + JOBLEVEL=#{joblevel}, + JOBTITLE=#{jobtitle}, + JOBTITLENAME=#{jobtitlename}, + LASTLOGINDATE=#{lastlogindate}, + LASTNAME=#{lastname}, + LOCATIONID=#{locationid}, + loginid=#{loginid}, + MANAGERID=#{managerid}, + MANAGERSTR=#{managerstr}, + MARITALSTATUS=#{maritalstatus}, + MOBILE=#{mobile}, + MOBILECALL=#{mobilecall}, + NATIONALITY=#{nationality}, + NATIVEPLACE=#{nativeplace}, + POLICY=#{policy}, + PROBATIONENDDATE=#{probationenddate}, + REGRESIDENTPLACE=#{regresidentplace}, + RESIDENTPHONE=#{residentphone}, + RESIDENTPLACE=#{residentplace}, + RESIDENTPOSTCODE=#{residentpostcode}, + RESOURCETYPE=#{resourcetype}, + SECLEVEL=#{seclevel}, + SEX=#{sex}, + snapshot_time=#{snapshotTime}, + STARTDATE=#{startdate}, + STATUS=#{status}, + SUBCOMPANYID1=#{subcompanyid1}, + SUBCOMPANYNAME=#{subcompanyname}, + TELEPHONE=#{telephone}, + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + USEKIND=#{usekind}, + WORKCODE=#{workcode}, + WORKROOM=#{workroom}, + workstartdate=#{workstartdate}, + workyear=#{workyear}, + + WHERE ID = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_hrm_snapshot + + + ACCOUNTID1=#{accountid1}, + + + ACCOUNTNAME=#{accountname}, + + + ACCOUNTTYPE=#{accounttype}, + + + ACCUMFUNDACCOUNT=#{accumfundaccount}, + + + ASSISTANTID=#{assistantid}, + + + BANKID1=#{bankid1}, + + + BELONGTO=#{belongto}, + + + BEMEMBERDATE=#{bememberdate}, + + + BEPARTYDATE=#{bepartydate}, + + + BIRTHDAY=#{birthday}, + + + BIRTHPLACE=#{birthplace}, + + + CERTIFICATENUM=#{certificatenum}, + + + companystartdate=#{companystartdate}, + + + companyworkyear=#{companyworkyear}, + + + COSTCENTERID=#{costcenterid}, + + + COUNTRYID=#{countryid}, + + + DEGREE=#{degree}, + + + DEPARTMENTID=#{departmentid}, + + + DEPARTMENTNAME=#{departmentname}, + + + EDUCATIONLEVEL=#{educationlevel}, + + + EMAIL=#{email}, + + + employee_id=#{employeeId}, + + + ENDDATE=#{enddate}, + + + EXTPHONE=#{extphone}, + + + FAX=#{fax}, + + + FOLK=#{folk}, + + + HEALTHINFO=#{healthinfo}, + + + HOMEADDRESS=#{homeaddress}, + + + ISLABOUUNION=#{islabouunion}, + + + JOBACTIVITYDESC=#{jobactivitydesc}, + + + JOBCALL=#{jobcall}, + + + JOBLEVEL=#{joblevel}, + + + JOBTITLE=#{jobtitle}, + + + JOBTITLENAME=#{jobtitlename}, + + + LASTLOGINDATE=#{lastlogindate}, + + + LASTNAME=#{lastname}, + + + LOCATIONID=#{locationid}, + + + loginid=#{loginid}, + + + MANAGERID=#{managerid}, + + + MANAGERSTR=#{managerstr}, + + + MARITALSTATUS=#{maritalstatus}, + + + MOBILE=#{mobile}, + + + MOBILECALL=#{mobilecall}, + + + NATIONALITY=#{nationality}, + + + NATIVEPLACE=#{nativeplace}, + + + POLICY=#{policy}, + + + PROBATIONENDDATE=#{probationenddate}, + + + REGRESIDENTPLACE=#{regresidentplace}, + + + RESIDENTPHONE=#{residentphone}, + + + RESIDENTPLACE=#{residentplace}, + + + RESIDENTPOSTCODE=#{residentpostcode}, + + + RESOURCETYPE=#{resourcetype}, + + + SECLEVEL=#{seclevel}, + + + SEX=#{sex}, + + + snapshot_time=#{snapshotTime}, + + + STARTDATE=#{startdate}, + + + STATUS=#{status}, + + + SUBCOMPANYID1=#{subcompanyid1}, + + + SUBCOMPANYNAME=#{subcompanyname}, + + + TELEPHONE=#{telephone}, + + + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + + + USEKIND=#{usekind}, + + + WORKCODE=#{workcode}, + + + WORKROOM=#{workroom}, + + + workstartdate=#{workstartdate}, + + + workyear=#{workyear}, + + + WHERE ID = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_hrm_snapshot + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_hrm_snapshot + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + delete from hrsa_hrm_snapshot + WHERE snapshot_time = #{snapshotTime} + + + + e + . + ID as employee_id + ,e.loginid + ,e.LASTNAME + ,e.SEX + ,e.BIRTHDAY + ,e.NATIONALITY + ,e.MARITALSTATUS + ,e.TELEPHONE + ,e.MOBILE + ,e.MOBILECALL + ,e.EMAIL + ,e.LOCATIONID + ,e.WORKROOM + ,e.HOMEADDRESS + ,e.RESOURCETYPE + ,e.STARTDATE + ,e.ENDDATE + ,e.JOBTITLE + ,j.JOBTITLENAME + ,e.JOBACTIVITYDESC + ,e.JOBLEVEL + ,e.SECLEVEL + ,e.DEPARTMENTID + ,d.DEPARTMENTNAME + ,e.SUBCOMPANYID1 + ,c.SUBCOMPANYNAME + ,e.COSTCENTERID + ,e.MANAGERID + ,e.ASSISTANTID + ,e.BANKID1 + ,e.ACCOUNTID1 + ,e.LASTLOGINDATE + ,e.CERTIFICATENUM + ,e.NATIVEPLACE + ,e.EDUCATIONLEVEL + ,e.BEMEMBERDATE + ,e.BEPARTYDATE + ,e.WORKCODE + ,e.REGRESIDENTPLACE + ,e.HEALTHINFO + ,e.RESIDENTPLACE + ,e.POLICY + ,e.DEGREE + ,e.USEKIND + ,e.JOBCALL + ,e.ACCUMFUNDACCOUNT + ,e.BIRTHPLACE + ,e.FOLK + ,e.RESIDENTPHONE + ,e.RESIDENTPOSTCODE + ,e.EXTPHONE + ,e.MANAGERSTR + ,e.STATUS + ,e.FAX + ,e.ISLABOUUNION + ,e.TEMPRESIDENTNUMBER + ,e.PROBATIONENDDATE + ,e.COUNTRYID + ,e.ACCOUNTTYPE + ,e.BELONGTO + ,e.ACCOUNTNAME + ,e.companystartdate + ,e.workstartdate + ,e.companyworkyear + ,e.workyear + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/timer/HrmSnapshotJob.java b/src/com/engine/salary/timer/HrmSnapshotJob.java new file mode 100644 index 000000000..5a256371a --- /dev/null +++ b/src/com/engine/salary/timer/HrmSnapshotJob.java @@ -0,0 +1,51 @@ +package com.engine.salary.timer; + +import cn.hutool.core.util.StrUtil; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + + +public class HrmSnapshotJob extends BaseCronJob { + + private String appointSnapshotTime; + + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + + List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); + + Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); + + //先删除当日快照 + getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); + + hrmSnapshotPOS.forEach(hrmSnapshotPO -> { + + hrmSnapshotPO.setId(IdGenerator.generate()); + hrmSnapshotPO.setSnapshotTime(snapshotTime); + + getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); + + }); + + + System.out.println(hrmSnapshotPOS); + } + +} From c80d900339aef95b507783a9849e1a878540f093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 09:13:41 +0800 Subject: [PATCH 03/38] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting/dto/PageListTemplateDTO.java | 54 ++++++++++++++-- .../dto/PageListTemplateDetailDTO.java | 19 ++++++ .../param/PageListTemplateQueryParam.java | 3 +- .../engine/salary/service/SettingService.java | 7 +- .../service/impl/SettingServiceImpl.java | 64 ++++++++++++++++--- .../salary/web/SalaryCommonController.java | 14 +++- .../salary/wrapper/SalaryCommonWrapper.java | 10 ++- 7 files changed, 151 insertions(+), 20 deletions(-) create mode 100644 src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index 763485c8e..6ec53d5bd 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.setting.dto; -import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.common.SharedTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -8,12 +10,56 @@ import lombok.NoArgsConstructor; import java.util.List; - +/** + * 薪资帐套表 + */ @Data @Builder @NoArgsConstructor @AllArgsConstructor +//hrsa_page_list_template public class PageListTemplateDTO { - private List setting; - private List checked; + + + private Long id; + + + /** + * 模板名称 + */ + @TableTitle(title = "模板名称",dataIndex = "name",key = "name") + private String name; + + /** + * 页面 + */ + private String page; + + /** + * 设置 + */ + private List setting; + + /** + * 是否共享,0否,1是 + * @see SharedTypeEnum + */ + @TableTitle(title = "可见性",dataIndex = "sharedType",key = "sharedType") + private Integer sharedType; + + /** + * 是否系统模板 + */ + @TableTitle(title = "是否系统模板",dataIndex = "systemType",key = "systemType") + private Integer systemType; + + + /** + * 限制 + */ + @ElogTransform(name = "限制") + private List limitIds; + + private Boolean canEdit; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java new file mode 100644 index 000000000..7826c24ce --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.setting.dto; + +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateDetailDTO { + private List setting; + private List checked; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java index 61213bbee..4170f5d2a 100644 --- a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.setting.param; +import com.engine.salary.common.BaseQueryParam; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,7 +14,7 @@ import lombok.NoArgsConstructor; @Builder @NoArgsConstructor @AllArgsConstructor -public class PageListTemplateQueryParam { +public class PageListTemplateQueryParam extends BaseQueryParam { private Long id; diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 7bf701910..51951b942 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -2,8 +2,10 @@ package com.engine.salary.service; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.util.page.PageInfo; import java.util.List; @@ -17,7 +19,7 @@ public interface SettingService { * @param param * @return */ - PageListTemplateDTO getDefaultPageListSetting(PageListSettingQueryParam param); + PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param); @Deprecated void resetPageListSetting(PageListSettingResetParam param); @@ -27,7 +29,7 @@ public interface SettingService { * @param param * @return */ - PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param); + PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param); /** * 获取可选模板列表 @@ -51,4 +53,5 @@ public interface SettingService { List getPageListColumns(String page); + PageInfo getTemplates(PageListTemplateQueryParam param); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index eda0c7b1f..2fec4e809 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -9,6 +9,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; @@ -28,6 +29,8 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import weaver.hrm.User; @@ -94,7 +97,7 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public PageListTemplateDTO getDefaultPageListSetting(PageListSettingQueryParam param) { + public PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param) { String page = param.getPage(); if (SALARY_DETAILS_REPORT.getValue().equals(page)) { List columns = new ArrayList<>(); @@ -146,10 +149,10 @@ public class SettingServiceImpl extends Service implements SettingService { } else { checkedList = columns; } - return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build(); + return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build(); } - return PageListTemplateDTO.builder().setting(new ArrayList<>()).checked(new ArrayList<>()).build(); + return PageListTemplateDetailDTO.builder().setting(new ArrayList<>()).checked(new ArrayList<>()).build(); } @Override @@ -167,7 +170,7 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { + public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) { String page = param.getPage(); if (SALARY_DETAILS_REPORT.getValue().equals(page)) { List columns = new ArrayList<>(); @@ -226,10 +229,10 @@ public class SettingServiceImpl extends Service implements SettingService { checkedList = columnList; } } - return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build(); + return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build(); } - return PageListTemplateDTO.builder().build(); + return PageListTemplateDetailDTO.builder().build(); } @Override @@ -248,7 +251,7 @@ public class SettingServiceImpl extends Service implements SettingService { PageListTemplatePO systemTemplate = pos.stream().filter(po -> po.getSystemType() != null && po.getSystemType() == 1).findFirst().orElse(null); if (systemTemplate == null) { //查询系统默认配置 - PageListTemplateDTO pageListSetting = getDefaultPageListSetting(PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build()); + PageListTemplateDetailDTO pageListSetting = getDefaultPageListSetting(PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build()); systemTemplate = PageListTemplatePO.builder() .id(IdGenerator.generate()) @@ -306,7 +309,19 @@ public class SettingServiceImpl extends Service implements SettingService { PageListTemplatePO po; if (id == null) { - po = PageListTemplatePO.builder().id(IdGenerator.generate()).page(param.getPage()).name(param.getName()).sharedType(param.getSharedType()).limitIds(param.getLimitIds()).setting(param.getSetting()).creator((long) user.getUID()).createTime(now).updateTime(now).deleteType(0).tenantKey(DEFAULT_TENANT_KEY).build(); + po = PageListTemplatePO.builder() + .id(IdGenerator.generate()) + .page(param.getPage()) + .name(param.getName()) + .sharedType(param.getSharedType()) + .systemType(0) + .limitIds(param.getLimitIds()) + .setting(param.getSetting()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY).build(); getPageListTemplateMapper().insertIgnoreNull(po); } else { po = getPageListTemplateMapper().getById(id); @@ -341,7 +356,38 @@ public class SettingServiceImpl extends Service implements SettingService { @Override public List getPageListColumns(String page) { - PageListTemplateDTO pageListTemplate = getPageListTemplate((PageListTemplateQueryParam.builder().page(page).build())); + PageListTemplateDetailDTO pageListTemplate = getPageListTemplate((PageListTemplateQueryParam.builder().page(page).build())); return pageListTemplate.getChecked(); } + + @Override + public PageInfo getTemplates(PageListTemplateQueryParam param) { + PageListTemplatePO build = PageListTemplatePO.builder().page(param.getPage()).build(); + List pos = getPageListTemplateMapper().listSome(build); + + //权限控制 + Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + Boolean chief = getTaxAgentService().isChief((long) user.getUID()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + List templateDTOS = pos.stream() + .filter(po -> { + if (po.getSharedType() == 1) { + List limitIds = po.getLimitIds(); + return CollectionUtil.isNotEmpty(limitIds) && CollectionUtil.intersection(limitIds, taxIds).size() != 0; + } + return true; + }).map(po -> PageListTemplateDTO.builder() + .id(po.getId()) + .page(po.getPage()) + .name(po.getName()) + .sharedType(po.getSharedType()) + .systemType(po.getSystemType()) + .limitIds(po.getLimitIds()) + .setting(po.getSetting()) + .canEdit(chief || po.getSystemType() == 0) + .build()) + .collect(Collectors.toList()); + + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), templateDTOS, PageListTemplateDTO.class); + } } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 0895ec79e..0026d451b 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -2,11 +2,13 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; +import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.SalaryCommonWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; @@ -88,7 +90,7 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListSettingQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } /** @@ -103,7 +105,7 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String getPageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param); } /** @@ -121,6 +123,14 @@ public class SalaryCommonController { return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); } + @POST + @Path("/pageList/template/pageList") + @Produces(MediaType.APPLICATION_JSON) + public String getTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getTemplates, param); + } + /** * 页面模板列表 * @param request diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 2cf59dd73..0198b817d 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -3,12 +3,14 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.service.SalaryCacheService; import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryCacheServiceImpl; import com.engine.salary.service.impl.SettingServiceImpl; +import com.engine.salary.util.page.PageInfo; import weaver.hrm.User; import java.util.List; @@ -41,12 +43,12 @@ public class SalaryCommonWrapper extends Service { } - public PageListTemplateDTO getPageListSetting(PageListSettingQueryParam param) { + public PageListTemplateDetailDTO getPageListSetting(PageListSettingQueryParam param) { return getSettingService(user).getDefaultPageListSetting(param); } - public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { + public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) { return getSettingService(user).getPageListTemplate(param); } @@ -54,6 +56,10 @@ public class SalaryCommonWrapper extends Service { return getSettingService(user).getPageListTemplates(param); } + public PageInfo getTemplates(PageListTemplateQueryParam param) { + return getSettingService(user).getTemplates(param); + } + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { return getSettingService(user).savePageListTemplate(param); } From 3e3350bcd66f07462754f1ed8b496b24725e87a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 10:14:39 +0800 Subject: [PATCH 04/38] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/PageListTemplateDeleteParam.java | 18 +++++++++++++ .../engine/salary/service/SettingService.java | 2 ++ .../service/impl/SettingServiceImpl.java | 25 +++++++++++++++++++ .../salary/web/SalaryCommonController.java | 9 +++++++ .../salary/wrapper/SalaryCommonWrapper.java | 4 +++ 5 files changed, 58 insertions(+) create mode 100644 src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java new file mode 100644 index 000000000..d02ac39b4 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java @@ -0,0 +1,18 @@ +package com.engine.salary.entity.setting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateDeleteParam { + private List ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 51951b942..a859a3393 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -54,4 +54,6 @@ public interface SettingService { List getPageListColumns(String page); PageInfo getTemplates(PageListTemplateQueryParam param); + + void deletePageListTemplate(PageListTemplateDeleteParam param); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 2fec4e809..88818cb9c 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -390,4 +390,29 @@ public class SettingServiceImpl extends Service implements SettingService { return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), templateDTOS, PageListTemplateDTO.class); } + + @Override + public void deletePageListTemplate(PageListTemplateDeleteParam param) { + List ids = param.getIds(); + + if (CollUtil.isEmpty(ids)) { + throw new SalaryRunTimeException("未选择模板!"); + } + + ids.forEach(id -> { + PageListTemplatePO pageListTemplatePO = getPageListTemplateMapper().getById(id); + if (pageListTemplatePO == null) { + throw new SalaryRunTimeException("模板不存在!"); + } + if (pageListTemplatePO.getSystemType() == 1) { + throw new SalaryRunTimeException("系统模板不允许删除!"); + } + List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().templateId(id).build()); + if (CollUtil.isNotEmpty(pageLinkPOS)) { + throw new SalaryRunTimeException(pageListTemplatePO.getName() + "模板正被使用!不允许删除"); + } + }); + + getPageListTemplateMapper().deleteByIds(ids); + } } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 0026d451b..b7cd6404f 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -146,6 +146,15 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); } + @POST + @Path("/pageList/template/delete") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::deletePageListTemplate, param); + } + + /** * 页面模板列表 * @param request diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 0198b817d..d4bebab23 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -64,6 +64,10 @@ public class SalaryCommonWrapper extends Service { return getSettingService(user).savePageListTemplate(param); } + public void deletePageListTemplate(PageListTemplateDeleteParam param) { + getSettingService(user).deletePageListTemplate(param); + } + public void changePageListTemplate(PageListTemplateChangeParam param) { getSettingService(user).changePageListTemplate(param); } From 051a38d408d357eda3d1b3c246054323e4e1db79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 11:46:00 +0800 Subject: [PATCH 05/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=92=8C=E8=96=AA?= =?UTF-8?q?=E8=B5=84=E6=A1=A3=E6=A1=88=E6=94=AF=E6=8C=81=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A2=9E=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/SIArchivesService.java | 2 + .../service/impl/SIArchivesServiceImpl.java | 5 ++ .../timer/AutoSyncEmpArchiveStartDateJob.java | 46 ++++++++++++++----- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/com/engine/salary/service/SIArchivesService.java b/src/com/engine/salary/service/SIArchivesService.java index 8e114c756..dd13f472a 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -162,4 +162,6 @@ public interface SIArchivesService { List listInsuranceArchivesFundSchemeByIds(List ids); List listInsuranceArchivesOtherSchemeByIds(List ids); + + List listAll(); } diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index b14d1b74a..fe07b84a8 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -4218,4 +4218,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService partition.forEach(list -> resultList.addAll(getOtherSchemeMapper().getOtherById(list))); return resultList; } + + @Override + public List listAll() { + return getInsuranceBaseInfoMapper().listAll(); + } } diff --git a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java index 1b4c32c84..6c817ed4e 100644 --- a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java +++ b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java @@ -3,12 +3,15 @@ package com.engine.salary.timer; import com.engine.common.util.ServiceUtil; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.mapper.siarchives.FundSchemeMapper; import com.engine.salary.mapper.siarchives.OtherSchemeMapper; @@ -22,14 +25,12 @@ import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,25 +39,28 @@ import java.util.stream.Collectors; * @date 2023/08/14 9:30 * @description 自动同步人员社保福利档案、薪资档案为公司开始日期字段(companystartdate) */ +@Slf4j public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { private SalaryArchiveService getSalaryArchiveService(User user) { - return ServiceUtil.getService(SalaryArchiveServiceImpl.class,user); + return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return ServiceUtil.getService(SalaryEmployeeServiceImpl.class,user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } private SIArchivesService getSIArchivesService(User user) { - return ServiceUtil.getService(SIArchivesServiceImpl.class,user); + return ServiceUtil.getService(SIArchivesServiceImpl.class, user); } private String syncInsuranceArchive; - private String syncSalaryArchive; + private String allStayAddToPay; + private String allGotoFixed; + private SalaryArchiveBiz getSalaryArchiveMapper = new SalaryArchiveBiz(); private SocialSchemeMapper getSocialSchemeMapper() { @@ -72,14 +76,13 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { } - @Override public void execute() { User user = new User(); user.setUid(1); user.setLoginid("sysadmin"); - if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive,"false")) { + if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive, "false")) { // 同步社保福利档案 // 获取社保、公积金、其他福利中起始缴纳月任意一个为空的社保档案主表po List needSyncInsuranceBaseInfoList = getSIArchivesService(user).listStartDateIsNull(Collections.emptyList()); @@ -125,7 +128,7 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { }); } - if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive,"false")) { + if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive, "false")) { // 同步薪资档案 // 获取薪资档案起始发薪日为空且是待定薪资的档案 List salaryArchiveList = getSalaryArchiveService(user).listPayStartDateIsNull(SalaryArchiveListTypeEnum.PENDING.getValue()); @@ -154,6 +157,27 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { getSalaryArchiveMapper.batchUpdate(needUpdateArchiveList); } + + //一键定薪 + if (StringUtils.isNotBlank(allStayAddToPay) && !StringUtils.equals(allStayAddToPay, "false")) { + List allBaseInfoList = getSIArchivesService(user).listAll(); + List ids = allBaseInfoList.stream() + .filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue())) + .map(InsuranceArchivesBaseInfoPO::getId) + .collect(Collectors.toList()); + Map map = getSIArchivesService(user).stayAddToPay(ids); + log.info("社保一键定薪结果:" + map); + } + + if (StringUtils.isNotBlank(allGotoFixed) && !StringUtils.equals(allGotoFixed, "false")) { + SalaryArchiveQueryParam queryParam = SalaryArchiveQueryParam.builder().build(); + queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue())); + List salaryArchiveList = getSalaryArchiveService(user).getSalaryArchiveList(queryParam); + List ids = SalaryEntityUtil.properties(salaryArchiveList, SalaryArchiveListDTO::getId, Collectors.toList()); + Map map = getSalaryArchiveService(user).gotoFixed(ids); + log.info("薪资一键定薪结果:" + map); + } + } } From 85e3d414fe5e3678463f8e64f730545718a9b22b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 15:41:11 +0800 Subject: [PATCH 06/38] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/hrm/HrmSnapshotMapper.java | 3 + .../salary/mapper/hrm/HrmSnapshotMapper.xml | 460 +----------------- .../impl/SalaryEmployeeServiceImpl.java | 11 + 3 files changed, 27 insertions(+), 447 deletions(-) diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java index 077e96d70..b8598f68a 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -16,6 +16,8 @@ public interface HrmSnapshotMapper { */ List listAll(); + List snapshot(List employeeIds, Date snapshotTime); + /** * 条件查询 * @@ -87,4 +89,5 @@ public interface HrmSnapshotMapper { */ List currentEmpData(); + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml index 4ceb64c7a..b2cbfc262 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -58,7 +58,6 @@ - @@ -150,7 +149,14 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE delete_type = 0 + + + + @@ -158,7 +164,7 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -166,7 +172,7 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE delete_type = 0 + WHERE 1=1 AND ACCOUNTID1 = #{accountid1} @@ -790,445 +796,6 @@ - - - - INSERT INTO hrsa_hrm_snapshot - ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - VALUES - - - ( - #{item.accountid1}, - #{item.accountname}, - #{item.accounttype}, - #{item.accumfundaccount}, - #{item.assistantid}, - #{item.bankid1}, - #{item.belongto}, - #{item.bememberdate}, - #{item.bepartydate}, - #{item.birthday}, - #{item.birthplace}, - #{item.certificatenum}, - #{item.companystartdate}, - #{item.companyworkyear}, - #{item.costcenterid}, - #{item.countryid}, - #{item.degree}, - #{item.departmentid}, - #{item.departmentname}, - #{item.educationlevel}, - #{item.email}, - #{item.employeeId}, - #{item.enddate}, - #{item.extphone}, - #{item.fax}, - #{item.folk}, - #{item.healthinfo}, - #{item.homeaddress}, - #{item.id}, - #{item.islabouunion}, - #{item.jobactivitydesc}, - #{item.jobcall}, - #{item.joblevel}, - #{item.jobtitle}, - #{item.jobtitlename}, - #{item.lastlogindate}, - #{item.lastname}, - #{item.locationid}, - #{item.loginid}, - #{item.managerid}, - #{item.managerstr}, - #{item.maritalstatus}, - #{item.mobile}, - #{item.mobilecall}, - #{item.nationality}, - #{item.nativeplace}, - #{item.policy}, - #{item.probationenddate}, - #{item.regresidentplace}, - #{item.residentphone}, - #{item.residentplace}, - #{item.residentpostcode}, - #{item.resourcetype}, - #{item.seclevel}, - #{item.sex}, - #{item.snapshotTime}, - #{item.startdate}, - #{item.status}, - #{item.subcompanyid1}, - #{item.subcompanyname}, - #{item.telephone}, - #{item.tempresidentnumber}, - #{item.usekind}, - #{item.workcode}, - #{item.workroom}, - #{item.workstartdate}, - #{item.workyear}, - ) - - - - - - - INSERT INTO hrsa_hrm_snapshot ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - - - select - #{item.accountid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accountname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accounttype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accumfundaccount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.assistantid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bankid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.belongto,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bememberdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bepartydate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.birthday,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.birthplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.certificatenum,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.companystartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.companyworkyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.costcenterid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.countryid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.degree,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.departmentid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.departmentname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.educationlevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.email,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.employeeId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.enddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.extphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.fax,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.folk,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.healthinfo,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.homeaddress,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.islabouunion,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobactivitydesc,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobcall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.joblevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobtitle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobtitlename,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.lastlogindate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.lastname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.locationid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.loginid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.managerid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.managerstr,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.maritalstatus,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.mobile,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.mobilecall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.nationality,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.nativeplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.policy,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.probationenddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.regresidentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentpostcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.resourcetype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.seclevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.sex,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.snapshotTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.startdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.status,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.subcompanyid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.subcompanyname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.telephone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.tempresidentnumber,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.usekind,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workroom,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workstartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - from dual - - - - - - - INSERT INTO hrsa_hrm_snapshot ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - VALUES - ( - #{item.accountid1}, - #{item.accountname}, - #{item.accounttype}, - #{item.accumfundaccount}, - #{item.assistantid}, - #{item.bankid1}, - #{item.belongto}, - #{item.bememberdate}, - #{item.bepartydate}, - #{item.birthday}, - #{item.birthplace}, - #{item.certificatenum}, - #{item.companystartdate}, - #{item.companyworkyear}, - #{item.costcenterid}, - #{item.countryid}, - #{item.degree}, - #{item.departmentid}, - #{item.departmentname}, - #{item.educationlevel}, - #{item.email}, - #{item.employeeId}, - #{item.enddate}, - #{item.extphone}, - #{item.fax}, - #{item.folk}, - #{item.healthinfo}, - #{item.homeaddress}, - #{item.id}, - #{item.islabouunion}, - #{item.jobactivitydesc}, - #{item.jobcall}, - #{item.joblevel}, - #{item.jobtitle}, - #{item.jobtitlename}, - #{item.lastlogindate}, - #{item.lastname}, - #{item.locationid}, - #{item.loginid}, - #{item.managerid}, - #{item.managerstr}, - #{item.maritalstatus}, - #{item.mobile}, - #{item.mobilecall}, - #{item.nationality}, - #{item.nativeplace}, - #{item.policy}, - #{item.probationenddate}, - #{item.regresidentplace}, - #{item.residentphone}, - #{item.residentplace}, - #{item.residentpostcode}, - #{item.resourcetype}, - #{item.seclevel}, - #{item.sex}, - #{item.snapshotTime}, - #{item.startdate}, - #{item.status}, - #{item.subcompanyid1}, - #{item.subcompanyname}, - #{item.telephone}, - #{item.tempresidentnumber}, - #{item.usekind}, - #{item.workcode}, - #{item.workroom}, - #{item.workstartdate}, - #{item.workyear}, - ) - - - UPDATE hrsa_hrm_snapshot @@ -1300,7 +867,7 @@ workstartdate=#{workstartdate}, workyear=#{workyear}, - WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -1507,7 +1074,7 @@ workyear=#{workyear},
- WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -1522,8 +1089,7 @@ UPDATE hrsa_hrm_snapshot SET delete_type = 1 - WHERE delete_type = 0 - AND id IN + WHERE id IN #{id} diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 6d6637dc5..42b555cdb 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -15,6 +15,7 @@ import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.hrm.dto.FieldSetting; import com.engine.salary.entity.hrm.po.ExpandFieldSettingsPO; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; @@ -23,6 +24,7 @@ import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.hrm.ExpandFieldSettingsMapper; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SalarySobExtRangeService; @@ -33,6 +35,7 @@ import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -60,6 +63,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee private EmployBiz employBiz = new EmployBiz(); + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + private EmployMapper getEmployMapper() { return SqlProxyHandle.getProxy(EmployMapper.class); } @@ -612,4 +619,8 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee } return SalaryI18nUtil.i18n(getEmployMapper().getJobCallInfoById(jobCallId)); } + + public List snapshot(List employeeIds, Date snapshotTime) { + return getHrmSnapshotMapper().snapshot(employeeIds, snapshotTime); + } } From 0114bdeb3f40e74a543c67d1f43114dbfbf7549c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 17:45:56 +0800 Subject: [PATCH 07/38] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting/dto/PageListTemplateDTO.java | 12 ++++--- .../entity/setting/po/PageListTemplatePO.java | 2 +- .../salary/enums/common/SharedTypeEnum.java | 15 ++++++-- .../service/impl/SettingServiceImpl.java | 35 ++++++++++++++++--- 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index 6ec53d5bd..d30ad0cc1 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -1,6 +1,5 @@ package com.engine.salary.entity.setting.dto; -import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.annotation.TableTitle; import com.engine.salary.enums.common.SharedTypeEnum; import lombok.AllArgsConstructor; @@ -44,20 +43,25 @@ public class PageListTemplateDTO { * 是否共享,0否,1是 * @see SharedTypeEnum */ - @TableTitle(title = "可见性",dataIndex = "sharedType",key = "sharedType") private Integer sharedType; + @TableTitle(title = "可见性",dataIndex = "sharedTypeName",key = "sharedTypeName") + private String sharedTypeName; + /** * 是否系统模板 */ - @TableTitle(title = "是否系统模板",dataIndex = "systemType",key = "systemType") private Integer systemType; + @TableTitle(title = "是否系统模板",dataIndex = "systemTypeName",key = "systemTypeName") + private String systemTypeName; + + @TableTitle(title = "范围",dataIndex = "systemType",key = "systemType") + private String limits; /** * 限制 */ - @ElogTransform(name = "限制") private List limitIds; private Boolean canEdit; diff --git a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java index c6a013da1..1b2f727b4 100644 --- a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java +++ b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java @@ -48,7 +48,7 @@ public class PageListTemplatePO { * 是否共享,0否,1是 * @see SharedTypeEnum */ - @ElogTransform(name = "可见性:0公共,1私有") + @ElogTransform(name = "可见性:1私有,0共享") private Integer sharedType; /** diff --git a/src/com/engine/salary/enums/common/SharedTypeEnum.java b/src/com/engine/salary/enums/common/SharedTypeEnum.java index eec98de1d..286962c24 100644 --- a/src/com/engine/salary/enums/common/SharedTypeEnum.java +++ b/src/com/engine/salary/enums/common/SharedTypeEnum.java @@ -2,10 +2,12 @@ package com.engine.salary.enums.common; import com.engine.salary.enums.BaseEnum; +import java.util.Objects; + public enum SharedTypeEnum implements BaseEnum { - PUBLIC(0, "公共", 86568), - PRIVATE(1, "私有", 86569); + PRIVATE(1, "私有", 86569), + PUBLIC(0, "共享", 86568); private Integer value; @@ -34,4 +36,13 @@ public enum SharedTypeEnum implements BaseEnum { public String getDefaultLabel() { return this.defaultLabel; } + + public static SharedTypeEnum parseByValue(Integer value) { + for (SharedTypeEnum enums : SharedTypeEnum.values()) { + if (Objects.equals(enums.getValue(), value)) { + return enums; + } + } + return PUBLIC; + } } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 88818cb9c..2274368d3 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -290,9 +290,19 @@ public class SettingServiceImpl extends Service implements SettingService { Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); pos = pos.stream().filter(po -> { - if (po.getSharedType() == 1) { + SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); + //系统模板直接可见 + if(po.getSystemType()==1){ + return true; + } + //私有,只能自己看到 + if (sharedTypeEnum == SharedTypeEnum.PRIVATE) { + return Objects.equals((long) user.getUID(), po.getCreator()); + } + //共享 + if (sharedTypeEnum == SharedTypeEnum.PUBLIC) { List limitIds = po.getLimitIds(); - return CollectionUtil.isNotEmpty(limitIds) && CollectionUtil.intersection(limitIds, taxIds).size() != 0; + return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0; } return true; }).peek(po -> { @@ -371,9 +381,19 @@ public class SettingServiceImpl extends Service implements SettingService { List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); List templateDTOS = pos.stream() .filter(po -> { - if (po.getSharedType() == 1) { + SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); + //系统模板直接可见 + if(po.getSystemType()==1){ + return true; + } + //私有,只能自己看到 + if (sharedTypeEnum == SharedTypeEnum.PRIVATE) { + return Objects.equals((long) user.getUID(), po.getCreator()); + } + //共享 + if (sharedTypeEnum == SharedTypeEnum.PUBLIC) { List limitIds = po.getLimitIds(); - return CollectionUtil.isNotEmpty(limitIds) && CollectionUtil.intersection(limitIds, taxIds).size() != 0; + return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0; } return true; }).map(po -> PageListTemplateDTO.builder() @@ -382,9 +402,11 @@ public class SettingServiceImpl extends Service implements SettingService { .name(po.getName()) .sharedType(po.getSharedType()) .systemType(po.getSystemType()) + .sharedTypeName(SharedTypeEnum.parseByValue(po.getSharedType()).getDefaultLabel()) + .systemTypeName(po.getSystemType() == 1 ? "系统模板" : "自定义") .limitIds(po.getLimitIds()) .setting(po.getSetting()) - .canEdit(chief || po.getSystemType() == 0) + .canEdit(chief || (Objects.equals((long) user.getUID(), po.getCreator()) && po.getSystemType() == 0)) .build()) .collect(Collectors.toList()); @@ -407,6 +429,9 @@ public class SettingServiceImpl extends Service implements SettingService { if (pageListTemplatePO.getSystemType() == 1) { throw new SalaryRunTimeException("系统模板不允许删除!"); } + if (!Objects.equals((long) user.getUID(), pageListTemplatePO.getCreator())) { + throw new SalaryRunTimeException(pageListTemplatePO.getName() + "模板无权限删除!"); + } List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().templateId(id).build()); if (CollUtil.isNotEmpty(pageLinkPOS)) { throw new SalaryRunTimeException(pageListTemplatePO.getName() + "模板正被使用!不允许删除"); From 5fedafc67ee290fc1064c2a4089e77dbf22e52ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 Dec 2024 10:17:12 +0800 Subject: [PATCH 08/38] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/setting/dto/PageListTemplateDTO.java | 2 +- .../engine/salary/service/impl/SettingServiceImpl.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index d30ad0cc1..24570f54a 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -56,7 +56,7 @@ public class PageListTemplateDTO { @TableTitle(title = "是否系统模板",dataIndex = "systemTypeName",key = "systemTypeName") private String systemTypeName; - @TableTitle(title = "范围",dataIndex = "systemType",key = "systemType") + @TableTitle(title = "范围",dataIndex = "limits",key = "limits") private String limits; /** diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 2274368d3..8e421905e 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -289,10 +289,11 @@ public class SettingServiceImpl extends Service implements SettingService { //权限控制 Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + Boolean chief = getTaxAgentService().isChief((long) user.getUID()); pos = pos.stream().filter(po -> { SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); //系统模板直接可见 - if(po.getSystemType()==1){ + if (chief || po.getSystemType() == 1) { return true; } //私有,只能自己看到 @@ -376,6 +377,8 @@ public class SettingServiceImpl extends Service implements SettingService { List pos = getPageListTemplateMapper().listSome(build); //权限控制 + List agentPOList = getTaxAgentService().listAll(); + Map idNameMap = SalaryEntityUtil.convert2Map(agentPOList, TaxAgentPO::getId, TaxAgentPO::getName); Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); Boolean chief = getTaxAgentService().isChief((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); @@ -383,7 +386,7 @@ public class SettingServiceImpl extends Service implements SettingService { .filter(po -> { SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); //系统模板直接可见 - if(po.getSystemType()==1){ + if (chief || po.getSystemType() == 1) { return true; } //私有,只能自己看到 @@ -404,6 +407,7 @@ public class SettingServiceImpl extends Service implements SettingService { .systemType(po.getSystemType()) .sharedTypeName(SharedTypeEnum.parseByValue(po.getSharedType()).getDefaultLabel()) .systemTypeName(po.getSystemType() == 1 ? "系统模板" : "自定义") + .limits(CollUtil.isEmpty(po.getLimitIds()) ? "所有" : Optional.ofNullable(po.getLimitIds()).orElse(new ArrayList<>()).stream().map(id -> idNameMap.getOrDefault(id, "")).collect(Collectors.joining(","))) .limitIds(po.getLimitIds()) .setting(po.getSetting()) .canEdit(chief || (Objects.equals((long) user.getUID(), po.getCreator()) && po.getSystemType() == 0)) From ec0e74a8eb907edec4a0c31f6ebceaa56322186d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 Dec 2024 10:26:37 +0800 Subject: [PATCH 09/38] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A8=A1=E6=9D=BFbug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SettingServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 8e421905e..0cea169f8 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -408,7 +408,7 @@ public class SettingServiceImpl extends Service implements SettingService { .sharedTypeName(SharedTypeEnum.parseByValue(po.getSharedType()).getDefaultLabel()) .systemTypeName(po.getSystemType() == 1 ? "系统模板" : "自定义") .limits(CollUtil.isEmpty(po.getLimitIds()) ? "所有" : Optional.ofNullable(po.getLimitIds()).orElse(new ArrayList<>()).stream().map(id -> idNameMap.getOrDefault(id, "")).collect(Collectors.joining(","))) - .limitIds(po.getLimitIds()) + .limitIds(CollUtil.isEmpty(po.getLimitIds()) ? new ArrayList<>() : po.getLimitIds()) .setting(po.getSetting()) .canEdit(chief || (Objects.equals((long) user.getUID(), po.getCreator()) && po.getSystemType() == 0)) .build()) From de5af5f2c90bddffc9e43b95cb98d49d562a2dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:00:05 +0800 Subject: [PATCH 10/38] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/hrm/po/HrmSnapshotPO.java | 6 ++ .../salaryacct/bo/SalaryAcctEmployeeBO.java | 20 +++--- .../salaryacct/bo/SalaryAcctFormulaBO.java | 6 +- .../salary/mapper/hrm/HrmSnapshotMapper.java | 8 +-- .../salary/mapper/hrm/HrmSnapshotMapper.xml | 19 ++++++ .../salary/service/SalaryEmployeeService.java | 3 + .../impl/SalaryAcctEmployeeServiceImpl.java | 68 ++++++++++++------- .../impl/SalaryEmployeeServiceImpl.java | 48 ++++++++++++- .../engine/salary/timer/HrmSnapshotJob.java | 29 ++++---- 9 files changed, 150 insertions(+), 57 deletions(-) diff --git a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java index 2dc410de5..48411733a 100644 --- a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java +++ b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java @@ -221,6 +221,12 @@ public class HrmSnapshotPO { @ElogTransform(name = "职称") private Integer jobcall; + /** + * 职称名称 + */ + @ElogTransform(name = "职称名称") + private String jobcallname; + /** * 工作级别 */ diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index a8dbc514e..09505ef25 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -103,16 +103,16 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) - .departmentId(emp.getDepartmentId()) - .departmentName(emp.getDepartmentName()) - .jobcall(emp.getJobcall()) - .jobcallId(emp.getJobcallId()) - .jobtitleId(emp.getJobtitleId()) - .jobtitleName(emp.getJobtitleName()) - .subcompanyId(emp.getSubcompanyid()) - .subcompanyName(emp.getSubcompanyName()) - .status(emp.getStatus()) - .accountType(emp.getAccountType()) +// .departmentId(emp.getDepartmentId()) +// .departmentName(emp.getDepartmentName()) +// .jobcall(emp.getJobcall()) +// .jobcallId(emp.getJobcallId()) +// .jobtitleId(emp.getJobtitleId()) +// .jobtitleName(emp.getJobtitleName()) +// .subcompanyId(emp.getSubcompanyid()) +// .subcompanyName(emp.getSubcompanyName()) +// .status(emp.getStatus()) +// .accountType(emp.getAccountType()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index cc19925b2..b3335f05e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -6,12 +6,14 @@ import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; import java.math.BigDecimal; import java.util.Collections; @@ -115,8 +117,8 @@ public class SalaryAcctFormulaBO { .mobile(simpleEmployee.getMobile()) .telephone(simpleEmployee.getTelephone()) .sex(sexName) - .status(simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatusName()) + .status(salaryAcctEmployeePO.getStatus()) + .statusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployeePO.getStatus(), "1")))) .accountType(simpleEmployee.getAccountType()) .accountTypeName(simpleEmployee.getAccountTypeName()) .departmentName(salaryAcctEmployeePO.getDepartmentName()) diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java index b8598f68a..81082b003 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -16,7 +16,7 @@ public interface HrmSnapshotMapper { */ List listAll(); - List snapshot(List employeeIds, Date snapshotTime); + List snapshot(@Param("employeeId")Long employeeId, @Param("snapshotTime")Date snapshotTime); /** * 条件查询 @@ -42,12 +42,6 @@ public interface HrmSnapshotMapper { */ int insertIgnoreNull(HrmSnapshotPO hrmSnapshot); - /** - * 批量插入 - * - * @param hrmSnapshot - */ - void batchInsert(@Param("collection") List hrmSnapshot); /** * 修改,修改所有字段 diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml index b2cbfc262..d56a738ea 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -35,6 +35,7 @@ + @@ -107,6 +108,7 @@ , t.ISLABOUUNION , t.JOBACTIVITYDESC , t.JOBCALL + , t.jobcallname , t.JOBLEVEL , t.JOBTITLE , t.JOBTITLENAME @@ -157,6 +159,8 @@ FROM hrsa_hrm_snapshot t WHERE snapshot_time >= #{snapshotTime} + AND employee_id = #{employeeId} + order by snapshot_time @@ -269,6 +273,9 @@ AND JOBCALL = #{jobcall} + + AND jobcallname = #{jobcallname} + AND JOBLEVEL = #{joblevel} @@ -485,6 +492,9 @@ JOBCALL, + + jobcallname, + JOBLEVEL, @@ -688,6 +698,9 @@ #{jobcall}, + + #{jobcallname}, + #{joblevel}, @@ -831,6 +844,7 @@ ISLABOUUNION=#{islabouunion}, JOBACTIVITYDESC=#{jobactivitydesc}, JOBCALL=#{jobcall}, + jobcallname=#{jobcallname}, JOBLEVEL=#{joblevel}, JOBTITLE=#{jobtitle}, JOBTITLENAME=#{jobtitlename}, @@ -968,6 +982,9 @@ JOBCALL=#{jobcall}, + + jobcallname=#{jobcallname}, + JOBLEVEL=#{joblevel}, @@ -1148,6 +1165,7 @@ ,e.DEGREE ,e.USEKIND ,e.JOBCALL + ,job.NAME as jobcallname ,e.ACCUMFUNDACCOUNT ,e.BIRTHPLACE ,e.FOLK @@ -1177,6 +1195,7 @@ left join hrmdepartment d on e.departmentid = d.id left join HrmSubCompany c on e.SUBCOMPANYID1=c.id left join hrmjobtitles j on e.jobtitle = j.id + left join hrmjobcall job on e.jobcall=job.id \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index f3b19a040..e5b25c281 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -9,6 +9,7 @@ import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; +import java.util.Date; import java.util.List; import java.util.Map; @@ -181,4 +182,6 @@ public interface SalaryEmployeeService { * @return */ JobCallInfo getJobCallInfoById(Long jobCallId); + + List snapshot(List employeeIds, Date snapshotTime); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 90391abd4..fbb5851f7 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -7,7 +7,6 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; -import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctConfig; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; @@ -154,24 +153,24 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void addFromReduce(SalaryAcctEmployeeAddParam addParam) { - ValidUtil.doValidator(addParam); - // 查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } - // 查询环比减少的薪资核算人员 - List salaryAcctEmployeePOS = listByIds(addParam.getIds()); - if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "薪资核算人员不存在或已被删除")); - } - // 添加薪资核算人员 - Date now = new Date(); - List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() - .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { - batchSave(newSalaryAcctEmployeePOS); - } +// ValidUtil.doValidator(addParam); +// // 查询薪资核算记录 +// SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); +// if (Objects.isNull(salaryAcctRecordPO)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); +// } +// // 查询环比减少的薪资核算人员 +// List salaryAcctEmployeePOS = listByIds(addParam.getIds()); +// if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "薪资核算人员不存在或已被删除")); +// } +// // 添加薪资核算人员 +// Date now = new Date(); +// List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() +// .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); +// if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { +// batchSave(newSalaryAcctEmployeePOS); +// } } @Override @@ -431,6 +430,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "个税扣缴义务人下无该人员档案信息或薪资缴纳日期不在薪资周期内")); } + + //替换快照数据 + shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(salaryAcctEmployeePOS); @@ -447,6 +449,24 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); } + private void shotEmpData(List salaryAcctEmployeePOS, Date shotTime) { + List employees = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List snapshot = getSalaryEmployeeService(user).snapshot(employees, shotTime); + Map shotEmpMap = SalaryEntityUtil.convert2Map(snapshot, DataCollectionEmployee::getEmployeeId); + salaryAcctEmployeePOS.forEach(salaryAcctEmployeePO -> { + DataCollectionEmployee shotEmp = shotEmpMap.getOrDefault(salaryAcctEmployeePO.getEmployeeId(), new DataCollectionEmployee()); + salaryAcctEmployeePO.setDepartmentId(shotEmp.getDepartmentId()); + salaryAcctEmployeePO.setDepartmentName(shotEmp.getDepartmentName()); + salaryAcctEmployeePO.setJobcall(shotEmp.getJobcall()); + salaryAcctEmployeePO.setJobcallId(shotEmp.getJobcallId()); + salaryAcctEmployeePO.setJobtitleId(shotEmp.getJobtitleId()); + salaryAcctEmployeePO.setJobtitleName(shotEmp.getJobtitleName()); + salaryAcctEmployeePO.setSubcompanyId(shotEmp.getSubcompanyid()); + salaryAcctEmployeePO.setSubcompanyName(shotEmp.getSubcompanyName()); + salaryAcctEmployeePO.setStatus(shotEmp.getStatus()); + salaryAcctEmployeePO.setAccountType(shotEmp.getAccountType()); + }); + } @Override public void batchSave(Collection salaryAcctEmployeePOS) { if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { @@ -560,6 +580,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 保存薪资核算人员 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { + shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(salaryAcctEmployeePOS); } } @@ -606,6 +627,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); deleteByIds(delIds); + shotEmpData(addEmps, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(addEmps); } @@ -762,7 +784,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList()); } - if(isRealOrg){ + if (isRealOrg) { Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); } @@ -788,16 +810,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException("锁定状态异常!"); } - if (updateParam.getLockStatus() == LockStatusEnum.LOCK){ + if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { SalaryAcctConfig salaryAcctSobConfig = getSalaryAcctSobConfigService(user).getSalaryAcctConfig(updateParam.getSalaryAcctRecordId()); List salarySobItems = salaryAcctSobConfig.getSalarySobItems(); - List itemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId,Collectors.toList()); + List itemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { salaryAcctEmployeePO.setLockItems(itemIds); lock(salaryAcctEmployeePO); }); - }else { + } else { salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { salaryAcctEmployeePO.setLockItems(new ArrayList<>()); lock(salaryAcctEmployeePO); diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 42b555cdb..9dc5673e1 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSON; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; @@ -19,6 +20,7 @@ import com.engine.salary.entity.hrm.po.HrmSnapshotPO; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; @@ -620,7 +622,49 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return SalaryI18nUtil.i18n(getEmployMapper().getJobCallInfoById(jobCallId)); } - public List snapshot(List employeeIds, Date snapshotTime) { - return getHrmSnapshotMapper().snapshot(employeeIds, snapshotTime); + public List snapshot(List employeeIds, Date snapshotTime) { + + List currentEmployees = getEmployeeByIdsAll(employeeIds); + Map currentEmployeeMap = SalaryEntityUtil.convert2Map(currentEmployees, DataCollectionEmployee::getEmployeeId); + + List employees = employeeIds.stream() + .map(employeeId -> { + + List snapshot = getHrmSnapshotMapper().snapshot(employeeId, snapshotTime); + + return snapshot.stream().findFirst().map(hrmSnapshotPO -> DataCollectionEmployee. + builder() + .employeeId(employeeId) + .username(hrmSnapshotPO.getLastname()) + .departmentName(hrmSnapshotPO.getDepartmentname()) + .departmentId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) + .subcompanyName(hrmSnapshotPO.getSubcompanyname()) + .subcompanyid(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) + .costcenterId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) + .locationId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) + .jobtitleName(hrmSnapshotPO.getJobtitlename()) + .jobtitleId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) + .companystartdate(hrmSnapshotPO.getCompanystartdate()) + .mobile(hrmSnapshotPO.getMobile()) +// .dismissdate() + .status(Util.null2String(hrmSnapshotPO.getStatus())) + .statusName(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(Util.null2String(hrmSnapshotPO.getStatus()), 1))) + .workcode(hrmSnapshotPO.getWorkcode()) + .sex(hrmSnapshotPO.getSex()) + .email(hrmSnapshotPO.getEmail()) + .telephone(hrmSnapshotPO.getTelephone()) + .jobcall(hrmSnapshotPO.getJobcallname()) + .jobcallId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) + .birthday(hrmSnapshotPO.getBirthday()) + .workYear(hrmSnapshotPO.getWorkyear() == null ? 0.00 : hrmSnapshotPO.getWorkyear().doubleValue()) + .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? 0.00 : hrmSnapshotPO.getCompanyworkyear().doubleValue()) + .idNo(hrmSnapshotPO.getCertificatenum()) + .accountTypeName(AccountTypeEnum.getDefaultLabelByValue(hrmSnapshotPO.getAccounttype())) + .accountType(hrmSnapshotPO.getAccounttype()) + .build()) + .orElse(currentEmployeeMap.get(employeeId)); + }).collect(Collectors.toList()); + + return SalaryI18nUtil.i18nList(employees); } } diff --git a/src/com/engine/salary/timer/HrmSnapshotJob.java b/src/com/engine/salary/timer/HrmSnapshotJob.java index 5a256371a..ac0a7a091 100644 --- a/src/com/engine/salary/timer/HrmSnapshotJob.java +++ b/src/com/engine/salary/timer/HrmSnapshotJob.java @@ -6,6 +6,7 @@ import com.engine.salary.mapper.hrm.HrmSnapshotMapper; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; @@ -13,9 +14,10 @@ import java.time.LocalDate; import java.util.Date; import java.util.List; - +@Slf4j public class HrmSnapshotJob extends BaseCronJob { + //指定筷子时间 private String appointSnapshotTime; private HrmSnapshotMapper getHrmSnapshotMapper() { @@ -28,24 +30,25 @@ public class HrmSnapshotJob extends BaseCronJob { user.setUid(1); user.setLoginid("sysadmin"); - List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); + try { + List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); - Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); + Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); - //先删除当日快照 - getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); + //先删除当日快照 + getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); - hrmSnapshotPOS.forEach(hrmSnapshotPO -> { + hrmSnapshotPOS.forEach(hrmSnapshotPO -> { - hrmSnapshotPO.setId(IdGenerator.generate()); - hrmSnapshotPO.setSnapshotTime(snapshotTime); + hrmSnapshotPO.setId(IdGenerator.generate()); + hrmSnapshotPO.setSnapshotTime(snapshotTime); - getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); + getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); - }); - - - System.out.println(hrmSnapshotPOS); + }); + }catch (Exception e){ + log.error("生成快照失败", e); + } } } From 5b8562edb694301f7146c103654fb8bbeb3ee882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:00:53 +0800 Subject: [PATCH 11/38] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salarysob/bo/SalarySobCycleBO.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java index 0111dbece..37a505a31 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java @@ -4,6 +4,7 @@ import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.SalaryCycleTypeEnum; +import com.engine.salary.util.SalaryDateUtil; import java.time.*; import java.util.Date; @@ -30,7 +31,8 @@ public class SalarySobCycleBO { if (salarySob == null) { return null; } - return SalarySobCycleDTO.builder() + + SalarySobCycleDTO salarySobCycleDTO = SalarySobCycleDTO.builder() .salarySobId(salarySob.getId()) .salaryMonth(salaryMonth) .taxCycle(buildCycle(salaryMonth, salarySob.getTaxCycleType())) @@ -38,6 +40,18 @@ public class SalarySobCycleBO { .salaryCycle(buildCycleDateRange(salaryMonth, salarySob.getSalaryCycleType(), salarySob.getSalaryCycleFromDay())) .attendCycle(buildCycleDateRange(salaryMonth, salarySob.getAttendCycleType(), salarySob.getAttendCycleFromDay())) .build(); + + salarySobCycleDTO.setSalaryDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSalaryMonth(), 1)); + salarySobCycleDTO.setTaxDate(SalaryDateUtil.toDate(salarySobCycleDTO.getTaxCycle(), 1)); + salarySobCycleDTO.setSocialSecurityDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSocialSecurityCycle(), 1)); + LocalDateRange salaryCycle = salarySobCycleDTO.getSalaryCycle(); + salarySobCycleDTO.setSalaryCycleFromDate(salaryCycle.getFromDate()); + salarySobCycleDTO.setSalaryCycleEndDate(salaryCycle.getEndDate()); + LocalDateRange attendCycle = salarySobCycleDTO.getAttendCycle(); + salarySobCycleDTO.setAttendCycleFromDate(attendCycle.getFromDate()); + salarySobCycleDTO.setAttendCycleEndDate(attendCycle.getEndDate()); + + return salarySobCycleDTO; } /** From 0b6a832c4fb2bdebb5a09efd3d6fcdc1a1a66d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:05:51 +0800 Subject: [PATCH 12/38] =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryEmployeeServiceImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 9dc5673e1..1dedb0bfb 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -637,13 +637,13 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee .employeeId(employeeId) .username(hrmSnapshotPO.getLastname()) .departmentName(hrmSnapshotPO.getDepartmentname()) - .departmentId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) + .departmentId(hrmSnapshotPO.getDepartmentid() == null ? null : NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) .subcompanyName(hrmSnapshotPO.getSubcompanyname()) - .subcompanyid(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) - .costcenterId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) - .locationId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) + .subcompanyid(hrmSnapshotPO.getSubcompanyid1() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) + .costcenterId(hrmSnapshotPO.getCostcenterid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) + .locationId(hrmSnapshotPO.getLocationid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) .jobtitleName(hrmSnapshotPO.getJobtitlename()) - .jobtitleId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) + .jobtitleId(hrmSnapshotPO.getJobtitle() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) .companystartdate(hrmSnapshotPO.getCompanystartdate()) .mobile(hrmSnapshotPO.getMobile()) // .dismissdate() @@ -654,10 +654,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee .email(hrmSnapshotPO.getEmail()) .telephone(hrmSnapshotPO.getTelephone()) .jobcall(hrmSnapshotPO.getJobcallname()) - .jobcallId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) + .jobcallId(hrmSnapshotPO.getJobcall() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) .birthday(hrmSnapshotPO.getBirthday()) - .workYear(hrmSnapshotPO.getWorkyear() == null ? 0.00 : hrmSnapshotPO.getWorkyear().doubleValue()) - .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? 0.00 : hrmSnapshotPO.getCompanyworkyear().doubleValue()) + .workYear(hrmSnapshotPO.getWorkyear() == null ? null : hrmSnapshotPO.getWorkyear().doubleValue()) + .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? null : hrmSnapshotPO.getCompanyworkyear().doubleValue()) .idNo(hrmSnapshotPO.getCertificatenum()) .accountTypeName(AccountTypeEnum.getDefaultLabelByValue(hrmSnapshotPO.getAccounttype())) .accountType(hrmSnapshotPO.getAccounttype()) From 7d346aa4b0853261674dffb20db4490323380021 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 6 Dec 2024 16:33:52 +0800 Subject: [PATCH 13/38] =?UTF-8?q?fix=E9=9D=9E=E7=B3=BB=E7=BB=9F=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E6=97=B6=EF=BC=8Cemployeetype=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index d32117615..e368c3d2d 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -782,6 +782,7 @@ public class SalaryArchiveExcelBO extends Service { // .modifier(importHandleParam.getCurrentEmployeeId()) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeType(importHandleParam.isExtEmp() ? 1 : 0) .build(); // 定薪action 保持状态为待定薪 if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { From 4100ba1331ec345edf5e8c8da65db06f49afbe79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 13:21:25 +0800 Subject: [PATCH 14/38] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctEmployeeBO.java | 20 +++---- .../impl/SalaryAcctEmployeeServiceImpl.java | 27 ++++++--- .../sys/constant/SalarySysConstant.java | 10 ++++ .../salary/sys/enums/ShotTimeTypeEnum.java | 57 +++++++++++++++++++ 4 files changed, 97 insertions(+), 17 deletions(-) create mode 100644 src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 09505ef25..a8dbc514e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -103,16 +103,16 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) -// .departmentId(emp.getDepartmentId()) -// .departmentName(emp.getDepartmentName()) -// .jobcall(emp.getJobcall()) -// .jobcallId(emp.getJobcallId()) -// .jobtitleId(emp.getJobtitleId()) -// .jobtitleName(emp.getJobtitleName()) -// .subcompanyId(emp.getSubcompanyid()) -// .subcompanyName(emp.getSubcompanyName()) -// .status(emp.getStatus()) -// .accountType(emp.getAccountType()) + .departmentId(emp.getDepartmentId()) + .departmentName(emp.getDepartmentName()) + .jobcall(emp.getJobcall()) + .jobcallId(emp.getJobcallId()) + .jobtitleId(emp.getJobtitleId()) + .jobtitleName(emp.getJobtitleName()) + .subcompanyId(emp.getSubcompanyid()) + .subcompanyName(emp.getSubcompanyName()) + .status(emp.getStatus()) + .accountType(emp.getAccountType()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index fbb5851f7..8f30feb53 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -27,6 +27,7 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam; import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -431,9 +432,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "个税扣缴义务人下无该人员档案信息或薪资缴纳日期不在薪资周期内")); } - //替换快照数据 - shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(salaryAcctEmployeePOS); + //保存核算人员 + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); // 记录日志 @@ -449,6 +449,19 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); } + private void saveAcctEmployeePOS(List salaryAcctEmployeePOS, SalarySobCycleDTO sobCycle) { + + boolean shotEmpBtn = "1".equals(getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_BTN)); + + //替换快照数据 + if (shotEmpBtn) { + String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); + shotEmpData(salaryAcctEmployeePOS, sobCycle.getSalaryCycleFromDate()); + } + //保存 + batchSave(salaryAcctEmployeePOS); + } + private void shotEmpData(List salaryAcctEmployeePOS, Date shotTime) { List employees = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List snapshot = getSalaryEmployeeService(user).snapshot(employees, shotTime); @@ -467,6 +480,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct salaryAcctEmployeePO.setAccountType(shotEmp.getAccountType()); }); } + @Override public void batchSave(Collection salaryAcctEmployeePOS) { if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { @@ -580,8 +594,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 保存薪资核算人员 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { - shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(salaryAcctEmployeePOS); + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); } } @@ -627,8 +640,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); deleteByIds(delIds); - shotEmpData(addEmps, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(addEmps); + + saveAcctEmployeePOS(addEmps, salarySobCycleDTO); } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index b5d5384ea..4f5966095 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -204,4 +204,14 @@ public class SalarySysConstant { * 审批流程发起后允许修改核算数据 */ public static final String APPROVAL_CAN_EDIT_RESULT_STATUS = "APPROVAL_CAN_EDIT_RESULT_STATUS"; + + /** + * 是否采用组织快照,0:关闭 1:开启 + */ + public static final String SHOT_EMP_BTN = "SHOT_EMP_BTN"; + + /** + * 快照时间点 + */ + public static final String SHOT_EMP_TIME_TYPE = "SHOT_EMP_TIME_TYPE"; } diff --git a/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java new file mode 100644 index 000000000..a375c2314 --- /dev/null +++ b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java @@ -0,0 +1,57 @@ +package com.engine.salary.sys.enums; + +import com.engine.salary.enums.BaseEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 快照时间点类型 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum ShotTimeTypeEnum implements BaseEnum { + + salaryFirstDate("salaryFirstDate", "薪资所属月第一天", 1), + salaryLastDate("salaryLastDate", "薪资所属月最后一天", 1), + salaryCycleFromDate("salaryCycleFromDate", "薪资周期起始日期", 1), + salaryCycleEndDate("salaryCycleEndDate", "薪资周期结束日期", 1); + + private String value; + + private String defaultLabel; + + private int labelId; + + + ShotTimeTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static ShotTimeTypeEnum parseByValue(String value) { + for (ShotTimeTypeEnum e : ShotTimeTypeEnum.values()) { + if (StringUtils.equals(e.getValue(), value)) { + return e; + } + } + return salaryCycleFromDate; + } +} From 7c1e314f2ca4a9f9a68ea6fdc234e2468d3bfba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 14:20:52 +0800 Subject: [PATCH 15/38] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctEmployeeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 8f30feb53..3932486e6 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -455,7 +455,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //替换快照数据 if (shotEmpBtn) { - String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); +// String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); shotEmpData(salaryAcctEmployeePOS, sobCycle.getSalaryCycleFromDate()); } //保存 From d52e13f09e9c08f1ce4db15a9ab3b0be0b677c76 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Dec 2024 14:34:57 +0800 Subject: [PATCH 16/38] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A2=9E=E5=8A=A0=E8=AF=81=E4=BB=B6=E5=8F=B7?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/impl/SalaryStatisticsEmployeeServiceImpl.java | 1 + src/com/engine/salary/service/impl/SettingServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 808c6620e..1b45b4881 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -282,6 +282,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("jobTitle", Util.null2String(emp.getJobtitleName())); map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null)); map.put("workCode", Util.null2String(emp.getWorkcode())); + map.put("idNo", Util.null2String(emp.getIdNo())); map.put("companystartdate", Util.null2String(emp.getCompanystartdate())); // IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 0cea169f8..16771e0ea 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -183,6 +183,7 @@ public class SettingServiceImpl extends Service implements SettingService { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "岗位"), "jobTitle")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "员工状态"), "status")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件号码"), "idNo")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "入职日期"), "companystartdate")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); if (StrUtil.isNotBlank(param.getName())) { From b3dcafa6f12095a81840453a8a3fc684194575ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 15:12:33 +0800 Subject: [PATCH 17/38] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 60b4e6089..f60ec7a4f 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.17.1.2411.01 +version=2.18.1.2412.01 openFormulaForcedEditing=false \ No newline at end of file From 77f7640a2413b9f3dc499a97bbda53ceaf719db4 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Dec 2024 17:13:29 +0800 Subject: [PATCH 18/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1key=E5=A2=9E=E5=8A=A0=E4=B9=89?= =?UTF-8?q?=E5=8A=A1=E4=BA=BAid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index cafeb921a..7fb64e893 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -4915,7 +4915,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void siAccounting(AccountParam param) { //福利核算进度 - ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth()); + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { return; } @@ -4998,10 +4998,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { .setProgress(BigDecimal.ZERO) .setStatus(true) .setMessage(StringUtils.EMPTY); - getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), initProgress); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); if (CollectionUtils.isEmpty(ids)) { - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); return; } @@ -5017,11 +5017,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { getSIAccountDetailTempMapper().batchDelByEmpIdsAndMonthAndPayOrg(part, param.getBillMonth(), param.getPaymentOrganization()); }); log.info("更新福利核算进度······"); - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); log.info("福利核算进度完成!"); } catch (Exception e) { log.error("account run fail", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); if (CollectionUtils.isNotEmpty(list)) { @@ -5111,11 +5111,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (count % 50 == 0 || count >= ids.size()) { if (count >= ids.size()) { - getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth, BigDecimal.valueOf(0.99), false); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, BigDecimal.valueOf(0.99), false); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } else { - getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth, count >= ids.size() ? count % 50 : 50); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, count >= ids.size() ? count % 50 : 50); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth) + "_" + paymentOrganization); } } @@ -5738,7 +5738,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } } catch (Exception e) { log.error("福利核算数据处理失败", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); throw e; } } From c872fc69ba782978f0b791c74120a7f6b02df9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 17:13:45 +0800 Subject: [PATCH 19/38] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/wrapper/SalarySobItemWrapper.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index e1ed86869..07006c6a4 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -75,9 +75,7 @@ public class SalarySobItemWrapper extends Service { Integer searchPageSize = queryParam.getPageSize(); Integer searchCurrent = queryParam.getCurrent(); - PageInfo page = getSalaryItemService(user).listPageByParam(queryParam); - - List salaryItemList = page.getList(); + List salaryItemList = getSalaryItemService(user).listByParam(queryParam); Set taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()) .stream().map(TaxAgentPO::getId) @@ -95,22 +93,23 @@ public class SalarySobItemWrapper extends Service { } }) .collect(Collectors.toList()); - salaryItemList = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + //最终返回的分页对象 PageInfo dtoPage = new PageInfo<>(SalaryItemSobListDTO.class); dtoPage.setPageSize(searchPageSize); dtoPage.setPageNum(searchCurrent); - dtoPage.setTotal(page.getTotal()); - if (CollectionUtils.isNotEmpty(salaryItemList)) { + dtoPage.setTotal(salaryItemList.size()); + List list = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + if (CollectionUtils.isNotEmpty(list)) { // 查询公式 - Set formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId); + Set formulaIds = SalaryEntityUtil.properties(list, SalaryItemPO::getFormulaId); List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); // 查询系统薪资项目 - Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId); + Set sysSalaryItemIds = SalaryEntityUtil.properties(list, SalaryItemPO::getSysSalaryItemId); List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 转换成薪资项目列表dto - dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS)); + dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(list, expressFormulas, sysSalaryItemPOS)); } return dtoPage; From 89ca47d65e861639da3544b3185cfbf5e1ffd297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Dec 2024 09:12:35 +0800 Subject: [PATCH 20/38] =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 7fb64e893..83a8b57f3 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -5115,7 +5115,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } else { getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, count >= ids.size() ? count % 50 : 50); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth) + "_" + paymentOrganization); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } } From 1715b58badfb4b3d2510af5ef9980b842ea5ba07 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 10 Dec 2024 11:00:05 +0800 Subject: [PATCH 21/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E8=BF=9B=E5=BA=A6=E6=9D=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 83a8b57f3..75ca5f92d 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -650,6 +650,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { AccountParam accountParam = new AccountParam(); accountParam.setBillMonth(param.getBillMonth()); accountParam.setIds(collect); + + //福利核算进度 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return; + } + // 初始化进度 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + siAccounting(accountParam); } @@ -4891,6 +4908,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { // AccountParam selectParam = new AccountParam(); // selectParam.setBillMonth(param.getBillMonth()); // selectParam.setPaymentOrganization(param.getPaymentOrganization()); + + //福利核算进度 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return String.valueOf(user.getUID()); + } + // 初始化进度 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + ExecutorService taskExecutor = Executors.newCachedThreadPool(); taskExecutor.execute(() -> { siAccounting(param); @@ -4914,11 +4948,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void siAccounting(AccountParam param) { - //福利核算进度 - ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); - if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { - return; - } + // //福利核算进度 + // ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + // if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + // return; + // } log.info("开始核算,当前操作人为:{}", user.getLastname()); log.info("核算时间:{}, 核算月份:{}, 个税扣缴义务人:{}, 是否首次核算:{}", new Date(), param.getBillMonth(), param.getPaymentOrganization(), param.isFlag()); From b769e762ca1d3e1317bf94ec9b516fb47e30411d Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 10 Dec 2024 11:50:20 +0800 Subject: [PATCH 22/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E9=9D=9E=E7=B3=BB=E7=BB=9F=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 75ca5f92d..18d48fccd 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -5077,6 +5077,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!isFirstFlag) { // 不是首次核算,需要把社保历史数据取出 historyDetailData.addAll(getInsuranceAccountDetailMapper().list(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); + historyDetailData.addAll(getInsuranceAccountDetailMapper().extList(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); } else { employeeList = getSalaryEmployeeService(user).listByIds(ids); } From b8fdc4dde61c6197e74cbdf52ac185d4b18ac460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Dec 2024 16:25:20 +0800 Subject: [PATCH 23/38] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 97e872736..ce89f8196 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -521,6 +521,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = config.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // 查询薪资项目 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); @@ -615,6 +616,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = salaryAcctConfig.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // 查询薪资项目 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); From bd3b815bcf29db5d4481520d89e581fbcca04fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 11 Dec 2024 11:04:42 +0800 Subject: [PATCH 24/38] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index 65d771bdf..c2b8fd33c 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -77,14 +77,12 @@ public class SalaryAcctRecordPO { * 回算(上次核算的薪资核算记录id) */ @Deprecated -// //备用字段1", ignore = true) private Long superId; /** * 回算(最原始的那次薪资核算记录id) */ @Deprecated -// //备用字段2", ignore = true) private Long rootId; /** From 4ddb123b3d56191637714558675fe653b29eeb25 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 11 Dec 2024 15:22:08 +0800 Subject: [PATCH 25/38] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=B7=A5=E8=B5=84=E5=8D=95=E5=88=97=E8=A1=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryBill/dto/SalaryMySalaryBillListDTO.java | 2 ++ .../engine/salary/service/impl/SalarySendServiceImpl.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java index 0cce85393..8824004c6 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java @@ -34,5 +34,7 @@ public class SalaryMySalaryBillListDTO { private Long employeeId; + private String salaryCode; + } diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 6bce71730..0b394d56a 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -17,6 +17,7 @@ import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -822,7 +823,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } return true; }) - .peek(dto -> dto.setEmployeeId((long) user.getUID())) + .peek(dto -> { + dto.setEmployeeId((long) user.getUID()); + dto.setSalaryCode(AESEncryptUtil.encrypt4SalaryBill(String.valueOf(user.getUID()))); + }) .collect(Collectors.toList()); PageInfo pageInfo = new PageInfo<>(list, SalaryMySalaryBillListDTO.class); From 83df05b7632b70ec5662662ef2de4ea58f462649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Dec 2024 10:18:07 +0800 Subject: [PATCH 26/38] =?UTF-8?q?=E6=8E=A7=E5=88=B6=E4=B8=8B=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E7=B1=BB=E5=9E=8B=E6=98=BE=E7=A4=BA=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryarchive/bo/SalaryArchiveBO.java | 6 ++++-- .../salary/wrapper/SalaryArchiveWrapper.java | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index aa5ae2961..4261d8da2 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -61,7 +61,7 @@ public class SalaryArchiveBO { * * @param salaryItems */ - public static List buildSalaryArchiveTable(List salaryItems) { + public static List buildSalaryArchiveTable(List salaryItems, boolean openSecondaryAccount) { // 表格表头 List columns = new ArrayList<>(); WeaTableColumn idColumn = new WeaTableColumn("100px", "id", "id"); @@ -72,7 +72,9 @@ public class SalaryArchiveBO { employeeIdColumn.setDisplay(WeaBoolAttr.FALSE); columns.add(employeeIdColumn); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "username")); - columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "账号类型"), "accountType")); + if (openSecondaryAccount) { + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "账号类型"), "accountType")); + } columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName")); diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 22a642feb..85977afe1 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -26,6 +26,8 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.process.salaryArchive.SalaryArchiveProcessQueryParam; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.google.common.collect.Lists; @@ -38,6 +40,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_SECONDARY_ACCOUNT; + /** * 薪资档案 *

Copyright: Copyright (c) 2022

@@ -73,6 +77,12 @@ public class SalaryArchiveWrapper extends Service { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //主次账号是否开启 + boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); /** * 薪资档案列表(分页) @@ -101,7 +111,7 @@ public class SalaryArchiveWrapper extends Service { //动态列组装 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); @@ -153,7 +163,7 @@ public class SalaryArchiveWrapper extends Service { //动态列组装 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); From 19a43857037b97494173f192f2f2df2d83c7acb5 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 12 Dec 2024 15:30:26 +0800 Subject: [PATCH 27/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SIArchivesServiceImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index fe07b84a8..87f1cf0ba 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3278,6 +3278,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService .build(); String combineErrorMsg = ""; + log.info("oldSocialInfoListSize:" + oldSocialInfoList.size()); //组装新数据 if (oldSocialInfoList.size() == 1) { //老数据 @@ -3546,6 +3547,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return null; } + log.info("自动调整前 基数信息{}", paymentBaseJson); for (Map.Entry entry : paymentBaseJson.entrySet()) { //判断福利值是否为空/数字 @@ -3558,9 +3560,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //根据福利方案id、险种id、缴纳对象、缴费状态查询明细 List insuranceSchemeDetailPOList = getInsuranceSchemeDetailMapper().getByPI(primaryId, Long.valueOf(entry.getKey())); - log.info("福利方案id: {},, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); + log.info("自动调整 福利方案id: {},, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); if (insuranceSchemeDetailPOList.size() == 0) { - log.info("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); + log.info("自动调整 根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); throw new SalaryRunTimeException("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: "+primaryId+", 福利明细项id:{}"+ Long.valueOf(entry.getKey())); } List isPaymentList = insuranceSchemeDetailPOList.stream() @@ -3574,18 +3576,19 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { //数值低于对应福利明细下限 entry.setValue(lowerLimit); + log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}低于对应福利明细下限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), lowerLimit); } if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { //数值高于对应福利明细上限 entry.setValue(upperLimit); + log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}数值高于对应福利明细上限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), upperLimit); } } else { - log.info("福利明细项属于未缴费状态,不对上下限进行约束"); + log.info("自动调整 福利明细项属于未缴费状态,不对上下限进行约束"); return null; } - - } + log.info("自动调整后 基数信息{}", paymentBaseJson); return JSON.toJSONString(paymentBaseJson); } From 66912f62a4648e040af8528c2754a44b708e94cd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 12 Dec 2024 16:16:18 +0800 Subject: [PATCH 28/38] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIArchivesServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 87f1cf0ba..c29c44ac9 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3567,6 +3567,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } List isPaymentList = insuranceSchemeDetailPOList.stream() .filter(f -> f.getIsPayment().equals(IsPaymentEnum.YES.getValue()) && f.getPaymentScope().equals(paymentScope)).collect(Collectors.toList()); + log.info("自动调整 isPaymentList", isPaymentList.size()); if (isPaymentList.size() > 0) { InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); From c13cc9d0a29d9855ab3f87c10624d9e8695d0481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Dec 2024 18:24:00 +0800 Subject: [PATCH 29/38] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 2 +- src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index e368c3d2d..41b6050bb 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -782,7 +782,7 @@ public class SalaryArchiveExcelBO extends Service { // .modifier(importHandleParam.getCurrentEmployeeId()) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .employeeType(importHandleParam.isExtEmp() ? 1 : 0) + .employeeType(importHandleParam.isExtEmp() ? 1 : null) .build(); // 定薪action 保持状态为待定薪 if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index e9d06ab89..833128372 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -441,7 +441,7 @@ hrsa_salary_archive t LEFT JOIN hrsa_external_employee e ON e.id = t.employee_id WHERE t.delete_type = 0 - and t.employee_type is not null + and t.employee_type = 1 AND t.id IN From 874de98a91b224c1362113425f261e0bf9f55ab1 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 13 Dec 2024 16:19:56 +0800 Subject: [PATCH 30/38] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SIArchivesServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index c29c44ac9..0f44bf523 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3567,7 +3567,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } List isPaymentList = insuranceSchemeDetailPOList.stream() .filter(f -> f.getIsPayment().equals(IsPaymentEnum.YES.getValue()) && f.getPaymentScope().equals(paymentScope)).collect(Collectors.toList()); - log.info("自动调整 isPaymentList", isPaymentList.size()); + log.info("自动调整 isPaymentList: {}", isPaymentList.size()); if (isPaymentList.size() > 0) { InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); @@ -3585,8 +3585,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}数值高于对应福利明细上限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), upperLimit); } } else { - log.info("自动调整 福利明细项属于未缴费状态,不对上下限进行约束"); - return null; + log.info("自动调整 福利方案id: {},, 福利明细项id:{}福利明细项属于未缴费状态,不对上下限进行约束", primaryId, Long.valueOf(entry.getKey())); } } log.info("自动调整后 基数信息{}", paymentBaseJson); From ec88fc5b101cf62a4be4b334b61b309d96cb6701 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 13 Dec 2024 16:29:24 +0800 Subject: [PATCH 31/38] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4=20?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIArchivesServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 0f44bf523..6d45abc1f 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3585,7 +3585,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}数值高于对应福利明细上限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), upperLimit); } } else { - log.info("自动调整 福利方案id: {},, 福利明细项id:{}福利明细项属于未缴费状态,不对上下限进行约束", primaryId, Long.valueOf(entry.getKey())); + log.info("自动调整 福利明细项属于未缴费状态,不对上下限进行约束"); } } log.info("自动调整后 基数信息{}", paymentBaseJson); From 4d90d0d8f05c2bf10f98957d82b66d9da1dfd417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 16 Dec 2024 10:38:08 +0800 Subject: [PATCH 32/38] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=BB=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=9F=A5=E7=9C=8B=E6=AC=A1=E8=B4=A6=E5=8F=B7=E5=B7=A5?= =?UTF-8?q?=E8=B5=84=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/SQLMapper.java | 2 + src/com/engine/salary/mapper/SQLMapper.xml | 5 + .../service/impl/SalarySendServiceImpl.java | 101 +++++------------- 3 files changed, 36 insertions(+), 72 deletions(-) diff --git a/src/com/engine/salary/mapper/SQLMapper.java b/src/com/engine/salary/mapper/SQLMapper.java index 4d998fa88..9afff661a 100644 --- a/src/com/engine/salary/mapper/SQLMapper.java +++ b/src/com/engine/salary/mapper/SQLMapper.java @@ -15,4 +15,6 @@ import java.util.Map; **/ public interface SQLMapper { List runSQL(@Param("sql") String sql); + + List listLong(@Param("sql") String sql); } diff --git a/src/com/engine/salary/mapper/SQLMapper.xml b/src/com/engine/salary/mapper/SQLMapper.xml index bba76972c..b487b3f53 100644 --- a/src/com/engine/salary/mapper/SQLMapper.xml +++ b/src/com/engine/salary/mapper/SQLMapper.xml @@ -4,4 +4,9 @@ + + + diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 0b394d56a..30662220c 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -50,6 +50,7 @@ import com.engine.salary.enums.salarybill.*; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.SQLMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; @@ -65,6 +66,7 @@ import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -198,6 +200,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + private SQLMapper getSQLMapper() { + return MapperProxyFactory.getProxy(SQLMapper.class); + } + @Override public SalarySendPO getById(Long salarySendId) { return mapper.getById(salarySendId); @@ -479,9 +485,18 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (salarySendInfo == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "工资单信息不存在")); } + Long employeeId = salarySendInfo.getEmployeeId(); + if (currentEmployeeId.compareTo(employeeId) != 0) { - if (currentEmployeeId.compareTo(salarySendInfo.getEmployeeId()) != 0) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "当前账号无法查看此工资单")); + //主账号可以查看次账号工资单 + String sql = "select id from Hrmresource a where belongto= " + currentEmployeeId; + List belongtoIds = getSQLMapper().listLong(sql); + if (CollUtil.isNotEmpty(belongtoIds) && belongtoIds.contains(employeeId)) { + //切换user +// this.user = new User(new Integer(employeeId + "")); + } else { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "当前账号无法查看此工资单")); + } } // 获取默认模板信息 @@ -562,7 +577,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 获取薪资项目数据 Long salaryAcctRecordId = salarySendInfo.getSalaryAcctRecordId(); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(currentEmployeeId).build()); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(employeeId).build()); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("薪资核算结果不存在!"); } @@ -641,16 +656,16 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); - DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(employeeId); SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); - salaryTemplate.setTheme(getBillTitle(salaryTemplate.getTheme(), salaryMonth, currentEmployeeId)); + salaryTemplate.setTheme(getBillTitle(salaryTemplate.getTheme(), salaryMonth, employeeId)); // 工资单水印文本型动态变量 == 处理 - handleSalaryWatermark(salaryTemplate, salarySendInfo, currentEmployeeId); + handleSalaryWatermark(salaryTemplate, salarySendInfo, employeeId); map.put("salaryTemplate", salaryTemplate); map.put("salaryAcctResult", salaryAcctResultS); @@ -704,7 +719,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService MonthTypeEnum monthType = salaryBillViewingLimitSetting.getMonthType(); LocalDate localDate; if (monthType == MonthTypeEnum.SALARY_DATE) { - localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()+1).withDayOfMonth(1); + localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth() + 1).withDayOfMonth(1); } else { localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()); } @@ -720,7 +735,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService * @param salaryTemplate * @param salarySendInfo */ - private void handleSalaryWatermark(SalaryTemplatePO salaryTemplate, SalarySendInfoPO salarySendInfo, Long currentEmployeeId) { + private void handleSalaryWatermark(SalaryTemplatePO salaryTemplate, SalarySendInfoPO salarySendInfo, Long employeeId) { SalaryBillWatermarkDTO salaryBillWatermark = JsonUtil.parseObject(salaryTemplate.getSalaryWatermark(), SalaryBillWatermarkDTO.class); if (Objects.isNull(salaryBillWatermark) || Boolean.FALSE.equals(salaryBillWatermark.getWatermarkStatus())) { return; @@ -734,7 +749,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService boolean needQueryEmp = (boolean) salaryBillWatermark.getWmSetting().getOrDefault("needQueryEmp", false); DataCollectionEmployee simpleEmployee = null; if (needQueryEmp) { - simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(currentEmployeeId); + simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(employeeId); } String wmText = salaryBillWatermark.getWmSetting().getOrDefault("wmText", StringUtils.EMPTY).toString(); @@ -865,12 +880,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService * * @param theme * @param salaryMonth - * @param currentEmployeeId + * @param employeeId * @return */ - private String getBillTitle(String theme, Date salaryMonth, Long currentEmployeeId) { + private String getBillTitle(String theme, Date salaryMonth, Long employeeId) { String companyName = ""; - if (currentEmployeeId != null) { + if (employeeId != null) { ResourceComInfo resourceComInfo = null; SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); try { @@ -879,7 +894,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } catch (Exception e) { log.error("资源异常", e); } - companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(currentEmployeeId + "")); + companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(employeeId + "")); } return theme.replace("${companyName}", companyName) .replace("${salaryMonth}", new SimpleDateFormat("yyyy年MM月").format(salaryMonth)) @@ -934,7 +949,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .jobtitleName(simpleEmployee.getJobtitleName()) .jobtitleId(simpleEmployee.getJobtitleId()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(),"1"))).getDefaultLabel()) + .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(), "1"))).getDefaultLabel()) .accountTypeName(simpleEmployee.getAccountType() == null ? "" : AccountTypeEnum.parseByValue(simpleEmployee.getAccountType()).getDefaultLabel()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) @@ -1328,64 +1343,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } -// /** -// * 发送消息 -// * -// * @param salarySend -// * @param enableSendList -// * @param salaryTemplate -// * @param currentTenantKey -// */ -// private void sendMessage(SalarySendPO salarySend, List> enableSendList, SalaryTemplatePO salaryTemplate, String tenantName, Long currentEmployeeId, String currentTenantKey) { -// if (StringUtils.isNotBlank(salaryTemplate.getBackground())) { -// FileData fileByte = fileDownloadClient.getFileByte(Long.valueOf(salaryTemplate.getBackground()), currentTenantKey); -// String encode = Base64Encoder.encode(fileByte.getData()); -// salaryTemplate.setBackground(encode); -// } -// // 邮箱打开 -// boolean isEmailOpen = salaryTemplate.getEmailStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()); -// -// LocalDate salaryMonth = salarySend.getSalaryMonth(); -// String yearI18n = SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 100325, "年"); -// String monthI18n = SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 100326, "月"); -// String text = salaryMonth.getYear() + -// yearI18n + -// salaryMonth.getMonth().getValue() + -// monthI18n + -// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 100520, "工资待发明细"); -// -// UserEntity sendUser = null; -// // 标题 -// String title = getBillTitle(salaryTemplate.getTheme(), salaryMonth, tenantName, currentEmployeeId, currentTenantKey); -// -// // 获取所有人员信息 -// List ids = enableSendList.stream().map(e->Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList()); -// List allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey); -// List listDTOS = JSONArray.parseArray(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); -// Optional optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst(); -// SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null); -// Map employeeField = SalaryAcctResultBO.buildEmployeeFieldName(); -// enableSendList.forEach(e -> { -// Optional optionalSimpleEmployee = allEmployees.stream().filter(f->f.getEmployeeId().equals(Long.valueOf(e.get("employeeId").toString()))).findFirst(); -// if (optionalSimpleEmployee.isPresent()) { -// buildEmployeeInfo(employeeInformation, optionalSimpleEmployee.get(), e.get("taxAgent").toString(), employeeField); -// } -// -// List receivers = Collections.singletonList( -// SalarySendBO.buildUser(Long.valueOf(e.get("employeeId").toString()), e.get("email") == null ? "" : e.get("email").toString(), currentTenantKey)); -// Entity entity = SalarySendBO.buildEntity(e.get("id").toString(), SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 94626, "工资单")); -// EmailEntity emailInfo = new EmailEntity(); -// // 邮箱打开 -// if (isEmailOpen) { -// String emailContent = SalarySendBO.buildEmailContent(e, employeeInformation, title, salaryTemplate); -// emailInfo = SalarySendBO.buildEmailInfo(text, emailContent, salaryTemplate.getSendEmailId()); -// } -// SendMessageEntity message = SalarySendBO.buildSendMessageEntity(text, sendUser, receivers, entity, emailInfo); -// log.info("开始发送============:{}", JsonUtil.toJsonString(message)); -// // 开始发送 -// log.info("发送结果===:{}", JsonUtil.toJsonString(asyncSystemMessageRest.sendMsg(message))); -// }); -// } @Override public Map withdraw(SalarySendWithdrawParam param) { From 94da3d3a319a38a57b93979a38d328b39df0d44f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 16 Dec 2024 17:46:58 +0800 Subject: [PATCH 33/38] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=EF=BC=8C=E5=8D=95=E5=85=83=E6=A0=BC=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/report/wrapper/SalaryStatisticsReportWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index c516bb229..9d990ea50 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -472,7 +472,7 @@ public class SalaryStatisticsReportWrapper extends Service { SalaryStatisticsItemPO salaryStatisticsItemPO = salaryStatisticsItemMap.get(salaryItemId); if (salaryStatisticsItemPO != null) { Optional textItemOptional = Arrays.stream(salaryStatisticsItemPO.getItemValue().split(",")).filter(itemId -> !numberItemIds.contains(itemId)).findFirst(); - row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(Utils.null2String(map.get(k)))) ? new BigDecimal(Utils.null2String(map.get(k))) : map.getOrDefault(k, StringUtils.EMPTY)); + row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(Utils.null2String(map.get(k)).replaceAll(",", ""))) ? new BigDecimal(Utils.null2String(map.get(k)).replaceAll(",", "")) : map.getOrDefault(k, StringUtils.EMPTY)); } else { row.add(map.getOrDefault(k, StringUtils.EMPTY)); } From 10266bf73982fc705e7cedace88706cbecca19e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 17 Dec 2024 15:00:41 +0800 Subject: [PATCH 34/38] =?UTF-8?q?=E5=A4=84=E7=90=86=E7=A6=BB=E8=81=8C?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctExcelServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index ce89f8196..67aff3ecd 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1082,9 +1082,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc stopWatch.stop(); // 租户下所有的人员 stopWatch.start("薪资核算确认的人员"); - List salaryEmployees = getSalaryEmployeeService(user).listAllForReport(); - Map salaryEmployeeMap = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getUsername, DataCollectionEmployee::getEmployeeId); - Map emps = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getEmployeeId); + List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployees, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List salaryEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); stopWatch.stop(); // 租户下所有的个税扣缴义务人 stopWatch.start("租户下所有的个税扣缴义务人"); From bf8f55aaa9a3c74d9d48810305ac791d7adeba9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 17 Dec 2024 15:47:49 +0800 Subject: [PATCH 35/38] =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E7=8F=AD=E6=AC=A1=E7=BB=99=E5=87=BA=E6=8C=89=E9=92=AE=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RemoteAttend4SalaryServiceImpl.java | 25 ++++++++++++++++--- .../sys/constant/SalarySysConstant.java | 3 +++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java index eeddfd41d..c54bbf10b 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -2,12 +2,15 @@ package com.engine.salary.remote.attend.service.impl; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.kq.cmd.report.GetKQReportCmd; import com.engine.salary.mapper.datacollection.AttendQuoteFieldMapper; import com.engine.salary.remote.attend.cmd.GetSearchListCmd; import com.engine.salary.remote.attend.entity.Attend4Salary; import com.engine.salary.remote.attend.service.RemoteAttend4SalaryService; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -20,11 +23,14 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.general.Util; +import weaver.hrm.User; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.ATTENDANCE_SERIAL_COLLECTION_BTN; + @Slf4j public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAttend4SalaryService { private final Boolean isLog = "true".equals(new BaseBean().getPropValue("hrmSalary", "log")); @@ -33,12 +39,23 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt return MapperProxyFactory.getProxy(AttendQuoteFieldMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //是否采集考勤班次数据 + boolean isCollectAttendanceSerial = "1".equals(getSalarySysConfService(user).getValueByCode(ATTENDANCE_SERIAL_COLLECTION_BTN)); + + @Override public List> getColumns() { - //兼容获取班次信息字段 - List attendanceSerials = getAttendQuoteFieldMapper().getAttendanceSerials(); - String attendanceSerial = Joiner.on(",").join((Iterable) attendanceSerials); + //是否采集考勤班次数据 + String attendanceSerial = ""; + if (isCollectAttendanceSerial) { + List attendanceSerials = getAttendQuoteFieldMapper().getAttendanceSerials(); + attendanceSerial = Joiner.on(",").join((Iterable) attendanceSerials); + } Map paramsMap = new HashMap(); paramsMap.put("typeselect", "3"); @@ -146,7 +163,7 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt paramsMap.put("resourceId", String.join(",", resourceIds)); paramsMap.put("isNoAccount", "1"); //班次 - paramsMap.put("attendanceSerial", attend4Salary.getAttendanceSerial()); + paramsMap.put("attendanceSerial", isCollectAttendanceSerial ? attend4Salary.getAttendanceSerial() : ""); paramsMap.put("isFromMyAttendance", "1"); Map temp = new HashMap(); temp.put("data", JSONObject.toJSONString(paramsMap)); diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 4f5966095..7a3c052be 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -214,4 +214,7 @@ public class SalarySysConstant { * 快照时间点 */ public static final String SHOT_EMP_TIME_TYPE = "SHOT_EMP_TIME_TYPE"; + + //是否采集考勤班次数据,0:关闭 1:开启 + public static final String ATTENDANCE_SERIAL_COLLECTION_BTN = "ATTENDANCE_SERIAL_COLLECTION_BTN"; } From 7b82b570e402ca33cae715faab9606e5ab0f50a7 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 19 Dec 2024 16:59:38 +0800 Subject: [PATCH 36/38] =?UTF-8?q?=E8=8E=B7=E5=8F=96token=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?https=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/util/SalaryTokenUtil.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/util/SalaryTokenUtil.java b/src/com/engine/salary/util/SalaryTokenUtil.java index aaa53e1d9..653a0a821 100644 --- a/src/com/engine/salary/util/SalaryTokenUtil.java +++ b/src/com/engine/salary/util/SalaryTokenUtil.java @@ -90,6 +90,9 @@ public class SalaryTokenUtil { return heads; } BaseBean baseBean = new BaseBean(); + // 获取是否是https + String isHttps = baseBean.getPropValue("hrmSalaryBillToken", "is_https"); + String httpKey = (StringUtils.isNotBlank(isHttps) && isHttps.equals("true")) ? "https://" : "http://"; RecordSet rs = new RecordSet(); Map resultMap = new HashMap<>(); @@ -123,7 +126,7 @@ public class SalaryTokenUtil { heads.put("appid", appid); heads.put("cpk", cpk); // 调用ECOLOGY系统接口进行注册 - String data = post("http://" + ip + "/api/ec/dev/auth/regist", null, heads); + String data = post(httpKey + ip + "/api/ec/dev/auth/regist", null, heads); Map datas = JSONObject.parseObject(data, new TypeReference>() {}); // ECOLOGY返回的系统公钥 String spk = (String) (datas.get("spk")); @@ -144,7 +147,7 @@ public class SalaryTokenUtil { heads.put("appid", appid); heads.put("secret", secret); //调用ECOLOGY系统接口进行注册 - String data2 = post("http://" + ip + "/api/ec/dev/auth/applytoken", null, heads); + String data2 = post(httpKey + ip + "/api/ec/dev/auth/applytoken", null, heads); // 通过第一步注册许可时返回spk公钥对userid进行加密生成的密文 sql= " SELECT conf_value FROM hrsa_salary_sys_conf t WHERE delete_type = 0 AND conf_key = 'SALARY_TOKEN_SPK'"; rs.execute(sql); From bbb02bcd81819b8c86aea1140d985b40c87ba752 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 24 Dec 2024 15:39:58 +0800 Subject: [PATCH 37/38] =?UTF-8?q?fix=20=E6=8A=A5=E8=A1=A8=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E5=88=86=E9=83=A8=E7=BB=B4=E5=BA=A6=E9=94=99=E8=AF=AF?= =?UTF-8?q?=20fix=20=E8=B0=83=E8=96=AA=E8=AE=B0=E5=BD=95=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=94=9F=E6=95=88=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryStatisticsReportServiceImpl.java | 2 +- .../salary/service/impl/SalaryArchiveItemServiceImpl.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 5ee5edea8..2b62276cd 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -818,7 +818,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary data.getList().forEach(employee -> { if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { subComIdNameMap.put(employee.getSubcompanyId(), employee.getSubcompanyName()); - subComIds.add(employee.getDepartmentId()); + subComIds.add(employee.getSubcompanyId()); empIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); } }); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 431b56170..9e353083e 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -29,6 +29,7 @@ import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; import com.engine.salary.mapper.salaryitem.SalaryItemMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.vo.UploadConfigResponse; +import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryLoggerUtil; @@ -41,6 +42,7 @@ import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.User; @@ -706,7 +708,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi String userstatus = queryParam.getUserstatus(); r.setUsername(employee.getUsername()); r.setDepartmentName(employee.getDepartmentName()); - r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(NumberUtils.isCreatable(employee.getStatus()) ? employee.getStatus() : "-1"))); r.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(r.getAdjustReason())); return (StringUtils.isBlank(username) || employee.getUsername().contains(username)) && (CollectionUtils.isEmpty(departmentIds) || departmentIds.contains(employee.getDepartmentId())) @@ -739,7 +741,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi row.add(dto.getAdjustBefore()); row.add(dto.getAdjustAfter()); row.add(dto.getAdjustReason()); - row.add(dto.getEffectiveTime() + ""); + row.add(SalaryDateUtil.getFormatDate(dto.getEffectiveTime())); row.add(dto.getOperator()); row.add(format.format(dto.getOperateTime())); row.add(dto.getDescription()); From d4a42e0ed68d8fecf84aba593df87200eb613b88 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 25 Dec 2024 11:27:06 +0800 Subject: [PATCH 38/38] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E9=A1=B5=E9=9D=A2=E2=80=9C=E7=8E=AF=E6=AF=94?= =?UTF-8?q?=E4=B8=8A=E6=9C=88=E5=87=8F=E5=B0=91=E4=BA=BA=E5=91=98=E2=80=9D?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=90=8E=EF=BC=8C=E6=98=BE=E7=A4=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctEmployeeServiceImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 3932486e6..6f0bbb2e2 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -297,12 +297,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return Collections.emptyList(); } Set lastMonthSalaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId); - // 上个月的核算人员 - List lastMonthSalaryAcctEmployeePOS = listBySalaryAcctRecordIds(lastMonthSalaryAcctRecordIds); - Map lastMonthSalaryAcctEmployeePOMap = SalaryEntityUtil.convert2Map(lastMonthSalaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); // 本月的核算人员 - List salaryAcctEmployeePOS = listByParam(queryParam); + List salaryAcctEmployeePOS = listBySalaryAcctRecordId(queryParam.getSalaryAcctRecordId()); Set keySet = SalaryEntityUtil.properties(salaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); + // 上个月的核算人员 + queryParam.setSalaryAcctRecordId(null); + queryParam.setSalaryAcctRecordIds(lastMonthSalaryAcctRecordIds); + List lastMonthSalaryAcctEmployeePOS = listByParam(queryParam); + Map lastMonthSalaryAcctEmployeePOMap = SalaryEntityUtil.convert2Map(lastMonthSalaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); + List resultList = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(keySet)) { lastMonthSalaryAcctEmployeePOMap.forEach((k, v) -> {