工资单详情 - 显示列定制

This commit is contained in:
Harryxzy 2024-07-16 11:30:25 +08:00
parent 95ba4aee36
commit 78cdadbb99
4 changed files with 33 additions and 15 deletions

View File

@ -68,6 +68,10 @@ public class SalarySendDetailQueryParam extends BaseQueryParam {
// @JsonIgnore
private List<Integer> sendStatuss;
// 导出时显示列定制信息
List<String> columns;
public static String checkParam(SalarySendDetailQueryParam saveParam) {
if (saveParam.getSalarySendId() == null) {
throw new SalaryRunTimeException("工资单发放Id必传");

View File

@ -56,6 +56,7 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper;
import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper;
import com.engine.salary.mapper.salarybill.SalarySendInfoMapper;
import com.engine.salary.mapper.salarybill.SalarySendMapper;
import com.engine.salary.report.common.constant.SalaryConstant;
import com.engine.salary.service.*;
import com.engine.salary.sys.entity.vo.OrderRuleVO;
import com.engine.salary.sys.service.SalarySysConfService;
@ -1570,13 +1571,25 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
// 1.工作簿名称
String sheetName = SalaryI18nUtil.getI18nLabel(97036, "工资单发放详情");
List<Object> header = new ArrayList<>();
// 员工信息字段
header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名"));
header.add(SalaryI18nUtil.getI18nLabel(86185, "部门"));
header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号"));
header.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
Map<String, SalaryTemplateSalaryItemListDTO> salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX);
List<SalaryTemplateSalaryItemListDTO> sortedSalaryItems = new ArrayList<>();
for(String column : queryParam.getColumns()) {
if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) {
SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column);
if (salaryTemplateSalaryItemListDTO != null) {
sortedSalaryItems.add(salaryTemplateSalaryItemListDTO);
}
}
}
// 动态列
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salaryItems)) {
for (SalaryTemplateSalaryItemListDTO salaryItem : salaryItems) {
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(sortedSalaryItems)) {
for (SalaryTemplateSalaryItemListDTO salaryItem : sortedSalaryItems) {
header.add(salaryItem.getName());
}
}
@ -1595,7 +1608,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
// 动态列
Map<String, Object> mapColumn = listMaps.get(0);
for (SalaryTemplateSalaryItemListDTO salaryItem : salaryItems) {
for (SalaryTemplateSalaryItemListDTO salaryItem : sortedSalaryItems) {
if (mapColumn.containsKey(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)) {
row.add(dto.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX));
}
@ -1706,7 +1719,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
.filter(NumberUtils::isCreatable)
.map(BigDecimal::new)
.reduce(BigDecimal.ZERO, BigDecimal::add);
map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap));
map.put(item.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap));
});
return map;
}

View File

@ -531,21 +531,21 @@ public class SalaryBillController {
*
* @return
*/
@GET
@POST
@Path("/send/exportDetailList")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportDetailList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
public Response exportDetailList(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody SalarySendDetailQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam();
String salarySendId = request.getParameter("salarySendId");
String ids = request.getParameter("ids");
if (StringUtils.isNotBlank(ids)) {
queryParam.setIds(Arrays.asList(ids.split(",")).stream().map(Long::new).collect(Collectors.toList()));
}
if (StringUtils.isNotBlank(salarySendId)) {
queryParam.setSalarySendId(Long.parseLong(salarySendId));
}
// SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam();
// String salarySendId = request.getParameter("salarySendId");
// String ids = request.getParameter("ids");
// if (StringUtils.isNotBlank(ids)) {
// queryParam.setIds(Arrays.asList(ids.split(",")).stream().map(Long::new).collect(Collectors.toList()));
// }
// if (StringUtils.isNotBlank(salarySendId)) {
// queryParam.setSalarySendId(Long.parseLong(salarySendId));
// }
XSSFWorkbook workbook = getSalarySendWrapper(user).exportDetailList(queryParam);
String fileName = "工资单发放详情列表" + LocalDate.now();

View File

@ -562,6 +562,7 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy
checkboxpopedom.setPopedompara("column:system_type");
checkboxpopedom.setShowmethod("com.engine.salary.transmethod.TaxRateTransMethod.getCheckBoxPopedom");
checkboxpopedomList.add(checkboxpopedom);
table.setPageUID(queryParam.getSalarySendId().toString());
table.setCheckboxList(checkboxpopedomList);
table.setCheckboxpopedom(null);