ezhizao_zx před 1 rokem
rodič
revize
ef68610f57

+ 5 - 3
src/main/java/cn/ezhizao/common/utils/PdfUtil.java

@@ -68,9 +68,11 @@ public class PdfUtil {
             ConverterProperties converterProperties = new ConverterProperties();
             converterProperties.setCharset("UTF-8");
             FontProvider fontProvider = new FontProvider();
-            fontProvider.addDirectory("/usr/share/fonts/chinese/");
-            fontProvider.addDirectory("D:\\code\\yzbh\\ezhizao_yzbh_production_api\\fonts\\chinese");
-//            fontProvider.addSystemFonts();
+            PdfFont simsun = PdfFontFactory.createFont(FontProgramFactory.createFont("simsun.ttc", 1, false));
+            fontProvider.addFont(simsun.getFontProgram());
+//            fontProvider.addDirectory("/usr/share/fonts/chinese/");
+//            fontProvider.addDirectory("D:\\code\\yzbh\\ezhizao_yzbh_production_api\\fonts\\chinese");
+            fontProvider.addSystemFonts();
             converterProperties.setFontProvider(fontProvider);
             HtmlConverter.convertToPdf(content, new FileOutputStream(outPath), converterProperties);
         } catch (Exception e) {

+ 21 - 8
src/main/java/cn/ezhizao/project/business/housingFund/controller/BizHousingFundConfirmController.java

@@ -3,6 +3,7 @@ package cn.ezhizao.project.business.housingFund.controller;
 import cn.ezhizao.common.utils.PdfUtil;
 import cn.ezhizao.common.utils.SecurityUtils;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
 import cn.ezhizao.framework.web.controller.BaseController;
@@ -400,20 +401,32 @@ public class BizHousingFundConfirmController extends BaseController {
 
         // 获取 入Excel 表头字段
         List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
-        // 获取实体类字段
-        Field[] entityFields = BizHousingFundConfirmDetailEmployee.class.getDeclaredFields();
-        //获取导入表头
-        List<String> entityFieldNames = Arrays.stream(entityFields)
-                .map(Field::getName)
-                .collect(Collectors.toList());
+
+        //获取实体类字段
+        List<String> names=getExcelAnnotatedFields(BizHousingFundConfirmDetailEmployee.class);
         //如果不存在模板中的字段,返回错误
-        if (!excelHeaders.containsAll(entityFieldNames)) {
+        if (!excelHeaders.containsAll(names)) {
             return error("导入数据与模板不匹配!");
         }
-        String message=housingFundConfirmService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId());
+        String message=housingFundConfirmService.importHousingFundCon(detailList,year,month,getTenantId()==null?0:getTenantId());
         return success(message);
     }
 
+
+    public  List<String> getExcelAnnotatedFields(Class<?> clazz) {
+        Field[] fields = clazz.getDeclaredFields();
+        List<String> result = new ArrayList<>();
+        for (Field field : fields) {
+            if (field.isAnnotationPresent(Excel.class)) {
+                Excel excelAnnotation = field.getAnnotation(Excel.class);
+                String fieldName = excelAnnotation.name();
+                result.add(fieldName);
+            }
+        }
+        return result;
+    }
+
+
     /**
      * 导出列表
      */

+ 1 - 1
src/main/java/cn/ezhizao/project/business/housingFund/service/IBizHousingFundConfirmService.java

@@ -37,5 +37,5 @@ public interface IBizHousingFundConfirmService extends IService<BizHousingFundCo
      */
     int getTotal(Map<String, Object> conditions);
 
-    String importSalary(List<BizHousingFundConfirmDetailEmployee> detailList, String year, String month, Long tenantId);
+    String importHousingFundCon(List<BizHousingFundConfirmDetailEmployee> detailList, String year, String month, Long tenantId);
 }

+ 38 - 28
src/main/java/cn/ezhizao/project/business/housingFund/service/impl/BizHousingFundConfirmServiceImpl.java

