From 92a7daa9fae0363a630b3a53b66084a27527b784 Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 10 Oct 2023 16:17:44 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E7=BC=B4=E7=BA=B3=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=8E=A5=E5=8F=A3=E6=94=B9=E4=B8=BApost=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nsuranceAcctDetailImportTemplateParam.java | 4 +- .../salary/web/SIAccountController.java | 59 +++++++++++++++---- 2 files changed, 51 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/entity/siaccount/param/InsuranceAcctDetailImportTemplateParam.java b/src/com/engine/salary/entity/siaccount/param/InsuranceAcctDetailImportTemplateParam.java index a7c1bb107..f0e92c62c 100644 --- a/src/com/engine/salary/entity/siaccount/param/InsuranceAcctDetailImportTemplateParam.java +++ b/src/com/engine/salary/entity/siaccount/param/InsuranceAcctDetailImportTemplateParam.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; import java.util.Collection; - +import java.util.List; @Getter @@ -21,7 +21,7 @@ public class InsuranceAcctDetailImportTemplateParam { * 薪资项目id(薪资项目包含了福利项) */ @DataCheck(require = true,message = "福利核算项目name不能为空") - private Collection welfareNames; + private List welfareNames; private String billMonth; diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index 448922c7d..12dbfa234 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -444,22 +444,61 @@ public class SIAccountController { return new ResponseResult>(user).run(getSalaryFormulaWrapper(user)::welfareList); } +// /** +// * 导出“福利核算导入”模板 +// */ +// @GET +// @Path("/welfare/importtemplate/export") +// @Produces(MediaType.APPLICATION_OCTET_STREAM) +// public Response exportImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { +// try { +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); +// param.setBillMonth(request.getParameter("billMonth")); +// String welfareNames = request.getParameter("welfareNames"); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } +// +// User user = HrmUserVarify.getUser(request, response); +// XSSFWorkbook workbook = getService(user).exportImportTemplate(param); +// String time = LocalDate.now().toString(); +// String fileName = "福利核算导入模板" + time; +// try { +// fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); +// } catch (UnsupportedEncodingException e) { +// e.printStackTrace(); +// } +// StreamingOutput output = outputStream -> { +// workbook.write(outputStream); +// outputStream.flush(); +// }; +// response.setContentType("application/octet-stream"); +// return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); +// } catch (Exception e) { +// log.error("福利核算导入模板导出异常", e); +// throw e; +// } +// +// } + /** * 导出“福利核算导入”模板 */ - @GET + @POST @Path("/welfare/importtemplate/export") @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response exportImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public Response exportImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceAcctDetailImportTemplateParam param) { try { - InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); - - param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); - param.setBillMonth(request.getParameter("billMonth")); - String welfareNames = request.getParameter("welfareNames"); - if (StringUtils.isNotBlank(welfareNames)) { - param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); - } +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); +// param.setBillMonth(request.getParameter("billMonth")); +// String welfareNames = request.getParameter("welfareNames"); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } User user = HrmUserVarify.getUser(request, response); XSSFWorkbook workbook = getService(user).exportImportTemplate(param); From 6ae953c723f00423f98ed1cc6038bd0af3fc87bc Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 12 Oct 2023 11:45:21 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E8=A1=A5=E7=BC=B4?= =?UTF-8?q?=E3=80=81=E8=A1=A5=E5=B7=AE=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=8E=A5=E5=8F=A3=E6=94=B9=E4=B8=BApost?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/web/SIAccountController.java | 138 ++++++++++++++---- 1 file changed, 110 insertions(+), 28 deletions(-) diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index 12dbfa234..6a27fafdf 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -544,28 +544,73 @@ public class SIAccountController { return new ResponseResult>(user).run(getService(user)::preview, insuranceAcctImportParam); } +// /** +// * 导出“福利核算-补缴导入”模板 +// */ +// @GET +// @Path("/welfare/supplyimporttemplate/export") +// @Produces(MediaType.APPLICATION_OCTET_STREAM) +// public Response exportSupplyImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { +// try { +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// String welfareNames = request.getParameter("welfareNames"); +// String billMonth = request.getParameter("billMonth"); +// Long paymentOrganization = Long.valueOf(request.getParameter("paymentOrganization")); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } +// if (StringUtils.isNotBlank(billMonth)) { +// param.setBillMonth(billMonth); +// } +// if (paymentOrganization > 0) { +// param.setPaymentOrganization(paymentOrganization); +// } +// +// User user = HrmUserVarify.getUser(request, response); +// XSSFWorkbook workbook = getService(user).exportSupplyImportTemplate(param); +// String time = LocalDate.now().toString(); +// String fileName = "福利核算-补缴导入模板" + time; +// try { +// fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); +// } catch (UnsupportedEncodingException e) { +// e.printStackTrace(); +// } +// StreamingOutput output = outputStream -> { +// workbook.write(outputStream); +// outputStream.flush(); +// }; +// response.setContentType("application/octet-stream"); +// return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); +// } catch (Exception e) { +// log.error("福利核算-补缴导入模板导出异常", e); +// throw e; +// } +// +// } + /** * 导出“福利核算-补缴导入”模板 */ - @GET + @POST @Path("/welfare/supplyimporttemplate/export") @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response exportSupplyImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public Response exportSupplyImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceAcctDetailImportTemplateParam param) { try { - InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); - - String welfareNames = request.getParameter("welfareNames"); - String billMonth = request.getParameter("billMonth"); - Long paymentOrganization = Long.valueOf(request.getParameter("paymentOrganization")); - if (StringUtils.isNotBlank(welfareNames)) { - param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); - } - if (StringUtils.isNotBlank(billMonth)) { - param.setBillMonth(billMonth); - } - if (paymentOrganization > 0) { - param.setPaymentOrganization(paymentOrganization); - } +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// String welfareNames = request.getParameter("welfareNames"); +// String billMonth = request.getParameter("billMonth"); +// Long paymentOrganization = Long.valueOf(request.getParameter("paymentOrganization")); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } +// if (StringUtils.isNotBlank(billMonth)) { +// param.setBillMonth(billMonth); +// } +// if (paymentOrganization > 0) { +// param.setPaymentOrganization(paymentOrganization); +// } User user = HrmUserVarify.getUser(request, response); XSSFWorkbook workbook = getService(user).exportSupplyImportTemplate(param); @@ -588,7 +633,6 @@ public class SIAccountController { } } - // **********************************线下对比 start*********************************/ /** * 导出“福利核算导入”模板 @@ -901,22 +945,61 @@ public class SIAccountController { return new ResponseResult>(user).run(getSalaryFormulaWrapper(user)::balanceWelfareList); } +// /** +// * 导出“福利核算-补差导入”模板 +// */ +// @GET +// @Path("/welfare/balanceimporttemplate/export") +// @Produces(MediaType.APPLICATION_OCTET_STREAM) +// public Response exportBalanceImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { +// try { +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); +// param.setBillMonth(request.getParameter("billMonth")); +// String welfareNames = request.getParameter("welfareNames"); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } +// +// User user = HrmUserVarify.getUser(request, response); +// XSSFWorkbook workbook = getService(user).exportBalanceImportTemplate(param); +// String time = LocalDate.now().toString(); +// String fileName = "福利台账-补差导入模板" + time; +// try { +// fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); +// } catch (UnsupportedEncodingException e) { +// e.printStackTrace(); +// } +// StreamingOutput output = outputStream -> { +// workbook.write(outputStream); +// outputStream.flush(); +// }; +// response.setContentType("application/octet-stream"); +// return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); +// } catch (Exception e) { +// log.error("福利台账-补差导入模板导出异常", e); +// throw e; +// } +// +// } + /** * 导出“福利核算-补差导入”模板 */ - @GET + @POST @Path("/welfare/balanceimporttemplate/export") @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response exportBalanceImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public Response exportBalanceImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceAcctDetailImportTemplateParam param) { try { - InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); - - param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); - param.setBillMonth(request.getParameter("billMonth")); - String welfareNames = request.getParameter("welfareNames"); - if (StringUtils.isNotBlank(welfareNames)) { - param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); - } +// InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam(); +// +// param.setPaymentOrganization(Long.valueOf(request.getParameter("paymentOrganization"))); +// param.setBillMonth(request.getParameter("billMonth")); +// String welfareNames = request.getParameter("welfareNames"); +// if (StringUtils.isNotBlank(welfareNames)) { +// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList())); +// } User user = HrmUserVarify.getUser(request, response); XSSFWorkbook workbook = getService(user).exportBalanceImportTemplate(param); @@ -939,7 +1022,6 @@ public class SIAccountController { } } - /** * 将通过“福利台账-补差导入”模板导入的数据更新到hrsa_bill_detail表中 */ From b4a1aa8039c453d2615e195e186637daa1576ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 16 Oct 2023 10:52:28 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=85=AC=E5=BC=8F=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202310160103.sql | 22 +++++++++++++++++++ resource/sqlupgrade/GS/sql202310160103.sql | 22 +++++++++++++++++++ resource/sqlupgrade/JC/sql202310160103.sql | 22 +++++++++++++++++++ .../sqlupgrade/Oracle/sql202310160103.sql | 21 ++++++++++++++++++ resource/sqlupgrade/ST/sql202310160103.sql | 22 +++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202310160103.sql create mode 100644 resource/sqlupgrade/GS/sql202310160103.sql create mode 100644 resource/sqlupgrade/JC/sql202310160103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202310160103.sql create mode 100644 resource/sqlupgrade/ST/sql202310160103.sql diff --git a/resource/sqlupgrade/DM/sql202310160103.sql b/resource/sqlupgrade/DM/sql202310160103.sql new file mode 100644 index 000000000..b9470a91a --- /dev/null +++ b/resource/sqlupgrade/DM/sql202310160103.sql @@ -0,0 +1,22 @@ +update hrsa_sys_salary_item set code = 'addUpHousingLoanInterest' where id = 674853617092214800; +/ + +update hrsa_salary_item set code = 'addUpHousingLoanInterest' where sys_salary_item_id = 674853617092214800; +/ + +update hrsa_salary_sob_back_item set salary_item_code = 'addUpHousingLoanInterest' where salary_item_code = 'addUpHousingLoannumbererest'; +/ + +update hrsa_formula set formulaRunScript = 'addUpSituation_addUpHousingLoanInterest' where id = 1651739100651; +/ + +update hrsa_formula set + formulaRunScript='salaryItem_addUpChildEducation+salaryItem_addUpHousingLoanInterest+salaryItem_addUpHousingRent+salaryItem_addUpContinuingEducation+salaryItem_addUpSupportElderly' where id = 1651739411365; +/ + +update hrsa_formula_var set field_id= 'addUpSituation_addUpHousingLoanInterest' where id = 1651739101122; +/ + +update hrsa_formula_var set field_id= 'salaryItem_addUpHousingLoanInterest' where id = 1651739411637; +/ + diff --git a/resource/sqlupgrade/GS/sql202310160103.sql b/resource/sqlupgrade/GS/sql202310160103.sql new file mode 100644 index 000000000..b9470a91a --- /dev/null +++ b/resource/sqlupgrade/GS/sql202310160103.sql @@ -0,0 +1,22 @@ +update hrsa_sys_salary_item set code = 'addUpHousingLoanInterest' where id = 674853617092214800; +/ + +update hrsa_salary_item set code = 'addUpHousingLoanInterest' where sys_salary_item_id = 674853617092214800; +/ + +update hrsa_salary_sob_back_item set salary_item_code = 'addUpHousingLoanInterest' where salary_item_code = 'addUpHousingLoannumbererest'; +/ + +update hrsa_formula set formulaRunScript = 'addUpSituation_addUpHousingLoanInterest' where id = 1651739100651; +/ + +update hrsa_formula set + formulaRunScript='salaryItem_addUpChildEducation+salaryItem_addUpHousingLoanInterest+salaryItem_addUpHousingRent+salaryItem_addUpContinuingEducation+salaryItem_addUpSupportElderly' where id = 1651739411365; +/ + +update hrsa_formula_var set field_id= 'addUpSituation_addUpHousingLoanInterest' where id = 1651739101122; +/ + +update hrsa_formula_var set field_id= 'salaryItem_addUpHousingLoanInterest' where id = 1651739411637; +/ + diff --git a/resource/sqlupgrade/JC/sql202310160103.sql b/resource/sqlupgrade/JC/sql202310160103.sql new file mode 100644 index 000000000..b9470a91a --- /dev/null +++ b/resource/sqlupgrade/JC/sql202310160103.sql @@ -0,0 +1,22 @@ +update hrsa_sys_salary_item set code = 'addUpHousingLoanInterest' where id = 674853617092214800; +/ + +update hrsa_salary_item set code = 'addUpHousingLoanInterest' where sys_salary_item_id = 674853617092214800; +/ + +update hrsa_salary_sob_back_item set salary_item_code = 'addUpHousingLoanInterest' where salary_item_code = 'addUpHousingLoannumbererest'; +/ + +update hrsa_formula set formulaRunScript = 'addUpSituation_addUpHousingLoanInterest' where id = 1651739100651; +/ + +update hrsa_formula set + formulaRunScript='salaryItem_addUpChildEducation+salaryItem_addUpHousingLoanInterest+salaryItem_addUpHousingRent+salaryItem_addUpContinuingEducation+salaryItem_addUpSupportElderly' where id = 1651739411365; +/ + +update hrsa_formula_var set field_id= 'addUpSituation_addUpHousingLoanInterest' where id = 1651739101122; +/ + +update hrsa_formula_var set field_id= 'salaryItem_addUpHousingLoanInterest' where id = 1651739411637; +/ + diff --git a/resource/sqlupgrade/Oracle/sql202310160103.sql b/resource/sqlupgrade/Oracle/sql202310160103.sql new file mode 100644 index 000000000..5690028c3 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202310160103.sql @@ -0,0 +1,21 @@ +update hrsa_sys_salary_item set code = 'addUpHousingLoanInterest' where id = 674853617092214800 +/ + +update hrsa_salary_item set code = 'addUpHousingLoanInterest' where sys_salary_item_id = 674853617092214800 +/ + +update hrsa_salary_sob_back_item set salary_item_code = 'addUpHousingLoanInterest' where salary_item_code = 'addUpHousingLoannumbererest' +/ + +update hrsa_formula set formulaRunScript = 'addUpSituation_addUpHousingLoanInterest' where id = 1651739100651 +/ + +update hrsa_formula set + formulaRunScript='salaryItem_addUpChildEducation+salaryItem_addUpHousingLoanInterest+salaryItem_addUpHousingRent+salaryItem_addUpContinuingEducation+salaryItem_addUpSupportElderly' where id = 1651739411365 +/ + +update hrsa_formula_var set field_id= 'addUpSituation_addUpHousingLoanInterest' where id = 1651739101122 +/ + +update hrsa_formula_var set field_id= 'salaryItem_addUpHousingLoanInterest' where id = 1651739411637 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202310160103.sql b/resource/sqlupgrade/ST/sql202310160103.sql new file mode 100644 index 000000000..b9470a91a --- /dev/null +++ b/resource/sqlupgrade/ST/sql202310160103.sql @@ -0,0 +1,22 @@ +update hrsa_sys_salary_item set code = 'addUpHousingLoanInterest' where id = 674853617092214800; +/ + +update hrsa_salary_item set code = 'addUpHousingLoanInterest' where sys_salary_item_id = 674853617092214800; +/ + +update hrsa_salary_sob_back_item set salary_item_code = 'addUpHousingLoanInterest' where salary_item_code = 'addUpHousingLoannumbererest'; +/ + +update hrsa_formula set formulaRunScript = 'addUpSituation_addUpHousingLoanInterest' where id = 1651739100651; +/ + +update hrsa_formula set + formulaRunScript='salaryItem_addUpChildEducation+salaryItem_addUpHousingLoanInterest+salaryItem_addUpHousingRent+salaryItem_addUpContinuingEducation+salaryItem_addUpSupportElderly' where id = 1651739411365; +/ + +update hrsa_formula_var set field_id= 'addUpSituation_addUpHousingLoanInterest' where id = 1651739101122; +/ + +update hrsa_formula_var set field_id= 'salaryItem_addUpHousingLoanInterest' where id = 1651739411637; +/ + From 7e22c9836f89255ed5ca1281e24d2dca0743c3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 16 Oct 2023 15:01:29 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8E=9F=E5=9B=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryarchive/SalaryArchiveItemAdjustReasonEnum.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/enums/salaryarchive/SalaryArchiveItemAdjustReasonEnum.java b/src/com/engine/salary/enums/salaryarchive/SalaryArchiveItemAdjustReasonEnum.java index 840dbbc06..373999a91 100644 --- a/src/com/engine/salary/enums/salaryarchive/SalaryArchiveItemAdjustReasonEnum.java +++ b/src/com/engine/salary/enums/salaryarchive/SalaryArchiveItemAdjustReasonEnum.java @@ -1,5 +1,6 @@ package com.engine.salary.enums.salaryarchive; +import com.engine.salary.enums.BaseEnum; import com.engine.salary.util.SalaryI18nUtil; import java.util.*; @@ -13,7 +14,7 @@ import java.util.stream.Collectors; * @author qiantao * @version 1.0 **/ -public enum SalaryArchiveItemAdjustReasonEnum { +public enum SalaryArchiveItemAdjustReasonEnum implements BaseEnum { ONBOARD("ONBOARD", "入职", 85901), PROBATION_REVIEW("PROBATION_REVIEW", "转正", 85984), @@ -43,7 +44,7 @@ public enum SalaryArchiveItemAdjustReasonEnum { return defaultLabel; } - public int getLabelId() { + public Integer getLabelId() { return labelId; } From a34a5b9aa69892fd1cbbd3959b223cb59f92bdb3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 16 Oct 2023 16:59:18 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4=E5=88=B0=E8=B4=A6?= =?UTF-8?q?=E5=A5=97=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/SalarySobService.java | 2 + .../service/impl/SalarySobServiceImpl.java | 2 +- .../timer/SyncTaxAgentEmp2SobEmpJob.java | 79 +++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index dd39fc5ee..bef31a87e 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -99,6 +99,8 @@ public interface SalarySobService { */ Long save(SalarySobBasicSaveParam saveParam); + void saveDefaultEmployeeRange(SalarySobPO salarySobPO); + /** * 编辑 * diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 0a851f5db..c221f724f 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -393,7 +393,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @author Harryxzy * @date 2022/10/9 15:30 */ - private void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { + public void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { // 获取人员范围列表 TaxAgentRangeQueryParam queryParam = TaxAgentRangeQueryParam.builder().taxAgentId(salarySobPO.getTaxAgentId()).build(); queryParam.setCurrent(1); diff --git a/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java b/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java new file mode 100644 index 000000000..5df6d7b5e --- /dev/null +++ b/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java @@ -0,0 +1,79 @@ +package com.engine.salary.timer; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.biz.SalarySobRangeBiz; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.service.SalarySobRangeService; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.impl.SalarySobRangeServiceImpl; +import com.engine.salary.service.impl.SalarySobServiceImpl; +import dm.jdbc.util.IdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 自动同步个税扣缴以为人人员范围至,账套人员范围 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class SyncTaxAgentEmp2SobEmpJob extends BaseCronJob { + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalarySobRangeService getSalarySobRangeService(User user) { + return ServiceUtil.getService(SalarySobRangeServiceImpl.class, user); + } + + private String salarySobIds; + + + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + List salarySobPOS; + if (StringUtils.isNotEmpty(salarySobIds)) { + // 只同步指定的账套 + List salarySobIdList = Arrays.asList(StringUtils.split(salarySobIds, ",")).stream().map(Long::valueOf).collect(Collectors.toList()); + salarySobPOS = getSalarySobService(user).listByIds(salarySobIdList); + } else { + salarySobPOS = getSalarySobService(user).listAll(); + } + BaseBean baseBean = new BaseBean(); + SalarySobRangeBiz salarySobRangeBiz = new SalarySobRangeBiz(); + for (SalarySobPO po : salarySobPOS) { + List salarySobRangePOS = new ArrayList<>(); + try { + baseBean.writeLog("开始同步人员范围至账套账套:{}",po.getId()); + // 保存前先删除 + salarySobRangePOS = salarySobRangeBiz.listSome(SalarySobRangePO.builder().salarySobId(po.getId()).build()); + getSalarySobRangeService(user).deleteBySalarySobIds(Collections.singletonList(po.getId())); + getSalarySobService(user).saveDefaultEmployeeRange(po); + } catch (Exception e) { + baseBean.writeLog("同步人员范围至账套账套出错:" + e.getMessage()); + salarySobRangePOS.stream().forEach(p -> p.setId(IdGenerator.generate())); + salarySobRangeBiz.batchInsert(salarySobRangePOS); + } + } + } + + +} From 5d7a6bc2416b5019b13e40fa00ed110cdc093e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 17 Oct 2023 18:04:47 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E8=B0=83=E8=96=AA=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/biz/SalaryArchiveItemBiz.java | 26 +++++++- .../SalaryItemAdjustRecordQueryParam.java | 1 + .../salaryarchive/po/SalaryArchivePO.java | 1 + .../archive/SalaryArchiveItemMapper.xml | 26 ++++---- .../mapper/archive/SalaryArchiveMapper.xml | 6 ++ .../impl/SalaryArchiveItemServiceImpl.java | 60 +++++++++++++++++-- .../engine/salary/web/SIReportController.java | 4 -- .../wrapper/SalaryArchiveItemWrapper.java | 54 ++++++++++++++--- 8 files changed, 145 insertions(+), 33 deletions(-) diff --git a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java index 5c43e7086..86351c9bc 100644 --- a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java @@ -140,7 +140,20 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - return encryptUtil.decryptList(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds), SalaryItemAdjustRecordListDTO.class); + List salaryArchiveIds = queryParam.getSalaryArchiveIds(); + if (CollectionUtils.isEmpty(salaryArchiveIds)) { + List salaryItemAdjustRecordListDTOS = mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); + return encryptUtil.decryptList(salaryItemAdjustRecordListDTOS, SalaryItemAdjustRecordListDTO.class); + } else { + List salaryItemAdjustRecordListDTOS = new ArrayList<>(); + List> salaryArchiveIdsPartition = Lists.partition(salaryArchiveIds, 500); + salaryArchiveIdsPartition.forEach(l -> { + queryParam.setSalaryArchiveIds(l); + salaryItemAdjustRecordListDTOS.addAll(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds)); + }); + return encryptUtil.decryptList(salaryItemAdjustRecordListDTOS, SalaryItemAdjustRecordListDTO.class); + } + } finally { sqlSession.close(); } @@ -161,7 +174,16 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - List salaryItemAdjustRecordListDTOS = mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); + + List salaryArchiveIds = queryParam.getSalaryArchiveIds(); + List> salaryArchiveIdsPartition = Lists.partition(salaryArchiveIds, 500); + + List salaryItemAdjustRecordListDTOS = new ArrayList<>(); + salaryArchiveIdsPartition.forEach(l -> { + queryParam.setSalaryArchiveIds(l); + salaryItemAdjustRecordListDTOS.addAll(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds)); + }); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryItemAdjustRecordListDTOS, SalaryItemAdjustRecordListDTO.class); diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryItemAdjustRecordQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryItemAdjustRecordQueryParam.java index 7afb346a0..6e2fc8415 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryItemAdjustRecordQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryItemAdjustRecordQueryParam.java @@ -30,6 +30,7 @@ public class SalaryItemAdjustRecordQueryParam extends BaseQueryParam { //薪资档案id private Long salaryArchiveId; + private List salaryArchiveIds; //关键字(姓名、部门、薪资项目名称) private String keyword; diff --git a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java index 1b44a0d7a..ec6a4ff51 100644 --- a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java +++ b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java @@ -114,6 +114,7 @@ public class SalaryArchivePO { //---------条件------- private Collection ids; + private Collection taxAgentIds; private Collection employeeIds; /** * 状态 diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml index db76c9cb2..57a607f2c 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml @@ -563,11 +563,10 @@ AND t1.salary_archive_id = #{param.salaryArchiveId} - - - AND d.id IN - - #{id} + + AND t1.salary_archive_id IN + + #{salaryArchiveId} @@ -637,7 +636,12 @@ AND t1.salary_archive_id = #{param.salaryArchiveId} - + + AND t1.salary_archive_id IN + + #{salaryArchiveId} + + AND t1.adjust_reason = #{param.adjustReason} @@ -711,11 +715,10 @@ AND t1.salary_archive_id = #{param.salaryArchiveId} - - - AND d.id IN - - #{id} + + AND t1.salary_archive_id IN + + #{salaryArchiveId} @@ -737,7 +740,6 @@ #{id} - ORDER BY t1.effective_time DESC,t1.id DESC diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index 69e5c299b..c4a8453de 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -658,6 +658,12 @@ #{id} + + AND t.tax_agent_id IN + + #{taxAgentId} + + ORDER BY t.id DESC diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 270f26294..f323b1c9d 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -6,6 +6,7 @@ import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.biz.SalaryArchiveItemBiz; import com.engine.salary.biz.SalaryItemBiz; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.*; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; @@ -13,11 +14,14 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SalaryArchiveItemService; +import com.engine.salary.service.SalaryArchiveService; +import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -62,6 +66,13 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private SalaryArchiveService getSalaryArchiveService(User user) { + return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } /** * 获取未生效 lt * @@ -617,23 +628,60 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi List salaryItemList = getCanAdjustSalaryItems(); List salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); // 获取记录 - List list = salaryArchiveItemMapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); + long currentEmployeeId = user.getUID(); + //是否开启分权 + Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); + if (needAuth) { + Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + + if (CollectionUtils.isEmpty(taxAgentIds)) { +// return new PageInfo(); + } + + List salaryArchives = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentIds(taxAgentIds).build()); + List salaryArchiveIds = SalaryEntityUtil.properties(salaryArchives, SalaryArchivePO::getId, Collectors.toList()); + queryParam.setSalaryArchiveIds(salaryArchiveIds); + } + + List employeeList = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + + List listResult = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds); + listResult = listResult.stream() + .filter(r -> { + DataCollectionEmployee employee = employeeMap.getOrDefault(r.getEmployeeId(), new DataCollectionEmployee()); + String username = queryParam.getUsername(); + List departmentIds = queryParam.getDepartmentIds(); + List positionIds = queryParam.getPositionIds(); + String userstatus = queryParam.getUserstatus(); + r.setUsername(employee.getUsername()); + r.setDepartmentName(employee.getDepartmentName()); + r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + r.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(r.getAdjustReason())); + return (StringUtils.isBlank(username) || employee.getUsername().contains(username)) + && (CollectionUtils.isEmpty(departmentIds) || departmentIds.contains(employee.getDepartmentId())) + && (CollectionUtils.isEmpty(positionIds) || positionIds.contains(employee.getJobtitleId())) + && (StringUtils.isBlank(userstatus) || Objects.equals(employee.getStatus(), userstatus)) + && (CollectionUtils.isEmpty(positionIds) || positionIds.contains(employee.getJobtitleId())) + ; + }) + .collect(Collectors.toList()); + + List listAll = salaryArchiveItemMapper.salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); // 人员信息赋值 - list.forEach(m -> { + listResult.forEach(m -> { if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) { listAll.removeIf(a -> a.getId().equals(m.getId())); } Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst(); m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); - - m.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(m.getEmployeeStatus()))); - m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); }); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List> rows = new ArrayList<>(); rows.add(headerList); - for (SalaryItemAdjustRecordListDTO dto : list) { + for (SalaryItemAdjustRecordListDTO dto : listResult) { List row = new ArrayList<>(); row.add(dto.getUsername()); row.add(dto.getEmployeeStatus()); diff --git a/src/com/engine/salary/web/SIReportController.java b/src/com/engine/salary/web/SIReportController.java index ceeb545ba..041deabfd 100644 --- a/src/com/engine/salary/web/SIReportController.java +++ b/src/com/engine/salary/web/SIReportController.java @@ -56,10 +56,6 @@ public class SIReportController { @Path("record/list") @Produces(MediaType.APPLICATION_JSON) public String recordList(@Context HttpServletRequest request, @Context HttpServletResponse response) { -// if (StringUtils.isEmpty(token)) { -// return WeaResult.success(null, SalrayCheckSecondAuthConstant.CHECK_SECOND_FAIL_NO_TOKEN); -// } -// Long employeeId = UserContext.getCurrentEmployeeId(); User user = HrmUserVarify.getUser(request, response); SalaryItemAdjustRecordQueryParam salaryItemAdjustRecordQueryParam = new SalaryItemAdjustRecordQueryParam(); salaryItemAdjustRecordQueryParam.setEmployeeId((long)user.getUID()); diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 4f711d32e..fbd21b601 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustBeforeParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; import com.engine.salary.entity.salaryarchive.param.SingleSalaryItemAdjustRecordQueryParam; 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.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; @@ -22,9 +23,11 @@ import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.wrapper.proxy.SalaryArchiveItemWrapperProxy; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; import weaver.hrm.User; @@ -229,8 +232,46 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); - PageInfo list = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(queryParam, salaryItemIds); - List listResult = list.getList(); + long currentEmployeeId = user.getUID(); + //是否开启分权 + Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); + if (needAuth) { + Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + + if (CollectionUtils.isEmpty(taxAgentIds)) { + return new PageInfo(); + } + + List salaryArchives = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentIds(taxAgentIds).build()); + List salaryArchiveIds = SalaryEntityUtil.properties(salaryArchives, SalaryArchivePO::getId, Collectors.toList()); + queryParam.setSalaryArchiveIds(salaryArchiveIds); + } + + List listResult = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds); + listResult = listResult.stream() + .filter(r -> { + DataCollectionEmployee employee = employeeMap.getOrDefault(r.getEmployeeId(), new DataCollectionEmployee()); + String username = queryParam.getUsername(); + List departmentIds = queryParam.getDepartmentIds(); + List positionIds = queryParam.getPositionIds(); + String userstatus = queryParam.getUserstatus(); + r.setUsername(employee.getUsername()); + r.setDepartmentName(employee.getDepartmentName()); + r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + r.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(r.getAdjustReason())); + return (StringUtils.isBlank(username) || employee.getUsername().contains(username)) + && (CollectionUtils.isEmpty(departmentIds) || departmentIds.contains(employee.getDepartmentId())) + && (CollectionUtils.isEmpty(positionIds) || positionIds.contains(employee.getJobtitleId())) + && (StringUtils.isBlank(userstatus) || Objects.equals(employee.getStatus(), userstatus)) + && (CollectionUtils.isEmpty(positionIds) || positionIds.contains(employee.getJobtitleId())) + ; + }) + .collect(Collectors.toList()); + + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), listResult, SalaryItemAdjustRecordListDTO.class); + + listResult = pageInfo.getList(); //获取上次更改的记录 listResult.forEach(m -> { if (!CollectionUtils.isEmpty(listAll)) { @@ -238,19 +279,14 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt } Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst(); m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); - DataCollectionEmployee employee = employeeMap.getOrDefault(m.getEmployeeId(), new DataCollectionEmployee()); - m.setUsername(employee.getUsername()); - m.setDepartmentName(employee.getDepartmentName()); - m.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); - m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); }); - - return list; + return pageInfo; } /** * 我的调薪记录 + * * @param queryParam * @return */ From dafde8451eb673f455aa1f76a8a7cffaa106955c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Oct 2023 14:20:32 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E8=B0=83=E8=96=AA=E8=AE=B0=E5=BD=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/biz/SalaryArchiveItemBiz.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java index 86351c9bc..b82cd7e81 100644 --- a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java @@ -176,19 +176,26 @@ public class SalaryArchiveItemBiz { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List salaryArchiveIds = queryParam.getSalaryArchiveIds(); - List> salaryArchiveIdsPartition = Lists.partition(salaryArchiveIds, 500); - - List salaryItemAdjustRecordListDTOS = new ArrayList<>(); - salaryArchiveIdsPartition.forEach(l -> { - queryParam.setSalaryArchiveIds(l); - salaryItemAdjustRecordListDTOS.addAll(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds)); - }); - - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), - salaryItemAdjustRecordListDTOS, - SalaryItemAdjustRecordListDTO.class); - encryptUtil.decryptList(page.getList(), SalaryItemAdjustRecordListDTO.class); - return page; + if (CollectionUtils.isEmpty(salaryArchiveIds)) { + List salaryItemAdjustRecordListDTOS = mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salaryItemAdjustRecordListDTOS, + SalaryItemAdjustRecordListDTO.class); + encryptUtil.decryptList(page.getList(), SalaryItemAdjustRecordListDTO.class); + return page; + } else { + List salaryItemAdjustRecordListDTOS = new ArrayList<>(); + List> salaryArchiveIdsPartition = Lists.partition(salaryArchiveIds, 500); + salaryArchiveIdsPartition.forEach(l -> { + queryParam.setSalaryArchiveIds(l); + salaryItemAdjustRecordListDTOS.addAll(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds)); + }); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salaryItemAdjustRecordListDTOS, + SalaryItemAdjustRecordListDTO.class); + encryptUtil.decryptList(page.getList(), SalaryItemAdjustRecordListDTO.class); + return page; + } } finally { sqlSession.close(); } From 0ecb3a397787dbed020f1d66b263f385fe623942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Oct 2023 16:01:37 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E7=9F=AD=E8=B7=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/formlua/core/QlExpress.java | 1 + .../formlua/func/compare/EqOperator.java | 2 +- .../func/compare/GreaterEqOperator.java | 2 +- .../formlua/func/compare/GreaterOperator.java | 2 +- .../formlua/func/compare/LessEqOperator.java | 2 +- .../formlua/func/compare/LessOperator.java | 2 +- .../formlua/func/compare/NotEqueOperator.java | 2 +- .../salary/formlua/func/logic/IfOperator.java | 129 +++++++++--------- .../formlua/func/logic/LogicService.java | 8 +- .../formlua/func/logic/LogicServiceImpl.java | 24 ++-- 10 files changed, 88 insertions(+), 86 deletions(-) diff --git a/src/com/engine/salary/formlua/core/QlExpress.java b/src/com/engine/salary/formlua/core/QlExpress.java index cefcd5bdc..68cd238d9 100644 --- a/src/com/engine/salary/formlua/core/QlExpress.java +++ b/src/com/engine/salary/formlua/core/QlExpress.java @@ -36,6 +36,7 @@ public class QlExpress { static { runner = new ExpressRunner(true, false); + runner.setShortCircuit(true); } private static boolean isInitialRunner = false; diff --git a/src/com/engine/salary/formlua/func/compare/EqOperator.java b/src/com/engine/salary/formlua/func/compare/EqOperator.java index 81aeef54a..24ee31946 100644 --- a/src/com/engine/salary/formlua/func/compare/EqOperator.java +++ b/src/com/engine/salary/formlua/func/compare/EqOperator.java @@ -154,7 +154,7 @@ public class EqOperator extends OperatorEqualsLessMore { } } // buildFilterParam(result,op1,op2); - return result; + return result.getContent(); } /** diff --git a/src/com/engine/salary/formlua/func/compare/GreaterEqOperator.java b/src/com/engine/salary/formlua/func/compare/GreaterEqOperator.java index 7e9a27055..1b5146cd6 100644 --- a/src/com/engine/salary/formlua/func/compare/GreaterEqOperator.java +++ b/src/com/engine/salary/formlua/func/compare/GreaterEqOperator.java @@ -89,7 +89,7 @@ public class GreaterEqOperator extends OperatorEqualsLessMore { result.setContent(false); } // Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2); - return result; + return result.getContent(); } public GreaterEqOperator(String aAliasName, String aName, String aErrorInfo) { diff --git a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java index 21df856fc..f33b7dd5a 100644 --- a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java +++ b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java @@ -92,7 +92,7 @@ public class GreaterOperator extends OperatorEqualsLessMore { result.setContent(false); } // Compareutils.buildLessMoreFilterParam(result, this.name, op1, op2); - return result; + return result.getContent(); } public GreaterOperator(String aName) { diff --git a/src/com/engine/salary/formlua/func/compare/LessEqOperator.java b/src/com/engine/salary/formlua/func/compare/LessEqOperator.java index 46ddcc38c..b8fa19942 100644 --- a/src/com/engine/salary/formlua/func/compare/LessEqOperator.java +++ b/src/com/engine/salary/formlua/func/compare/LessEqOperator.java @@ -90,7 +90,7 @@ public class LessEqOperator extends OperatorEqualsLessMore { result.setContent(false); } // Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2); - return result; + return result.getContent(); } public LessEqOperator(String aName) { diff --git a/src/com/engine/salary/formlua/func/compare/LessOperator.java b/src/com/engine/salary/formlua/func/compare/LessOperator.java index ffe6b6b0c..862042c6f 100644 --- a/src/com/engine/salary/formlua/func/compare/LessOperator.java +++ b/src/com/engine/salary/formlua/func/compare/LessOperator.java @@ -90,7 +90,7 @@ public class LessOperator extends OperatorEqualsLessMore { result.setContent(false); } // Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2); - return result; + return result.getContent(); } public LessOperator(String aName) { diff --git a/src/com/engine/salary/formlua/func/compare/NotEqueOperator.java b/src/com/engine/salary/formlua/func/compare/NotEqueOperator.java index 188e4812e..80589c977 100644 --- a/src/com/engine/salary/formlua/func/compare/NotEqueOperator.java +++ b/src/com/engine/salary/formlua/func/compare/NotEqueOperator.java @@ -89,7 +89,7 @@ public class NotEqueOperator extends OperatorEqualsLessMore { result.setContent(false); } // Compareutils.buildNotEqFilterParam(result, op1, op2); - return result; + return result.getContent(); } public NotEqueOperator(String aName) { diff --git a/src/com/engine/salary/formlua/func/logic/IfOperator.java b/src/com/engine/salary/formlua/func/logic/IfOperator.java index 8c1791b54..44430d341 100644 --- a/src/com/engine/salary/formlua/func/logic/IfOperator.java +++ b/src/com/engine/salary/formlua/func/logic/IfOperator.java @@ -16,82 +16,83 @@ import org.slf4j.LoggerFactory; public class IfOperator extends OperatorIf { - protected final Logger logger = LoggerFactory.getLogger(this.getClass()); - @Override - public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception { - Integer number= IgnoreParamFilter.getSetFuncNumber("IF"); - if(list==null ||list.length !=3){ - JSONObject errorJson= ErrorUtil.buildError("IF",number,number,"IF函数只允许三个参数"); - throw new ExcelRunTimeException("IF函数只允许三个参数"); - } - Object obj = list.get(0).getObject(parent); - logger.info("IF参数:"+ JSON.toJSONString(obj)); - boolean isDataTypeBool=false; - DataType boolDtaType=null; - if(obj!=null && obj instanceof DataType){ - boolDtaType=(DataType)obj; - if(boolDtaType.getContent() !=null && ( boolDtaType.getContent() instanceof Boolean )){ - isDataTypeBool=true; - obj=boolDtaType.getContent(); - }else{ - switch (obj+""){ - case "true": - obj=true; - isDataTypeBool=true; - break; - case "false": - obj=false; - isDataTypeBool=true; - break; - default: - isDataTypeBool=false; - break; - } - } - }else if(obj instanceof Boolean){ - isDataTypeBool=true; - } - if (obj == null) { - JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数参数不能为空"); - throw new RuntimeException(errorJson.getString("msg")); - } else if (!(obj instanceof Boolean) && (! (obj instanceof DataType) )) { - JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数判断条件必须是真假值"); - throw new RuntimeException(errorJson.getString("msg")); - }else if(!isDataTypeBool){ - JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数判断条件必须是真假值"); - throw new RuntimeException(errorJson.getString("msg")); - }else { - if (((Boolean)obj).booleanValue() == true){ - OperateData operateData=list.get(1); - Object object=operateData.getObject(parent); + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Override + public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception { + Integer number = IgnoreParamFilter.getSetFuncNumber("IF"); + if (list == null || list.length != 3) { + JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数只允许三个参数"); + throw new ExcelRunTimeException("IF函数只允许三个参数"); + } + Object obj = list.get(0).getObject(parent); + logger.info("IF参数:" + JSON.toJSONString(obj)); + boolean isDataTypeBool = false; + DataType boolDtaType = null; + if (obj != null && obj instanceof DataType) { + boolDtaType = (DataType) obj; + if (boolDtaType.getContent() != null && (boolDtaType.getContent() instanceof Boolean)) { + isDataTypeBool = true; + obj = boolDtaType.getContent(); + } else { + switch (obj + "") { + case "true": + obj = true; + isDataTypeBool = true; + break; + case "false": + obj = false; + isDataTypeBool = true; + break; + default: + isDataTypeBool = false; + break; + } + } + } else if (obj instanceof Boolean) { + isDataTypeBool = true; + } + if (obj == null) { + JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数参数不能为空"); + throw new RuntimeException(errorJson.getString("msg")); + } else if (!(obj instanceof Boolean) && (!(obj instanceof DataType))) { + JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数判断条件必须是真假值"); + throw new RuntimeException(errorJson.getString("msg")); + } else if (!isDataTypeBool) { + JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数判断条件必须是真假值"); + throw new RuntimeException(errorJson.getString("msg")); + } else { + if (((Boolean) obj).booleanValue() == true) { + OperateData operateData = list.get(1); + Object object = operateData.getObject(parent); // if(object instanceof DataType){ // String type= ExcelParamUtil.getParamType(object); // if(type.equalsIgnoreCase("date")){ // object=ExcelParamUtil.getParamContent(object,"string"); // } // } - OperateData operateData1=new OperateData(ExcelParamUtil.getParamContent(object,""),operateData.getType(parent)); - return operateData1; - }else{ - OperateData operateData=list.get(2); - Object object=operateData.getObject(parent); + OperateData operateData1 = new OperateData(ExcelParamUtil.getParamContent(object, ""), operateData.getType(parent)); + return operateData1; + } else { + OperateData operateData = list.get(2); + Object object = operateData.getObject(parent); // if(object instanceof DataType){ // String type=ExcelParamUtil.getParamType(object); // if(type.equalsIgnoreCase("date")){ // object=ExcelParamUtil.getParamContent(object,"string"); // } // } - OperateData operateData1=new OperateData(ExcelParamUtil.getParamContent(object,""),operateData.getType(parent)); - return operateData1; - } - } - } + OperateData operateData1 = new OperateData(ExcelParamUtil.getParamContent(object, ""), operateData.getType(parent)); + return operateData1; + } + } + } - public IfOperator(String aName) { - super(aName); - } + public IfOperator(String aName) { + super(aName); + } - public IfOperator(String aAliasName, String aName, String aErrorInfo) { - super(aAliasName, aName, aErrorInfo); - } + public IfOperator(String aAliasName, String aName, String aErrorInfo) { + super(aAliasName, aName, aErrorInfo); + } } diff --git a/src/com/engine/salary/formlua/func/logic/LogicService.java b/src/com/engine/salary/formlua/func/logic/LogicService.java index d3811bfdb..94d0ea106 100644 --- a/src/com/engine/salary/formlua/func/logic/LogicService.java +++ b/src/com/engine/salary/formlua/func/logic/LogicService.java @@ -4,13 +4,13 @@ import com.engine.salary.formlua.entity.parameter.DataType; public interface LogicService { - public DataType not(Object... object); + public Boolean not(Object... object); - public DataType isEmpty(Object... objs); + public Boolean isEmpty(Object... objs); - public DataType isTrue(Object... objs); + public Boolean isTrue(Object... objs); - public DataType isFalse(Object... objs); + public Boolean isFalse(Object... objs); public DataType and(Object... objs); diff --git a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java index 3cd94f8de..395b9acdf 100644 --- a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java +++ b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java @@ -24,7 +24,7 @@ public class LogicServiceImpl implements LogicService { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); @Override - public DataType not(Object... objects) { + public Boolean not(Object... objects) { DataType resultdataType = new DataType(); resultdataType.setDataType(DataType.BOOL); Class[] typeObjects = new Class[]{boolean.class}; @@ -32,7 +32,7 @@ public class LogicServiceImpl implements LogicService { Object object = objects[0]; if (object == null) { resultdataType.setContent(false); - return resultdataType; + return false; } Boolean cnd; if (object instanceof DataType) { @@ -43,11 +43,11 @@ public class LogicServiceImpl implements LogicService { } resultdataType.setContent(!cnd); - return resultdataType; + return (Boolean) resultdataType.getContent(); } @Override - public DataType isEmpty(Object... objs) { + public Boolean isEmpty(Object... objs) { int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.ISEMPTY.toString()); if (objs.length != 1) { throw new RuntimeException("ISEMPTY函数只允许一个参数"); @@ -57,7 +57,7 @@ public class LogicServiceImpl implements LogicService { DataType dataType = new DataType(); dataType.setDataType(DataType.BOOL); dataType.setContent(true); - return dataType; + return true; } for (int i = 0; i < objs.length; i++) { Object obj = objs[i]; @@ -65,7 +65,7 @@ public class LogicServiceImpl implements LogicService { DataType dataType = new DataType(); dataType.setDataType(DataType.BOOL); dataType.setContent(true); - return dataType; + return true; } if (obj instanceof DataType) { DataType objDataType = (DataType) obj; @@ -86,11 +86,11 @@ public class LogicServiceImpl implements LogicService { DataType dataType = new DataType(); dataType.setDataType(DataType.BOOL); dataType.setContent(result); - return dataType; + return result; } @Override - public DataType isTrue(Object... objects) { + public Boolean isTrue(Object... objects) { int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.TRUE.toString()); if (objects.length > 0) { throw new RuntimeException("TRUE函数不能有参数"); @@ -98,11 +98,11 @@ public class LogicServiceImpl implements LogicService { DataType dataType = new DataType(); dataType.setDataType(DataType.BOOL); dataType.setContent(true); - return dataType; + return (Boolean) dataType.getContent(); } @Override - public DataType isFalse(Object... objects) { + public Boolean isFalse(Object... objects) { int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.FALSE.toString()); if (objects.length > 0) { JSONObject errorJson = ErrorUtil.buildError(FuncNames.FALSE.toString(), number, number, "FALSE函数不能有参数"); @@ -111,7 +111,7 @@ public class LogicServiceImpl implements LogicService { DataType dataType = new DataType(); dataType.setDataType(DataType.BOOL); dataType.setContent(false); - return dataType; + return (Boolean) dataType.getContent(); } @@ -335,7 +335,7 @@ public class LogicServiceImpl implements LogicService { } else { value = param; } - if (Objects.equals(source.toString(),value.toString())) { + if (Objects.equals(source.toString(), value.toString())) { result = objects[i + 1]; break; } From 213deb731ced243c04956175c3d117211a8210ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Oct 2023 17:01:37 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E8=B0=83=E8=96=AA=E8=AE=B0=E5=BD=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/wrapper/SalaryArchiveItemWrapper.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index fbd21b601..a66a79011 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -28,6 +28,7 @@ import com.engine.salary.wrapper.proxy.SalaryArchiveItemWrapperProxy; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; import weaver.hrm.User; @@ -258,7 +259,8 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt String userstatus = queryParam.getUserstatus(); r.setUsername(employee.getUsername()); r.setDepartmentName(employee.getDepartmentName()); - r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + r.setEmployeeStatus(StringUtils.isNotBlank(employee.getStatus())&& NumberUtils.isCreatable(employee.getStatus())? + UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus())):""); r.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(r.getAdjustReason())); return (StringUtils.isBlank(username) || employee.getUsername().contains(username)) && (CollectionUtils.isEmpty(departmentIds) || departmentIds.contains(employee.getDepartmentId())) @@ -310,7 +312,8 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt m.setUsername(employee.getUsername()); m.setDepartmentName(employee.getDepartmentName()); - m.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + m.setEmployeeStatus(StringUtils.isNotBlank(employee.getStatus())&& NumberUtils.isCreatable(employee.getStatus())? + UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus())):""); m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); });