This commit is contained in:
钱涛 2022-03-28 16:36:40 +08:00
parent 93154ada71
commit 5ae4eb5fc8
64 changed files with 6736 additions and 3 deletions

View File

@ -0,0 +1,8 @@
package com.api.salary.web;
import javax.ws.rs.Path;
@Path("/bs/hrmsalary/salaryArchive")
public class SalaryArchiveController extends com.engine.salary.web.SalaryArchiveController{
}

View File

@ -0,0 +1,20 @@
package com.engine.salary.biz;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.mapper.archive.SalaryArchiveMapper;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
public class SalaryArchiveBiz {
public SalaryArchivePO getById(Long salaryArchiveId) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalaryArchiveMapper mapper = sqlSession.getMapper(SalaryArchiveMapper.class);
return mapper.getById(salaryArchiveId);
} finally {
sqlSession.close();
}
}
}

View File

@ -0,0 +1,22 @@
package com.engine.salary.biz;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.mapper.archive.SalaryArchiveItemMapper;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import java.util.List;
public class SalaryArchiveItemBiz {
public List<SalaryArchiveItemPO> getCurrentEffectiveItemList(SalaryArchiveItemQueryParam build) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class);
return mapper.listByParam(build);
} finally {
sqlSession.close();
}
}
}

View File

@ -0,0 +1,23 @@
package com.engine.salary.biz;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
import com.engine.salary.mapper.archive.SalaryArchiveTaxAgentMapper;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import java.util.List;
public class SalaryArchiveTaxAgentBiz {
public List<SalaryArchiveTaxAgentPO> listByParam(SalaryArchiveTaxAgentQueryParam build) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalaryArchiveTaxAgentMapper mapper = sqlSession.getMapper(SalaryArchiveTaxAgentMapper.class);
return mapper.listByParam(build);
} finally {
sqlSession.close();
}
}
}

View File

@ -0,0 +1,163 @@
package com.engine.salary.entity.salaryarchive.bo;
/**
* @Description: 薪资档案
* @Author: wangxiangzhong
* @Date: 2021-11-03 10:51
*/
public class SalaryArchiveBO {
@Override
public String toString() {
return "SalaryArchiveBO{}";
}
/**
* 添加日期范围
* @param weaSearchCondition
* @param employeeId
* @param tenantKey
*/
// public static void addDatePickerRangeOtherParams(WeaSearchCondition weaSearchCondition, String datePickerKey, Long employeeId, String tenantKey) {
// WeaSearchConditionItem datePickerItem = weaSearchCondition.getItems().get(datePickerKey);
// Map<String, Object> otherParams = Maps.newHashMap();
// otherParams.put("isRange", true);
// otherParams.put("type", "day");
// otherParams.put("startPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90648, "开始日期"));
// otherParams.put("endPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90649, "结束日期"));
// datePickerItem.setOtherParams(otherParams);
// weaSearchCondition.getItems().put(datePickerKey, datePickerItem);
// }
/**
* 构建表格动态列
* @param weaTable
* @param salaryItems
* @param employeeId
* @param tenantKey
* @param size
*/
// public static void buildSalaryArchiveTable(WeaTable<LinkedHashMap> weaTable, List<SalaryItemPO> salaryItems, Long employeeId, String tenantKey, int size) {
// // 表格表头
// List<WeaTableColumn> columns = new ArrayList<>();
// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85429, "姓名"), "username", "100"));
// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人"), "taxAgentName", "100"));
// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86185, "部门"), "departmentName", "100"));
// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86186, "手机号"), "mobile", "100"));
// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86187, "员工状态"), "employeeStatus", "100"));
// for (SalaryItemPO salaryItem : salaryItems) {
// columns.add(new WeaTableColumn(salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, "150"));
// }
// weaTable.setColumns(columns);
//
// List<WeaTableOperate> operates = weaTable.getOperates();
// operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90821, "查看"), 0));
//
// weaTable.setOperatesPermission(getDefaultOperatesPermission(operates.size(), size));
// weaTable.setCheckBoxPermission(getDefaultCheckBoxPermission(size));
//
// weaTable.setTableType(WeaTableTypeEnum.CHECKBOX);
// }
//
// private static List<List<Permission>> getDefaultOperatesPermission(int operateSize, int recordSize) {
// List<List<Permission>> permissionList = Lists.newArrayList();
// for (int i=0; i<recordSize; i++) {
// List<Permission> permissions = Lists.newArrayList();
// for (int j=0; j<operateSize; j++) {
// permissions.add(new Permission(true, false));
// }
// permissionList.add(permissions);
// }
// return permissionList;
// }
// private static List<Permission> getDefaultCheckBoxPermission(int recordSize) {
// List<Permission> permissionList = Lists.newArrayList();
// for (int i=0; i<recordSize; i++) {
// permissionList.add(new Permission(true, false));
// }
// return permissionList;
// }
/**
* 构建薪资档案数据
* @param salaryArchiveTaxAgentList
* @param salaryArchiveItemDataList
* @param localDateRange
* @param allEmployeeIds
* @param isOnlyTaxAgent
* @return
*/
// public static List<SalaryArchiveDataDTO> buildSalaryArchiveData(List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgentList,
// List<SalaryArchiveItemPO> salaryArchiveItemDataList,
// LocalDateRange localDateRange,
// List<Long> allEmployeeIds,
// boolean isOnlyTaxAgent) {
// // 开始日期
// LocalDate start = localDateRange.getFromDate();
// // 结束日期
// LocalDate end = localDateRange.getEndDate();
//
// List<SalaryArchiveDataDTO> list = new ArrayList<>();
// allEmployeeIds.forEach(e->{
// // 同一个人的个税扣缴义务人调整历史数据
// List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgents = salaryArchiveTaxAgentList.stream().filter(f->f.getEmployeeId().equals(e)).collect(Collectors.toList());
// // 同一个人的薪资项目调整历史数据
// List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d->d.getEmployeeId().equals(e)).collect(Collectors.toList());
// List<Long> salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList());
//
// SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO();
// salaryArchiveData.setEmployeeId(e);
// List<SalaryArchiveTaxAgentDataDTO> taxAgents = new ArrayList<>();
// // 按个税扣缴义务人生效日期时间段切割
// LocalDate endTemp = end;
// for (SalaryArchiveTaxAgentPO salaryArchiveTaxAgent : salaryArchiveTaxAgents) {
// Date fromDate = salaryArchiveTaxAgent.getEffectiveTime();
// if (fromDate.isAfter(endTemp) || !endTemp.isAfter(start)) {
// continue;
// }
// SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO();
// taxAgent.setTaxAgentId(salaryArchiveTaxAgent.getTaxAgentId());
// taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.isBefore(start)?start:fromDate)).endDate(endTemp).build());
//
// // 薪资项目数据按个税扣缴义务人切割
// if (!isOnlyTaxAgent) {
// // 开始日期
// LocalDate startItem = taxAgent.getEffectiveDateRange().getFromDate();
// // 结束日期
// LocalDate endItem = taxAgent.getEffectiveDateRange().getEndDate();
// LocalDate endTempItem = endItem;
// List<SalaryArchiveItemDataDTO> salaryItemValues = new ArrayList<>();
//
// for (Long salaryArchiveItemId : salaryArchiveItemIds) {
// for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) {
// if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId())) {
// continue;
// }
// LocalDate fromDateItem = salaryArchiveItem.getEffectiveTime();
// if (fromDateItem.isAfter(endTempItem) || !endTempItem.isAfter(startItem)) {
// continue;
// }
// SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO();
// salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.isBefore(startItem)?startItem:fromDateItem)).endDate(endTempItem).build());
// salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId());
// salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue());
// salaryItemValues.add(salaryArchiveItemData);
// endTempItem = fromDateItem;
// }
// endTempItem = endItem;
// }
//
// taxAgent.setSalaryItemValues(salaryItemValues);
// }
//
// taxAgents.add(taxAgent);
// endTemp = fromDate;
// }
// salaryArchiveData.setTaxAgents(taxAgents);
// list.add(salaryArchiveData);
// });
//
// return list;
// }
}

View File

@ -0,0 +1,30 @@
package com.engine.salary.entity.salaryarchive.bo;
/**
* @Description: 薪资档案-薪资项目
* @Author: wangxiangzhong
* @Date: 2021-11-03 10:51
*/
public class SalaryArchiveItemBO {
// @Override
// public String toString() {
// return "SalaryArchiveItemBO{}";
// }
//
// public static List<WeaTableColumn> buildRecordTableColumns(Long employeeId, String tenantKey) {
// List<WeaTableColumn> result = Lists.newArrayListWithExpectedSize(3);
// result.add(new WeaTableColumnWapper(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 84960, "薪资项目"), "salaryItem", "150", WeaAlignEnum.CENTER.getStringVal(), "salaryItem", true));
// result.add(new WeaTableColumnWapper(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85433, "调整前"), "salaryBefore", "150", WeaAlignEnum.CENTER.getStringVal(), "salaryBefore"));
// result.add(new WeaTableColumnWapper(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85434, "调整后"), "adjustAfter", "150", WeaAlignEnum.CENTER.getStringVal(), "adjustAfter", true));
// return result;
// }
//
// public static Map<String, EditableTableItem> buildEditableTableItemMap(List<Map<String, Object>> salaryItems) {
// Map<String, EditableTableItem> resultMap = Maps.newHashMapWithExpectedSize(9);
// resultMap.put("salaryItem", new EditableTableItem(EditableTableItemType.SELECT, "", salaryItems,true,false));
// resultMap.put("salaryBefore", new EditableTableItem(EditableTableItemType.INPUT, "", true));
// resultMap.put("adjustAfter", new EditableTableItem(EditableTableItemType.INPUT, "", null, true,false));
// return resultMap;
// }
}

View File

@ -0,0 +1,70 @@
package com.engine.salary.entity.salaryarchive.bo;
import com.engine.salary.entity.salaryarchive.dto.TaxAgentListDTO;
import com.engine.salary.entity.salaryarchive.param.TaxAgentSaveParam;
import com.engine.salary.entity.taxrate.TaxAgent;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 个税扣缴义务人
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class TaxAgentBO {
@Override
public String toString() {
return "TaxAgentBO{}";
}
/**
* 表数据转列表数据
* @param individualTaxWithholdingAgents
* @param tenantKey
* @return
*/
public static List<TaxAgentListDTO> convertToListDTO(Collection<TaxAgent> individualTaxWithholdingAgents, String tenantKey) {
if (CollectionUtils.isEmpty(individualTaxWithholdingAgents)) {
return Collections.emptyList();
}
return individualTaxWithholdingAgents.stream()
.map(e -> TaxAgentListDTO.builder()
.id(e.getId())
.name(e.getName())
.description(e.getDescription())
.build())
.collect(Collectors.toList());
}
/**
* 保存参数转表数据
* @param saveParam
* @param employeeId
* @param tenantKey
* @return
*/
public static TaxAgent convertToPO(TaxAgentSaveParam saveParam, Long employeeId, String tenantKey) {
if (saveParam == null) {
return null;
}
Date now = new Date();
return TaxAgent.builder()
.id(saveParam.getId())
.name(saveParam.getName())
.description(saveParam.getDescription())
.createTime(now)
.updateTime(now)
.creator(employeeId)
.tenantKey(tenantKey)
.build();
}
}

View File

