From 11304bebed0aaa477752536f6cef44d4b4b2532f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 Apr 2024 15:55:41 +0800 Subject: [PATCH 01/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../updateSalaryApprovalStatusAction.java | 78 +++++++ .../salaryacct/po/SalaryAcctRecordPO.java | 10 + .../param/SalaryItemSearchParam.java | 3 + .../entity/salarysob/bo/SalaryApprovalBO.java | 91 ++++++++ .../salarysob/dto/SalaryApprovalDTO.java | 76 ++++++ .../param/ApprovalRequestSaveParam.java | 27 +++ .../param/SalaryApprovalQueryParam.java | 24 ++ .../salarysob/po/SalaryApprovalRulePO.java | 67 ++++++ .../salaryacct/SalaryAcctRecordMapper.xml | 6 + .../salarysob/SalaryApprovalRuleMapper.java | 72 ++++++ .../salarysob/SalaryApprovalRuleMapper.xml | 216 ++++++++++++++++++ .../service/SalaryApprovalRuleService.java | 104 +++++++++ .../impl/SalaryApprovalRuleServiceImpl.java | 201 ++++++++++++++++ .../salary/web/SalarySobController.java | 84 +++++++ .../salary/wrapper/SalaryApprovalWrapper.java | 146 ++++++++++++ .../salary/wrapper/SalarySobItemWrapper.java | 1 + 16 files changed, 1206 insertions(+) create mode 100644 src/com/engine/salary/action/updateSalaryApprovalStatusAction.java create mode 100644 src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java create mode 100644 src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java create mode 100644 src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java create mode 100644 src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java create mode 100644 src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java create mode 100644 src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java create mode 100644 src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml create mode 100644 src/com/engine/salary/service/SalaryApprovalRuleService.java create mode 100644 src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java create mode 100644 src/com/engine/salary/wrapper/SalaryApprovalWrapper.java diff --git a/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java b/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java new file mode 100644 index 000000000..14e613881 --- /dev/null +++ b/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java @@ -0,0 +1,78 @@ +package com.engine.salary.action; + +import cn.hutool.core.util.NumberUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; +import com.engine.salary.service.SalaryAcctRecordService; +import com.engine.salary.service.impl.SalaryAcctRecordServiceImpl; +import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName updateSalaryApprovalStatusAction + * @author Harryxzy + * @date 2024/4/24 15:44 + * @description 跟新薪资核算审批状态 + */ +@Slf4j +public class updateSalaryApprovalStatusAction implements Action { + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalaryAcctRecordMapper getSalaryAcctRecordMapper() { + return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class); + } + + + // 记录薪资核算记录id的字段 + private String salaryAcctRecordIdField; + + // 修改为对应的状态 + private String status; + + @Override + public String execute(RequestInfo requestInfo) { + try { + if (StringUtils.isEmpty(salaryAcctRecordIdField)) { + requestInfo.getRequestManager().setMessage("薪资核算记录id字段不能为空"); + return FAILURE_AND_CONTINUE; + } + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + String salaryAcctRecordId = fieldMap.get(salaryAcctRecordIdField); + if (!NumberUtil.isNumber(salaryAcctRecordId)) { + requestInfo.getRequestManager().setMessage("核算记录id不为数字"); + return FAILURE_AND_CONTINUE; + } + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(Long.valueOf(salaryAcctRecordId)); + if (salaryAcctRecordPO == null) { + requestInfo.getRequestManager().setMessage("核算记录不存在或已被删除"); + return FAILURE_AND_CONTINUE; + } + salaryAcctRecordPO.setApprovalStatus(status); + getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO); + } catch (Exception e) { + log.error("审批状态更新失败", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index d2f089f21..c4a5e8d78 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -123,6 +123,16 @@ public class SalaryAcctRecordPO { @ElogTransform( name = "更新时间" ) private Date updateTime; + /** + * 审批流程id + */ + private String approvalId; + + /** + * 审批状态 + */ + private String approvalStatus; + /** * 锁定的薪资项目 */ diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java index 32e088f1e..e0c63f108 100644 --- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java +++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java @@ -25,6 +25,9 @@ import java.util.Collection; @AllArgsConstructor public class SalaryItemSearchParam extends BaseQueryParam { + // 账套id + private Long salarySobId; + //名称 private String name; diff --git a/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java b/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java new file mode 100644 index 000000000..f8657019c --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java @@ -0,0 +1,91 @@ +package com.engine.salary.entity.salarysob.bo; + +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.SalaryEntityUtil; +import org.apache.commons.lang.StringUtils; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalBO + * @date 2024/04/23 17:47 + * @description 薪资账套的薪资审批 + */ +public class SalaryApprovalBO { + + public static SalaryApprovalDTO convert2DTO(SalaryApprovalRulePO salaryApprovalRulePO, List salaryItemList) { + if (salaryApprovalRulePO == null) { + return new SalaryApprovalDTO(); + } + Map salaryItemNameMap = SalaryEntityUtil.convert2Map(salaryItemList, SalaryItemPO::getId, SalaryItemPO::getName); + List approvalItemGroups = JsonUtil.parseList(salaryApprovalRulePO.getApprovalGroupSetting(), SalaryApprovalDTO.approvalItemGroup.class); + for (SalaryApprovalDTO.approvalItemGroup group : approvalItemGroups) { + for(SalaryApprovalDTO.approvalItem item : group.getApprovalItems()) { + item.setSalaryItemName(salaryItemNameMap.getOrDefault(item.getSalaryItemId(), "")); + } + } + + return SalaryApprovalDTO.builder() + .id(salaryApprovalRulePO.getId()) + .salarySobId(salaryApprovalRulePO.getSalarySobId()) + .isOpenApproval(salaryApprovalRulePO.getOpenApproval().equals(1)) + .approvalWorkflowUrl(StringUtils.isBlank(salaryApprovalRulePO.getWorkflowUrl()) ? "" : salaryApprovalRulePO.getWorkflowUrl()) + .approvalItemGroup(approvalItemGroups) + .build(); + + } + + /** + * 将账套薪资项目设置转换成审批中的项目设置信息 + * @param aggregateBySalarySobId + */ + public static String sobItemAggregate2approvalGroupSetting(SalarySobItemAggregateDTO aggregateBySalarySobId) { + List groupList = new ArrayList<>(); + // 薪资项目分组 + List itemGroups = aggregateBySalarySobId.getItemGroups(); + for (SalarySobItemGroupDTO sobItemGroupDTO: itemGroups) { + SalaryApprovalDTO.approvalItemGroup approvalGroup = new SalaryApprovalDTO.approvalItemGroup(); + approvalGroup.setGroupName(sobItemGroupDTO.getName()); + approvalGroup.setSorted(sobItemGroupDTO.getSortedIndex()); + List approvalItemList = new ArrayList<>(); + for (SalarySobItemDTO groupItem : sobItemGroupDTO.getItems()) { + SalaryApprovalDTO.approvalItem approvalItem = new SalaryApprovalDTO.approvalItem(); + approvalItem.setSalaryItemId(groupItem.getSalaryItemId()); + approvalItem.setSalaryItemName(groupItem.getName()); + approvalItem.setSorted(groupItem.getSortedIndex()); + approvalItemList.add(approvalItem); + } + approvalGroup.setApprovalItems(approvalItemList); + groupList.add(approvalGroup); + } + // 未分类 + List items = aggregateBySalarySobId.getItems(); + List approvalItemList2 = new ArrayList<>(); + for (SalarySobItemDTO groupItem : items) { + SalaryApprovalDTO.approvalItem approvalItem = new SalaryApprovalDTO.approvalItem(); + approvalItem.setSalaryItemId(groupItem.getSalaryItemId()); + approvalItem.setSalaryItemName(groupItem.getName()); + approvalItem.setSorted(groupItem.getSortedIndex()); + approvalItemList2.add(approvalItem); + } + SalaryApprovalDTO.approvalItemGroup approvalGroup = new SalaryApprovalDTO.approvalItemGroup(); + approvalGroup.setGroupName("未分类"); + approvalGroup.setSorted(groupList.size()); + approvalGroup.setApprovalItems(approvalItemList2); + groupList.add(approvalGroup); + return JsonUtil.toJsonString(groupList); + } + + +} diff --git a/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java new file mode 100644 index 000000000..41511ec6b --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java @@ -0,0 +1,76 @@ +package com.engine.salary.entity.salarysob.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 薪资审批设置列表 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author xuzhuoyan + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalDTO { + + // 主键id + private Long id; + + // 薪资账套id + private Long salarySobId; + + // 是否开启审批 + private Boolean isOpenApproval; + + // 审批流程地址 + private String approvalWorkflowUrl; + + // 审批项目信息 + private List approvalItemGroup; + + /** + * 审批项目信息分组形式 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class approvalItemGroup { + + // 分组名称 + private String groupName; + + // 项目信息 + private List approvalItems; + + // 排序 + private Integer sorted; + } + + /** + * 审批薪资项目 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class approvalItem { + // 薪资项目id + private Long salaryItemId; + + // 薪资项目名称 + private String salaryItemName; + + // 排序 + private Integer sorted; + + } +} diff --git a/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java b/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java new file mode 100644 index 000000000..e3ef6882d --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java @@ -0,0 +1,27 @@ +package com.engine.salary.entity.salarysob.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryApprovalQueryParam + * @author Harryxzy + * @date 2024/4/23 15:05 + * @description 薪资审批流程id保存参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ApprovalRequestSaveParam { + + // 流程id + @DataCheck(require = true, message = "流程id不能为空") + private String requestId; + + // 核算记录id + private Long salaryAcctRecordId; +} diff --git a/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java new file mode 100644 index 000000000..770bb7933 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java @@ -0,0 +1,24 @@ +package com.engine.salary.entity.salarysob.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryApprovalQueryParam + * @author Harryxzy + * @date 2024/4/23 15:05 + * @description 薪资审批设置查询参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalQueryParam { + + // 薪资账套id + @DataCheck(require = true, message = "薪资账套的ID不允许为空") + private Long salarySobId; +} diff --git a/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java new file mode 100644 index 000000000..1b1473aab --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java @@ -0,0 +1,67 @@ +package com.engine.salary.entity.salarysob.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRulePO + * @date 2024/04/23 17:31 + * @description 薪资核算审批规则 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalRulePO { + /** + * 主键id + */ + private Long id; + + /** + * 薪资账套id + */ + private Long salarySobId; + + /** + * 是否开启工资单审批 + */ + private Integer openApproval; + + /** + * 审批薪资项目设置 + */ + private String approvalGroupSetting; + + /** + * 审批流程地址 + */ + private String workflowUrl; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 创建人id + */ + private Long creator; + + private Integer deleteType; + + /** + * 修改时间 + */ + private Date updateTime; + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 4266b9277..e7632d824 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -388,6 +388,12 @@ back_calc_status=#{backCalcStatus}, + + approval_id=#{approvalId}, + + + approval_status=#{approvalStatus}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java new file mode 100644 index 000000000..0aea946f8 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.salarysob; + +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleMapper + * @date 2024/04/23 17:36 + * @description + */ +public interface SalaryApprovalRuleMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(SalaryApprovalRulePO salaryApprovalRule); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + SalaryApprovalRulePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param salaryApprovalRule 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 修改,修改所有字段 + * + * @param salaryApprovalRule 修改的记录 + * @return 返回影响行数 + */ + int update(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 修改,忽略null字段 + * + * @param salaryApprovalRule 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 删除记录 + * + * @param salaryApprovalRule 待删除的记录 + * @return 返回影响行数 + */ + int delete(SalaryApprovalRulePO salaryApprovalRule); + + void deleteBySalarySobId(@Param("salarySobId") Long salarySobId); +} diff --git a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml new file mode 100644 index 000000000..d64853c48 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + t.approval_group_setting + , t.create_time + , t.creator + , t.delete_type + , t.id + , t.open_approval + , t.salary_sob_id + , t.update_time + , t.workflow_url + + + + + + + + + + + + + + + INSERT INTO hrsa_salary_approval_rule + + + + approval_group_setting, + + + create_time, + + + creator, + + + delete_type, + + + id, + + + open_approval, + + + salary_sob_id, + + + update_time, + + + workflow_url, + + + + + #{approvalGroupSetting}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{openApproval}, + + + #{salarySobId}, + + + #{updateTime}, + + + #{workflowUrl}, + + + + + + + UPDATE hrsa_salary_approval_rule + + approval_group_setting=#{approvalGroupSetting}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + open_approval=#{openApproval}, + salary_sob_id=#{salarySobId}, + update_time=#{updateTime}, + workflow_url=#{workflowUrl}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_salary_approval_rule + + + approval_group_setting=#{approvalGroupSetting}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + open_approval=#{openApproval}, + + + salary_sob_id=#{salarySobId}, + + + update_time=#{updateTime}, + + + workflow_url=#{workflowUrl}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_salary_approval_rule + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_salary_approval_rule + SET delete_type=1 + WHERE salary_sob_id = #{salarySobId} AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryApprovalRuleService.java b/src/com/engine/salary/service/SalaryApprovalRuleService.java new file mode 100644 index 000000000..55c7f1dd5 --- /dev/null +++ b/src/com/engine/salary/service/SalaryApprovalRuleService.java @@ -0,0 +1,104 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleService + * @date 2024/04/23 17:33 + * @description 薪资核算审批规则 + */ +public interface SalaryApprovalRuleService { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + SalaryApprovalRulePO getById(Long id); + + + /** + * 新增,忽略null字段 + * + * @param salaryApprovalRule 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 修改,修改所有字段 + * + * @param salaryApprovalRule 修改的记录 + * @return 返回影响行数 + */ + int update(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 修改,忽略null字段 + * + * @param salaryApprovalRule 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 删除记录 + * + * @param salaryApprovalRule 待删除的记录 + * @return 返回影响行数 + */ + int delete(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 根据账套id查询审批设置 + * @param salarySobId + * @return + */ + SalaryApprovalRulePO getBySalarySobId(Long salarySobId); + + /** + * 根据薪资账套id删除 + * @param salarySobId + */ + void deleteBySalarySobId(Long salarySobId); + + /** + * 薪资账套的薪资审批规则 + * @param queryParam + * @return + */ + SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam); + + /** + * 保存薪资账套的薪资审批规则 + * @param salaryApprovalDTO + */ + void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO); + + List listSalaryApprovalItem(SalaryItemSearchParam queryParam); + + SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId); + + /** + * 保存审批流程id + * @param saveParam + */ + void saveApprovalRequestId(ApprovalRequestSaveParam saveParam); +} diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java new file mode 100644 index 000000000..c13aedff6 --- /dev/null +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -0,0 +1,201 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.bo.SalaryApprovalBO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; +import com.engine.salary.mapper.salarysob.SalaryApprovalRuleMapper; +import com.engine.salary.service.*; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.ValidUtil; +import org.apache.commons.collections.CollectionUtils; +import weaver.hrm.User; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleServiceImpl + * @date 2024/04/23 17:35 + * @description + */ +public class SalaryApprovalRuleServiceImpl extends Service implements SalaryApprovalRuleService { + + private SalaryApprovalRuleMapper getSalaryApprovalRuleMapper() { + return MapperProxyFactory.getProxy(SalaryApprovalRuleMapper.class); + } + + private SalaryAcctRecordMapper getSalaryAcctRecordMapper() { + return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalarySobItemService getSalarySobItemService(User user) { + return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + @Override + public List listAll() { + return getSalaryApprovalRuleMapper().listAll(); + } + + @Override + public SalaryApprovalRulePO getById(Long id) { + return getSalaryApprovalRuleMapper().getById(id); + } + + @Override + public int insertIgnoreNull(SalaryApprovalRulePO po) { + return getSalaryApprovalRuleMapper().insertIgnoreNull(po); + } + + @Override + public int update(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().update(salaryApprovalRule); + } + + @Override + public int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().updateIgnoreNull(salaryApprovalRule); + } + + @Override + public int delete(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().delete(salaryApprovalRule); + } + + @Override + public SalaryApprovalRulePO getBySalarySobId(Long salarySobId) { + if(salarySobId == null) { + return null; + } + List salaryApprovalRulePOS = getSalaryApprovalRuleMapper().listSome(SalaryApprovalRulePO.builder().salarySobId(salarySobId).build()); + if (CollectionUtils.isNotEmpty(salaryApprovalRulePOS) && salaryApprovalRulePOS.size() == 1) { + return salaryApprovalRulePOS.get(0); + } + return null; + } + + @Override + public void deleteBySalarySobId(Long salarySobId) { + if (salarySobId == null) { + return; + } + getSalaryApprovalRuleMapper().deleteBySalarySobId(salarySobId); + } + + @Override + public SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam) { + // 查询薪资审批设置 + SalaryApprovalRulePO approvalRulePO = getBySalarySobId(queryParam.getSalarySobId()); + if (approvalRulePO == null) { + // 没有审批设置信息,创建默认设置信息 + Date now = new Date(); + approvalRulePO = SalaryApprovalRulePO.builder() + .id(IdGenerator.generate()) + .salarySobId(queryParam.getSalarySobId()) + .openApproval(0) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(0) + .build(); + // 获取账套的薪资项目设置信息 + SalarySobItemAggregateDTO aggregateBySalarySobId = getSalarySobItemService(user).getAggregateBySalarySobId(queryParam.getSalarySobId()); + String setting = SalaryApprovalBO.sobItemAggregate2approvalGroupSetting(aggregateBySalarySobId); + approvalRulePO.setApprovalGroupSetting(setting); + insertIgnoreNull(approvalRulePO); + } + if (approvalRulePO.getOpenApproval().equals(0)) { + // 未开启审批功能 + return SalaryApprovalDTO.builder().isOpenApproval(false).build(); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + return SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + } + + @Override + public void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO) { + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryApprovalDTO.getSalarySobId()); + if (salarySobPO == null) { + throw new RuntimeException("薪资账套不存在"); + } + // 删除原来的 + deleteBySalarySobId(salaryApprovalDTO.getSalarySobId()); + // 保存最新的 + Date now = new Date(); + SalaryApprovalRulePO po = SalaryApprovalRulePO.builder() + .id(IdGenerator.generate()) + .salarySobId(salaryApprovalDTO.getSalarySobId()) + .openApproval(salaryApprovalDTO.getIsOpenApproval() ? 1 : 0) + .approvalGroupSetting(JsonUtil.toJsonString(salaryApprovalDTO.getApprovalItemGroup())) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(0) + .build(); + insertIgnoreNull(po); + } + + @Override + public List listSalaryApprovalItem(SalaryItemSearchParam queryParam) { + List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(queryParam.getSalarySobId()); + List salaryItemIds = salarySobItemPOS.stream() + .filter(po -> !queryParam.getExcludeIds().contains(po.getSalaryItemId())) + .map(SalarySobItemPO::getSalaryItemId) + .collect(Collectors.toList()); + List salaryItemPOList = getSalaryItemService(user).listByIds(salaryItemIds); + return salaryItemPOList; + } + + @Override + public SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId) { + SalaryAcctRecordPO acctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (acctRecordPO == null) { + throw new SalaryRunTimeException("薪资核算记录不存在或已被删除"); + } + SalaryApprovalRulePO approvalRulePO = getBySalarySobId(acctRecordPO.getSalarySobId()); + + List salaryItemList = getSalaryItemService(user).listAll(); + return SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + } + + @Override + public void saveApprovalRequestId(ApprovalRequestSaveParam saveParam) { + ValidUtil.doValidator(saveParam); + // 获取核算记录信息 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(saveParam.getSalaryAcctRecordId()); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("薪资核素记录不存在或已被删除"); + } + salaryAcctRecordPO.setApprovalId(saveParam.getRequestId()); + getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO); + } +} diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 505d0a051..54168f25c 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -2,8 +2,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.SalarySobExtRangePO; +import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO; @@ -72,6 +74,10 @@ public class SalarySobController { return ServiceUtil.getService(SalarySobBackItemWrapper.class, user); } + private SalaryApprovalWrapper getSalaryApprovalWrapper(User user) { + return ServiceUtil.getService(SalaryApprovalWrapper.class, user); + } + /**********************************薪资账套 start*********************************/ /** @@ -559,4 +565,82 @@ public class SalarySobController { /**********************************校验规则 end*********************************/ + /**********************************薪资审批规则 start*********************************/ + + /** + * 薪资审批规则表单 + */ + @POST + @Path("/salaryApproval/getForm") + @Produces(MediaType.APPLICATION_JSON) + public String salaryApprovalForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryApprovalQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::salaryApprovalForm, queryParam); + } + + /** + * 保存薪资审批规则表单 + */ + @POST + @Path("/salaryApproval/saveForm") + @Produces(MediaType.APPLICATION_JSON) + public String saveSalaryApprovalForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryApprovalDTO saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::saveSalaryApprovalForm, saveParam); + } + + /** + * 薪资审批可选薪资项目 + */ + @POST + @Path("/salaryApproval/listSalaryItem") + @Produces(MediaType.APPLICATION_JSON) + public String listSalaryApprovalItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalItem, queryParam); + } + + /** + * 根据核算记录id获取审批信息 + */ + @GET + @Path("/salaryApproval/getApprovalInfoByRecordId") + @Produces(MediaType.APPLICATION_JSON) + public String getApprovalInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryAcctRecordId")Long salaryAcctRecordId ) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::getApprovalInfoByRecordId, salaryAcctRecordId); + } + + /** + * 获取审批时薪资核算结果 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/salaryApproval/acctresult/list") + @Produces(MediaType.APPLICATION_JSON) + public String listSalaryApprovalAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalAcctResult, param); + } + + /** + * 保存审批流程id + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/salaryApproval/saveRequestId") + @Produces(MediaType.APPLICATION_JSON) + public String saveApprovalRequestId(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ApprovalRequestSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::saveApprovalRequestId, param); + } + + /**********************************薪资审批规则 start*********************************/ + } diff --git a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java new file mode 100644 index 000000000..ac2c340f2 --- /dev/null +++ b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java @@ -0,0 +1,146 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.component.WeaTableColumnGroup; +import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobEmpFieldDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; +import com.engine.salary.enums.salaryaccounting.LockStatusEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.*; +import com.engine.salary.service.impl.*; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 薪资账套的薪资审批 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryApprovalWrapper extends Service { + + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalaryAcctResultService getSalaryAcctResultService(User user) { + return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); + } + + private SalarySobEmpFieldService getSalarySobEmpFieldService(User user) { + return ServiceUtil.getService(SalarySobEmpFieldServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + /** + * 薪资账套的薪资审批规则 + * + * @param queryParam 查询参数 + * @return + */ + public SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + return getSalaryApprovalRuleService(user).salaryApprovalForm(queryParam); + } + + /** + * 保存薪资账套的薪资审批规则 + * + * @param salaryApprovalDTO + * + */ + public void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO) { + getSalaryApprovalRuleService(user).saveSalaryApprovalForm(salaryApprovalDTO); + } + + public List listSalaryApprovalItem(SalaryItemSearchParam queryParam) { + return getSalaryApprovalRuleService(user).listSalaryApprovalItem(queryParam); + } + + public SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId) { + return getSalaryApprovalRuleService(user).getApprovalInfoByRecordId(salaryAcctRecordId); + } + + public Map listSalaryApprovalAcctResult(SalaryAcctResultQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + // 审批信息 + SalaryApprovalDTO approvalInfoByRecordId = getSalaryApprovalRuleService(user).getApprovalInfoByRecordId(queryParam.getSalaryAcctRecordId()); + + // 查询薪资核算记录 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); + } + + // 查询薪资核算结果(分页) + PageInfo> page = getSalaryAcctResultService(user).listPageByParam(queryParam); + + // 构建薪资核算结果审批列表的表头 + List columns = Lists.newArrayList(); + // 查询薪资账套的员工信息字段 + List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salarySobEmpFieldDTOS = new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS); + // 获取薪资项目信息 + List salaryItemPOS = getSalaryItemService(user).listAll(); + Map salaryItemWidthMap = SalaryEntityUtil.convert2Map(salaryItemPOS, SalaryItemPO::getId, SalaryItemPO::getWidth); + // 员工信息字段 + for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobEmpFieldDTOS) { + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobEmpFieldDTO.getFieldName(), 0), salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); + } + // 薪资项目分组下的薪资项目 + for (SalaryApprovalDTO.approvalItemGroup groupDTO : approvalInfoByRecordId.getApprovalItemGroup()) { + if (CollectionUtils.isEmpty(groupDTO.getApprovalItems())) { + continue; + } + List childrenColumns = Lists.newArrayList(); + for (SalaryApprovalDTO.approvalItem approvalItemDTO : groupDTO.getApprovalItems()) { + childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(approvalItemDTO.getSalaryItemName(), salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0) == null ? 0 : salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0)), approvalItemDTO.getSalaryItemName(), "" + approvalItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue())); + } + WeaTableColumnGroup weaTableColumnWapper = new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(groupDTO.getGroupName(), 0), groupDTO.getGroupName(), groupDTO.getGroupName(), childrenColumns); + columns.add(weaTableColumnWapper); + } + + Map datas = new HashMap<>(); + datas.put("pageInfo", page); + datas.put("columns", columns); + + return datas; + } + + /** + * 保存审批流程id + * @param saveParam + */ + public void saveApprovalRequestId(ApprovalRequestSaveParam saveParam) { + getSalaryApprovalRuleService(user).saveApprovalRequestId(saveParam); + } +} diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index 1fbe0e0e0..96bdc90db 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -177,4 +177,5 @@ public class SalarySobItemWrapper extends Service { public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) { return getSalarySobItemService(user).getSalaryItemForm(param); } + } From f46a18fa2743dc9d11a3129ef171f6f8905a9233 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 25 Apr 2024 09:39:28 +0800 Subject: [PATCH 02/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryApprovalRuleServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java index c13aedff6..94853582b 100644 --- a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -134,7 +134,7 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr } if (approvalRulePO.getOpenApproval().equals(0)) { // 未开启审批功能 - return SalaryApprovalDTO.builder().isOpenApproval(false).build(); + return SalaryApprovalDTO.builder().id(approvalRulePO.getId()).isOpenApproval(false).build(); } List salaryItemList = getSalaryItemService(user).listAll(); From 34fe103055b51735ba28a060f7fc4df030545239 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 25 Apr 2024 15:30:25 +0800 Subject: [PATCH 03/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/SalaryApprovalRuleService.java | 3 +++ .../service/impl/SalaryApprovalRuleServiceImpl.java | 11 +++++++---- .../salary/service/impl/SalarySobServiceImpl.java | 6 ++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/SalaryApprovalRuleService.java b/src/com/engine/salary/service/SalaryApprovalRuleService.java index 55c7f1dd5..85d5e5b2c 100644 --- a/src/com/engine/salary/service/SalaryApprovalRuleService.java +++ b/src/com/engine/salary/service/SalaryApprovalRuleService.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import java.util.Collection; import java.util.List; /** @@ -101,4 +102,6 @@ public interface SalaryApprovalRuleService { * @param saveParam */ void saveApprovalRequestId(ApprovalRequestSaveParam saveParam); + + void deleteBySalarySobIds(Collection ids); } diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java index 94853582b..060bb500e 100644 --- a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -24,6 +24,7 @@ import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections.CollectionUtils; import weaver.hrm.User; +import java.util.Collection; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -132,10 +133,6 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr approvalRulePO.setApprovalGroupSetting(setting); insertIgnoreNull(approvalRulePO); } - if (approvalRulePO.getOpenApproval().equals(0)) { - // 未开启审批功能 - return SalaryApprovalDTO.builder().id(approvalRulePO.getId()).isOpenApproval(false).build(); - } List salaryItemList = getSalaryItemService(user).listAll(); return SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); @@ -156,6 +153,7 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr .salarySobId(salaryApprovalDTO.getSalarySobId()) .openApproval(salaryApprovalDTO.getIsOpenApproval() ? 1 : 0) .approvalGroupSetting(JsonUtil.toJsonString(salaryApprovalDTO.getApprovalItemGroup())) + .workflowUrl(salaryApprovalDTO.getApprovalWorkflowUrl()) .createTime(now) .updateTime(now) .creator(Long.valueOf(user.getUID())) @@ -198,4 +196,9 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr salaryAcctRecordPO.setApprovalId(saveParam.getRequestId()); getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO); } + + @Override + public void deleteBySalarySobIds(Collection ids) { + ids.stream().forEach(this::deleteBySalarySobId); + } } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index b8cf6acdb..b9ef5594d 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -135,6 +135,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + @Override public SalarySobPO getById(Long id) { return salarySobMapper.getById(id); @@ -630,6 +634,8 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { getSalarySobBackItemService(user).deleteBySalarySobIds(ids); // 删除薪资账套的校验规则 getSalarySobCheckRuleService(user).deleteBySalarySobIds(ids); + // 删除薪资审批规则 + getSalaryApprovalRuleService(user).deleteBySalarySobIds(ids); // 记录日志 salarySobPOS.forEach(salarySobPO -> { LoggerContext loggerContext = new LoggerContext<>(); From 8ff315b34168ca5f900e86cdbb385dc3024e6f53 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 25 Apr 2024 17:24:47 +0800 Subject: [PATCH 04/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202404251103.sql | 19 +++++++++++++++++++ resource/sqlupgrade/GS/sql202404251103.sql | 19 +++++++++++++++++++ resource/sqlupgrade/JC/sql202404251103.sql | 19 +++++++++++++++++++ resource/sqlupgrade/Mysql/sql202404251103.sql | 16 ++++++++++++++++ .../sqlupgrade/Oracle/sql202404251103.sql | 18 ++++++++++++++++++ resource/sqlupgrade/PG/sql202404251103.sql | 18 ++++++++++++++++++ .../sqlupgrade/SQLServer/sql202404251103.sql | 19 +++++++++++++++++++ resource/sqlupgrade/ST/sql202404251103.sql | 19 +++++++++++++++++++ 8 files changed, 147 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202404251103.sql create mode 100644 resource/sqlupgrade/GS/sql202404251103.sql create mode 100644 resource/sqlupgrade/JC/sql202404251103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202404251103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202404251103.sql create mode 100644 resource/sqlupgrade/PG/sql202404251103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202404251103.sql create mode 100644 resource/sqlupgrade/ST/sql202404251103.sql diff --git a/resource/sqlupgrade/DM/sql202404251103.sql b/resource/sqlupgrade/DM/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/GS/sql202404251103.sql b/resource/sqlupgrade/GS/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/JC/sql202404251103.sql b/resource/sqlupgrade/JC/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202404251103.sql b/resource/sqlupgrade/Mysql/sql202404251103.sql new file mode 100644 index 000000000..61d412db9 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202404251103.sql @@ -0,0 +1,16 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint NOT NULL, + salary_sob_id bigint NOT NULL, + open_approval int NOT NULL, + approval_group_setting text NULL, + workflow_url varchar(500) NULL DEFAULT NULL, + delete_type int NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + creator bigint NOT NULL, + PRIMARY KEY (id) +); + +alter table hrsa_salary_acct_record add approval_id varchar(50); + +alter table hrsa_salary_acct_record add approval_status varchar(50); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202404251103.sql b/resource/sqlupgrade/Oracle/sql202404251103.sql new file mode 100644 index 000000000..ed864ec3e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202404251103.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +) +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50) +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202404251103.sql b/resource/sqlupgrade/PG/sql202404251103.sql new file mode 100644 index 000000000..66ff0a56e --- /dev/null +++ b/resource/sqlupgrade/PG/sql202404251103.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint primary key, + salary_sob_id bigint, + open_approval int, + approval_group_setting text, + workflow_url varchar(500) DEFAULT NULL, + delete_type int, + create_time timestamp, + update_time timestamp, + creator bigint +) +/ + +alter table hrsa_salary_acct_record add approval_id varchar(50) +/ + +alter table hrsa_salary_acct_record add approval_status varchar(50) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202404251103.sql b/resource/sqlupgrade/SQLServer/sql202404251103.sql new file mode 100644 index 000000000..ba5e60f8c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint NOT NULL, + salary_sob_id bigint NOT NULL, + open_approval int NOT NULL, + approval_group_setting text NULL, + workflow_url varchar(500)NULL DEFAULT NULL, + delete_type int NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + creator bigint NOT NULL, + PRIMARY KEY (id) +) +GO + +alter table hrsa_salary_acct_record add approval_id varchar(50) +GO + +alter table hrsa_salary_acct_record add approval_status varchar(50) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202404251103.sql b/resource/sqlupgrade/ST/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + From 4f391a2159ecd3b61654d8561de345bb543a2afa Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 26 Apr 2024 11:24:47 +0800 Subject: [PATCH 05/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctRecordBO.java | 1 + .../dto/SalaryAcctRecordListDTO.java | 3 +++ .../salarysob/po/SalaryApprovalRulePO.java | 3 +++ .../salaryacct/SalaryAcctRecordMapper.xml | 3 ++- .../salarysob/SalaryApprovalRuleMapper.xml | 6 +++++ .../service/SalaryApprovalRuleService.java | 2 ++ .../impl/SalaryApprovalRuleServiceImpl.java | 9 ++++++++ src/com/engine/salary/util/page/PageInfo.java | 5 +++++ .../wrapper/SalaryAcctRecordWrapper.java | 15 +++++++++++++ .../salary/wrapper/SalaryApprovalWrapper.java | 22 +++++++++++++++++++ 10 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index e0fad94bd..55a69af74 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -96,6 +96,7 @@ public class SalaryAcctRecordBO { .accountantName(usernameMap.getOrDefault(salaryAcctRecordPO.getCreator(), StringUtils.EMPTY)) .updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime())) .description(salaryAcctRecordPO.getDescription()) + .approvalStatus(salaryAcctRecordPO.getApprovalStatus()) .operate(btnList) .build(); }).collect(Collectors.toList()); diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index 61a8cd3bc..edc4d99dd 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -73,6 +73,9 @@ public class SalaryAcctRecordListDTO { @TableTitle(title = "备注", dataIndex = "description", key = "description") private String description; + @TableTitle(title = "审批状态", dataIndex = "approvalStatus", key = "approvalStatus") + private String approvalStatus; + @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private List operate; } diff --git a/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java index 1b1473aab..8683696a4 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java @@ -64,4 +64,7 @@ public class SalaryApprovalRulePO { //主键id集合 private Collection ids; + //薪资账套id集合 + private Collection salarySobIds; + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index e7632d824..8131f7759 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -35,7 +35,8 @@ , t.delete_type , t.tenant_key , t.back_calc_status - ,t.lock_salary_item_ids + , t.lock_salary_item_ids + , t.approval_status diff --git a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml index d64853c48..9d21ed200 100644 --- a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml @@ -81,6 +81,12 @@ #{id} + + AND salary_sob_id IN + + #{salarySobId} + + ORDER BY id DESC diff --git a/src/com/engine/salary/service/SalaryApprovalRuleService.java b/src/com/engine/salary/service/SalaryApprovalRuleService.java index 85d5e5b2c..7798a7800 100644 --- a/src/com/engine/salary/service/SalaryApprovalRuleService.java +++ b/src/com/engine/salary/service/SalaryApprovalRuleService.java @@ -104,4 +104,6 @@ public interface SalaryApprovalRuleService { void saveApprovalRequestId(ApprovalRequestSaveParam saveParam); void deleteBySalarySobIds(Collection ids); + + List listBySalarySobIds(Collection salarySobIds); } diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java index 060bb500e..b1d00588b 100644 --- a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -25,6 +25,7 @@ import org.apache.commons.collections.CollectionUtils; import weaver.hrm.User; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -201,4 +202,12 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr public void deleteBySalarySobIds(Collection ids) { ids.stream().forEach(this::deleteBySalarySobId); } + + @Override + public List listBySalarySobIds(Collection salarySobIds) { + if (CollectionUtils.isEmpty(salarySobIds)) { + return Collections.emptyList(); + } + return getSalaryApprovalRuleMapper().listSome(SalaryApprovalRulePO.builder().salarySobIds(salarySobIds).build()); + } } diff --git a/src/com/engine/salary/util/page/PageInfo.java b/src/com/engine/salary/util/page/PageInfo.java index da8313a78..9547fb686 100644 --- a/src/com/engine/salary/util/page/PageInfo.java +++ b/src/com/engine/salary/util/page/PageInfo.java @@ -17,6 +17,11 @@ public class PageInfo extends com.engine.salary.component.PageInfo { this.columns.addAll(columns); } + public void clearAndSetColumns(List columns) { + this.columns.clear(); + this.columns.addAll(columns); + } + List columns = new ArrayList<>(); List dataSource = new ArrayList<>(); diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index b3d7d06e3..a42f6d5cf 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -12,6 +12,7 @@ import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.exception.SalaryRunTimeException; @@ -21,6 +22,7 @@ import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalarySobUtil; +import com.engine.salary.util.page.Column; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.proxy.SalaryAcctRecordWrapperProxy; import org.apache.commons.collections4.CollectionUtils; @@ -68,6 +70,10 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + // private ComInfoCache comInfoCache; public PageInfo listPage(SalaryAcctRecordQueryParam queryParam) { @@ -87,6 +93,9 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 查询薪资账套 Set salarySobIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getSalarySobId); List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); + // 获取这些账套中是否有开启薪资审批的 + List salaryApprovalRules = getSalaryApprovalRuleService(user).listBySalarySobIds(salarySobIds); + Optional existApproval = salaryApprovalRules.stream().filter(po -> po.getOpenApproval().equals(1)).findFirst(); // 查询薪资核算记录的创建人员的人员信息 List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); List employeeComInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); @@ -102,6 +111,12 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 转换成列表dto List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS); dtoPage.setList(salaryAcctRecordListDTOS); + if (!existApproval.isPresent()) { + // 没有开启审批的 + List columnList = dtoPage.getColumns().stream().filter(col -> !col.getKey().equals("approvalStatus")).collect(Collectors.toList()); + dtoPage.clearAndSetColumns(columnList); + } + } // WeaTable weaTable = SalaryFormatUtil.getInstance().buildTable(SalaryAcctRecordListDTO.class, dtoPage); // 只有未归档时可以"核算"、"删除"、"归档" diff --git a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java index ac2c340f2..57c4e8227 100644 --- a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java @@ -1,5 +1,6 @@ package com.engine.salary.wrapper; +import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.component.WeaTableColumnGroup; @@ -15,8 +16,10 @@ import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; @@ -24,6 +27,7 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; import java.util.HashMap; @@ -31,6 +35,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_ACCT_FIXED_COLUMNS; + /** * 薪资账套的薪资审批 *

Copyright: Copyright (c) 2024

@@ -61,6 +67,10 @@ public class SalaryApprovalWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SalarySysConfMapper getSalarySysConfMapper() { + return SqlProxyHandle.getProxy(SalarySysConfMapper.class); + } + /** * 薪资账套的薪资审批规则 * @@ -129,6 +139,18 @@ public class SalaryApprovalWrapper extends Service { columns.add(weaTableColumnWapper); } + // 获取固定列头数 + SalarySysConfPO salaryAcctFixedColumns = getSalarySysConfMapper().getOneByCode(SALARY_ACCT_FIXED_COLUMNS); + if (salaryAcctFixedColumns != null) { + int fixedNum = NumberUtils.isCreatable(salaryAcctFixedColumns.getConfValue()) ? Integer.valueOf(salaryAcctFixedColumns.getConfValue()) : 3; + if (fixedNum == 0) { + fixedNum = 3; + } + for (int i = 0; i < fixedNum; i++) { + columns.get(i).setFixed("left"); + } + } + Map datas = new HashMap<>(); datas.put("pageInfo", page); datas.put("columns", columns); From d7de02696dc503bc4a1d04e128efb0792527e350 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sun, 28 Apr 2024 16:58:33 +0800 Subject: [PATCH 06/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=A7=84=E5=88=99=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctRecordBO.java | 17 +++++++--- .../salaryacct/SalaryAcctRecordMapper.xml | 1 + .../sys/constant/SalarySysConstant.java | 23 ++++++++++++++ .../wrapper/SalaryAcctRecordWrapper.java | 31 +++++++++++++++---- 4 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index 55a69af74..ad98f4ad7 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -47,7 +47,10 @@ public class SalaryAcctRecordBO { List employeeComInfos, List salaryAcctEmployeeCountDTOS, List salarySendCheckResult, - List taxAgentPOS) { + List taxAgentPOS, + List needApprovalSalarySobIds, + boolean approvalCanFile, + boolean approvalCanReCalc) { if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { return Collections.emptyList(); } @@ -69,16 +72,22 @@ public class SalaryAcctRecordBO { if(!Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE)){ btnList.add(new WeaTableOperate("删除", null, "1")); } - btnList.add(new WeaTableOperate("归档", null, "2")); + if (approvalCanFile || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("归档", null, "2")); + } } else if (SalaryAcctRecordStatusEnum.ARCHIVED == salaryAcctRecordStatusEnum && ( salarySendMap.get(salaryAcctRecordPO.getId()) ==Boolean.TRUE ) ){ btnList.add(new WeaTableOperate("查看", null, "3")); - btnList.add(new WeaTableOperate("重新核算", null, "4")); + if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("重新核算", null, "4")); + } if(salaryAcctRecordPO.getBackCalcStatus() == null || salaryAcctRecordPO.getBackCalcStatus() == NumberUtils.INTEGER_ZERO) { btnList.add(new WeaTableOperate("回算", null, "5")); } } else { btnList.add(new WeaTableOperate("查看", null, "3")); - btnList.add(new WeaTableOperate("重新核算", null, "4")); + if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("重新核算", null, "4")); + } } return SalaryAcctRecordListDTO.builder() .id(salaryAcctRecordPO.getId()) diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 8131f7759..00507de99 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -37,6 +37,7 @@ , t.back_calc_status , t.lock_salary_item_ids , t.approval_status + , t.approval_id diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ff055b89e..02fcf2590 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -145,4 +145,27 @@ public class SalarySysConstant { * 我的薪资福利工资单个税扣缴义务人显示状态 */ public static final String TAX_AGENT_SHOW_STATUS = "taxAgentShowStatus"; + + + /** + * 开启核算记录审批功能 + */ + public static final String SALARY_APPROVAL_STATUS = "SALARY_APPROVAL_STATUS"; + + /** + * 开启审批的核算记录允许手动归档 + */ + public static final String APPROVAL_CAN_MANUAL_FILE_STATUS = "APPROVAL_CAN_MANUAL_FILE_STATUS"; + + + /** + * 开启审批的核算记录允许重新核算 + */ + public static final String APPROVAL_CAN_RE_CALC_STATUS = "APPROVAL_CAN_RE_CALC_STATUS"; + + + /** + * 审批流程发起后允许修改核算数据 + */ + public static final String APPROVAL_CAN_EDIT_RESULT_STATUS = "APPROVAL_CAN_EDIT_RESULT_STATUS"; } diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index a42f6d5cf..0e95a70b7 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -18,6 +18,10 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +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.SalaryI18nUtil; @@ -74,6 +78,10 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + // private ComInfoCache comInfoCache; public PageInfo listPage(SalaryAcctRecordQueryParam queryParam) { @@ -93,9 +101,14 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 查询薪资账套 Set salarySobIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getSalarySobId); List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); - // 获取这些账套中是否有开启薪资审批的 - List salaryApprovalRules = getSalaryApprovalRuleService(user).listBySalarySobIds(salarySobIds); - Optional existApproval = salaryApprovalRules.stream().filter(po -> po.getOpenApproval().equals(1)).findFirst(); + // 规则设置中是否开启薪资审批按钮,默认关闭 + SalarySysConfPO salaryApprovalStatusConf = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_APPROVAL_STATUS); + List needApprovalSalarySobIds = new ArrayList<>(); + if (salaryApprovalStatusConf != null && salaryApprovalStatusConf.getConfValue().equals("1")) { + // 开启了薪资审批,获取这开启审批的账套id + List salaryApprovalRules = getSalaryApprovalRuleService(user).listBySalarySobIds(salarySobIds); + needApprovalSalarySobIds = salaryApprovalRules.stream().filter(po -> po.getOpenApproval().equals(1)).map(SalaryApprovalRulePO::getSalarySobId).collect(Collectors.toList()); + } // 查询薪资核算记录的创建人员的人员信息 List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); List employeeComInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); @@ -108,15 +121,21 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); + // 获取 开启审批的核算记录允许重新核算设置,默认开启 + SalarySysConfPO approvalCanReCalcFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_RE_CALC_STATUS); + boolean approvalCanReCalc = approvalCanReCalcFileStatusPO == null ? true : approvalCanReCalcFileStatusPO.getConfValue().equals("1"); + // 获取 开启审批的核算记录允许手动归档,默认开启 + SalarySysConfPO approvalCanManualFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_MANUAL_FILE_STATUS); + boolean approvalCanFile = approvalCanManualFileStatusPO == null ? true : approvalCanManualFileStatusPO.getConfValue().equals("1"); // 转换成列表dto - List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS); + List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc); dtoPage.setList(salaryAcctRecordListDTOS); - if (!existApproval.isPresent()) { + // 规则设置中是否开启审批功能,默认关闭 + if (CollectionUtils.isEmpty(needApprovalSalarySobIds)) { // 没有开启审批的 List columnList = dtoPage.getColumns().stream().filter(col -> !col.getKey().equals("approvalStatus")).collect(Collectors.toList()); dtoPage.clearAndSetColumns(columnList); } - } // WeaTable weaTable = SalaryFormatUtil.getInstance().buildTable(SalaryAcctRecordListDTO.class, dtoPage); // 只有未归档时可以"核算"、"删除"、"归档" From 1800c02e58a50f5cc41cfaf85f681411531484cd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 29 Apr 2024 16:08:18 +0800 Subject: [PATCH 07/55] =?UTF-8?q?=E7=9B=9B=E5=A8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salarysob/dto/SalaryApprovalDTO.java | 2 + .../service/SalaryApprovalRuleService.java | 8 ++++ .../impl/SalaryAcctExcelServiceImpl.java | 10 +++++ .../impl/SalaryAcctResultServiceImpl.java | 10 +++++ .../impl/SalaryApprovalRuleServiceImpl.java | 37 ++++++++++++++++++- .../wrapper/SalaryAcctRecordWrapper.java | 17 +++++---- .../wrapper/SalaryAcctResultWrapper.java | 10 +++++ 7 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java index 41511ec6b..143d98fca 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java @@ -36,6 +36,8 @@ public class SalaryApprovalDTO { // 审批项目信息 private List approvalItemGroup; + private Boolean canEdit; + /** * 审批项目信息分组形式 */ diff --git a/src/com/engine/salary/service/SalaryApprovalRuleService.java b/src/com/engine/salary/service/SalaryApprovalRuleService.java index 7798a7800..21caa1c1d 100644 --- a/src/com/engine/salary/service/SalaryApprovalRuleService.java +++ b/src/com/engine/salary/service/SalaryApprovalRuleService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; @@ -97,6 +98,13 @@ public interface SalaryApprovalRuleService { SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId); + /** + * 获取该核算记录是否可以编辑、核算 + * @param salaryAcctRecordPO + * @return + */ + boolean getRecordIsCanEdit(SalaryAcctRecordPO salaryAcctRecordPO); + /** * 保存审批流程id * @param saveParam diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index c9956d1ab..5ea87c86a 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -158,6 +158,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return ServiceUtil.getService(SalaryAcctResultTemplateServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + @Override public XSSFWorkbook exportSalaryAcctEmployee(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); @@ -1011,6 +1015,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } + + // 校验是否可以编辑 + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (StringUtils.equals("importSalaryAcctResult", importType) && !recordIsCanEdit) { + throw new SalaryRunTimeException("该核算记录已经发起审批,无法编辑或核算,请先删除审批流程"); + } // 薪资账套下的薪资项目副本 List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); // 薪资项目 diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 246b6a6f4..e84f6b342 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -188,6 +188,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(TaxAgentAdminServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + private SalaryCheckResultService salaryCheckResultService; @@ -593,6 +597,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (Objects.isNull(salaryAcctEmployeePO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98831, "薪资核算人员不存在或已被删除")); } + // 校验是否可以编辑 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctEmployeePO.getSalaryAcctRecordId()); + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (!recordIsCanEdit) { + throw new SalaryRunTimeException("该核算记录已经发起审批,无法编辑或核算,请先删除审批流程"); + } // 查询原来的薪资核算结果 List salaryAcctResultPOSOld = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpId(saveParam.getSalaryAcctEmpId()).build()); // 解密 diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java index b1d00588b..648a08b79 100644 --- a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -17,11 +17,17 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.salarysob.SalaryApprovalRuleMapper; import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; import weaver.hrm.User; import java.util.Collection; @@ -62,6 +68,10 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + @Override public List listAll() { return getSalaryApprovalRuleMapper().listAll(); @@ -183,7 +193,32 @@ public class SalaryApprovalRuleServiceImpl extends Service implements SalaryAppr SalaryApprovalRulePO approvalRulePO = getBySalarySobId(acctRecordPO.getSalarySobId()); List salaryItemList = getSalaryItemService(user).listAll(); - return SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + SalaryApprovalDTO salaryApprovalDTO = SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + // 查询是否可以核算、编辑(默认开启) + salaryApprovalDTO.setCanEdit(getRecordIsCanEdit(acctRecordPO)); + return salaryApprovalDTO; + } + + public boolean getRecordIsCanEdit(SalaryAcctRecordPO acctRecordPO) { + // 审批总开关,默认关闭 + SalarySysConfPO approvalStatus = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_APPROVAL_STATUS); + if (approvalStatus == null || approvalStatus.getConfValue().equals("0")) { + return true; + } + // 查询是否可以核算、编辑(默认开启) + SalarySysConfPO canEdit = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_EDIT_RESULT_STATUS); + if (canEdit == null || canEdit.getConfValue().equals("1")) { + return true; + } else { + // 发起审批后不能核损,判断流程id是否存在 + if (StringUtils.isBlank(acctRecordPO.getApprovalId())) { + return true; + } else { + RecordSet rs = new RecordSet(); + rs.execute("SELECT * FROM workflow_requestbase where REQUESTID =" + acctRecordPO.getApprovalId()); + return !rs.next(); + } + } } @Override diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 0e95a70b7..7b4780c4a 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -104,10 +104,20 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 规则设置中是否开启薪资审批按钮,默认关闭 SalarySysConfPO salaryApprovalStatusConf = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_APPROVAL_STATUS); List needApprovalSalarySobIds = new ArrayList<>(); + // 默认可以重新核算、可以手动归档 + boolean approvalCanReCalc = true; + boolean approvalCanFile = true; if (salaryApprovalStatusConf != null && salaryApprovalStatusConf.getConfValue().equals("1")) { // 开启了薪资审批,获取这开启审批的账套id List salaryApprovalRules = getSalaryApprovalRuleService(user).listBySalarySobIds(salarySobIds); needApprovalSalarySobIds = salaryApprovalRules.stream().filter(po -> po.getOpenApproval().equals(1)).map(SalaryApprovalRulePO::getSalarySobId).collect(Collectors.toList()); + + // 获取 开启审批的核算记录允许重新核算设置,默认开启 + SalarySysConfPO approvalCanReCalcFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_RE_CALC_STATUS); + approvalCanReCalc = approvalCanReCalcFileStatusPO == null ? true : approvalCanReCalcFileStatusPO.getConfValue().equals("1"); + // 获取 开启审批的核算记录允许手动归档,默认开启 + SalarySysConfPO approvalCanManualFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_MANUAL_FILE_STATUS); + approvalCanFile = approvalCanManualFileStatusPO == null ? true : approvalCanManualFileStatusPO.getConfValue().equals("1"); } // 查询薪资核算记录的创建人员的人员信息 List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); @@ -120,13 +130,6 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); - - // 获取 开启审批的核算记录允许重新核算设置,默认开启 - SalarySysConfPO approvalCanReCalcFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_RE_CALC_STATUS); - boolean approvalCanReCalc = approvalCanReCalcFileStatusPO == null ? true : approvalCanReCalcFileStatusPO.getConfValue().equals("1"); - // 获取 开启审批的核算记录允许手动归档,默认开启 - SalarySysConfPO approvalCanManualFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_MANUAL_FILE_STATUS); - boolean approvalCanFile = approvalCanManualFileStatusPO == null ? true : approvalCanManualFileStatusPO.getConfValue().equals("1"); // 转换成列表dto List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc); dtoPage.setList(salaryAcctRecordListDTOS); diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index cae703b1c..55bb97092 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -75,6 +75,10 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + /** * 薪资核算列表 * @@ -211,6 +215,12 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult List emps = getSalaryEmployeeService(user).listAllForReport(); calculateParam.setEmps(SalaryEntityUtil.convert2Map(emps, DataCollectionEmployee::getEmployeeId)); + // 校验是否可以编辑 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (!recordIsCanEdit) { + throw new SalaryRunTimeException("该核算记录已经发起审批,无法编辑或核算,请先删除审批流程"); + } //当前登陆人员 DataCollectionEmployee simpleEmployee = new DataCollectionEmployee(); simpleEmployee.setEmployeeId((long) user.getUID()); From 3420c364480895fadaa2261db647c1b412bee896 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 18 Sep 2024 18:10:30 +0800 Subject: [PATCH 08/55] =?UTF-8?q?=E4=BA=BA=E5=91=98id=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/encrypt/AESEncryptUtil.java | 27 +++++++++++++++++++ .../entity/salaryBill/bo/SalaryBillBO.java | 5 ++-- .../sys/constant/SalarySysConstant.java | 5 ++++ .../engine/salary/util/SalaryTokenUtil.java | 7 ++++- .../salary/web/SalaryBillController.java | 15 +++-------- .../salary/wrapper/SalarySendWrapper.java | 2 +- 6 files changed, 45 insertions(+), 16 deletions(-) diff --git a/src/com/engine/salary/encrypt/AESEncryptUtil.java b/src/com/engine/salary/encrypt/AESEncryptUtil.java index 4ec7f60de..99d68d106 100644 --- a/src/com/engine/salary/encrypt/AESEncryptUtil.java +++ b/src/com/engine/salary/encrypt/AESEncryptUtil.java @@ -20,6 +20,8 @@ public class AESEncryptUtil { static String aesEncryptScrect = bb.getPropValue("hrmSalary", "AESEncryptScrect"); + static String aes4SalaryBillEncryptScrect = "OETEP8JBA1C8IH721C1513AE82IFPE5"; + /** * AES加密 * @@ -34,6 +36,31 @@ public class AESEncryptUtil { return source; } + /** + * 工资单推送-员工id加密 + * @param source + * @return + */ + public static String encrypt4SalaryBill(String source) { + //防止初始化老数据时二次加密 + if (StringUtils.isNotBlank(source) && !source.startsWith(SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT)) { + return SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT + AES.encrypt(source, aes4SalaryBillEncryptScrect); + } + return source; + } + + public static String decrypt4SalaryBill(String encryptStr) { + if (StringUtils.isNotBlank(encryptStr)) { + if (encryptStr.startsWith(SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT)) { + encryptStr = encryptStr.substring(4, encryptStr.length()); + return AES.decrypt(encryptStr, aes4SalaryBillEncryptScrect); + } else { + return ""; + } + } + return encryptStr; + } + /** * AES解密 diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 1bdae5dda..940c01ea6 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -9,6 +9,7 @@ import com.engine.salary.constant.HrmSalaryPayrollConf; import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryBillConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; @@ -246,9 +247,9 @@ public class SalaryBillBO { String title = billTitle; // 标题 String context = "点击查看详情"; // 内容 // PC端链接 - String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&recipient=" + employeeId; + String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&recipient=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); // 移动端链接 - String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&recipient=" + employeeId; + String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&recipient=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); try { MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, title, context, linkUrl, linkMobileUrl); messageBean.setCreater(Integer.parseInt(salaryBillSendParam.getSendUser().getUID() + ""));// 创建人id diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ff055b89e..5e79aaa16 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -45,6 +45,11 @@ public class SalarySysConstant { * 加密后前缀 */ public static final String PRE_SIGN_ENCRYPT = "AES_"; + + /** + * 工资单员工加密后前缀 + */ + public static final String SALARY_BILL_PRE_SIGN_ENCRYPT = "HSE_"; /** * 锁的key */ diff --git a/src/com/engine/salary/util/SalaryTokenUtil.java b/src/com/engine/salary/util/SalaryTokenUtil.java index 68446cf30..efde5ce91 100644 --- a/src/com/engine/salary/util/SalaryTokenUtil.java +++ b/src/com/engine/salary/util/SalaryTokenUtil.java @@ -2,6 +2,7 @@ package com.engine.salary.util; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.db.IdGenerator; import org.apache.commons.lang3.StringUtils; @@ -76,8 +77,12 @@ public class SalaryTokenUtil { * * @return */ - public static Map GetToken(Long uid) { + public static Map GetToken(String uid) { + uid = AESEncryptUtil.decrypt4SalaryBill(uid); Map heads = new HashMap<>(); + if (StringUtils.isBlank(uid)) { + return heads; + } BaseBean baseBean = new BaseBean(); RecordSet rs = new RecordSet(); Map resultMap = new HashMap<>(); diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 94a2ea915..6507ee1f4 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -645,9 +645,9 @@ public class SalaryBillController { @GET @Path("/getToken") @Produces(MediaType.APPLICATION_JSON) - public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "uid") Long uid) { + public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "uid") String uid) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, uid); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, uid); } /** @@ -675,16 +675,7 @@ public class SalaryBillController { @Produces(MediaType.APPLICATION_JSON) public String mySalaryBill(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryInfoId") Long salaryInfoId) { User user = null; - String recipient = request.getParameter("recipient"); - String em_auth_userid = request.getParameter("em_auth_userid"); - log.info("salary recipient: {} em_auth_userid: {}", recipient, em_auth_userid); - if (StringUtils.isNotBlank(recipient) && NumberUtils.isCreatable(recipient)) { - user = new User(Integer.parseInt(recipient)); - } else if (StringUtils.isNotBlank(em_auth_userid) && NumberUtils.isCreatable(em_auth_userid)) { - user = new User(Integer.parseInt(em_auth_userid)); - } else { - user = HrmUserVarify.getUser(request, response); - } + user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalarySendWrapper(user)::mySalaryBill, salaryInfoId); } diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 0fccfecd0..179481841 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -744,7 +744,7 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy return getSalaryBillService(user).exportPdf(param); } - public Map getToken(Long uid) { + public Map getToken(String uid) { return SalaryTokenUtil.GetToken( uid); } From 752de1fa8efe22d8f8c18b5b0690f7333274225e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 9 Oct 2024 10:57:23 +0800 Subject: [PATCH 09/55] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF=E5=BF=AB?= =?UTF-8?q?=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202410090103.sql | 54 ++++++++ resource/sqlupgrade/DM/sql202410090203.sql | 70 ++++++++++ resource/sqlupgrade/GS/sql202410090103.sql | 54 ++++++++ resource/sqlupgrade/GS/sql202410090203.sql | 70 ++++++++++ resource/sqlupgrade/JC/sql202410090103.sql | 54 ++++++++ resource/sqlupgrade/JC/sql202410090203.sql | 70 ++++++++++ resource/sqlupgrade/Mysql/sql202410090103.sql | 22 ++++ resource/sqlupgrade/Mysql/sql202410090203.sql | 29 ++++ .../sqlupgrade/Oracle/sql202410090103.sql | 37 ++++++ .../sqlupgrade/Oracle/sql202410090203.sql | 69 ++++++++++ resource/sqlupgrade/PG/sql202410090103.sql | 54 ++++++++ resource/sqlupgrade/PG/sql202410090203.sql | 68 ++++++++++ .../sqlupgrade/SQLServer/sql202410090103.sql | 23 ++++ .../sqlupgrade/SQLServer/sql202410090203.sql | 31 +++++ resource/sqlupgrade/ST/sql202410090103.sql | 54 ++++++++ resource/sqlupgrade/ST/sql202410090203.sql | 70 ++++++++++ .../param/InsuranceAccountDetailParam.java | 2 + .../param/SupplementAccountBaseParam.java | 11 ++ .../siaccount/po/InsuranceAccountBatchPO.java | 10 +- .../po/InsuranceAccountDetailPO.java | 10 ++ .../po/InsuranceAccountDetailTempPO.java | 11 ++ .../entity/siexport/po/AccountExportPO.java | 4 + .../salary/mapper/InsuranceExportMapper.xml | 27 +++- .../InsuranceAccountDetailMapper.xml | 124 +++++++++++++++++- .../siaccount/SIAccountDetailTempMapper.xml | 51 ++++++- .../salary/service/RecordsBuildService.java | 2 +- .../salary/service/SIExportService.java | 2 +- .../service/impl/RecordsBuildServiceImpl.java | 22 +++- .../service/impl/SIAccountServiceImpl.java | 113 ++++++++++++++-- .../service/impl/SIBalanceServiceImpl.java | 20 +++ .../service/impl/SICategoryServiceImpl.java | 2 +- .../service/impl/SIExportServiceImpl.java | 13 +- .../service/impl/SIRecessionServiceImpl.java | 30 ++++- 33 files changed, 1241 insertions(+), 42 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202410090103.sql create mode 100644 resource/sqlupgrade/DM/sql202410090203.sql create mode 100644 resource/sqlupgrade/GS/sql202410090103.sql create mode 100644 resource/sqlupgrade/GS/sql202410090203.sql create mode 100644 resource/sqlupgrade/JC/sql202410090103.sql create mode 100644 resource/sqlupgrade/JC/sql202410090203.sql create mode 100644 resource/sqlupgrade/Mysql/sql202410090103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202410090203.sql create mode 100644 resource/sqlupgrade/Oracle/sql202410090103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202410090203.sql create mode 100644 resource/sqlupgrade/PG/sql202410090103.sql create mode 100644 resource/sqlupgrade/PG/sql202410090203.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202410090103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202410090203.sql create mode 100644 resource/sqlupgrade/ST/sql202410090103.sql create mode 100644 resource/sqlupgrade/ST/sql202410090203.sql diff --git a/resource/sqlupgrade/DM/sql202410090103.sql b/resource/sqlupgrade/DM/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/DM/sql202410090203.sql b/resource/sqlupgrade/DM/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/GS/sql202410090103.sql b/resource/sqlupgrade/GS/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202410090203.sql b/resource/sqlupgrade/GS/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/JC/sql202410090103.sql b/resource/sqlupgrade/JC/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202410090203.sql b/resource/sqlupgrade/JC/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202410090103.sql b/resource/sqlupgrade/Mysql/sql202410090103.sql new file mode 100644 index 000000000..a7bb9b4d8 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410090103.sql @@ -0,0 +1,22 @@ +ALTER TABLE hrsa_bill_detail_temp +ADD COLUMN subcompany_name text , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name text , +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name text , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall text , +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status text ; + + +ALTER TABLE hrsa_bill_detail +ADD COLUMN subcompany_name text , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name text , +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name text , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall text , +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status text ; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202410090203.sql b/resource/sqlupgrade/Mysql/sql202410090203.sql new file mode 100644 index 000000000..0b58cbde8 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410090203.sql @@ -0,0 +1,29 @@ +update hrsa_bill_detail a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId + set a.department_id = b.departmentId, + a.department_name = b.departmentName, + a.subcompany_id = b.subcompanyid, + a.subcompany_name = b.subcompanyName, + a.jobtitle_id = b.jobtitleId, + a.jobtitle_name = b.jobtitleName, + a.jobcall_id = b.jobcallId, + a.jobcall = b.jobcall, + a.status = b.status +where a.delete_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410090103.sql b/resource/sqlupgrade/Oracle/sql202410090103.sql new file mode 100644 index 000000000..c4c7780d7 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410090103.sql @@ -0,0 +1,37 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null +/ +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add department_id NUMBER null +/ +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL +/ +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL +/ +alter table hrsa_bill_detail_temp add status varchar2(200) NULL +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add subcompany_id NUMBER null +/ +alter table hrsa_bill_detail add department_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add department_id NUMBER null +/ +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL +/ +alter table hrsa_bill_detail add jobcall varchar2(200) NULL +/ +alter table hrsa_bill_detail add jobcall_id NUMBER NULL +/ +alter table hrsa_bill_detail add status varchar2(200) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410090203.sql b/resource/sqlupgrade/Oracle/sql202410090203.sql new file mode 100644 index 000000000..27f8f43c6 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410090203.sql @@ -0,0 +1,69 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410090103.sql b/resource/sqlupgrade/PG/sql202410090103.sql new file mode 100644 index 000000000..b1954e9d6 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410090203.sql b/resource/sqlupgrade/PG/sql202410090203.sql new file mode 100644 index 000000000..1c23bc156 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410090203.sql @@ -0,0 +1,68 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410090103.sql b/resource/sqlupgrade/SQLServer/sql202410090103.sql new file mode 100644 index 000000000..08a49b2d1 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410090103.sql @@ -0,0 +1,23 @@ +ALTER TABLE hrsa_bill_detail_temp +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO + +ALTER TABLE hrsa_bill_detail +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410090203.sql b/resource/sqlupgrade/SQLServer/sql202410090203.sql new file mode 100644 index 000000000..979d152c9 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410090203.sql @@ -0,0 +1,31 @@ +UPDATE hrsa_bill_detail +set department_id = b.departmentId, + department_name = b.departmentName, + subcompany_id = b.subcompanyid, + subcompany_name = b.subcompanyName, + jobtitle_id = b.jobtitleId, + jobtitle_name = b.jobtitleName, + jobcall_id = b.jobcallId, + jobcall = b.jobcall, + status = b.status +FROM hrsa_salary_acct_emp a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId +WHERE a.delete_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202410090103.sql b/resource/sqlupgrade/ST/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/ST/sql202410090203.sql b/resource/sqlupgrade/ST/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java b/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java index b8e56f090..d348af32b 100644 --- a/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java +++ b/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java @@ -44,6 +44,8 @@ public class InsuranceAccountDetailParam extends BaseQueryParam { private String workcode; private List departmentIds; + private List fixedDepartmentIds; private List subCompanyIds; + private List fixedSubCompanyIds; } diff --git a/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java b/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java index 0125705dd..7b42531c7 100644 --- a/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java +++ b/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java @@ -87,4 +87,15 @@ public class SupplementAccountBaseParam { * 补缴类型 */ private String supplementType; + + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java index 362815eef..310bd8e17 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java @@ -129,5 +129,13 @@ public class InsuranceAccountBatchPO { @ElogTransform(name = "个税扣缴义务人id") private Long paymentOrganization; - + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java index aadf8b4bb..310009f9c 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java @@ -328,4 +328,14 @@ public class InsuranceAccountDetailPO { */ @ElogTransform(name = "个税扣缴义务人") private Long paymentOrganization; + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java index dc8c1c2c0..8d6d5254f 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java @@ -275,4 +275,15 @@ public class InsuranceAccountDetailTempPO { * 个税扣缴义务人 */ private Long paymentOrganization; + + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siexport/po/AccountExportPO.java b/src/com/engine/salary/entity/siexport/po/AccountExportPO.java index 73c82c82e..cb7324228 100644 --- a/src/com/engine/salary/entity/siexport/po/AccountExportPO.java +++ b/src/com/engine/salary/entity/siexport/po/AccountExportPO.java @@ -22,8 +22,12 @@ public class AccountExportPO extends InsuranceAccountDetailPO { @I18n private String departmentName; + @I18n + private String fixedDepartmentName; + private Integer userStatus; + private Integer fixedUserStatus; private String workcode; } diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.xml b/src/com/engine/salary/mapper/InsuranceExportMapper.xml index dbe86d9f6..f12ae2d49 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.xml +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.xml @@ -3,6 +3,8 @@ SELECT a.*, + a.department_name AS fixedDepartmentName, + a.status AS fixedUserStatus, e.lastname AS userName, e.MOBILE AS telephone, d.departmentname AS departmentName, @@ -147,6 +155,8 @@ SELECT a.*, + a.department_name AS fixedDepartmentName, + a.status AS fixedUserStatus, e.username AS userName, e.mobile AS telephone, d.departmentname AS departmentName, @@ -223,6 +237,8 @@ SELECT - a.*,e.username AS userName,e.mobile AS telephone,d.departmentname AS departmentName,e.status AS userStatus,e.workcode AS workcode + a.*,a.department_name AS fixedDepartmentName,a.status AS fixedUserStatus, + e.username AS userName,e.mobile AS telephone,d.departmentname AS departmentName,e.status AS userStatus,e.workcode AS workcode FROM( SELECT * from hrsa_excel_bill_detail WHERE delete_type = 0 AND bill_month = #{param.billMonth} AND payment_status = #{param.paymentStatus} AND payment_organization = #{param.paymentOrganization} @@ -277,7 +296,8 @@ SELECT - a.*,a.department_name AS fixedDepartmentName,a.status AS fixedUserStatus, + a.*, e.username AS userName,e.mobile AS telephone,d.departmentname AS departmentName,e.status AS userStatus,e.workcode AS workcode FROM( SELECT * from hrsa_excel_bill_detail @@ -296,7 +296,7 @@ @@ -139,7 +139,7 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} @@ -166,7 +166,7 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} @@ -193,7 +193,7 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index 259cb45d1..212354488 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -118,7 +118,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN @@ -222,7 +222,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN @@ -323,7 +323,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml index 900888f9c..3639039e2 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml @@ -556,7 +556,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( @@ -580,7 +580,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( e.lastname like '%'||#{param.keyword}||'%' @@ -602,7 +602,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( e.lastname like '%'+#{param.keyword}+'%' diff --git a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml index ebd2b723f..5393e4363 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml @@ -96,7 +96,7 @@ from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -326,7 +326,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -347,7 +347,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -367,7 +367,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -649,7 +649,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.declare_month DESC @@ -664,7 +664,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + and tax_agent_id in diff --git a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml index 1a4e58158..2b5c45519 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml @@ -336,7 +336,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -360,7 +360,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -384,7 +384,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -405,7 +405,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.tax_year_month DESC diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml index 234d990b3..ca51de22a 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml @@ -261,7 +261,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -279,7 +279,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -297,7 +297,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index ae903a6a7..149522857 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -10,11 +10,12 @@ e.mobile, e.workcode, e.certificatenum as idNo, + e.accounttype as accountType, 'false' as extEmp from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -278,6 +286,7 @@ e.certificatenum as idNo, e.companystartdate as companystartdate, e.mobile as mobile, + e.accounttype as accountType, e.subcompanyid1 as subcompanyid, d.departmentname as departmentName, d.id as departmentId, @@ -287,7 +296,6 @@ left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) @@ -319,6 +328,7 @@ e.mobile as mobile, e.departmentid as departmentId, e.subcompanyid1 as subcompanyid, + e.accounttype as accountType, e.costcenterid as costcenterId, e.locationid as locationId, e.jobtitle as jobtitleId, @@ -327,7 +337,7 @@ from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -480,6 +490,7 @@ e.workcode as workcode, e.companystartdate as companystartdate, e.mobile as mobile, + e.accounttype as accountType, e.enddate as dismissdate from hrmresource e where e.status in (4,5,6) @@ -557,11 +568,12 @@ c.jobtitlename as jobtitleName, c.id as jobtitleId, e.companystartdate as companystartdate, + e.accounttype as accountType, e.mobile as mobile from hrmresource e left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id - WHERE e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + WHERE e.status not in (7) AND e.subcompanyid1 IN @@ -580,6 +592,7 @@ resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee"> select e.RESOURCEID as employeeId, e.SUBCOMPANYID as subcompanyid, + h.accounttype as accountType, e.DEPARTMENTID as departmentId from hrmresourcevirtual e left join hrmresource h on e.RESOURCEID=h.id @@ -597,6 +610,7 @@ select e.RESOURCEID as employeeId, e.SUBCOMPANYID as subcompanyid, + h.accounttype as accountType, e.DEPARTMENTID as departmentId from hrmresourcevirtual e left join hrmresource h on e.RESOURCEID=h.id diff --git a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml index 0afae02a2..f21fed4a1 100644 --- a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml @@ -280,7 +280,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -299,7 +299,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.declare_month DESC diff --git a/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml index ce701f1d9..442fe485e 100644 --- a/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml @@ -619,7 +619,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.create_time desc @@ -633,7 +633,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t1.tax_agent_id IN @@ -653,7 +653,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + order by ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml index c6352fa2f..9462ea707 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml @@ -116,7 +116,7 @@ LEFT JOIN hrsa_tax_agent a ON t.tax_agent_id = a.id WHERE t.delete_type = 0 and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.tax_agent_id IN @@ -173,7 +173,7 @@ LEFT JOIN hrsa_tax_agent a ON t.tax_agent_id = a.id WHERE t.delete_type = 0 and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.tax_agent_id IN @@ -230,7 +230,7 @@ LEFT JOIN hrsa_tax_agent a ON t.tax_agent_id = a.id WHERE t.delete_type = 0 and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.tax_agent_id IN diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 86781c4d3..48483a038 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -262,7 +262,6 @@ AND employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) AND em.lastname LIKE '%'||#{param.employeeName}||'%' @@ -343,7 +342,7 @@ AND employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'+#{param.employeeName}+'%' @@ -616,7 +615,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE CONCAT('%',#{param.employeeName},'%') @@ -692,7 +691,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'||#{param.employeeName}||'%' @@ -766,7 +765,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'+#{param.employeeName}+'%' diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml index d46406ff5..e05bdf60f 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml @@ -434,7 +434,7 @@ + + diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index c030d038e..1da1b84b6 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -41,6 +41,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; + /** * 薪酬统计员工明细 *

