Przeglądaj źródła

Merge branch 'develop'

ly 1 rok temu
rodzic
commit
08ba7588d0

+ 64 - 41
src/main/java/cn/ezhizao/project/business/salary/controller/BizFinancialSalaryController.java

@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import cn.ezhizao.common.utils.PdfUtil;
 import cn.ezhizao.common.utils.SecurityUtils;
+import cn.ezhizao.common.utils.StringUtils;
 import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.project.business.company.domain.BizCompany;
 import cn.ezhizao.project.business.company.service.IBizCompanyService;
@@ -33,6 +34,7 @@ import cn.ezhizao.project.business.receiveTicket.service.IBizFinancialReceiveTic
 import cn.ezhizao.project.business.receiveTicket.service.IBizFinancialReceiveTicketService;
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetail;
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetailEmployee;
+import cn.ezhizao.project.business.salary.domain.vo.BizFinancialSalaryDetailEmployeeNotCompany;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailEmployeeService;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailService;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderRecord;
@@ -53,6 +55,7 @@ import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -138,7 +141,7 @@ public class BizFinancialSalaryController extends BaseController {
     @PreAuthorize("@ss.hasPermi('business:salary:export')")
     @Log(title = "工资", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(BizFinancialSalary bizFinancialSalary,HttpServletResponse response ) throws NoSuchFieldException, IllegalAccessException {
+    public void export(BizFinancialSalary bizFinancialSalary, HttpServletResponse response) throws NoSuchFieldException, IllegalAccessException {
         //设置当前账套
         setTenantId(bizFinancialSalary);
         startOrderBy();
@@ -147,22 +150,22 @@ public class BizFinancialSalaryController extends BaseController {
         //查询数据
         List<BizFinancialSalary> list = bizFinancialSalaryService.getList(bizFinancialSalary);
         //设置状态和当前期间
-        for(BizFinancialSalary salary:list){
+        for (BizFinancialSalary salary : list) {
             //设置当前期间
-            salary.setCurrentPeriod(bizFinancialSalary.getYear()+"-"+bizFinancialSalary.getMonth());
+            salary.setCurrentPeriod(bizFinancialSalary.getYear() + "-" + bizFinancialSalary.getMonth());
             BizFinancialSalaryDetail salaryDetail = new BizFinancialSalaryDetail();
             salaryDetail.setFinancialSalaryId(salary.getId());
             salaryDetail.setYear(bizFinancialSalary.getYear());
             salaryDetail.setMonth(bizFinancialSalary.getMonth());
             //查询当前期间明细
-            List <BizFinancialSalaryDetail> bizFinancialSalaryDetails = bizFinancialSalaryDetailService.getList(salaryDetail);
-            if(bizFinancialSalaryDetails.size()==0){
+            List<BizFinancialSalaryDetail> bizFinancialSalaryDetails = bizFinancialSalaryDetailService.getList(salaryDetail);
+            if (bizFinancialSalaryDetails.size() == 0) {
                 salaryDetail.setStatus(0);
                 salary.setServiceName("");
-            }else{
-                salaryDetail=bizFinancialSalaryDetails.get(0);
+            } else {
+                salaryDetail = bizFinancialSalaryDetails.get(0);
                 SysUser sysUser = sysUserMapper.selectUserById(salaryDetail.getVerifierId());
-                salary.setServiceName(sysUser==null?"":sysUser.getNickName());
+                salary.setServiceName(sysUser == null ? "" : sysUser.getNickName());
             }
             //设置状态
             switch (salaryDetail.getStatus()) {
@@ -199,31 +202,51 @@ public class BizFinancialSalaryController extends BaseController {
         ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<BizFinancialSalaryDetailEmployee>(BizFinancialSalaryDetailEmployee.class);
         util.importTemplateExcel(response, "工资模板");
     }
-
+    @Log(title = "导出工资模板2", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportSalaryTemplateNotCompany")
+    public void exportSalaryTemplateNotCompany(HttpServletResponse response) throws NoSuchFieldException, IllegalAccessException {
+        ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany>(BizFinancialSalaryDetailEmployeeNotCompany.class);
+        util.importTemplateExcel(response, "工资模板");
+    }
     @Log(title = "工资导入", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('business:salary:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month) throws Exception
-    {
-        ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
-        List<BizFinancialSalaryDetailEmployee> detailList = util.importExcel(file.getInputStream());
-
-        // 获取 入Excel 表头字段
-        List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
-
-        //获取实体类字段
-        List<String> names=getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
-
-
-        //如果不存在模板中的字段,返回错误
+    public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month, @RequestParam(required = false) String companyId) throws Exception {
+        List<BizFinancialSalaryDetailEmployee> detailList = new ArrayList<>();
+        List<BizFinancialSalaryDetailEmployeeNotCompany> detailListNotCompany=new ArrayList<>();
+        List<String> excelHeaders = null;
+        List<String> names = null;
+        if (StringUtils.isNotEmpty(companyId)) {
+            BizCompany company = companyService.getById(companyId);
+            ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployeeNotCompany.class);
+            detailListNotCompany = util.importExcel(file.getInputStream());
+            for (BizFinancialSalaryDetailEmployeeNotCompany item : detailListNotCompany) {
+               item.setCompanyName(company.getName());
+                BizFinancialSalaryDetailEmployee bizFinancialSalaryDetailEmployee = new BizFinancialSalaryDetailEmployee();
+                BeanUtils.copyProperties(item, bizFinancialSalaryDetailEmployee);
+                detailList.add(bizFinancialSalaryDetailEmployee);
+            }
+            // 获取 入Excel 表头字段
+            excelHeaders = util.readExcelHeaders(file.getInputStream());
+            //获取实体类字段
+            names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployeeNotCompany.class);
+        } else {
+            ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
+            detailList = util.importExcel(file.getInputStream());
+            // 获取 入Excel 表头字段
+            excelHeaders = util.readExcelHeaders(file.getInputStream());
+            //获取实体类字段
+             names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
+            //如果不存在模板中的字段,返回错误
+        }
         if (!excelHeaders.containsAll(names)) {
             return error("导入数据与模板不匹配!");
         }
-        String message=bizFinancialSalaryService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId(),0);
+        String message = bizFinancialSalaryService.importSalary(detailList, year, month, getTenantId() == null ? 0 : getTenantId(), 0);
         return success(message);
     }
 
-    public  List<String> getExcelAnnotatedFields(Class<?> clazz) {
+    public List<String> getExcelAnnotatedFields(Class<?> clazz) {
         Field[] fields = clazz.getDeclaredFields();
         List<String> result = new ArrayList<>();
         for (Field field : fields) {
@@ -400,7 +423,7 @@ public class BizFinancialSalaryController extends BaseController {
                 List<BizFinancialSalaryDetailEmployee> employees = detail.getDetails();
                 financialKeepAccountDetail.setStatus(financialReceiveTicketDetail.getSumNumber().equals(0) && employees.stream().mapToDouble(v -> v.getActuallySalary().doubleValue()).sum() == 0 ? 2 : 1);
                 Date receiveDate = financialReceiveTicketDetail.getReceiveDate();
-                if(receiveDate != null){
+                if (receiveDate != null) {
                     Timestamp timestamp = new Timestamp(receiveDate.getTime());
                     financialKeepAccountDetail.setReceiveDate(timestamp);
                 }
@@ -596,20 +619,20 @@ public class BizFinancialSalaryController extends BaseController {
             List<BizFinancialSalaryDetailEmployee> financialSalaryDetailEmployeeList = bizFinancialSalaryDetailEmployeeService.getList(map);
             financialSalaryDetail.setDetails(financialSalaryDetailEmployeeList);
             //计算每一列的合计金额
-            for (BizFinancialSalaryDetailEmployee employee : financialSalaryDetailEmployeeList){
-                employee.setIndividualIncomeTax(financialSalaryDetail.getHasIndividualIncomeTax()==1?employee.getIndividualIncomeTaxConfirm() : employee.getCurrentIndividualIncomeTax());
-                financialSalaryDetail.setPlanSalary(financialSalaryDetail.getPlanSalary()==null?employee.getPlanSalary() : financialSalaryDetail.getPlanSalary().add(employee.getPlanSalary()));
-                financialSalaryDetail.setActuallySalary(financialSalaryDetail.getActuallySalary()==null?employee.getActuallySalary() : financialSalaryDetail.getActuallySalary().add(employee.getActuallySalary()));
-                financialSalaryDetail.setBonusAmount(financialSalaryDetail.getBonusAmount()==null?employee.getBonusAmount() : financialSalaryDetail.getBonusAmount().add(employee.getBonusAmount()));
-                financialSalaryDetail.setEndowmentInsurance(financialSalaryDetail.getEndowmentInsurance()==null?employee.getEndowmentInsurance() : financialSalaryDetail.getEndowmentInsurance().add(employee.getEndowmentInsurance()));
-                financialSalaryDetail.setMedicalInsurance(financialSalaryDetail.getMedicalInsurance()==null?employee.getMedicalInsurance() : financialSalaryDetail.getMedicalInsurance().add(employee.getMedicalInsurance()));
-                financialSalaryDetail.setUnemploymentBenefit(financialSalaryDetail.getUnemploymentBenefit()==null?employee.getUnemploymentBenefit() : financialSalaryDetail.getUnemploymentBenefit().add(employee.getUnemploymentBenefit()));
-                financialSalaryDetail.setSeriousIllnessInsurance(financialSalaryDetail.getSeriousIllnessInsurance()==null?employee.getSeriousIllnessInsurance() : financialSalaryDetail.getSeriousIllnessInsurance().add(employee.getSeriousIllnessInsurance()));
-                financialSalaryDetail.setHousingFund(financialSalaryDetail.getHousingFund()==null?employee.getHousingFund() : financialSalaryDetail.getHousingFund().add(employee.getHousingFund()));
-                financialSalaryDetail.setIndividualIncomeTax(financialSalaryDetail.getIndividualIncomeTax()==null?employee.getIndividualIncomeTax() : financialSalaryDetail.getIndividualIncomeTax().add(employee.getIndividualIncomeTax()));
-                financialSalaryDetail.setOtherCut(financialSalaryDetail.getOtherCut()==null?employee.getOtherCut() : financialSalaryDetail.getOtherCut().add(employee.getOtherCut()));
+            for (BizFinancialSalaryDetailEmployee employee : financialSalaryDetailEmployeeList) {
+                employee.setIndividualIncomeTax(financialSalaryDetail.getHasIndividualIncomeTax() == 1 ? employee.getIndividualIncomeTaxConfirm() : employee.getCurrentIndividualIncomeTax());
+                financialSalaryDetail.setPlanSalary(financialSalaryDetail.getPlanSalary() == null ? employee.getPlanSalary() : financialSalaryDetail.getPlanSalary().add(employee.getPlanSalary()));
+                financialSalaryDetail.setActuallySalary(financialSalaryDetail.getActuallySalary() == null ? employee.getActuallySalary() : financialSalaryDetail.getActuallySalary().add(employee.getActuallySalary()));
+                financialSalaryDetail.setBonusAmount(financialSalaryDetail.getBonusAmount() == null ? employee.getBonusAmount() : financialSalaryDetail.getBonusAmount().add(employee.getBonusAmount()));
+                financialSalaryDetail.setEndowmentInsurance(financialSalaryDetail.getEndowmentInsurance() == null ? employee.getEndowmentInsurance() : financialSalaryDetail.getEndowmentInsurance().add(employee.getEndowmentInsurance()));
+                financialSalaryDetail.setMedicalInsurance(financialSalaryDetail.getMedicalInsurance() == null ? employee.getMedicalInsurance() : financialSalaryDetail.getMedicalInsurance().add(employee.getMedicalInsurance()));
+                financialSalaryDetail.setUnemploymentBenefit(financialSalaryDetail.getUnemploymentBenefit() == null ? employee.getUnemploymentBenefit() : financialSalaryDetail.getUnemploymentBenefit().add(employee.getUnemploymentBenefit()));
+                financialSalaryDetail.setSeriousIllnessInsurance(financialSalaryDetail.getSeriousIllnessInsurance() == null ? employee.getSeriousIllnessInsurance() : financialSalaryDetail.getSeriousIllnessInsurance().add(employee.getSeriousIllnessInsurance()));
+                financialSalaryDetail.setHousingFund(financialSalaryDetail.getHousingFund() == null ? employee.getHousingFund() : financialSalaryDetail.getHousingFund().add(employee.getHousingFund()));
+                financialSalaryDetail.setIndividualIncomeTax(financialSalaryDetail.getIndividualIncomeTax() == null ? employee.getIndividualIncomeTax() : financialSalaryDetail.getIndividualIncomeTax().add(employee.getIndividualIncomeTax()));
+                financialSalaryDetail.setOtherCut(financialSalaryDetail.getOtherCut() == null ? employee.getOtherCut() : financialSalaryDetail.getOtherCut().add(employee.getOtherCut()));
             }
-            if (financialSalaryDetailEmployeeList.size()==0){
+            if (financialSalaryDetailEmployeeList.size() == 0) {
                 financialSalaryDetail.setPlanSalary(BigDecimal.valueOf(0));
                 financialSalaryDetail.setActuallySalary(BigDecimal.valueOf(0));
                 financialSalaryDetail.setBonusAmount(BigDecimal.valueOf(0));
@@ -621,7 +644,7 @@ public class BizFinancialSalaryController extends BaseController {
                 financialSalaryDetail.setIndividualIncomeTax(BigDecimal.valueOf(0));
                 financialSalaryDetail.setOtherCut(BigDecimal.valueOf(0));
             }
-            financialSalaryDetail.setTime(financialSalaryDetail.getYear()+"年"+" "+"第"+financialSalaryDetail.getMonth()+"期");
+            financialSalaryDetail.setTime(financialSalaryDetail.getYear() + "年" + " " + "第" + financialSalaryDetail.getMonth() + "期");
 
             //查询客户信息
             company = companyService.getById(financialSalaryDetail.getCompanyId());
@@ -631,7 +654,7 @@ public class BizFinancialSalaryController extends BaseController {
             return;
         }
         Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("financialSalaryDetail" , financialSalaryDetail);
+        paramMap.put("financialSalaryDetail", financialSalaryDetail);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
         Writer out = new StringWriter();
         //获取模板地址
@@ -644,7 +667,7 @@ public class BizFinancialSalaryController extends BaseController {
         response.setCharacterEncoding("UTF-8");
         response.setContentType("application/pdf");
 
-        String fileName ="工资表";
+        String fileName = "工资表";
         response.setHeader("Content-Disposition", "filename=" + new String(fileName.getBytes()));
 //        byte[] resources = PdfUtil.html2Pdf(2, templateContent, "/icon/logo.png", bizFinancialSalaryService);
         byte[] resources = PdfUtil.html2Pdf(templateContent, PageSize.A5.rotate());

+ 35 - 12
src/main/java/cn/ezhizao/project/business/salary/controller/BizFinancialSalaryZeroController.java

@@ -1,6 +1,7 @@
 package cn.ezhizao.project.business.salary.controller;
 
 import cn.ezhizao.common.utils.SecurityUtils;
+import cn.ezhizao.common.utils.StringUtils;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
 import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
@@ -8,6 +9,8 @@ import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
 import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
 import cn.ezhizao.framework.web.page.TableDataInfo;
+import cn.ezhizao.project.business.company.domain.BizCompany;
+import cn.ezhizao.project.business.company.service.IBizCompanyService;
 import cn.ezhizao.project.business.finance.IndividualIncomeTaxIsZero.domain.BizFinancialIndividualIncomeTaxDetailIsZero;
 import cn.ezhizao.project.business.finance.IndividualIncomeTaxIsZero.domain.BizFinancialIndividualIncomeTaxIsZero;
 import cn.ezhizao.project.business.finance.IndividualIncomeTaxIsZero.service.IBizFinancialIndividualIncomeTaxDetailIsZeroService;
@@ -23,6 +26,7 @@ import cn.ezhizao.project.business.receiveTicket.service.IBizFinancialReceiveTic
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalary;
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetail;
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetailEmployee;
+import cn.ezhizao.project.business.salary.domain.vo.BizFinancialSalaryDetailEmployeeNotCompany;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailEmployeeService;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailService;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryService;
@@ -31,6 +35,7 @@ import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderRecordService;
 import cn.ezhizao.project.system.domain.SysUser;
 import cn.ezhizao.project.system.mapper.SysUserMapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -71,7 +76,8 @@ public class BizFinancialSalaryZeroController extends BaseController {
     private IBizFinancialReceiveTicketDetailService financialReceiveTicketDetailService;
     @Resource
     private IBizWorkOrderRecordService bizWorkOrderRecordService;
-
+    @Resource
+    private IBizCompanyService companyService;
     @Resource
     private IBizFinancialSalaryDetailEmployeeService bizFinancialSalaryDetailEmployeeService;
     @Resource
@@ -102,21 +108,38 @@ public class BizFinancialSalaryZeroController extends BaseController {
     @Log(title = "工资零申报导入", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('business:salaryZero:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month) throws Exception
+    public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month , @RequestParam(required = false) String companyId) throws Exception
     {
-        ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
-        List<BizFinancialSalaryDetailEmployee> detailList = util.importExcel(file.getInputStream());
-
-        // 获取 入Excel 表头字段
-        List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
-        //获取实体类字段
-        List<String> names=getExcelAnnotatedFields(BizHousingFundConfirmDetailEmployee.class);
-
-        //如果不存在模板中的字段,返回错误
+        List<BizFinancialSalaryDetailEmployee> detailList = new ArrayList<>();
+        List<BizFinancialSalaryDetailEmployeeNotCompany> detailListNotCompany=new ArrayList<>();
+        List<String> excelHeaders = null;
+        List<String> names = null;
+        if (StringUtils.isNotEmpty(companyId)) {
+            BizCompany company = companyService.getById(companyId);
+            ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployeeNotCompany.class);
+            detailListNotCompany = util.importExcel(file.getInputStream());
+            for (BizFinancialSalaryDetailEmployeeNotCompany item : detailListNotCompany) {
+                item.setCompanyName(company.getName());
+                BizFinancialSalaryDetailEmployee bizFinancialSalaryDetailEmployee = new BizFinancialSalaryDetailEmployee();
+                BeanUtils.copyProperties(item, bizFinancialSalaryDetailEmployee);
+                detailList.add(bizFinancialSalaryDetailEmployee);
+            }
+            // 获取 入Excel 表头字段
+            excelHeaders = util.readExcelHeaders(file.getInputStream());
+            //获取实体类字段
+            names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployeeNotCompany.class);
+        } else {
+            ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
+            detailList = util.importExcel(file.getInputStream());
+            // 获取 入Excel 表头字段
+            excelHeaders = util.readExcelHeaders(file.getInputStream());
+            //获取实体类字段
+            names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
+            //如果不存在模板中的字段,返回错误
+        }
         if (!excelHeaders.containsAll(names)) {
             return error("导入数据与模板不匹配!");
         }
-
         String message=bizFinancialSalaryService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId(),1);
         return success(message);
     }

+ 208 - 0
src/main/java/cn/ezhizao/project/business/salary/domain/vo/BizFinancialSalaryDetailEmployeeNotCompany.java

@@ -0,0 +1,208 @@
+package cn.ezhizao.project.business.salary.domain.vo;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+
+/**
+ * 工资人员信息对象 biz_financial_salary_detail_employee
+ *
+ * @author ruoyi
+ * @date 2023-11-16
+ */
+@Data
+public class BizFinancialSalaryDetailEmployeeNotCompany extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 工资任务外键 */
+    @ApiModelProperty(value = "${comment}")
+    private Long financialSalaryId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    /** 月工资单外键 */
+    @ApiModelProperty(value = "${comment}")
+    private Long financialSalaryDetailId;
+
+
+    /** 月工资单外键 */
+    @ApiModelProperty(value = "${comment}")
+    @TableField(exist = false)
+    private List<Long> financialSalaryDetailIds;
+
+    /** 员工姓名 */
+    @Excel(name = "员工姓名")
+    @ApiModelProperty(value = "员工姓名")
+    private String employeeName;
+
+    /** 部门名称 */
+//    @Excel(name = "部门名称")
+    @ApiModelProperty(value = "部门名称")
+    private String departmentName;
+
+    /** 身份证号 */
+    @Excel(name = "身份证号")
+    @ApiModelProperty(value = "身份证号")
+    private String idCode;
+
+    /** 工资 */
+    @ApiModelProperty(value = "工资")
+    private BigDecimal salaryAmount;
+
+    /** 应发工资 */
+    @Excel(name = "应发工资")
+    @ApiModelProperty(value = "应发工资")
+    private BigDecimal planSalary;
+
+    /** 奖金 */
+    @Excel(name = "奖金")
+    @ApiModelProperty(value = "奖金")
+    private BigDecimal bonusAmount;
+
+    /** 津贴 */
+//    @Excel(name = "津贴")
+    @ApiModelProperty(value = "津贴")
+    private BigDecimal allowanceAmount;
+
+    /** 补贴 */
+//    @Excel(name = "补贴")
+    @ApiModelProperty(value = "补贴")
+    private BigDecimal subsidyAmount;
+
+    /** 缺勤扣款 */
+//    @Excel(name = "缺勤扣款")
+    @ApiModelProperty(value = "缺勤扣款")
+    private BigDecimal absenceCut;
+
+
+
+    /** 实发工资 */
+//    @Excel(name = "实发工资")
+    @ApiModelProperty(value = "实发工资")
+    private BigDecimal actuallySalary;
+
+    /** 养老保险 */
+    @Excel(name = "养老保险")
+    @ApiModelProperty(value = "养老保险")
+    private BigDecimal endowmentInsurance;
+
+    /** 医疗保险 */
+    @Excel(name = "医疗保险")
+    @ApiModelProperty(value = "医疗保险")
+    private BigDecimal medicalInsurance;
+
+    /** 失业险 */
+    @Excel(name = "失业险")
+    @ApiModelProperty(value = "失业险")
+    private BigDecimal unemploymentBenefit;
+
+    /** 大病险 */
+    @Excel(name = "大病险")
+    @ApiModelProperty(value = "大病险")
+    private BigDecimal seriousIllnessInsurance;
+
+    /** 住房公积金 */
+    @Excel(name = "住房公积金")
+    @ApiModelProperty(value = "住房公积金")
+    private BigDecimal housingFund;
+
+    /** 其他扣款 */
+    @Excel(name = "其他扣款")
+    @ApiModelProperty(value = "其他扣款")
+    private BigDecimal otherCut;
+
+    /** 累计收入 */
+//    @Excel(name = "累计收入")
+    @ApiModelProperty(value = "累计收入")
+    private BigDecimal cumulativeIncome;
+
+    /** 累计专项扣除 */
+//    @Excel(name = "累计专项扣除")
+    @ApiModelProperty(value = "累计专项扣除")
+    private BigDecimal cumulativeSpecialCut;
+
+    /** 累计子女教育扣除 */
+//    @Excel(name = "累计子女教育扣除")
+    @ApiModelProperty(value = "累计子女教育扣除")
+    private BigDecimal cumulativeChildEduCut;
+
+    /** 累计住房贷款利息扣除 */
+//    @Excel(name = "累计住房贷款利息扣除")
+    @ApiModelProperty(value = "累计住房贷款利息扣除")
+    private BigDecimal cumulativeHouseLoanInterestCut;
+
+    /** 累计住房租金扣除 */
+//    @Excel(name = "累计住房租金扣除")
+    @ApiModelProperty(value = "累计住房租金扣除")
+    private BigDecimal cumulativeHouseRentCut;
+
+    /** 累计赡养老人扣除 */
+//    @Excel(name = "累计赡养老人扣除")
+    @ApiModelProperty(value = "累计赡养老人扣除")
+    private BigDecimal cumulativeSupportElderCut;
+
+    /** 累计继续教育扣除 */
+//    @Excel(name = "累计继续教育扣除")
+    @ApiModelProperty(value = "累计继续教育扣除")
+    private BigDecimal cumulativeContinuingEduCut;
+
+    /** 累计婴幼儿照料扣除 */
+//    @Excel(name = "累计婴幼儿照料扣除")
+    @ApiModelProperty(value = "累计婴幼儿照料扣除")
+    private BigDecimal cumulativeBabyCareCut;
+
+    /** 累计专项扣除合计 */
+//    @Excel(name = "累计专项扣除合计")
+    @ApiModelProperty(value = "累计专项扣除合计")
+    private BigDecimal sumSpecialCumulativeCut;
+
+    /** 累计其他扣除 */
+//    @Excel(name = "累计其他扣除")
+    @ApiModelProperty(value = "累计其他扣除")
+    private BigDecimal cumulativeOtherCut;
+
+    /** 累计应缴个税 */
+//    @Excel(name = "累计应缴个税")
+    @ApiModelProperty(value = "累计应缴个税")
+    private BigDecimal cumulativeIndividualIncomeTax;
+
+    /** 累计已缴纳个税 */
+//    @Excel(name = "累计已缴纳个税")
+    @ApiModelProperty(value = "累计已缴纳个税")
+    private BigDecimal cumulativeHasPaidIit;
+
+    /** 本月应缴个税 */
+    @Excel(name = "个税")
+    @ApiModelProperty(value = "本月应缴个税")
+    private BigDecimal currentIndividualIncomeTax;
+
+    /** 签名 */
+//    @Excel(name = "签名")
+    @ApiModelProperty(value = "签名")
+    private String idiograph;
+
+    /** 确认税款 */
+//    @Excel(name = "确认税款")
+    @ApiModelProperty(value = "确认税款")
+    private BigDecimal individualIncomeTaxConfirm;
+
+    /** 客户外键 */
+    @ApiModelProperty(value = "确认税款")
+    private Long companyId;
+
+    /** 打印数据 */
+    //个税
+    @TableField(exist = false)
+    private BigDecimal individualIncomeTax;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remark;
+}