@ -0,0 +1,36 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 离职时段设置表单
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
////离职时段设置表单")
public class DimissionSetFormDTO {
// @SalaryForm(
// label = "已离职时段",
// labelId = 93330,
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.SELECT, required = true, options = "getDimissionTimeIntervalOptions()")
// }
// )
// //已离职时段")
private String dimissionTimeInterval;
// private List<WeaFormOption> getDimissionTimeIntervalOptions () {
// return Arrays.stream(SalaryArchiveDimissionTimeIntervalEnum.values()).map(m->new WeaFormOption(String.valueOf(m.getValue()), SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), m.getLabelId(), m.getDefaultLabel()))).collect(Collectors.toList());
// }
}

View File

@ -0,0 +1,91 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案-基本信息
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
////薪资档案-基本信息")
public class SalaryArchiveBaseInfoFormDTO {
// @SalaryForm(
// label = "姓名",
// labelId = 85429,
// layout = "0",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //姓名")
private String username;
// @SalaryForm(
// label = "部门",
// labelId = 86185,
// layout = "0",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //部门")
private String department;
// @SalaryForm(
// label = "岗位",
// labelId = 90633,
// layout = "0",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //岗位")
private String position;
// @SalaryForm(
// label = "入职日期",
// labelId = 86319,
// layout = "1",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //入职日期")
private String hiredate;
// @SalaryForm(
// label = "手机号",
// labelId = 86186,
// layout = "1",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //手机号")
private String mobile;
// @SalaryForm(
// label = "个税扣缴义务人",
// labelId = 86184,
// layout = "1",
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, readOnly = true)
// }
// )
// //个税扣缴义务人")
private String taxAgent;
}

View File

@ -0,0 +1,29 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 薪资档案数据
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveDataDTO {
//人员id
private Long employeeId;
//个税扣缴义务人
private List<SalaryArchiveTaxAgentDataDTO> taxAgents;
}

View File

@ -0,0 +1,38 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//员工薪资档案")
public class SalaryArchiveFormDTO {
//主键id")
private Long id;
//人员信息表的主键id")
private Long employeeId;
//基本信息")
// private WeaForm baseInfo;
//
// //薪资档案")
// private WeaForm adjustSalaryItems;
//
// //薪资项目调整记录的高级搜索")
// private WeaSearchCondition salaryItemAdjustRecordSearchCondition;
}

View File

@ -0,0 +1,32 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 薪资档案初始化导入记录
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveInitImportDTO {
/**
* 人员id
*/
private Long employeeId;
/**
* 同一个人的多条记录
*/
private List<SalaryArchiveInitImportSameDTO> sames;
}

View File

@ -0,0 +1,38 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* 薪资档案初始化导入相同记录
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveInitImportSameDTO {
/**
* 当前行是否错误
*/
private boolean isError;
/**
* 行索引
*/
private int rowNo;
/**
* 对应行数据
*/
private Map<String, Object> row;
}

View File

@ -0,0 +1,56 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资项目调整-基本调整信息
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整-基本调整信息")
public class SalaryArchiveItemBaseDTO {
// @SalaryForm(
// label = "生效日期",
// labelId = 85904,
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.DATEPICKER, required = true)
// }
// )
// //生效日期")
private String effectiveTime;
// @SalaryForm(
// label = "调整原因",
// labelId = 85431,
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.SELECT, required = true, maxLength = "50", options = "getAdjustReasonOptions()")
// }
// )
// //调整原因")
private Long adjustReason;
// private List<WeaFormOption> getAdjustReasonOptions () {
// return Arrays.stream(SalaryArchiveItemAdjustReasonEnum.values()).map(m->new WeaFormOption(String.valueOf(m.getValue()), SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), m.getLabelId(), m.getDefaultLabel()))).collect(Collectors.toList());
// }
// @SalaryForm(
// label = "备注",
// labelId = 84961,
// items = {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, maxLength = "20")
// }
// )
// //备注")
private String description;
}

View File

@ -0,0 +1,32 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.engine.salary.common.LocalDateRange;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案-薪资项目数据
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案-薪资项目数据")
public class SalaryArchiveItemDataDTO {
//生效日期范围")
private LocalDateRange effectiveDateRange;
//薪资项目id")
private Long salaryItemId;
//薪资项目值")
private String value;
}

View File

@ -0,0 +1,45 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案-薪资项目数据列表
public class SalaryArchiveItemDataListDTO {
//薪资项目调整id
private Long salaryArchiveItemId;
//人员id
private Long employeeId;
//薪资档案id
private String salaryArchiveId;
//调整原因
private String adjustReason;
//生效时间
private LocalDate effectiveTime;
//薪资项目id
private Long salaryItemId;
//调整值
private String adjustValue;
}

View File

@ -0,0 +1,31 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资项目调整
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整")
public class SalaryArchiveItemFormDTO {
//薪资档案id")
private Long salaryArchiveId;
// //基本调整信息")
// private WeaForm salaryArchiveItemForm;
//
// //薪资项目调整明细")
// private EditableTable salaryArchiveItemDetail;
}

View File

@ -0,0 +1,66 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableOperate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案列表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SalaryTable(pageId = "a4f85287-9876-4d11-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = {
@SalaryTableOperate(index = "0", text = "编辑"),
@SalaryTableOperate(index = "1", text = "删除")
})
public class SalaryArchiveListDTO {
private Long id;
// @WeaFormat(
// label = "人员信息表的主键id",
// tableColumn = @TableColumn(width = "20%")
// )
private Long employeeId;
/**
* 姓名
*/
private String username;
/**
* 个税扣缴义务人
*/
private String taxAgentName;
/**
* 部门
*/
private String departmentName;
/**
* 电话
*/
private String mobile;
/**
* 员工状态
*/
private String employeeStatus;
//
// /**
// * 薪资项目调整id
// */
// private Long salaryArchiveItemId;
}

View File

@ -0,0 +1,34 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.engine.salary.common.LocalDateRange;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 薪资档案-个税扣缴义务人数据
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案-个税扣缴义务人数据")
public class SalaryArchiveTaxAgentDataDTO {
//个税扣缴义务人id")
private Long taxAgentId;
//生效日期范围")
private LocalDateRange effectiveDateRange;
//薪资项目数据")
private List<SalaryArchiveItemDataDTO> salaryItemValues;
}

View File

@ -0,0 +1,25 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 个税扣缴义务人调整
* @Author: wangxiangzhong
* @Date: 2021/11/5 10:42
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整")
public class SalaryArchiveTaxAgentFormDTO {
//薪资档案id")
private Long salaryArchiveId;
//个税扣缴义务人调整")
// private WeaForm salaryArchiveTaxAgentForm;
}

View File

@ -0,0 +1,141 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Date;
/**
* 薪资项目调整记录列表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整记录列表")
//@TableOperates(tableType = WeaTableTypeEnum.CHECKBOX)
public class SalaryItemAdjustRecordListDTO {
//主键id")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 人员信息表的主键id
*/
private Long employeeId;
//姓名")
// @WeaFormat(
// label = "姓名",
// labelId = 85429,
// tableColumn = @TableColumn(width = "100")
// )
private String username;
//部门")
// @WeaFormat(
// label = "部门",
// labelId = 86185,
// tableColumn = @TableColumn(width = "100")
// )
private String departmentName;
//员工状态")
// @WeaFormat(
// label = "员工状态",
// labelId = 86187,
// tableColumn = @TableColumn(width = "100")
// )
private String employeeStatus;
//调整项目")
// @WeaFormat(
// label = "调整项目",
// labelId = 85432,
// tableColumn = @TableColumn(width = "100")
// )
private String adjustItem;
//调整前")
// @WeaFormat(
// label = "调整前",
// labelId = 85433,
// tableColumn = @TableColumn(width = "100")
// )
private String adjustBefore;
//调整后")
// @WeaFormat(
// label = "调整后",
// labelId = 85434,
// tableColumn = @TableColumn(width = "100")
// )
private String adjustAfter;
//调整原因")
// @WeaFormat(
// label = "调整原因",
// labelId = 85431,
// tableColumn = @TableColumn(width = "100")
// )
private String adjustReason;
//生效日期")
// @WeaFormat(
// label = "生效日期",
// labelId = 85904,
// tableColumn = @TableColumn(width = "100")
// )
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate effectiveTime;
//操作人")
// @WeaFormat(
// label = "操作人",
// labelId = 85435,
// tableColumn = @TableColumn(width = "100")
// )
private String operator;
//操作时间")
// @WeaFormat(
// label = "操作时间",
// labelId = 85436,
// tableColumn = @TableColumn(width = "150")
// )
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operateTime;
//备注")
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// tableColumn = @TableColumn(width = "100")
// )
private String description;
/**
* 薪资档案id
*/
@JsonIgnore
private Long salaryArchiveId;
/**
* 薪资项目id
*/
@JsonIgnore
private Long salaryItemId;
}

View File

@ -0,0 +1,105 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 薪资项目调整记录列表
* @Author: wangxiangzhong
* @Date: 2021/11/1 16:34
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整记录列表")
//@TableOperates(value = {
// @Operates(index = 0, text = "编辑" ,labelId = 59943),
// @Operates(index = 1, text = "删除" ,labelId = 59942)
//}, tableType = WeaTableTypeEnum.NONE)
public class SingleSalaryItemAdjustRecordListDTO {
// //主键id")
// @JsonSerialize(using = ToStringSerializer.class)
private Long id;
//
// //调整项目")
// @WeaFormat(
// label = "调整项目",
// labelId = 85432,
// tableColumn = @TableColumn(width = "20%")
// )
private String adjustItem;
//
// //调整前")
// @WeaFormat(
// label = "调整前",
// labelId = 85433,
// tableColumn = @TableColumn(width = "20%")
// )
private String adjustBefore;
//
// //调整后")
// @WeaFormat(
// label = "调整后",
// labelId = 85434,
// tableColumn = @TableColumn(width = "20%")
// )
// private String adjustAfter;
//
// //调整原因")
// @WeaFormat(
// label = "调整原因",
// labelId = 85431,
// tableColumn = @TableColumn(width = "10%")
// )
// private String adjustReason;
//
// //生效日期")
// @WeaFormat(
// label = "生效日期",
// labelId = 85430,
// tableColumn = @TableColumn(width = "15%")
// )
// @JsonFormat(pattern = "yyyy-MM-dd")
// private LocalDate effectiveTime;
//
// //操作人")
// @WeaFormat(
// label = "操作人",
// labelId = 85435,
// tableColumn = @TableColumn(width = "10%")
// )
// private String operator;
//
// //操作时间")
// @WeaFormat(
// label = "操作时间",
// labelId = 85436,
// tableColumn = @TableColumn(width = "20%")
// )
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// private Date operateTime;
//
// //备注")
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// tableColumn = @TableColumn(width = "10%")
// )
// private String description;
//
// /**
// * 薪资档案id
// */
// @JsonIgnore
// private Long salaryArchiveId;
//
// /**
// * 薪资项目id
// */
// @JsonIgnore
// private Long salaryItemId;
}

View File

