diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index beede61ad..73a128f3e 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.15.2.2409.01 +version=2.16.1.2410.01 openFormulaForcedEditing=false \ No newline at end of file diff --git a/resource/sqlupgrade/DM/sql202410170303.sql b/resource/sqlupgrade/DM/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202410170303.sql b/resource/sqlupgrade/GS/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202410170303.sql b/resource/sqlupgrade/JC/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202410170303.sql b/resource/sqlupgrade/Mysql/sql202410170303.sql new file mode 100644 index 000000000..3b0f772c0 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410170303.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_salary_acct_emp ADD COLUMN lock_items varchar(4000); diff --git a/resource/sqlupgrade/Oracle/sql202410170303.sql b/resource/sqlupgrade/Oracle/sql202410170303.sql new file mode 100644 index 000000000..53cdeed2e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410170303.sql @@ -0,0 +1,2 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410170303.sql b/resource/sqlupgrade/PG/sql202410170303.sql new file mode 100644 index 000000000..deb01bd56 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410170303.sql @@ -0,0 +1 @@ +alter table hrsa_salary_acct_emp add lock_items varchar(4000); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410170303.sql b/resource/sqlupgrade/SQLServer/sql202410170303.sql new file mode 100644 index 000000000..23c230163 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410170303.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_salary_acct_emp ADD lock_items varchar(4000) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202410170303.sql b/resource/sqlupgrade/ST/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java b/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java index 52e9772e4..cd211f2d3 100644 --- a/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java +++ b/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.datacollection.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -41,6 +42,7 @@ public class VariableArchiveItemPO { /** * 浮动值 */ + @Encrypt private String itemValue; /** diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java index afba2a327..e0a777bcd 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java @@ -4,7 +4,6 @@ import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; -import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; @@ -49,13 +48,6 @@ public class SalaryAcctCalculateBO { */ private SalarySobCycleDTO salarySobCycleDTO; - /** - * 核算锁定值 - */ - private Map salaryAcctLockResultPOS; - private List lockSalaryItemIds; - - /** * 相同税款所属期内其他薪资核算记录(薪资类型为工资薪金的账套的) */ diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index ef1dcca05..8912df16e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -316,8 +316,8 @@ public class SalaryAcctResultBO { } // 主键id map.put("id", e.getId()); - //锁定状态 - map.put("lockStatus", LockStatusEnum.getByValue(e.getLockStatus()).getDefaultLabel()); + //锁定数据 + map.put("lockItems", e.getLockItems() != null ? e.getLockItems().stream().filter(Objects::nonNull).map(Object::toString).collect(Collectors.toList()) : new ArrayList<>()); //人员id map.put("employeeId", e.getEmployeeId()); // 个税扣缴义务人 diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java new file mode 100644 index 000000000..555411825 --- /dev/null +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java @@ -0,0 +1,34 @@ +package com.engine.salary.entity.salaryacct.param; + +import com.engine.salary.enums.salaryaccounting.LockStatusEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 薪资数据单元格锁定 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalaryAcctResultLockParam { + //锁定状态 + @DataCheck(require = true,message = "锁定状态不能为空") + private LockStatusEnum lockStatus; + + //薪资核算人员Id + @DataCheck(require = true,message = "薪资核算人员不能为空") + private Long acctEmpId; + + //薪资项目的Id + @DataCheck(require = true,message = "薪资项目不能为空") + private Long salaryItemId; +} diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index d86941b8b..3645db6fc 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -12,6 +12,7 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 薪资核算人员 @@ -110,6 +111,7 @@ public class SalaryAcctEmployeePO { private Date updateTime; + @Deprecated @ElogTransform(name = "锁定状态") private Integer lockStatus; @@ -142,6 +144,9 @@ public class SalaryAcctEmployeePO { */ private String status; + //锁定的项目 + private List lockItems; + //--------条件---------- //主键id集合 diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index d8094b7b4..76310796e 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -131,6 +131,7 @@ public class SalaryAcctRecordPO { /** * 锁定的薪资项目 */ + @Deprecated private List lockSalaryItemIds; //查询条件------------------------------- diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java index 78392dfd4..289b898bd 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java @@ -261,8 +261,11 @@ public class SalaryAcctManager extends Service { // 7、查询考勤引用的所有字段 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); -// //核算锁定值 -// List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); + //fixme 先全部锁定 + +// //将除重新核算的项目外的所有的值都锁定 +// List salaryItemIds = calculateParam.getSalaryItemIds(); +// List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); // Map acctResults = new HashMap<>(); // if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { // List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); @@ -273,19 +276,6 @@ public class SalaryAcctManager extends Service { // .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); // } - //将除重新核算的项目外的所有的值都锁定 - List salaryItemIds = calculateParam.getSalaryItemIds(); - List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); - Map acctResults = new HashMap<>(); - if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { - List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - acctResults = Optional.ofNullable(acctResultPOS) - .orElse(new ArrayList<>()) - .stream() - .filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())) - .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - } - // 8、查询公式详情 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); @@ -323,8 +313,6 @@ public class SalaryAcctManager extends Service { .setSalarySobPO(salarySobPO) .setSalarySobCycleDTO(salarySobCycleDTO) .setOtherSalaryAcctRecordPOS(otherSalaryAcctRecordPOS) - .setSalaryAcctLockResultPOS(MapUtils.emptyIfNull(acctResults)) - .setLockSalaryItemIds(lockSalaryItemIds) .setSalarySobItemPOS(salarySobItemPOS) .setSalaryItemIdWithPriorityList(salarySobItemsWithPriority) .setExpressFormulas(expressFormulas) diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java index 3b2e89f34..28a30febe 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java @@ -84,4 +84,6 @@ public interface VariableArchiveItemMapper { void deleteByIds(@Param("collection")List part); void deleteByArchiveIds(@Param("collection")List part); + + void updateBatchSelective(@Param("list")List variableArchiveItemPOS); } diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml index 6c6c83c84..365c21579 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml @@ -312,6 +312,22 @@ WHERE id = #{id} AND delete_type = 0 + + update hrsa_variable_archive_item + + + + + when id = #{item.id} then #{item.itemValue} + + + + + where id in + + #{item.id} + + diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml index c6352fa2f..0070d0bdf 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml @@ -257,7 +257,7 @@ - AND e.workcode like '%'+#{workcode}+'%' + AND e.workcode like '%'+#{param.workcode}+'%' diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java index 84b16591c..a7f66818a 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java @@ -124,4 +124,6 @@ public interface SalaryAcctEmployeeMapper { void lockByRecordId(@Param("lockStatus") Integer lockStatus, @Param("recordId") Long recordId); void updateIgnoreNull(@Param("salaryAcctEmployeePO")SalaryAcctEmployeePO salaryAcctEmployeePO); + + void lock(SalaryAcctEmployeePO salaryAcctEmployeePO); } diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 86781c4d3..6cede4796 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -25,6 +25,7 @@ + @@ -966,6 +968,7 @@ + @@ -994,6 +997,7 @@ , t.jobcall , t.jobcall_id , t.status + , t.lock_items @@ -1166,4 +1170,13 @@ WHERE id = #{salaryAcctEmployeePO.id} AND delete_type = 0 + + UPDATE hrsa_salary_acct_emp + + lock_items = + #{lockItems, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + WHERE id = #{id} AND delete_type = 0 + + diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index bb3e6b558..644a21d18 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -265,7 +265,7 @@ AND payment_organization = #{paymentOrganization} AND fund_scheme_id is not null AND fund_start_time is not null AND fund_start_time #{billMonth} - AND (fund_end_time is null OR fund_end_time = ]]> #{billMonth}) + AND (fund_end_time is null OR fund_end_time = ]]> #{billMonth} OR fund_end_time ='')