薪酬系统-福利台账,核算明细列表合计行导出

This commit is contained in:
sy 2023-08-18 17:58:36 +08:00
parent ea1a46839d
commit 4ffca1872a
3 changed files with 55 additions and 3 deletions

View File

@ -7,6 +7,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author weaver_cl
@ -27,4 +29,20 @@ public class InsuranceExportParam extends BaseQueryParam {
private String paymentOrganization;
private Long creator;
private Integer paymentStatus;
private List<Long> employeeIds;
private String userName;
/**
* 退差月份
*/
private List<String> recessionMonthList;
private List<Long> taxAgents;
private String workcode;
}

View File

@ -7,14 +7,13 @@ import com.engine.core.impl.Service;
import com.engine.salary.biz.SIAccountBiz;
import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.siaccount.dto.InsuranceAccountViewListDTO;
import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO;
import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.entity.siexport.param.InsuranceExportParam;
import com.engine.salary.entity.siexport.po.AccountExportPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.siaccount.BillStatusEnum;
import com.engine.salary.enums.siaccount.EmployeeStatusEnum;
import com.engine.salary.enums.siaccount.PaymentStatusEnum;
import com.engine.salary.enums.siaccount.ResourceFromEnum;
import com.engine.salary.enums.sicategory.DataTypeEnum;
@ -24,10 +23,13 @@ import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper;
import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper;
import com.engine.salary.mapper.sicategory.ICategoryMapper;
import com.engine.salary.mapper.taxagent.TaxAgentMapper;
import com.engine.salary.service.SIAccountService;
import com.engine.salary.service.SIExportService;
import com.engine.salary.service.SISchemeService;
import com.engine.salary.service.TaxAgentService;
import com.engine.salary.sys.entity.po.SalarySysConfPO;
import com.engine.salary.sys.entity.vo.OrderRuleVO;
import com.engine.salary.sys.enums.OpenEnum;
import com.engine.salary.sys.service.SalarySysConfService;
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.engine.salary.util.SalaryAssert;
@ -35,6 +37,7 @@ import com.engine.salary.util.SalaryEnumUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelUtil;
import org.springframework.beans.BeanUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -47,6 +50,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static com.engine.salary.enums.UserStatusEnum.getDefaultLabelByValue;
import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_ACCT_RESULT_SUM;
/**
* @Author weaver_cl
@ -94,6 +98,10 @@ public class SIExportServiceImpl extends Service implements SIExportService {
return MapperProxyFactory.getProxy(ICategoryMapper.class);
}
private SIAccountService getSIAccountService(User user) {
return ServiceUtil.getService(SIAccountServiceImpl.class, user);
}
@Override
public XSSFWorkbook exportOverView(InsuranceExportParam queryParam) {
List<InsuranceAccountDetailPO> insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().selectList(queryParam.getBillMonth(), StringUtils.isBlank(queryParam.getPaymentOrganization()) ? null : Long.valueOf(queryParam.getPaymentOrganization()));
@ -158,8 +166,10 @@ public class SIExportServiceImpl extends Service implements SIExportService {
if (CollectionUtils.isEmpty(taxAgents)) {
//防止普通用户查询
accountExportPOS = new ArrayList<>();
param = new InsuranceExportParam();
} else {
accountExportPOS.stream().filter(f -> taxAgents.contains(f.getPaymentOrganization())).collect(Collectors.toList());
param.setTaxAgents(taxAgents);
}
}
} else {
@ -193,6 +203,28 @@ public class SIExportServiceImpl extends Service implements SIExportService {
//工作簿名称
String sheetName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案");
excelSheetData.add(Arrays.asList(columns.stream().map(WeaTableColumn::getText).toArray(String[]::new)));
//合计
boolean total = false;
SalarySysConfPO openSum = getSalarySysConfService(user).getOneByCode(OPEN_ACCT_RESULT_SUM);
if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) {
total = true;
InsuranceAccountDetailParam queryParam = new InsuranceAccountDetailParam();
BeanUtils.copyProperties(param, queryParam);
Map<String, Object> sumRow = new HashMap<>();
if (paymentStatus.equals(PaymentStatusEnum.COMMON.getValue())) {
sumRow = getSIAccountService(user).listCommonSum(queryParam);
} else if (paymentStatus.equals(PaymentStatusEnum.REPAIR.getValue())) {
sumRow = getSIAccountService(user).listSupplementarySum(queryParam);
} else if (paymentStatus.equals(PaymentStatusEnum.RECESSION.getValue())) {
sumRow = getSIAccountService(user).listRecessionSum(queryParam);
} else if (paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) {
sumRow = getSIAccountService(user).listBalanceSum(queryParam);
}
Map<String, Object> sumMap = (Map<String, Object>) sumRow.get("sumRow");
sumMap.put("department", "总计");
records.add(sumMap);
}
//工作簿数据
List<List<Object>> rows = new LinkedList<>();
for (Map<String, Object> recordData : records) {
@ -202,8 +234,9 @@ public class SIExportServiceImpl extends Service implements SIExportService {
}
rows.add(row);
}
excelSheetData.addAll(rows);
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName, total);
}

View File

@ -223,6 +223,7 @@ public class ExcelUtil {
redFont.setFontName("宋体");
redFont.setFontHeightInPoints((short) 10);// 设置字体大小
redFont.setColor(new XSSFColor(new Color(0xFF3333), null));
redFont.setBold(true);
redCellStyle.setWrapText(true);
redCellStyle.setFont(redFont);// 选择需要用到的字体格式