@ -0,0 +1,97 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 个税扣缴义务人调整记录列表
* @Author: wangxiangzhong
* @Date: 2021/11/1 16:34
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整记录列表")
//@TableOperates(value = {
// @Operates(index = 0, text = "编辑" ,labelId = 59943),
// @Operates(index = 1, text = "删除" ,labelId = 59942)
//}, tableType = WeaTableTypeEnum.NONE)
public class SingleTaxAgentAdjustRecordListDTO {
// //主键id")
// @JsonSerialize(using = ToStringSerializer.class)
private Long id;
//
// //调整前")
// @WeaFormat(
// label = "调整前",
// labelId = 85433,
// tableColumn = @TableColumn(width = "20%")
// )
private String adjustBefore;
//
// //调整后")
// @WeaFormat(
// label = "调整后",
// labelId = 85434,
// tableColumn = @TableColumn(width = "20%")
// )
private String adjustAfter;
//
// //调整原因")
// @WeaFormat(
// label = "调整原因",
// labelId = 85431,
// tableColumn = @TableColumn(width = "10%")
// )
// private String adjustReason;
//
// //生效日期")
// @WeaFormat(
// label = "生效日期",
// labelId = 85430,
// tableColumn = @TableColumn(width = "15%")
// )
// @JsonFormat(pattern = "yyyy-MM-dd")
// private LocalDate effectiveTime;
//
// //操作人")
// @WeaFormat(
// label = "操作人",
// labelId = 85435,
// tableColumn = @TableColumn(width = "10%")
// )
// private String operator;
//
// //操作时间")
// @WeaFormat(
// label = "操作时间",
// labelId = 85436,
// tableColumn = @TableColumn(width = "20%")
// )
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// private Date operateTime;
//
// //备注")
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// tableColumn = @TableColumn(width = "10%")
// )
// private String description;
//
// /**
// * 薪资档案id
// */
// @JsonIgnore
// private Long salaryArchiveId;
//
// /**
// * 个税扣缴义务人id
// */
// @JsonIgnore
// private Long taxAgentId;
}

View File

@ -0,0 +1,125 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 个税扣缴义务人调整记录列表
* @Author: wangxiangzhong
* @Date: 2021/11/1 16:34
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整记录列表")
//@TableOperates(tableType = WeaTableTypeEnum.CHECKBOX)
public class TaxAgentAdjustRecordListDTO {
//主键id")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
// /**
// * 人员信息表的主键id
// */
// private Long employeeId;
//
// //姓名")
// @WeaFormat(
// label = "姓名",
// labelId = 85429,
// tableColumn = @TableColumn(width = "100")
// )
// private String username;
//
// //部门")
// @WeaFormat(
// label = "部门",
// labelId = 86185,
// tableColumn = @TableColumn(width = "100")
// )
// private String departmentName;
//
// //员工状态")
// @WeaFormat(
// label = "员工状态",
// labelId = 86187,
// tableColumn = @TableColumn(width = "100")
// )
// private String employeeStatus;
//
// //调整前")
// @WeaFormat(
// label = "调整前",
// labelId = 85433,
// tableColumn = @TableColumn(width = "100")
// )
// private String adjustBefore;
//
// //调整后")
// @WeaFormat(
// label = "调整后",
// labelId = 85434,
// tableColumn = @TableColumn(width = "100")
// )
// private String adjustAfter;
//
// //调整原因")
// @WeaFormat(
// label = "调整原因",
// labelId = 85431,
// tableColumn = @TableColumn(width = "100")
// )
// private String adjustReason;
//
// //生效日期")
// @WeaFormat(
// label = "生效日期",
// labelId = 85904,
// tableColumn = @TableColumn(width = "100")
// )
// @JsonFormat(pattern = "yyyy-MM-dd")
// private LocalDate effectiveTime;
//
// //操作人")
// @WeaFormat(
// label = "操作人",
// labelId = 85435,
// tableColumn = @TableColumn(width = "100")
// )
// private String operator;
//
// //操作时间")
// @WeaFormat(
// label = "操作时间",
// labelId = 85436,
// tableColumn = @TableColumn(width = "150")
// )
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// private Date operateTime;
//
// //备注")
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// tableColumn = @TableColumn(width = "100")
// )
// private String description;
//
// /**
// * 薪资档案id
// */
// @JsonIgnore
// private Long salaryArchiveId;
//
// /**
// * 个税扣缴义务人id
// */
// @JsonIgnore
// private Long taxAgentId;
}

View File

@ -0,0 +1,38 @@
package com.engine.salary.entity.salaryarchive.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 个税扣缴义务人表单
* @Author: wangxiangzhong
* @Date: 2021/10/29 16:12
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人表单")
public class TaxAgentFormDTO {
//主键id")
private Long id;
//
// @WeaFormat(
// label = "名称",
// labelId = 1252,
// from = @Form(itemType = WeaFormItemType.INPUT, required = true, maxLength = "20")
// )
// //名称")
// private String name;
//
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// from = @Form(itemType = WeaFormItemType.INPUT, maxLength = "20")
// )
// //备注")
// private String description;
}

View File

@ -0,0 +1,45 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 个税扣缴义务人列表
* @Author: wangxiangzhong
* @Date: 2021/10/29 15:39
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人列表")
//@TableOperates(value = {
// @Operates(index = 0, text = "编辑" ,labelId = 59943),
// @Operates(index = 1, text = "删除" ,labelId = 59942)
//}, tableType = WeaTableTypeEnum.NONE)
public class TaxAgentListDTO {
//主键id")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
// //个税扣缴义务人名称")
// @WeaFormat(
// label = "个税扣缴义务人名称",
// labelId = 91558,
// tableColumn = @TableColumn(width = "40%")
// )
private String name;
//
// //备注")
// @WeaFormat(
// label = "备注",
// labelId = 84961,
// tableColumn = @TableColumn(width = "40%")
// )
private String description;
}

View File

@ -0,0 +1,25 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.enums.salaryarchive.SalaryArchiveDimissionTimeIntervalEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案离职时段保存参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveDimissionSaveParam {
//离职时段")
private SalaryArchiveDimissionTimeIntervalEnum dimissionTimeInterval;
}

View File

@ -0,0 +1,113 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO;
import com.engine.salary.entity.salaryarchive.dto.TaxAgentListDTO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveEmployeePO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
* 薪资档案导入处理参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveImportHandleParam {
/**
* 获取租户下所有的人员
*/
List<SalaryArchiveEmployeePO> employees;
/**
* 获取所有个税扣缴义务人
*/
Collection<TaxAgentListDTO> taxAgentList;
/**
* 获取所有可被引用的薪资项目
*/
List<SalaryItemPO> salaryItems;
/**
* 查询已有的薪资档案基本数据
*/
Collection<SalaryArchiveListDTO> salaryArchives;
/**
* 薪资项目id
*/
Collection<Long> salaryItemIds;
/**
* 查询已生效的薪资项目数据
*/
List<SalaryArchiveItemPO> effectiveItemList;
/**
* 查询未生效的薪资项目数据
*/
List<SalaryArchiveItemPO> ineffectiveItemList;
/**
* 查询已生效的个税扣缴义务人数据
*/
List<SalaryArchiveTaxAgentPO> effectiveTaxAgentList;
/**
* 查询未生效的个税扣缴义务人数据
*/
List<SalaryArchiveTaxAgentPO> ineffectiveTaxAgentList;
/**
* 当前时间
*/
LocalDateTime nowTime = LocalDateTime.now();
/**
* 当天
*/
LocalDate today = LocalDate.now();
/**
* 待保存薪资档案
*/
List<SalaryArchivePO> salaryArchiveSaves;
/**
* 待保存薪资档案-个税扣缴义务人
*/
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgentSaves;
/**
* 待保存薪资档案-薪资项目
*/
List<SalaryArchiveItemPO> salaryArchiveItemSaves;
/**
* 待删除薪资档案-个税扣缴义务人
*/
List<Long> salaryArchiveTaxAgentDelTaxAgentIds;
/**
* 待删除薪资档案-薪资项目
*/
List<Long> salaryArchiveItemDelSalaryItemIds;
}

View File

@ -0,0 +1,28 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资档案-薪资项目调整详情
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案-薪资项目调整详情保存参数")
public class SalaryArchiveItemDetailSaveParam {
//薪资档案项目表的主键id")
private Long salaryItemId;
//调整值")
private String adjustValue;
}

View File

@ -0,0 +1,25 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveItemQueryParam {
/**
* 生效时间
*/
private Date effectiveTime;
Collection<Long> salaryItemIds;
Collection<Long> salaryArchivesIds;
}

View File

@ -0,0 +1,72 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.util.SalaryI18nUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.time.LocalDate;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* 薪资项目调整保存参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整保存参数")
public class SalaryArchiveItemSaveParam {
//薪资档案id")
private Long salaryArchiveId;
//生效时间")
private LocalDate effectiveTime;
//调整原因")
private SalaryArchiveItemAdjustReasonEnum adjustReason;
//备注")
private String description;
//薪资项目")
private List<SalaryArchiveItemDetailSaveParam> salaryArchiveItems;
public static void checkParam(SalaryArchiveItemSaveParam saveParam, Long employeeId, String tenantKey) {
if (saveParam.getSalaryArchiveId() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100305, "薪资档案id必传"));
}
if (saveParam.getAdjustReason() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "请选择调整原因"));
}
if (saveParam.getEffectiveTime() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100307, "请选择生效日期"));
}
if (CollectionUtils.isEmpty(saveParam.getSalaryArchiveItems())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100308, "请输入薪资项目明细"));
}
Set<Long> salaryItemIds = new HashSet<>();
for (SalaryArchiveItemDetailSaveParam e : saveParam.getSalaryArchiveItems()) {
if (e.getSalaryItemId() == null || StringUtils.isEmpty((e.getAdjustValue() + "").trim())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100309, "明细中的薪资项目不能为空并且调整后必须输入值"));
}
salaryItemIds.add(e.getSalaryItemId());
}
if (saveParam.getSalaryArchiveItems().size() != salaryItemIds.size()) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100310, "明细中的薪资项目不能重复"));
}
}
}

View File

@ -0,0 +1,47 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
/**
* @Description: 薪资档案
* @Author: wangxiangzhong
* @Date: 2021-11-03 10:51
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案查询参数")
public class SalaryArchiveQueryParam extends BaseQueryParam {
private Collection<Long> ids;
//姓名")
private String username;
//个税扣缴义务人id")
private Long taxAgentId;
//部门id")
private List<Long> departmentIds;
//岗位id")
private List<Long> positionIds;
//状态")
private String userstatus;
//入职日期")
private List<LocalDate> hiredate;
//导入类型")
private String importType;
}

View File

@ -0,0 +1,32 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 薪资档案
* @Author: wangxiangzhong
* @Date: 2021-11-03 10:51
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案保存参数")
public class SalaryArchiveSaveParam {
//主键")
private Long id;
//人员信息表的主键id")
private Long employeeId;
// public static WeaResult<String> checkParam(SalaryArchiveSaveParam saveParam, Long employeeId, String tenantKey) {
// if (saveParam.getEmployeeId() == null) {
// return WeaResult.fail(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100311, "人员信息表的主键id必传"));
// }
// return WeaResult.success(StringUtils.EMPTY);
// }
}

View File

@ -0,0 +1,23 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveTaxAgentQueryParam {
/**
* 生效时间
*/
private Date effectiveTime;
Collection<Long> salaryArchivesIds;
}

View File

