From 31d2994a9ac2e16c381974f01b9a164a1b4f073b Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sat, 14 Sep 2024 10:30:32 +0800 Subject: [PATCH 01/76] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E9=85=AC?= =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/VariableArchiveServiceImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 0018859a9..b008273c6 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -134,7 +134,13 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - return getVariableArchiveMapper().list(queryParam); + return listDTO(queryParam); + } + + public List listDTO(VariableArchiveQueryParam queryParam) { + List list = getVariableArchiveMapper().list(queryParam); + SalaryI18nUtil.i18nList(list); + return list; } /** @@ -256,7 +262,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi return Collections.emptyMap(); } - List variableArchiveList = getVariableArchiveMapper().list(queryParam); + List variableArchiveList = listDTO(queryParam); // 获取所有浮动薪酬项目 List variableItems = getVariableItemService(user).listAll(); From a59448e4543ea8f0c58005ce364ae9b57160a848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Sep 2024 18:24:08 +0800 Subject: [PATCH 02/76] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=BA=E5=8A=9B?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE=E5=BD=B1?= =?UTF-8?q?=E5=93=8D=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 17d1d9f53..50b6d10a5 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -256,7 +256,10 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt List listResult = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds); listResult = listResult.stream() .filter(r -> { - DataCollectionEmployee employee = employeeMap.getOrDefault(r.getEmployeeId(), new DataCollectionEmployee()); + DataCollectionEmployee employee = employeeMap.get(r.getEmployeeId()); + if (employee == null) { + return false; + } String username = queryParam.getUsername(); List departmentIds = queryParam.getDepartmentIds(); List positionIds = queryParam.getPositionIds(); From 91863b901f76ab645004e849be967b0f90e75070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 Sep 2024 14:17:47 +0800 Subject: [PATCH 03/76] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctCalculateServiceImpl.java | 1 + .../salary/service/impl/SalaryAcctResultServiceImpl.java | 7 ++++--- src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 6685a0d9f..c7cce5da7 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -116,6 +116,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc @Override public void calculate(SalaryAcctCalculateBO salaryAcctCalculateBO, DataCollectionEmployee simpleEmployee, List salarySobBackItems) { + log.info("开始核算V3 {}", salaryAcctCalculateBO); StopWatch sw = new StopWatch("核算耗时明细,id:" + salaryAcctCalculateBO.getSalaryAcctRecordPO().getId() + ""); Date now = new Date(); try { diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index d942cdcc9..8019268ee 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -768,8 +768,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public void calculate(SalaryAcctCalculateParam calculateParam, DataCollectionEmployee simpleEmployee) { - StopWatch stopWatch = new StopWatch("总核算耗时,id:" + calculateParam.getSalaryAcctRecordId()); try { + log.info("开始核算V2 {}", calculateParam); + StopWatch stopWatch = new StopWatch("总核算耗时,id:" + calculateParam.getSalaryAcctRecordId()); stopWatch.start("数据准备"); // 1、查询薪资核算记录 SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); @@ -855,8 +856,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), initProgress); // 12、对薪资核算人员进行拆分 String personNumberInOneThread = new BaseBean().getPropValue("hrmSalaryCustom", "personNumberInOneThread"); - int size= 100; - if(StringUtils.isNotBlank(personNumberInOneThread)){ + int size = 100; + if (StringUtils.isNotBlank(personNumberInOneThread)) { size = Integer.parseInt(personNumberInOneThread); } List> partition = Lists.partition(salaryAcctEmployeePOS, size); diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index cae703b1c..b53499bf5 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -219,6 +219,7 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult // 检查是否正在核算中 ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId()); if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { + log.warn("正在核算中,无法再次执行"+calculateParam.getSalaryAcctRecordId()); return; } // 初始化进度 From db064863b2ea2278b24750883911b613a8e0c804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 Sep 2024 14:19:26 +0800 Subject: [PATCH 04/76] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 5c9223804..beede61ad 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.1.2407.01 +version=2.15.2.2409.01 openFormulaForcedEditing=false \ No newline at end of file From dc3dfc2d6bb51affc05bfe98c69aa3f94622a374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 20 Sep 2024 11:41:44 +0800 Subject: [PATCH 05/76] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E8=84=B1=E6=95=8F?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryacct/param/SalaryAcctCalculateParam.java | 7 ------- .../salary/service/impl/SalaryAcctResultServiceImpl.java | 7 ------- src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java | 5 ----- 3 files changed, 19 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java index b09c535ce..52c3b7f13 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java @@ -1,6 +1,5 @@ package com.engine.salary.entity.salaryacct.param; -import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; @@ -8,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; -import java.util.Map; /** * 薪资核算的参数 @@ -29,9 +27,4 @@ public class SalaryAcctCalculateParam { @DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空") private Long salaryAcctRecordId; - - /** - * 人员信息,报表使用 - */ - private Map emps; } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 8019268ee..61320e5e3 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -976,13 +976,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salaryAcctResultPOS = SalaryAcctResultBO.convert2ResultPO(salaryAcctResultTempPOS); batchSave(salaryAcctResultPOS); sw.stop(); - new Thread() { - public void run() { - //保存核算报表数据 - List salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2ReportPO(salaryAcctResultTempPOS, calculateParam.getEmps()); - getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); - } - }.start(); // 删除薪资核算临时存储表中的数据 sw.start("处理核算数据,删除薪资核算临时存储表中的数据"); getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey); diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index b53499bf5..094602f01 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -16,7 +16,6 @@ import com.engine.salary.service.*; import com.engine.salary.service.impl.*; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.ValidUtil; @@ -207,10 +206,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)); - //当前登陆人员 DataCollectionEmployee simpleEmployee = new DataCollectionEmployee(); simpleEmployee.setEmployeeId((long) user.getUID()); From 164a97a8e0f199a3bcdcd6cd415f3f5d230c4154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 23 Sep 2024 11:10:25 +0800 Subject: [PATCH 06/76] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=87=8F=EF=BC=8C=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/AddUpSituationServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index be0924a5d..e2976bbaf 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -253,9 +253,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation AddUpSituationBiz biz = new AddUpSituationBiz(); List addUpSituations = biz.listSome(AddUpSituation.builder().taxAgentId(taxAgentId).taxYearMonth(taxCycle).build()); - Set addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId); + List addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId, Collectors.toList()); if (CollectionUtils.isNotEmpty(addUpSituationIds)) { - getAddUpSituationMapper().deleteByIds(addUpSituationIds); + List> partition = Lists.partition(addUpSituationIds, 100); + partition.forEach(getAddUpSituationMapper()::deleteByIds); } return Boolean.TRUE; @@ -611,7 +612,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation String idNo = dto.getIdNo(); //筛选导入人员信息可以在人力资源池中匹配到的人员信息 - List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo,null); + List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); //当人员信息导入筛选的全局配置为"0"时,姓名才是必填项 if (StringUtils.isBlank(userName) && "0".equals(confValue)) { From 17ef5a3c2b07c0d7f2dc66e02dda4c0c22cd6917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 13:19:20 +0800 Subject: [PATCH 07/76] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202409130201.sql | 24 +++++++++++++++++++ resource/sqlupgrade/DM/sql202409130302.sql | 15 ++++++++++++ resource/sqlupgrade/GS/sql202409130201.sql | 24 +++++++++++++++++++ resource/sqlupgrade/GS/sql202409130302.sql | 15 ++++++++++++ resource/sqlupgrade/JC/sql202409130201.sql | 24 +++++++++++++++++++ resource/sqlupgrade/JC/sql202409130302.sql | 15 ++++++++++++ resource/sqlupgrade/Mysql/sql202409130201.sql | 16 +++++++++++++ resource/sqlupgrade/Mysql/sql202409130302.sql | 10 ++++++++ .../sqlupgrade/Oracle/sql202409130201.sql | 16 +++++++++++++ .../sqlupgrade/Oracle/sql202409130302.sql | 10 ++++++++ resource/sqlupgrade/PG/sql202409130201.sql | 16 +++++++++++++ resource/sqlupgrade/PG/sql202409130302.sql | 10 ++++++++ .../sqlupgrade/SQLServer/sql202409130201.sql | 16 +++++++++++++ .../sqlupgrade/SQLServer/sql202409130302.sql | 10 ++++++++ resource/sqlupgrade/ST/sql202409130201.sql | 24 +++++++++++++++++++ resource/sqlupgrade/ST/sql202409130302.sql | 15 ++++++++++++ 16 files changed, 260 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202409130201.sql create mode 100644 resource/sqlupgrade/DM/sql202409130302.sql create mode 100644 resource/sqlupgrade/GS/sql202409130201.sql create mode 100644 resource/sqlupgrade/GS/sql202409130302.sql create mode 100644 resource/sqlupgrade/JC/sql202409130201.sql create mode 100644 resource/sqlupgrade/JC/sql202409130302.sql create mode 100644 resource/sqlupgrade/Mysql/sql202409130201.sql create mode 100644 resource/sqlupgrade/Mysql/sql202409130302.sql create mode 100644 resource/sqlupgrade/Oracle/sql202409130201.sql create mode 100644 resource/sqlupgrade/Oracle/sql202409130302.sql create mode 100644 resource/sqlupgrade/PG/sql202409130201.sql create mode 100644 resource/sqlupgrade/PG/sql202409130302.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202409130201.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202409130302.sql create mode 100644 resource/sqlupgrade/ST/sql202409130201.sql create mode 100644 resource/sqlupgrade/ST/sql202409130302.sql diff --git a/resource/sqlupgrade/DM/sql202409130201.sql b/resource/sqlupgrade/DM/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/DM/sql202409130302.sql b/resource/sqlupgrade/DM/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/GS/sql202409130201.sql b/resource/sqlupgrade/GS/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/GS/sql202409130302.sql b/resource/sqlupgrade/GS/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/JC/sql202409130201.sql b/resource/sqlupgrade/JC/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/JC/sql202409130302.sql b/resource/sqlupgrade/JC/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202409130201.sql b/resource/sqlupgrade/Mysql/sql202409130201.sql new file mode 100644 index 000000000..50f416219 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) +; +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=char_length(labelname) ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=char_length(labelname) )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 +; diff --git a/resource/sqlupgrade/Mysql/sql202409130302.sql b/resource/sqlupgrade/Mysql/sql202409130302.sql new file mode 100644 index 000000000..e53f1a601 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +; +Delete from LeftMenuConfig where infoid=100219 +; +call LMConfig_U_ByInfoInsert (2,100126,0) +; +call LMInfo_Insert (100219,548025,'','',2,100126,7,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409130201.sql b/resource/sqlupgrade/Oracle/sql202409130201.sql new file mode 100644 index 000000000..1462f878d --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) +/ +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409130302.sql b/resource/sqlupgrade/Oracle/sql202409130302.sql new file mode 100644 index 000000000..aa1c20a30 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +/ +Delete from LeftMenuConfig where infoid=100219 +/ +call LMConfig_U_ByInfoInsert (2,100126,0) +/ +call LMInfo_Insert (100219,548025,'','',2,100126,7,2) +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409130201.sql b/resource/sqlupgrade/PG/sql202409130201.sql new file mode 100644 index 000000000..acb55b3a0 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) ; +/ +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=octet_length(labelname) ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=octet_length(labelname) )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409130302.sql b/resource/sqlupgrade/PG/sql202409130302.sql new file mode 100644 index 000000000..70a52cf80 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +; +Delete from LeftMenuConfig where infoid=100219 +; +select LMConfig_U_ByInfoInsert (2,100126,0) +; +select LMInfo_Insert (100219,548025,'','',2,100126,7,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409130201.sql b/resource/sqlupgrade/SQLServer/sql202409130201.sql new file mode 100644 index 000000000..a60fae14e --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) +GO +insert into HtmlLabelIndex(id,indexdesc) select top 1 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or labelname like '%[߹-]%' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and labelname not like '%[߹-]%' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409130302.sql b/resource/sqlupgrade/SQLServer/sql202409130302.sql new file mode 100644 index 000000000..81608c0b6 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +GO +Delete from LeftMenuConfig where infoid=100219 +GO +EXECUTE LMConfig_U_ByInfoInsert 2,100126,0 +GO +EXECUTE LMInfo_Insert 100219,548025,'','',2,100126,7,2 +GO +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202409130201.sql b/resource/sqlupgrade/ST/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Ӕ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/ST/sql202409130302.sql b/resource/sqlupgrade/ST/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + From 6f10ac4ab236f7d13182ff7aa65a783afbafcfb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 19:04:57 +0800 Subject: [PATCH 08/76] =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=9D=9E=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E4=BA=BA=E5=91=98=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202303130202.sql | 14 -------------- resource/sqlupgrade/GS/sql202303130202.sql | 14 -------------- resource/sqlupgrade/JC/sql202303130202.sql | 14 -------------- resource/sqlupgrade/Mysql/sql202303130202.sql | 10 ---------- resource/sqlupgrade/Oracle/sql202303130202.sql | 10 ---------- resource/sqlupgrade/PG/sql202303130202.sql | 10 ---------- resource/sqlupgrade/SQLServer/sql202303130202.sql | 10 ---------- resource/sqlupgrade/ST/sql202303130202.sql | 14 -------------- 8 files changed, 96 deletions(-) delete mode 100644 resource/sqlupgrade/DM/sql202303130202.sql delete mode 100644 resource/sqlupgrade/GS/sql202303130202.sql delete mode 100644 resource/sqlupgrade/JC/sql202303130202.sql delete mode 100644 resource/sqlupgrade/Mysql/sql202303130202.sql delete mode 100644 resource/sqlupgrade/Oracle/sql202303130202.sql delete mode 100644 resource/sqlupgrade/PG/sql202303130202.sql delete mode 100644 resource/sqlupgrade/SQLServer/sql202303130202.sql delete mode 100644 resource/sqlupgrade/ST/sql202303130202.sql diff --git a/resource/sqlupgrade/DM/sql202303130202.sql b/resource/sqlupgrade/DM/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/DM/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/GS/sql202303130202.sql b/resource/sqlupgrade/GS/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/GS/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/JC/sql202303130202.sql b/resource/sqlupgrade/JC/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/JC/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202303130202.sql b/resource/sqlupgrade/Mysql/sql202303130202.sql deleted file mode 100644 index 81f96bbd2..000000000 --- a/resource/sqlupgrade/Mysql/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -; -Delete from LeftMenuConfig where infoid=100186 -; -call LMConfig_U_ByInfoInsert (2,100118,9) -; -call LMInfo_Insert (100186,541290,'','',2,100118,9,18) -; -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202303130202.sql b/resource/sqlupgrade/Oracle/sql202303130202.sql deleted file mode 100644 index d6b3c8be5..000000000 --- a/resource/sqlupgrade/Oracle/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -/ -Delete from LeftMenuConfig where infoid=100186 -/ -call LMConfig_U_ByInfoInsert (2,100118,9) -/ -call LMInfo_Insert (100186,541290,'','',2,100118,9,18) -/ -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202303130202.sql b/resource/sqlupgrade/PG/sql202303130202.sql deleted file mode 100644 index c6ed8b220..000000000 --- a/resource/sqlupgrade/PG/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ -Delete from LeftMenuConfig where infoid=100186; -/ -select LMConfig_U_ByInfoInsert (2,100118,9); -/ -select LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202303130202.sql b/resource/sqlupgrade/SQLServer/sql202303130202.sql deleted file mode 100644 index 9b7bbe305..000000000 --- a/resource/sqlupgrade/SQLServer/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -GO -Delete from LeftMenuConfig where infoid=100186 -GO -EXECUTE LMConfig_U_ByInfoInsert 2,100118,9 -GO -EXECUTE LMInfo_Insert 100186,541290,'','',2,100118,9,18 -GO -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202303130202.sql b/resource/sqlupgrade/ST/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/ST/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file From ff200e25861e1f19c3dc51e2504e4c220eb8d741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 25 Sep 2024 11:45:36 +0800 Subject: [PATCH 09/76] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 26e2b2670..c0c2dfa53 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -63,9 +63,9 @@ public class SalaryAcctEmployeeBO { .employeeName(simpleEmployee.getUsername()) .taxAgentId(e.getTaxAgentId()) .taxAgentName(taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY)) - .departmentId(simpleEmployee.getDepartmentId()) - .departmentName(simpleEmployee.getDepartmentName()) - .status(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(simpleEmployee.getStatus()))) + .departmentId(e.getDepartmentId()) + .departmentName(e.getDepartmentName()) + .status(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(e.getStatus()))) .mobile(simpleEmployee.getMobile()) .jobNum(simpleEmployee.getWorkcode()) .hireDate(simpleEmployee.getCompanystartdate()) From 9f7fe00303bf3335acc7b1b25aa6bbbe8715e443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 25 Sep 2024 13:38:45 +0800 Subject: [PATCH 10/76] =?UTF-8?q?=E7=A9=BF=E9=80=8F=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BF=AB=E7=85=A7=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/impl/SalaryStatisticsReportServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 962e3b135..42a65d485 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -616,7 +616,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary DataCollectionEmployee emp = employeeMap.get(se.getEmployeeId()); resultMap.put("id", se.getId().toString()); resultMap.put("userName", emp == null ? "" : emp.getUsername()); - resultMap.put("departmentName", emp == null ? "" : emp.getDepartmentName()); + resultMap.put("departmentName", se.getDepartmentName()); resultMap.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth())); resultMap.put("taxAgent", taxAgentMap.get(se.getTaxAgentId())); resultMap.put("salarySob", SalarySobMap.get(se.getSalarySobId())); From b732430562e1bb813f498121f14742c215f954ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 25 Sep 2024 15:40:36 +0800 Subject: [PATCH 11/76] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=B7=A5=E5=8F=B7=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/sys/enums/OrderRuleEnum.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/sys/enums/OrderRuleEnum.java b/src/com/engine/salary/sys/enums/OrderRuleEnum.java index 560cc51a8..2d60f13bf 100644 --- a/src/com/engine/salary/sys/enums/OrderRuleEnum.java +++ b/src/com/engine/salary/sys/enums/OrderRuleEnum.java @@ -18,7 +18,8 @@ public enum OrderRuleEnum implements BaseEnum { LASTNAME("e.lastName", "人员名称", 1), DEPTNAME("d.departmentname", "部门名称", 1), SUBCOMNAME("c.subcompanyname", "分部名称", 1), - SHOWORDEROFDEPTTREE("d.showOrderOfTree", "组织", 1); + SHOWORDEROFDEPTTREE("d.showOrderOfTree", "组织", 1), + WORKCODE("e.workcode", "工号", 1); private String value; From 7d0ebd1cdca90a718200dd88cc8d88ff194d95d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 17:00:59 +0800 Subject: [PATCH 12/76] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E7=89=88=E5=B8=B8?= =?UTF-8?q?=E7=94=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/常用查询.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index 13ba2242f..71f4f51a6 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -10,6 +10,14 @@ left join hrsa_tax_agent agent on agent.id=sob.tax_agent_id and agent.delete_typ left join hrmresource e on e.id= result.employee_id +select e.lastname, record.salary_month as 薪资月, item.name as 薪资项 ,result.result_value as 值 +from hrsa_salary_acct_record record +left join hrsa_salary_acct_result result on record.id = result.salary_acct_record_id and result.delete_type = 0 and record.delete_type = 0 +left join hrsa_salary_item item on result.salary_item_id = item.id and item.delete_type = 0 +left join hrmresource e on e.id= result.employee_id +where item.name = '工资薪金合计' + + # 获取档案信息 select i.item_value from hrsa_salary_archive_item i From ecd99537faa2214f94a43935911ca937361b5d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 11:04:44 +0800 Subject: [PATCH 13/76] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=AE=E5=8A=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AEnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/VariableArchiveServiceImpl.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index b008273c6..af4c29ef5 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; @@ -220,7 +221,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi .employeeId(saveParam.getEmployeeId()) .taxAgentId(saveParam.getTaxAgentIds()) .salaryMonth(saveParam.getSalaryMonthDate()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) @@ -230,20 +231,22 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi // 保存浮动薪资档案详细信息 List variableArchiveItemList = new ArrayList<>(); - saveParam.getItemValueList().forEach(e -> { - variableArchiveItemList.add(VariableArchiveItemPO.builder() - .id(IdGenerator.generate()) - .employeeId(saveParam.getEmployeeId()) - .variableArchiveId(variableArchivePO.getId()) - .variableItemId(e.getVariableItemId()) - .itemValue(e.getItemValue()) - .creator(Long.valueOf(user.getUID())) - .createTime(now) - .updateTime(now) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()); - }); + if(CollectionUtil.isNotEmpty(saveParam.getItemValueList())){ + saveParam.getItemValueList().forEach(e -> { + variableArchiveItemList.add(VariableArchiveItemPO.builder() + .id(IdGenerator.generate()) + .employeeId(saveParam.getEmployeeId()) + .variableArchiveId(variableArchivePO.getId()) + .variableItemId(e.getVariableItemId()) + .itemValue(e.getItemValue()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + }); + } if (CollectionUtils.isNotEmpty(variableArchiveItemList)) { getVariableArchiveItemService(user).batchInsert(variableArchiveItemList); From 0852094cb17066b2d149bf736f08c68e252328d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 11:13:00 +0800 Subject: [PATCH 14/76] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=AE=E5=8A=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA?= =?UTF-8?q?id=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/datacollection/dto/VariableArchiveListDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java index de5c0fd22..6d5905390 100644 --- a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java @@ -44,7 +44,7 @@ public class VariableArchiveListDTO { /** * 个税扣缴义务人id */ - private String taxAgentId; + private Long taxAgentId; /** * 姓名 From 4db0fdc6997319c3572915eaed29945a9957c97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 17:18:07 +0800 Subject: [PATCH 15/76] =?UTF-8?q?SQL=20=E4=BD=BF=E7=94=A8mybatis=E6=89=A7?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/InsuranceExportMapper.java | 6 ------ src/com/engine/salary/mapper/SQLMapper.java | 18 ++++++++++++++++++ src/com/engine/salary/mapper/SQLMapper.xml | 7 +++++++ .../service/impl/FormulaRunServiceImpl.java | 11 +++++++++++ 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 src/com/engine/salary/mapper/SQLMapper.java create mode 100644 src/com/engine/salary/mapper/SQLMapper.xml diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.java b/src/com/engine/salary/mapper/InsuranceExportMapper.java index 2464c49de..b4ef25f66 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.java +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.java @@ -8,12 +8,6 @@ import org.apache.ibatis.annotations.Param; import java.util.List; -/** - * @Author weaver_cl - * - * @Date 2022/4/18 - * @Version V1.0 - **/ public interface InsuranceExportMapper { List exportExcelAccount(@Param("param") InsuranceComparisonResultQueryParam param); diff --git a/src/com/engine/salary/mapper/SQLMapper.java b/src/com/engine/salary/mapper/SQLMapper.java new file mode 100644 index 000000000..4d998fa88 --- /dev/null +++ b/src/com/engine/salary/mapper/SQLMapper.java @@ -0,0 +1,18 @@ +package com.engine.salary.mapper; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * SQLMapper + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface SQLMapper { + List runSQL(@Param("sql") String sql); +} diff --git a/src/com/engine/salary/mapper/SQLMapper.xml b/src/com/engine/salary/mapper/SQLMapper.xml new file mode 100644 index 000000000..bba76972c --- /dev/null +++ b/src/com/engine/salary/mapper/SQLMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java index 2b76af128..07c5ae633 100644 --- a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java +++ b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java @@ -9,9 +9,11 @@ import com.engine.salary.enums.salaryformula.ReferenceTypeEnum; import com.engine.salary.formlua.core.QlExpress; import com.engine.salary.formlua.entity.parameter.DataType; import com.engine.salary.formlua.entity.standard.ExcelResult; +import com.engine.salary.mapper.SQLMapper; import com.engine.salary.service.FormulaRunService; import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.MapperProxyFactory; import com.ql.util.express.DefaultContext; import com.ql.util.express.ExpressRunner; import lombok.extern.slf4j.Slf4j; @@ -41,6 +43,9 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService QlExpress express = new QlExpress(); + private SQLMapper getSQLMapper(){ + return MapperProxyFactory.getProxy(SQLMapper.class); + } @Override public ExcelResult run(ExpressFormula expressFormula, List formulaVars, DataCollectionEmployee simpleEmployee) { @@ -123,6 +128,12 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService } } } else { + +// List list = getSQLMapper().runSQL(sql); +// if(CollectionUtil.isNotEmpty(list)){ +// result = Util.null2String(list.get(0).get(sqlReturnKey)); +// } + RecordSet rs = new RecordSet(); if (rs.execute(sql)) { if (rs.next()) { From 93d2980ad8d50587d6a54c8e8c3dd471f9b09f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 10:37:38 +0800 Subject: [PATCH 16/76] =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctEmployeeServiceImpl.java | 76 +++++++++++-------- .../salary/web/SalaryAcctController.java | 6 +- .../wrapper/SalaryAcctEmployeeWrapper.java | 4 +- 3 files changed, 51 insertions(+), 35 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 7ca1a1f4d..a36f2dd57 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -5,9 +5,9 @@ import cn.hutool.core.date.DateUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO; @@ -444,6 +444,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void deleteByIds(Collection ids) { + + if (CollectionUtils.isEmpty(ids)) { + return; + } + // 删除薪资核算人员 getSalaryAcctEmployeeMapper().deleteByIds(ids); // 删除薪资核算人员对应的薪资核算结果 @@ -547,36 +552,47 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void refresh(Long salaryAcctRecordId) { - // 查询薪资核算人员 - List salaryAcctEmployeePOS = listBySalaryAcctRecordId(salaryAcctRecordId); - if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { - return; - } - List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); // 查询薪资核算记录 SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); if (Objects.isNull(salaryAcctRecordPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } + + // 根据薪资账套查询人员 + List salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + if (CollectionUtils.isEmpty(salaryEmployees)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "未查询到账套下关联人员")); + } + + // 根据薪资账套查询薪资周期 + SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); + //查询账套对应的扣缴义务人 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - //过滤掉不属于当前账套扣缴义务人的人员 Long taxAgentId = salarySobPO.getTaxAgentId(); - // 查询薪资核算记录所用的帐套的薪资周期 - SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); // 查询薪资档案,获取人员的个税扣缴义务人 + List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); - List employees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); // 转换成薪资核算人员po - List newSalaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(employees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); - newSalaryAcctEmployeePOS = newSalaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); - // 删除以前的薪资核算人员 - getSalaryAcctEmployeeMapper().deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - // 插入新的薪资核算人员 - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { - batchSave(newSalaryAcctEmployeePOS); - } + List newEmps = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); + //过滤掉不属于当前账套扣缴义务人的人员 + newEmps = newEmps.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + Map newEmpMap = SalaryEntityUtil.convert2Map(newEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); + + + // 查询薪资核算人员 + List oldEmps = listBySalaryAcctRecordId(salaryAcctRecordId); + Map oldEmpMap = SalaryEntityUtil.convert2Map(oldEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); + + //新增 + List addEmps = newEmps.stream().filter(po -> !oldEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).collect(Collectors.toList()); + + //删除 + List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + + deleteByIds(delIds); + batchSave(addEmps); } @@ -712,20 +728,20 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // } // list = list.stream().filter(po -> employeeIdsByGradeFilter.contains(po.getEmployeeId())).collect(Collectors.toList()); // } - // 岗位过滤 + // 岗位过滤 List position = param.getPosition(); if (CollectionUtils.isNotEmpty(position)) { - // Set employeeIdsByPostionFilter = new HashSet<>(); - // simpleEmployeeList.forEach(simpleEmployee -> { - // if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) { - // employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId()); - // } - // }); - // if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) { - // return Lists.newArrayList(); - // } + // Set employeeIdsByPostionFilter = new HashSet<>(); + // simpleEmployeeList.forEach(simpleEmployee -> { + // if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) { + // employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId()); + // } + // }); + // if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) { + // return Lists.newArrayList(); + // } employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); - } + } // 人事状态过滤 if (CollectionUtils.isNotEmpty(param.getStatus())) { Set employeeIdsByStatus = new HashSet<>(); diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 571884aa5..49fba1129 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -247,13 +247,13 @@ public class SalaryAcctController { return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::checkTaxAgent, param.getSalaryAcctRecordId()); } - //刷新薪资核算人员的个税扣缴义务人 + //刷新薪资核算人员 @POST - @Path("/acctemployee/refreshTaxAgent") + @Path("/acctemployee/refresh") @Produces(MediaType.APPLICATION_JSON) public String refreshTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmpRefreshTaxAgentParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::refreshTaxAgent, param.getSalaryAcctRecordId()); + return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::refresh, param.getSalaryAcctRecordId()); } //从环比上月减少添加薪资核算人员 diff --git a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java index 095935fd5..c0d207d45 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java @@ -184,11 +184,11 @@ public class SalaryAcctEmployeeWrapper extends Service { } /** - * 刷新个税扣缴义务人 + * 刷新核算人员 * * @param salaryAcctRecordId 薪资核算记录的id */ - public void refreshTaxAgent(Long salaryAcctRecordId) { + public void refresh(Long salaryAcctRecordId) { getSalaryAcctEmployeeService(user).refresh(salaryAcctRecordId); } From b4050e4ee850de70bcadbae3556671810023ff80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 16:58:41 +0800 Subject: [PATCH 17/76] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 184 +++++++++++------- .../SalaryStatisticsReportWrapper.java | 44 ++--- .../impl/SalaryAcctEmployeeServiceImpl.java | 109 ++++------- .../sys/constant/SalarySysConstant.java | 11 ++ 4 files changed, 187 insertions(+), 161 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 42a65d485..ab16db7cc 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -54,6 +54,8 @@ import weaver.wechat.util.Utils; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 薪酬统计报表 *

Copyright: Copyright (c) 2022

@@ -71,6 +73,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary public static final String LAST_INFO = "lastInfoList"; public static final String SAME_INFO = "sameInfoList"; + private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); private SalaryStatisticsReportMapper getSalaryStatisticsReportMapper() { return MapperProxyFactory.getProxy(SalaryStatisticsReportMapper.class); @@ -197,16 +200,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary this.getSalaryStatisticsReportMapper().updateIgnoreNull(poNew); // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOldValues(po); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } else { List list = listByName(saveParam.getReportName()); if (CollectionUtils.isNotEmpty(list)) { @@ -217,15 +220,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().insertIgnoreNull(poNew); // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } return StringUtils.EMPTY; } @@ -305,16 +308,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsItemService(user).saveOrUpdateBatch(salaryStatisticsItemList); //记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(po.getId())); - loggerContext.setTargetName(po.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); - loggerContext.setOldValues(oldPO); - loggerContext.setNewValues(po); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(po.getId())); + loggerContext.setTargetName(po.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(po); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); return StringUtils.EMPTY; } @@ -333,17 +336,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().deleteByIds(deleteIds); //删除薪资项 getSalaryStatisticsItemService(user).deleteByReportIds(deleteIds); - list.forEach(e -> { - // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(e.getId())); - loggerContext.setTargetName(e.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "删除报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "删除报表") + e.getReportName()); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); - }); + list.forEach(e -> { + // 记录日志 + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(e.getId())); + loggerContext.setTargetName(e.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除报表") + e.getReportName()); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + }); } Map resultMap = new HashMap<>(2); @@ -396,8 +399,8 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary loggerContext.setTargetId(String.valueOf(po.getId())); loggerContext.setTargetName(po.getReportName()); loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表")); loggerContext.setNewValues(po); SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } @@ -479,7 +482,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(queryParam); // 设置dimensionValue为维度值 - SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder().list(salaryAcctEmployeeList).lastList(Collections.emptyList()).sameList(Collections.emptyList()).salaryStatisticsItemList(salaryStatisticsItemPOS).employeeId((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).dimensionValue(param.getDimensionValue()).build(); + SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder() + .list(salaryAcctEmployeeList) + .lastList(Collections.emptyList()) + .sameList(Collections.emptyList()) + .salaryStatisticsItemList(salaryStatisticsItemPOS) + .employeeId((long) user.getUID()) + .dimensionValue(param.getDimensionValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); Map> resultMap = new HashMap<>(); List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); @@ -848,44 +859,78 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map lastEmpIdDepartIdMap = new HashMap<>(); Map sameEmpIdDepartIdMap = new HashMap<>(); Map departIdNameMap = new HashMap<>(); - simpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); - departIds.add(employee.getDepartmentId()); - empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - lastSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - sameSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); + if (isRealOrg) { + simpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + lastSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + sameSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } else { + data.getList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } String dimensionValue = data.getDimensionValue(); departIds.forEach(departId -> { if (dimensionValue == null) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, departIdNameMap.get(departId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(departEmployeePOS, lastDepartEmployeePOS, sameDepartEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, departIdNameMap.get(departId))) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } data.setListByDimensionValue(departEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + + } if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "无分组")); @@ -893,7 +938,10 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary records.add(noGrouping); } } else if (StringUtils.equals(dimensionValue, "无分组")) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if(isRealOrg){ + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 22fb6261f..7556b7bf8 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } - if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { - //报表中缓存的条件 - salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); - if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { - Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); - if (param.getDimensionId().equals(empDimensionId)) { - // 人员维度需要分页 - Map finalResultMap = new HashMap<>(); - PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); - PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); - finalPageInfo.setTotal(pageInfo.getList().size()); - finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); - finalResultMap.put("pageInfo", finalPageInfo); - finalResultMap.put("columns", result.get("columns")); - finalResultMap.put("countResult", result.get("countResult")); - finalResultMap.put("reportId", id); - return finalResultMap; - } - - return result; - } - } +// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { +// //报表中缓存的条件 +// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); +// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { +// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); +// if (param.getDimensionId().equals(empDimensionId)) { +// // 人员维度需要分页 +// Map finalResultMap = new HashMap<>(); +// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); +// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); +// finalPageInfo.setTotal(pageInfo.getList().size()); +// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); +// finalResultMap.put("pageInfo", finalPageInfo); +// finalResultMap.put("columns", result.get("columns")); +// finalResultMap.put("countResult", result.get("countResult")); +// finalResultMap.put("reportId", id); +// return finalResultMap; +// } +// +// return result; +// } +// } // 列表data diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index a36f2dd57..0dce7dbda 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -47,6 +47,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 薪资核算人员 *

Copyright: Copyright (c) 2022

@@ -102,6 +104,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryCacheService getSalaryCacheService(User user) { + return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); + } + + private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); @Override public List countBySalaryAcctRecordId(Collection salaryAcctRecordIds) { @@ -656,11 +663,6 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct lambdaQueryChainWrapper.setSalaryMonths(yearMonths); } - // 收入所得项目 -// if (CollectionUtils.isNotEmpty(param.getIncomeCategory())) { -// lambdaQueryChainWrapper.in(SalaryAcctEmployeePO::getIncomeCategory, param.getIncomeCategory().stream().map(Object::toString).collect(Collectors.toList())); -// } - //排除未归档数据 List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listAll(); List salaryAcctRecordIds = salaryAcctRecordPOS.stream() @@ -690,70 +692,47 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 获取分部信息 List subCompanyIds = param.getSubCompany(); if (CollectionUtils.isNotEmpty(subCompanyIds)) { -// SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); -// List allSubcompanyIds = new ArrayList<>(); -// for (Long subCompanyId : subCompanyIds) { -// String organizationIds = Util.null2String(subCompanyId); -// String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds); -// allSubcompanyIds.addAll(Arrays.asList(allChildSubcompanyId.split(","))); -// } - employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + } else { + list.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyId())).collect(Collectors.toList()); + } } // 部门过滤 List depart = param.getDepart(); if (CollectionUtils.isNotEmpty(depart)) { -// List allDepartIds = new ArrayList<>(); -// for (Long subDepartId : depart) { -// String ids = Util.null2String(subDepartId); -// try { -// String allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids); -// allDepartIds.addAll(Arrays.asList(allDepartId.toString().split(","))); -// } catch (Exception e) { -// log.error("获取子部门失败", e); -// } -// } - employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } } - // 职级过滤 -// if (CollectionUtils.isNotEmpty(param.getGrade())) { -// Set employeeIdsByGradeFilter = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// if (simpleEmployee.getGrade() != null && param.getGrade().contains(simpleEmployee.getGrade().getId())) { -// employeeIdsByGradeFilter.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByGradeFilter)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByGradeFilter.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 岗位过滤 List position = param.getPosition(); if (CollectionUtils.isNotEmpty(position)) { - // Set employeeIdsByPostionFilter = new HashSet<>(); - // simpleEmployeeList.forEach(simpleEmployee -> { - // if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) { - // employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId()); - // } - // }); - // if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) { - // return Lists.newArrayList(); - // } - employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } } // 人事状态过滤 if (CollectionUtils.isNotEmpty(param.getStatus())) { - Set employeeIdsByStatus = new HashSet<>(); - employeeList.forEach(simpleEmployee -> { - if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { - employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + if (isRealOrg) { + Set employeeIdsByStatus = new HashSet<>(); + employeeList.forEach(simpleEmployee -> { + if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { + employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + } + }); + if (CollectionUtils.isEmpty(employeeIdsByStatus)) { + return Lists.newArrayList(); } - }); - if (CollectionUtils.isEmpty(employeeIdsByStatus)) { - return Lists.newArrayList(); + list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(po -> po.getStatus() != null && param.getStatus().contains(po.getStatus())).collect(Collectors.toList()); } - list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); } // 入职日期 if (CollectionUtils.isNotEmpty(param.getHiredate())) { @@ -769,27 +748,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } list = list.stream().filter(po -> employeeIdsByHiredate.contains(po.getEmployeeId())).collect(Collectors.toList()); } -// // 离职日期 todo -// if (CollectionUtils.isNotEmpty(param.getLeavedate())) { -// Set employeeIdsByLeavedate = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// -// if (simpleEmployee.get() != null && ) { -// employeeIdsByLeavedate.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByLeavedate)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByLeavedate.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 人员 if (CollectionUtils.isNotEmpty(param.getEmployee())) { list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList()); } - Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); - list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + if(isRealOrg){ + Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); + list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + } return list; } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ff055b89e..443cd4fd5 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -145,4 +145,15 @@ public class SalarySysConstant { * 我的薪资福利工资单个税扣缴义务人显示状态 */ public static final String TAX_AGENT_SHOW_STATUS = "taxAgentShowStatus"; + + + /** + * 报表是否开启缓存,0:关闭 1:开启 + */ + public static final String REPORT_CACHE = "REPORT_CACHE"; + + /** + * 报表组织类型,null/0 :核算快照信息 1:实时组织信息 + */ + public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; } From 13f085420824942fe466020df94731484c227a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 17:02:59 +0800 Subject: [PATCH 18/76] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportWrapper.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 7556b7bf8..22fb6261f 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } -// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { -// //报表中缓存的条件 -// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); -// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { -// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); -// if (param.getDimensionId().equals(empDimensionId)) { -// // 人员维度需要分页 -// Map finalResultMap = new HashMap<>(); -// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); -// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); -// finalPageInfo.setTotal(pageInfo.getList().size()); -// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); -// finalResultMap.put("pageInfo", finalPageInfo); -// finalResultMap.put("columns", result.get("columns")); -// finalResultMap.put("countResult", result.get("countResult")); -// finalResultMap.put("reportId", id); -// return finalResultMap; -// } -// -// return result; -// } -// } + if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { + //报表中缓存的条件 + salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); + if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { + Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); + if (param.getDimensionId().equals(empDimensionId)) { + // 人员维度需要分页 + Map finalResultMap = new HashMap<>(); + PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); + PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); + finalPageInfo.setTotal(pageInfo.getList().size()); + finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); + finalResultMap.put("pageInfo", finalPageInfo); + finalResultMap.put("columns", result.get("columns")); + finalResultMap.put("countResult", result.get("countResult")); + finalResultMap.put("reportId", id); + return finalResultMap; + } + + return result; + } + } // 列表data From 8c0bad80232807239452bf6d4109228e5d5adc29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 30 Sep 2024 10:37:27 +0800 Subject: [PATCH 19/76] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 77 ++++++++++++++----- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index ab16db7cc..ecceda7a9 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -796,38 +796,74 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map subComIdNameMap = new HashMap<>(); Map lastEmpIdSubComMap = new HashMap<>(); Map sameEmpIdSubComMap = new HashMap<>(); - comInfoMap.forEach((k, v) -> { - subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); - empIdSubComMap.put(k, v.getSubcompanyid()); - subComIds.add(v.getSubcompanyid()); - }); - lastComInfoMap.forEach((k, v) -> { - lastEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); - sameComInfoMap.forEach((k, v) -> { - sameEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); + + if (isRealOrg) { + comInfoMap.forEach((k, v) -> { + subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); + empIdSubComMap.put(k, v.getSubcompanyid()); + subComIds.add(v.getSubcompanyid()); + }); + lastComInfoMap.forEach((k, v) -> { + lastEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + sameComInfoMap.forEach((k, v) -> { + sameEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + } else { + data.getList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + subComIdNameMap.put(employee.getSubcompanyId(), employee.getSubcompanyName()); + subComIds.add(employee.getDepartmentId()); + empIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + lastEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + sameEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + } + String dimensionValue = data.getDimensionValue(); subComIds.forEach(subComId -> { if (dimensionValue == null) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, subComIdNameMap.get(subComId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(subComEmployeePOS, lastSubComEmployeePOS, sameSubComEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, subComIdNameMap.get(subComId))) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } data.setListByDimensionValue(subComEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "无分组")); @@ -836,6 +872,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } } else if (StringUtils.equals(dimensionValue, "无分组")) { List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } @@ -939,7 +978,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } } else if (StringUtils.equals(dimensionValue, "无分组")) { List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); - if(isRealOrg){ + if (isRealOrg) { noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); } data.setListByDimensionValue(noGroupingList); From ff44ddd8b11536de2a809aed86175fa059d77a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 14:19:02 +0800 Subject: [PATCH 20/76] =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryAcctEmployeeQueryParam.java | 5 ++ .../salaryacct/SalaryAcctEmployeeMapper.xml | 48 +++++++++++++++++-- .../SalaryStatisticsEmployeeServiceImpl.java | 19 +++----- 3 files changed, 56 insertions(+), 16 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java index 2d532855e..977f1572e 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java @@ -7,7 +7,9 @@ import com.engine.salary.util.valid.DataCheck; import lombok.*; import java.util.Collection; +import java.util.Date; import java.util.List; +import java.util.Set; /** * 薪资核算人员列表查询条件 @@ -59,4 +61,7 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam { private List ids; private String workcode; + + private List taxAgentIds; + private Set salaryMonths; } diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 28f8e7779..86781c4d3 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -521,7 +521,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -538,7 +537,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -555,7 +553,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -564,6 +561,9 @@ + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -573,6 +573,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- 分部 AND t.subcompany_id IN @@ -625,6 +637,9 @@ + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -634,6 +649,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- 分部 AND t.subcompany_id IN @@ -684,6 +711,9 @@ + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -693,6 +723,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- 分部 AND t.subcompany_id IN diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 3a6e00071..2e7663392 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.NumberUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryacct.param.SalaryAcctEmployeeQueryParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; @@ -33,7 +34,6 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.wbi.util.Util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -108,7 +108,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .collect(Collectors.toSet()); // 查询薪资核算人员 - List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); + List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return page; } @@ -119,15 +120,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // // 外部人员id // Set extEmployeeIds = Sets.newHashSet(); // 内部人员id - Set innerEmployeeIds = Sets.newHashSet(); - for (SalaryAcctEmployeePO sae : salaryAcctEmployeeList) { -// if (EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(sae.getEmployeeType())) { -// extEmployeeIds.add(sae.getEmployeeId()); -// } else if (EmployeeTypeEnum.ORGANIZATION.getValue().equals(sae.getEmployeeType())) { -// innerEmployeeIds.add(sae.getEmployeeId()); -// } - innerEmployeeIds.add(sae.getEmployeeId()); - } + Set innerEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toCollection(LinkedHashSet::new)); + // 3.关键字搜索参数 if (StringUtils.isNotEmpty(queryParam.getKeyword())) { // if (CollectionUtils.isNotEmpty(extEmployeeIds)) { @@ -158,10 +152,9 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala } } - List innerEmployeeIdList = innerEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); // List extEmployeeIdList = extEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); // 排序,内部员工优先 - list = innerEmployeeIdList.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() + list = innerEmployeeIds.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() .id(e) // .employeeType(EmployeeTypeEnum.ORGANIZATION.getValue()) .build()).collect(Collectors.toList()); From edb07052b5a1151a640148fdf78bf1b7a222b8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 14:36:18 +0800 Subject: [PATCH 21/76] =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/sys/constant/SalarySysConstant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 443cd4fd5..6f35124c3 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -153,7 +153,7 @@ public class SalarySysConstant { public static final String REPORT_CACHE = "REPORT_CACHE"; /** - * 报表组织类型,null/0 :核算快照信息 1:实时组织信息 + * 报表组织类型,null/0 :核算时组织信息 1:实时组织信息 */ public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; } From ff5419f2bb1a1431cfd97a8ad634ebc9f8d00da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 15:45:12 +0800 Subject: [PATCH 22/76] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= 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 2e7663392..3ec96c6dc 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -315,7 +315,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .collect(Collectors.toSet()); // 查询薪资核算人员 - List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); + List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); if (CollectionUtils.isNotEmpty(queryParam.getSubCompanyIds()) || CollectionUtils.isNotEmpty(queryParam.getDepartmentIds()) || StringUtils.isNotBlank(queryParam.getKeyword())) { // 根据分部、部门筛选 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); @@ -336,8 +337,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala if (CollectionUtils.isNotEmpty(queryParam.getIds())) { salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(emp -> queryParam.getIds().contains(emp.getId())).collect(Collectors.toList()); } - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth)).collect(Collectors.toList()); - Collections.reverse(salaryAcctEmployeeList); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth).reversed()).collect(Collectors.toList()); PageInfo SalaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); if (queryParam.isExport()) { SalaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); From 61dee5d3a122d1f3ddb1d3b2d85b38a823de81d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 15:48:33 +0800 Subject: [PATCH 23/76] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryStatisticsEmployeeServiceImpl.java | 3 --- 1 file changed, 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 3ec96c6dc..57a8d103d 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -288,9 +288,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public PageInfo listSalaryAcctEmp(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { - List list = Collections.emptyList(); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); - // 1.分权处理, 首先获取个税扣缴义务人参数 Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); From 752de1fa8efe22d8f8c18b5b0690f7333274225e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 9 Oct 2024 10:57:23 +0800 Subject: [PATCH 24/76] =?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 @@ @@ -117,6 +128,9 @@ update_time, + + type, + @@ -146,6 +160,9 @@ #{updateTime}, + + #{type}, + @@ -161,6 +178,7 @@ template_name=#{templateName}, tenant_key=#{tenantKey}, update_time=#{updateTime}, + type=#{type}, WHERE id = #{id} AND delete_type = 0 @@ -194,6 +212,9 @@ update_time=#{updateTime}, + + type=#{type}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index 44aed9df9..e23815ba3 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -117,7 +117,7 @@ public interface SalaryAcctExcelService { ExcelPreviewDTO previewImportSalaryAcctResult(SalaryAcctImportParam param); - void cacheImportField(List salaryItems); + void cacheImportField(SalaryAcctResultTemplateSaveParam param); void cacheExportField(List salaryItems); diff --git a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java index 7696cb4bf..a2b4c9c4a 100644 --- a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java +++ b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java @@ -75,5 +75,5 @@ public interface SalaryAcctResultTemplateService { * @param salarySobId * @return */ - List listBySalarySobId(Long salarySobId); + List listBySalarySobId(Long salarySobId,List types); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 01aee1e36..aef1bb7c3 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -591,11 +591,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // .build()) // .collect(Collectors.toList()); // 缓存勾选 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); - // 转换成dto -// return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).checkItems(checkItems).build(); + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + } return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build(); } @@ -667,18 +668,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc @Override public XSSFWorkbook exportImportTemplate(SalaryAcctImportTemplateParam param) { -// ValidUtil.doValidator(param); - // 从缓存中获取所选的薪资项目 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); + + // 查询薪资核算记录 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); + } + + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + } + // 必须选择导入模板所需的薪资项目 if (CollectionUtils.isEmpty(checkItems)) { - // 获取所有可以选择的薪资项目 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); @@ -688,11 +693,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc checkItems = salaryItemIds; } param.setSalaryItemIds(checkItems); - // 查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } + // // 模板表头(默认必带"个税扣缴义务人"、"姓名") // List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"), // "部门", @@ -976,9 +977,32 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } @Override - public void cacheImportField(List salaryItems) { - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryItems)); + public void cacheImportField(SalaryAcctResultTemplateSaveParam saveParam) { + Long salaryAcctRecordId = saveParam.getSalaryAcctRecordId(); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("薪资核算记录不存在"); + } + + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Collections.singletonList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + salaryAcctResultTemplatePOS.forEach(templatePO -> getSalaryAcctResultTemplateService(user).deleteById(templatePO.getId())); + } + + Date now = new Date(); + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() + .id(IdGenerator.generate()) + .type(2) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) + .templateName("") + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); + } @Override @@ -1467,7 +1491,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc throw new SalaryRunTimeException("薪资核算记录不存在"); } saveParam.setSalarySobId(salaryAcctRecordPO.getSalarySobId()); - List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId()); + List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId(), Arrays.asList(0, 1)); if (saveParam.getId() != null) { Optional saveNameOptional = templateBySobId.stream().filter(po -> po.getTemplateName().equals(saveParam.getTemplateName()) && !po.getId().equals(saveParam.getId())).findFirst(); if (saveNameOptional.isPresent()) { @@ -1480,6 +1504,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } salaryAcctResultTemplatePO.setSalaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")); salaryAcctResultTemplatePO.setTemplateName(saveParam.getTemplateName()); + salaryAcctResultTemplatePO.setType(0); salaryAcctResultTemplatePO.setUpdateTime(new Date()); getSalaryAcctResultTemplateService(user).update(salaryAcctResultTemplatePO); } else { @@ -1489,16 +1514,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } // 新建 Date now = new Date(); - getSalaryAcctResultTemplateService(user).insertIgnoreNull(SalaryAcctResultTemplatePO.builder() + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() .id(IdGenerator.generate()) + .type(0) .salarySobId(saveParam.getSalarySobId()) .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) .templateName(saveParam.getTemplateName()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(0) - .build()); + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); } } @@ -1525,7 +1552,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException("薪资核算记录为空"); } - List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(0, 1)); if (StringUtils.isNotBlank(param.getTemplateName())) { salaryAcctResultTemplatePOS = salaryAcctResultTemplatePOS.stream().filter(po -> po.getTemplateName().contains(param.getTemplateName())).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java index c79f314f8..219d971f6 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java @@ -63,10 +63,10 @@ public class SalaryAcctResultTemplateServiceImpl extends Service implements Sala } @Override - public List listBySalarySobId(Long salarySobId) { + public List listBySalarySobId(Long salarySobId,List types) { if (salarySobId == null) { return Collections.emptyList(); } - return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).build()); + return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).types(types).build()); } } diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 49fba1129..c8739df1d 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -167,7 +167,7 @@ public class SalaryAcctController { @GET @Path("/compareSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::compareSobConfig, id); } @@ -181,7 +181,7 @@ public class SalaryAcctController { @GET @Path("/updateSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::updateSobConfig, id); } @@ -583,9 +583,9 @@ public class SalaryAcctController { @POST @Path("/acctresult/cacheImportField") @Produces(MediaType.APPLICATION_JSON) - public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) { + public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param.getSalaryItems()); + return new ResponseResult(user).run(getSalaryAcctExcelService(user)::cacheImportField, param); } // 薪资核算导出字段缓存 @@ -630,7 +630,7 @@ public class SalaryAcctController { @Produces(MediaType.APPLICATION_JSON) public String exportTemplateList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); + return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); } From da4e908a7de8be3f65e98b5fd7fcc1197b0d8275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 10 Oct 2024 14:16:57 +0800 Subject: [PATCH 29/76] =?UTF-8?q?=E6=A8=A1=E6=9D=BFsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/GS/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/JC/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/Mysql/sql202410100103.sql | 3 +++ resource/sqlupgrade/Oracle/sql202410100103.sql | 7 +++++++ resource/sqlupgrade/PG/sql202410100103.sql | 3 +++ resource/sqlupgrade/SQLServer/sql202410100103.sql | 5 +++++ resource/sqlupgrade/ST/sql202410100103.sql | 8 ++++++++ 8 files changed, 50 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202410100103.sql create mode 100644 resource/sqlupgrade/GS/sql202410100103.sql create mode 100644 resource/sqlupgrade/JC/sql202410100103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202410100103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202410100103.sql create mode 100644 resource/sqlupgrade/PG/sql202410100103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202410100103.sql create mode 100644 resource/sqlupgrade/ST/sql202410100103.sql diff --git a/resource/sqlupgrade/DM/sql202410100103.sql b/resource/sqlupgrade/DM/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/GS/sql202410100103.sql b/resource/sqlupgrade/GS/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/JC/sql202410100103.sql b/resource/sqlupgrade/JC/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202410100103.sql b/resource/sqlupgrade/Mysql/sql202410100103.sql new file mode 100644 index 000000000..5b645e3f6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410100103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_acct_result_template ADD COLUMN type int(0) NULL ; + +update hrsa_acct_result_template set type = 0; diff --git a/resource/sqlupgrade/Oracle/sql202410100103.sql b/resource/sqlupgrade/Oracle/sql202410100103.sql new file mode 100644 index 000000000..90d5981fd --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410100103.sql @@ -0,0 +1,7 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +) +/ + +update hrsa_acct_result_template set type = 0 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410100103.sql b/resource/sqlupgrade/PG/sql202410100103.sql new file mode 100644 index 000000000..2deb5e3a5 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410100103.sql @@ -0,0 +1,3 @@ +alter table hrsa_acct_result_template add type int null ; + +update hrsa_acct_result_template set type = 0; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410100103.sql b/resource/sqlupgrade/SQLServer/sql202410100103.sql new file mode 100644 index 000000000..f2820af3a --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410100103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_acct_result_template ADD type int NULL +GO + +update hrsa_acct_result_template set type = 0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202410100103.sql b/resource/sqlupgrade/ST/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + From 8d8fc5c15d9045ad4241fbd72dcec6688d688f71 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 11 Oct 2024 10:17:35 +0800 Subject: [PATCH 30/76] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/InsuranceExportMapper.xml | 6 ++-- .../InsuranceAccountDetailMapper.xml | 28 +++++++++++++------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.xml b/src/com/engine/salary/mapper/InsuranceExportMapper.xml index f12ae2d49..cc4934057 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.xml +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.xml @@ -284,7 +284,7 @@ + SELECT + + FROM hrsa_page_list_setting t + WHERE delete_type = 0 + + + + + + + + + + + + INSERT INTO hrsa_page_list_setting + + + + create_time, + + + creator, + + + delete_type, + + + page, + + + setting, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{page}, + + + #{setting}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_page_list_setting + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + page=#{page}, + setting=#{setting}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + page=#{page}, + + + setting=#{setting}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_setting + 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 5728f0886..635134b5f 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -25,10 +25,7 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQuery import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; -import com.engine.salary.util.SalaryAssert; -import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.*; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -89,6 +86,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + @Override public PageInfo listPage(SalaryStatisticsEmployeeQueryParam queryParam) { List list = Collections.emptyList(); @@ -270,7 +271,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("id", se.getId().toString()); map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth())); map.put("taxAgent", taxAgentMap.get(se.getTaxAgentId())); - map.put("salarySob",SalarySobMap.get(se.getSalarySobId())); + map.put("salarySob", SalarySobMap.get(se.getSalarySobId())); map.put("acctTimes", salaryAcctRecordMap.get(se.getSalaryAcctRecordId())); map.put("userName", Util.null2String(emp.getUsername())); map.put("subCompany", Util.null2String(emp.getSubcompanyName())); @@ -302,10 +303,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 2.年月参数处理,注意:薪资所属月居然是用字符串存储的,无法通过sql between处理 List dataParam = new ArrayList<>(); if (StringUtils.isNotBlank(queryParam.getStartDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr() + "-01 00:00:00")); } if (StringUtils.isNotBlank(queryParam.getEndDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr() + "-01 00:00:00")); } Set salaryMonths = SalaryStatisticsEmployeeBO.getSalaryMonths(null, dataParam) .stream() @@ -319,13 +320,13 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 根据分部、部门筛选 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); // 根据关键词过滤 - if(StringUtils.isNotBlank(queryParam.getKeyword())) { + if (StringUtils.isNotBlank(queryParam.getKeyword())) { employeeList = employeeList.stream() .filter(e -> (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) .collect(Collectors.toList()); } List employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter( acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); } if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return new PageInfo<>(); @@ -358,23 +359,25 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 3.获取薪资项目 - List salaryItemList = getSalaryItemService(user).listAll(); - 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()); + Map setting = getSettingService(user).getPageListSetting("salary_details_report"); + 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()); return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java index b4e668513..4fa4ae64a 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java @@ -73,7 +73,7 @@ public class SalaryStatisticsEmployeeController { } /** - * 员工薪资列表 + * 薪资明细 * * @param queryParam * @return diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 646600f08..63e0863cf 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -229,6 +229,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); List employeePOS = salaryAcctEmployeePageInfo.getList(); + if (CollectionUtils.isEmpty(employeePOS)){ + return resultMap; + } Map sumResultMap = Maps.newHashMap(); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java new file mode 100644 index 000000000..7b4f1d9bc --- /dev/null +++ b/src/com/engine/salary/service/SettingService.java @@ -0,0 +1,11 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; + +import java.util.Map; + +public interface SettingService { + void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); + + Map getPageListSetting(String page); +} diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java new file mode 100644 index 000000000..66b13c126 --- /dev/null +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -0,0 +1,102 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.util.StrUtil; +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.PageListSettingSaveParam; +import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.mapper.setting.PageListSettingMapper; +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.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +/** + * 薪资核算 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SettingServiceImpl extends Service implements SettingService { + + private PageListSettingMapper getPageListSettingMapper() { + return MapperProxyFactory.getProxy(PageListSettingMapper.class); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.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.setUpdateTime(now); + getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); + } else { + pageListSettingPO = PageListSettingPO.builder() + .id(IdGenerator.generate()) + .page(pageListSettingSaveParam.getPage()) + .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getPageListSettingMapper().insertIgnoreNull(pageListSettingPO); + } + } + + @Override + public Map getPageListSetting(String page) { + + Map result = new HashMap(); + PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page); + if ("salary_details_report".equals(page)) { + List salaryItemList = getSalaryItemService(user).listAll(); + 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()); + result.put("setting", salaryItemList); + if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) { + result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class)); + } else { + List collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + result.put("checked", collect); + } + } + return result; + } +} diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 7f1637a5c..2f7e87d6e 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,19 +1,18 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.wrapper.SalaryCommonWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.List; @@ -52,4 +51,25 @@ public class SalaryCommonController { } + /** + * 页面模板设置 + * + * @param param + * @return + */ + @POST + @Path("/pageList/save/setting") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); + } + + @GET + @Path("/pageList/get/setting") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, page); + } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 982c1e5e9..cbeefbb42 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,10 +2,15 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; 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.Map; + public class SalaryCommonWrapper extends Service { @@ -13,6 +18,10 @@ public class SalaryCommonWrapper extends Service { return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + public Object getCacheInfo(String key) { return getSalaryCacheService(user).get(key); } @@ -20,4 +29,13 @@ public class SalaryCommonWrapper extends Service { public void removeCache(String key) { getSalaryCacheService(user).remove(key); } + + public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) { + getSettingService(user).savePageListSetting(pageListSettingSaveParam); + } + + + public Map getPageListSetting(String page) { + return getSettingService(user).getPageListSetting(page); + } } From b6c7a7f2bd9a856bbe2ab697680e0d9e52825796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:04:13 +0800 Subject: [PATCH 34/76] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=88=97?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/PageListSettingQueryParam.java | 22 +++++++++++++ .../SalaryStatisticsEmployeeServiceImpl.java | 4 ++- .../engine/salary/service/SettingService.java | 3 +- .../service/impl/SettingServiceImpl.java | 33 +++++++++++-------- .../salary/web/SalaryCommonController.java | 7 ++-- .../salary/wrapper/SalaryCommonWrapper.java | 5 +-- 6 files changed, 53 insertions(+), 21 deletions(-) create mode 100644 src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java new file mode 100644 index 000000000..0de49c816 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java @@ -0,0 +1,22 @@ +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 PageListSettingQueryParam { + + @DataCheck(require = true,message = "请选择页面") + private String page; + + private String name; +} \ 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 635134b5f..dfab42262 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; @@ -359,7 +360,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 3.获取薪资项目 - Map setting = getSettingService(user).getPageListSetting("salary_details_report"); + PageListSettingQueryParam param = PageListSettingQueryParam.builder().page("salary_details_report").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); // salaryItemList = salaryItemList.stream() diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 7b4f1d9bc..27b7e679e 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import java.util.Map; @@ -7,5 +8,5 @@ import java.util.Map; public interface SettingService { void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); - Map getPageListSetting(String page); + Map getPageListSetting(PageListSettingQueryParam param); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 66b13c126..9f52b7ea8 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; 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.po.PageListSettingPO; import com.engine.salary.mapper.setting.PageListSettingMapper; @@ -67,25 +68,29 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public Map getPageListSetting(String page) { - + public Map getPageListSetting(PageListSettingQueryParam param) { + String page = param.getPage(); Map result = new HashMap(); PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page); if ("salary_details_report".equals(page)) { List salaryItemList = getSalaryItemService(user).listAll(); 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); - } + .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); } }) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 2f7e87d6e..d28dc0d86 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,6 +1,7 @@ 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.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; @@ -65,11 +66,11 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); } - @GET + @POST @Path("/pageList/get/setting") @Produces(MediaType.APPLICATION_JSON) - public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListSettingQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, page); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index cbeefbb42..e66e09121 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,6 +2,7 @@ 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.service.SalaryCacheService; import com.engine.salary.service.SettingService; @@ -35,7 +36,7 @@ public class SalaryCommonWrapper extends Service { } - public Map getPageListSetting(String page) { - return getSettingService(user).getPageListSetting(page); + public Map getPageListSetting(PageListSettingQueryParam param) { + return getSettingService(user).getPageListSetting(param); } } From 4c4b6ab57d9ea0db10c2462b0e82cd2b5690b31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:14:14 +0800 Subject: [PATCH 35/76] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctExcelServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index aef1bb7c3..138f173c9 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; @@ -459,7 +460,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryAcctRecordPO byId = getSalaryAcctRecordService(user).getById(salaryAcctRecordPO.getId()); boolean isBackCalc = Objects.equals(byId.getBackCalcStatus(), 1); // 查询薪资账套下的薪资项目+员工信息字段 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(),salaryAcctRecordPO.getSalarySobId(), isBackCalc); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(), salaryAcctRecordPO.getSalarySobId(), isBackCalc); // 构建薪资核算结果列表表头 List columnList = SalaryAcctResultBO.buildTableColumns(salarySobItemAggregateDTO, ListUtils.emptyIfNull(salaryAcctRecordPO.getLockSalaryItemIds())); // 获取固定列头数 @@ -595,7 +596,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); - checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); } return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build(); } @@ -891,7 +892,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // headerList.add("手机号"); // headerList.add("工号"); // 查询薪资账套下的薪资项目 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(),true); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(), true); // // 员工信息 // for (SalarySobEmpFieldDTO item : salarySobItemAggregateDTO.getEmpFields()) { @@ -1169,7 +1170,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc //salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j); } else { //筛选导入人员信息可以在人力资源池中匹配到的人员信息 - List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode,idNo, null); + List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode, idNo, null); if (CollectionUtils.isEmpty(employeeSameIds)) { isError = true; From 3a224170f15caeefa130bb1dc128b3662e50947c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:17:07 +0800 Subject: [PATCH 36/76] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 138f173c9..75b63245c 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -680,7 +680,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); - checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); } // 必须选择导入模板所需的薪资项目 From a0bc3b545278b034e5f94dbf9041b4f6f4bd9666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:32:02 +0800 Subject: [PATCH 37/76] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctExcelServiceImpl.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 75b63245c..c7f3be70b 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -71,6 +71,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; +import org.springframework.util.StopWatch; import weaver.file.ImageFileManager; import weaver.hrm.User; @@ -1036,6 +1037,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } private Map batchImport(SalaryAcctImportParam param, String importType) { + StopWatch stopWatch = new StopWatch("导入核算数据"); + stopWatch.start("数据准备"); Map apidatas = new HashMap(); ValidUtil.doValidator(param); Date now = new Date(); @@ -1053,27 +1056,38 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } + stopWatch.stop(); // 薪资账套下的薪资项目副本 + stopWatch.start("薪资账套下的薪资项目副本"); List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); // 薪资项目 Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getName, SalaryItemPO::getId); + stopWatch.stop(); // 薪资核算确认的人员 + stopWatch.start("薪资核算确认的人员"); List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordId); Map salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployees, e -> e.getEmployeeId() + "-" + e.getTaxAgentId()); + stopWatch.stop(); // 租户下所有的人员 + stopWatch.start("薪资核算确认的人员"); List salaryEmployees = getSalaryEmployeeService(user).listAllForReport(); Map salaryEmployeeMap = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getUsername, DataCollectionEmployee::getEmployeeId); Map emps = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getEmployeeId); + stopWatch.stop(); // 租户下所有的个税扣缴义务人 + stopWatch.start("租户下所有的个税扣缴义务人"); List taxAgents = getTaxAgentService(user).listAll(); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getName, TaxAgentPO::getId); + stopWatch.stop(); // 薪资核算人员信息字段 + stopWatch.start("薪资核算人员信息字段"); List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List salarySobEmpFields = SalaryEntityUtil.properties(new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS), SalarySobEmpFieldDTO::getFieldName, Collectors.toList()); List excludeFields = Arrays.asList("个税扣缴义务人", "部门", "姓名"); salarySobEmpFields = salarySobEmpFields.stream().filter(field -> !excludeFields.contains(field)).collect(Collectors.toList()); + stopWatch.stop(); // 索引(用于计算进度) int index = 0; // 失败的数量 @@ -1103,10 +1117,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); - + stopWatch.start("解析文件"); Workbook workbook = ExcelSupport.parseFile(fileInputStream, EXCEL_TYPE_XLSX); Sheet sheet = workbook.getSheetAt(0); - + stopWatch.stop(); // 错误提示信息 List excelComments = Lists.newArrayList(); @@ -1136,6 +1150,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (CollectionUtils.isEmpty(data)) { throw new RuntimeException("无数据"); } + stopWatch.start("解析数据"); for (int i = 0; i < data.size(); i++) { String row = "第" + (i + 3) + "行"; @@ -1365,10 +1380,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } successCount++; } + stopWatch.stop(); // 如果sheet包含错误数据 // if (CollectionUtils.isNotEmpty(errorDatas)) { // salaryBatchService.createErrorExcelSheet(headers, errorDatas, excelSheet.getName(), excelComments, errorExcelSheets); // } + stopWatch.start("插入数据"); if (StringUtils.equals("importExcelAcctResult", importType)) { getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); if (CollectionUtils.isNotEmpty(excelAcctResults)) { @@ -1421,6 +1438,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc getSalaryAcctEmployeeService(user).batchSave(newSalaryAcctEmployees); } } + stopWatch.stop(); + stopWatch.start("锁定数据"); SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); if (autoLock != null && StringUtils.equals(autoLock.getConfValue(), "1")) { // 导入的列都自动锁定 @@ -1430,6 +1449,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc .lockStatus(LockStatusEnum.LOCK).build(); getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); } + stopWatch.stop(); + log.info(stopWatch.prettyPrint()); apidatas.put("successCount", successCount); apidatas.put("errorCount", failCount); From 265ca2a54ec063a0d8e2b383ed865522d3f455cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 18:02:52 +0800 Subject: [PATCH 38/76] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E6=89=80=E6=9C=89=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsEmployeeServiceImpl.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 5728f0886..93a369d7a 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -345,18 +345,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List salaryAcctEmployeeList) { - if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { - return SalaryStatisticsEmployeeDetailResultDTO.builder() - .salaryAcctEmployeeList(Collections.emptyList()) - .salaryAcctResultValueList(Collections.emptyList()) - .salaryItemList(Collections.emptyList()) - .build(); - } - - // 获取核算结果数据 - List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - // 3.获取薪资项目 List salaryItemList = getSalaryItemService(user).listAll(); salaryItemList = salaryItemList.stream() @@ -376,6 +364,20 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala }) .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { + return SalaryStatisticsEmployeeDetailResultDTO.builder() + .salaryAcctEmployeeList(Collections.emptyList()) + .salaryAcctResultValueList(Collections.emptyList()) + .salaryItemList(salaryItemList) + .build(); + } + + // 获取核算结果数据 + List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + + return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) .salaryAcctResultValueList(salaryAcctResultValues) From c2093995667f984321380480daad9041a935c671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sat, 12 Oct 2024 09:38:08 +0800 Subject: [PATCH 39/76] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BB=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/setting/PageListSettingMapper.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml index df06cf162..644707567 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -58,6 +58,9 @@ AND delete_type = #{deleteType} + + AND id = #{id} + AND page = #{page} @@ -94,6 +97,9 @@ delete_type, + + id, + page, @@ -117,6 +123,9 @@ #{deleteType}, + + #{id}, + #{page}, From 49cbb7a7cc91c88d1a4d284c3bacfe105d31d3e1 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 14 Oct 2024 10:38:30 +0800 Subject: [PATCH 40/76] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E9=85=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../po/VariableArchiveItemPO.java | 2 + .../service/VariableArchiveService.java | 2 + .../impl/VariableArchiveItemServiceImpl.java | 6 ++- .../impl/VariableArchiveServiceImpl.java | 40 +++++++++++++++++-- .../salary/web/VariableArchiveController.java | 16 ++++++++ .../wrapper/VariableArchiveWrapper.java | 4 ++ 6 files changed, 66 insertions(+), 4 deletions(-) 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/service/VariableArchiveService.java b/src/com/engine/salary/service/VariableArchiveService.java index f82fcc031..4579eba6a 100644 --- a/src/com/engine/salary/service/VariableArchiveService.java +++ b/src/com/engine/salary/service/VariableArchiveService.java @@ -70,4 +70,6 @@ public interface VariableArchiveService { void deleteSelectVariableArchive(Collection deleteIds); List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId); + + void updateData(VariableArchiveSaveParam updateParam); } diff --git a/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java index bdba34b1a..7e5cacec5 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; import com.engine.core.impl.Service; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.mapper.datacollection.VariableArchiveItemMapper; import com.engine.salary.service.VariableArchiveItemService; @@ -18,6 +19,7 @@ import java.util.List; * @description 浮动薪酬档案明细 */ public class VariableArchiveItemServiceImpl extends Service implements VariableArchiveItemService { + private EncryptUtil encryptUtil = new EncryptUtil(); private VariableArchiveItemMapper getVariableArchiveItemMapper(){ return MapperProxyFactory.getProxy(VariableArchiveItemMapper.class); @@ -34,7 +36,8 @@ public class VariableArchiveItemServiceImpl extends Service implements VariableA if (CollectionUtils.isEmpty(variableArchiveIds)) { return Collections.emptyList(); } - return getVariableArchiveItemMapper().listSome(VariableArchiveItemPO.builder().variableArchiveIds(variableArchiveIds).build()); + List variableArchiveItemPOS = getVariableArchiveItemMapper().listSome(VariableArchiveItemPO.builder().variableArchiveIds(variableArchiveIds).build()); + return encryptUtil.decryptList(variableArchiveItemPOS, VariableArchiveItemPO.class); } /** @@ -52,6 +55,7 @@ public class VariableArchiveItemServiceImpl extends Service implements VariableA if (CollectionUtils.isEmpty(insertList)) { return 0; } + encryptUtil.encryptList(insertList, VariableArchiveItemPO.class); List> partition = Lists.partition(insertList, 50); partition.forEach(part -> getVariableArchiveItemMapper().batchInsert(part)); return 0; diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index b008273c6..6faa540bb 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -151,9 +151,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi */ @Override public List> buildVariableArchiveData(Collection variableArchives) { - if (CollectionUtils.isEmpty(variableArchives)) { - // 无数据 - } List variableArchiveIds = variableArchives.stream().map(VariableArchiveListDTO::getId).collect(Collectors.toList()); // 获取浮动薪资档案所对应的浮动薪资项目数据 List variableArchiveItemList = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds); @@ -599,4 +596,41 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List variableArchiveListDTO = list(queryParam); return buildVariableArchiveData(variableArchiveListDTO); } + + @Override + public void updateData(VariableArchiveSaveParam updateParam) { + if (updateParam.getId() == null) { + throw new SalaryRunTimeException("参数错误"); + } + // 获取浮动薪酬档案 + VariableArchivePO variableArchivePO = getVariableArchiveMapper().getById(updateParam.getId()); + if (variableArchivePO == null) { + throw new SalaryRunTimeException("浮动薪酬档案不存在或已被删除"); + } + + // 删除原有的浮动薪酬档案明细 + getVariableArchiveItemService(user).deleteByArchiveIds(Collections.singletonList(updateParam.getId())); + + // 保存浮动薪资档案详细信息 + List variableArchiveItemList = new ArrayList<>(); + Date now = new Date(); + updateParam.getItemValueList().forEach(e -> { + variableArchiveItemList.add(VariableArchiveItemPO.builder() + .id(IdGenerator.generate()) + .employeeId(updateParam.getEmployeeId()) + .variableArchiveId(variableArchivePO.getId()) + .variableItemId(e.getVariableItemId()) + .itemValue(e.getItemValue()) + .creator(Long.valueOf(user.getUID())) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + }); + + if (CollectionUtils.isNotEmpty(variableArchiveItemList)) { + getVariableArchiveItemService(user).batchInsert(variableArchiveItemList); + } + } } diff --git a/src/com/engine/salary/web/VariableArchiveController.java b/src/com/engine/salary/web/VariableArchiveController.java index c0eb2de43..1afce5c88 100644 --- a/src/com/engine/salary/web/VariableArchiveController.java +++ b/src/com/engine/salary/web/VariableArchiveController.java @@ -114,6 +114,22 @@ public class VariableArchiveController { return new ResponseResult(user).run(getVariableArchiveWrapper(user)::createData, saveParam); } + /** + * 编辑浮动薪酬档案 + * + * @param request + * @param response + * @param updateParam + * @return + */ + @POST + @Path("/updateData") + @Produces(MediaType.APPLICATION_JSON) + public String updateData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveSaveParam updateParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::updateData, updateParam); + } + @GET @Path("/downloadTemplate") diff --git a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java index b26df0cba..a1a1bcb54 100644 --- a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java @@ -123,4 +123,8 @@ public class VariableArchiveWrapper extends Service { public void deleteSelectVariableArchive(Collection deleteIds) { getVariableArchiveService(user).deleteSelectVariableArchive(deleteIds); } + + public void updateData(VariableArchiveSaveParam updateParam) { + getVariableArchiveService(user).updateData(updateParam); + } } From 3ac5da2b314785e83c63307deaa174426f3a3859 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 14 Oct 2024 14:34:46 +0800 Subject: [PATCH 41/76] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6sqlse?= =?UTF-8?q?rver=202100bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 2 +- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 46abbf098..9b2bbb180 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -517,7 +517,7 @@ public class SIAccountBiz extends Service { //临时表数据入库 if (CollectionUtils.isNotEmpty(list)) { encryptUtil.encryptList(list, InsuranceAccountDetailTempPO.class); - List> lists = splitList(list, 40); + List> lists = splitList(list, 20); lists.forEach(subList -> { getSIAccountDetailTempMapper().batchSaveAccountTempDetails(subList); }); diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 8ef9cf75d..fb49c291a 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -5129,7 +5129,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //临时表数据入库 if (CollectionUtils.isNotEmpty(list)) { encryptUtil.encryptList(list, InsuranceAccountDetailTempPO.class); - List> lists = splitList(list, 40); + List> lists = splitList(list, 20); lists.forEach(subList -> { getSIAccountDetailTempMapper().batchSaveAccountTempDetails(subList); }); From dbd1b574e00e644bc83ab681bd29f5a6f340ae80 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 14 Oct 2024 15:05:22 +0800 Subject: [PATCH 42/76] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E9=85=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/VariableArchiveService.java | 2 +- .../impl/VariableArchiveServiceImpl.java | 2 +- .../salary/web/VariableArchiveController.java | 23 +++++-------------- .../wrapper/VariableArchiveWrapper.java | 2 +- 4 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/com/engine/salary/service/VariableArchiveService.java b/src/com/engine/salary/service/VariableArchiveService.java index 4579eba6a..280a4064d 100644 --- a/src/com/engine/salary/service/VariableArchiveService.java +++ b/src/com/engine/salary/service/VariableArchiveService.java @@ -40,7 +40,7 @@ public interface VariableArchiveService { * @param variableArchives * @return */ - List> buildVariableArchiveData(Collection variableArchives); + List> buildVariableArchiveData(List variableArchives); /** * 创建浮动薪酬档案 diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 6faa540bb..389c08788 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -150,7 +150,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi * @return */ @Override - public List> buildVariableArchiveData(Collection variableArchives) { + public List> buildVariableArchiveData(List variableArchives) { List variableArchiveIds = variableArchives.stream().map(VariableArchiveListDTO::getId).collect(Collectors.toList()); // 获取浮动薪资档案所对应的浮动薪资项目数据 List variableArchiveItemList = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds); diff --git a/src/com/engine/salary/web/VariableArchiveController.java b/src/com/engine/salary/web/VariableArchiveController.java index 1afce5c88..f179c9683 100644 --- a/src/com/engine/salary/web/VariableArchiveController.java +++ b/src/com/engine/salary/web/VariableArchiveController.java @@ -111,23 +111,12 @@ public class VariableArchiveController { @Produces(MediaType.APPLICATION_JSON) public String createData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getVariableArchiveWrapper(user)::createData, saveParam); - } - - /** - * 编辑浮动薪酬档案 - * - * @param request - * @param response - * @param updateParam - * @return - */ - @POST - @Path("/updateData") - @Produces(MediaType.APPLICATION_JSON) - public String updateData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveSaveParam updateParam) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getVariableArchiveWrapper(user)::updateData, updateParam); + if (saveParam.getId() == null) { + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::createData, saveParam); + } else { + // 更新 + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::updateData, saveParam); + } } diff --git a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java index a1a1bcb54..61f9dcc86 100644 --- a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java @@ -52,7 +52,7 @@ public class VariableArchiveWrapper extends Service { //薪资档案列表 PageInfo pageInfo = getVariableArchiveService(user).listPage(queryParam); - Collection salaryArchives = pageInfo.getList(); + List salaryArchives = pageInfo.getList(); // 获取所有浮动薪酬项目 List variableItems = getVariableItemService(user).listAll(); From 6ec7210720582d3a58be522ea557f7e8a0d1fe54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 15 Oct 2024 14:40:04 +0800 Subject: [PATCH 43/76] =?UTF-8?q?=E9=99=A4=E5=8E=BB=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index c7f3be70b..7b0d21ffe 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1139,7 +1139,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // List> data = ExcelParseHelper.parse2Map(sheet, 1); List> data; // if (StringUtils.equals("importSalaryAcctResult", importType)) { - data = ExcelParseHelper.parse2Map(workbook, 0, 2, 1); + data = ExcelParseHelper.parse2Map(sheet, 2, 1); // } else { // data = ExcelParseHelper.parse2Map(sheet, 1); // } From 5f50c26640f17a8951570da9d0909f2ba55fa97f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 16 Oct 2024 09:30:10 +0800 Subject: [PATCH 44/76] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E5=AF=BC=E5=85=A5vlookup=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 75b63245c..1dd3fbdc5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1125,7 +1125,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // List> data = ExcelParseHelper.parse2Map(sheet, 1); List> data; // if (StringUtils.equals("importSalaryAcctResult", importType)) { - data = ExcelParseHelper.parse2Map(workbook, 0, 2, 1); + data = ExcelParseHelper.parse2Map(sheet, 2, 1); // } else { // data = ExcelParseHelper.parse2Map(sheet, 1); // } From e8559e1afa5c328dfb88edd56f9266fabf86a732 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 16 Oct 2024 09:41:55 +0800 Subject: [PATCH 45/76] =?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=AF=BC=E5=85=A5=E6=8A=A5=E6=97=A0=E4=BA=BA?= =?UTF-8?q?=E5=91=98=20=EF=BC=88=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=85=BC=E5=AE=B9bug=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml | 2 +- src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml | 2 +- src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 ='') diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 8886cfa6f..5ee5edea8 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -1192,9 +1192,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary // List accountDetailPOList = data.getList().stream().filter(po -> pageEmployeeIds.contains(po.getEmployeeId())).collect(Collectors.toList()); List> records = new ArrayList<>(); List accountDetailPOList = data.getList(); - Map> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); - Map> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); - Map> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); + Map> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); + Map> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); + Map> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); List empIds = accountDetailPOList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()); Map employeeByIdMap = getSalaryEmployeeService(user).getEmployeeByIdsAll(empIds).stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, o -> o)); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index ee0ddc70a..90391abd4 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -612,7 +612,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public List listBySalaryStatisticsReportParam(SalaryStatisticsReportDataQueryParam param) { - SalaryAcctEmployeePO lambdaQueryChainWrapper = SalaryAcctEmployeePO.builder().build(); + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + SalaryAcctEmployeeQueryParam lambdaQueryChainWrapper = new SalaryAcctEmployeeQueryParam(); + lambdaQueryChainWrapper.setOrderRule(orderRule); // 个税扣缴义务人 // Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); @@ -681,12 +684,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) { //分片查询 List> partition = Lists.partition(salaryAcctRecordIds, 500); - List empList = new ArrayList<>(); - partition.forEach(part -> { - lambdaQueryChainWrapper.setSalaryAcctRecordIds(salaryAcctRecordIds); - empList.addAll(getSalaryAcctEmployeeMapper().listSome(lambdaQueryChainWrapper)); - }); - list = empList; + for (List part : partition) { + lambdaQueryChainWrapper.setSalaryAcctRecordIds(part); + List pos = getSalaryAcctEmployeeMapper().list(lambdaQueryChainWrapper); + list.addAll(pos); + } } if (CollectionUtils.isEmpty(list)) { From 455550836e60fc88cf03abfd6ac6d0797003f899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 28 Oct 2024 15:46:29 +0800 Subject: [PATCH 68/76] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=BF=87=E5=A4=9A=EF=BC=8C=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctSobConfigServiceImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java index 61d79ab9e..8eba89c7a 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java @@ -172,7 +172,7 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc } @Override - public void updateBySalaryAcctRecordId(Long salaryAcctRecordId) { + public void updateBySalaryAcctRecordId(Long salaryAcctRecordId) { SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); if (salaryAcctRecord == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156474, "参数错误,薪资核算记录不存在或已被删除")); @@ -185,10 +185,12 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc } getSalaryCacheService(user).set(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId, "TRUE"); - deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); - - getSalaryCacheService(user).set(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId, "FALSE"); + try { + deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); + getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); + } finally { + getSalaryCacheService(user).set(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId, "FALSE"); + } } @Override From d21258596a720edb1b0cfe7a1de30d9e0839b901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 30 Oct 2024 17:10:32 +0800 Subject: [PATCH 69/76] =?UTF-8?q?=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E6=96=B0=E5=8A=A0=E5=85=A5=E4=BA=BA=E5=91=98=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E4=BF=AE=E6=94=B9=E5=8E=86=E5=8F=B2=E6=A1=A3?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryarchive/bo/SalaryArchiveBO.java | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index fabbfd1b0..2855c40d6 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -12,13 +12,12 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; -import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.taxagent.TaxAgentEmpChangeTypeEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.google.common.collect.Lists; import com.engine.salary.util.db.IdGenerator; +import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -285,40 +284,42 @@ public class SalaryArchiveBO { // 如果是新增 说明:如果没有档案,则新增,如果有档案而且是停薪,就挪到待定薪中,以个税扣缴义务人和人员id判断唯一 if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.ADD.getValue()) { if (salaryArchive != null) { - // 停薪中跳回待定薪:从a调动到b又调动到a,或者是删除待办后再覆盖 - if (stopStatus.contains(salaryArchive.getRunStatus())) { - // 跳回待定薪 - salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); - if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { - salaryArchive.setPayStartDate(today); - salaryArchive.setPayEndDate(null); - } - salaryArchiveUpdateTodoList.add(salaryArchive); - // 待停薪到停薪的就要复制最新的薪资项目 - if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { - // 拷贝最新的薪资项目数据 - List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(salaryArchive.getId())).collect(Collectors.toList()); - salaryArchiveItemValuelList.forEach(i -> { - salaryArchiveItemAddTodos.add(SalaryArchiveItemPO.builder() - .id(IdGenerator.generate()) - .salaryArchiveId(salaryArchive.getId()) - .employeeId(salaryArchive.getEmployeeId()) - .effectiveTime(today) - .adjustReason(SalaryArchiveItemAdjustReasonEnum.INIT.getValue()) - .salaryItemId(i.getSalaryItemId()) - .itemValue(i.getItemValue()) - .description("") - // 不用设置操作人 - .operateTime(now) - .createTime(now) - .updateTime(now) - .creator(currentEmployeeId) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()); - }); - } - } + //存在历史档案不做处理 + +// // 停薪中跳回待定薪:从a调动到b又调动到a,或者是删除待办后再覆盖 +// if (stopStatus.contains(salaryArchive.getRunStatus())) { +// // 跳回待定薪 +// salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// salaryArchive.setPayStartDate(today); +// salaryArchive.setPayEndDate(null); +// } +// salaryArchiveUpdateTodoList.add(salaryArchive); +// // 待停薪到停薪的就要复制最新的薪资项目 +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// // 拷贝最新的薪资项目数据 +// List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(salaryArchive.getId())).collect(Collectors.toList()); +// salaryArchiveItemValuelList.forEach(i -> { +// salaryArchiveItemAddTodos.add(SalaryArchiveItemPO.builder() +// .id(IdGenerator.generate()) +// .salaryArchiveId(salaryArchive.getId()) +// .employeeId(salaryArchive.getEmployeeId()) +// .effectiveTime(today) +// .adjustReason(SalaryArchiveItemAdjustReasonEnum.INIT.getValue()) +// .salaryItemId(i.getSalaryItemId()) +// .itemValue(i.getItemValue()) +// .description("") +// // 不用设置操作人 +// .operateTime(now) +// .createTime(now) +// .updateTime(now) +// .creator(currentEmployeeId) +// .deleteType(NumberUtils.INTEGER_ZERO) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build()); +// }); +// } +// } } else { salaryArchiveAddTodoList.add(SalaryArchivePO.builder() .id(IdGenerator.generate()) From ad48063ca99698d59d4d17df5c9f3d3486df58ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 31 Oct 2024 16:56:32 +0800 Subject: [PATCH 70/76] =?UTF-8?q?=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E5=92=8C=E8=B4=A6=E5=A5=97=E7=9A=84=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E6=94=AF=E6=8C=81=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/人员生成不了档案.sql | 6 +- .../param/SalarySobRangeSaveParam.java | 4 + .../param/TaxAgentManageRangeSaveParam.java | 2 + .../salary/service/SalarySobRangeService.java | 1 + .../service/TaxAgentManageRangeService.java | 2 +- .../impl/SalarySobRangeServiceImpl.java | 40 +++++- .../impl/TaxAgentManageRangeServiceImpl.java | 136 +++++++++++++----- .../salary/web/SalarySobController.java | 11 ++ .../engine/salary/web/TaxAgentController.java | 8 ++ .../salary/wrapper/SalarySobRangeWrapper.java | 30 ++++ .../salary/wrapper/TaxAgentWrapper.java | 34 +++++ 11 files changed, 238 insertions(+), 36 deletions(-) diff --git a/resource/wiki/人员生成不了档案.sql b/resource/wiki/人员生成不了档案.sql index 75b03ff39..7060a660e 100644 --- a/resource/wiki/人员生成不了档案.sql +++ b/resource/wiki/人员生成不了档案.sql @@ -1,5 +1,9 @@ select id from hrsa_tax_agent_emp -where tax_agent_id =扣缴义务人id and delete_type = 0 and employee_id not in (select employee_id from hrsa_salary_archive where tax_agent_id =扣缴义务人id and delete_type = 0) +where tax_agent_id =扣缴义务人id +and delete_type = 0 +and employee_id not in +(select employee_id from hrsa_salary_archive +where tax_agent_id =扣缴义务人id and delete_type = 0) update hrsa_tax_agent_emp set delete_type = 3 diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java index a1a33e2f4..aadd43306 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java @@ -4,6 +4,7 @@ import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidTypeEnum; import lombok.Data; @@ -22,6 +23,9 @@ import java.util.List; //薪资账套人员范围保存参数") public class SalarySobRangeSaveParam { + @DataCheck(require = true, message = "ID不允许为空",runtime = {RuntimeTypeEnum.UPDATE}) + private Long id; + //薪资账套的id @DataCheck(require = true, message = "薪资账套的ID不允许为空") @ElogTransform( name = "薪资账套id" ) diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java index 2a8ff4587..2f4c4f749 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java @@ -20,6 +20,8 @@ import java.util.List; @Data public class TaxAgentManageRangeSaveParam { + private Long id; + /** * 只能选择 关联人员范围/从范围中排除 */ diff --git a/src/com/engine/salary/service/SalarySobRangeService.java b/src/com/engine/salary/service/SalarySobRangeService.java index 3bfb8172a..bf1f2848e 100644 --- a/src/com/engine/salary/service/SalarySobRangeService.java +++ b/src/com/engine/salary/service/SalarySobRangeService.java @@ -62,6 +62,7 @@ public interface SalarySobRangeService { * @param saveParam 保存参数 */ void save(SalarySobRangeSaveParam saveParam); + void edit(SalarySobRangeSaveParam param); /** * 根据主键id删除薪资账套的人员范围 diff --git a/src/com/engine/salary/service/TaxAgentManageRangeService.java b/src/com/engine/salary/service/TaxAgentManageRangeService.java index 00cc7eb76..0de8a4562 100644 --- a/src/com/engine/salary/service/TaxAgentManageRangeService.java +++ b/src/com/engine/salary/service/TaxAgentManageRangeService.java @@ -52,7 +52,7 @@ public interface TaxAgentManageRangeService { * @param saveParam 保存参数 */ void save(TaxAgentRangeSaveParam saveParam); - + void edit(TaxAgentRangeSaveParam param); /** * 根据主键id删除管理范围 diff --git a/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java index 0a4b06cb4..185964526 100644 --- a/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java @@ -4,10 +4,10 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrm.biz.OrganizationShowSetBiz; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.biz.SalarySobRangeBiz; import com.engine.salary.biz.SpecialAddDeductionBiz; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.PositionInfo; @@ -41,6 +41,7 @@ import com.engine.salary.util.excel.ExcelParseHelper; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -198,6 +199,43 @@ public class SalarySobRangeServiceImpl extends Service implements SalarySobRange SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); } + @Override + public void edit(SalarySobRangeSaveParam param) { + ValidUtil.doValidator(param, RuntimeTypeEnum.UPDATE); + + // 查询薪资账套 + SalarySobPO salarySobPO = getSalarySobService(user).getById(param.getSalarySobId()); + if (Objects.isNull(salarySobPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); + } + + deleteByIds(Collections.singleton(param.getId())); + + // 查询已有的人员范围 + List salarySobRangePOS = listBySalarySobIdAndIncludeType(param.getSalarySobId(), param.getIncludeType()); + // 处理一下本次的保存参数(如果原来添加过对应的人员(/部门/岗位),那么本次不需要新增,只需要更新) + SalarySobRangeSaveBO.Result result = SalarySobRangeSaveBO.handle(salarySobRangePOS, param, (long) user.getUID(), false); + // 保存 + if (CollectionUtils.isNotEmpty(result.getNeedInsertSalarySobRanges())) { + salarySobRangeBiz.batchInsert(result.getNeedInsertSalarySobRanges()); + } + if (CollectionUtils.isNotEmpty(result.getNeedUpdateSalarySobRanges())) { + result.getNeedUpdateSalarySobRanges().forEach(e -> salarySobRangeBiz.updateById(e)); + } + //记录日志 + String operateTypeName = Objects.equals(param.getIncludeType(), 1) ? + SalaryI18nUtil.getI18nLabel(0, "关联人员范围新增对象") : SalaryI18nUtil.getI18nLabel(0, "从范围中排除新增对象"); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId("" + salarySobPO.getId()); + loggerContext.setTargetName(salarySobPO.getName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(operateTypeName); + loggerContext.setOperatedesc(operateTypeName); + loggerContext.setNewValues(param); + SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); + } + @Override public void deleteByIds(Collection ids) { // 查询薪资账套的人员范围 diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index b21ece557..a466622b5 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -338,39 +338,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM @Override public void save(TaxAgentRangeSaveParam saveParam) { - if (saveParam == null) { - throw new SalaryRunTimeException("参数错误"); - } - - if (Objects.isNull(saveParam.getTaxAgentId())) { - throw new SalaryRunTimeException("个税扣缴义务人的id不允许为空"); - } - - if (saveParam.getIncludeType() != 0 && saveParam.getIncludeType() != 1) { - throw new SalaryRunTimeException("只能选择 关联人员范围/从范围中排除"); - } - - if (CollectionUtils.isEmpty(saveParam.getEmployeeStatus())) { - throw new SalaryRunTimeException("员工状态不允许为空"); - } - - if (CollectionUtils.isNotEmpty(saveParam.getTargetParams())) { - saveParam.getTargetParams().forEach(target -> { - if (target.getTargetType() == null) { - throw new SalaryRunTimeException("对象类型不能为空"); - } - if (target.getTargetType() == TargetTypeEnum.SQL) { - if (target.getTarget() == null) { - throw new SalaryRunTimeException("sql不能为空"); - } - target.setTargetId(0L); - } else { - if (target.getTargetId() == null) { - throw new SalaryRunTimeException("对象不能为空"); - } - } - }); - } + checkParam(saveParam); // 查询个税扣缴义务人 TaxAgentPO taxAgent = getTaxAgentService(user).getById(saveParam.getTaxAgentId()); @@ -427,6 +395,108 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } + private void checkParam(TaxAgentRangeSaveParam saveParam) { + if (saveParam == null) { + throw new SalaryRunTimeException("参数错误"); + } + + if (Objects.isNull(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException("个税扣缴义务人的id不允许为空"); + } + + if (saveParam.getIncludeType() != 0 && saveParam.getIncludeType() != 1) { + throw new SalaryRunTimeException("只能选择 关联人员范围/从范围中排除"); + } + + if (CollectionUtils.isEmpty(saveParam.getEmployeeStatus())) { + throw new SalaryRunTimeException("员工状态不允许为空"); + } + + if (CollectionUtils.isNotEmpty(saveParam.getTargetParams())) { + saveParam.getTargetParams().forEach(target -> { + if (target.getTargetType() == null) { + throw new SalaryRunTimeException("对象类型不能为空"); + } + if (target.getTargetType() == TargetTypeEnum.SQL) { + if (target.getTarget() == null) { + throw new SalaryRunTimeException("sql不能为空"); + } + target.setTargetId(0L); + } else { + if (target.getTargetId() == null) { + throw new SalaryRunTimeException("对象不能为空"); + } + } + }); + } + } + + @Override + public void edit(TaxAgentRangeSaveParam param) { + checkParam(param); + + if (param.getId() == null) { + throw new SalaryRunTimeException("id不能为空"); + } + + // 查询个税扣缴义务人 + TaxAgentPO taxAgent = getTaxAgentService(user).getById(param.getTaxAgentId()); + if (Objects.isNull(taxAgent)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(108605, "参数错误,个税扣缴义务人不存在或不在权限范围内")); + } + + //删除原有的管理范围 + getTaxAgentManageRangeMapper().deleteByIds(Collections.singleton(param.getId())); + + // 查询已有的管理范围 + List taxAgentManageAllRanges = listByTaxAgentId(param.getTaxAgentId()); + + List taxAgentManageRanges = taxAgentManageAllRanges.stream().filter(f -> f.getIncludeType().equals(param.getIncludeType())).collect(Collectors.toList()); + List oldManageList = new ArrayList<>(); + taxAgentManageRanges.stream().forEach(p -> { + TaxAgentManageRangePO target = new TaxAgentManageRangePO(); + BeanUtils.copyProperties(p, target); + oldManageList.add(target); + }); + // 处理一下本次的保存参数(如果原来添加过对应的人员(/部门/岗位),那么本次不需要新增,只需要更新) + TaxAgentBO.Result result = TaxAgentBO.handleTaxAgentRange(taxAgentManageRanges, param, taxAgent.getId(), (long) user.getUID(), false); + + /* 检查当前个税扣缴义务人的所有人员范围与所有分管理员的管理范围===========================start */ + List allRanges = Lists.newArrayList(taxAgentManageAllRanges); + allRanges.addAll(result.getNeedInsertTaxAgentManageRanges()); + allRanges.addAll(result.getNeedUpdateTaxAgentManageRanges()); + // 去重 + allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType()))), ArrayList::new)); + + List salaryEmployees = getSalaryEmployeeService().listAll(UseEmployeeTypeEnum.ALL); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(param.getTaxAgentId(), allRanges, salaryEmployees); + + /* 检查当前个税扣缴义务人的所有人员范围与所有分管理员的管理范围===========================end */ + if (CollectionUtils.isNotEmpty(result.getNeedInsertTaxAgentManageRanges())) { + result.getNeedInsertTaxAgentManageRanges().forEach(range -> { + getTaxAgentManageRangeMapper().insertIgnoreNull(range); + // 记录操作日志 + String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId(); + SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "新增人员范围"), SalaryI18nUtil.getI18nLabel(0, "新增人员范围") + name, range, user); + }); + + } + if (CollectionUtils.isNotEmpty(result.getNeedUpdateTaxAgentManageRanges())) { + Map oldMap = SalaryEntityUtil.convert2Map(oldManageList, TaxAgentManageRangePO::getId); + result.getNeedUpdateTaxAgentManageRanges().forEach(range -> { + getTaxAgentManageRangeMapper().updateIgnoreNull(range); + // 记录操作日志 + TaxAgentManageRangePO oldPO = oldMap.getOrDefault(range.getId(), TaxAgentManageRangePO.builder().build()); + String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId(); + SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "更新人员范围"), SalaryI18nUtil.getI18nLabel(0, "更新人员范围") + name, oldPO, range, user); + }); + + } + + /* 同步本地人员范围的关联人员=========================== */ + syncLocalEmp(param.getTaxAgentId(), allSalaryEmployees, param.isSync()); + } + private void syncLocalEmp(Long taxAgentId, List allSalaryEmployees, boolean isSync) { if (isSync) { syncLocalEmpRange(taxAgentId, allSalaryEmployees, (long) user.getUID()); diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index cfb78aefd..018541dea 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -248,6 +248,17 @@ public class SalarySobController { return new ResponseResult(user).run(getSalarySobRangeWrapper(user)::save, saveParam); } + /** + * 保存薪资账套人员范围 + */ + @POST + @Path("/range/edit") + @Produces(MediaType.APPLICATION_JSON) + public String editSalarySobRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobRangeSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySobRangeWrapper(user)::edit, saveParam); + } + /** * 删除薪资账套人员范围 */ diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 7aee3ea8b..1cdc8dd4e 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -255,6 +255,14 @@ public class TaxAgentController { return new ResponseResult(user).run(getTaxAgentWrapper(user)::saveRange, saveParam); } + //保存人员范围 + @POST + @Path("/range/edit") + @Produces(MediaType.APPLICATION_JSON) + public String editRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentRangeSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getTaxAgentWrapper(user)::editRange, param); + } //删除人员范围 diff --git a/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java b/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java index 7d201108c..1ae272efc 100644 --- a/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java @@ -104,6 +104,36 @@ public class SalarySobRangeWrapper extends Service { getSalarySobRangeService(user).save(saveParam); } + + public void edit(SalarySobRangeSaveParam param) { + Optional.ofNullable(param.getTargetParams()).orElse(new ArrayList<>()) + .forEach(targetParam -> { + if (StrUtil.isNotBlank(targetParam.getTarget())) { + targetParam.setTarget(targetParam.getTarget() + .replace("select", "select") + .replace("SELECT", "SELECT") + .replace("join", "join") + .replace("JOIN", "JOIN") + .replace("and", "and") + .replace("AND", "AND") + .replace("or", "or") + .replace("OR", "OR") + .replace("in", "in") + .replace("IN", "IN") + .replace("like", "like") + .replace("LIKE", "LIKE") + .replace("exists", "exists") + .replace("EXISTS", "EXISTS") + .replace("between", "between") + .replace("BETWEEN", "BETWEEN") + .replace("union", "union") + .replace("UNION", "UNION")); + } + }); + + getSalarySobRangeService(user).edit(param); + } + /** * 保存 * diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 213091fab..d3ae590e6 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -375,6 +375,40 @@ public class TaxAgentWrapper extends Service { } + public String editRange(TaxAgentRangeSaveParam param) { + //将select因XSS过滤造成的异常字符转换回来 + + Optional.ofNullable(param.getTargetParams()).orElse(new ArrayList<>()) + .forEach(targetParam -> { + if (StrUtil.isNotBlank(targetParam.getTarget())) { + targetParam.setTarget(targetParam.getTarget() + .replace("select", "select") + .replace("SELECT", "SELECT") + .replace("join", "join") + .replace("JOIN", "JOIN") + .replace("and", "and") + .replace("AND", "AND") + .replace("or", "or") + .replace("OR", "OR") + .replace("in", "in") + .replace("IN", "IN") + .replace("like", "like") + .replace("LIKE", "LIKE") + .replace("exists", "exists") + .replace("EXISTS", "EXISTS") + .replace("between", "between") + .replace("BETWEEN", "BETWEEN") + .replace("union", "union") + .replace("UNION", "UNION")); + } + }); + + + getTaxAgentManageRangeService(user).edit(param); + return StringUtils.EMPTY; + } + + /** * 删除管理范围 * From 391fa6ebd95969468cdd0f803ff8c4397bfb46a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 1 Nov 2024 10:04:15 +0800 Subject: [PATCH 71/76] =?UTF-8?q?=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E5=92=8C=E8=B4=A6=E5=A5=97=E7=9A=84=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=9A=84=E4=BA=BA=E5=91=98=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salarysob/bo/SalarySobRangeBO.java | 1 + .../entity/salarysob/dto/SalarySobRangeListDTO.java | 2 ++ src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java | 9 +++++++++ .../entity/taxagent/dto/TaxAgentManageRangeListDTO.java | 2 ++ 4 files changed, 14 insertions(+) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index 6b3f41896..91650430b 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -125,6 +125,7 @@ public class SalarySobRangeBO { .target(salarySobRangePO.getTarget()) .targetName(buildTargetName(salarySobRangePO, employeeComInfoMap, departmentComInfoMap, subCompanyComInfoMap, positionComInfoMap)) .employeeStatus(employeeStatusesStr) + .status(salarySobRangePO.getEmployeeStatuses()) .build(); }) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java index b5060f113..ea63898c1 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java @@ -54,4 +54,6 @@ public class SalarySobRangeListDTO { @SalaryTableColumn(text = "员工状态", width = "10%", column = "employeeStatus") @TableTitle(title = "员工状态", dataIndex = "employeeStatus", key = "employeeStatus") private String employeeStatus; + + private String status; } diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index cd1ed7b36..caf20dca6 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -301,6 +301,7 @@ public class TaxAgentBO { .target(taxAgentManageRange.getTarget()) .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap)) .employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus())) + .status(buildStatus(taxAgentManageRange.getEmployeeStatus())) .build(); }) .collect(Collectors.toList()); @@ -316,6 +317,14 @@ public class TaxAgentBO { .collect(Collectors.joining(",")); } + private static String buildStatus( String employeeStatus) { + List employeeStatusList = JsonUtil.parseList(employeeStatus, String.class); + if (CollectionUtils.isEmpty(employeeStatusList)) { + return StringUtils.EMPTY; + } + return String.join(",", employeeStatusList); + } + /** * 构建对象名 * diff --git a/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java b/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java index d87bf0a3b..db8f3411f 100644 --- a/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java +++ b/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java @@ -59,4 +59,6 @@ public class TaxAgentManageRangeListDTO { ) @TableTitle(title ="员工状态",key = "employeeStatus",dataIndex = "employeeStatus") private String employeeStatus; + + private String status; } From 7fd0f95802c0e6c70ebae4d9e94fde8db1f13b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 1 Nov 2024 14:27:47 +0800 Subject: [PATCH 72/76] =?UTF-8?q?=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E5=92=8C=E8=B4=A6=E5=A5=97=E7=9A=84=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=9A=84=E4=BA=BA=E5=91=98=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salarysob/bo/SalarySobRangeBO.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index 91650430b..ff4f3b076 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -125,7 +125,7 @@ public class SalarySobRangeBO { .target(salarySobRangePO.getTarget()) .targetName(buildTargetName(salarySobRangePO, employeeComInfoMap, departmentComInfoMap, subCompanyComInfoMap, positionComInfoMap)) .employeeStatus(employeeStatusesStr) - .status(salarySobRangePO.getEmployeeStatuses()) + .status(parseByStatuses(salarySobRangePO.getEmployeeStatuses())) .build(); }) .collect(Collectors.toList()); @@ -151,6 +151,20 @@ public class SalarySobRangeBO { return sb.toString(); } + private static String parseByStatuses(String employeeStatuses) { + String[] split = employeeStatuses.split(","); + List enumsList = Arrays.asList(split).stream().map(item -> Integer.valueOf(item)).collect(Collectors.toList()); + List salaryEmployeeStatusEnums = SalaryEmployeeStatusEnum.parseByValues(enumsList); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < salaryEmployeeStatusEnums.size(); i++) { + sb.append(salaryEmployeeStatusEnums.get(i)); + if (i + 1 != salaryEmployeeStatusEnums.size()) { + sb.append(","); + } + } + return sb.toString(); + } + /** * 解析薪资账套人员范围中对象的名称(可能是人员名称、部门名称、岗位名称……) * From e3d5ca78f4c66877bcce997d1e9a2d13932a37f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 4 Nov 2024 10:53:21 +0800 Subject: [PATCH 73/76] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salarysob/bo/SalarySobRangeBO.java | 31 +------------------ .../salarysob/dto/SalarySobRangeListDTO.java | 2 +- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index ff4f3b076..743555800 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -57,35 +57,6 @@ public class SalarySobRangeBO { resultParams.add(queryParam); }); return resultParams; - - -// Map> rangeMap = SalaryEntityUtil.group2Map(salarySobRanges, SalarySobRangePO::getTargetType); -// List resultParams = Lists.newArrayListWithExpectedSize(rangeMap.size()); -// rangeMap.forEach((targetType, salarySobRangePOS) -> { -// List employeeStatus = salarySobRangePOS.stream() -// .map(e -> SalaryEmployeeStatusEnum.parseByValue(e.getEmployeeStatus())) -// .filter(Objects::nonNull) -// .map(e -> e.name().toLowerCase()) -// .distinct() -// .collect(Collectors.toList()); -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.ALL.name().toLowerCase())) { -// employeeStatus = Collections.emptyList(); -// } -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { -// employeeStatus = UserStatusEnum.getNormalStatus(); -// } -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { -// employeeStatus = UserStatusEnum.getUnavailableStatus(); -// } -// TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(targetType); -// SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder() -// .targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY)) -// .targetIds(SalaryEntityUtil.properties(salarySobRangePOS, SalarySobRangePO::getTargetId)) -// .employeeStatus(employeeStatus) -// .build(); -// resultParams.add(queryParam); -// }); -// return resultParams; } /** @@ -117,7 +88,7 @@ public class SalarySobRangeBO { return SalarySobRangeListDTO.builder() .id(salarySobRangePO.getId()) .salarySobId(salarySobRangePO.getSalarySobId()) - .targetType(targetTypeEnum != null ? targetTypeEnum.getValue() : -1) + .targetType(targetTypeEnum) .targetTypeName(Optional.ofNullable(targetTypeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java index ea63898c1..1d6d234dc 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java @@ -37,7 +37,7 @@ public class SalarySobRangeListDTO { * * @see TargetTypeEnum */ - private Integer targetType; + private TargetTypeEnum targetType; @SalaryTableColumn(text = "对象类型", width = "10%", column = "targetTypeName") @TableTitle(title = "对象类型", dataIndex = "targetTypeName", key = "targetTypeName") From ea06150dc53c4d82b5e546581bd323c13f4f31e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 4 Nov 2024 15:06:27 +0800 Subject: [PATCH 74/76] =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SIAccountServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index fb49c291a..cafeb921a 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -1551,11 +1551,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void socialSecurityBenefitsRecalculate(InsuranceAccountBatchPO param) { //fixme 重新核算的校验逻辑 1、先取台账对应扣缴义务人下的所有账套 2、取账套下所有核算记录 3、判断核算记录有没有使用对应月份的福利台账 // int num = getSiAccountBiz(user).checkIfBusinessaccounting(param); - int num = checkIfBusinessAccounting(param); - //表示已经被核算过不能重新核算 - if (num > 0) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "已被薪酬核算给核算过,无法重新核算!")); - } +// int num = checkIfBusinessAccounting(param); +// //表示已经被核算过不能重新核算 +// if (num > 0) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "已被薪酬核算给核算过,无法重新核算!")); +// } param.setBillStatus(0); // getSiAccountBiz(user).updateById(param); updateById(param); From 4cd0fbfe3007c46a89efd5e44d6537b96f8ec630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 4 Nov 2024 19:49:46 +0800 Subject: [PATCH 75/76] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting/dto/PageListSettingDTO.java | 4 +- .../setting/dto/PageListTemplateDTO.java | 19 +++++ .../param/PageListTemplateQueryParam.java | 22 ++++++ .../param/PageListTemplateSaveParam.java | 38 ++++++++++ .../entity/setting/po/PageListSettingPO.java | 12 ++++ .../setting/PageListSettingPageEnum.java | 39 +++++++++++ .../mapper/setting/PageListSettingMapper.java | 2 + .../mapper/setting/PageListSettingMapper.xml | 48 +++++++++++-- .../SalaryStatisticsEmployeeServiceImpl.java | 4 +- .../engine/salary/service/SettingService.java | 8 +++ .../service/impl/SettingServiceImpl.java | 70 ++++++++++++++++++- .../salary/web/SalaryCommonController.java | 40 +++++++++++ .../salary/wrapper/SalaryCommonWrapper.java | 12 ++++ 13 files changed, 309 insertions(+), 9 deletions(-) create mode 100644 src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java create mode 100644 src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java create mode 100644 src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java create mode 100644 src/com/engine/salary/enums/setting/PageListSettingPageEnum.java diff --git a/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java index afe2de81c..56648ec45 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java @@ -5,9 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -/** - * 薪资帐套表 - */ + @Data @Builder @NoArgsConstructor diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java new file mode 100644 index 000000000..15f47fa0d --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.setting.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateDTO { + + private Long id; + + private String name; + +} \ 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 new file mode 100644 index 000000000..b939ac6f1 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java @@ -0,0 +1,22 @@ +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 PageListTemplateQueryParam { + + @DataCheck(require = true,message = "请选择页面") + private String page; + + 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 new file mode 100644 index 000000000..2c5cd996c --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java @@ -0,0 +1,38 @@ +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; + +import java.util.List; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateSaveParam { + private Long id; + + /** + * 页面,0:薪资明细 + */ + @DataCheck(require = true,message = "请选择页面") + private String page; + + /** + * 模板名称 + */ + @DataCheck(require = true,message = "请选择模板名称") + private String name; + + /** + * 设置 + */ + @DataCheck(require = true,message = "请选择设置") + private List setting; +} \ 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 59b7f2ea1..ae7b83bf9 100644 --- a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -22,6 +22,18 @@ public class PageListSettingPO { @ElogTransform(name = "") private Long id; + /** + * 是否模板:0否,1是 + */ + @ElogTransform(name = "是否模板") + private Integer template; + + /** + * 模板名称 + */ + @ElogTransform(name = "模板名称") + private String name; + /** * 页面,0:薪资明细 */ diff --git a/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java b/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java new file mode 100644 index 000000000..49110ae17 --- /dev/null +++ b/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java @@ -0,0 +1,39 @@ +package com.engine.salary.enums.setting; + +import com.engine.salary.enums.BaseEnum; + +/** + * 人员类型 + */ +public enum PageListSettingPageEnum implements BaseEnum { + + SALARY_DETAILS_REPORT("salary_details_report", "薪资明细报表", 109125) + ; + + private String value; + + private String defaultLabel; + + private int labelId; + + PageListSettingPageEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public String getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java index 9c2ce51f8..5fc974dc1 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java @@ -70,4 +70,6 @@ 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 644707567..a9a656b76 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -2,14 +2,16 @@ - - - + + - + + + + @@ -21,6 +23,8 @@ , t.delete_type , t.id , t.page + , t.name + , t.template , t.setting , t.tenant_key , t.update_time @@ -64,6 +68,12 @@ AND page = #{page} + + AND name = #{name} + + + AND template = #{template} + AND setting = #{setting} @@ -103,6 +113,12 @@ page, + + name, + + + template, + setting, @@ -129,6 +145,12 @@ #{page}, + + #{name}, + + + #{template}, + #{setting}, @@ -150,6 +172,8 @@ creator=#{creator}, delete_type=#{deleteType}, page=#{page}, + name=#{name}, + template=#{template}, setting=#{setting}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -174,6 +198,12 @@ page=#{page}, + + name=#{name}, + + + template=#{template}, + setting=#{setting}, @@ -211,6 +241,16 @@ FROM hrsa_page_list_setting t WHERE delete_type = 0 + and template = 0 + and page = #{page} + + + 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 76/76] =?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);