@@ -9,16 +9,13 @@ import cn.ezhizao.project.business.housingFund.mapper.BizHousingFundConfirmDetai
 import cn.ezhizao.project.business.housingFund.mapper.BizHousingFundConfirmDetailMapper;
 import cn.ezhizao.project.business.housingFund.mapper.BizHousingFundConfirmMapper;
 import cn.ezhizao.project.business.housingFund.service.IBizHousingFundConfirmService;
-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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author 周晓
@@ -51,8 +48,7 @@ public class BizHousingFundConfirmServiceImpl extends ServiceImpl<BizHousingFund
         return financialHousingFundConfirmDao.getTotal(conditions);
     }
 
-    @Override
-    public String importSalary(List<BizHousingFundConfirmDetailEmployee> detailList, String year, String month, Long tenantId) {
+    public String importHousingFundCon(List<BizHousingFundConfirmDetailEmployee> detailList, String year, String month, Long tenantId) {
         if (StringUtils.isNull(detailList) || detailList.size() == 0) {
             throw new ServiceException("导入数据不能为空!");
         }
@@ -60,48 +56,62 @@ public class BizHousingFundConfirmServiceImpl extends ServiceImpl<BizHousingFund
         int failureNum = 0;
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        //获取信息
-        for(BizHousingFundConfirmDetailEmployee l : detailList){
-            BizHousingFundConfirm housingFundConfirm=new BizHousingFundConfirm();
-            housingFundConfirm.setCompanyName(l.getCompanyName());
+        // 根据 客户名称 字段将元素分组
+        Map<String, List<BizHousingFundConfirmDetailEmployee>> groupedByName = detailList.stream()
+                .collect(Collectors.groupingBy(BizHousingFundConfirmDetailEmployee::getCompanyName));
+        int number = 0;
+
+        // 循环遍历每个分组
+        for (Map.Entry<String, List<BizHousingFundConfirmDetailEmployee>> entry : groupedByName.entrySet()) {
+            String name = entry.getKey();
+
+            List<BizHousingFundConfirmDetailEmployee> employees = entry.getValue();
+            BizHousingFundConfirmDetailEmployee detai = employees.get(number++);
+
+            BizHousingFundConfirm housingFundConfirm = new BizHousingFundConfirm();
+            housingFundConfirm.setCompanyName(detai.getCompanyName());
             housingFundConfirm.setTenantId(tenantId);
-            List <BizHousingFundConfirm> list= getListByBean(housingFundConfirm);
+            List<BizHousingFundConfirm> list = getListByBean(housingFundConfirm);
+
             //是否存在该客户
-            if(list.size() == 0){
+            if (list.size() == 0) {
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(" 不存在");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append(" 不存在");
                 continue;
             }
-            if(list.size() > 1){
+            if (list.size() > 1) {
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append("请输入详细客户名称");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append("请输入详细客户名称");
                 continue;
             }
-            housingFundConfirm=list.get(0);
+
+            housingFundConfirm = list.get(0);
             //获取明细
-            BizHousingFundConfirmDetail detail=new BizHousingFundConfirmDetail();
+            BizHousingFundConfirmDetail detail = new BizHousingFundConfirmDetail();
             detail.setHousingFundConfirmId(housingFundConfirm.getId());
             detail.setMonth(month);
             detail.setYear(year);
-            List<BizHousingFundConfirmDetail> confirmDetailList=housingFundConfirmDetailDao.getList(detail);
-            if(confirmDetailList.size()>0){
+            List<BizHousingFundConfirmDetail> confirmDetailList = housingFundConfirmDetailDao.getList(detail);
+            if (confirmDetailList.size() > 0) {
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(year+"年"+month+"月").append("公积金已有数据");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append(year + "年" + month + "月").append("公积金已有数据");
                 continue;
             }
 
             //设置状态为待确认
             detail.setStatus(1);
             detail.setCompanyId(housingFundConfirm.getCompanyId());
-            //新增工资明细
+            //新增公积金明细
             housingFundConfirmDetailDao.insert(detail);
 
-            l.setHousingFundConfirmId(housingFundConfirm.getId());
-            l.setHousingFundConfirmDetailId(detail.getId());
-            //新增人员明细
-            housingFundConfirmDetailEmployeeDao.insert(l);
-            successNum++;
-            successMsg.append("<br/>").append(successNum).append("、公积金 ").append(l.getCompanyName()).append(" 导入成功");
+            for (BizHousingFundConfirmDetailEmployee l : employees) {
+                l.setHousingFundConfirmId(housingFundConfirm.getId());
+                l.setHousingFundConfirmDetailId(detail.getId());
+                //新增人员明细
+                housingFundConfirmDetailEmployeeDao.insert(l);
+                successNum++;
+                successMsg.append("<br/>").append(successNum).append("、公积金 ").append(l.getCompanyName()).append(" 导入成功");
+            }
         }
         if (failureNum > 0) {
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
@@ -109,7 +119,7 @@ public class BizHousingFundConfirmServiceImpl extends ServiceImpl<BizHousingFund
         } else {
             successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
+
         return successMsg.toString();
     }
-
 }

+ 20 - 7
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.framework.aspectj.lang.annotation.Excel;
 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;
@@ -208,20 +209,32 @@ public class BizFinancialSalaryController extends BaseController {
 
         // 获取 入Excel 表头字段
         List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
-        // 获取实体类字段
-        Field[] entityFields = BizFinancialSalaryDetailEmployee.class.getDeclaredFields();
-        //获取导入表头
-        List<String> entityFieldNames = Arrays.stream(entityFields)
-                .map(Field::getName)
-                .collect(Collectors.toList());
+
+        //获取实体类字段
+        List<String> names=getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
+
+
         //如果不存在模板中的字段,返回错误
-        if (!excelHeaders.containsAll(entityFieldNames)) {
+        if (!excelHeaders.containsAll(names)) {
             return error("导入数据与模板不匹配!");
         }
         String message=bizFinancialSalaryService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId(),0);
         return success(message);
     }
 
+    public  List<String> getExcelAnnotatedFields(Class<?> clazz) {
+        Field[] fields = clazz.getDeclaredFields();
+        List<String> result = new ArrayList<>();
+        for (Field field : fields) {
+            if (field.isAnnotationPresent(Excel.class)) {
+                Excel excelAnnotation = field.getAnnotation(Excel.class);
+                String fieldName = excelAnnotation.name();
+                result.add(fieldName);
+            }
+        }
+        return result;
+    }
+
     /**
      * 获取工资详细信息
      */

+ 35 - 20
src/main/java/cn/ezhizao/project/business/salary/service/impl/BizFinancialSalaryServiceImpl.java

@@ -2,6 +2,8 @@ package cn.ezhizao.project.business.salary.service.impl;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
 
 import cn.ezhizao.common.exception.ServiceException;
@@ -69,55 +71,67 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
         int failureNum = 0;
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        //获取工资信息
-        for(BizFinancialSalaryDetailEmployee l : detailList){
+        // 根据 客户名称 字段将元素分组
+        Map<String, List<BizFinancialSalaryDetailEmployee>> groupedByName = detailList.stream()
+                .collect(Collectors.groupingBy(BizFinancialSalaryDetailEmployee::getCompanyName));
+        int number = 0;
+        // 循环遍历每个分组
+        for (Map.Entry<String, List<BizFinancialSalaryDetailEmployee>> entry : groupedByName.entrySet()) {
+            String name = entry.getKey();
+
+            List<BizFinancialSalaryDetailEmployee> employees = entry.getValue();
+            BizFinancialSalaryDetailEmployee salaryDetai = employees.get(number++);
             BizFinancialSalary salary=new BizFinancialSalary();
-            salary.setCompanyName(l.getCompanyName());
+            salary.setCompanyName(salaryDetai.getCompanyName());
             salary.setTenantId(tenantId);
             salary.setIsZero(isZero);
             List <BizFinancialSalary> salaryList= getList(salary);
             //是否存在该客户
             if(salaryList.size() == 0){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(" 不存在");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append(" 不存在");
                 continue;
             }
             if(salaryList.size() > 1){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append("请输入详细客户名称");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append("请输入详细客户名称");
                 continue;
             }
             salary=salaryList.get(0);
-            //获取工资明细
             BizFinancialSalaryDetail salaryDetail=new BizFinancialSalaryDetail();
+
             salaryDetail.setFinancialSalaryId(salary.getId());
             salaryDetail.setMonth(month);
             salaryDetail.setYear(year);
             List<BizFinancialSalaryDetail> salaryDetailList=bizFinancialSalaryDetailService.getList(salaryDetail);
             if(salaryDetailList.size()>0){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(year+"年"+month+"月").append("工资已有数据");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append(year+"年"+month+"月").append("工资已有数据");
                 continue;
             }
 
+
             //设置状态为待确认
             salaryDetail.setStatus(1);
             salaryDetail.setCompanyId(salary.getCompanyId());
             //新增工资明细
             bizFinancialSalaryDetailMapper.insert(salaryDetail);
-            //计算应发工资
-            l.setActuallySalary(l.getPlanSalary()==null? BigDecimal.valueOf(0) :l.getPlanSalary().add(l.getBonusAmount()==null? BigDecimal.valueOf(0) :l.getBonusAmount()));
-            //计算实发工资
-            l.setActuallySalary(l.getActuallySalary()==null? BigDecimal.valueOf(0) :l.getActuallySalary().subtract(l.getEndowmentInsurance()==null? BigDecimal.valueOf(0) :l.getEndowmentInsurance()).subtract(l.getMedicalInsurance()==null? BigDecimal.valueOf(0) :l.getMedicalInsurance())
-                    .subtract(l.getUnemploymentBenefit()==null? BigDecimal.valueOf(0) :l.getUnemploymentBenefit()).subtract(l.getSeriousIllnessInsurance()==null? BigDecimal.valueOf(0) :l.getSeriousIllnessInsurance())
-                    .subtract(l.getHousingFund()==null? BigDecimal.valueOf(0) :l.getHousingFund()).subtract(l.getOtherCut()==null? BigDecimal.valueOf(0) :l.getOtherCut()));
-            //设置外键
-            l.setFinancialSalaryId(salary.getId());
-            l.setFinancialSalaryDetailId(salaryDetail.getId());
-            //新增人员明细
-            bizFinancialSalaryDetailEmployeeMapper.insert(l);
-            successNum++;
-            successMsg.append("<br/>").append(successNum).append("、工资 ").append(l.getCompanyName()).append(" 导入成功");
+
+            for (BizFinancialSalaryDetailEmployee l : employees) {
+                //计算应发工资
+                l.setActuallySalary(l.getPlanSalary()==null? BigDecimal.valueOf(0) :l.getPlanSalary().add(l.getBonusAmount()==null? BigDecimal.valueOf(0) :l.getBonusAmount()));
+                //计算实发工资
+                l.setActuallySalary(l.getActuallySalary()==null? BigDecimal.valueOf(0) :l.getActuallySalary().subtract(l.getEndowmentInsurance()==null? BigDecimal.valueOf(0) :l.getEndowmentInsurance()).subtract(l.getMedicalInsurance()==null? BigDecimal.valueOf(0) :l.getMedicalInsurance())
+                        .subtract(l.getUnemploymentBenefit()==null? BigDecimal.valueOf(0) :l.getUnemploymentBenefit()).subtract(l.getSeriousIllnessInsurance()==null? BigDecimal.valueOf(0) :l.getSeriousIllnessInsurance())
+                        .subtract(l.getHousingFund()==null? BigDecimal.valueOf(0) :l.getHousingFund()).subtract(l.getOtherCut()==null? BigDecimal.valueOf(0) :l.getOtherCut()));
+                //设置外键
+                l.setFinancialSalaryId(salary.getId());
+                l.setFinancialSalaryDetailId(salaryDetail.getId());
+                //新增人员明细
+                bizFinancialSalaryDetailEmployeeMapper.insert(l);
+                successNum++;
+                successMsg.append("<br/>").append(successNum).append("、工资 ").append(l.getCompanyName()).append(" 导入成功");
+            }
         }
         if (failureNum > 0) {
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
@@ -125,6 +139,7 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
         } else {
             successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
+
         return successMsg.toString();
     }
 }

+ 18 - 8
src/main/java/cn/ezhizao/project/business/socialSecurity/controller/SocialSecurityConfirmController.java

@@ -3,6 +3,7 @@ package cn.ezhizao.project.business.socialSecurity.controller;
 import cn.ezhizao.common.utils.PdfUtil;
 import cn.ezhizao.common.utils.SecurityUtils;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
 import cn.ezhizao.framework.web.controller.BaseController;
@@ -291,21 +292,30 @@ public class SocialSecurityConfirmController extends BaseController {
 
         // 获取 入Excel 表头字段
         List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
-        // 获取实体类字段
-        Field[] entityFields = BizSocialSecurityConfirmDetailEmployee.class.getDeclaredFields();
-        //获取导入表头
-        List<String> entityFieldNames = Arrays.stream(entityFields)
-                .map(Field::getName)
-                .collect(Collectors.toList());
+        //获取实体类字段
+        List<String> names=getExcelAnnotatedFields(BizSocialSecurityConfirmDetailEmployee.class);
         //如果不存在模板中的字段,返回错误
-        if (!excelHeaders.containsAll(entityFieldNames)) {
+        if (!excelHeaders.containsAll(names)) {
             return error("导入数据与模板不匹配!");
         }
 
-        String message=socialSecurityConfirmService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId());
+        String message=socialSecurityConfirmService.importSecurityConfirm(detailList,year,month,getTenantId()==null?0:getTenantId());
         return success(message);
     }
 
+    public  List<String> getExcelAnnotatedFields(Class<?> clazz) {
+        Field[] fields = clazz.getDeclaredFields();
+        List<String> result = new ArrayList<>();
+        for (Field field : fields) {
+            if (field.isAnnotationPresent(Excel.class)) {
+                Excel excelAnnotation = field.getAnnotation(Excel.class);
+                String fieldName = excelAnnotation.name();
+                result.add(fieldName);
+            }
+        }
+        return result;
+    }
+
     /**
      * 导出社保模板
      */

+ 1 - 1
src/main/java/cn/ezhizao/project/business/socialSecurity/service/IBizSocialSecurityConfirmService.java

@@ -37,5 +37,5 @@ public interface IBizSocialSecurityConfirmService extends IService<BizSocialSecu
      */
     int getTotal(Map<String, Object> conditions);
 
-    String importSalary(List<BizSocialSecurityConfirmDetailEmployee> detailList, String year, String month, Long tenantId);
+    String importSecurityConfirm(List<BizSocialSecurityConfirmDetailEmployee> detailList, String year, String month, Long tenantId);
 }

+ 30 - 15
src/main/java/cn/ezhizao/project/business/socialSecurity/service/impl/BizSocialSecurityConfirmServiceImpl.java

@@ -19,6 +19,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author 周晓
@@ -52,7 +53,7 @@ public class BizSocialSecurityConfirmServiceImpl extends ServiceImpl<BizSocialSe
     }
 
     @Override
-    public String importSalary(List<BizSocialSecurityConfirmDetailEmployee> detailList, String year, String month, Long tenantId) {
+    public String importSecurityConfirm(List<BizSocialSecurityConfirmDetailEmployee> detailList, String year, String month, Long tenantId) {
         if (StringUtils.isNull(detailList) || detailList.size() == 0) {
             throw new ServiceException("导入数据不能为空!");
         }
@@ -60,21 +61,31 @@ public class BizSocialSecurityConfirmServiceImpl extends ServiceImpl<BizSocialSe
         int failureNum = 0;
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        //获取工资信息
-        for(BizSocialSecurityConfirmDetailEmployee l : detailList){
+        // 根据 客户名称 字段将元素分组
+        Map<String, List<BizSocialSecurityConfirmDetailEmployee>> groupedByName = detailList.stream()
+                .collect(Collectors.groupingBy(BizSocialSecurityConfirmDetailEmployee::getCompanyName));
+        int number = 0;
+        // 循环遍历每个分组
+        for (Map.Entry<String, List<BizSocialSecurityConfirmDetailEmployee>> entry : groupedByName.entrySet()) {
+            String name = entry.getKey();
+
+            List<BizSocialSecurityConfirmDetailEmployee> employees = entry.getValue();
+            BizSocialSecurityConfirmDetailEmployee detai = employees.get(number++);
+
             BizSocialSecurityConfirm securityConfirm=new BizSocialSecurityConfirm();
-            securityConfirm.setCompanyName(l.getCompanyName());
+            securityConfirm.setCompanyName(detai.getCompanyName());
             securityConfirm.setTenantId(tenantId);
             List <BizSocialSecurityConfirm> list= getListByBean(securityConfirm);
+
             //是否存在该客户
             if(list.size() == 0){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(" 不存在");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append(" 不存在");
                 continue;
             }
             if(list.size() > 1){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append("请输入详细客户名称");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append("请输入详细客户名称");
                 continue;
             }
             securityConfirm=list.get(0);
@@ -86,22 +97,25 @@ public class BizSocialSecurityConfirmServiceImpl extends ServiceImpl<BizSocialSe
             List<BizSocialSecurityConfirmDetail> salaryDetailList=bizSocialSecurityConfirmDetailMapper.getList(detail);
             if(salaryDetailList.size()>0){
                 failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(l.getCompanyName()).append(year+"年"+month+"月").append("社保已有数据");
+                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(detai.getCompanyName()).append(year+"年"+month+"月").append("社保已有数据");
                 continue;
             }
 
             //设置状态为待确认
             detail.setStatus(1);
             detail.setCompanyId(securityConfirm.getCompanyId());
-            //新增工资明细
+            //新增社保明细
             bizSocialSecurityConfirmDetailMapper.insert(detail);
-            //设置外键
-            l.setSocialSecurityConfirmDetailId(detail.getId());
-            l.setSocialSecurityConfirmId(securityConfirm.getId());
-            //新增人员明细
-            bizSocialSecurityConfirmDetailEmployeeMapper.insert(l);
-            successNum++;
-            successMsg.append("<br/>").append(successNum).append("、社保 ").append(l.getCompanyName()).append(" 导入成功");
+
+            for (BizSocialSecurityConfirmDetailEmployee l : employees) {
+                //设置外键
+                l.setSocialSecurityConfirmDetailId(detail.getId());
+                l.setSocialSecurityConfirmId(securityConfirm.getId());
+                //新增人员明细
+                bizSocialSecurityConfirmDetailEmployeeMapper.insert(l);
+                successNum++;
+                successMsg.append("<br/>").append(successNum).append("、社保 ").append(l.getCompanyName()).append(" 导入成功");
+            }
         }
         if (failureNum > 0) {
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
@@ -109,6 +123,7 @@ public class BizSocialSecurityConfirmServiceImpl extends ServiceImpl<BizSocialSe
         } else {
             successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
+
         return successMsg.toString();
     }
 }