@ -0,0 +1,54 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.util.SalaryI18nUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
/**
* 个税扣缴义务人调整保存参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整保存参数")
public class SalaryArchiveTaxAgentSaveParam {
//薪资档案id")
private Long salaryArchiveId;
//生效时间")
private LocalDate effectiveTime;
//调整原因")
private SalaryArchiveTaxAgentAdjustReasonEnum adjustReason;
//个税扣缴义务人id")
private Long taxAgentId;
public static void checkParam(SalaryArchiveTaxAgentSaveParam saveParam, Long employeeId, String tenantKey) {
if (saveParam.getSalaryArchiveId() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 100305, "薪资档案id必传"));
}
if (saveParam.getAdjustReason() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 100306, "请选择调整原因"));
}
if (saveParam.getEffectiveTime() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 100307, "请选择生效日期"));
}
if (saveParam.getTaxAgentId() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 100313, "请选择调整后的个税扣缴义务人"));
}
}
}

View File

@ -0,0 +1,38 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 薪资项目调整前参数
* @Author: wangxiangzhong
* @Date: 2022/1/17 11:02
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整记录查询参数
public class SalaryItemAdjustBeforeParam {
//薪资档案id
private Long salaryArchiveId;
//薪资项目id
private Long salaryItemId;
//薪资档案的薪资项目id
private Long salaryArchiveItemId;
// public static WeaResult<String> checkParam(SalaryItemAdjustBeforeParam adjustBeforeParam, Long employeeId, String tenantKey) {
// if (adjustBeforeParam.getSalaryArchiveId() == null) {
// return WeaResult.fail(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100305, "薪资档案id必传"));
// }
// if (adjustBeforeParam.getSalaryItemId() == null) {
// return WeaResult.fail(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100314, "薪资项目id必传"));
// }
// return WeaResult.success(StringUtils.EMPTY);
// }
}

View File

@ -0,0 +1,69 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
/**
* 薪资档案操作记录查询参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整记录查询参数
public class SalaryItemAdjustRecordQueryParam extends BaseQueryParam {
//主键id
private Collection<Long> ids;
//薪资档案id
private Long salaryArchiveId;
//关键字姓名部门薪资项目名称
private String keyword;
//姓名
private String username;
//员工id
private Long employeeId;
//部门id
private List<Long> departmentIds;
//岗位
private List<Long> positionIds;
//状态
private String userstatus;
//项目名称
private String adjustItem;
//调整原因
private String adjustReason;
//生效日期
private List<LocalDate> effectiveTime;
//操作日期
private List<LocalDate> operateTime;
//操作人id
private List<Long> operatorIds;
//备注
private String description;
}

View File

@ -0,0 +1,50 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.List;
/**
* 薪资档案操作记录查询参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资项目调整记录查询参数
public class SingleSalaryItemAdjustRecordQueryParam extends BaseQueryParam {
//薪资档案id
private Long salaryArchiveId;
//关键字姓名部门薪资项目名称
private String keyword;
//项目名称
private String adjustItem;
//调整原因
private String adjustReason;
//生效日期
private List<LocalDate> effectiveTime;
//操作日期
private List<LocalDate> operateTime;
//操作人id
private List<Long> operatorIds;
//备注
private String description;
}

View File

@ -0,0 +1,54 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
/**
* 个税扣缴义务人调整记录查询参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整记录查询参数
public class SingleTaxAgentAdjustRecordQueryParam extends BaseQueryParam {
//主键id
private Collection<Long> ids;
//薪资档案id
private Long salaryArchiveId;
//关键字姓名部门个税扣缴义务人
private String keyword;
//个税扣缴义务人id
private Long taxAgentId;
//调整原因
private String adjustReason;
//生效日期
private List<LocalDate> effectiveTime;
//操作日期
private List<LocalDate> operateTime;
//操作人id
private List<Long> operatorIds;
//备注
private String description;
}

View File

@ -0,0 +1,66 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
/**
* 个税扣缴义务人调整记录查询参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整记录查询参数
public class TaxAgentAdjustRecordQueryParam extends BaseQueryParam {
//主键id
private Collection<Long> ids;
//薪资档案id
private Long salaryArchiveId;
//关键字姓名部门个税扣缴义务人
private String keyword;
//姓名
private String username;
//部门id
private List<Long> departmentIds;
//岗位id
private List<Long> positionIds;
//状态
private String userstatus;
//个税扣缴义务人id
private Long taxAgentId;
//调整原因
private String adjustReason;
//生效日期
private List<LocalDate> effectiveTime;
//操作日期
private List<LocalDate> operateTime;
//操作人id
private List<Long> operatorIds;
//备注
private String description;
}

View File

@ -0,0 +1,30 @@
package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
/**
* 个税扣缴义务人查询参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人查询参数")
public class TaxAgentQueryParam extends BaseQueryParam {
private Collection<Long> ids;
//个税扣缴义务人名称")
private String name;
}

View File

@ -0,0 +1,38 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 个税扣缴义务人保存参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人保存参数")
public class TaxAgentSaveParam {
//主键id
private Long id;
//名称
private String name;
//备注
private String description;
// public static WeaResult<String> checkParam(TaxAgentSaveParam saveParam, Long employeeId, String tenantKey) {
// if (StringUtils.isEmpty(saveParam.getName())) {
// return WeaResult.fail(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100318, "名称必填"));
// }
// return WeaResult.success(StringUtils.EMPTY);
// }
}

View File

@ -0,0 +1,59 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 薪资档案离职时段表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_salary_archive_dimission
public class SalaryArchiveDimissionPO {
/**
* 主键
*/
private Long id;
/**
* 离职时段
*/
private String dimissionTimeInterval;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 创建人
*/
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
private Integer deleteType;
/**
* 租户ID
*/
private String tenantKey;
}

View File

@ -0,0 +1,31 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 员工基本信息
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//员工基本信息")
public class SalaryArchiveEmployeePO {
//员工id
private Long employeeId;
//姓名
private String username;
//部门
private String deparmentName;
}

View File

@ -0,0 +1,104 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
/**
* 薪资档案薪资项目
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_salary_archive_item
public class SalaryArchiveItemPO {
/**
* 主键id
*/
private Long id;
/**
* 薪资档案表的主键id
*/
private Long salaryArchiveId;
/**
* 人员信息表的主键id
*/
private Long employeeId;
/**
* 生效时间
*/
private Date effectiveTime;
/**
* 调整原因
*/
private String adjustReason;
/**
* 薪资项目表的主键id
*/
private Long salaryItemId;
/**
* 薪资项目值
*/
private String itemValue;
/**
* 备注
*/
private String description;
/**
* 操作人
*/
private Long operator;
/**
* 操作时间
*/
private Date operateTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人
*/
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
private Integer deleteType;
/**
* 租户ID
*/
private String tenantKey;
Collection<Long> ids;
}

View File

@ -0,0 +1,66 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_salary_archive
public class SalaryArchivePO {
/**
* 主键id
*/
//主键id")
private Long id;
/**
* 人员信息表的主键id
*/
//人员信息表的主键id")
private Long employeeId;
/**
* 创建时间
*/
//创建时间", ignore = true)
private LocalDateTime createTime;
/**
* 更新时间
*/
//更新时间", ignore = true)
private LocalDateTime updateTime;
/**
* 创建人
*/
//创建人", ignore = true)
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
//是否已删除", ignore = true)
private Integer deleteType;
/**
* 租户ID
*/
//租户key", ignore = true)
private String tenantKey;
}

View File

@ -0,0 +1,106 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
/**
* 薪资档案个税扣缴义务人
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_salary_archive_tax_agent
public class SalaryArchiveTaxAgentPO {
/**
* 主键id
*/
//主键id")
private Long id;
/**
* 薪资档案表的主键id
*/
//薪资档案表的主键id")
private Long salaryArchiveId;
/**
* 人员信息表的主键id
*/
//人员信息表的主键id")
private Long employeeId;
/**
* 生效时间
*/
//生效时间")
private Date effectiveTime;
/**
* 调整原因
*/
//调整原因")
private String adjustReason;
/**
* 个税扣缴义务人的主键id
*/
//个税扣缴义务人的主键id")
private Long taxAgentId;
/**
* 操作人
*/
//操作人")
private Long operator;
/**
* 操作时间
*/
//操作时间")
private Date operateTime;
/**
* 创建时间
*/
//创建时间", ignore = true)
private Date createTime;
/**
* 更新时间
*/
//更新时间", ignore = true)
private Date updateTime;
/**
* 创建人
*/
//创建人", ignore = true)
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
//是否已删除", ignore = true)
private Integer deleteType;
/**
* 租户ID
*/
//租户key", ignore = true)
private String tenantKey;
Collection<Long> ids;
}

View File

@ -0,0 +1,69 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* @Description: 个税扣缴义务人
* @Author: wangxiangzhong
* @Date: 2021/10/29 11:14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_tax_agent
public class TaxAgentPO {
/**
* 主键id
*/
//主键id")
private Long id;
/**
* 名称
*/
//名称")
private String name;
/**
* 备注
*/
//备注")
private String description;
/**
* 租户key
*/
//租户key", ignore = true)
private String tenantKey;
/**
* 创建人id
*/
//创建人id", ignore = true)
private Long creator;
/**
* 是否删除
*/
//是否删除", ignore = true)
private Integer deleteType;
/**
* 创建时间
*/
//创建时间", ignore = true)
private LocalDateTime createTime;
/**
* 更新时间
*/
//更新时间", ignore = true)
private LocalDateTime updateTime;
}

View File