Copyright: Copyright (c) 2022

@@ -348,7 +350,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List salaryAcctEmployeeList) { // 3.获取薪资项目 - PageListSettingQueryParam param = PageListSettingQueryParam.builder().page("salary_details_report").build(); + PageListSettingQueryParam param = PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build(); Map setting = getSettingService(user).getPageListSetting(param); List checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>(); List salaryItemList = getSalaryItemService(user).listByIds(checked); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 27b7e679e..1a5be79a8 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -2,11 +2,19 @@ package com.engine.salary.service; import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; +import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; +import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.po.PageListSettingPO; +import java.util.List; import java.util.Map; public interface SettingService { void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); Map getPageListSetting(PageListSettingQueryParam param); + + List getPageListTemplates(PageListTemplateQueryParam queryParam); + + PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 9f52b7ea8..039786acf 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -6,7 +6,11 @@ import com.engine.core.impl.Service; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; +import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; +import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.setting.PageListSettingMapper; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.SalarySobService; @@ -14,12 +18,14 @@ import com.engine.salary.service.SettingService; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.ValidUtil; import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; /** * 薪资核算 @@ -55,6 +61,8 @@ public class SettingServiceImpl extends Service implements SettingService { } else { pageListSettingPO = PageListSettingPO.builder() .id(IdGenerator.generate()) + .name("系统默认模板") + .template(SalaryOnOffEnum.OFF.getValue()) .page(pageListSettingSaveParam.getPage()) .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())) .creator((long) user.getUID()) @@ -72,7 +80,7 @@ public class SettingServiceImpl extends Service implements SettingService { String page = param.getPage(); Map result = new HashMap(); PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page); - if ("salary_details_report".equals(page)) { + if (SALARY_DETAILS_REPORT.getValue().equals(page)) { List salaryItemList = getSalaryItemService(user).listAll(); salaryItemList = salaryItemList.stream() .filter(po -> { @@ -104,4 +112,64 @@ public class SettingServiceImpl extends Service implements SettingService { } return result; } + + @Override + public List getPageListTemplates(PageListTemplateQueryParam param) { + + ValidUtil.doValidator(param); + + String page = param.getPage(); + + List settingPOS = new ArrayList<>(); + //系统默认模板 + PageListSettingPO settingPO = getPageListSettingMapper().getByPage(page); + if (settingPO != null) { + settingPOS.add(settingPO); + } + + List pos = getPageListSettingMapper().getTemplatesByPage(page); + settingPOS.addAll(pos); + + String name = param.getName(); + if (StrUtil.isNotBlank(name)) { + settingPOS = settingPOS.stream().filter(po -> po.getName() != null && po.getName().contains(name)).collect(Collectors.toList()); + } + + return settingPOS; + } + + @Override + public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + ValidUtil.doValidator(param); + Date now = new Date(); + Long id = param.getId(); + + PageListSettingPO po; + if (id == null) { + po = PageListSettingPO.builder() + .id(IdGenerator.generate()) + .template(SalaryOnOffEnum.ON.getValue()) + .name(param.getName()) + .page(param.getPage()) + .setting(JsonUtil.toJsonString(param.getSetting())) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getPageListSettingMapper().insertIgnoreNull(po); + } else { + po = getPageListSettingMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("模板不存在!"); + } + po.setName(param.getName()); + po.setSetting(JsonUtil.toJsonString(param.getSetting())); + po.setUpdateTime(now); + getPageListSettingMapper().updateIgnoreNull(po); + } + + return po; + } } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index d28dc0d86..43eb418d1 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -3,6 +3,9 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; +import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; +import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.wrapper.SalaryCommonWrapper; @@ -66,6 +69,13 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); } + /** + * 页面默认值 + * @param request + * @param response + * @param param + * @return + */ @POST @Path("/pageList/get/setting") @Produces(MediaType.APPLICATION_JSON) @@ -73,4 +83,34 @@ public class SalaryCommonController { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } + + /** + * 页面模板列表 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/list") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); + } + + /** + * 页面模板列表 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/save") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index e66e09121..428ad2d0d 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -4,12 +4,16 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; +import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; +import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.po.PageListSettingPO; 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 weaver.hrm.User; +import java.util.List; import java.util.Map; @@ -39,4 +43,12 @@ public class SalaryCommonWrapper extends Service { public Map getPageListSetting(PageListSettingQueryParam param) { return getSettingService(user).getPageListSetting(param); } + + public List getPageListTemplates(PageListTemplateQueryParam queryParam) { + return getSettingService(user).getPageListTemplates(queryParam); + } + + public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + return getSettingService(user).savePageListTemplate(param); + } } From cb6738734aaa2190cdd2d1612c8f896f93834fd0 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 5 Nov 2024 11:04:21 +0800 Subject: [PATCH 27/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=A1=A3=E6=A1=88=E5=AF=BC=E5=87=BA=EF=BC=8C?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E4=BA=BA=E5=9C=A8=E5=A4=9A=E4=B8=AA=E4=B9=89?= =?UTF-8?q?=E5=8A=A1=E4=BA=BA=E4=B8=8B=20=E5=AF=BC=E5=87=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SISchemeServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 699094813..504142ea9 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -742,6 +742,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List socialByEmployeeId = getSIArchivesService(user).getSocialByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + // 过滤义务人 + socialByEmployeeId = socialByEmployeeId.stream().filter(s -> s.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(socialByEmployeeId, InsuranceArchivesSocialSchemePO.class); InsuranceArchivesSocialSchemePO socialItem = null; if (socialByEmployeeId.size() > 0) { @@ -752,6 +754,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List fundByEmployeeId = getSIArchivesService(user).getFundByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + // 过滤义务人 + fundByEmployeeId = fundByEmployeeId.stream().filter(f -> f.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(fundByEmployeeId, InsuranceArchivesFundSchemePO.class); if (fundByEmployeeId.size() > 0) { @@ -762,6 +766,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List otherByEmployeeId = getSIArchivesService(user).getOtherByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + otherByEmployeeId = otherByEmployeeId.stream().filter(o -> o.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(otherByEmployeeId, InsuranceArchivesOtherSchemePO.class); if (otherByEmployeeId.size() > 0) { otherItem = otherByEmployeeId.get(0); From 13012b739ed8864d855f5fb819311bf7929693cc Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 5 Nov 2024 16:22:48 +0800 Subject: [PATCH 28/55] =?UTF-8?q?=E5=AE=9A=E8=96=AAaction=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=85=8D=E7=BD=AE=E7=95=99=E5=9C=A8=E5=BE=85=E5=AE=9A?= =?UTF-8?q?=E8=96=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/action/InitSalaryAction.java | 7 +++++++ .../entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 3 ++- .../param/SalaryArchiveImportActionParam.java | 5 +++++ .../param/SalaryArchiveImportHandleParam.java | 5 +++++ .../salary/service/impl/SalaryArchiveExcelServiceImpl.java | 2 +- 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/action/InitSalaryAction.java b/src/com/engine/salary/action/InitSalaryAction.java index 3593dcb9b..d280f49ab 100644 --- a/src/com/engine/salary/action/InitSalaryAction.java +++ b/src/com/engine/salary/action/InitSalaryAction.java @@ -52,6 +52,9 @@ public class InitSalaryAction implements Action { private String tableName; + private String archiveStatus; + + public String getTableName() { return tableName; } @@ -132,6 +135,10 @@ public class InitSalaryAction implements Action { .importDatas(importData) .build(); + if (StringUtils.isNotBlank(archiveStatus) && archiveStatus.equals(SalaryArchiveStatusEnum.PENDING.getValue())) { + build.setKeepStatus(true); + } + //操作人 String uid = importDataMap.getOrDefault("操作人", "1").toString(); Map map = getSalaryArchiveWrapper(new User(Integer.parseInt(uid))).importSalaryArchiveInit(build); diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index 58eaabcad..4aee55819 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -760,7 +760,8 @@ public class SalaryArchiveExcelBO extends Service { // 待停薪导入 || ((sa.getRunStatus().equals(SalaryArchiveStatusEnum.FIXED.getValue()) || sa.getRunStatus().equals(SalaryArchiveStatusEnum.SUSPEND.getValue())) && importHandleParam.isSuspendList()); if (isEnabled) { - if (importHandleParam.isInit()) { + if (importHandleParam.isInit() && + (importHandleParam.getKeepStatus() == null || importHandleParam.getKeepStatus().equals(Boolean.FALSE))) { sa.setRunStatus(SalaryArchiveStatusEnum.FIXED.getValue()); } // sa.setModifier(importHandleParam.getCurrentEmployeeId()); diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java index 06dc670c6..0f8e3a602 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java @@ -42,4 +42,9 @@ public class SalaryArchiveImportActionParam { * 说明 */ private String description; + + /** + * 档案状态是否保持不变 + */ + private Boolean keepStatus; } diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java index a9bd77eb5..155cba89c 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java @@ -172,4 +172,9 @@ public class SalaryArchiveImportHandleParam { * 薪资档案-账套关联 */ List salaryArchiveSobSaves; + + /** + * 薪资档案状态是否保持不变 + */ + Boolean keepStatus; } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index acc81e362..1ee9bc1d6 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -546,7 +546,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 构建导入需要的数据 SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).listType(param.getListType()).importType(param.getImportType()).description(param.getDescription()).build()); - + importHandleParam.setKeepStatus(param.getKeepStatus()); int total = 0; //excel数据 From 5953c2b938060bd42c3230cf94da57f1f66a9e3e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 6 Nov 2024 13:37:03 +0800 Subject: [PATCH 29/55] =?UTF-8?q?=E8=96=AA=E9=85=ACtoken=E5=8A=A0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryBill/bo/SalaryBillBO.java | 4 +-- .../param/SalaryBillGetTokenParam.java | 26 +++++++++++++++++++ .../engine/salary/util/SalaryTokenUtil.java | 14 +++++++--- .../salary/web/SalaryBillController.java | 6 ++--- .../salary/wrapper/SalarySendWrapper.java | 4 +-- 5 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index bce1d0d58..499b3fa15 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -249,9 +249,9 @@ public class SalaryBillBO { String title = billTitle; // 标题 String context = "点击查看详情"; // 内容 // PC端链接 - String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&recipient=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); + String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&salaryCode=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); // 移动端链接 - String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&recipient=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); + String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&salaryCode=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); try { MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, title, context, linkUrl, linkMobileUrl); messageBean.setCreater(Integer.parseInt(salaryBillSendParam.getSendUser().getUID() + ""));// 创建人id diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java new file mode 100644 index 000000000..2ab5be248 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryBillGetTokenParam + * @author Harryxzy + * @date 2024/11/6 9:59 + * @description 第三方获取token参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillGetTokenParam { + + // 新 + private String salaryCode; + + // 老 未加密 + private String recipient; + +} diff --git a/src/com/engine/salary/util/SalaryTokenUtil.java b/src/com/engine/salary/util/SalaryTokenUtil.java index efde5ce91..ec31793d6 100644 --- a/src/com/engine/salary/util/SalaryTokenUtil.java +++ b/src/com/engine/salary/util/SalaryTokenUtil.java @@ -3,6 +3,7 @@ package com.engine.salary.util; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.engine.salary.encrypt.AESEncryptUtil; +import com.engine.salary.entity.salaryBill.param.SalaryBillGetTokenParam; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.db.IdGenerator; import org.apache.commons.lang3.StringUtils; @@ -77,8 +78,13 @@ public class SalaryTokenUtil { * * @return */ - public static Map GetToken(String uid) { - uid = AESEncryptUtil.decrypt4SalaryBill(uid); + public static Map GetToken(SalaryBillGetTokenParam param) { + String uid = ""; + if (StringUtils.isNotBlank(param.getSalaryCode())) { + uid = AESEncryptUtil.decrypt4SalaryBill(param.getSalaryCode()); + } else { + uid = param.getRecipient(); + } Map heads = new HashMap<>(); if (StringUtils.isBlank(uid)) { return heads; @@ -101,10 +107,12 @@ public class SalaryTokenUtil { String sql= " SELECT conf_value FROM hrsa_salary_sys_conf t WHERE delete_type = 0 AND conf_key = 'SALARY_TOKEN_SECRET'"; rs.execute(sql); String secret = ""; - if (rs.next() && StringUtils.isNotEmpty(rs.getString("conf_value"))) { + if (rs.next() && StringUtils.isNotBlank(rs.getString("conf_value"))) { // 从数据库中拿secret secret = rs.getString("conf_value"); } else { + sql= " update hrsa_salary_sys_conf set delete_type=1 WHERE delete_type = 0 AND conf_key in( 'SALARY_TOKEN_SECRET', 'SALARY_TOKEN_SPK')"; + rs.execute(sql); // 注册获取secret // 获取当前异构系统RSA加密的公钥 String cpk = new RSA().getRSA_PUB(); diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 6507ee1f4..64437a579 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -642,12 +642,12 @@ public class SalaryBillController { * @param * @return */ - @GET + @POST @Path("/getToken") @Produces(MediaType.APPLICATION_JSON) - public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "uid") String uid) { + public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryBillGetTokenParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, uid); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, param); } /** diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 179481841..8bbba561c 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -744,8 +744,8 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy return getSalaryBillService(user).exportPdf(param); } - public Map getToken(String uid) { - return SalaryTokenUtil.GetToken( uid); + public Map getToken(SalaryBillGetTokenParam param) { + return SalaryTokenUtil.GetToken(param); } public String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam) { From 15fe5044e82cb9087998c925638870a8fa2218df Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 7 Nov 2024 15:19:11 +0800 Subject: [PATCH 30/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=88=E5=8A=A0?= =?UTF-8?q?=E9=94=81=20=E5=86=8D=E6=A0=B8=E7=AE=97=E6=97=B6=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctCalculateServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index ee7588545..7544d9ec0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -289,7 +289,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc .setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()) .setSalarySobId(salaryAcctEmployeePO.getSalarySobId()) .setSalaryItemId(salaryItemPO.getId()) - .setResultValue(resultValue) + .setResultValue(resultValue == null ? StringUtils.EMPTY : resultValue) .setOriginResultValue(salaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId() + "-" + salaryItemId) == null ? StringUtils.EMPTY : salaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId() + "-" + salaryItemId)) .setCalculateKey(salaryAcctCalculateBO.getCalculateKey()) From e537ffaa5a452775a40c480b75b1fab14939393d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Nov 2024 17:45:17 +0800 Subject: [PATCH 31/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqlupgrade/DM/sql202411060203.sql | 30 +++ sqlupgrade/GS/sql202411060203.sql | 30 +++ sqlupgrade/JC/sql202411060203.sql | 30 +++ sqlupgrade/Mysql/sql202411060203.sql | 28 ++ sqlupgrade/Oracle/sql202411060203.sql | 29 ++ sqlupgrade/PG/sql202411060203.sql | 27 ++ sqlupgrade/SQLServer/sql202411060203.sql | 29 ++ sqlupgrade/ST/sql202411060203.sql | 30 +++ .../setting/dto/PageListTemplateDTO.java | 9 +- .../param/PageListColumnsQueryParam.java | 21 ++ .../param/PageListTemplateChangeParam.java | 31 +++ .../param/PageListTemplateQueryParam.java | 5 + .../param/PageListTemplateSaveParam.java | 7 +- .../salary/entity/setting/po/PageLinkPO.java | 70 +++++ .../entity/setting/po/PageListSettingPO.java | 18 +- .../entity/setting/po/PageListTemplatePO.java | 94 +++++++ .../salary/mapper/setting/PageLinkMapper.java | 74 ++++++ .../salary/mapper/setting/PageLinkMapper.xml | 232 ++++++++++++++++ .../mapper/setting/PageListSettingMapper.java | 2 + .../mapper/setting/PageListSettingMapper.xml | 43 +-- .../setting/PageListTemplateMapper.java | 73 +++++ .../mapper/setting/PageListTemplateMapper.xml | 251 ++++++++++++++++++ .../SalaryStatisticsEmployeeServiceImpl.java | 107 -------- .../SalaryStatisticsEmployeeWrapper.java | 40 ++- .../engine/salary/service/SettingService.java | 23 +- .../service/impl/SettingServiceImpl.java | 197 +++++++++++--- .../sys/constant/SalarySysConstant.java | 5 + .../salary/web/SalaryCommonController.java | 41 ++- .../salary/wrapper/SalaryCommonWrapper.java | 24 +- 29 files changed, 1363 insertions(+), 237 deletions(-) create mode 100644 sqlupgrade/DM/sql202411060203.sql create mode 100644 sqlupgrade/GS/sql202411060203.sql create mode 100644 sqlupgrade/JC/sql202411060203.sql create mode 100644 sqlupgrade/Mysql/sql202411060203.sql create mode 100644 sqlupgrade/Oracle/sql202411060203.sql create mode 100644 sqlupgrade/PG/sql202411060203.sql create mode 100644 sqlupgrade/SQLServer/sql202411060203.sql create mode 100644 sqlupgrade/ST/sql202411060203.sql create mode 100644 src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java create mode 100644 src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java create mode 100644 src/com/engine/salary/entity/setting/po/PageLinkPO.java create mode 100644 src/com/engine/salary/entity/setting/po/PageListTemplatePO.java create mode 100644 src/com/engine/salary/mapper/setting/PageLinkMapper.java create mode 100644 src/com/engine/salary/mapper/setting/PageLinkMapper.xml create mode 100644 src/com/engine/salary/mapper/setting/PageListTemplateMapper.java create mode 100644 src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml diff --git a/sqlupgrade/DM/sql202411060203.sql b/sqlupgrade/DM/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/DM/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/GS/sql202411060203.sql b/sqlupgrade/GS/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/GS/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/JC/sql202411060203.sql b/sqlupgrade/JC/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/JC/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/Mysql/sql202411060203.sql b/sqlupgrade/Mysql/sql202411060203.sql new file mode 100644 index 000000000..d6431564c --- /dev/null +++ b/sqlupgrade/Mysql/sql202411060203.sql @@ -0,0 +1,28 @@ +CREATE TABLE hrsa_page_link +( + id bigint(0) NOT NULL, + employee_id bigint(0), + page varchar(200), + page_setting_id bigint(0), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + +CREATE TABLE hrsa_page_list_template ( +id bigint(0) NOT NULL, +name varchar(200), +page varchar(200), +shared_type int(0), +limit_ids varchar(2000), +setting text, +creator bigint(0), +create_time datetime(0), +update_time datetime(0), +delete_type int(0), +tenant_key varchar(10), +PRIMARY KEY (id) USING BTREE +); diff --git a/sqlupgrade/Oracle/sql202411060203.sql b/sqlupgrade/Oracle/sql202411060203.sql new file mode 100644 index 000000000..065125f8c --- /dev/null +++ b/sqlupgrade/Oracle/sql202411060203.sql @@ -0,0 +1,29 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/sqlupgrade/PG/sql202411060203.sql b/sqlupgrade/PG/sql202411060203.sql new file mode 100644 index 000000000..981b8955d --- /dev/null +++ b/sqlupgrade/PG/sql202411060203.sql @@ -0,0 +1,27 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + page_setting_id bigint, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); \ No newline at end of file diff --git a/sqlupgrade/SQLServer/sql202411060203.sql b/sqlupgrade/SQLServer/sql202411060203.sql new file mode 100644 index 000000000..c81f2ab3f --- /dev/null +++ b/sqlupgrade/SQLServer/sql202411060203.sql @@ -0,0 +1,29 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + page_setting_id bigint, + creator bigint, + create_time datetime, + update_time datetime, + delete_type int, + tenant_key varchar(10) +) +GO + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + creator bigint, + create_time datetime, + update_time datetime, + delete_type int, + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/sqlupgrade/ST/sql202411060203.sql b/sqlupgrade/ST/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/ST/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index 15f47fa0d..c79352ed9 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -1,19 +1,20 @@ 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 PageListTemplateDTO { - - private Long id; - - private String name; + private List setting; + private List checked; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java new file mode 100644 index 000000000..5f8072d19 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java @@ -0,0 +1,21 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListColumnsQueryParam { + + @DataCheck(require = true,message = "请选择页面") + private String page; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java new file mode 100644 index 000000000..3f8d05fd3 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateChangeParam { + + /** + * 页面,0:薪资明细 + */ + @DataCheck(require = true,message = "请选择页面") + private String page; + + /** + * 模板id + */ + @DataCheck(require = true,message = "请选择模板") + private Long templateId; + + +} \ 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 b939ac6f1..61213bbee 100644 --- a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java @@ -15,8 +15,13 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class PageListTemplateQueryParam { + private Long id; + @DataCheck(require = true,message = "请选择页面") private String page; + /** + * 字段name + */ private String name; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java index 2c5cd996c..1ef45247a 100644 --- a/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java @@ -30,9 +30,14 @@ public class PageListTemplateSaveParam { @DataCheck(require = true,message = "请选择模板名称") private String name; + @DataCheck(require = true,message = "请选择共享类型") + private Integer sharedType; + + private List limitIds; + /** * 设置 */ @DataCheck(require = true,message = "请选择设置") - private List setting; + private List setting; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageLinkPO.java b/src/com/engine/salary/entity/setting/po/PageLinkPO.java new file mode 100644 index 000000000..7037abe77 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageLinkPO.java @@ -0,0 +1,70 @@ +package com.engine.salary.entity.setting.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageLinkPO { + + @ElogTransform(name = "id") + private Long id; + + @ElogTransform(name = "人员id") + private Long employeeId; + + /** + * 页面 + */ + @ElogTransform(name = "页面") + private String page; + + /** + * 页面模板id + */ + @ElogTransform(name = "页面模板id") + private Long templateId; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java index ae7b83bf9..8b24728f6 100644 --- a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 薪资帐套表 @@ -18,22 +19,9 @@ import java.util.Date; @AllArgsConstructor public class PageListSettingPO { - - @ElogTransform(name = "") + @ElogTransform(name = "id") private Long id; - /** - * 是否模板:0否,1是 - */ - @ElogTransform(name = "是否模板") - private Integer template; - - /** - * 模板名称 - */ - @ElogTransform(name = "模板名称") - private String name; - /** * 页面,0:薪资明细 */ @@ -44,7 +32,7 @@ public class PageListSettingPO { * 设置 */ @ElogTransform(name = "设置") - private String setting; + private List setting; /** diff --git a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java new file mode 100644 index 000000000..8177534c1 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java @@ -0,0 +1,94 @@ +package com.engine.salary.entity.setting.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplatePO { + + + @ElogTransform(name = "id") + private Long id; + + + /** + * 模板名称 + */ + @ElogTransform(name = "模板名称") + private String name; + + /** + * 页面 + */ + @ElogTransform(name = "页面") + private String page; + + /** + * 设置 + */ + @ElogTransform(name = "设置") + private List setting; + + /** + * 是否共享,0否,1是 + */ + @ElogTransform(name = "是否共享,0否,1是") + private Integer sharedType; + + + /** + * 限制 + */ + @ElogTransform(name = "限制") + private List limitIds; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + + private Boolean checked; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageLinkMapper.java b/src/com/engine/salary/mapper/setting/PageLinkMapper.java new file mode 100644 index 000000000..a15e69330 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageLinkPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageLinkMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PageLinkPO pageLink); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PageLinkPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pageLink 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PageLinkPO pageLink); + + + /** + * 修改,修改所有字段 + * + * @param pageLink 修改的记录 + * @return 返回影响行数 + */ + int update(PageLinkPO pageLink); + + /** + * 修改,忽略null字段 + * + * @param pageLink 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PageLinkPO pageLink); + + /** + * 删除记录 + * + * @param pageLink 待删除的记录 + * @return 返回影响行数 + */ + int delete(PageLinkPO pageLink); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + 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 new file mode 100644 index 000000000..7e5d1856c --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.employee_id + , t.id + , t.page + , t.template_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_link + + + + create_time, + + + creator, + + + delete_type, + + + employee_id, + + + id, + + + page, + + + template_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{employeeId}, + + + #{id}, + + + #{page}, + + + #{templateId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_page_link + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + page=#{page}, + template_id=#{templateId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + page=#{page}, + + + template_id=#{templateId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_link + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java index 5fc974dc1..d45faa161 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java @@ -69,7 +69,9 @@ public interface PageListSettingMapper { */ void deleteByIds(@Param("ids") Collection ids); + //获取页面默认配置 PageListSettingPO getByPage(String page); + //获取页面配置模板 List getTemplatesByPage(String page); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml index a9a656b76..f52abe207 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -4,9 +4,7 @@ - - - + @@ -23,8 +21,6 @@ , t.delete_type , t.id , t.page - , t.name - , t.template , t.setting , t.tenant_key , t.update_time @@ -68,15 +64,6 @@ AND page = #{page} - - AND name = #{name} - - - AND template = #{template} - - - AND setting = #{setting} - AND tenant_key = #{tenantKey} @@ -113,12 +100,6 @@ page, - - name, - - - template, - setting, @@ -145,14 +126,8 @@ #{page}, - - #{name}, - - - #{template}, - - #{setting}, + #{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, #{tenantKey}, @@ -172,9 +147,7 @@ creator=#{creator}, delete_type=#{deleteType}, page=#{page}, - name=#{name}, - template=#{template}, - setting=#{setting}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -198,14 +171,8 @@ page=#{page}, - - name=#{name}, - - - template=#{template}, - - setting=#{setting}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, tenant_key=#{tenantKey}, @@ -241,7 +208,6 @@ FROM hrsa_page_list_setting t WHERE delete_type = 0 - and template = 0 and page = #{page} @@ -250,7 +216,6 @@ FROM hrsa_page_list_setting t WHERE delete_type = 0 - and template = 1 and page = #{page} diff --git a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java new file mode 100644 index 000000000..b729cd64e --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageListTemplateMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PageListTemplatePO pageListTemplate); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PageListTemplatePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pageListTemplate 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PageListTemplatePO pageListTemplate); + + + /** + * 修改,修改所有字段 + * + * @param pageListTemplate 修改的记录 + * @return 返回影响行数 + */ + int update(PageListTemplatePO pageListTemplate); + + /** + * 修改,忽略null字段 + * + * @param pageListTemplate 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PageListTemplatePO pageListTemplate); + + /** + * 删除记录 + * + * @param pageListTemplate 待删除的记录 + * @return 返回影响行数 + */ + int delete(PageListTemplatePO pageListTemplate); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ 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 new file mode 100644 index 000000000..80704b199 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.limit_ids + , t.name + , t.page + , t.setting + , t.shared_type + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_list_template + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + limit_ids, + + + name, + + + page, + + + setting, + + + shared_type, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{name}, + + + #{page}, + + + #{setting , jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{sharedType}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_page_list_template + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + name=#{name}, + page=#{page}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + shared_type=#{sharedType}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + name=#{name}, + + + page=#{page}, + + + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + shared_type=#{sharedType}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_template + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 1da1b84b6..5737baf97 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -354,23 +354,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala Map setting = getSettingService(user).getPageListSetting(param); List checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>(); List salaryItemList = getSalaryItemService(user).listByIds(checked); -// salaryItemList = salaryItemList.stream() -// .sorted(new Comparator() { -// @Override -// public int compare(SalaryItemPO o1, SalaryItemPO o2) { -// if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { -// Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); -// Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); -// return systemType1.compareTo(systemType2); -// } else { -// Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); -// Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); -// return sortedIndex2.compareTo(sortedIndex1); -// } -// } -// }) -// .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(Collections.emptyList()) @@ -383,100 +366,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - - return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) .salaryAcctResultValueList(salaryAcctResultValues) .salaryItemList(salaryItemList) .build(); } - - - // @Override -// public void exportDetailList(Map map, SalaryStatisticsEmployeeDetailQueryParam queryParam) { -// DataCollectionEmployee employee = getSalaryEmployeeService(user).getEmployeeById(queryParam.getEmployeeId()); -// // 获取核算数据 -// SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult; -// if (Objects.isNull(employee)) { -// salaryStatisticsEmployeeDetailResult = SalaryStatisticsEmployeeDetailResultDTO.builder() -// .salaryAcctEmployeeList(Lists.newArrayList()) -// .salaryAcctResultValueList(Lists.newArrayList()) -// .salaryItemList(Lists.newArrayList()) -// .build(); -// } else { -// salaryStatisticsEmployeeDetailResult = this.getDetailSalaryAcctResult(queryParam); -// } -// -// String nameI18n = (StringUtils.isEmpty(employee.getUsername()) ? "" : "[" + employee.getUsername() + "]") + SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 177855, "薪资明细表"); -// -// List sheetList = new ArrayList<>(); -// ExcelSheetData excelSheetData = new ExcelSheetData(); -// // 1.工作簿名称 -// excelSheetData.setSheetName(nameI18n); -// List headerList = Lists.newArrayList(); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 87614, "薪资所属月")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 121908, "收入所得项目")); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> headerList.add(item.getName())); -// // 2.表头 -// excelSheetData.setHeaders(Collections.singletonList(headerList.toArray(new String[]{}))); -// -// List taxAgentList = getTaxAgentService(user).listAll(tenantKey); -// Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentList, TaxAgentPO::getId, TaxAgentPO::getName); -// -// Map> acctResultValueMap = SalaryEntityUtil.convert2Map(salaryStatisticsEmployeeDetailResult.getSalaryAcctResultValueList(), SalaryAcctResultPO::getSalaryAcctEmployeeId, SalaryAcctResultPO::getResultValue); -// -// // 组装数据 -// List> rows = new ArrayList<>(); -// for (SalaryAcctEmployeePO se : salaryStatisticsEmployeeDetailResult.getSalaryAcctEmployeeList()) { -// if (CollectionUtils.isNotEmpty(queryParam.getIds()) && !queryParam.getIds().contains(se.getId())) { -// continue; -// } -// List row = new ArrayList<>(); -// row.add(se.getSalaryMonth()); -// row.add(taxAgentMap.get(se.getTaxAgentId())); -// IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); -// row.add(Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); -// // 薪资项目 -// Map resultValueMap = Optional.ofNullable(acctResultValueMap.get(se.getId())).orElse(Maps.newHashMap()); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> row.add(Optional.ofNullable(resultValueMap.get(item.getId().toString())).orElse(""))); -// -// rows.add(row); -// } -// if (CollectionUtils.isNotEmpty(rows)) { -// List countRow = new ArrayList<>(); -// countRow.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 93278, "合计")); -// countRow.add("-"); -// countRow.add("-"); -// -// for (int i = 3; i < headerList.size(); i++) { -// BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.D_ZERO); -// for (List row : rows) { -// sumBigDecimal = sumBigDecimal.add(new BigDecimal(StringUtils.isEmpty(row.get(i).toString()) ? SalaryStatisticsReportBO.ZERO : row.get(i).toString())); -// } -// countRow.add(sumBigDecimal.toString()); -// } -// rows.add(countRow); -// } -// -// // 3.表数据 -// excelSheetData.setRows(rows); -// -// sheetList.add(excelSheetData); -// -// salaryBatchService.simpleExportExcel(ExportExcelInfo.builder() -//// .sharePassword(queryParam.getSharePassword()) -// .bizId(map.get("biz").toString()) -// .flag(true) -// .userId(employeeId) -// .eteamsId(map.get("eteamsId").toString()) -// .tenantKey(tenantKey) -// .operator(map.get("username").toString()) -// .module(map.get("module").toString()) -// .fileName(nameI18n + ReportTimeUtil.getFormatLocalDateTime(LocalDateTime.now())) -// .handlerName("exportSalaryStatisticsEmployeeDetailList") -// .dataType(nameI18n) -// .function("exportSalaryStatisticsEmployeeDetailList").build(), sheetList); -// } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 63e0863cf..de4c32dd1 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -23,7 +23,11 @@ import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.report.service.impl.SalaryStatisticsEmployeeServiceImpl; import com.engine.salary.report.util.ReportDataUtil; import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryItemServiceImpl; +import com.engine.salary.service.impl.SettingServiceImpl; +import com.engine.salary.sys.service.SalarySysConfService; +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.excel.ExcelUtilPlus; @@ -46,6 +50,9 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_DETAILS_REPORT_SHOW_TYPE; + /** * 薪酬统计员工明细 *

Copyright: Copyright (c) 2022

@@ -64,6 +71,17 @@ public class SalaryStatisticsEmployeeWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //是否模板显示 + private final boolean templateShow = "1".equals(getSalarySysConfService(user).getValueByCode(SALARY_DETAILS_REPORT_SHOW_TYPE)); + /** * 员工列表 * @@ -189,12 +207,18 @@ public class SalaryStatisticsEmployeeWrapper extends Service { } pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); - // 列表columns - List weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true); + List weaTableColumns; + //显示方案1,显示模板 + if (templateShow) { + weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue()); + } else { + // 显示方案0,显示定制列,默认方式 + weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true); + } // 结果 + resultMap.put("columns", weaTableColumns); if (queryParam.isExport()) { - resultMap.put("columns", weaTableColumns); resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList()); resultMap.put("countResult", countResultMap); } else { @@ -229,7 +253,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); List employeePOS = salaryAcctEmployeePageInfo.getList(); - if (CollectionUtils.isEmpty(employeePOS)){ + if (CollectionUtils.isEmpty(employeePOS)) { return resultMap; } @@ -274,9 +298,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { queryParam.setCurrent(1); queryParam.setExport(true); Map resultMap = salaryList(queryParam); - List columns = (List)resultMap.get("columns"); + List columns = (List) resultMap.get("columns"); List> resultList = ((PageInfo>) resultMap.get("pageInfo")).getList(); - Map countResult = (Map)resultMap.get("countResult"); + Map countResult = (Map) resultMap.get("countResult"); Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); // 获取薪资项目保留小数位数 @@ -299,7 +323,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { for (Map valueMap : resultList) { List list = new ArrayList<>(); for (Object column : finalColumns) { - WeaTableColumnGroup col = (WeaTableColumnGroup)column; + WeaTableColumnGroup col = (WeaTableColumnGroup) column; if (col.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { list.add(new BigDecimal(Util.null2String(valueMap.get(col.getColumn())))); @@ -316,7 +340,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { List sumRow = new ArrayList<>(); sumRow.add("总计"); for (int i = 1; i < finalColumns.size(); i++) { - WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup)finalColumns.get(i); + WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup) finalColumns.get(i); if (weaTableColumnGroup.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { sumRow.add(new BigDecimal(Util.null2String(countResult.get(weaTableColumnGroup.getColumn())))); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 1a5be79a8..aa6526b02 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -1,20 +1,25 @@ package com.engine.salary.service; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; -import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import java.util.List; import java.util.Map; public interface SettingService { - void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); + void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); - Map getPageListSetting(PageListSettingQueryParam param); + Map getPageListSetting(PageListSettingQueryParam param); - List getPageListTemplates(PageListTemplateQueryParam queryParam); + PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param); - PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param); + List getPageListTemplates(PageListTemplateQueryParam queryParam); + + PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam 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 039786acf..207faa365 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -1,21 +1,29 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.cloudstore.eccom.constant.WeaBoolAttr; +import com.cloudstore.eccom.pc.table.WeaTableColumn; 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.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; -import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.setting.PageLinkMapper; import com.engine.salary.mapper.setting.PageListSettingMapper; +import com.engine.salary.mapper.setting.PageListTemplateMapper; +import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.service.SalaryItemService; -import com.engine.salary.service.SalarySobService; import com.engine.salary.service.SettingService; -import com.engine.salary.util.JsonUtil; +import com.engine.salary.service.TaxAgentService; +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.valid.ValidUtil; @@ -41,30 +49,36 @@ public class SettingServiceImpl extends Service implements SettingService { return MapperProxyFactory.getProxy(PageListSettingMapper.class); } - private SalarySobService getSalarySobService(User user) { - return ServiceUtil.getService(SalarySobServiceImpl.class, user); + private PageListTemplateMapper getPageListTemplateMapper() { + return MapperProxyFactory.getProxy(PageListTemplateMapper.class); + } + + private PageLinkMapper getPageLinkMapper() { + return MapperProxyFactory.getProxy(PageLinkMapper.class); } private SalaryItemService getSalaryItemService(User user) { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private TaxAgentService getTaxAgentService() { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + @Override public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) { Date now = new Date(); PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage()); if (pageListSettingPO != null) { - pageListSettingPO.setSetting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())); + pageListSettingPO.setSetting(pageListSettingSaveParam.getSetting()); pageListSettingPO.setUpdateTime(now); getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); } else { pageListSettingPO = PageListSettingPO.builder() .id(IdGenerator.generate()) - .name("系统默认模板") - .template(SalaryOnOffEnum.OFF.getValue()) .page(pageListSettingSaveParam.getPage()) - .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())) + .setting(pageListSettingSaveParam.getSetting()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -103,8 +117,8 @@ public class SettingServiceImpl extends Service implements SettingService { }) .collect(Collectors.toList()); result.put("setting", salaryItemList); - if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) { - result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class)); + if (pageListSettingPO != null && CollUtil.isNotEmpty(pageListSettingPO.getSetting())) { + result.put("checked", pageListSettingPO.getSetting()); } else { List collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); result.put("checked", collect); @@ -114,62 +128,165 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public List getPageListTemplates(PageListTemplateQueryParam param) { + 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")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgent")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "账套"), "salarySob")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "userName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "分部"), "subCompany")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "部门"), "department")); + 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, "入职日期"), "companystartdate")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); + if (StrUtil.isNotBlank(param.getName())) { + columns = columns.stream().filter(column -> column.getText().contains(param.getName())).collect(Collectors.toList()); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + List collect = salaryItemList.stream() + .filter(po -> { + String name = param.getName(); + if (StrUtil.isNotEmpty(name)) { + return po.getName() != null && po.getName().contains(name); + } + return true; + }) + .sorted((o1, o2) -> { + if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { + Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); + Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); + return systemType1.compareTo(systemType2); + } else { + Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); + Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); + return sortedIndex2.compareTo(sortedIndex1); + } + }) + .map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)) + .collect(Collectors.toList()); + + columns.addAll(collect); + + Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); + List checkedList = new ArrayList<>(); + if (id != null) { + 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()); + + } + } + return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build(); + } + + return PageListTemplateDTO.builder().build(); + } + + @Override + public List getPageListTemplates(PageListTemplateQueryParam param) { ValidUtil.doValidator(param); String page = param.getPage(); - List settingPOS = new ArrayList<>(); - //系统默认模板 - PageListSettingPO settingPO = getPageListSettingMapper().getByPage(page); - if (settingPO != null) { - settingPOS.add(settingPO); - } + PageListTemplatePO build = PageListTemplatePO.builder().page(page).build(); + List pos = getPageListTemplateMapper().listSome(build); - List pos = getPageListSettingMapper().getTemplatesByPage(page); - settingPOS.addAll(pos); + //获取当前选择的模板 + PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), SALARY_DETAILS_REPORT.getValue()); - String name = param.getName(); - if (StrUtil.isNotBlank(name)) { - settingPOS = settingPOS.stream().filter(po -> po.getName() != null && po.getName().contains(name)).collect(Collectors.toList()); - } - - return settingPOS; + Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + pos = pos.stream() + .filter(po -> po.getSharedType() != 1 || CollectionUtil.intersection(po.getLimitIds(), taxIds).size() != 0) + .peek(po -> { + po.setChecked(link != null && po.getId().equals(link.getTemplateId())); + }) + .collect(Collectors.toList()); + return pos; } @Override - public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { ValidUtil.doValidator(param); Date now = new Date(); Long id = param.getId(); - PageListSettingPO po; + PageListTemplatePO po; if (id == null) { - po = PageListSettingPO.builder() + po = PageListTemplatePO.builder() .id(IdGenerator.generate()) - .template(SalaryOnOffEnum.ON.getValue()) - .name(param.getName()) .page(param.getPage()) - .setting(JsonUtil.toJsonString(param.getSetting())) + .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(); - getPageListSettingMapper().insertIgnoreNull(po); + getPageListTemplateMapper().insertIgnoreNull(po); } else { - po = getPageListSettingMapper().getById(id); + po = getPageListTemplateMapper().getById(id); if (po == null) { throw new SalaryRunTimeException("模板不存在!"); } po.setName(param.getName()); - po.setSetting(JsonUtil.toJsonString(param.getSetting())); + po.setSharedType(param.getSharedType()); + po.setLimitIds(param.getLimitIds()); + po.setSetting(param.getSetting()); po.setUpdateTime(now); - getPageListSettingMapper().updateIgnoreNull(po); + getPageListTemplateMapper().updateIgnoreNull(po); } return po; } + + @Override + public void changePageListTemplate(PageListTemplateChangeParam param) { + + ValidUtil.doValidator(param); + + List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(param.getPage()).build()); + if (CollUtil.isNotEmpty(pageLinkPOS)) { + Set ids = SalaryEntityUtil.properties(pageLinkPOS, PageLinkPO::getId); + getPageLinkMapper().deleteByIds(ids); + } + PageLinkPO pageLinkPO = PageLinkPO.builder() + .id(IdGenerator.generate()) + .employeeId((long) user.getUID()) + .page(param.getPage()) + .templateId(param.getTemplateId()) + .tenantKey(DEFAULT_TENANT_KEY) + .createTime(new Date()) + .updateTime(new Date()) + .creator((long) user.getUID()) + .deleteType(0) + .build(); + + getPageLinkMapper().insertIgnoreNull(pageLinkPO); + } + + @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(); + } + } } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ee89c5974..70bdecb64 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -166,4 +166,9 @@ public class SalarySysConstant { * 报表组织类型,null/0 :核算时组织信息 1:实时组织信息 */ public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; + + /** + * 薪资明细页面显示类型 + */ + public static final String SALARY_DETAILS_REPORT_SHOW_TYPE = "SALARY_DETAILS_REPORT_SHOW_TYPE"; } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 43eb418d1..28155c729 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,11 +1,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +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.wrapper.SalaryCommonWrapper; @@ -84,6 +83,21 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } + /** + * 页面模板表单 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/get") + @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); + } + /** * 页面模板列表 * @param request @@ -96,7 +110,7 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String getPageListTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); } /** @@ -111,6 +125,21 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + } + + /** + * 页面模板列表 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/change") + @Produces(MediaType.APPLICATION_JSON) + public String changeTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateChangeParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::changePageListTemplate, param); } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 428ad2d0d..7719c6d5a 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,11 +2,9 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; -import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +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; @@ -44,11 +42,21 @@ public class SalaryCommonWrapper extends Service { return getSettingService(user).getPageListSetting(param); } - public List getPageListTemplates(PageListTemplateQueryParam queryParam) { - return getSettingService(user).getPageListTemplates(queryParam); + + public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplate(param); } - public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + public List getPageListTemplates(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplates(param); + } + + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { return getSettingService(user).savePageListTemplate(param); } + + public void changePageListTemplate(PageListTemplateChangeParam param) { + getSettingService(user).changePageListTemplate(param); + } + } From a2f8803e76b3cbd4cc83a4dc3824a6486ecc33c2 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 8 Nov 2024 16:08:49 +0800 Subject: [PATCH 32/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=96=AA=E6=97=B6=E9=97=B4=20?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryArchiveQueryParam.java | 6 +++++ .../archive/SalaryArchiveItemMapper.java | 2 ++ .../archive/SalaryArchiveItemMapper.xml | 22 +++++++++++++++++++ .../service/SalaryArchiveItemService.java | 10 +++++++++ .../impl/SalaryArchiveItemServiceImpl.java | 13 +++++++++++ .../impl/SalaryArchiveServiceImpl.java | 10 +++++++++ 6 files changed, 63 insertions(+) diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java index fd36884d3..bbbd2cc80 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java @@ -112,4 +112,10 @@ public class SalaryArchiveQueryParam extends BaseQueryParam { // 最后发薪日期止 private Date payEndDateEndDate; + // 调薪起始日期 + private Date adjustSalaryStartDate; + + // 调薪结束日期 + private Date adjustSalaryEndDate; + } diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java index 78e83be7b..f3105e794 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.archive; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; @@ -97,4 +98,5 @@ public interface SalaryArchiveItemMapper { int batchUpdate(@Param("collection") List pos); + List listByArchiveIdAndEffectiveTime(@Param("salaryArchivesIds")List salaryArchiveIds, @Param("effectiveRange")LocalDateRange dateRange); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml index ff6f3ee20..d0830bad3 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml @@ -1071,6 +1071,28 @@ ORDER BY t.effective_time DESC + + UPDATE hrsa_salary_archive_item diff --git a/src/com/engine/salary/service/SalaryArchiveItemService.java b/src/com/engine/salary/service/SalaryArchiveItemService.java index 9d9081bd8..6e22d49ba 100644 --- a/src/com/engine/salary/service/SalaryArchiveItemService.java +++ b/src/com/engine/salary/service/SalaryArchiveItemService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam; @@ -163,4 +164,13 @@ public interface SalaryArchiveItemService { ArchiveFieldConfig getConfig(); UploadConfigResponse.Result parseConfig(ArchiveFieldConfig config); + + /** + * 根据薪资档案id和生效日期范围获取数据 + * + * @param salaryArchiveIds + * @param dateRange + * @return + */ + List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 01b94c051..13e413ec7 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.biz.SalaryArchiveItemBiz; import com.engine.salary.biz.SalaryItemBiz; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -807,4 +808,16 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return result; } + @Override + public List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange) { + if (CollectionUtils.isEmpty(salaryArchiveIds)) { + return Collections.emptyList(); + } + List resultList = new ArrayList<>(); + List> partition = Lists.partition(salaryArchiveIds, 1000); + partition.forEach(part -> { + resultList.addAll(getSalaryArchiveItemMapper().listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange)); + }); + return resultList; + } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 5165b6c50..0220ea480 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -185,6 +185,16 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } List list = getSalaryArchiveMapper().list(queryParam); + + // 过滤调薪日期 + if (queryParam.getAdjustSalaryStartDate() != null || queryParam.getAdjustSalaryEndDate() != null) { + List salaryArchiveIds = list.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + LocalDateRange dateRange = LocalDateRange.builder().fromDate(queryParam.getAdjustSalaryStartDate()).endDate(queryParam.getAdjustSalaryEndDate()).build(); + List salaryArchiveItemPOList = getSalaryArchiveItemService(user).listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange); + List archiveIds = salaryArchiveItemPOList.stream().map(SalaryArchiveItemPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); + list = list.stream().filter(dto -> archiveIds.contains(dto.getId())).collect(Collectors.toList()); + } + return SalaryI18nUtil.i18nList(list); } From 7e235e112af7daf692c24169efdb95c872f2e61e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 8 Nov 2024 16:20:30 +0800 Subject: [PATCH 33/55] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9Cnull=E6=8F=92=E5=85=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctCalculateServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 7544d9ec0..d4563d8d2 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -274,7 +274,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc //是否锁定 if (lockItems != null && lockItems.contains(salaryItemId)) { - resultValue = empItemValueMap.get(salaryAcctEmployeePOId + "_" + salaryItemId); + resultValue = empItemValueMap.getOrDefault(salaryAcctEmployeePOId + "_" + salaryItemId, StringUtils.EMPTY); } // 将已经计算过的薪资项目的值转换成公式变量的值添加到集合中 String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); @@ -289,7 +289,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc .setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()) .setSalarySobId(salaryAcctEmployeePO.getSalarySobId()) .setSalaryItemId(salaryItemPO.getId()) - .setResultValue(resultValue == null ? StringUtils.EMPTY : resultValue) + .setResultValue(resultValue) .setOriginResultValue(salaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId() + "-" + salaryItemId) == null ? StringUtils.EMPTY : salaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId() + "-" + salaryItemId)) .setCalculateKey(salaryAcctCalculateBO.getCalculateKey()) From 058e7dcb3c0f74c6c9d40487d58a5a02c11c507a Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 8 Nov 2024 16:29:06 +0800 Subject: [PATCH 34/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=96=AA=E6=97=B6=E9=97=B4=20?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/web/SalaryArchiveController.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 0fbe3797c..8bb205be2 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -539,6 +539,30 @@ public class SalaryArchiveController { if (StringUtils.isNotBlank(extSalaryArchiveList)) { param.setExtSalaryArchiveList("true".equals(extSalaryArchiveList)); } + String payStartDateStartDateStr = request.getParameter("payStartDateStartDateStr"); + if (StringUtils.isNotBlank(payStartDateStartDateStr) && SalaryDateUtil.checkDay(payStartDateStartDateStr)) { + param.setPayStartDateStartDate(SalaryDateUtil.stringToDate(payStartDateStartDateStr)); + } + String payStartDateEndDateStr = request.getParameter("payStartDateEndDateStr"); + if (StringUtils.isNotBlank(payStartDateEndDateStr) && SalaryDateUtil.checkDay(payStartDateEndDateStr)) { + param.setPayStartDateEndDate(SalaryDateUtil.stringToDate(payStartDateEndDateStr)); + } + String payEndDateStartDateStr = request.getParameter("payEndDateStartDateStr"); + if (StringUtils.isNotBlank(payEndDateStartDateStr) && SalaryDateUtil.checkDay(payEndDateStartDateStr)) { + param.setPayEndDateStartDate(SalaryDateUtil.stringToDate(payEndDateStartDateStr)); + } + String payEndDateEndDateStr = request.getParameter("payEndDateEndDateStr"); + if (StringUtils.isNotBlank(payEndDateEndDateStr) && SalaryDateUtil.checkDay(payEndDateEndDateStr)) { + param.setPayEndDateEndDate(SalaryDateUtil.stringToDate(payEndDateEndDateStr)); + } + String adjustSalaryStartDateStr = request.getParameter("adjustSalaryStartDate"); + if (StringUtils.isNotBlank(adjustSalaryStartDateStr) && SalaryDateUtil.checkDay(adjustSalaryStartDateStr)) { + param.setAdjustSalaryStartDate(SalaryDateUtil.stringToDate(adjustSalaryStartDateStr)); + } + String adjustSalaryEndDate = request.getParameter("adjustSalaryEndDate"); + if (StringUtils.isNotBlank(adjustSalaryEndDate) && SalaryDateUtil.checkDay(adjustSalaryEndDate)) { + param.setAdjustSalaryEndDate(SalaryDateUtil.stringToDate(adjustSalaryEndDate)); + } return param; } From 7aa3d12d4f7bddffb487b0120358ec41b9509dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 8 Nov 2024 17:00:42 +0800 Subject: [PATCH 35/55] =?UTF-8?q?=E6=A8=A1=E6=9D=BFsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {sqlupgrade => resource/sqlupgrade}/DM/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/GS/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/JC/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/Mysql/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/Oracle/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/PG/sql202411060203.sql | 2 +- .../sqlupgrade}/SQLServer/sql202411060203.sql | 2 +- {sqlupgrade => resource/sqlupgrade}/ST/sql202411060203.sql | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) rename {sqlupgrade => resource/sqlupgrade}/DM/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/GS/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/JC/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/Mysql/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/Oracle/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/PG/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/SQLServer/sql202411060203.sql (95%) rename {sqlupgrade => resource/sqlupgrade}/ST/sql202411060203.sql (95%) diff --git a/sqlupgrade/DM/sql202411060203.sql b/resource/sqlupgrade/DM/sql202411060203.sql similarity index 95% rename from sqlupgrade/DM/sql202411060203.sql rename to resource/sqlupgrade/DM/sql202411060203.sql index de7d06e71..d19f32161 100644 --- a/sqlupgrade/DM/sql202411060203.sql +++ b/resource/sqlupgrade/DM/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id NUMBER(38,0) primary key NOT NULL, employee_id NUMBER(38,0), page varchar2(200), - page_setting_id NUMBER(38,0), + template_id NUMBER(38,0), creator NUMBER(38,0), create_time date, update_time date, diff --git a/sqlupgrade/GS/sql202411060203.sql b/resource/sqlupgrade/GS/sql202411060203.sql similarity index 95% rename from sqlupgrade/GS/sql202411060203.sql rename to resource/sqlupgrade/GS/sql202411060203.sql index de7d06e71..d19f32161 100644 --- a/sqlupgrade/GS/sql202411060203.sql +++ b/resource/sqlupgrade/GS/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id NUMBER(38,0) primary key NOT NULL, employee_id NUMBER(38,0), page varchar2(200), - page_setting_id NUMBER(38,0), + template_id NUMBER(38,0), creator NUMBER(38,0), create_time date, update_time date, diff --git a/sqlupgrade/JC/sql202411060203.sql b/resource/sqlupgrade/JC/sql202411060203.sql similarity index 95% rename from sqlupgrade/JC/sql202411060203.sql rename to resource/sqlupgrade/JC/sql202411060203.sql index de7d06e71..d19f32161 100644 --- a/sqlupgrade/JC/sql202411060203.sql +++ b/resource/sqlupgrade/JC/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id NUMBER(38,0) primary key NOT NULL, employee_id NUMBER(38,0), page varchar2(200), - page_setting_id NUMBER(38,0), + template_id NUMBER(38,0), creator NUMBER(38,0), create_time date, update_time date, diff --git a/sqlupgrade/Mysql/sql202411060203.sql b/resource/sqlupgrade/Mysql/sql202411060203.sql similarity index 95% rename from sqlupgrade/Mysql/sql202411060203.sql rename to resource/sqlupgrade/Mysql/sql202411060203.sql index d6431564c..57144b7ee 100644 --- a/sqlupgrade/Mysql/sql202411060203.sql +++ b/resource/sqlupgrade/Mysql/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id bigint(0) NOT NULL, employee_id bigint(0), page varchar(200), - page_setting_id bigint(0), + template_id bigint(0), creator bigint(0), create_time datetime(0), update_time datetime(0), diff --git a/sqlupgrade/Oracle/sql202411060203.sql b/resource/sqlupgrade/Oracle/sql202411060203.sql similarity index 95% rename from sqlupgrade/Oracle/sql202411060203.sql rename to resource/sqlupgrade/Oracle/sql202411060203.sql index 065125f8c..0bd5a59a9 100644 --- a/sqlupgrade/Oracle/sql202411060203.sql +++ b/resource/sqlupgrade/Oracle/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id NUMBER(38,0) primary key NOT NULL, employee_id NUMBER(38,0), page varchar2(200), - page_setting_id NUMBER(38,0), + template_id NUMBER(38,0), creator NUMBER(38,0), create_time date, update_time date, diff --git a/sqlupgrade/PG/sql202411060203.sql b/resource/sqlupgrade/PG/sql202411060203.sql similarity index 95% rename from sqlupgrade/PG/sql202411060203.sql rename to resource/sqlupgrade/PG/sql202411060203.sql index 981b8955d..21dae6b98 100644 --- a/sqlupgrade/PG/sql202411060203.sql +++ b/resource/sqlupgrade/PG/sql202411060203.sql @@ -3,7 +3,7 @@ create table hrsa_page_link id bigint primary key, employee_id bigint, page varchar(200), - page_setting_id bigint, + template_id bigint, creator bigint, create_time timestamp, update_time timestamp, diff --git a/sqlupgrade/SQLServer/sql202411060203.sql b/resource/sqlupgrade/SQLServer/sql202411060203.sql similarity index 95% rename from sqlupgrade/SQLServer/sql202411060203.sql rename to resource/sqlupgrade/SQLServer/sql202411060203.sql index c81f2ab3f..d901127a1 100644 --- a/sqlupgrade/SQLServer/sql202411060203.sql +++ b/resource/sqlupgrade/SQLServer/sql202411060203.sql @@ -3,7 +3,7 @@ create table hrsa_page_link id bigint primary key, employee_id bigint, page varchar(200), - page_setting_id bigint, + template_id bigint, creator bigint, create_time datetime, update_time datetime, diff --git a/sqlupgrade/ST/sql202411060203.sql b/resource/sqlupgrade/ST/sql202411060203.sql similarity index 95% rename from sqlupgrade/ST/sql202411060203.sql rename to resource/sqlupgrade/ST/sql202411060203.sql index de7d06e71..d19f32161 100644 --- a/sqlupgrade/ST/sql202411060203.sql +++ b/resource/sqlupgrade/ST/sql202411060203.sql @@ -3,7 +3,7 @@ CREATE TABLE hrsa_page_link id NUMBER(38,0) primary key NOT NULL, employee_id NUMBER(38,0), page varchar2(200), - page_setting_id NUMBER(38,0), + template_id NUMBER(38,0), creator NUMBER(38,0), create_time date, update_time date, From ce80905ad0f8b8a14b3c30e7a015381ab1631385 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 11 Nov 2024 09:59:27 +0800 Subject: [PATCH 36/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsEmployeeWrapper.java | 41 ++++++++----------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index de4c32dd1..0b7a3f87a 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -180,31 +180,8 @@ public class SalaryStatisticsEmployeeWrapper extends Service { SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); - Map countResultMap = Maps.newHashMap(); - if (CollectionUtils.isNotEmpty(records)) { - List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); - for (SalaryItemPO item : salaryItems) { - BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); - String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; - for (Map record : records) { - if (record.containsKey(itemKey)) { - if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { - sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); - record.put(itemKey, record.get(itemKey).toString()); - } - } - } - // 薪资项目合计 - if (queryParam.isExport()) { - countResultMap.put(itemKey, sumBigDecimal.toString()); - } - } - } PageInfo> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); pageInfo.setList(records); - if (queryParam.isExport()) { - pageInfo.setList(records); - } pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); List weaTableColumns; @@ -219,6 +196,20 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 结果 resultMap.put("columns", weaTableColumns); if (queryParam.isExport()) { + Map countResultMap = Maps.newHashMap(); + List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); + if (CollectionUtils.isNotEmpty(records)) { + for (SalaryItemPO item : salaryItems) { + BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); + String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; + for (Map record : records) { + if (Objects.nonNull(record.get(itemKey)) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); + } + } + countResultMap.put(itemKey, sumBigDecimal.toString()); + } + } resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList()); resultMap.put("countResult", countResultMap); } else { @@ -275,7 +266,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; for (Map record : records) { if (record.containsKey(itemKey)) { - if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + if (Objects.nonNull(record.get(itemKey)) && NumberUtils.isCreatable(record.get(itemKey).toString())) { sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); } } @@ -313,7 +304,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { SalaryItemPO salaryItemPO = salaryItemMap.get(column.getColumn()); Integer pattern = salaryItemPO == null ? 0 : salaryItemPO.getPattern(); String dataType = salaryItemPO == null ? SalaryDataTypeEnum.STRING.getValue() : salaryItemPO.getDataType(); - finalColumns.add(new WeaTableColumnGroup("100px", column.getText(), column.getColumn(), "false", pattern, dataType)); + finalColumns.add(new WeaTableColumnGroup("100px", Util.formatMultiLang(column.getText()), column.getColumn(), "false", pattern, dataType)); } }); List> rowList = new ArrayList<>(); From 553764da860aad0b07c6453b9ecd4caca140328b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 11 Nov 2024 10:51:59 +0800 Subject: [PATCH 37/55] =?UTF-8?q?=E6=A8=A1=E6=9D=BFsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryStatisticsEmployeeServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 5737baf97..813b0e867 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -340,11 +340,11 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(emp -> queryParam.getIds().contains(emp.getId())).collect(Collectors.toList()); } salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth).reversed()).collect(Collectors.toList()); - PageInfo SalaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); + PageInfo salaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); if (queryParam.isExport()) { - SalaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); + salaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); } - return SalaryAcctEmployeePageInfo; + return salaryAcctEmployeePageInfo; } @Override From 95abadfb0d74e6d473ecc9778b6e4d6db6ebe56e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 11 Nov 2024 14:06:15 +0800 Subject: [PATCH 38/55] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIRepairServiceImpl.java | 90 ++++++++++++++----- 1 file changed, 70 insertions(+), 20 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java index 270fbb143..9ce45ed5a 100644 --- a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java @@ -223,13 +223,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { List> resultList = new ArrayList<>(); if (projects.contains(ProjectTypeEnum.ALL.getValue())) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap.keySet()); + socialIds.addAll(socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -257,13 +262,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { }); } - if (fundSchemePO != null && StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString())) { + if (fundSchemePO != null && (StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString()) || StringUtils.isNotBlank(fundSchemePO.getFundPaymentComBaseString()))) { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); + Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); + List fundIds = new ArrayList<>(); + fundIds.addAll(fundMap.keySet()); + fundIds.addAll(fundComMap.keySet()); + fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - fundMap.forEach((k, v) -> { + fundIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -291,13 +301,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { }); } - if (otherSchemePO != null && StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString())) { + if (otherSchemePO != null && (StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString()) || StringUtils.isNotBlank(otherSchemePO.getOtherPaymentComBaseString()))) { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); + Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); + List otherIds = new ArrayList<>(); + otherIds.addAll(otherMap.keySet()); + otherIds.addAll(otherComMap.keySet()); + otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - otherMap.forEach((k, v) -> { + otherIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -327,13 +342,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { return resultList; } if (projects.contains(ProjectTypeEnum.SOCIAL.getValue())) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap.keySet()); + socialIds.addAll(socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -365,15 +385,22 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap.keySet()); + socialIds.addAll(socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach( k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -405,15 +432,23 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (!projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap.keySet()); + socialIds.addAll(socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -445,15 +480,22 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (!projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9002".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap.keySet()); + socialIds.addAll(socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -483,14 +525,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { } } if (projects.contains(ProjectTypeEnum.FUND.getValue())) { - if (fundSchemePO != null && StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString())) { + if (fundSchemePO != null && (StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString()) || StringUtils.isNotBlank(fundSchemePO.getFundPaymentComBaseString()))) { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); + Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); + List fundIds = new ArrayList<>(); + fundIds.addAll(fundMap.keySet()); + fundIds.addAll(fundComMap.keySet()); + fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - - fundMap.forEach((k, v) -> { + fundIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -520,14 +566,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { } } if (projects.contains(ProjectTypeEnum.OTHER.getValue())) { - if (otherSchemePO != null && StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString())) { + if (otherSchemePO != null && (StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString()) || StringUtils.isNotBlank(otherSchemePO.getOtherPaymentComBaseString()))) { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); + Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); + List otherIds = new ArrayList<>(); + otherIds.addAll(otherMap.keySet()); + otherIds.addAll(otherComMap.keySet()); + otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - - otherMap.forEach((k, v) -> { + otherIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { From 02de1e444458308db9dc62ae115a06c12ac35501 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 11 Nov 2024 15:02:21 +0800 Subject: [PATCH 39/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=8F=91?= =?UTF-8?q?=E6=94=BE=E9=A2=84=E8=A7=88=EF=BC=8C=E5=85=BC=E5=AE=B9=E5=BE=88?= =?UTF-8?q?=E6=97=A9=E4=B9=8B=E5=89=8D=E6=96=B0=E5=BB=BA=E7=9A=84=E5=B7=A5?= =?UTF-8?q?=E8=B5=84=E5=8D=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySendServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 066e89b8d..c4bf99093 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1920,7 +1920,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("salaryAcctResult", salaryAcctResultS); // 工资单确认按钮 - if (NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0) { + if (salaryTemplate.getAckFeedbackStatus() != null && NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0) { // 开启了工资单确认 Integer ackStatus = salarySendInfo.getBillConfirmStatus(); if (ackStatus == null || ackStatus != BillConfimStatusEnum.CONFIRMED.getValue()) { @@ -1935,7 +1935,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 工资单反馈 - if (NumberUtils.compare(salaryTemplate.getFeedbackStatus(), 1) == 0) { + if (salaryTemplate.getFeedbackStatus() != null && NumberUtils.compare(salaryTemplate.getFeedbackStatus(), 1) == 0) { // 开启了工资单反馈按钮 Integer confirmStatus = salarySendInfo.getBillConfirmStatus(); map.put("showFeedback", "1"); From 99274b95ec6fa9f7eb1070fe1b345c717e9c34f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 11 Nov 2024 16:58:16 +0800 Subject: [PATCH 40/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=88=97=E8=A1=A8=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SettingServiceImpl.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 207faa365..ba35bea51 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -205,9 +205,19 @@ public class SettingServiceImpl extends Service implements SettingService { PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), SALARY_DETAILS_REPORT.getValue()); Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); - List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, po -> po.getId().toString(), Collectors.toList()); pos = pos.stream() - .filter(po -> po.getSharedType() != 1 || CollectionUtil.intersection(po.getLimitIds(), taxIds).size() != 0) + .filter(po -> { + if (po.getSharedType() == 1) { + List limitIds = po.getLimitIds(); + List collect = new ArrayList<>(); + for (int i = 0; i < limitIds.size(); i++) { + collect.add(limitIds.get(i).toString()); + } + return CollectionUtil.isNotEmpty(limitIds) && CollectionUtil.intersection(collect, taxIds).size() != 0; + } + return true; + }) .peek(po -> { po.setChecked(link != null && po.getId().equals(link.getTemplateId())); }) @@ -284,7 +294,7 @@ public class SettingServiceImpl extends Service implements SettingService { if (link != null) { PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).id(link.getTemplateId()).build()); return pageListTemplate.getChecked(); - }else { + } else { PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).build()); return pageListTemplate.getSetting(); } From 4601d5ec818b39c93ca626beef8bfd503d139157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 11 Nov 2024 18:03:31 +0800 Subject: [PATCH 41/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=88=97=E8=A1=A8=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SettingServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index ba35bea51..5c75551bc 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -209,8 +209,8 @@ public class SettingServiceImpl extends Service implements SettingService { pos = pos.stream() .filter(po -> { if (po.getSharedType() == 1) { - List limitIds = po.getLimitIds(); - List collect = new ArrayList<>(); + List limitIds = po.getLimitIds(); + List collect = new ArrayList<>(); for (int i = 0; i < limitIds.size(); i++) { collect.add(limitIds.get(i).toString()); } From 0e3a5320a425acaf63ecff874476c49ead36831d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 12 Nov 2024 11:31:47 +0800 Subject: [PATCH 42/55] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E7=8A=B6=E6=80=81=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryacct/po/SalaryAcctEmployeePO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index bd5a19575..87a2fb029 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -150,7 +150,7 @@ public class SalaryAcctEmployeePO { /** * 状态 */ - @SalaryFormulaVar(defaultLabel = "状态", labelId = 86321, dataType = "string") + @SalaryFormulaVar(defaultLabel = "状态编码", labelId = 86321, dataType = "string") private String status; //锁定的项目 From c88c8acf904439fcb5269bd3829c723b252e65ce Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 12 Nov 2024 14:44:44 +0800 Subject: [PATCH 43/55] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E6=90=9C=E7=B4=A22100=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryArchiveItemServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 13e413ec7..431b56170 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -816,7 +816,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi List resultList = new ArrayList<>(); List> partition = Lists.partition(salaryArchiveIds, 1000); partition.forEach(part -> { - resultList.addAll(getSalaryArchiveItemMapper().listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange)); + resultList.addAll(getSalaryArchiveItemMapper().listByArchiveIdAndEffectiveTime(part, dateRange)); }); return resultList; } From e42e95090529228c61be0ba48057751f4a09c2aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 12 Nov 2024 15:34:51 +0800 Subject: [PATCH 44/55] =?UTF-8?q?fix=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 0b7a3f87a..e140ed0fd 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -237,6 +237,8 @@ public class SalaryStatisticsEmployeeWrapper extends Service { */ public Map salaryListSum(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { Map resultMap = Maps.newHashMap(); + Map sumResultMap = Maps.newHashMap(); + resultMap.put("sumRow", sumResultMap); if (StringUtils.isBlank(queryParam.getStartDateStr()) || StringUtils.isBlank(queryParam.getEndDateStr())) { return resultMap; } @@ -248,7 +250,6 @@ public class SalaryStatisticsEmployeeWrapper extends Service { return resultMap; } - Map sumResultMap = Maps.newHashMap(); List> empParts = Lists.partition(employeePOS, 500); From e4071edab6b8ccfa38913c1a751fc383327889a5 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 12 Nov 2024 16:21:56 +0800 Subject: [PATCH 45/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=E6=B7=BB=E5=8A=A0=E4=BA=BA?= =?UTF-8?q?=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIRepairServiceImpl.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java index 9ce45ed5a..64758d625 100644 --- a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java @@ -227,8 +227,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); List socialIds = new ArrayList<>(); - socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -266,8 +266,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); List fundIds = new ArrayList<>(); - fundIds.addAll(fundMap.keySet()); - fundIds.addAll(fundComMap.keySet()); + fundIds.addAll(fundMap == null ? Collections.emptyList() : fundMap.keySet()); + fundIds.addAll(fundComMap == null ? Collections.emptyList() : fundComMap.keySet()); fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); @@ -305,8 +305,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); List otherIds = new ArrayList<>(); - otherIds.addAll(otherMap.keySet()); - otherIds.addAll(otherComMap.keySet()); + otherIds.addAll(otherMap == null ? Collections.emptyList() : otherMap.keySet()); + otherIds.addAll(otherComMap == null ? Collections.emptyList() : otherComMap.keySet()); otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); @@ -346,8 +346,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); List socialIds = new ArrayList<>(); - socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -393,8 +393,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); List socialIds = new ArrayList<>(); - socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialMap.keySet()); socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -441,8 +441,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); List socialIds = new ArrayList<>(); - socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() :socialComMap.keySet()); socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -488,8 +488,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { socialComMap = socialComMap.entrySet().stream().filter(e -> "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); List socialIds = new ArrayList<>(); - socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -529,8 +529,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); List fundIds = new ArrayList<>(); - fundIds.addAll(fundMap.keySet()); - fundIds.addAll(fundComMap.keySet()); + fundIds.addAll(fundMap == null ? Collections.emptyList() : fundMap.keySet()); + fundIds.addAll(fundComMap == null ? Collections.emptyList() : fundComMap.keySet()); fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); @@ -570,8 +570,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); List otherIds = new ArrayList<>(); - otherIds.addAll(otherMap.keySet()); - otherIds.addAll(otherComMap.keySet()); + otherIds.addAll(otherMap == null ? Collections.emptyList() : otherMap.keySet()); + otherIds.addAll(otherComMap == null ? Collections.emptyList() : otherComMap.keySet()); otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); From 5a18ccf57b6eaac470c42e925e5d0bb95428e1c7 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 12 Nov 2024 17:06:41 +0800 Subject: [PATCH 46/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E7=9A=84=E4=BA=BA=EF=BC=8C=E5=AE=9A=E8=96=AA?= =?UTF-8?q?action=E7=8A=B6=E6=80=81=E4=BF=9D=E6=8C=81=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index 4aee55819..06458ffeb 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -783,6 +783,11 @@ public class SalaryArchiveExcelBO extends Service { .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); + // 定薪action 保持状态为待定薪 + if (importHandleParam.isInit() && + (importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE))) { + salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); + } importHandleParam.getSalaryArchiveSaves().add(salaryArchive); } return salaryArchive; From ce1312d6057b3bd3ededc34ac1bcb47e4baf151f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 12 Nov 2024 17:08:59 +0800 Subject: [PATCH 47/55] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E7=9A=84=E4=BA=BA=EF=BC=8C=E5=AE=9A=E8=96=AA?= =?UTF-8?q?action=E7=8A=B6=E6=80=81=E4=BF=9D=E6=8C=81=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 3 +-- 1 file changed, 1 insertion(+), 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 06458ffeb..d32117615 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -784,8 +784,7 @@ public class SalaryArchiveExcelBO extends Service { .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); // 定薪action 保持状态为待定薪 - if (importHandleParam.isInit() && - (importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE))) { + if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); } importHandleParam.getSalaryArchiveSaves().add(salaryArchive); From 9ff0612f592fd0e46f4e72429127300e7f7f281c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 13 Nov 2024 09:59:13 +0800 Subject: [PATCH 48/55] =?UTF-8?q?sql=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/常用查询.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index 71f4f51a6..637ebc08f 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -25,5 +25,5 @@ where item.name = '工资薪金合计' left join hrsa_salary_item c on c.id=i.salary_item_id left join hrsa_tax_agent t on a.tax_agent_id=t.id where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 - and a.employee_id=人员id and t.name=扣缴义务人名称 - c.name='基本工资' order by effective_time desc \ No newline at end of file + and a.employee_id=人员id and t.name=扣缴义务人名称 + and c.name='基本工资' order by effective_time desc \ No newline at end of file From cd182a24b7d91a3755e54d79f5a790218547451c Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 14 Nov 2024 09:13:23 +0800 Subject: [PATCH 49/55] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 1cbc5814d..5bd00b417 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -215,9 +215,6 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult public void calculate(SalaryAcctCalculateParam calculateParam) { log.info("开始核算V1{}", calculateParam); - //报表参数 - List emps = getSalaryEmployeeService(user).listAllForReport(); - calculateParam.setEmps(SalaryEntityUtil.convert2Map(emps, DataCollectionEmployee::getEmployeeId)); // 校验是否可以编辑 SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); From 00271f3a4b18e7547c09f3a7480cf08642238a06 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 14 Nov 2024 09:23:44 +0800 Subject: [PATCH 50/55] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/wrapper/SalaryApprovalWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java index 57c4e8227..81c6b10ce 100644 --- a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java @@ -133,7 +133,7 @@ public class SalaryApprovalWrapper extends Service { } List childrenColumns = Lists.newArrayList(); for (SalaryApprovalDTO.approvalItem approvalItemDTO : groupDTO.getApprovalItems()) { - childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(approvalItemDTO.getSalaryItemName(), salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0) == null ? 0 : salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0)), approvalItemDTO.getSalaryItemName(), "" + approvalItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue())); + childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(approvalItemDTO.getSalaryItemName(), salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0) == null ? 0 : salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0)), approvalItemDTO.getSalaryItemName(), "" + approvalItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue().toString())); } WeaTableColumnGroup weaTableColumnWapper = new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(groupDTO.getGroupName(), 0), groupDTO.getGroupName(), groupDTO.getGroupName(), childrenColumns); columns.add(weaTableColumnWapper); From 618dbd17d89c739d37b943e880405fcb855e445d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Nov 2024 09:48:13 +0800 Subject: [PATCH 51/55] =?UTF-8?q?fix=E9=BB=98=E8=AE=A4=E5=80=BC=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=87=8D=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/entity/setting/po/PageListSettingPO.java | 4 +--- src/com/engine/salary/service/impl/SettingServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java index 8b24728f6..c27bec6a3 100644 --- a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -10,13 +10,11 @@ import java.util.Collection; import java.util.Date; import java.util.List; -/** - * 薪资帐套表 - */ @Data @Builder @NoArgsConstructor @AllArgsConstructor +//hrsa_page_list_setting public class PageListSettingPO { @ElogTransform(name = "id") diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 5c75551bc..485f6e24e 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -70,15 +70,16 @@ public class SettingServiceImpl extends Service implements SettingService { Date now = new Date(); PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage()); + List checked = pageListSettingSaveParam.getSetting().stream().distinct().collect(Collectors.toList()); if (pageListSettingPO != null) { - pageListSettingPO.setSetting(pageListSettingSaveParam.getSetting()); + pageListSettingPO.setSetting(checked); pageListSettingPO.setUpdateTime(now); getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); } else { pageListSettingPO = PageListSettingPO.builder() .id(IdGenerator.generate()) .page(pageListSettingSaveParam.getPage()) - .setting(pageListSettingSaveParam.getSetting()) + .setting(checked) .creator((long) user.getUID()) .createTime(now) .updateTime(now) From 05c09958416b411cba05ea295a22cf348ddab5b8 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 19 Nov 2024 10:02:33 +0800 Subject: [PATCH 52/55] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=A2=9E=E5=8A=A0=E6=9F=A5=E7=9C=8B=E3=80=81=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalarySendServiceImpl.java | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index ba083a1cb..6bce71730 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1464,6 +1464,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public XSSFWorkbook exportInfoList(SalarySendInfoQueryParam queryParam) { + // 校验 + SalarySendInfoQueryParam.checkParam(queryParam); + // 1.工作簿名称 String sheetName = SalaryI18nUtil.getI18nLabel(100528, "工资单发放信息"); List header = new ArrayList<>(); @@ -1473,14 +1476,24 @@ public class SalarySendServiceImpl extends Service implements SalarySendService header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); header.add(SalaryI18nUtil.getI18nLabel(86317, "发送状态")); - + SalarySendPO salarySendPO = getById(queryParam.getSalarySendId()); + if (salarySendPO == null) { + throw new SalaryRunTimeException("工资单不存在"); + } + List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySendPO.getSalarySobId())); + if (CollectionUtils.isEmpty(salaryTemplates)) { + throw new SalaryRunTimeException("请先设置工资单模板"); + } + Integer ackFeedbackStatus = salaryTemplates.get(0).getAckFeedbackStatus(); + Integer feedbackStatus = salaryTemplates.get(0).getFeedbackStatus(); + if ((ackFeedbackStatus != null && NumberUtils.compare(ackFeedbackStatus, 1) == 0) + || (feedbackStatus != null && NumberUtils.compare(feedbackStatus, 1) == 0)) { + header.add(SalaryI18nUtil.getI18nLabel(0, "查看状态")); + header.add(SalaryI18nUtil.getI18nLabel(0, "确认状态")); + } List> rows = new ArrayList<>(); // 2.表头 rows.add(header); - - // 校验 - SalarySendInfoQueryParam.checkParam(queryParam); - // 获取行数据 //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); @@ -1491,7 +1504,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService list.forEach(e -> { // 发放状态 e.setSendStatus(SalarySendStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getSendStatus()))); - + // 查看状态 + e.setBillReadStatus(NumberUtils.isCreatable(e.getBillReadStatus()) ? BillReadStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getBillReadStatus())) : ""); + // 确认状态 + e.setBillConfirmStatus(NumberUtils.isCreatable(e.getBillConfirmStatus()) ? BillConfimStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getBillConfirmStatus())) : ""); //外部人员 if (Objects.equals(e.getEmployeeType(), 1)) { List employees = idEmpMap.getOrDefault(e.getEmployeeId(), new ArrayList<>()); @@ -1515,6 +1531,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService row.add(dto.getMobile()); row.add(dto.getJobNum()); row.add(dto.getSendStatus()); + if ((ackFeedbackStatus != null && NumberUtils.compare(ackFeedbackStatus, 1) == 0) + || (feedbackStatus != null && NumberUtils.compare(feedbackStatus, 1) == 0)) { + row.add(dto.getBillReadStatus()); + row.add(dto.getBillConfirmStatus()); + } rows.add(row); } From ba3e635e1facf33c027b42766a60cd2a1dd1fd30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Nov 2024 11:12:39 +0800 Subject: [PATCH 53/55] =?UTF-8?q?=E7=89=88=E6=9C=AC?= 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 73a128f3e..60b4e6089 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.16.1.2410.01 +version=2.17.1.2411.01 openFormulaForcedEditing=false \ No newline at end of file From 94c8d82f083732bcbbb252b3826b8234c8e9a31e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 19 Nov 2024 13:35:25 +0800 Subject: [PATCH 54/55] =?UTF-8?q?action=20=E5=A2=9E=E5=8A=A0enableField?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=80=BCwei?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/BatEditSalaryExcelAction.java | 17 ++++++++++++++ .../action/CheckBatEditSalaryExcelAction.java | 17 ++++++++++++++ .../action/CheckEditSIArchiveAction.java | 17 ++++++++++++++ .../salary/action/CheckEditSalaryAction.java | 18 ++++++++++++++- .../salary/action/CheckInitSalaryAction.java | 16 ++++++++++++++ .../CheckStayAddToPaySIArchiveAction.java | 18 +++++++++++++++ .../CheckStayDelToStopSIArchiveAction.java | 17 ++++++++++++++ .../salary/action/CheckStopSalaryAction.java | 16 ++++++++++++++ .../action/CopyToPaySIArchiveAction.java | 22 ++++++++++++++++++- .../salary/action/EditSIArchiveAction.java | 17 ++++++++++++++ .../salary/action/EditSalaryAction.java | 18 ++++++++++++++- .../action/EditToPaySIArchiveAction.java | 17 ++++++++++++++ .../action/EditToStopSIArchiveAction.java | 17 ++++++++++++++ .../salary/action/InitSalaryAction.java | 16 ++++++++++++++ .../engine/salary/action/RehireAction.java | 17 ++++++++++++++ .../salary/action/SendSalaryAction.java | 18 +++++++++++++++ .../action/StayAddToPaySIArchiveAction.java | 17 ++++++++++++++ .../action/StayDelToStopSIArchiveAction.java | 17 ++++++++++++++ .../salary/action/StopSalaryAction.java | 16 ++++++++++++++ .../action/UpdateSISchemeDetailAction.java | 20 +++++++++++++++++ 20 files changed, 345 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/action/BatEditSalaryExcelAction.java b/src/com/engine/salary/action/BatEditSalaryExcelAction.java index adddc2de9..adc1f7160 100644 --- a/src/com/engine/salary/action/BatEditSalaryExcelAction.java +++ b/src/com/engine/salary/action/BatEditSalaryExcelAction.java @@ -7,6 +7,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; import com.engine.salary.service.SalaryArchiveExcelService; import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -45,6 +46,17 @@ public class BatEditSalaryExcelAction implements Action { this.operatorField = operatorField; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -53,6 +65,11 @@ public class BatEditSalaryExcelAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } String docId = fieldMap.get(batSalaryExcelField); RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java index 408b2fa7f..0378e8b62 100644 --- a/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java +++ b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java @@ -7,6 +7,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; import com.engine.salary.service.SalaryArchiveExcelService; import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -46,6 +47,17 @@ public class CheckBatEditSalaryExcelAction implements Action { this.operatorField = operatorField; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -53,6 +65,11 @@ public class CheckBatEditSalaryExcelAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } String docId = fieldMap.get(batSalaryExcelField); RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/CheckEditSIArchiveAction.java b/src/com/engine/salary/action/CheckEditSIArchiveAction.java index f4f8d9165..2a0bbccb7 100644 --- a/src/com/engine/salary/action/CheckEditSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckEditSIArchiveAction.java @@ -7,6 +7,7 @@ import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -42,6 +43,17 @@ public class CheckEditSIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -49,6 +61,11 @@ public class CheckEditSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckEditSalaryAction.java b/src/com/engine/salary/action/CheckEditSalaryAction.java index 7cee919f3..f8c2dcb75 100644 --- a/src/com/engine/salary/action/CheckEditSalaryAction.java +++ b/src/com/engine/salary/action/CheckEditSalaryAction.java @@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.wrapper.SalaryArchiveWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -38,6 +39,17 @@ public class CheckEditSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -46,7 +58,11 @@ public class CheckEditSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); - + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckInitSalaryAction.java b/src/com/engine/salary/action/CheckInitSalaryAction.java index 34dd5782a..157ecab8a 100644 --- a/src/com/engine/salary/action/CheckInitSalaryAction.java +++ b/src/com/engine/salary/action/CheckInitSalaryAction.java @@ -60,6 +60,17 @@ public class CheckInitSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -68,6 +79,11 @@ public class CheckInitSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java b/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java index 786d4c863..6adfa8299 100644 --- a/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java @@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -49,6 +50,17 @@ public class CheckStayAddToPaySIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -57,6 +69,12 @@ public class CheckStayAddToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } + RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java index a89df0ad4..ef816fbd8 100644 --- a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java @@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -49,6 +50,17 @@ public class CheckStayDelToStopSIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -57,6 +69,11 @@ public class CheckStayDelToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckStopSalaryAction.java b/src/com/engine/salary/action/CheckStopSalaryAction.java index f4cdc0fb2..78b3c0a7c 100644 --- a/src/com/engine/salary/action/CheckStopSalaryAction.java +++ b/src/com/engine/salary/action/CheckStopSalaryAction.java @@ -54,6 +54,17 @@ public class CheckStopSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -62,6 +73,11 @@ public class CheckStopSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CopyToPaySIArchiveAction.java b/src/com/engine/salary/action/CopyToPaySIArchiveAction.java index 2fcfb6596..8f0421c71 100644 --- a/src/com/engine/salary/action/CopyToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/CopyToPaySIArchiveAction.java @@ -11,6 +11,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -18,7 +19,10 @@ import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -47,6 +51,17 @@ public class CopyToPaySIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -54,6 +69,11 @@ public class CopyToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditSIArchiveAction.java b/src/com/engine/salary/action/EditSIArchiveAction.java index 22dda2d3e..4cb6eb505 100644 --- a/src/com/engine/salary/action/EditSIArchiveAction.java +++ b/src/com/engine/salary/action/EditSIArchiveAction.java @@ -7,6 +7,7 @@ import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -41,6 +42,17 @@ public class EditSIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -48,6 +60,11 @@ public class EditSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditSalaryAction.java b/src/com/engine/salary/action/EditSalaryAction.java index eed5d1648..3c8dd5446 100644 --- a/src/com/engine/salary/action/EditSalaryAction.java +++ b/src/com/engine/salary/action/EditSalaryAction.java @@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.wrapper.SalaryArchiveWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -38,6 +39,17 @@ public class EditSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -46,7 +58,11 @@ public class EditSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); - + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditToPaySIArchiveAction.java b/src/com/engine/salary/action/EditToPaySIArchiveAction.java index c736f9698..31259e94a 100644 --- a/src/com/engine/salary/action/EditToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/EditToPaySIArchiveAction.java @@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -59,6 +60,17 @@ public class EditToPaySIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -66,6 +78,11 @@ public class EditToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditToStopSIArchiveAction.java b/src/com/engine/salary/action/EditToStopSIArchiveAction.java index 80b16ab93..1f2a612fd 100644 --- a/src/com/engine/salary/action/EditToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/EditToStopSIArchiveAction.java @@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -59,6 +60,17 @@ public class EditToStopSIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -66,6 +78,11 @@ public class EditToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/InitSalaryAction.java b/src/com/engine/salary/action/InitSalaryAction.java index d280f49ab..af3ab875e 100644 --- a/src/com/engine/salary/action/InitSalaryAction.java +++ b/src/com/engine/salary/action/InitSalaryAction.java @@ -63,6 +63,17 @@ public class InitSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -70,6 +81,11 @@ public class InitSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/RehireAction.java b/src/com/engine/salary/action/RehireAction.java index a2410578c..f0ac107f3 100644 --- a/src/com/engine/salary/action/RehireAction.java +++ b/src/com/engine/salary/action/RehireAction.java @@ -70,6 +70,17 @@ public class RehireAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -78,6 +89,12 @@ public class RehireAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } + RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/SendSalaryAction.java b/src/com/engine/salary/action/SendSalaryAction.java index f0f3ef154..39705e5c2 100644 --- a/src/com/engine/salary/action/SendSalaryAction.java +++ b/src/com/engine/salary/action/SendSalaryAction.java @@ -65,12 +65,30 @@ public class SendSalaryAction implements Action { */ private String sendBy; + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { Property[] properties = requestInfo.getMainTableInfo().getProperty(); Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } + String idStr = fieldMap.get(idFieldName); if (StringUtils.isBlank(idStr)) { requestInfo.getRequestManager().setMessage("核算记录id或工资单id不能为空"); diff --git a/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java index c0bc0c0b0..371bdd8ee 100644 --- a/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java @@ -12,6 +12,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -54,6 +55,17 @@ public class StayAddToPaySIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -62,6 +74,11 @@ public class StayAddToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java index 339fad1bb..b715b9eea 100644 --- a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java @@ -14,6 +14,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -55,6 +56,17 @@ public class StayDelToStopSIArchiveAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -63,6 +75,11 @@ public class StayDelToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/StopSalaryAction.java b/src/com/engine/salary/action/StopSalaryAction.java index 7eafe84bb..6433e4e95 100644 --- a/src/com/engine/salary/action/StopSalaryAction.java +++ b/src/com/engine/salary/action/StopSalaryAction.java @@ -60,6 +60,17 @@ public class StopSalaryAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -68,6 +79,11 @@ public class StopSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/UpdateSISchemeDetailAction.java b/src/com/engine/salary/action/UpdateSISchemeDetailAction.java index 0d406455a..91c93c377 100644 --- a/src/com/engine/salary/action/UpdateSISchemeDetailAction.java +++ b/src/com/engine/salary/action/UpdateSISchemeDetailAction.java @@ -55,12 +55,32 @@ public class UpdateSISchemeDetailAction implements Action { this.tableName = tableName; } + // 是否执行action的字段, 0代表不执行,其余代表执行 + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { RequestManager requestManager = requestInfo.getRequestManager(); User user = requestManager.getUser(); + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 不执行action + return SUCCESS; + } + DetailTable[] detailTables = requestInfo.getDetailTableInfo().getDetailTable(); List> detailList = new ArrayList<>(); if (detailTables.length > 0) { From 04fb5edaded1c5ec456c270477a5835a8a44b50b Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 20 Nov 2024 11:28:14 +0800 Subject: [PATCH 55/55] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E9=85=AC?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E3=80=81=E6=95=B0=E5=80=BC=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/VariableArchiveServiceImpl.java | 4 ++-- src/com/engine/salary/wrapper/VariableArchiveWrapper.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 82b727009..06218ebc9 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -20,6 +20,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveInitImportDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableArchiveMapper; import com.engine.salary.service.*; @@ -272,8 +273,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi //动态列组装 List columns = VariableArchiveBO.buildVariableArchiveTable(variableItems); - columns.add(0, new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "薪资所属月"), "salaryMonth")); - Map datas = new HashMap<>(); datas.put("data", resultMap); datas.put("column", columns); @@ -287,6 +286,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi .map(po -> VariableItemListDTO.builder() .id(po.getId()) .name(po.getName()) + .dataType(SalaryDataTypeEnum.parseByValue(po.getDataType()).getValue()) .build()) .collect(Collectors.toList()); return variableItemDTOList; diff --git a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java index 61f9dcc86..927fa299a 100644 --- a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java @@ -50,14 +50,14 @@ public class VariableArchiveWrapper extends Service { */ public Map list(VariableArchiveQueryParam queryParam) { - //薪资档案列表 + // 薪资档案列表 PageInfo pageInfo = getVariableArchiveService(user).listPage(queryParam); List salaryArchives = pageInfo.getList(); // 获取所有浮动薪酬项目 List variableItems = getVariableItemService(user).listAll(); - //整合所有的显示列(固定列+薪资项目动态列) + // 整合所有的显示列(固定列+薪资项目动态列) List> listMaps = getVariableArchiveService(user).buildVariableArchiveData(salaryArchives); PageInfo> pageInfos = new PageInfo>(listMaps);