diff --git a/resource/pagehelper/pagehelper-5.0.0/jsqlparser.jar b/resource/pagehelper/pagehelper-5.0.0/jsqlparser.jar deleted file mode 100644 index 2bbde830f..000000000 Binary files a/resource/pagehelper/pagehelper-5.0.0/jsqlparser.jar and /dev/null differ diff --git a/resource/pagehelper/pagehelper-5.0.0/pagehelper-5.0.0.jar b/resource/pagehelper/pagehelper-5.0.0/pagehelper-5.0.0.jar deleted file mode 100644 index 187266c88..000000000 Binary files a/resource/pagehelper/pagehelper-5.0.0/pagehelper-5.0.0.jar and /dev/null differ diff --git a/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/jsqlparser.jar b/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/jsqlparser.jar deleted file mode 100644 index b3eeba5a2..000000000 Binary files a/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/jsqlparser.jar and /dev/null differ diff --git a/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/pagehelper-5.0.0.jar b/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/pagehelper-5.0.0.jar deleted file mode 100644 index 511e0d581..000000000 Binary files a/resource/pagehelper/pagehelper-5.3.1 jsqlparser-4.4/pagehelper-5.0.0.jar and /dev/null differ diff --git a/resource/sql/Oracle常见问题.txt b/resource/sql/Oracle常见问题.txt new file mode 100644 index 000000000..8725b72ea --- /dev/null +++ b/resource/sql/Oracle常见问题.txt @@ -0,0 +1,47 @@ +Oracle数据库中常见报错问题 +1、工资单发放----新建工资单模板时显示系统异常无法进行下一步 + + 解决方法:在数据库中执行以下语句,第一句执行成功后再执行第二句,如果第一句执行失败请勿执行下面的!!!!!! + + -- 创建临时表HRSA_SALARY_TEMPLAT_TEMPT 结构与数据和HRSA_SALARY_TEMPLATE一样 + create table HRSA_SALARY_TEMPLAT_TEMPT as select * from HRSA_SALARY_TEMPLATE; + + -- 删除原表HRSA_SALARY_TEMPLATE数据 + delete from HRSA_SALARY_TEMPLATE; + + alter table HRSA_SALARY_TEMPLATE modify salary_item_setting long; + alter table HRSA_SALARY_TEMPLATE modify salary_item_setting CLOB; + insert into HRSA_SALARY_TEMPLATE select * from HRSA_SALARY_TEMPLAT_TEMPT ; + drop table HRSA_SALARY_TEMPLAT_TEMPT; + + + + + + + + + + + +2、工资单发放----发放工资单时显示系统异常无法进行下一步 + + 解决方法:在数据库中执行以下语句,第一句执行成功后再执行第二句,如果第一句执行失败请勿执行下面的!!!!!! + + + -- 创建临时表HRSA_SALARY_SEND_INFO_TEMPI结构与数据和HRSA_SALARY_SEND_INFO一样 + create table HRSA_SALARY_SEND_INFO_TEMPI as select * from HRSA_SALARY_SEND_INFO; + + -- 删除原表HRSA_SALARY_SEND_INFO数据 + delete from HRSA_SALARY_SEND_INFO; + + alter table HRSA_SALARY_SEND_INFO modify SALARY_TEMPLATE long; + alter table HRSA_SALARY_SEND_INFO modify SALARY_TEMPLATE CLOB; + insert into HRSA_SALARY_SEND_INFO select * from HRSA_SALARY_SEND_INFO_TEMPI; + drop table HRSA_SALARY_SEND_INFO_TEMPI; + + + + + + diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 572fc9571..88f90fdb5 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -40,6 +40,9 @@ import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; @@ -55,6 +58,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import weaver.hrm.User; import java.math.BigDecimal; import java.util.*; @@ -104,6 +108,10 @@ public class SIAccountBiz extends Service { return MapperProxyFactory.getProxy(SocialSchemeMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + public PageInfo listPage(InsuranceAccountBatchParam queryParam) { SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountBatchMapper().list(queryParam); @@ -114,6 +122,11 @@ public class SIAccountBiz extends Service { public PageInfo listCommonPage(InsuranceAccountDetailParam queryParam) { queryParam.setPaymentStatus(PaymentStatusEnum.COMMON.getValue()); + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountDetailMapper().list(queryParam); InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(list); diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 83b23ebb9..11532a131 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -706,6 +706,8 @@ public class SIArchivesBiz { request.setJobNum(param.getJobNum()); + request.setOrderRule(param.getOrderRule()); + apidatas = listPageEmployeePOS(request, operateId); return apidatas; diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java index 14f58570e..29e3b6a51 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java @@ -7,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; -import java.util.Date; /** * @Author weaver_cl @@ -45,7 +44,7 @@ public class InsuranceArchivesEmployeePO { private String hiredate; - private Date dimissionDate; + private String dimissionDate; private Long siSchemeId; diff --git a/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java b/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java index 2a5bf4750..74491be6b 100644 --- a/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java +++ b/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siexport.param; +import com.engine.salary.common.BaseQueryParam; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; @@ -17,7 +18,7 @@ import lombok.NoArgsConstructor; @Builder @NoArgsConstructor @AllArgsConstructor -public class InsuranceExportParam { +public class InsuranceExportParam extends BaseQueryParam { //@NotBlank @DataCheck(require = true,message = "账单月份不可为空") diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationDetailListQueryParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationDetailListQueryParam.java index 0f2de6d72..e2e32c347 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationDetailListQueryParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationDetailListQueryParam.java @@ -8,12 +8,13 @@ import lombok.NoArgsConstructor; import lombok.experimental.Accessors; /** - * @description: 个税申报记录详情列表查询参数 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 12/15/21 3:21 PM - * @version:v1.0 - */ + * 个税申报记录详情列表查询参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @Builder @Accessors(chain = true) diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.java b/src/com/engine/salary/mapper/InsuranceExportMapper.java index e7952ed9f..b8e68b56e 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.java +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper; +import com.engine.salary.entity.siexport.param.InsuranceExportParam; import com.engine.salary.entity.siexport.po.AccountExportPO; import com.engine.salary.entity.siexport.po.ExcelAccountExportPO; import org.apache.ibatis.annotations.Param; @@ -14,7 +15,7 @@ import java.util.List; **/ public interface InsuranceExportMapper { - List exportAccount(@Param("paymentStatus") Integer paymentStatus, @Param("billMonth") String billMonth,@Param("paymentOrganization") String paymentOrganization); List exportExcelAccount(@Param("paymentStatus") Integer paymentStatus, @Param("billMonth") String billMonth, @Param("paymentOrganization") String paymentOrganization); + List exportAccount(@Param("paymentStatus") Integer paymentStatus, @Param("param") InsuranceExportParam param); } diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.xml b/src/com/engine/salary/mapper/InsuranceExportMapper.xml index ee7580f6a..5a9b31845 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.xml +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.xml @@ -2,6 +2,24 @@ + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + + + SELECT a.*, + e.lastname AS userName, + e.MOBILE AS telephone, + d.departmentname AS departmentName, + e.STATUS AS userStatus, + e.workcode AS workcode + FROM ( + SELECT * + from hrsa_bill_detail + WHERE delete_type = 0 + AND bill_month = #{param.billMonth} + AND payment_status = #{paymentStatus} + AND payment_organization = #{param.paymentOrganization} + ) a + LEFT JOIN hrmresource e ON e.ID = a.employee_id + LEFT JOIN hrmdepartment d ON d.id = e.departmentid + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 + where e.status not in (7) + and (e.accounttype is null or e.accounttype = 0) + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + + diff --git a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml index eafa88ff2..a8bf7f84a 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml @@ -159,6 +159,8 @@ AND e.mobile like CONCAT('%',#{param.mobile},'%') + + @@ -291,12 +293,16 @@ LEFT JOIN hrsa_tax_agent t2 ON t1.tax_agent_id = t2.id LEFT JOIN hrmresource e ON e.id = t1.employee_id LEFT JOIN hrmdepartment d ON d.id = e.departmentid + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) and (e.accounttype is null or e.accounttype = 0) - ORDER BY t1.id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + diff --git a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml index 8460f924e..bacebd1c6 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml @@ -317,13 +317,17 @@ LEFT JOIN hrmresource e ON e.id = t1.employee_id LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrsa_tax_agent t2 ON t1.tax_agent_id = t2.id + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) and (e.accounttype is null or e.accounttype = 0) - ORDER BY t1.id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml index dab097209..f19e9cbd5 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml @@ -255,12 +255,16 @@ hrsa_attend_quote_data t1 LEFT JOIN hrmresource e ON e.id = t1.employee_id LEFT JOIN hrmdepartment d ON d.id = e.departmentid + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE t1.delete_type = 0 AND e.status not in (7) and (e.accounttype is null or e.accounttype = 0) - ORDER BY t1.id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + diff --git a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml index 24677ee92..f9c2def36 100644 --- a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml @@ -262,12 +262,16 @@ LEFT JOIN hrsa_tax_agent t2 ON t1.tax_agent_id = t2.id LEFT JOIN hrmresource e ON e.id = t1.employee_id LEFT JOIN hrmdepartment d ON d.id = e.departmentid + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) and (e.accounttype is null or e.accounttype = 0) - ORDER BY t1.id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + SELECT - FROM hrsa_salary_acct_emp + FROM hrsa_salary_acct_emp t + LEFT JOIN hrmresource e ON e.id = t.employee_id + 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} - ORDER BY id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + - AND id IN + AND t.id IN #{id} - AND tax_agent_id = #{param.taxAgentId} + AND t.tax_agent_id = #{param.taxAgentId} - AND employee_id IN + AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) and (em.accounttype is null or em.accounttype = 0) @@ -779,19 +529,19 @@ - AND id IN + AND t.id IN #{id} - AND tax_agent_id = #{param.taxAgentId} + AND t.tax_agent_id = #{param.taxAgentId} - AND employee_id IN + AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) and (em.accounttype is null or em.accounttype = 0) @@ -823,19 +573,19 @@ - AND id IN + AND t.id IN #{id} - AND tax_agent_id = #{param.taxAgentId} + AND t.tax_agent_id = #{param.taxAgentId} - AND employee_id IN + AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) and (em.accounttype is null or em.accounttype = 0) @@ -869,7 +619,10 @@ diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java index c8e0d9a37..cab54c876 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java @@ -7,18 +7,19 @@ import com.engine.salary.entity.salaryBill.param.SalaryBillQueryParam; import com.engine.salary.entity.salaryBill.param.SalarySendDetailQueryParam; import com.engine.salary.entity.salaryBill.param.SalarySendInfoQueryParam; import com.engine.salary.entity.salaryBill.po.SalarySendInfoPO; -import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; /** - * @Description: 工资单发放信息 - * @Author: wangxiangzhong - * @Date: 2021-12-11 11:29 - */ - + * 工资单发放信息 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public interface SalarySendInfoMapper { /** diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml index 10646f86b..96e114e23 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml @@ -310,6 +310,7 @@ hrsa_salary_send_info t1 LEFT JOIN hrmresource e ON e.id = t1.employee_id LEFT JOIN hrmdepartment d ON d.id = e.DEPARTMENTID + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 LEFT JOIN hrsa_tax_agent t2 ON t2.id = t1.tax_agent_id WHERE t1.delete_type = 0 @@ -319,7 +320,10 @@ AND t1.send_status = #{param.sendStatusVal}
- ORDER BY t1.id DESC + + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + - - SELECT - a.employeeId, - a.userName, - a.departmentId, - a.jobNum, - a.telephone, - a.departmentName, - a.position, - a.userStatus, - a.hiredate, - l.dimissionDate, + SELECT e.ID AS employeeId, e.lastname AS userName, e.departmentid AS departmentId, e.workcode AS jobNum, e.MOBILE AS telephone, + d.departmentname AS departmentName, e.jobtitle AS position, e.STATUS AS userStatus,e.companystartdate AS hiredate, + e.enddate as dimissionDate, social.siSchemeId, social.paymentOrganization, fund.fundSchemeId, other.otherSchemeId - FROM - ( - SELECT - e.lastname AS userName, - e.workcode AS jobNum, - e.departmentid AS departmentId, - d.departmentname AS departmentName, - e.STATUS AS userStatus, - e.jobtitle AS position, - e.companystartdate AS hiredate, - e.ID AS employeeId, - e.MOBILE AS telephone - FROM - hrmresource e + FROM hrmresource e LEFT JOIN hrmdepartment d ON e.departmentid = d.ID - where e.accounttype is null or e.accounttype = 0 - )a - LEFT JOIN( - SELECT - log.resource_n, - log.dismissdate AS dimissionDate - FROM - bill_hrmdismiss log - )l ON a.employeeId = l.resource_n - LEFT JOIN( - SELECT - social.employee_id, - social.social_scheme_id AS siSchemeId, - social.payment_organization AS paymentOrganization - FROM - hrsa_social_archives social - WHERE social.delete_type = 0 - )social ON a.employeeId = social.employee_id - LEFT JOIN( - SELECT - fund.employee_id, - fund.fund_scheme_id AS fundSchemeId - FROM - hrsa_fund_archives fund - WHERE fund.delete_type = 0 - )fund ON a.employeeId = fund.employee_id - LEFT JOIN( - SELECT - other.employee_id, - other.other_scheme_id AS otherSchemeId - FROM - hrsa_other_archives other - WHERE other.delete_type = 0 - )other ON a.employeeId = other.employee_id + LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 + LEFT JOIN( SELECT social.employee_id, social.social_scheme_id AS siSchemeId, social.payment_organization AS paymentOrganization FROM hrsa_social_archives social WHERE social.delete_type = 0 )social ON e.id = social.employee_id + LEFT JOIN( SELECT fund.employee_id, fund.fund_scheme_id AS fundSchemeId FROM hrsa_fund_archives fund WHERE fund.delete_type = 0 )fund ON e.id = fund.employee_id + LEFT JOIN( SELECT other.employee_id, other.other_scheme_id AS otherSchemeId FROM hrsa_other_archives other WHERE other.delete_type = 0 )other ON e.id = other.employee_id WHERE 1=1 - - - + + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + @@ -371,44 +319,44 @@ AND ( - userName like CONCAT('%',#{param.keyword},'%') + e.lastname like CONCAT('%',#{param.keyword},'%') ) - AND userName like CONCAT('%',#{param.userName},'%') + AND e.lastname like CONCAT('%',#{param.userName},'%') - AND jobNum = #{param.jobNum} + AND e.workcode = #{param.jobNum} - AND departmentId IN + AND e.departmentid IN #{departmentId} - AND userStatus IN + AND e.STATUS IN #{userStatus} - AND position IN + AND e.jobtitle IN #{position} - AND hiredate > #{param.hiredateStart} + AND e.companystartdate > #{param.hiredateStart} - AND hiredate < #{param.hiredateEnd} + AND e.companystartdate < #{param.hiredateEnd} - AND dimissionDate > #{param.dimissionDateStart} + AND e.enddate > #{param.dimissionDateStart} - AND dimissionDate < #{param.dimissionDateEnd} + AND e.enddate < #{param.dimissionDateEnd} AND siSchemeId = #{param.siSchemeId} @@ -420,7 +368,7 @@ AND otherSchemeId = #{param.otherSchemeId} - AND employeeId IN + AND e.ID IN #{item} @@ -431,44 +379,44 @@ AND ( - userName like '%'+#{param.keyword}+'%' + e.lastname like '%'+#{param.keyword}+'%' ) - AND userName like '%'+#{param.userName}+'%' + AND e.lastname like '%'+#{param.userName}+'%' - AND jobNum = #{param.jobNum} + AND e.workcode = #{param.jobNum} - AND departmentId IN + AND e.departmentid IN #{departmentId} - AND userStatus IN + AND e.STATUS IN #{userStatus} - AND position IN + AND e.jobtitle IN #{position} - AND hiredate > #{param.hiredateStart} + AND e.companystartdate > #{param.hiredateStart} - AND hiredate < #{param.hiredateEnd} + AND e.companystartdate < #{param.hiredateEnd} - AND dimissionDate > #{param.dimissionDateStart} + AND e.enddate > #{param.dimissionDateStart} - AND dimissionDate < #{param.dimissionDateEnd} + AND e.enddate < #{param.dimissionDateEnd} AND siSchemeId = #{param.siSchemeId} @@ -480,7 +428,7 @@ AND otherSchemeId = #{param.otherSchemeId} - AND employeeId IN + AND e.ID IN #{item} @@ -492,44 +440,44 @@ AND ( - userName like '%'||#{param.keyword}||'%' + e.lastname like '%'||#{param.keyword}||'%' ) - AND userName like '%'||#{param.userName}||'%' + AND e.lastname like '%'||#{param.userName}||'%' - AND jobNum = #{param.jobNum} + AND e.workcode = #{param.jobNum} - AND departmentId IN + AND e.departmentid IN #{departmentId} - AND userStatus IN + AND e.STATUS IN #{userStatus} - AND position IN + AND e.jobtitle IN #{position} - AND hiredate > #{param.hiredateStart} + AND e.companystartdate > #{param.hiredateStart} - AND hiredate < #{param.hiredateEnd} + AND e.companystartdate < #{param.hiredateEnd} - AND dimissionDate > #{param.dimissionDateStart} + AND e.enddate > #{param.dimissionDateStart} - AND dimissionDate < #{param.dimissionDateEnd} + AND e.enddate < #{param.dimissionDateEnd} AND siSchemeId = #{param.siSchemeId} @@ -541,7 +489,7 @@ AND otherSchemeId = #{param.otherSchemeId} - AND employeeId IN + AND e.ID IN #{item} diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java index 4096aa97b..6a44bdbad 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java @@ -1,8 +1,8 @@ package com.engine.salary.mapper.taxdeclaration; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationEmployeeDTO; +import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO; -import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -15,10 +15,10 @@ public interface TaxDeclarationDetailMapper { /** * 分页查询人员id * - * @param taxDeclarationId + * @param param * @return */ - List listPage4EmployeeId(@Param("taxDeclarationId") Long taxDeclarationId); + List listPage4EmployeeId(@Param("param") TaxDeclarationDetailListQueryParam param); /** * 查询人员id diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml index 850db2b8d..aad0c3ac8 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml @@ -40,9 +40,15 @@ diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index 764edfbf5..1e9ab320e 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -73,6 +73,13 @@ public interface SalaryAcctResultService { */ PageInfo> listPageByParam(SalaryAcctResultQueryParam queryParam); + /** + * 合计行 + * @param queryParam + * @return + */ + Map sumRow(SalaryAcctResultQueryParam queryParam); + /** * 根据薪资核算结果列表查询条件查询薪资核算结果 * diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 196827f0b..55cf90c82 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -2,7 +2,6 @@ package com.engine.salary.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; -import com.api.browser.bean.SearchConditionOption; import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; import com.api.formmode.mybatis.util.SqlProxyHandle; @@ -32,6 +31,9 @@ import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -50,7 +52,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; -import weaver.systeminfo.SystemEnv; import java.io.InputStream; import java.text.SimpleDateFormat; @@ -94,6 +95,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } @Override public Map getSearchCondition(Map params) { @@ -137,37 +141,37 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction conditionItems.add(jobNum); - SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); - idNo.setInputType("input"); - idNo.setColSpan(2); - idNo.setFieldcol(16); - idNo.setLabelcol(8); - idNo.setViewAttr(2); - idNo.setLabel("证件号码"); - conditionItems.add(idNo); +// SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); +// idNo.setInputType("input"); +// idNo.setColSpan(2); +// idNo.setFieldcol(16); +// idNo.setLabelcol(8); +// idNo.setViewAttr(2); +// idNo.setLabel("证件号码"); +// conditionItems.add(idNo); //日期范围选项 - List dateOptions = new ArrayList(); - dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) - SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); - hiredate.setInputType("rangepicker"); - hiredate.setFormat("yyyy-MM-dd"); - hiredate.setFieldcol(16); - hiredate.setLabelcol(8); - hiredate.setViewAttr(2); - hiredate.setLabel("入职日期"); - hiredate.setOptions(dateOptions); - conditionItems.add(hiredate); +// List dateOptions = new ArrayList(); +// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) +// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); +// hiredate.setInputType("rangepicker"); +// hiredate.setFormat("yyyy-MM-dd"); +// hiredate.setFieldcol(16); +// hiredate.setLabelcol(8); +// hiredate.setViewAttr(2); +// hiredate.setLabel("入职日期"); +// hiredate.setOptions(dateOptions); +// conditionItems.add(hiredate); - - SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); - mobile.setInputType("input"); - mobile.setColSpan(2); - mobile.setFieldcol(16); - mobile.setLabelcol(8); - mobile.setViewAttr(2); - mobile.setLabel("手机号"); - conditionItems.add(mobile); +// +// SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); +// mobile.setInputType("input"); +// mobile.setColSpan(2); +// mobile.setFieldcol(16); +// mobile.setLabelcol(8); +// mobile.setViewAttr(2); +// mobile.setLabel("手机号"); +// conditionItems.add(mobile); addGroups.add(new SearchConditionGroup("常用条件", true, conditionItems)); @@ -455,6 +459,10 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAddUpDeductionMapper().list(queryParam); AddUpDeductionStrDTOEncrypt.decryptAddUpDeductionList(list); @@ -666,16 +674,16 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction for(AddUpDeductionDTO dto : list) { Map resultMap = new HashMap<>(); - resultMap.put("username", dto.getUsername()); - resultMap.put("departmentName", dto.getDepartmentName()); - resultMap.put("mobile", dto.getMobile()); - resultMap.put("workcode", dto.getJobNum()); - resultMap.put("taxAgentName", dto.getTaxAgentName()); + resultMap.put("username", Util.null2String(dto.getUsername())); + resultMap.put("departmentName", Util.null2String(dto.getDepartmentName())); + resultMap.put("mobile", Util.null2String(dto.getMobile())); + resultMap.put("workcode", Util.null2String(dto.getJobNum())); + resultMap.put("taxAgentName", Util.null2String(dto.getTaxAgentName())); if (dto.getIdNo() != null) { - resultMap.put("idNo", dto.getIdNo()); + resultMap.put("idNo", Util.null2String(dto.getIdNo())); } if (dto.getHiredate() != null) { - resultMap.put("hiredate", dto.getHiredate()); + resultMap.put("hiredate", Util.null2String(dto.getHiredate())); } resultList.add(resultMap); @@ -706,6 +714,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //excel标题 List title = Arrays.asList("姓名", "个税扣缴义务人", "部门", "手机号", "工号", "证件号码", "入职日期", "累计子女教育", "累计继续教育", "累计住房贷款利息", "累计住房租金", "累计赡养老人", "累计大病医疗", "累计婴幼儿照护"); + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); + List list = new AddUpDeductionBiz().list(param); // 开启分权并且不是薪酬模块总管理员 diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index a80bde3db..fbaa0426a 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -2,7 +2,6 @@ package com.engine.salary.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; -import com.api.browser.bean.SearchConditionOption; import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; import com.api.formmode.mybatis.util.SqlProxyHandle; @@ -25,8 +24,14 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; -import com.engine.salary.service.*; +import com.engine.salary.service.AddUpDeductionService; +import com.engine.salary.service.AddUpSituationService; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.TaxAgentService; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -45,7 +50,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; -import weaver.systeminfo.SystemEnv; import java.io.InputStream; import java.text.SimpleDateFormat; @@ -74,6 +78,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + AddUpSituationBiz biz = new AddUpSituationBiz(); private SalarySysConfMapper getSalarySysConfMapper() { @@ -122,37 +130,37 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation conditionItems.add(jobNum); - SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); - idNo.setInputType("input"); - idNo.setColSpan(2); - idNo.setFieldcol(16); - idNo.setLabelcol(8); - idNo.setViewAttr(2); - idNo.setLabel("证件号码"); - conditionItems.add(idNo); - - //日期范围选项 - List dateOptions = new ArrayList(); - dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) - SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); - hiredate.setInputType("rangepicker"); - hiredate.setFormat("yyyy-MM-dd"); - hiredate.setFieldcol(16); - hiredate.setLabelcol(8); - hiredate.setViewAttr(2); - hiredate.setLabel("入职日期"); - hiredate.setOptions(dateOptions); - conditionItems.add(hiredate); - - - SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); - mobile.setInputType("input"); - mobile.setColSpan(2); - mobile.setFieldcol(16); - mobile.setLabelcol(8); - mobile.setViewAttr(2); - mobile.setLabel("手机号"); - conditionItems.add(mobile); +// SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); +// idNo.setInputType("input"); +// idNo.setColSpan(2); +// idNo.setFieldcol(16); +// idNo.setLabelcol(8); +// idNo.setViewAttr(2); +// idNo.setLabel("证件号码"); +// conditionItems.add(idNo); +// +// //日期范围选项 +// List dateOptions = new ArrayList(); +// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) +// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); +// hiredate.setInputType("rangepicker"); +// hiredate.setFormat("yyyy-MM-dd"); +// hiredate.setFieldcol(16); +// hiredate.setLabelcol(8); +// hiredate.setViewAttr(2); +// hiredate.setLabel("入职日期"); +// hiredate.setOptions(dateOptions); +// conditionItems.add(hiredate); +// +// +// SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); +// mobile.setInputType("input"); +// mobile.setColSpan(2); +// mobile.setFieldcol(16); +// mobile.setLabelcol(8); +// mobile.setViewAttr(2); +// mobile.setLabel("手机号"); +// conditionItems.add(mobile); addGroups.add(new SearchConditionGroup("常用条件", true, conditionItems)); @@ -175,6 +183,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation queryParam.setTaxYearMonth(taxYearMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setTaxYearMonthDate(taxYearMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); long employeeId = user.getUID(); @@ -262,7 +273,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation "累计社保个人合计", "累计公积金个人合计", "累计子女教育", "累计继续教育", "累计住房贷款利息", "累计住房租金", "累计赡养老人", "累计大病医疗", "累计企业(职业)年金及其他福利", "累计其他扣除", "累计免税收入", "累计准予扣除的捐赠额", "累计减免税额", "累计已预扣预缴税额", "累计婴幼儿照护"); - + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); List list = biz.list(param); // 开启分权并且不是薪酬模块总管理员 if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index b36d8a699..6370d4246 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -33,6 +33,9 @@ import com.engine.salary.remote.attend.service.RemoteAttend4SalaryService; import com.engine.salary.remote.attend.service.impl.RemoteAttend4SalaryServiceImpl; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -82,11 +85,15 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa private EmployBiz employeeBiz = new EmployBiz(); private AttendQuoteFieldSettingService getFieldSettingService(User user) { - return (AttendQuoteFieldSettingService) ServiceUtil.getService(AttendQuoteFieldSettingServiceImpl.class, user); + return ServiceUtil.getService(AttendQuoteFieldSettingServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } private SalarySobService getSalarySobService(User user) { - return (SalarySobService) ServiceUtil.getService(SalarySobServiceImpl.class, user); + return ServiceUtil.getService(SalarySobServiceImpl.class, user); } private AttendQuoteDataMapper getAttendQuoteDataMapper() { @@ -103,11 +110,11 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa private RemoteAttend4SalaryService getRemoteAttend4SalaryService(User user) { - return (RemoteAttend4SalaryService) ServiceUtil.getService(RemoteAttend4SalaryServiceImpl.class, user); + return ServiceUtil.getService(RemoteAttend4SalaryServiceImpl.class, user); } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } private SalarySysConfMapper getSalarySysConfMapper() { @@ -116,6 +123,10 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa @Override public PageInfo listPage(AttendQuoteDataQueryParam queryParam) { + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAttendQuoteDataMapper().list(queryParam); PageInfo page = new PageInfo(list); @@ -205,6 +216,10 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100253, "考勤引用id不能为空")); } + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + // 考勤数据分页主数据 List attendQuoteDataBases = dataBiz.list(queryParam); // 所有考勤字段 @@ -463,7 +478,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa dataValueBiz.deleteByAttendQuoteIds(quoteIds); // 新增考勤值数据 if (CollectionUtils.isNotEmpty(values)) { - log.info("考勤数据:{}",values); + log.info("考勤数据:{}", values); dataValueBiz.insertData(values); } } diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index a23484032..2350999d4 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -22,6 +22,9 @@ import com.engine.salary.mapper.datacollection.OtherDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -71,6 +74,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } @Override public OtherDeductionPO getById(Long id) { @@ -87,6 +93,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction queryParam.setDeclareMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + long employeeId = user.getUID(); Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); @@ -400,6 +410,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction long employeeId = user.getUID(); //excel标题 List title = Arrays.asList("姓名", "个税扣缴义务人", "部门", "手机号", "工号", "证件号码", "入职日期", "商业健康保险", "税延养老保险", "其他", "准予扣除的捐赠额"); + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); //申报月份 List declareMonth = param.getDeclareMonth(); diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index e7e07a861..f15169093 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -46,6 +46,9 @@ import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryFormItemUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -140,6 +143,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + private InsuranceSchemeMapper getInsuranceSchemeMapper() { return MapperProxyFactory.getProxy(InsuranceSchemeMapper.class); } @@ -283,6 +290,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //补缴缴纳列表 queryParam.setPaymentStatus(PaymentStatusEnum.REPAIR.getValue()); + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountDetailMapper().list(queryParam); PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountDetailPO.class); @@ -1316,7 +1328,6 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return ExcelUtil.genWorkbookV2(rows, sheetName); } - /** * 获取福利台账中的补缴数据 * @param billMonth 账单月份 diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 77edbaff7..f34ff5f41 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -14,6 +14,9 @@ import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.mapper.siarchives.SocialSchemeMapper; import com.engine.salary.service.SIArchivesService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +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.db.MapperProxyFactory; @@ -40,6 +43,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } @Override public Map getTips(Map params) { @@ -90,6 +96,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService public Map listPage(InsuranceArchivesListParam param) { long currentEmployeeId = user.getUID(); + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); + Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); param.setNeedAuth(needAuth); if (needAuth) { diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index ab3762d26..62446c1f0 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -24,6 +24,9 @@ import com.engine.salary.mapper.sicategory.ICategoryMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.SIExportService; import com.engine.salary.service.SISchemeService; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -69,6 +72,10 @@ public class SIExportServiceImpl extends Service implements SIExportService { return MapperProxyFactory.getProxy(InsuranceExportMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + @Override public XSSFWorkbook exportOverView(InsuranceExportParam queryParam) { List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().selectList(queryParam.getBillMonth(), StringUtils.isBlank(queryParam.getPaymentOrganization()) ? null : Long.valueOf(queryParam.getPaymentOrganization())); @@ -117,14 +124,19 @@ public class SIExportServiceImpl extends Service implements SIExportService { @Override public XSSFWorkbook exportAccount(Integer paymentStatus, InsuranceExportParam param) { - List accountExportPOS = getInsuranceExportMapper().exportAccount(paymentStatus, param.getBillMonth(), param.getPaymentOrganization()); + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); + + List accountExportPOS = getInsuranceExportMapper().exportAccount(paymentStatus, param); AccountExportPOEncrypt.decryptAccountExportPOList(accountExportPOS); List columns = new ArrayList<>(); List> records = new ArrayList<>(); - if (PaymentStatusEnum.COMMON.getValue() == paymentStatus) { + if (Objects.equals(PaymentStatusEnum.COMMON.getValue(), paymentStatus)) { columns = buildCommonColumns(accountExportPOS, false); } - if (PaymentStatusEnum.REPAIR.getValue() == paymentStatus) { + if (Objects.equals(PaymentStatusEnum.REPAIR.getValue(), paymentStatus)) { columns = buildCommonColumns(accountExportPOS, true); } records = buildCommonRecords(accountExportPOS); diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 6dde701a8..30909877a 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -39,6 +39,9 @@ import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.*; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelParseHelper; @@ -126,6 +129,9 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } @Override public Map getForm(Map params) { return commandExecutor.execute(new SISchemeGetFormCmd(params, user)); @@ -208,6 +214,10 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { @Override public List listPageEmployeePOS(InsuranceArchivesListParam param) { long currentEmployeeId = user.getUID(); + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + param.setOrderRule(orderRule); + Boolean needAuth = getTaxAgentService().isNeedAuth(currentEmployeeId); if (needAuth) { List taxAgentEmployeeDTOS = getTaxAgentService().listTaxAgentAndEmployee(currentEmployeeId); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 29a3d8dfa..37d3632d5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -18,7 +18,9 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; -import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -90,6 +92,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + @Override public List countBySalaryAcctRecordId(Collection salaryAcctRecordIds) { if (CollectionUtils.isEmpty(salaryAcctRecordIds)) { @@ -177,6 +184,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public PageInfo listPageByParam(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + // 分页参数 SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); // 查询薪资核算人员 @@ -187,6 +199,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public List listByParam(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); return getSalaryAcctEmployeeMapper().list(queryParam); } @@ -222,7 +237,6 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } - @Override public PageInfo listPageByParam4Reduce(SalaryAcctEmployeeQueryParam queryParam) { @@ -286,8 +300,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // Set keySet = SalaryEntityUtil.properties(salaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); Map thisMonthSalaryAcctEmployeePOMap = SalaryEntityUtil.convert2Map(salaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); List resultList = Lists.newArrayList(); - thisMonthSalaryAcctEmployeePOMap.forEach((k,v)->{ - if(!lastMonthSalaryAcctEmployeePOMap.containsKey(k)){ + thisMonthSalaryAcctEmployeePOMap.forEach((k, v) -> { + if (!lastMonthSalaryAcctEmployeePOMap.containsKey(k)) { resultList.add(v); } }); @@ -297,7 +311,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public PageInfo listPageByParam4ConsolidatedTax(SalaryAcctEmployeeQueryParam queryParam) { - + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); // 查询合并计税的其他薪资核算记录 List otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(queryParam.getSalaryAcctRecordId()); if (CollectionUtils.isEmpty(otherSalaryAcctRecordPOS)) { @@ -314,6 +330,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public List listByParam4ConsolidatedTax(SalaryAcctEmployeeQueryParam queryParam) { + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); // 查询合并计税的其他薪资核算记录 List otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(queryParam.getSalaryAcctRecordId()); if (CollectionUtils.isEmpty(otherSalaryAcctRecordPOS)) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 468ffa805..07b3f3d42 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -31,6 +31,9 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.enums.OpenEnum; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelParseHelper; @@ -56,6 +59,7 @@ import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_ACCT_RESULT_SUM; import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; /** @@ -125,6 +129,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + @Override public XSSFWorkbook exportSalaryAcctEmployee(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); @@ -158,8 +166,6 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } - - @Override public XSSFWorkbook exportReducedEmployee(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); @@ -276,6 +282,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List headerList = new ArrayList<>(Arrays.asList(headers)); // 查询薪资核算结果 List> resultMapList = getSalaryAcctResultService(user).listByParam(queryParam); + + + //合计 + boolean total = false; + SalarySysConfPO openSum = getSalarySysConfService(user).getOneByCode(OPEN_ACCT_RESULT_SUM); + if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) { + total = true; + Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); + sumRow.put("taxAgentName", "总计"); + resultMapList.add(sumRow); + } + // excel导出的数据 List> rows = new ArrayList<>(); rows.add(headerList); @@ -288,7 +306,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } String sheetName = "薪资核算结果"; - return ExcelUtil.genWorkbookV2(rows, sheetName); + return ExcelUtil.genWorkbookV2(rows, sheetName, total); } /** @@ -694,7 +712,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc employeeId = employeeSameIds.get(0).getEmployeeId(); } } - }else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "部门"), dataKey.toString()) + } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "部门"), dataKey.toString()) || StringUtils.equals(SalaryI18nUtil.getI18nLabel(86186, "手机号"), dataKey.toString()) || StringUtils.equals(SalaryI18nUtil.getI18nLabel(86186, "工号"), dataKey.toString())) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index a79adeabb..8428275b7 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.report.bo.SalaryAcctResultReportBO; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO; @@ -30,6 +31,7 @@ import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; @@ -210,7 +212,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salarySobItemGroupIds = salarySobItemGroupPOS.stream().map(SalarySobItemGroupPO::getId).collect(Collectors.toList()); // 查询薪资账套的薪资项目副本(已经过滤关闭分类显示按钮的薪资项目) - List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobIdAndGroupId(salaryAcctEmployeePO.getSalarySobId(),salarySobItemGroupIds); + List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobIdAndGroupId(salaryAcctEmployeePO.getSalarySobId(), salarySobItemGroupIds); //---------------------------------------------- // 查询薪资核算所用薪资账套的薪资项目副本 @@ -218,7 +220,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 获取关闭显示的薪资项目 List hideItemIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salaryAcctEmployeePO.getSalarySobId()).isGroup(0).build()); // 过滤薪资项目 - salarySobItemPOS = salarySobItemPOS.stream().filter(item->!(hideItemIDs.contains(item.getSalaryItemId())) ).collect(Collectors.toList()); + salarySobItemPOS = salarySobItemPOS.stream().filter(item -> !(hideItemIDs.contains(item.getSalaryItemId()))).collect(Collectors.toList()); // 查询薪资项目 @@ -252,6 +254,40 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return resultPage; } + @Override + public Map sumRow(SalaryAcctResultQueryParam queryParam) { + // 查询薪资核算人员 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam); + + if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { + return null; + } + // 查询薪资核算记录 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); + } + // 查询薪资核算所用薪资账套的薪资项目 + List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); + List salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds); + // 查询薪资核算结果 + Set salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId); + List salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + Map map = new HashMap<>(); + Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId); + salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> { + BigDecimal sum = acctResultMap.get(item.getId()).stream() + .map(SalaryAcctResultPO::getResultValue) + .filter(NumberUtils::isCreatable) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(),item)); + }); + return map; + } + @Override public List> listByParam(SalaryAcctResultQueryParam queryParam) { // 查询薪资核算人员 diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 02da24b98..17a1afdd0 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -204,7 +204,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe * @return */ @NotNull - private List setSalaryArchiveStatus(Map> taxAgentEmployeesMap, List list) { + private List setSalaryArchiveStatus(Map> taxAgentEmployeesMap, Collection list) { list = list.stream().peek(dto -> { List taxAgentEmployees = taxAgentEmployeesMap.get(dto.getTaxAgentId()); Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployees, TaxAgentManageRangeEmployeeDTO.TaxAgentEmployee::getEmployeeId); @@ -214,7 +214,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe dto.setArchiveStatus(SalaryArchiveStatusEnum.ARCHIVE.getValue()); } }).collect(Collectors.toList()); - return list; + return (List)list; } @Override @@ -379,6 +379,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // 获取所有个税扣缴义务人 Collection taxAgentList = getTaxAgentService(user).listAll(); + //获取管理的人员范围 + List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(employeeId); + Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); + + //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); @@ -401,6 +406,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe //过滤档案状态 if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) { + //设置档案状态 + salaryArchives = setSalaryArchiveStatus(taxAgentEmployeesMap, salaryArchives); + //过滤档案状态 salaryArchives = salaryArchives.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList()); } } diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index da70bd2c8..47a8f8874 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -36,6 +36,9 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; import com.engine.salary.mapper.salarybill.SalarySendInfoMapper; import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.service.*; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; @@ -112,6 +115,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return SqlProxyHandle.getProxy(SalarySendInfoMapper.class); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + // @RpcReference // private FileDownloadClient fileDownloadClient; // /** @@ -434,6 +442,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public PageInfo salarySendInfoListPage(SalarySendInfoQueryParam queryParam) { + + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List page = salarySendInfoMapper.list(queryParam); PageInfo result = new PageInfo<>(page, SalarySendInfoListDTO.class); @@ -449,6 +462,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public PageInfo salarySendInfoDetailListPage(SalarySendDetailQueryParam queryParam) { + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = salarySendInfoMapper.detailList(queryParam); PageInfo pageInfo = new PageInfo<>(list, SalarySendDetailListDTO.class); @@ -999,6 +1016,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService SalarySendInfoQueryParam.checkParam(queryParam); // 获取行数据 + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); List list = salarySendInfoMapper.list(queryParam); list.forEach(e -> { // 发放状态 @@ -1034,6 +1054,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService List salaryItems = getSalaryItemsSetting(CollectionUtils.isNotEmpty(salaryTemplates) ? salaryTemplates.get(0) : null); // 2.获取基本数据 + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + List list = salarySendInfoMapper.detailList(queryParam); // 3.组装详情数据 diff --git a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java index 0f6e290f6..4f1e9d4cb 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java @@ -21,6 +21,9 @@ import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.TaxDeclarationDetailService; import com.engine.salary.service.TaxDeclarationService; +import com.engine.salary.sys.entity.vo.OrderRuleVO; +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.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; @@ -63,6 +66,10 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + @Override public List listByTaxDeclarationIdAndEmployeeIds(Long taxDeclarationId, Collection employeeIds) { if (CollectionUtils.isEmpty(employeeIds)) { @@ -74,8 +81,12 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla @Override public PageInfo listPage4EmployeeIdByParam(TaxDeclarationDetailListQueryParam queryParam) { + //排序配置 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); - List taxDeclarationEmployeeDTOS = getTaxDeclarationDetailMapper().listPage4EmployeeId(queryParam.getTaxDeclarationId()); + List taxDeclarationEmployeeDTOS = getTaxDeclarationDetailMapper().listPage4EmployeeId(queryParam); return new PageInfo<>(taxDeclarationEmployeeDTOS, TaxDeclarationEmployeeDTO.class); } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 66454467d..4467e8a59 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -26,4 +26,9 @@ public class SalarySysConstant { * 定位人员规则标识 */ public static final String MATCH_EMPLOYEE_MODE = "matchEmployeeMode"; + + /** + * 核算合计功能开启标识 + */ + public static final String OPEN_ACCT_RESULT_SUM = "OPEN_ACCT_RESULT_SUM"; } diff --git a/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java b/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java new file mode 100644 index 000000000..66441a579 --- /dev/null +++ b/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java @@ -0,0 +1,38 @@ +package com.engine.salary.sys.entity.param; + +import com.engine.salary.sys.enums.OpenEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 保存应用设置参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AppSettingSaveParam { + + /** + * 是否打印日志 + * + * @see OpenEnum + */ + private String isLog; + + /** + * 是否开启核算结果合计列 + * + * @see OpenEnum + */ + private String openAcctResultSum; + + +} diff --git a/src/com/engine/salary/sys/entity/vo/AppSettingVO.java b/src/com/engine/salary/sys/entity/vo/AppSettingVO.java new file mode 100644 index 000000000..24fef8bbb --- /dev/null +++ b/src/com/engine/salary/sys/entity/vo/AppSettingVO.java @@ -0,0 +1,38 @@ +package com.engine.salary.sys.entity.vo; + +import com.engine.salary.sys.enums.OpenEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 保存应用设置参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AppSettingVO { + + /** + * 是否打印日志 + * + * @see OpenEnum + */ + private String isLog; + + /** + * 是否开启核算结果合计列 + * + * @see OpenEnum + */ + private String openAcctResultSum; + + +} diff --git a/src/com/engine/salary/sys/enums/OpenEnum.java b/src/com/engine/salary/sys/enums/OpenEnum.java new file mode 100644 index 000000000..1707e2cc1 --- /dev/null +++ b/src/com/engine/salary/sys/enums/OpenEnum.java @@ -0,0 +1,55 @@ +package com.engine.salary.sys.enums; + +import com.engine.salary.enums.BaseEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 排序枚举 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum OpenEnum implements BaseEnum { + + OFF("0", "关闭", 1), + OPEN("1", "开启", 1); + + private String value; + + private String defaultLabel; + + private int labelId; + + + OpenEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static OpenEnum parseByValue(String value) { + for (OpenEnum openEnum : OpenEnum.values()) { + if (StringUtils.equals(openEnum.getValue(), value)) { + return openEnum; + } + } + return OFF; + } +} diff --git a/src/com/engine/salary/sys/service/SalarySysConfService.java b/src/com/engine/salary/sys/service/SalarySysConfService.java index 769b8474e..9091e1107 100644 --- a/src/com/engine/salary/sys/service/SalarySysConfService.java +++ b/src/com/engine/salary/sys/service/SalarySysConfService.java @@ -1,7 +1,9 @@ package com.engine.salary.sys.service; +import com.engine.salary.sys.entity.param.AppSettingSaveParam; import com.engine.salary.sys.entity.param.OrderRuleParam; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.AppSettingVO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; @@ -45,4 +47,16 @@ public interface SalarySysConfService { void saveMatchEmployeeModeRule(String rule); + /** + * 保存应用设置 + * @param param + */ + void saveAppSetting(AppSettingSaveParam param); + + /** + * 应用设置 + * @return + */ + AppSettingVO appSetting(); + } diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index 0b2b70530..3b5659d9f 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -4,8 +4,10 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.core.impl.Service; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.sys.SalarySysConfMapper; +import com.engine.salary.sys.entity.param.AppSettingSaveParam; import com.engine.salary.sys.entity.param.OrderRuleParam; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.AppSettingVO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.enums.AscOrDescEnum; import com.engine.salary.sys.enums.MatchEmployeeModeEnum; @@ -216,4 +218,39 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe } } + @Override + public void saveAppSetting(AppSettingSaveParam param) { + + String openAcctResultSum = param.getOpenAcctResultSum(); + SalarySysConfPO po = getOneByCode(OPEN_ACCT_RESULT_SUM); + if (po == null) { + SalarySysConfPO build = SalarySysConfPO.builder() + .id(IdGenerator.generate()) + .confKey(OPEN_ACCT_RESULT_SUM) + .confValue(openAcctResultSum) + .title("开启核算结果合并") + .orderWeight(0) + .module("app") + .updateTime(new Date()) + .createTime(new Date()) + .deleteType(0) + .build(); + getSalarySysConfMapper().insertIgnoreNull(build); + } else { + po.setConfValue(openAcctResultSum); + po.setUpdateTime(new Date()); + getSalarySysConfMapper().updateIgnoreNull(po); + } + } + + @Override + public AppSettingVO appSetting() { + AppSettingVO appSettingVO = AppSettingVO.builder().build(); + SalarySysConfPO po = getOneByCode(OPEN_ACCT_RESULT_SUM); + if (po != null) { + appSettingVO.setOpenAcctResultSum(po.getConfValue()); + } + return appSettingVO; + } + } diff --git a/src/com/engine/salary/util/excel/ExcelUtil.java b/src/com/engine/salary/util/excel/ExcelUtil.java index 0565fee40..2aa9775d1 100644 --- a/src/com/engine/salary/util/excel/ExcelUtil.java +++ b/src/com/engine/salary/util/excel/ExcelUtil.java @@ -8,6 +8,7 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.xssf.usermodel.*; +import java.awt.*; import java.util.Date; import java.util.List; @@ -193,4 +194,76 @@ public class ExcelUtil { } return workbook; } + + + public static XSSFWorkbook genWorkbookV2(List> rowList, String sheetName, boolean lastRowRed) { + XSSFWorkbook workbook = new XSSFWorkbook(); + + // 设置title样式 + XSSFCellStyle titleCellStyle = workbook.createCellStyle(); + XSSFFont titleFont = workbook.createFont(); + titleFont.setFontName("仿宋"); + titleFont.setFontHeightInPoints((short) 15); + titleCellStyle.setFont(titleFont); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER); + titleCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());//背景色 + titleCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + + // 设置主体样式 + XSSFCellStyle cellStyle = workbook.createCellStyle(); + XSSFFont font = workbook.createFont(); + font.setFontName("宋体"); + font.setFontHeightInPoints((short) 10);// 设置字体大小 + cellStyle.setFont(font);// 选择需要用到的字体格式 + cellStyle.setWrapText(true); + + XSSFCellStyle redCellStyle = workbook.createCellStyle(); + XSSFFont redFont = workbook.createFont(); + redFont.setFontName("宋体"); + redFont.setFontHeightInPoints((short) 10);// 设置字体大小 + redFont.setColor(new XSSFColor(new Color(0xFF3333), null)); + redCellStyle.setWrapText(true); + redCellStyle.setFont(redFont);// 选择需要用到的字体格式 + + XSSFSheet sheet = workbook.createSheet(sheetName); + //自适应宽度 + sheet.autoSizeColumn(0, true); + //默认列宽 + sheet.setDefaultColumnWidth(20); + //默认行高 + sheet.setDefaultRowHeightInPoints(18); + + for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { + List infoList = rowList.get(rowIndex); + XSSFRow row = sheet.createRow(rowIndex); + for (int cellIndex = 0; cellIndex < infoList.size(); cellIndex++) { + XSSFCell cell = row.createCell(cellIndex); + if (rowIndex == 0) { + cell.setCellStyle(titleCellStyle); + } else { + if (lastRowRed && rowIndex == rowList.size() - 1) { + cell.setCellStyle(redCellStyle); + } else { + cell.setCellStyle(cellStyle); + } + } + Object o = infoList.get(cellIndex); + if (o instanceof String) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Boolean) { + cell.setCellType(CellType.BOOLEAN); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Date) { + cell.setCellType(CellType.STRING); + cell.setCellValue(SalaryDateUtil.getFormatLocalDate((Date) o)); + } else { + cell.setCellType(CellType.STRING); + cell.setCellValue(o == null ? "" : o.toString()); + } + } + } + return workbook; + } } diff --git a/src/com/engine/salary/web/AddUpSituationController.java b/src/com/engine/salary/web/AddUpSituationController.java index 8c1ba45bb..b9fa4d1d3 100644 --- a/src/com/engine/salary/web/AddUpSituationController.java +++ b/src/com/engine/salary/web/AddUpSituationController.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; import com.engine.salary.entity.datacollection.param.AddUpSituationImportParam; import com.engine.salary.entity.datacollection.param.AddUpSituationQueryParam; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.AddUpSituationWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -210,6 +211,7 @@ public class AddUpSituationController { String taxYearMonth = request.getParameter("taxYearMonth"); if (StringUtils.isNotBlank(taxYearMonth)) { param.setTaxYearMonth(Arrays.asList(taxYearMonth.split(","))); + param.setTaxYearMonthDate(Arrays.stream(taxYearMonth.split(",")).map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } String username = request.getParameter("username"); diff --git a/src/com/engine/salary/web/OtherDeductionController.java b/src/com/engine/salary/web/OtherDeductionController.java index bc059a59e..137b2ecc5 100644 --- a/src/com/engine/salary/web/OtherDeductionController.java +++ b/src/com/engine/salary/web/OtherDeductionController.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; import com.engine.salary.entity.datacollection.param.OtherDeductionImportParam; import com.engine.salary.entity.datacollection.param.OtherDeductionQueryParam; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.OtherDeductionWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -202,7 +203,8 @@ public class OtherDeductionController { } String declareMonth = request.getParameter("declareMonth"); if (StringUtils.isNotBlank(declareMonth)) { - param.setDeclareMonth(Arrays.asList(declareMonth.split(","))); + param.setDeclareMonth(Arrays.stream(declareMonth.split(",")).map(e -> e + "-01 00:00:00").collect(Collectors.toList())); + param.setDeclareMonthDate(Arrays.stream(declareMonth.split(",")).map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } String username = request.getParameter("username"); diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 635775ebb..ec7b3522e 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -245,6 +245,10 @@ public class SalaryArchiveController { if (StringUtils.isNotBlank(hasData)) { param.setHasData(Boolean.valueOf(hasData)); } + String archiveStatus = request.getParameter("archiveStatus"); + if (StringUtils.isNotBlank(archiveStatus)) { + param.setArchiveStatus(archiveStatus); + } return param; } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index bc0df4390..c01e3b696 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -269,7 +269,7 @@ public class SalaryBillController { XSSFWorkbook workbook = getSalarySendWrapper(user).exportInfoList(queryParam); - String fileName = "工资单发放信息列表"; + String fileName = "工资单发放信息" + LocalDate.now(); try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); } catch (UnsupportedEncodingException e) { @@ -393,15 +393,15 @@ public class SalaryBillController { SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam(); String salarySendId = request.getParameter("salarySendId"); String ids = request.getParameter("ids"); - if(StringUtils.isNotBlank(ids)) { + if (StringUtils.isNotBlank(ids)) { queryParam.setIds(Arrays.asList(ids.split(",")).stream().map(Long::new).collect(Collectors.toList())); } - if(StringUtils.isNotBlank(salarySendId)) { + if (StringUtils.isNotBlank(salarySendId)) { queryParam.setSalarySendId(Long.parseLong(salarySendId)); } XSSFWorkbook workbook = getSalarySendWrapper(user).exportDetailList(queryParam); - String fileName = "工资单发放详情列表"+ LocalDate.now(); + String fileName = "工资单发放详情列表" + LocalDate.now(); try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); } catch (UnsupportedEncodingException e) { diff --git a/src/com/engine/salary/web/SalarySystemConfigController.java b/src/com/engine/salary/web/SalarySystemConfigController.java index eef5d51bc..0083d50a6 100644 --- a/src/com/engine/salary/web/SalarySystemConfigController.java +++ b/src/com/engine/salary/web/SalarySystemConfigController.java @@ -1,10 +1,12 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.sys.entity.param.AppSettingSaveParam; import com.engine.salary.sys.entity.param.MatchEmployeeModeSaveParam; import com.engine.salary.sys.entity.param.OrderRuleParam; import com.engine.salary.sys.entity.param.SalarySysConfQueryParam; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.AppSettingVO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.util.ResponseResult; @@ -178,4 +180,36 @@ public class SalarySystemConfigController { return new ResponseResult(user).run(getSalarySystemConfigWrapper(user)::saveMatchEmployeeModeRule, param); } + + /** + * 应用设置 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/app/setting/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveAppSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AppSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySystemConfigWrapper(user)::saveAppSetting, param); + } + + /** + * 应用设置 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/app/setting") + @Produces(MediaType.APPLICATION_JSON) + public String appSetting(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySystemConfigWrapper(user)::appSetting); + } + } diff --git a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java index e5eb8f0ed..493dd5623 100644 --- a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java +++ b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java @@ -2,7 +2,6 @@ package com.engine.salary.wrapper; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; -import com.api.browser.bean.SearchConditionOption; import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; import com.engine.common.util.ServiceUtil; @@ -23,7 +22,6 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.User; -import weaver.systeminfo.SystemEnv; import java.util.ArrayList; import java.util.HashMap; @@ -91,37 +89,37 @@ public class OtherDeductionWrapper extends Service { conditionItems.add(jobNum); - SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); - idNo.setInputType("input"); - idNo.setColSpan(2); - idNo.setFieldcol(16); - idNo.setLabelcol(8); - idNo.setViewAttr(2); - idNo.setLabel("证件号码"); - conditionItems.add(idNo); - - //日期范围选项 - List dateOptions = new ArrayList(); - dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) - SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); - hiredate.setInputType("rangepicker"); - hiredate.setFormat("yyyy-MM-dd"); - hiredate.setFieldcol(16); - hiredate.setLabelcol(8); - hiredate.setViewAttr(2); - hiredate.setLabel("入职日期"); - hiredate.setOptions(dateOptions); - conditionItems.add(hiredate); - - - SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); - mobile.setInputType("input"); - mobile.setColSpan(2); - mobile.setFieldcol(16); - mobile.setLabelcol(8); - mobile.setViewAttr(2); - mobile.setLabel("手机号"); - conditionItems.add(mobile); +// SearchConditionItem idNo = conditionFactory.createCondition(ConditionType.INPUT, 25034, "idNo"); +// idNo.setInputType("input"); +// idNo.setColSpan(2); +// idNo.setFieldcol(16); +// idNo.setLabelcol(8); +// idNo.setViewAttr(2); +// idNo.setLabel("证件号码"); +// conditionItems.add(idNo); +// +// //日期范围选项 +// List dateOptions = new ArrayList(); +// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6) +// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"}); +// hiredate.setInputType("rangepicker"); +// hiredate.setFormat("yyyy-MM-dd"); +// hiredate.setFieldcol(16); +// hiredate.setLabelcol(8); +// hiredate.setViewAttr(2); +// hiredate.setLabel("入职日期"); +// hiredate.setOptions(dateOptions); +// conditionItems.add(hiredate); +// +// +// SearchConditionItem mobile = conditionFactory.createCondition(ConditionType.INPUT, 25034, "mobile"); +// mobile.setInputType("input"); +// mobile.setColSpan(2); +// mobile.setFieldcol(16); +// mobile.setLabelcol(8); +// mobile.setViewAttr(2); +// mobile.setLabel("手机号"); +// conditionItems.add(mobile); addGroups.add(new SearchConditionGroup("常用条件", true, conditionItems)); diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 5e6a0c62e..53bae8140 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -16,6 +16,10 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.enums.OpenEnum; +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; @@ -28,6 +32,8 @@ import weaver.hrm.User; import java.math.BigDecimal; import java.util.*; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_ACCT_RESULT_SUM; + /** * 薪资核算结果 *

Copyright: Copyright (c) 2022

@@ -40,34 +46,38 @@ import java.util.*; public class SalaryAcctResultWrapper extends Service { private SalaryAcctResultService getSalaryAcctResultService(User user) { - return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); + return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); } private SalaryAcctRecordService getSalaryAcctRecordService(User user) { - return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } private SalarySobItemService getSalarySobItemService(User user) { - return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); + return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); } private SalaryAcctEmployeeWrapper getSalaryAcctEmployeeWrapper(User user) { - return ServiceUtil.getService(SalaryAcctEmployeeWrapper.class, user); + return ServiceUtil.getService(SalaryAcctEmployeeWrapper.class, user); } private SalaryAcctProgressService getSalaryAcctProgressService(User user) { - return ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user); + return ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user); } // private SalaryCheckResultService salaryCheckResultService; private SalaryAcctExcelService getSalaryAcctExcelService(User user) { - return ServiceUtil.getService(SalaryAcctExcelServiceImpl.class, user); + return ServiceUtil.getService(SalaryAcctExcelServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } /** @@ -94,6 +104,12 @@ public class SalaryAcctResultWrapper extends Service { datas.put("pageInfo", page); datas.put("columns", columns); + //合计 + SalarySysConfPO openSum = getSalarySysConfService(user).getOneByCode(OPEN_ACCT_RESULT_SUM); + if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) { + Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); + datas.put("sumRow", sumRow); + } return datas; } @@ -202,7 +218,7 @@ public class SalaryAcctResultWrapper extends Service { //报表参数 List emps = getSalaryEmployeeService(user).listAllForReport(); - calculateParam.setEmps(SalaryEntityUtil.convert2Map(emps,DataCollectionEmployee::getEmployeeId)); + calculateParam.setEmps(SalaryEntityUtil.convert2Map(emps, DataCollectionEmployee::getEmployeeId)); //当前登陆人员 DataCollectionEmployee simpleEmployee = new DataCollectionEmployee(); diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index cfbba9ffa..097e4e2c2 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -236,7 +236,7 @@ public class SalarySendWrapper extends Service { conditionItems.add(position); //状态 - SearchConditionItem status = conditionFactory.createCondition(ConditionType.SELECT, 25034, "taxAgent"); + SearchConditionItem status = conditionFactory.createCondition(ConditionType.SELECT, 25034, "userstatus"); status.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 status.setFieldcol(16); //条件输入框所占宽度,默认值18 status.setLabelcol(8); @@ -248,19 +248,19 @@ public class SalarySendWrapper extends Service { status.setLabel("状态"); //设置文本值 这个将覆盖多语言标签的值 conditionItems.add(status); - //入职日期 - SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 25034, "hiredate"); - hiredate.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 - hiredate.setFieldcol(16); //条件输入框所占宽度,默认值18 - hiredate.setLabelcol(8); - hiredate.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 - Map otherParams1 = new HashMap(); - otherParams1.put("format", "yyyy-MM-dd"); - hiredate.setOtherParams(otherParams1); - hiredate.setInputType("day"); - hiredate.setMode("day"); - hiredate.setLabel("入职日期"); //设置文本值 这个将覆盖多语言标签的值 - conditionItems.add(hiredate); +// //入职日期 +// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 25034, "hiredate"); +// hiredate.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 +// hiredate.setFieldcol(16); //条件输入框所占宽度,默认值18 +// hiredate.setLabelcol(8); +// hiredate.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 +// Map otherParams1 = new HashMap(); +// otherParams1.put("format", "yyyy-MM-dd"); +// hiredate.setOtherParams(otherParams1); +// hiredate.setInputType("day"); +// hiredate.setMode("day"); +// hiredate.setLabel("入职日期"); //设置文本值 这个将覆盖多语言标签的值 +// conditionItems.add(hiredate); //发送状态 SearchConditionItem sendStatus = conditionFactory.createCondition(ConditionType.SELECT, 25034, "sendStatus"); @@ -417,7 +417,7 @@ public class SalarySendWrapper extends Service { conditionItems.add(position); //状态 - SearchConditionItem status = conditionFactory.createCondition(ConditionType.SELECT, 25034, "taxAgent"); + SearchConditionItem status = conditionFactory.createCondition(ConditionType.SELECT, 25034, "userstatus"); status.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 status.setFieldcol(16); //条件输入框所占宽度,默认值18 status.setLabelcol(8); @@ -429,19 +429,19 @@ public class SalarySendWrapper extends Service { status.setLabel("状态"); //设置文本值 这个将覆盖多语言标签的值 conditionItems.add(status); - //入职日期 - SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 25034, "hiredate"); - hiredate.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 - hiredate.setFieldcol(16); //条件输入框所占宽度,默认值18 - hiredate.setLabelcol(8); - hiredate.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 - Map otherParams1 = new HashMap(); - otherParams1.put("format", "yyyy-MM-dd"); - hiredate.setOtherParams(otherParams1); - hiredate.setInputType("day"); - hiredate.setMode("day"); - hiredate.setLabel("入职日期"); //设置文本值 这个将覆盖多语言标签的值 - conditionItems.add(hiredate); +// //入职日期 +// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 25034, "hiredate"); +// hiredate.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 +// hiredate.setFieldcol(16); //条件输入框所占宽度,默认值18 +// hiredate.setLabelcol(8); +// hiredate.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 +// Map otherParams1 = new HashMap(); +// otherParams1.put("format", "yyyy-MM-dd"); +// hiredate.setOtherParams(otherParams1); +// hiredate.setInputType("day"); +// hiredate.setMode("day"); +// hiredate.setLabel("入职日期"); //设置文本值 这个将覆盖多语言标签的值 +// conditionItems.add(hiredate); //合并计税 SearchConditionItem mergeCountTax = conditionFactory.createCondition(ConditionType.CHECKBOX, 25034, "mergeCountTax"); diff --git a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java index ad20fe9ce..c3dcdeb52 100644 --- a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java @@ -2,10 +2,12 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.sys.entity.param.AppSettingSaveParam; import com.engine.salary.sys.entity.param.MatchEmployeeModeSaveParam; import com.engine.salary.sys.entity.param.OrderRuleParam; import com.engine.salary.sys.entity.param.SalarySysConfQueryParam; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.entity.vo.AppSettingVO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.sys.service.SalarySysConfService; @@ -118,4 +120,15 @@ public class SalarySystemConfigWrapper extends Service { ValidUtil.doValidator(param); getSalarySysConfService(user).saveMatchEmployeeModeRule(param.getRule()); } + + public void saveAppSetting(AppSettingSaveParam param) { + ValidUtil.doValidator(param); + getSalarySysConfService(user).saveAppSetting(param); + } + + public AppSettingVO appSetting() { + + return getSalarySysConfService(user).appSetting(); + + } }