@ -4,6 +4,7 @@ import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.annotation.SalaryTableOperate;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
@ -53,7 +54,10 @@ public class SalaryItemListDTO {
@SalaryTableColumn(text = "取值方式", width = "10%", column = "valueType",transmethod = "com.engine.salary.transmethod.TransMethod.datasource")
private String valueType;
@SalaryTableColumn(text = "字段类型", width = "10%", column = "itemType",transmethod = "com.engine.salary.transmethod.TransMethod.dataType")
/**
* @see SalaryDataTypeEnum
*/
@SalaryTableColumn(text = "字段类型", width = "10%", column = "dataType",transmethod = "com.engine.salary.transmethod.TransMethod.dataType")
private String dataType;
//公式id

View File

@ -25,7 +25,7 @@
//@Builder
//@NoArgsConstructor
//@AllArgsConstructor
//@ApiModel("系统薪资项目高级搜索")
////系统薪资项目高级搜索")
//public class SysSalaryItemSearchConditionDTO {
//
// @SalarySearchCondition(

View File

@ -28,6 +28,7 @@ import lombok.experimental.Accessors;
public class SalarySobCheckRuleListDTO {
//主键id
@SalaryTableColumn(column = "id", display = false)
private Long id;
//薪资账套id

View File

@ -33,7 +33,7 @@ public class SalarySobItemGroupFormDTO {
// @SalaryFormItem(itemType = WeaFormItemType.INPUT, required = true, maxLength = "40")
// }
// )
// @ApiModelProperty("名称")
// //名称")
// @NotEmpty(message = "名称不允许为空")
private String name;
}

View File

@ -26,6 +26,7 @@ import lombok.NoArgsConstructor;
public class SalarySobRangeListDTO {
//主键id
@SalaryTableColumn(column = "id", display = false)
private Long id;
//薪资账套的id

View File

@ -0,0 +1,96 @@
package com.engine.salary.mapper.archive;
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SalaryArchiveItemMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<SalaryArchiveItemPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<SalaryArchiveItemPO> listSome(SalaryArchiveItemPO salaryArchiveItem);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
SalaryArchiveItemPO getById(Long id);
/**
* 新增忽略null字段
*
* @param salaryArchiveItem 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(SalaryArchiveItemPO salaryArchiveItem);
/**
* 修改修改所有字段
*
* @param salaryArchiveItem 修改的记录
* @return 返回影响行数
*/
int update(SalaryArchiveItemPO salaryArchiveItem);
/**
* 修改忽略null字段
*
* @param salaryArchiveItem 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(SalaryArchiveItemPO salaryArchiveItem);
/**
* 删除记录
*
* @param salaryArchiveItem 待删除的记录
* @return 返回影响行数
*/
int delete(SalaryArchiveItemPO salaryArchiveItem);
/**
* 批量插入
* @param salaryArchiveItemSaves
*/
void batchInsert(@Param("collection") List<SalaryArchiveItemPO> salaryArchiveItemSaves);
/**
* 分页查询薪资项目调整记录列表
* @param page
* @param param
* @param salaryItemIds
* @param tenantKey
* @return
*/
// IPage<SalaryItemAdjustRecordListDTO> salaryItemAdjustRecordList(Page<SalaryItemAdjustRecordListDTO> page, @Param("param") SalaryItemAdjustRecordQueryParam param, @Param("salaryItemIds") List<Long> salaryItemIds, @Param("tenantKey") String tenantKey);
/**
* 查询薪资项目调整记录列表
* @param param
* @param salaryItemIds
* @return
*/
List<SalaryItemAdjustRecordListDTO> salaryItemAdjustRecordList(@Param("param") SalaryItemAdjustRecordQueryParam param, @Param("salaryItemIds") List<Long> salaryItemIds);
List<SalaryArchiveItemPO> listByParam(@Param("param")SalaryArchiveItemQueryParam build);
}

View File

@ -0,0 +1,907 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archive.SalaryArchiveItemMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
<result column="id" property="id"/>
<result column="salary_archive_id" property="salaryArchiveId"/>
<result column="employee_id" property="employeeId"/>
<result column="effective_time" property="effectiveTime"/>
<result column="adjust_reason" property="adjustReason"/>
<result column="salary_item_id" property="salaryItemId"/>
<result column="item_value" property="itemValue"/>
<result column="description" property="description"/>
<result column="operator" property="operator"/>
<result column="operate_time" property="operateTime"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.salary_archive_id
, t.employee_id
, t.effective_time
, t.adjust_reason
, t.salary_item_id
, t.item_value
, t.description
, t.operator
, t.operate_time
, t.create_time
, t.update_time
, t.creator
, t.delete_type
, t.tenant_key
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_item t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_item t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_item t
WHERE delete_type = 0
<if test="id != null">
AND id = #{id}
</if>
<if test="salaryArchiveId != null">
AND salary_archive_id = #{salaryArchiveId}
</if>
<if test="employeeId != null">
AND employee_id = #{employeeId}
</if>
<if test="effectiveTime != null">
AND effective_time = #{effectiveTime}
</if>
<if test="adjustReason != null">
AND adjust_reason = #{adjustReason}
</if>
<if test="salaryItemId != null">
AND salary_item_id = #{salaryItemId}
</if>
<if test="itemValue != null">
AND item_value = #{itemValue}
</if>
<if test="description != null">
AND description = #{description}
</if>
<if test="operator != null">
AND operator = #{operator}
</if>
<if test="operateTime != null">
AND operate_time = #{operateTime}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO"
keyProperty="id" keyColumn="id" useGeneratedKeys="true"
>
INSERT INTO hrsa_salary_archive_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="salaryArchiveId != null">
salary_archive_id,
</if>
<if test="employeeId != null">
employee_id,
</if>
<if test="effectiveTime != null">
effective_time,
</if>
<if test="adjustReason != null">
adjust_reason,
</if>
<if test="salaryItemId != null">
salary_item_id,
</if>
<if test="itemValue != null">
item_value,
</if>
<if test="description != null">
description,
</if>
<if test="operator != null">
operator,
</if>
<if test="operateTime != null">
operate_time,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="salaryArchiveId != null">
#{salaryArchiveId},
</if>
<if test="employeeId != null">
#{employeeId},
</if>
<if test="effectiveTime != null">
#{effectiveTime},
</if>
<if test="adjustReason != null">
#{adjustReason},
</if>
<if test="salaryItemId != null">
#{salaryItemId},
</if>
<if test="itemValue != null">
#{itemValue},
</if>
<if test="description != null">
#{description},
</if>
<if test="operator != null">
#{operator},
</if>
<if test="operateTime != null">
#{operateTime},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
UPDATE hrsa_salary_archive_item
<set>
salary_archive_id=#{salaryArchiveId},
employee_id=#{employeeId},
effective_time=#{effectiveTime},
adjust_reason=#{adjustReason},
salary_item_id=#{salaryItemId},
item_value=#{itemValue},
description=#{description},
operator=#{operator},
operate_time=#{operateTime},
create_time=#{createTime},
update_time=#{updateTime},
creator=#{creator},
delete_type=#{deleteType},
tenant_key=#{tenantKey},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
UPDATE hrsa_salary_archive_item
<set>
<if test="salaryArchiveId != null">
salary_archive_id=#{salaryArchiveId},
</if>
<if test="employeeId != null">
employee_id=#{employeeId},
</if>
<if test="effectiveTime != null">
effective_time=#{effectiveTime},
</if>
<if test="adjustReason != null">
adjust_reason=#{adjustReason},
</if>
<if test="salaryItemId != null">
salary_item_id=#{salaryItemId},
</if>
<if test="itemValue != null">
item_value=#{itemValue},
</if>
<if test="description != null">
description=#{description},
</if>
<if test="operator != null">
operator=#{operator},
</if>
<if test="operateTime != null">
operate_time=#{operateTime},
</if>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
UPDATE hrsa_salary_archive_item
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<insert id="batchInsert">
INSERT INTO hrsa_salary_archive_item (
salary_archive_id,
employee_id,
effective_time,
adjust_reason,
salary_item_id,
item_value,
description,
operator,
operate_time,
create_time,
update_time,
creator,
tenant_key
)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.salaryArchiveId},
#{item.employeeId},
#{item.effectiveTime},
#{item.adjustReason},
#{item.salaryItemId},
#{item.itemValue},
#{item.description},
#{item.operator},
#{item.operateTime},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
)
</foreach>
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_salary_archive_item (
salary_archive_id,
employee_id,
effective_time,
adjust_reason,
salary_item_id,
item_value,
description,
operator,
operate_time,
create_time,
update_time,
creator,
tenant_key
)
<foreach collection="collection" item="item" separator="union all">
select
#{item.salaryArchiveId},
#{item.employeeId},
#{item.effectiveTime},
#{item.adjustReason},
#{item.salaryItemId},
#{item.itemValue},
#{item.description},
#{item.operator},
#{item.operateTime},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
from dual
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
INSERT INTO hrsa_salary_archive_item (
salary_archive_id,
employee_id,
effective_time,
adjust_reason,
salary_item_id,
item_value,
description,
operator,
operate_time,
create_time,
update_time,
creator,
tenant_key
)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.salaryArchiveId},
#{item.employeeId},
#{item.effectiveTime},
#{item.adjustReason},
#{item.salaryItemId},
#{item.itemValue},
#{item.description},
#{item.operator},
#{item.operateTime},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
)
</foreach>
</insert>
<sql id="salaryArchiveItemColumn">
id,
salary_archive_id,
employee_id,
effective_time,
adjust_reason,
salary_item_id,
item_value,
description,
operator,
operate_time,
create_time,
update_time,
creator,
tenant_key
</sql>
<select id="salaryItemAdjustRecordList" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO">
SELECT
<include refid="salaryItemAdjustRecordColumn"/>
FROM hrsa_salary_archive_item t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
LEFT JOIN {$publicdb}.EMPLOYEE o ON o.id = t1.operator
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 关键字(姓名、部门、薪资项目名称 -->
<if test="param.keyword != null and param.keyword != ''">
AND
(
e.username like CONCAT('%',#{param.keyword},'%')
OR d.name like CONCAT('%',#{param.keyword},'%')
OR t2.name like CONCAT('%',#{param.keyword},'%')
)
</if>
<if test="param.adjustItem != null and param.adjustItem != ''">
AND t2.name like CONCAT('%',#{param.adjustItem},'%')
</if>
<include refid="paramSql"/>
ORDER BY t1.effective_time DESC,t1.id DESC
</select>
<select id="salaryItemAdjustRecordList" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO" databaseId="oracle">
SELECT
t1.id,
t1.employee_id,
e.username,
e.status AS employeeStatus,
d.name AS departmentName,
t1.effective_time,
t1.adjust_reason,
t2.name AS adjust_item,
t1.item_value AS adjust_after,
o.username AS operator,
t1.operate_time,
t1.description,
t1.salary_archive_id,
t1.salary_item_id
FROM hrsa_salary_archive_item t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
LEFT JOIN {$publicdb}.EMPLOYEE o ON o.id = t1.operator
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.keyword != null and param.keyword != ''">
AND
(
e.username like '%'||#{param.keyword}||'%'
OR d.name like '%'||#{param.keyword}||'%'
OR t2.name like '%'||#{param.keyword}||'%'
)
</if>
<if test="param.adjustItem != null and param.adjustItem != ''">
AND t2.name like '%'||#{param.adjustItem}||'%'
</if>
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.employeeId != null">
AND t1.employee_id = #{param.employeeId}
</if>
<if test="param.salaryArchiveId != null">
AND t1.salary_archive_id = #{param.salaryArchiveId}
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'||#{param.username}||'%'
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.adjustReason != null and param.adjustReason != ''">
AND t1.adjust_reason = #{param.adjustReason}
</if>
<if test="param.effectiveTime != null and param.effectiveTime.size() == 2">
AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]})
</if>
<if test="param.operateTime != null and param.operateTime.size() == 2">
AND (t1.operate_time BETWEEN #{param.operateTime[0]}||' 00:00:00' AND #{param.operateTime[1]}||' 23:59:59' )
</if>
<if test="param.operatorIds != null and param.operatorIds.size()>0">
AND t1.operator IN
<foreach collection="param.operatorIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.description != null and param.description != ''">
AND t1.description like '%'||#{param.description}||'%'
</if>
ORDER BY t1.effective_time DESC,t1.id DESC
</select>
<select id="salaryItemAdjustRecordList" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO" databaseId="sqlserver">
SELECT
t1.id,
t1.employee_id,
e.username,
e.status AS employeeStatus,
d.name AS departmentName,
t1.effective_time,
t1.adjust_reason,
t2.name AS adjust_item,
t1.item_value AS adjust_after,
o.username AS operator,
t1.operate_time,
t1.description,
t1.salary_archive_id,
t1.salary_item_id
FROM hrsa_salary_archive_item t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
LEFT JOIN {$publicdb}.EMPLOYEE o ON o.id = t1.operator
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.keyword != null and param.keyword != ''">
AND
(
e.username like '%'+#{param.keyword}+'%'
OR d.name like '%'+#{param.keyword}+'%'
OR t2.name like '%'+#{param.keyword}+'%'
)
</if>
<if test="param.adjustItem != null and param.adjustItem != ''">
AND t2.name like '%'+#{param.adjustItem}+'%'
</if>
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.employeeId != null">
AND t1.employee_id = #{param.employeeId}
</if>
<if test="param.salaryArchiveId != null">
AND t1.salary_archive_id = #{param.salaryArchiveId}
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'+#{param.username}+'%'
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.adjustReason != null and param.adjustReason != ''">
AND t1.adjust_reason = #{param.adjustReason}
</if>
<if test="param.effectiveTime != null and param.effectiveTime.size() == 2">
AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]})
</if>
<if test="param.operateTime != null and param.operateTime.size() == 2">
AND (t1.operate_time BETWEEN #{param.operateTime[0]}+' 00:00:00' AND #{param.operateTime[1]}+' 23:59:59' )
</if>
<if test="param.operatorIds != null and param.operatorIds.size()>0">
AND t1.operator IN
<foreach collection="param.operatorIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.description != null and param.description != ''">
AND t1.description like '%'+#{param.description}+'%'
</if>
ORDER BY t1.effective_time DESC,t1.id DESC
</select>
<sql id="salaryItemAdjustRecordColumn">
t1.id,
t1.employee_id,
e.username,
e.status AS employeeStatus,
d.name AS departmentName,
t1.effective_time,
t1.adjust_reason,
t2.name AS adjust_item,
t1.item_value AS adjust_after,
o.username AS operator,
t1.operate_time,
t1.description,
t1.salary_archive_id,
t1.salary_item_id
</sql>
<sql id="paramSql">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!--员工id,用于查询个人调薪记录-->
<if test="param.employeeId != null">
AND t1.employee_id = #{param.employeeId}
</if>
<!-- 薪资档案id -->
<if test="param.salaryArchiveId != null">
AND t1.salary_archive_id = #{param.salaryArchiveId}
</if>
<!-- 姓名 -->
<if test="param.username != null and param.username != ''">
AND e.username like CONCAT('%',#{param.username},'%')
</if>
<!-- 岗位 -->
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 状态 -->
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<!-- 部门 -->
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 调整原因 -->
<if test="param.adjustReason != null and param.adjustReason != ''">
AND t1.adjust_reason = #{param.adjustReason}
</if>
<!-- 生效日期 -->
<if test="param.effectiveTime != null and param.effectiveTime.size() == 2">
AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]})
</if>
<!-- 操作日期 -->
<if test="param.operateTime != null and param.operateTime.size() == 2">
AND (t1.operate_time BETWEEN CONCAT(#{param.operateTime[0]},' 00:00:00') AND CONCAT(#{param.operateTime[1]},' 23:59:59'))
</if>
<!-- 操作人 -->
<if test="param.operatorIds != null and param.operatorIds.size()>0">
AND t1.operator IN
<foreach collection="param.operatorIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 备注 -->
<if test="param.description != null and param.description != ''">
AND t1.description like CONCAT('%',#{param.description},'%')
</if>
</sql>
<sql id="paramSql" databaseId="oracle">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.employeeId != null">
AND t1.employee_id = #{param.employeeId}
</if>
<if test="param.salaryArchiveId != null">
AND t1.salary_archive_id = #{param.salaryArchiveId}
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'||#{param.username}||'%'
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.adjustReason != null and param.adjustReason != ''">
AND t1.adjust_reason = #{param.adjustReason}
</if>
<if test="param.effectiveTime != null and param.effectiveTime.size() == 2">
AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]})
</if>
<if test="param.operateTime != null and param.operateTime.size() == 2">
AND (t1.operate_time BETWEEN #{param.operateTime[0]}||' 00:00:00' AND #{param.operateTime[1]}||' 23:59:59' )
</if>
<if test="param.operatorIds != null and param.operatorIds.size()>0">
AND t1.operator IN
<foreach collection="param.operatorIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.description != null and param.description != ''">
AND t1.description like '%'||#{param.description}||'%'
</if>
</sql>
<sql id="paramSql" databaseId="sqlserver">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.employeeId != null">
AND t1.employee_id = #{param.employeeId}
</if>
<if test="param.salaryArchiveId != null">
AND t1.salary_archive_id = #{param.salaryArchiveId}
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'+#{param.username}+'%'
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.adjustReason != null and param.adjustReason != ''">
AND t1.adjust_reason = #{param.adjustReason}
</if>
<if test="param.effectiveTime != null and param.effectiveTime.size() == 2">
AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]})
</if>
<if test="param.operateTime != null and param.operateTime.size() == 2">
AND (t1.operate_time BETWEEN #{param.operateTime[0]}+' 00:00:00' AND #{param.operateTime[1]}+' 23:59:59' )
</if>
<if test="param.operatorIds != null and param.operatorIds.size()>0">
AND t1.operator IN
<foreach collection="param.operatorIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.description != null and param.description != ''">
AND t1.description like '%'+#{param.description}+'%'
</if>
</sql>
<!-- 条件查询 -->
<select id="listByParam" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_item t
WHERE delete_type = 0
<if test="param.effectiveTime != null">
AND t.effective_time &lt;= #{effectiveTime}
</if>
<if test="param.salaryItemIds != null and param.salaryItemIds.size()>0">
AND t.salary_item_id IN
<foreach collection="param.ids" open="(" item="salaryItemId" separator="," close=")">
#{salaryItemId}
</foreach>
</if>
<if test="param.salaryArchiveIds != null and param.salaryArchiveIds.size()>0">
AND t.salary_archive_id IN
<foreach collection="param.ids" open="(" item="salaryArchiveId" separator="," close=")">
#{salaryArchiveId}
</foreach>
</if>
ORDER BY t.effective_time DESC
</select>
</mapper>

View File

@ -0,0 +1,106 @@
package com.engine.salary.mapper.archive;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveEmployeePO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
public interface SalaryArchiveMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<SalaryArchivePO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<SalaryArchivePO> listSome(SalaryArchivePO salaryArchive);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
SalaryArchivePO getById(Long id);
/**
* 新增忽略null字段
*
* @param salaryArchive 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(SalaryArchivePO salaryArchive);
/**
* 修改修改所有字段
*
* @param salaryArchive 修改的记录
* @return 返回影响行数
*/
int update(SalaryArchivePO salaryArchive);
/**
* 修改忽略null字段
*
* @param salaryArchive 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(SalaryArchivePO salaryArchive);
/**
* 删除记录
*
* @param salaryArchive 待删除的记录
* @return 返回影响行数
*/
int delete(SalaryArchivePO salaryArchive);
/**
* 查询薪资档案列表
* @param param
* @param tenantKey
* @return
*/
List<SalaryArchiveListDTO> list(@Param("param") SalaryArchiveQueryParam param, @Param("tenantKey") String tenantKey);
/**
* 分页查询薪资档案列表
* @param page
* @param param
* @param tenantKey
* @return
*/
// IPage<SalaryArchiveListDTO> list(Page<SalaryArchiveListDTO> page, @Param("param") SalaryArchiveQueryParam param);
/**
* 批量删除薪资档案
* @param ids
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
/**
* 批量插入
* @param salaryArchiveSaves
*/
void batchInsert(@Param("collection") List<SalaryArchivePO> salaryArchiveSaves);
/**
* 员工信息列表
* @return
*/
List<SalaryArchiveEmployeePO> listEmployee();
}

