diff --git a/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java b/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java index d7cd4966d..ae4cfc61a 100644 --- a/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java +++ b/src/com/engine/salary/entity/siexport/param/InsuranceExportParam.java @@ -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 employeeIds; + + private String userName; + + + /** + * 退差月份 + */ + private List recessionMonthList; + + private List taxAgents; + + private String workcode; } diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index add71efbd..e66059a96 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -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 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 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 sumMap = (Map) sumRow.get("sumRow"); + sumMap.put("department", "总计"); + + records.add(sumMap); + } //工作簿数据 List> rows = new LinkedList<>(); for (Map 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); } diff --git a/src/com/engine/salary/util/excel/ExcelUtil.java b/src/com/engine/salary/util/excel/ExcelUtil.java index c733129fb..c50c11d2b 100644 --- a/src/com/engine/salary/util/excel/ExcelUtil.java +++ b/src/com/engine/salary/util/excel/ExcelUtil.java @@ -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);// 选择需要用到的字体格式