钱智,社保报表

This commit is contained in:
钱涛 2025-11-25 16:13:40 +08:00
parent ceb542ce89
commit fe02f57215
7 changed files with 845 additions and 0 deletions

View File

@ -0,0 +1,584 @@
package com.engine.salary.entity.siaccount.dto;
import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.annotation.Encrypt;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QZReportListDTO {
/**
* 公司名称
*/
@ElogTransform(name = "个税扣缴义务人")
private Long paymentOrganization;
private String paymentOrganizationName;
/**
* 工号
*/
private String workCode;
/**
* 一级部门
*/
private String dept1;
/**
* 二级部门
*/
private String dept2;
/**
* 实际工作地
*/
private String actualWorkplace;
/**
* 劳动关系地
*/
private String laborWorkplace;
/**
* 岗位名称
*/
private String jobcall;
/**
* 进入日期
*/
/**
* 离职日期
*/
/**
* 社保基数
*/
private String socialBase;
/**
* 公积金基数
*/
private String fundBase;
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 账单月份
*/
@ElogTransform(name = "账单月份")
private String billMonth;
/**
* 账单状态 0-未归档 1-已归档
*/
@ElogTransform(name = "账单状态")
private Integer billStatus;
/**
* 缴纳状态
*/
@ElogTransform(name = "缴纳状态")
private Integer paymentStatus;
/**
* 补缴月份/退差月份
*/
@ElogTransform(name = "补缴月份/退差月份")
private String supplementaryMonth;
/**
* 补缴项目
*/
@ElogTransform(name = "补缴项目")
private String supplementaryProjects;
/**
* 数据来源 0-系统核算 1-临时数据
*/
@ElogTransform(name = "数据来源")
private Integer resourceFrom;
/**
* 社保缴纳组织
*/
@ElogTransform(name = "社保缴纳组织")
private Long socialPayOrg;
/**
* 社保账号
*/
@ElogTransform(name = "社保账号")
private String socialAccount;
/**
* 公积金缴纳组织
*/
@ElogTransform(name = "公积金缴纳组织")
private Long fundPayOrg;
/**
* 公积金账号
*/
@ElogTransform(name = "公积金账号")
private String fundAccount;
/**
* 补充公积金账号
*/
@ElogTransform(name = "补充公积金账号")
private String supplementFundAccount;
/**
* 其他福利缴纳组织
*/
@ElogTransform(name = "其他福利缴纳组织")
private Long otherPayOrg;
/**
* 社保方案ID
*/
@ElogTransform(name = "社保方案ID")
private Long socialSchemeId;
/**
* 社保缴纳基数
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数")
private String socialPaymentBaseString;
/**
* 社保缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数——单位")
private String socialPaymentComBaseString;
/**
* 公积金方案ID
*/
@ElogTransform(name = "公积金方案ID")
private Long fundSchemeId;
/**
* 公积金缴纳基数
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数")
private String fundPaymentBaseString;
/**
* 公积金缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数——单位")
private String fundPaymentComBaseString;
/**
* 其他福利方案id
*/
@ElogTransform(name = "其他福利方案id")
private Long otherSchemeId;
/**
* 其他福利缴纳基数
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数")
private String otherPaymentBaseString;
/**
* 其他福利缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数——单位")
private String otherPaymentComBaseString;
/**
* 社保个人缴费明细
*/
@Encrypt
@ElogTransform(name = "社保个人缴费明细")
private String socialPerJson;
/**
* 特殊社保缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊社保缴费明细")
private String socialSpecialJson;
/**
* 社保个人合计
*/
@Encrypt
@ElogTransform(name = "社保个人合计")
private String socialPerSum;
/**
* 公积金个人缴费明细
*/
@Encrypt
@ElogTransform(name = "公积金个人缴费明细")
private String fundPerJson;
/**
* 特殊公积金缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊公积金缴费明细")
private String fundSpecialJson;
/**
* 公积金个人合计
*/
@Encrypt
@ElogTransform(name = "公积金个人合计")
private String fundPerSum;
/**
* 其他福利个人缴费明细
*/
@Encrypt
@ElogTransform(name = "其他福利个人缴费明细")
private String otherPerJson;
/**
* 其他福利个人合计
*/
@Encrypt
@ElogTransform(name = "其他福利个人合计")
private String otherPerSum;
/**
* 个人合计
*/
@Encrypt
@ElogTransform(name = "个人合计")
private String perSum;
/**
* 社保单位缴费明细
*/
@Encrypt
@ElogTransform(name = "社保单位缴费明细")
private String socialComJson;
/**
* 社保单位合计
*/
@Encrypt
@ElogTransform(name = "社保单位合计")
private String socialComSum;
/**
* 公积金单位缴费明细
*/
@ElogTransform(name = "公积金单位缴费明细")
private String fundComJson;
/**
* 公积金单位合计
*/
@ElogTransform(name = "公积金单位合计")
private String fundComSum;
/**
* 其他福利单位缴费明细
*/
@ElogTransform(name = "其他福利单位缴费明细")
private String otherComJson;
/**
* 其他福利单位合计
*/
@ElogTransform(name = "其他福利单位合计")
private String otherComSum;
/**
* 单位合计
*/
@Encrypt
@ElogTransform(name = "单位合计")
private String comSum;
/**
* 社保合计
*/
@Encrypt
@ElogTransform(name = "社保合计")
private String socialSum;
/**
* 公积金合计
*/
@Encrypt
@ElogTransform(name = "公积金合计")
private String fundSum;
/**
* 其他福利合计
*/
@Encrypt
@ElogTransform(name = "其他福利合计")
private String otherSum;
/**
* 合计
*/
@Encrypt
@ElogTransform(name = "合计")
private String total;
private String subcompanyName;
private Long subcompanyId;
private String departmentName;
private Long departmentId;
private String jobtitleName;
private Long jobtitleId;
private Long jobcallId;
private String status;
/**
* 社保方案ID
*/
@ElogTransform(name = "社保方案ID")
private Long bSocialSchemeId;
/**
* 社保缴纳基数
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数")
private String bSocialPaymentBaseString;
/**
* 社保缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数——单位")
private String bSocialPaymentComBaseString;
/**
* 公积金方案ID
*/
@ElogTransform(name = "公积金方案ID")
private Long bFundSchemeId;
/**
* 公积金缴纳基数
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数")
private String bFundPaymentBaseString;
/**
* 公积金缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数——单位")
private String bFundPaymentComBaseString;
/**
* 其他福利方案id
*/
@ElogTransform(name = "其他福利方案id")
private Long bOtherSchemeId;
/**
* 其他福利缴纳基数
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数")
private String bOtherPaymentBaseString;
/**
* 其他福利缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数——单位")
private String bOtherPaymentComBaseString;
/**
* 社保个人缴费明细
*/
@Encrypt
@ElogTransform(name = "社保个人缴费明细")
private String bSocialPerJson;
/**
* 特殊社保缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊社保缴费明细")
private String bSocialSpecialJson;
/**
* 社保个人合计
*/
@Encrypt
@ElogTransform(name = "社保个人合计")
private String bSocialPerSum;
/**
* 公积金个人缴费明细
*/
@Encrypt
@ElogTransform(name = "公积金个人缴费明细")
private String bFundPerJson;
/**
* 特殊公积金缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊公积金缴费明细")
private String bFundSpecialJson;
/**
* 公积金个人合计
*/
@Encrypt
@ElogTransform(name = "公积金个人合计")
private String bFundPerSum;
/**
* 其他福利个人缴费明细
*/
@Encrypt
@ElogTransform(name = "其他福利个人缴费明细")
private String bOtherPerJson;
/**
* 其他福利个人合计
*/
@Encrypt
@ElogTransform(name = "其他福利个人合计")
private String bOtherPerSum;
/**
* 个人合计
*/
@Encrypt
@ElogTransform(name = "个人合计")
private String bPerSum;
/**
* 社保单位缴费明细
*/
@Encrypt
@ElogTransform(name = "社保单位缴费明细")
private String bSocialComJson;
/**
* 社保单位合计
*/
@Encrypt
@ElogTransform(name = "社保单位合计")
private String bSocialComSum;
/**
* 公积金单位缴费明细
*/
@ElogTransform(name = "公积金单位缴费明细")
private String bFundComJson;
/**
* 公积金单位合计
*/
@ElogTransform(name = "公积金单位合计")
private String bFundComSum;
/**
* 其他福利单位缴费明细
*/
@ElogTransform(name = "其他福利单位缴费明细")
private String bOtherComJson;
/**
* 其他福利单位合计
*/
@ElogTransform(name = "其他福利单位合计")
private String bOtherComSum;
/**
* 单位合计
*/
@Encrypt
@ElogTransform(name = "单位合计")
private String bComSum;
/**
* 社保合计
*/
@Encrypt
@ElogTransform(name = "社保合计")
private String bSocialSum;
/**
* 公积金合计
*/
@Encrypt
@ElogTransform(name = "公积金合计")
private String bFundSum;
/**
* 其他福利合计
*/
@Encrypt
@ElogTransform(name = "其他福利合计")
private String bOtherSum;
/**
* 合计
*/
@Encrypt
@ElogTransform(name = "合计")
private String bTotal;
}