View File

@ -0,0 +1,512 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archive.SalaryArchiveMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
<result column="id" property="id"/>
<result column="employee_id" property="employeeId"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.employee_id
, t.create_time
, t.update_time
, t.creator
, t.delete_type
, t.tenant_key
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive t
WHERE delete_type = 0
<if test="id != null">
AND id = #{id}
</if>
<if test="employeeId != null">
AND employee_id = #{employeeId}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO"
keyProperty="id" keyColumn="id" useGeneratedKeys="true"
>
INSERT INTO hrsa_salary_archive
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="employeeId != null">
employee_id,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="employeeId != null">
#{employeeId},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
UPDATE hrsa_salary_archive
<set>
employee_id=#{employeeId},
create_time=#{createTime},
update_time=#{updateTime},
creator=#{creator},
delete_type=#{deleteType},
tenant_key=#{tenantKey},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
UPDATE hrsa_salary_archive
<set>
<if test="employeeId != null">
employee_id=#{employeeId},
</if>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
UPDATE hrsa_salary_archive
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<sql id="salaryArchiveColumn">
t1.id,
t1.employee_id,
e.mobile,
e.username,
e.status AS employeeStatus,
d.name AS departmentName
</sql>
<sql id="paramSql">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 姓名 -->
<if test="param.username != null and param.username != ''">
AND e.username like CONCAT('%',#{param.username},'%')
</if>
<!-- 个税扣缴义务人id todo 业务上处理 -->
<!-- <if test="param.taxAgentId != null">-->
<!-- AND t4.id = #{param.taxAgentId}-->
<!-- </if>-->
<!-- 部门 -->
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 岗位 -->
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<!-- 状态 -->
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<!-- 入职日期 -->
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
<sql id="paramSql" databaseId="oracle">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'||#{param.username}||'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
<sql id="paramSql" databaseId="sqlserver">
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'+#{param.username}+'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
<!-- 薪资档案列表 -->
<select id="list" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO">
SELECT
<include refid="salaryArchiveColumn"/>
FROM
hrsa_salary_archive t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
WHERE t1.delete_type = 0
<include refid="paramSql"/>
ORDER BY t1.id DESC
</select>
<select id="list" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO" databaseId="oracle">
SELECT
t1.id,
t1.employee_id,
e.mobile,
e.username,
e.status AS employeeStatus,
d.name AS departmentName
FROM
hrsa_salary_archive t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
WHERE t1.delete_type = 0
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'||#{param.username}||'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
ORDER BY t1.id DESC
</select>
<select id="list" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO" databaseId="sqlserver">
SELECT
t1.id,
t1.employee_id,
e.mobile,
e.username,
e.status AS employeeStatus,
d.name AS departmentName
FROM
hrsa_salary_archive t1
LEFT JOIN {$publicdb}.EMPLOYEE e ON e.id = t1.employee_id
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
WHERE t1.delete_type = 0
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.username != null and param.username != ''">
AND e.username like '%'+#{param.username}+'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.positionIds != null and param.positionIds.size()>0">
AND e.position IN
<foreach collection="param.positionIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
ORDER BY t1.id DESC
</select>
<insert id="batchInsert">
INSERT INTO hrsa_salary_archive (
id,
employee_id,
create_time,
update_time,
creator,
tenant_key
)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.id},
#{item.employeeId},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
)
</foreach>
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_salary_archive (
id,
employee_id,
create_time,
update_time,
creator,
tenant_key
)
<foreach collection="collection" item="item" separator="union all">
select
#{item.id},
#{item.employeeId},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
from dual
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
INSERT INTO hrsa_salary_archive (
id,
employee_id,
create_time,
update_time,
creator,
tenant_key
)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.id},
#{item.employeeId},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.tenantKey}
)
</foreach>
</insert>
<!-- 员工基本信息 -->
<select id="listEmployee" resultType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveEmployeePO">
SELECT
e.id AS employee_id,
e.username,
d.name AS deparmentName
FROM
{$publicdb}.EMPLOYEE e
LEFT JOIN {$publicdb}.DEPARTMENT d ON d.id = e.department
WHERE e.tenant_key = #{tenantKey} AND e.permanently_delete = 0
</select>
</mapper>

View File

@ -0,0 +1,67 @@
package com.engine.salary.mapper.archive;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SalaryArchiveTaxAgentMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<SalaryArchiveTaxAgentPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<SalaryArchiveTaxAgentPO> listSome(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
SalaryArchiveTaxAgentPO getById(Long id);
/**
* 新增忽略null字段
*
* @param salaryArchiveTaxAgent 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent);
/**
* 修改修改所有字段
*
* @param salaryArchiveTaxAgent 修改的记录
* @return 返回影响行数
*/
int update(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent);
/**
* 修改忽略null字段
*
* @param salaryArchiveTaxAgent 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent);
/**
* 删除记录
*
* @param salaryArchiveTaxAgent 待删除的记录
* @return 返回影响行数
*/
int delete(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent);
List<SalaryArchiveTaxAgentPO> listByParam(@Param("param") SalaryArchiveTaxAgentQueryParam build);
}

View File

