package com.engine.salary.wrapper; /** * 薪资档案 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public class SalaryArchiveWrapper { // private SalaryArchiveService salaryArchiveService; // private SalaryArchiveItemService salaryArchiveItemService; // private HrmCommonEmployeeService employeeService; // private TaxAgentService taxAgentService; // private SalaryBatchService salaryBatchService; // private ExecutorService taskExecutor; // // /** // * 薪资档案列表-高级搜索 // * // * @param employeeId // * @param tenantKey // * @return // */ // public WeaSearchCondition getSearchCondition(Long employeeId, String tenantKey) { // List taxAgentList = new ArrayList<>(); // // 获取所有个税扣缴义务人 // Collection taxAgentLists = taxAgentService.findAll(tenantKey); // taxAgentLists.forEach(e-> taxAgentList.add(new WeaSearchConditionOption(e.getId().toString(), e.getName()))); // // WeaSearchCondition weaSearchCondition = SalaryFormatUtil.getInstance() // .buildCondition(SalaryArchiveSearchConditionDTO.class, // SalaryArchiveSearchConditionDTO.builder().taxAgentOptions(taxAgentList).build(), // "salaryArchive"); // // 入职日期-添加范围 // SalaryArchiveBO.addDatePickerRangeOtherParams(weaSearchCondition, "hiredate", employeeId, tenantKey); // // 只保留常用条件 // weaSearchCondition.setGroups(weaSearchCondition.getGroups().stream().filter(e-> "commonGroup".equals(e.getId())).collect(Collectors.toList())); // // return weaSearchCondition; // } // // /** // * 薪资档案列表(分页) // * // * @param queryParam // * @param employeeId // * @param tenantKey // * @return // */ // public WeaTable list(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) { // Collection taxAgentLists = taxAgentService.findAll(tenantKey); // // Page page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true); // page = salaryArchiveService.listPage(page, queryParam, tenantKey); // // Collection salaryArchives = page.getRecords(); // // 获取所有可被引用的薪资项目 // List salaryItems = salaryArchiveItemService.getCanAdjustSalaryItems(tenantKey); // List> listMaps = salaryArchiveService.buildSalaryArchiveData(salaryArchives, taxAgentLists, salaryItems, employeeId, tenantKey, Boolean.TRUE); // // Page> listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); // listPage.setRecords(listMaps); // // WeaTable weaTable = FormatManager.getInstance() // .genTable(LinkedHashMap.class, listPage); // weaTable.setPageUid("salaryArchive"); // weaTable.setModule("hrmsalary"); // //动态列组装 // SalaryArchiveBO.buildSalaryArchiveTable(weaTable, salaryItems, employeeId, tenantKey, listMaps.size()); // // 在外展示操作按钮 // weaTable.getOperates().get(0).setOuter(Boolean.TRUE); // return weaTable; // } // // /** // * 获取薪资档案详情表单 // * // * @param salaryArchiveId // * @param employeeId // * @param tenantKey // * @return // */ // public SalaryArchiveFormDTO getFrom(Long salaryArchiveId, Long employeeId, String tenantKey) { // if (salaryArchiveId == null) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100425, "薪资档案id不能为空")); // } // SalaryArchivePO po = salaryArchiveService.getById(salaryArchiveId, tenantKey); // if (po == null) { // throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100463, "薪资档案不存在")+"[id:%s]", salaryArchiveId)); // } // // List employeeList = employeeService.getEmployeeByIds(Collections.singletonList(po.getEmployeeId()), tenantKey); // if (CollectionUtils.isEmpty(employeeList)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100465, "薪资档案员工信息不存在")); // } // // // 获取当前已生效个税扣缴义务人 // List taxAgentList = salaryArchiveService.getCurrentEffectiveTaxAgentList(Collections.singletonList(salaryArchiveId), tenantKey); // // 获取所有个税扣缴义务人 // Collection taxAgentLists = taxAgentService.findAll(tenantKey); // String taxAgent = ""; // if (CollectionUtils.isNotEmpty(taxAgentList)) { // SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = taxAgentList.get(0); // Optional taxAgentOptional = taxAgentLists.stream().filter(f->f.getId().equals(salaryArchiveTaxAgent.getTaxAgentId())).findFirst(); // taxAgent = taxAgentOptional.isPresent()?taxAgentOptional.get().getName():taxAgent; // } // // // 1.基本信息表单 // SimpleEmployee employee = employeeList.get(0); // WeaForm salaryArchiveBaseInfoForm = SalaryFormatUtil.getInstance().buildForm(SalaryArchiveBaseInfoFormDTO.class, // SalaryArchiveBaseInfoFormDTO.builder() // .username(employee.getUsername()) // .department(employee.getDepartment().getName()) // .position(employee.getPosition()==null?"":employee.getPosition().getName()) // .hiredate(SalaryDateUtil.getFormatLocalDate(employee.getHiredate())) // .mobile(employee.getMobile()) // .taxAgent(taxAgent) // .build()); // // List> salaryItems = Lists.newArrayList(); // // 获取所有可被引用的薪资项目 // List salaryItemList = salaryArchiveItemService.getCanAdjustSalaryItems(tenantKey); // Collection salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); // List salaryArchiveItemList = salaryArchiveService.getCurrentEffectiveItemList(Collections.singletonList(salaryArchiveId), salaryItemIds, tenantKey); // salaryArchiveItemList.forEach(m->{ // Optional optionalItem = salaryItemList.stream().filter(f->f.getId().equals(m.getSalaryItemId())).findFirst(); // if (optionalItem.isPresent()) { // Map salaryItemMap = new LinkedHashMap<>(); // salaryItemMap.put("id", m.getId()); // salaryItemMap.put("name", optionalItem.get().getName()); // salaryItemMap.put("value", m.getItemValue()); // salaryItems.add(salaryItemMap); // } // }); // // // 2.薪资档案表单 // WeaForm salaryItemFrom = buildSalaryItemForm(salaryItems); // // // 3.调整记录的高级搜索 // // 3.1 薪资项目 // WeaSearchCondition salaryItemAdjustRecordSearchCondition = buildSalaryItemAdjustRecordSearchCondition(employeeId, tenantKey); // // return SalaryArchiveFormDTO.builder() // .id(salaryArchiveId) // .employeeId(employee.getId()) // .baseInfo(salaryArchiveBaseInfoForm) // .adjustSalaryItems(salaryItemFrom) // .salaryItemAdjustRecordSearchCondition(salaryItemAdjustRecordSearchCondition) // .build(); // } // // /** // * 薪资调整记录的高级搜索 // * // * @param employeeId // * @param tenantKey // * @return // */ // private WeaSearchCondition buildSalaryItemAdjustRecordSearchCondition(Long employeeId, String tenantKey) { // WeaSearchCondition weaSearchCondition = SalaryFormatUtil.getInstance() // .buildCondition(SalaryItemAdjustRecordForFromSearchConditionDTO.class, // SalaryItemAdjustRecordForFromSearchConditionDTO.builder().build(), // "salaryItemAdjustRecordForFromSearchCondition"); // // 生效日期-添加范围 // SalaryArchiveBO.addDatePickerRangeOtherParams(weaSearchCondition, "effectiveTime", employeeId, tenantKey); // // 操作日期-添加范围 // SalaryArchiveBO.addDatePickerRangeOtherParams(weaSearchCondition, "operateTime", employeeId, tenantKey); // // // 只保留常用条件 // weaSearchCondition.setGroups(weaSearchCondition.getGroups().stream().filter(e-> "commonGroup".equals(e.getId())).collect(Collectors.toList())); // // return weaSearchCondition; // } // // /** // * 薪资档案-薪资档案表单 // * // * @param salaryItems // * @return // */ // private WeaForm buildSalaryItemForm(List> salaryItems) { // // 构建表单 // WeaForm salaryItemForm = new WeaForm(); // // // 控件项目 // Map items = salaryItemForm.getItems(); // // 控件布局 // List> layout = salaryItemForm.getLayout(); // // 控件数据 // Map data = salaryItemForm.getData(); // // List layoutSingles = Lists.newArrayList(); // int i=0; // while (if.getId().equals(String.valueOf(finalI))).collect(Collectors.toList())); // } // j++; // } // // return salaryItemForm; // } // // /** // * 获取离职时段设置表单 // * // * @param tenantKey // * @return // */ // public WeaForm getDimissionSetForm(String tenantKey) { // WeaForm salaryTemplateBase = SalaryFormatUtil.getInstance().buildForm(DimissionSetFormDTO.class, DimissionSetFormDTO.builder().build()); // List dimissionSets = salaryArchiveService.dimissionSets(tenantKey); // Map data = new LinkedHashMap<>(); // if (CollectionUtils.isNotEmpty(dimissionSets)) { // data.put("dimissionTimeInterval", dimissionSets.get(0).getDimissionTimeInterval()); // } // salaryTemplateBase.setData(data); // return salaryTemplateBase; // } // // /** // * 保存离职时段设置 // * // * @param saveParam // * @param employeeId // * @param tenantKey // * @return // */ // public String saveDimissionSet(SalaryArchiveDimissionSaveParam saveParam, Long employeeId, String tenantKey) { // return salaryArchiveService.saveDimissionSet(saveParam, employeeId, tenantKey); // } // // /** // * 导出薪资档案 // * // * @param queryParam // * @param employeeId // * @param tenantKey // * @return // */ // public Map exportList(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) { // // 构建异步导出参数 // Map map = salaryBatchService.buildeExportParam("exportSalaryArchive"); // String username = UserContext.getCurrentUser().getUsername(); // String eteamsId = TenantRpcContext.getEteamsId(); // taskExecutor.execute(() -> { // try { // DSTenantKeyThreadVar.tenantKey.set(tenantKey); // salaryArchiveService.exportList(map, username, eteamsId, queryParam, employeeId, tenantKey); // } finally { // DSTenantKeyThreadVar.tenantKey.remove(); // } // }); // // return map; // } // // /** // * 下载导入模板 // * // * @param queryParam // * @param employeeId // * @param tenantKey // * @return // */ // public Map downloadTemplate(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) { // Map map = salaryBatchService.buildeExportParam("exportSalaryArchive"); // String username = UserContext.getCurrentUser().getUsername(); // // String eteamsId = TenantRpcContext.getEteamsId(); // Optional optionalImportType = Arrays.stream(SalaryArchiveImportTypeEnum.values()).filter(e-> StringUtils.isNotEmpty(queryParam.getImportType()) && e.getValue().equals(queryParam.getImportType())).findFirst(); // if (!optionalImportType.isPresent()) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100593, "导入类型不正确")); // } // taskExecutor.execute(() -> { // try { // DSTenantKeyThreadVar.tenantKey.set(tenantKey); // salaryArchiveService.downloadTemplate(map, username, eteamsId, optionalImportType.get(), queryParam, employeeId, tenantKey); // } finally { // DSTenantKeyThreadVar.tenantKey.remove(); // } // }); // // return map; // } // // /** // * 获取导入参数 // * // * @return // */ // public ExcelImportParam getImportParams() { // return salaryBatchService.buildImportParam("importSalaryArchive", // "importSalaryArchive", // SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), 85368, "薪资档案"), // null, // null); // } }