View File

@ -0,0 +1,26 @@
package com.engine.salary.entity.siaccount.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 钱智社保报表
* <p>Copyright: Copyright (c) 2025</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class QZInsuranceAccountBatchParam {
private List<Long> ids;
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.mapper.siaccount;
import com.engine.salary.entity.siaccount.dto.QZReportListDTO;
import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam;
import com.engine.salary.entity.siaccount.param.SupplementAccountBaseParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
@ -200,4 +201,6 @@ public interface InsuranceAccountDetailMapper {
void deleteByIds(@Param("ids")List<Long> ids);
void deleteByEmpIds(@Param("employeeIds")List<Long> deleteEmployeeIds, @Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization);
List<QZReportListDTO> qzReportList(InsuranceAccountDetailParam queryParam);
}

View File

@ -1636,4 +1636,191 @@
AND t.payment_organization = #{paymentOrganization}
AND t.employee_id = #{employeeId}
</select>
<resultMap id="qzReportListMap" type="com.engine.salary.entity.siaccount.dto.QZReportListDTO">
<result column="id" property="id"/>
<result column="payment_organization" property="paymentOrganization"/>
<result column="employee_id" property="employeeId"/>
<result column="bill_month" property="billMonth"/>
<result column="bill_status" property="billStatus"/>
<result column="payment_status" property="paymentStatus"/>
<result column="supplementary_month" property="supplementaryMonth"/>
<result column="supplementary_projects" property="supplementaryProjects"/>
<result column="resource_from" property="resourceFrom"/>
<result column="social_pay_org" property="socialPayOrg"/>
<result column="social_account" property="socialAccount"/>
<result column="fund_pay_org" property="fundPayOrg"/>
<result column="fund_account" property="fundAccount"/>
<result column="supplement_fund_account" property="supplementFundAccount"/>
<result column="other_pay_org" property="otherPayOrg"/>
<result column="subcompany_name" property="subcompanyName"/>
<result column="subcompany_id" property="subcompanyId"/>
<result column="department_name" property="departmentName"/>
<result column="department_id" property="departmentId"/>
<result column="jobtitle_name" property="jobtitleName"/>
<result column="jobtitle_id" property="jobtitleId"/>
<result column="jobcall" property="jobcall"/>
<result column="jobcall_id" property="jobcallId"/>
<result column="status" property="status"/>
<result column="social_scheme_id" property="socialSchemeId"/>
<result column="social_payment_base_string" property="socialPaymentBaseString"/>
<result column="social_payment_com_base_string" property="socialPaymentComBaseString"/>
<result column="fund_scheme_id" property="fundSchemeId"/>
<result column="fund_payment_base_string" property="fundPaymentBaseString"/>
<result column="fund_payment_com_base_string" property="fundPaymentComBaseString"/>
<result column="other_scheme_id" property="otherSchemeId"/>
<result column="other_payment_base_string" property="otherPaymentBaseString"/>
<result column="other_payment_com_base_string" property="otherPaymentComBaseString"/>
<result column="social_per_json" property="socialPerJson"/>
<result column="social_per_sum" property="socialPerSum"/>
<result column="fund_per_json" property="fundPerJson"/>
<result column="fund_per_sum" property="fundPerSum"/>
<result column="other_per_json" property="otherPerJson"/>
<result column="other_per_sum" property="otherPerSum"/>
<result column="per_sum" property="perSum"/>
<result column="social_com_json" property="socialComJson"/>
<result column="social_com_sum" property="socialComSum"/>
<result column="fund_com_json" property="fundComJson"/>
<result column="fund_com_sum" property="fundComSum"/>
<result column="other_com_json" property="otherComJson"/>
<result column="other_com_sum" property="otherComSum"/>
<result column="com_sum" property="comSum"/>
<result column="social_sum" property="socialSum"/>
<result column="fund_sum" property="fundSum"/>
<result column="other_sum" property="otherSum"/>
<result column="total" property="total"/>
<result column="social_special_json" property="socialSpecialJson"/>
<result column="fund_special_json" property="fundSpecialJson"/>
<result column="b_social_scheme_id" property="bSocialSchemeId"/>
<result column="b_social_payment_base_string" property="bSocialPaymentBaseString"/>
<result column="b_social_payment_com_base_string" property="bSocialPaymentComBaseString"/>
<result column="b_fund_scheme_id" property="bFundSchemeId"/>
<result column="b_fund_payment_base_string" property="bFundPaymentBaseString"/>
<result column="b_fund_payment_com_base_string" property="bFundPaymentComBaseString"/>
<result column="b_other_scheme_id" property="bOtherSchemeId"/>
<result column="b_other_payment_base_string" property="bOtherPaymentBaseString"/>
<result column="b_other_payment_com_base_string" property="bOtherPaymentComBaseString"/>
<result column="b_social_per_json" property="bSocialPerJson"/>
<result column="b_social_per_sum" property="bSocialPerSum"/>
<result column="b_fund_per_json" property="bFundPerJson"/>
<result column="b_fund_per_sum" property="bFundPerSum"/>
<result column="b_other_per_json" property="bOtherPerJson"/>
<result column="b_other_per_sum" property="bOtherPerSum"/>
<result column="b_per_sum" property="bPerSum"/>
<result column="b_social_com_json" property="bSocialComJson"/>
<result column="b_social_com_sum" property="bSocialComSum"/>
<result column="b_fund_com_json" property="bFundComJson"/>
<result column="b_fund_com_sum" property="bFundComSum"/>
<result column="b_other_com_json" property="bOtherComJson"/>
<result column="b_other_com_sum" property="bOtherComSum"/>
<result column="b_com_sum" property="bComSum"/>
<result column="b_social_sum" property="bSocialSum"/>
<result column="b_fund_sum" property="bFundSum"/>
<result column="b_other_sum" property="bOtherSum"/>
<result column="b_total" property="bTotal"/>
<result column="b_social_special_json" property="bSocialSpecialJson"/>
<result column="b_fund_special_json" property="bFundSpecialJson"/>
</resultMap>
<select id="qzReportList" parameterType="com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam" resultMap="qzReportListMap">
select a.id
, a.employee_id
, a.status as employee_status
, a.bill_month
, a.bill_status
, a.payment_status
, a.supplementary_month
, a.supplementary_projects
, a.resource_from
, a.social_pay_org
, a.social_account
, a.fund_pay_org
, a.fund_account
, a.supplement_fund_account
, a.other_pay_org
, a.social_scheme_id
, a.social_payment_base_string
, a.social_payment_com_base_string
, a.fund_scheme_id
, a.fund_payment_base_string
, a.fund_payment_com_base_string
, a.other_scheme_id
, a.other_payment_base_string
, a.other_payment_com_base_string
, a.social_per_json
, a.social_per_sum
, a.fund_per_json
, a.fund_per_sum
, a.other_per_json
, a.other_per_sum
, a.per_sum
, a.social_com_json
, a.social_com_sum
, a.fund_com_json
, a.fund_com_sum
, a.other_com_json
, a.other_com_sum
, a.com_sum
, a.social_sum
, a.fund_sum
, a.other_sum
, a.total
, a.payment_organization
, a.subcompany_name
, a.subcompany_id
, a.department_name
, a.department_id
, a.jobtitle_name
, a.jobtitle_id
, a.jobcall
, a.jobcall_id
, a.status
, a.social_special_json
, a.fund_special_json
, b.social_scheme_id as b_social_scheme_id
, b.social_payment_base_string as b_social_payment_base_string
, b.social_payment_com_base_string as b_social_payment_com_base_string
, b.fund_scheme_id as b_fund_scheme_id
, b.fund_payment_base_string as b_fund_payment_base_string
, b.fund_payment_com_base_string as b_fund_payment_com_base_string
, b.other_scheme_id as b_other_scheme_id
, b.other_payment_base_string as b_other_payment_base_string
, b.other_payment_com_base_string as b_other_payment_com_base_string
, b.social_per_json as b_social_per_json
, b.social_per_sum as b_social_per_sum
, b.fund_per_json as b_fund_per_json
, b.fund_per_sum as b_fund_per_sum
, b.other_per_json as b_other_per_json
, b.other_per_sum as b_other_per_sum
, b.per_sum as b_per_sum
, b.social_com_json as b_social_com_json
, b.social_com_sum as b_social_com_sum
, b.fund_com_json as b_fund_com_json
, b.fund_com_sum as b_fund_com_sum
, b.other_com_json as b_other_com_json
, b.other_com_sum as b_other_com_sum
, b.com_sum as b_com_sum
, b.social_sum as b_social_sum
, b.fund_sum as b_fund_sum
, b.other_sum as b_other_sum
, b.total as b_total
from
(select * from hrsa_bill_detail where delete_type = 0 and payment_status=0) a
left join (select * from hrsa_bill_detail where delete_type = 0 and payment_status=1) b on a.employee_id = b.employee_id
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 a.payment_organization = #{paymentOrganization} and a.bill_month = #{billMonth}
</select>
</mapper>

View File

@ -332,5 +332,8 @@ public interface SIAccountService {
void batFile(AccountBatParam param);
void batSocialSecurityBenefitsRecalculate(AccountBatParam batParam);
Object qzReport(QZInsuranceAccountBatchParam qzInsuranceAccountBatchParam);
}

View File

@ -7190,6 +7190,31 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
}
}
@Override
public Object qzReport(QZInsuranceAccountBatchParam qzInsuranceAccountBatchParam) {
List<Long> ids = qzInsuranceAccountBatchParam.getIds();
List<QZReportListDTO> list = new ArrayList<>();
for (Long id : ids) {
InsuranceAccountBatchPO batchPO= getInsuranceAccountBatchMapper().getById(id);
Long paymentOrganization = batchPO.getPaymentOrganization();
String billMonth = batchPO.getBillMonth();
InsuranceAccountDetailParam queryParam = InsuranceAccountDetailParam.builder()
.billMonth(billMonth)
.paymentOrganization(paymentOrganization.toString())
.build();
//排序配置
OrderRuleVO orderRule = getSalarySysConfService(user).orderRule();
queryParam.setOrderRule(orderRule);
//系统人员福利台账明细
list.addAll(encryptUtil.decryptList(getInsuranceAccountDetailMapper().qzReportList(queryParam), QZReportListDTO.class));
}
return null;
}
public void accountOtherView(InsuranceAccountViewListDTO dto, List<InsuranceAccountDetailPO> pos) {
int otherNum = 0;
BigDecimal otherPaySum = new BigDecimal("0");

View File

@ -1220,4 +1220,21 @@ public class SIAccountController {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<BalanceAccountBaseParam, String>(user).run(getSIAccountWrapper(user)::addNewBalance, param);
}
/**
* 获取台账列表页
*
* @param request
* @param response
* @return
*/
@POST
@Path("/qz/list")
@Produces(MediaType.APPLICATION_JSON)
public String qzReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QZInsuranceAccountBatchParam insuranceAccountBatchParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<QZInsuranceAccountBatchParam, Object>(user).run(getService(user)::qzReport, insuranceAccountBatchParam);
}
}