@ -0,0 +1,312 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archive.SalaryArchiveTaxAgentMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
<result column="id" property="id"/>
<result column="salary_archive_id" property="salaryArchiveId"/>
<result column="employee_id" property="employeeId"/>
<result column="effective_time" property="effectiveTime"/>
<result column="adjust_reason" property="adjustReason"/>
<result column="tax_agent_id" property="taxAgentId"/>
<result column="operator" property="operator"/>
<result column="operate_time" property="operateTime"/>
<result column="description" property="description"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.salary_archive_id
, t.employee_id
, t.effective_time
, t.adjust_reason
, t.tax_agent_id
, t.operator
, t.operate_time
, t.description
, t.create_time
, t.update_time
, t.creator
, t.delete_type
, t.tenant_key
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_tax_agent t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_tax_agent t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_tax_agent t
WHERE delete_type = 0
<if test="id != null">
AND id = #{id}
</if>
<if test="salaryArchiveId != null">
AND salary_archive_id = #{salaryArchiveId}
</if>
<if test="employeeId != null">
AND employee_id = #{employeeId}
</if>
<if test="effectiveTime != null">
AND effective_time = #{effectiveTime}
</if>
<if test="adjustReason != null">
AND adjust_reason = #{adjustReason}
</if>
<if test="taxAgentId != null">
AND tax_agent_id = #{taxAgentId}
</if>
<if test="operator != null">
AND operator = #{operator}
</if>
<if test="operateTime != null">
AND operate_time = #{operateTime}
</if>
<if test="description != null">
AND description = #{description}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO"
keyProperty="id" keyColumn="id" useGeneratedKeys="true"
>
INSERT INTO hrsa_salary_archive_tax_agent
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="salaryArchiveId != null">
salary_archive_id,
</if>
<if test="employeeId != null">
employee_id,
</if>
<if test="effectiveTime != null">
effective_time,
</if>
<if test="adjustReason != null">
adjust_reason,
</if>
<if test="taxAgentId != null">
tax_agent_id,
</if>
<if test="operator != null">
operator,
</if>
<if test="operateTime != null">
operate_time,
</if>
<if test="description != null">
description,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="salaryArchiveId != null">
#{salaryArchiveId},
</if>
<if test="employeeId != null">
#{employeeId},
</if>
<if test="effectiveTime != null">
#{effectiveTime},
</if>
<if test="adjustReason != null">
#{adjustReason},
</if>
<if test="taxAgentId != null">
#{taxAgentId},
</if>
<if test="operator != null">
#{operator},
</if>
<if test="operateTime != null">
#{operateTime},
</if>
<if test="description != null">
#{description},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
UPDATE hrsa_salary_archive_tax_agent
<set>
salary_archive_id=#{salaryArchiveId},
employee_id=#{employeeId},
effective_time=#{effectiveTime},
adjust_reason=#{adjustReason},
tax_agent_id=#{taxAgentId},
operator=#{operator},
operate_time=#{operateTime},
description=#{description},
create_time=#{createTime},
update_time=#{updateTime},
creator=#{creator},
delete_type=#{deleteType},
tenant_key=#{tenantKey},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
UPDATE hrsa_salary_archive_tax_agent
<set>
<if test="salaryArchiveId != null">
salary_archive_id=#{salaryArchiveId},
</if>
<if test="employeeId != null">
employee_id=#{employeeId},
</if>
<if test="effectiveTime != null">
effective_time=#{effectiveTime},
</if>
<if test="adjustReason != null">
adjust_reason=#{adjustReason},
</if>
<if test="taxAgentId != null">
tax_agent_id=#{taxAgentId},
</if>
<if test="operator != null">
operator=#{operator},
</if>
<if test="operateTime != null">
operate_time=#{operateTime},
</if>
<if test="description != null">
description=#{description},
</if>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
UPDATE hrsa_salary_archive_tax_agent
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<!-- 条件查询 -->
<select id="listByParam" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_archive_tax_agent t
WHERE delete_type = 0
<if test="param.effectiveTime != null">
AND t.effective_time &lt;= #{effectiveTime}
</if>
<if test="param.salaryArchiveIds != null and param.salaryArchiveIds.size()>0">
AND t.salary_archive_id IN
<foreach collection="param.ids" open="(" item="salaryArchiveId" separator="," close=")">
#{salaryArchiveId}
</foreach>
</if>
ORDER BY t.effective_time DESC
</select>
</mapper>

View File

@ -0,0 +1,130 @@
//package com.engine.salary.service;
//
//import com.engine.salary.common.LocalDateRange;
//import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
//import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO;
//import com.engine.salary.entity.salaryarchive.dto.TaxAgentListDTO;
//import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam;
//import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO;
//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
//import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
//import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
//import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
//
//import java.util.Collection;
//import java.util.List;
//import java.util.Map;
//
///**
// * 薪资档案
// * <p>Copyright: Copyright (c) 2022</p>
// * <p>Company: 泛微软件</p>
// *
// * @author qiantao
// * @version 1.0
// **/
//public interface SalaryArchiveService {
//
// /**
// * 获取薪资档案单条主记录
// *
// * @param salaryArchiveId
// * @return
// */
// SalaryArchivePO getById(Long salaryArchiveId);
//
// /**
// * 薪资档案列表分页
// *
// * @param page
// * @param queryParam
// * @param tenantKey
// * @return
// */
//// Page<SalaryArchiveListDTO> listPage(Page<SalaryArchiveListDTO> page, SalaryArchiveQueryParam queryParam, String tenantKey);
//
// /**
// * 构建薪资档案数据
// *
// * @param salaryArchives
// * @param taxAgentLists
// * @param salaryItems
// * @param isPage
// * @return
// */
// List<Map<String, Object>> buildSalaryArchiveData(Collection<SalaryArchiveListDTO> salaryArchives, Collection<TaxAgentListDTO> taxAgentLists, List<SalaryItemPO> salaryItems, Boolean isPage);
//
// /**
// * 获取薪资档案对应的当前生效的薪资项目
// *
// * @param salaryArchivesIds
// * @return
// */
// List<SalaryArchiveItemPO> getCurrentEffectiveItemList(Collection<Long> salaryArchivesIds, Collection<Long> salaryItemIds);
//
// /**
// * 获取薪资档案对应的当前生效的个税扣缴义务人
// *
// * @param salaryArchivesIds
// * @return
// */
// List<SalaryArchiveTaxAgentPO> getCurrentEffectiveTaxAgentList(Collection<Long> salaryArchivesIds);
//
// /**
// * 导出薪资档案列表
// *
// * @param map
// * @param username
// * @param eteamsId
// * @param queryParam
// * @throws Exception
// */
// void exportList(Map<String, Object> map, String username, String eteamsId, SalaryArchiveQueryParam queryParam);
//
// /**
// * 下载导入模板
// *
// * @param map
// * @param username
// * @param eteamsId
// * @param salaryArchiveImportTypeEnum
// * @param queryParam
// * @return
// */
// void downloadTemplate(Map<String, Object> map, String username, String eteamsId, SalaryArchiveImportTypeEnum salaryArchiveImportTypeEnum, SalaryArchiveQueryParam queryParam);
//
// /**
// * 获取离职时段设置
// *
// */
// List<SalaryArchiveDimissionPO> dimissionSets();
//
// /**
// * 保存离职时段设置
// *
// * @param saveParam
// * @return
// */
// String saveDimissionSet(SalaryArchiveDimissionSaveParam saveParam);
//
// /**
// * 根据日期范围与人员id获取薪资档案-薪资项目数据
// *
// * @param localDateRange
// * @param employeeIds 为空则返回所有人的
// * @return
// */
// List<SalaryArchiveDataDTO> getSalaryArchiveData(LocalDateRange localDateRange, Collection<Long> employeeIds);
//
// /**
// * 根据日期范围与人员id获取薪资档案-个税扣缴义务人数据
// *
// * @param localDateRange
// * @param employeeIds 为空则返回所有人的
// * @param tenantKey
// * @return
// */
// List<SalaryArchiveDataDTO> getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection<Long> employeeIds, String tenantKey);
//}

File diff suppressed because it is too large Load Diff

View File

@ -131,6 +131,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
// 校验
validSaveParam(salarySobId);
//fixme 事务
//清除原数据
cleanOldData(salarySobId);

View File

