Browse Source

修改分摊导出逻辑

zhouyy 5 months ago
parent
commit
02c9630158

+ 21 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ContractBonusDetailServiceImpl.java

@@ -134,7 +134,7 @@ public class ContractBonusDetailServiceImpl extends ServiceImpl<ContractBonusDet
             try {
                 WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",
                         user.getCompanyId()));
-                if(wxCorpInfo != null&&wxCorpInfo.getSaasSyncContact() == 1){
+                if(wxCorpInfo != null&&wxCorpInfo.getSaasSyncContact() == 1&&CollectionUtils.isNotEmpty(checkEmptyWxUserNameList)){
                     respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, checkEmptyWxUserNameList,null);
                     if(respMsg.code.equals("0")){
                         httpRespMsg.setError("["+String.valueOf(respMsg.data)+"]在系统中为重名人员,请完善工号信息!");
@@ -144,26 +144,29 @@ public class ContractBonusDetailServiceImpl extends ServiceImpl<ContractBonusDet
                     isWxCheck = true;
                 }else{
                     //根据名称判断,不能有重名
-                    List<User> emptyUsers = userMapper.selectList(new LambdaQueryWrapper<User>()
-                            .select(User::getId, User::getCompanyId, User::getName, User::getJobNumber, User::getPlate1, User::getCorpwxUserid)
-                            .eq(User::getCompanyId, user.getCompanyId())
-                            .eq(User::getIsActive, 1)
-                            .in(User::getName, checkEmptyWxUserNameList));
-                    for (ImportBonusTemplateVO templateVO : emptyJNList) {
-                        long count = emptyUsers.stream().filter(t -> t.getName().equals(templateVO.getUserName())).count();
-                        if(count == 0){
-                            httpRespMsg.setError("员工:"+templateVO.getUserName()+" 无对应记录或未激活,请重新填写");
-                            return httpRespMsg;
-                        }else if( count > 1){
-                            httpRespMsg.setError("["+templateVO.getUserName()+"]在系统中为重名人员,请完善工号信息!");
-                            return httpRespMsg;
-                        }else{
-                            Optional<User> first = emptyUsers.stream().filter(t -> t.getName().equals(templateVO.getUserName())).findFirst();
-                            if(first.isPresent()){
-                                emptyJNRespList.add(first.get());
+                    if(CollectionUtils.isNotEmpty(checkEmptyWxUserNameList)){
+                        List<User> emptyUsers = userMapper.selectList(new LambdaQueryWrapper<User>()
+                                .select(User::getId, User::getCompanyId, User::getName, User::getJobNumber, User::getPlate1, User::getCorpwxUserid)
+                                .eq(User::getCompanyId, user.getCompanyId())
+                                .eq(User::getIsActive, 1)
+                                .in(User::getName, checkEmptyWxUserNameList));
+                        for (ImportBonusTemplateVO templateVO : emptyJNList) {
+                            long count = emptyUsers.stream().filter(t -> t.getName().equals(templateVO.getUserName())).count();
+                            if(count == 0){
+                                httpRespMsg.setError("员工:"+templateVO.getUserName()+" 无对应记录或未激活,请重新填写");
+                                return httpRespMsg;
+                            }else if( count > 1){
+                                httpRespMsg.setError("["+templateVO.getUserName()+"]在系统中为重名人员,请完善工号信息!");
+                                return httpRespMsg;
+                            }else{
+                                Optional<User> first = emptyUsers.stream().filter(t -> t.getName().equals(templateVO.getUserName())).findFirst();
+                                if(first.isPresent()){
+                                    emptyJNRespList.add(first.get());
+                                }
                             }
                         }
                     }
+
                 }
             } catch (IOException e){
                 e.printStackTrace();

+ 264 - 237
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -11,9 +11,9 @@ import com.management.platform.service.*;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
-import com.taobao.api.internal.util.StringUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -696,22 +696,45 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 headList.add(MessageUtils.message("entry.projectType"));
             }
             FinanceFixedcolname fixedItem = financeFixedcolnameService.getFixed(companyId);
-            headList.add(fixedItem.getMonthCost()+"(元)");
-            sheetNameList.add(fixedItem.getMonthCost()+"分摊表");
-            headList.add(fixedItem.getBonus()+"(元)");
-            sheetNameList.add(fixedItem.getBonus()+"分摊表");
-            headList.add(fixedItem.getAllowance()+"(元)");
-            sheetNameList.add(fixedItem.getAllowance()+"分摊表");
-            headList.add(fixedItem.getInsuranceOld()+"(元)");
-            sheetNameList.add(fixedItem.getInsuranceOld()+"分摊表");
-            headList.add(fixedItem.getInsuranceMedical()+"(元)");
-            sheetNameList.add(fixedItem.getInsuranceMedical()+"分摊表");
-            headList.add(fixedItem.getInsuranceLosejob()+"(元)");
-            sheetNameList.add(fixedItem.getInsuranceLosejob()+"分摊表");
-            headList.add(fixedItem.getInsuranceInjury()+"(元)");
-            sheetNameList.add(fixedItem.getInsuranceInjury()+"分摊表");
-            headList.add(fixedItem.getHouseFund()+"(元)");
-            sheetNameList.add(fixedItem.getHouseFund()+"分摊表");
+            if(StringUtils.isNotBlank(fixedItem.getMonthCost())){
+                headList.add(fixedItem.getMonthCost()+"(元)");
+                sheetNameList.add(fixedItem.getMonthCost()+"分摊表");
+            }
+
+            if(StringUtils.isNotBlank(fixedItem.getBonus())){
+                headList.add(fixedItem.getBonus()+"(元)");
+                sheetNameList.add(fixedItem.getBonus()+"分摊表");
+            }
+
+
+            if(StringUtils.isNotBlank(fixedItem.getAllowance())){
+                headList.add(fixedItem.getAllowance()+"(元)");
+                sheetNameList.add(fixedItem.getAllowance()+"分摊表");
+            }
+
+            if(StringUtils.isNotBlank(fixedItem.getInsuranceOld())){
+                headList.add(fixedItem.getInsuranceOld()+"(元)");
+                sheetNameList.add(fixedItem.getInsuranceOld()+"分摊表");
+            }
+
+            if(StringUtils.isNotBlank(fixedItem.getInsuranceMedical())){
+                headList.add(fixedItem.getInsuranceMedical()+"(元)");
+                sheetNameList.add(fixedItem.getInsuranceMedical()+"分摊表");
+            }
+
+            if(StringUtils.isNotBlank(fixedItem.getInsuranceLosejob())){
+                headList.add(fixedItem.getInsuranceLosejob()+"(元)");
+                sheetNameList.add(fixedItem.getInsuranceLosejob()+"分摊表");
+            }
+            if(StringUtils.isNotBlank(fixedItem.getInsuranceInjury())){
+                headList.add(fixedItem.getInsuranceInjury()+"(元)");
+                sheetNameList.add(fixedItem.getInsuranceInjury()+"分摊表");
+            }
+            if(StringUtils.isNotBlank(fixedItem.getHouseFund())){
+                headList.add(fixedItem.getHouseFund()+"(元)");
+                sheetNameList.add(fixedItem.getHouseFund()+"分摊表");
+            }
+
 //            headList.add("其他(元)");
             for (FinanceTblcuscol col : cusColList) {
                 headList.add(col.getFieldName());
@@ -1185,229 +1208,231 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     rowData.add(p.cost.toPlainString());
                     allList.add(rowData);
 
-                    //获取成员
-                    for (Map<String, Object> membMap : projectTimeList) {
+                    if(0 != onlyTotal){
+                        //获取成员
+                        for (Map<String, Object> membMap : projectTimeList) {
 //                        if (membMap.get("project").equals(p.project)) {
-                        Integer projectId = ((Long) membMap.get("projectId")).intValue();
-                        //修改为按照projectId匹配
-                        if (projectId.equals(p.projectId)) {
-                            //匹配到项目了
-                            List<String> membRowData = new ArrayList<String>();
-                            membRowData.add(p.projectCode);
-                            membRowData.add(p.project);
-                            Double workingTime = (Double) membMap.get("workingTime");
-                            String creatorId = (String) membMap.get("creatorId");
-                            User us = userList.stream().filter(u->u.getId().equals(creatorId)).findFirst().get();
-                            Optional<Finance> first = finances.stream().filter(f -> f.getUserId().equals(creatorId)).findFirst();
-                            if (!first.isPresent()) {
-                                //logger.info("用户["+us.getName()+"]在财务报表中不存在,请重新导入");
-                                logger.info(MessageUtils.message("report.userNull",us.getName()));
-                                continue;
-                            }
-                            Finance userFinance = first.get();
-
-                            BigDecimal cost = userFinance.getTotalCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal salary = userFinance.getMonthCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal bonus = userFinance.getBonus().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal allowance = userFinance.getAllowance().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field4 = userFinance.getCustomField4() == null? new BigDecimal(0):userFinance.getCustomField4().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field5 = userFinance.getCustomField5() == null? new BigDecimal(0):userFinance.getCustomField5().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field6 = userFinance.getCustomField6() == null? new BigDecimal(0):userFinance.getCustomField6().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field7 = userFinance.getCustomField7() == null? new BigDecimal(0):userFinance.getCustomField6().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
-                            //增加部门
-                            Optional<Department> findDept = allDepartments.stream().filter(dp -> dp.getDepartmentId().equals(us.getDepartmentId())).findFirst();
-                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                                membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
-                                if (findDept.isPresent()) {
-                                    membRowData.add("$departmentName="+findDept.get().getDepartmentName()+"$");
-                                } else {
-                                    membRowData.add("");
+                            Integer projectId = ((Long) membMap.get("projectId")).intValue();
+                            //修改为按照projectId匹配
+                            if (projectId.equals(p.projectId)) {
+                                //匹配到项目了
+                                List<String> membRowData = new ArrayList<String>();
+                                membRowData.add(p.projectCode);
+                                membRowData.add(p.project);
+                                Double workingTime = (Double) membMap.get("workingTime");
+                                String creatorId = (String) membMap.get("creatorId");
+                                User us = userList.stream().filter(u->u.getId().equals(creatorId)).findFirst().get();
+                                Optional<Finance> first = finances.stream().filter(f -> f.getUserId().equals(creatorId)).findFirst();
+                                if (!first.isPresent()) {
+                                    //logger.info("用户["+us.getName()+"]在财务报表中不存在,请重新导入");
+                                    logger.info(MessageUtils.message("report.userNull",us.getName()));
+                                    continue;
                                 }
-                            }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                                membRowData.add("$userName="+us.getName()+"$");
-                                if (findDept.isPresent()) {
-                                    membRowData.add("$departmentName="+findDept.get().getDepartmentName()+"$");
-                                } else {
-                                    membRowData.add("");
+                                Finance userFinance = first.get();
+
+                                BigDecimal cost = userFinance.getTotalCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal salary = userFinance.getMonthCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal bonus = userFinance.getBonus().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal allowance = userFinance.getAllowance().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field4 = userFinance.getCustomField4() == null? new BigDecimal(0):userFinance.getCustomField4().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field5 = userFinance.getCustomField5() == null? new BigDecimal(0):userFinance.getCustomField5().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field6 = userFinance.getCustomField6() == null? new BigDecimal(0):userFinance.getCustomField6().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal field7 = userFinance.getCustomField7() == null? new BigDecimal(0):userFinance.getCustomField6().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                                //增加部门
+                                Optional<Department> findDept = allDepartments.stream().filter(dp -> dp.getDepartmentId().equals(us.getDepartmentId())).findFirst();
+                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
+                                    if (findDept.isPresent()) {
+                                        membRowData.add("$departmentName="+findDept.get().getDepartmentName()+"$");
+                                    } else {
+                                        membRowData.add("");
+                                    }
+                                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                                    membRowData.add("$userName="+us.getName()+"$");
+                                    if (findDept.isPresent()) {
+                                        membRowData.add("$departmentName="+findDept.get().getDepartmentName()+"$");
+                                    } else {
+                                        membRowData.add("");
+                                    }
+                                }else {
+                                    membRowData.add(us.getName());
+                                    if (findDept.isPresent()) {
+                                        membRowData.add(findDept.get().getDepartmentName());
+                                    } else {
+                                        membRowData.add("");
+                                    }
                                 }
-                            }else {
-                                membRowData.add(us.getName());
-                                if (findDept.isPresent()) {
-                                    membRowData.add(findDept.get().getDepartmentName());
-                                } else {
-                                    membRowData.add("");
+                                for (int i = 0; i < userCustoms.size(); i++) {
+                                    switch (i){
+                                        case 0:
+                                            membRowData.add(us.getPlate1()==null?"":us.getPlate1());
+                                            break;
+                                        case 1:
+                                            membRowData.add(us.getPlate2()==null?"":us.getPlate2());
+                                            break;
+                                        case 2:
+                                            membRowData.add(us.getPlate3()==null?"":us.getPlate3());
+                                            break;
+                                        case 3:
+                                            membRowData.add(us.getPlate4()==null?"":us.getPlate4());
+                                            break;
+                                        case 4:
+                                            membRowData.add(us.getPlate5()==null?"":us.getPlate5());
+                                            break;
+                                    }
                                 }
-                            }
-                            for (int i = 0; i < userCustoms.size(); i++) {
-                                switch (i){
-                                    case 0:
-                                        membRowData.add(us.getPlate1()==null?"":us.getPlate1());
-                                        break;
-                                    case 1:
-                                        membRowData.add(us.getPlate2()==null?"":us.getPlate2());
-                                        break;
-                                    case 2:
-                                        membRowData.add(us.getPlate3()==null?"":us.getPlate3());
-                                        break;
-                                    case 3:
-                                        membRowData.add(us.getPlate4()==null?"":us.getPlate4());
-                                        break;
-                                    case 4:
-                                        membRowData.add(us.getPlate5()==null?"":us.getPlate5());
-                                        break;
+                                membRowData.add(workTimeFormatter.format(workingTime));
+                                membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                //自定义字段
+                                if (cusColList.size() > 0) {
+                                    membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                 }
+                                if (cusColList.size() > 1) {
+                                    membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                if (cusColList.size() > 2) {
+                                    membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                if (cusColList.size() > 3) {
+                                    membRowData.add(field4.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                if (cusColList.size() > 4) {
+                                    membRowData.add(field5.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                if (cusColList.size() > 5) {
+                                    membRowData.add(field6.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                if (cusColList.size() > 6) {
+                                    membRowData.add(field7.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                }
+                                membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                allList.add(membRowData);
                             }
-                            membRowData.add(workTimeFormatter.format(workingTime));
-                            membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            //自定义字段
-                            if (cusColList.size() > 0) {
-                                membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 1) {
-                                membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 2) {
-                                membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 3) {
-                                membRowData.add(field4.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 4) {
-                                membRowData.add(field5.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 5) {
-                                membRowData.add(field6.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            if (cusColList.size() > 6) {
-                                membRowData.add(field7.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            }
-                            membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            allList.add(membRowData);
                         }
-                    }
-
-                    //无项目人员成本
-                    if (assignNoProUser != null && assignNoProUser) {
-                        for (Finance npu : noProjectUser) {
-                            List<String> membRowData = new ArrayList<String>();
-                            membRowData.add(p.projectCode);
-                            membRowData.add(p.project);
-                            Double workingTime = new Double(0);
-                            Finance userFinance = npu;
-                            Optional<Map> op = noPUserDataList.stream().filter(map->((Integer)map.get("projectId")).equals(p.projectId) && ((String)map.get("creatorId")).equals(npu.getUserId())).findFirst();
-                            if (op.isPresent()) {
-                                Map percentMap = op.get();
-                                double percent = (double)percentMap.get("percent");
-                                if (percent > 0) {
-                                    //各项收入按比例计算,累加到当前项目上
-                                    Finance newFinance = Finance.getByPercent(npu, percent);
-
-                                    BigDecimal cost = newFinance.getTotalCost();
-                                    BigDecimal salary = newFinance.getMonthCost();
-                                    BigDecimal bonus = newFinance.getBonus();
-                                    BigDecimal allowance = newFinance.getAllowance();
-                                    BigDecimal old = newFinance.getInsuranceOld();
-                                    BigDecimal medical = newFinance.getInsuranceMedical();
-                                    BigDecimal loseJob = newFinance.getInsuranceLosejob();
-                                    BigDecimal injury = newFinance.getInsuranceInjury();
-                                    BigDecimal house = newFinance.getHouseFund();
-                                    BigDecimal field1 = newFinance.getCustomField1() == null? new BigDecimal(0):newFinance.getCustomField1();
-                                    BigDecimal field2 = newFinance.getCustomField2() == null? new BigDecimal(0):newFinance.getCustomField2();
-                                    BigDecimal field3 = newFinance.getCustomField3() == null? new BigDecimal(0):newFinance.getCustomField3();
-                                    BigDecimal field4 = newFinance.getCustomField4() == null? new BigDecimal(0):newFinance.getCustomField4();
-                                    BigDecimal field5 = newFinance.getCustomField5() == null? new BigDecimal(0):newFinance.getCustomField5();
-                                    BigDecimal field6 = newFinance.getCustomField6() == null? new BigDecimal(0):newFinance.getCustomField6();
-                                    BigDecimal field7 = newFinance.getCustomField7() == null? new BigDecimal(0):newFinance.getCustomField7();
-                                    User us = userList.stream().filter(u->u.getId().equals(npu.getUserId())).findFirst().get();
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                                        membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
-                                    }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                                        membRowData.add("$userName="+us.getDingdingUserid()+"$");
-                                    }else {
-                                        membRowData.add(npu.getName());
-                                    }
 
-                                    //增加部门
-                                    Optional<Department> first = allDepartments.stream().filter(dp -> dp.getDepartmentId().equals(us.getDepartmentId())).findFirst();
-                                    if (first.isPresent()) {
+                        //无项目人员成本
+                        if (assignNoProUser != null && assignNoProUser) {
+                            for (Finance npu : noProjectUser) {
+                                List<String> membRowData = new ArrayList<String>();
+                                membRowData.add(p.projectCode);
+                                membRowData.add(p.project);
+                                Double workingTime = new Double(0);
+                                Finance userFinance = npu;
+                                Optional<Map> op = noPUserDataList.stream().filter(map->((Integer)map.get("projectId")).equals(p.projectId) && ((String)map.get("creatorId")).equals(npu.getUserId())).findFirst();
+                                if (op.isPresent()) {
+                                    Map percentMap = op.get();
+                                    double percent = (double)percentMap.get("percent");
+                                    if (percent > 0) {
+                                        //各项收入按比例计算,累加到当前项目上
+                                        Finance newFinance = Finance.getByPercent(npu, percent);
+
+                                        BigDecimal cost = newFinance.getTotalCost();
+                                        BigDecimal salary = newFinance.getMonthCost();
+                                        BigDecimal bonus = newFinance.getBonus();
+                                        BigDecimal allowance = newFinance.getAllowance();
+                                        BigDecimal old = newFinance.getInsuranceOld();
+                                        BigDecimal medical = newFinance.getInsuranceMedical();
+                                        BigDecimal loseJob = newFinance.getInsuranceLosejob();
+                                        BigDecimal injury = newFinance.getInsuranceInjury();
+                                        BigDecimal house = newFinance.getHouseFund();
+                                        BigDecimal field1 = newFinance.getCustomField1() == null? new BigDecimal(0):newFinance.getCustomField1();
+                                        BigDecimal field2 = newFinance.getCustomField2() == null? new BigDecimal(0):newFinance.getCustomField2();
+                                        BigDecimal field3 = newFinance.getCustomField3() == null? new BigDecimal(0):newFinance.getCustomField3();
+                                        BigDecimal field4 = newFinance.getCustomField4() == null? new BigDecimal(0):newFinance.getCustomField4();
+                                        BigDecimal field5 = newFinance.getCustomField5() == null? new BigDecimal(0):newFinance.getCustomField5();
+                                        BigDecimal field6 = newFinance.getCustomField6() == null? new BigDecimal(0):newFinance.getCustomField6();
+                                        BigDecimal field7 = newFinance.getCustomField7() == null? new BigDecimal(0):newFinance.getCustomField7();
+                                        User us = userList.stream().filter(u->u.getId().equals(npu.getUserId())).findFirst().get();
                                         if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                                            membRowData.add("$departmentName="+(first.get().getCorpwxDeptid()==null?"":first.get().getCorpwxDeptid())+"$");
+                                            membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
                                         }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                                            membRowData.add("$departmentName="+(first.get().getDdDeptid()==null?"":first.get().getDdDeptid())+"$");
+                                            membRowData.add("$userName="+us.getDingdingUserid()+"$");
                                         }else {
-                                            membRowData.add(first.get().getDepartmentName());
+                                            membRowData.add(npu.getName());
                                         }
-                                    } else {
-                                        membRowData.add("");
-                                    }
-                                    //自定义字段的显示
-                                    for (int i = 0; i < userCustoms.size(); i++) {
-                                        switch (i){
-                                            case 0:
-                                                membRowData.add(us.getPlate1()==null?"":us.getPlate1());
-                                                break;
-                                            case 1:
-                                                membRowData.add(us.getPlate2()==null?"":us.getPlate2());
-                                                break;
-                                            case 2:
-                                                membRowData.add(us.getPlate3()==null?"":us.getPlate3());
-                                                break;
-                                            case 3:
-                                                membRowData.add(us.getPlate4()==null?"":us.getPlate4());
-                                                break;
-                                            case 4:
-                                                membRowData.add(us.getPlate5()==null?"":us.getPlate5());
-                                                break;
+
+                                        //增加部门
+                                        Optional<Department> first = allDepartments.stream().filter(dp -> dp.getDepartmentId().equals(us.getDepartmentId())).findFirst();
+                                        if (first.isPresent()) {
+                                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                                membRowData.add("$departmentName="+(first.get().getCorpwxDeptid()==null?"":first.get().getCorpwxDeptid())+"$");
+                                            }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                                                membRowData.add("$departmentName="+(first.get().getDdDeptid()==null?"":first.get().getDdDeptid())+"$");
+                                            }else {
+                                                membRowData.add(first.get().getDepartmentName());
+                                            }
+                                        } else {
+                                            membRowData.add("");
                                         }
+                                        //自定义字段的显示
+                                        for (int i = 0; i < userCustoms.size(); i++) {
+                                            switch (i){
+                                                case 0:
+                                                    membRowData.add(us.getPlate1()==null?"":us.getPlate1());
+                                                    break;
+                                                case 1:
+                                                    membRowData.add(us.getPlate2()==null?"":us.getPlate2());
+                                                    break;
+                                                case 2:
+                                                    membRowData.add(us.getPlate3()==null?"":us.getPlate3());
+                                                    break;
+                                                case 3:
+                                                    membRowData.add(us.getPlate4()==null?"":us.getPlate4());
+                                                    break;
+                                                case 4:
+                                                    membRowData.add(us.getPlate5()==null?"":us.getPlate5());
+                                                    break;
+                                            }
+                                        }
+                                        membRowData.add(workTimeFormatter.format(workingTime));
+                                        membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        //自定义字段
+                                        if (cusColList.size() > 0) {
+                                            membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 1) {
+                                            membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 2) {
+                                            membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 3) {
+                                            membRowData.add(field4.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 4) {
+                                            membRowData.add(field5.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 5) {
+                                            membRowData.add(field6.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        if (cusColList.size() > 6) {
+                                            membRowData.add(field7.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        }
+                                        membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        allList.add(membRowData);
                                     }
-                                    membRowData.add(workTimeFormatter.format(workingTime));
-                                    membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    //自定义字段
-                                    if (cusColList.size() > 0) {
-                                        membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 1) {
-                                        membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 2) {
-                                        membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 3) {
-                                        membRowData.add(field4.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 4) {
-                                        membRowData.add(field5.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 5) {
-                                        membRowData.add(field6.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    if (cusColList.size() > 6) {
-                                        membRowData.add(field7.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    }
-                                    membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    allList.add(membRowData);
                                 }
                             }
                         }
@@ -1565,18 +1590,20 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             multiSheetDataList[i].add(newRow);
                         }
                     }
-                    if(0 == onlyTotal){
-                        return excelExportService.exportMultiSheetGeneralExcelTotal(wxCorpInfo,dingding,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
-
-                    }else{
-                        return excelExportService.exportMultiSheetGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
-                    }
+                    return excelExportService.exportMultiSheetGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
+//                    if(0 == onlyTotal){
+//                        return excelExportService.exportMultiSheetGeneralExcelTotal(wxCorpInfo,dingding,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
+//
+//                    }else{
+//                        return excelExportService.exportMultiSheetGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
+//                    }
                 } else {
-                    if(0 == onlyTotal){
-                        return excelExportService.exportGeneralExcelTotal(wxCorpInfo,dingding,fileName , allList, path);
-                    }else{
-                        return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , allList, path);
-                    }
+                    return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , allList, path);
+//                    if(0 == onlyTotal){
+//                        return excelExportService.exportGeneralExcelTotal(wxCorpInfo,dingding,fileName , allList, path);
+//                    }else{
+//                        return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , allList, path);
+//                    }
                 }
             } catch (Exception e) {
                 e.printStackTrace();