@ -0,0 +1,366 @@
package com.engine.salary.web;
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class SalaryArchiveController {
//
// @Autowired
// private SalaryArchiveWrapper salaryArchiveWrapper;
// @Autowired
// private SalaryArchiveItemWrapper salaryArchiveItemWrapper;
// @Autowired
// private SalaryArchiveTaxAgentWrapper salaryArchiveTaxAgentWrapper;
// /******** 薪资档案主表 start ***********************************************************************************************/
// /**
// * 薪资档案列表的高级搜索
// *
// * @return
// */
// @GetMapping("/getSearchCondition")
// @ApiOperation("薪资档案列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getSearchCondition() {
// return WeaResult.success(salaryArchiveWrapper.getSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 薪资档案列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/list")
// @ApiOperation("薪资档案列表")
// @WeaPermission
// public WeaResult<WeaTable<LinkedHashMap>> list(@RequestBody SalaryArchiveQueryParam queryParam) {
// return WeaResult.success(salaryArchiveWrapper.list(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 导出薪资档案
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/exportList")
// @ApiOperation("导出薪资档案")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportList(@RequestBody SalaryArchiveQueryParam queryParam) throws Exception {
// return WeaResult.success(salaryArchiveWrapper.exportList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取薪资档案详情表单
// *
// * @param salaryArchiveId
// * @return
// */
// @GetMapping("/getForm")
// @ApiOperation("获取薪资档案详情表单")
// @WeaPermission
// public WeaResult<SalaryArchiveFormDTO> getFrom(@RequestParam Long salaryArchiveId) {
// return WeaResult.success(salaryArchiveWrapper.getFrom(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取离职时段设置表单
// *
// * @return
// */
// @GetMapping("/getDimissionSetForm")
// @ApiOperation("获取离职时段设置表单")
// @WeaPermission
// public WeaResult<WeaForm> getDimissionSetForm() {
// return WeaResult.success(salaryArchiveWrapper.getDimissionSetForm(TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 保存离职时段设置
// *
// * @return
// */
// @PostMapping("/saveDimissionSet")
// @ApiOperation("保存离职时段设置")
// @WeaPermission
// public WeaResult<String> saveDimissionSet(@RequestBody SalaryArchiveDimissionSaveParam saveParam) {
// return WeaResult.success(salaryArchiveWrapper.saveDimissionSet(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取导入类型
// *
// * @return
// */
// @GetMapping("/getImportTypes")
// @ApiOperation("获取导入类型")
// @WeaPermission(publicPermission = true)
// public WeaResult<List<Map<String, Object>>> getImportTypes() {
// List<Map<String, Object>> importTypes = Arrays.stream(SalaryArchiveImportTypeEnum.values()).map(m -> {
// Map<String, Object> map = new HashMap<>(2);
// map.put("id", String.valueOf(m.getValue()));
// map.put("content", SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), m.getLabelId(), m.getDefaultLabel()));
// return map;
// }).collect(Collectors.toList());
// return WeaResult.success(importTypes);
// }
//
// /**
// * 下载导入模板
// *
// * @return
// */
// @PostMapping("/downloadTemplate")
// @ApiOperation("下载导入模板")
// @WeaPermission
// public WeaResult<Map<String, Object>> downloadTemplate(@RequestBody SalaryArchiveQueryParam queryParam) {
// return WeaResult.success(salaryArchiveWrapper.downloadTemplate(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取导入参数
// *
// * @return
// */
// @GetMapping("/getImportParams")
// @ApiOperation("获取导入参数")
// @WeaPermission
// public WeaResult<ExcelImportParam> getImportParams() {
// return WeaResult.success(salaryArchiveWrapper.getImportParams());
// }
// /******** 薪资档案主表 end ***********************************************************************************************/
//
// /******** 薪资项目调整 start ***********************************************************************************************/
// /**
// * 通过薪资档案id获取薪资项目调整表单
// *
// * @param salaryArchiveId
// * @return
// */
// @GetMapping("/getSalaryItemForm")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveItemFormDTO> getSalaryItemForm(@RequestParam Long salaryArchiveId) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取薪资项目调整前的值
// *
// * @param adjustBeforeParam
// * @return
// */
// @PostMapping("/getSalaryItemAdjustBeforeValue")
// @ApiOperation("获取薪资项目调整前的值")
// @WeaPermission
// public WeaResult<String> getSalaryItemAdjustBeforeValue(@RequestBody SalaryItemAdjustBeforeParam adjustBeforeParam) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemAdjustBeforeValue(adjustBeforeParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 通过薪资档案的薪资项目id获取薪资项目调整表单
// *
// * @param salaryArchiveItemId
// * @return
// */
// @GetMapping("/getSalaryItemFormBySalaryArchiveItemId")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveItemFormDTO> getSalaryItemFormBySalaryArchiveItemId(@RequestParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemFormBySalaryArchiveItemId(salaryArchiveItemId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 保存薪资项目调整
// *
// * @param saveParam
// * @return
// */
// @PostMapping("/saveSalaryItem")
// @ApiOperation("保存薪资项目调整")
// @WeaPermission
// public WeaResult<String> saveSalaryItem(@RequestBody SalaryArchiveItemSaveParam saveParam) {
// return WeaResult.success(salaryArchiveItemWrapper.saveSalaryItem(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 删除薪资项目调整
// *
// * @param salaryArchiveItemId
// * @return
// */
// @PostMapping("/deleteSalaryItem")
// @ApiOperation("删除薪资项目调整")
// @WeaPermission
// public WeaResult<String> deleteSalaryItem(@RequestParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) {
// return WeaResult.success(salaryArchiveItemWrapper.deleteSalaryItem(salaryArchiveItemId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 薪资项目调整 end ***********************************************************************************************/
//
// /******** 个税扣缴义务人调整 start ***********************************************************************************************/
// /**
// * 获取个税扣缴义务人调整表单
// *
// * @param salaryArchiveId
// * @return
// */
// @GetMapping("/getTaxAgentForm")
// @ApiOperation("获取个税扣缴义务人调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveTaxAgentFormDTO> getTaxAgentForm(@RequestParam(value = "salaryArchiveId") Long salaryArchiveId) {
// SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey());
// return WeaResult.success(form);
// }
//
// /**
// * 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单
// *
// * @param salaryArchiveTaxAgentId
// * @return
// */
// @GetMapping("/getTaxAgentFormBySalaryArchiveTaxAgentId")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveTaxAgentFormDTO> getTaxAgentFormBySalaryArchiveTaxAgentId(@RequestParam Long salaryArchiveTaxAgentId) {
// SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentFormBySalaryArchiveTaxAgentId(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey());
// return WeaResult.success(form);
// }
//
// /**
// * 保存个税扣缴义务人调整
// *
// * @param saveParam
// * @return
// */
// @PostMapping("/saveTaxAgent")
// @ApiOperation("保存个税扣缴义务人调整")
// @WeaPermission
// public WeaResult<String> saveTaxAgent(@RequestBody SalaryArchiveTaxAgentSaveParam saveParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.saveTaxAgent(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 删除个税扣缴义务人调整
// *
// * @param salaryArchiveTaxAgentId
// * @return
// */
// @PostMapping("/deleteTaxAgent")
// @ApiOperation("删除个税扣缴义务人调整")
// @WeaPermission
// public WeaResult<String> deleteTaxAgent(@RequestParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.deleteTaxAgent(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 薪资项目调整 end ***********************************************************************************************/
//
// /******** 薪资项目调整记录 start ***********************************************************************************************/
// /**
// * 薪资项目调整记录列表的高级搜索
// *
// * @return
// */
// @GetMapping("/adjustRecord/getSalaryItemSearchCondition")
// @ApiOperation("薪资项目调整记录列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getSalaryItemSearchCondition() {
// return WeaResult.success(salaryArchiveItemWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/salaryItemList")
// @ApiOperation("薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SalaryItemAdjustRecordListDTO>> salaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 单个档案的薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/singleSalaryItemList")
// @ApiOperation("单个档案的薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SingleSalaryItemAdjustRecordListDTO>> singleSalaryItemAdjustRecordList(@RequestBody SingleSalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.singleSalaryItemAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 导出薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/exportSalaryItemList")
// @ApiOperation("导出薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportSalaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 薪资项目调整记录 end ***********************************************************************************************/
//
// /******** 个税扣缴义务人调整记录 start ***********************************************************************************************/
// /**
// * 个税扣缴义务人调整记录列表的高级搜索
// *
// * @return
// */
// @GetMapping("/adjustRecord/getTaxAgentSearchCondition")
// @ApiOperation("个税扣缴义务人调整记录列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getTaxAgentSearchCondition() {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/taxAgentList")
// @ApiOperation("个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<TaxAgentAdjustRecordListDTO>> taxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 单个档案的个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/singleTaxAgentList")
// @ApiOperation("单个档案的个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SingleTaxAgentAdjustRecordListDTO>> SingleTaxAgentAdjustRecordList(@RequestBody SingleTaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.singleTaxAgentAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 导出个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/exportTaxAgentList")
// @ApiOperation("导出个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportTaxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 个税扣缴义务人调整记录 end ***********************************************************************************************/
}

View File

@ -0,0 +1,319 @@
package com.engine.salary.wrapper;
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @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<WeaSearchConditionOption> taxAgentList = new ArrayList<>();
// // 获取所有个税扣缴义务人
// Collection<TaxAgentListDTO> taxAgentLists = taxAgentService.findAll(tenantKey);
// taxAgentLists.forEach(e-> taxAgentList.add(new WeaSearchConditionOption(e.getId().toString(), e.getName())));
//
// WeaSearchCondition weaSearchCondition = SalaryFormatUtil.<SalaryArchiveSearchConditionDTO>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<LinkedHashMap> list(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) {
// Collection<TaxAgentListDTO> taxAgentLists = taxAgentService.findAll(tenantKey);
//
// Page<SalaryArchiveListDTO> page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true);
// page = salaryArchiveService.listPage(page, queryParam, tenantKey);
//
// Collection<SalaryArchiveListDTO> salaryArchives = page.getRecords();
// // 获取所有可被引用的薪资项目
// List<SalaryItemPO> salaryItems = salaryArchiveItemService.getCanAdjustSalaryItems(tenantKey);
// List<Map<String, Object>> listMaps = salaryArchiveService.buildSalaryArchiveData(salaryArchives, taxAgentLists, salaryItems, employeeId, tenantKey, Boolean.TRUE);
//
// Page<Map<String, Object>> listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
// listPage.setRecords(listMaps);
//
// WeaTable<LinkedHashMap> weaTable = FormatManager.<LinkedHashMap>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<SimpleEmployee> employeeList = employeeService.getEmployeeByIds(Collections.singletonList(po.getEmployeeId()), tenantKey);
// if (CollectionUtils.isEmpty(employeeList)) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100465, "薪资档案员工信息不存在"));
// }
//
// // 获取当前已生效个税扣缴义务人
// List<SalaryArchiveTaxAgentPO> taxAgentList = salaryArchiveService.getCurrentEffectiveTaxAgentList(Collections.singletonList(salaryArchiveId), tenantKey);
// // 获取所有个税扣缴义务人
// Collection<TaxAgentListDTO> taxAgentLists = taxAgentService.findAll(tenantKey);
// String taxAgent = "";
// if (CollectionUtils.isNotEmpty(taxAgentList)) {
// SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = taxAgentList.get(0);
// Optional<TaxAgentListDTO> 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.<SalaryArchiveBaseInfoFormDTO>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<Map<String, Object>> salaryItems = Lists.newArrayList();
// // 获取所有可被引用的薪资项目
// List<SalaryItemPO> salaryItemList = salaryArchiveItemService.getCanAdjustSalaryItems(tenantKey);
// Collection<Long> salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
// List<SalaryArchiveItemPO> salaryArchiveItemList = salaryArchiveService.getCurrentEffectiveItemList(Collections.singletonList(salaryArchiveId), salaryItemIds, tenantKey);
// salaryArchiveItemList.forEach(m->{
// Optional<SalaryItemPO> optionalItem = salaryItemList.stream().filter(f->f.getId().equals(m.getSalaryItemId())).findFirst();
// if (optionalItem.isPresent()) {
// Map<String, Object> 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.<SalaryItemAdjustRecordForFromSearchConditionDTO>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<Map<String, Object>> salaryItems) {
// // 构建表单
// WeaForm salaryItemForm = new WeaForm();
//
// // 控件项目
// Map<String, WeaFormItem> items = salaryItemForm.getItems();
// // 控件布局
// List<List<WeaFormLayout>> layout = salaryItemForm.getLayout();
// // 控件数据
// Map<String, Object> data = salaryItemForm.getData();
//
// List<WeaFormLayout> layoutSingles = Lists.newArrayList();
// int i=0;
// while (i<salaryItems.size()) {
// WeaFormItem salaryItemItem = new WeaFormItem(WeaFormItemType.INPUT);
// salaryItemItem.setReadOnly(Boolean.TRUE);
// // 表单项
// items.put(String.valueOf(salaryItems.get(i).get("id").toString()), salaryItemItem);
// // 表单项布局
// layoutSingles.add(new WeaFormLayout(String.valueOf(i/2), salaryItems.get(i).get("name").toString(), new String[]{salaryItems.get(i).get("id").toString()}));
// // 如果是奇数并且最后一行加空白单元格
// if (layoutSingles.size() % 2 != 0 && i == salaryItems.size()-1) {
// layoutSingles.add(new WeaFormLayout(String.valueOf(i/2), "", new String[]{""}));
// }
// // 表单项数据
// data.put(String.valueOf(salaryItems.get(i).get("id").toString()), salaryItems.get(i).get("value").toString());
// i++;
// }
// // 栅格布局换行处理
// int j=0;
// while (j<=salaryItems.size()/2) {
// int finalI = j;
// if (CollectionUtils.isNotEmpty(layoutSingles)) {
// layout.add(layoutSingles.stream().filter(f->f.getId().equals(String.valueOf(finalI))).collect(Collectors.toList()));
// }
// j++;
// }
//
// return salaryItemForm;
// }
//
// /**
// * 获取离职时段设置表单
// *
// * @param tenantKey
// * @return
// */
// public WeaForm getDimissionSetForm(String tenantKey) {
// WeaForm salaryTemplateBase = SalaryFormatUtil.<DimissionSetFormDTO>getInstance().buildForm(DimissionSetFormDTO.class, DimissionSetFormDTO.builder().build());
// List<SalaryArchiveDimissionPO> dimissionSets = salaryArchiveService.dimissionSets(tenantKey);
// Map<String, Object> 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<String, Object> exportList(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) {
// // 构建异步导出参数
// Map<String, Object> 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<String, Object> downloadTemplate(SalaryArchiveQueryParam queryParam, Long employeeId, String tenantKey) {
// Map<String, Object> map = salaryBatchService.buildeExportParam("exportSalaryArchive");
// String username = UserContext.getCurrentUser().getUsername();
//
// String eteamsId = TenantRpcContext.getEteamsId();
// Optional<SalaryArchiveImportTypeEnum> 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);
// }
}