L3HRM后端推送

This commit is contained in:
2025-12-16 16:56:14 +08:00
parent 5ac2e78a33
commit 62c541839e
221 changed files with 8280 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmAttendCalcBo;
import com.klp.hrm.domain.vo.HrmAttendCalcVo;
import java.util.Collection;
import java.util.List;
public interface IHrmAttendCalcService {
HrmAttendCalcVo queryById(Long calcId);
TableDataInfo<HrmAttendCalcVo> queryPageList(HrmAttendCalcBo bo, PageQuery pageQuery);
List<HrmAttendCalcVo> queryList(HrmAttendCalcBo bo);
Boolean insertByBo(HrmAttendCalcBo bo);
Boolean updateByBo(HrmAttendCalcBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmCertificateBo;
import com.klp.hrm.domain.vo.HrmCertificateVo;
import java.util.Collection;
import java.util.List;
public interface IHrmCertificateService {
HrmCertificateVo queryById(Long certId);
TableDataInfo<HrmCertificateVo> queryPageList(HrmCertificateBo bo, PageQuery pageQuery);
List<HrmCertificateVo> queryList(HrmCertificateBo bo);
Boolean insertByBo(HrmCertificateBo bo);
Boolean updateByBo(HrmCertificateBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmContractBo;
import com.klp.hrm.domain.vo.HrmContractVo;
import java.util.Collection;
import java.util.List;
public interface IHrmContractService {
HrmContractVo queryById(Long contractId);
TableDataInfo<HrmContractVo> queryPageList(HrmContractBo bo, PageQuery pageQuery);
List<HrmContractVo> queryList(HrmContractBo bo);
Boolean insertByBo(HrmContractBo bo);
Boolean updateByBo(HrmContractBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmEmpOrgPositionBo;
import com.klp.hrm.domain.vo.HrmEmpOrgPositionVo;
import java.util.Collection;
import java.util.List;
public interface IHrmEmpOrgPositionService {
HrmEmpOrgPositionVo queryById(Long relId);
TableDataInfo<HrmEmpOrgPositionVo> queryPageList(HrmEmpOrgPositionBo bo, PageQuery pageQuery);
List<HrmEmpOrgPositionVo> queryList(HrmEmpOrgPositionBo bo);
Boolean insertByBo(HrmEmpOrgPositionBo bo);
Boolean updateByBo(HrmEmpOrgPositionBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmEmployeeBo;
import com.klp.hrm.domain.vo.HrmEmployeeVo;
import java.util.Collection;
import java.util.List;
public interface IHrmEmployeeService {
HrmEmployeeVo queryById(Long empId);
TableDataInfo<HrmEmployeeVo> queryPageList(HrmEmployeeBo bo, PageQuery pageQuery);
List<HrmEmployeeVo> queryList(HrmEmployeeBo bo);
Boolean insertByBo(HrmEmployeeBo bo);
Boolean updateByBo(HrmEmployeeBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFlowActionBo;
import com.klp.hrm.domain.vo.HrmFlowActionVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFlowActionService {
HrmFlowActionVo queryById(Long actionId);
TableDataInfo<HrmFlowActionVo> queryPageList(HrmFlowActionBo bo, PageQuery pageQuery);
List<HrmFlowActionVo> queryList(HrmFlowActionBo bo);
Boolean insertByBo(HrmFlowActionBo bo);
Boolean updateByBo(HrmFlowActionBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,29 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFlowInstanceBo;
import com.klp.hrm.domain.vo.HrmFlowInstanceVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFlowInstanceService {
HrmFlowInstanceVo queryById(Long instId);
/**
* 启动实例并生成首个待办
*/
Long startInstance(com.klp.hrm.domain.bo.HrmFlowStartBo bo);
TableDataInfo<HrmFlowInstanceVo> queryPageList(HrmFlowInstanceBo bo, PageQuery pageQuery);
List<HrmFlowInstanceVo> queryList(HrmFlowInstanceBo bo);
Boolean insertByBo(HrmFlowInstanceBo bo);
Boolean updateByBo(HrmFlowInstanceBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFlowNodeBo;
import com.klp.hrm.domain.vo.HrmFlowNodeVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFlowNodeService {
HrmFlowNodeVo queryById(Long nodeId);
TableDataInfo<HrmFlowNodeVo> queryPageList(HrmFlowNodeBo bo, PageQuery pageQuery);
List<HrmFlowNodeVo> queryList(HrmFlowNodeBo bo);
Boolean insertByBo(HrmFlowNodeBo bo);
Boolean updateByBo(HrmFlowNodeBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,39 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFlowTaskBo;
import com.klp.hrm.domain.vo.HrmFlowTaskVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFlowTaskService {
HrmFlowTaskVo queryById(Long taskId);
TableDataInfo<HrmFlowTaskVo> queryPageList(HrmFlowTaskBo bo, PageQuery pageQuery);
List<HrmFlowTaskVo> queryList(HrmFlowTaskBo bo);
Boolean insertByBo(HrmFlowTaskBo bo);
Boolean updateByBo(HrmFlowTaskBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 审批通过,可附带盖章指令(仅用印业务)
*/
Boolean approve(Long taskId, Long actionUserId, String remark, com.klp.hrm.domain.bo.HrmSealStampBo stampBo);
/**
* 审批驳回
*/
Boolean reject(Long taskId, Long actionUserId, String remark);
/**
* 撤回/取消
*/
Boolean withdraw(Long taskId, Long actionUserId, String remark);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFlowTemplateBo;
import com.klp.hrm.domain.vo.HrmFlowTemplateVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFlowTemplateService {
HrmFlowTemplateVo queryById(Long tplId);
TableDataInfo<HrmFlowTemplateVo> queryPageList(HrmFlowTemplateBo bo, PageQuery pageQuery);
List<HrmFlowTemplateVo> queryList(HrmFlowTemplateBo bo);
Boolean insertByBo(HrmFlowTemplateBo bo);
Boolean updateByBo(HrmFlowTemplateBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmFormDataBo;
import com.klp.hrm.domain.vo.HrmFormDataVo;
import java.util.Collection;
import java.util.List;
public interface IHrmFormDataService {
HrmFormDataVo queryById(Long formId);
TableDataInfo<HrmFormDataVo> queryPageList(HrmFormDataBo bo, PageQuery pageQuery);
List<HrmFormDataVo> queryList(HrmFormDataBo bo);
Boolean insertByBo(HrmFormDataBo bo);
Boolean updateByBo(HrmFormDataBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmGradeBo;
import com.klp.hrm.domain.vo.HrmGradeVo;
import java.util.Collection;
import java.util.List;
public interface IHrmGradeService {
HrmGradeVo queryById(Long gradeId);
TableDataInfo<HrmGradeVo> queryPageList(HrmGradeBo bo, PageQuery pageQuery);
List<HrmGradeVo> queryList(HrmGradeBo bo);
Boolean insertByBo(HrmGradeBo bo);
Boolean updateByBo(HrmGradeBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmHeadcountPlanBo;
import com.klp.hrm.domain.vo.HrmHeadcountPlanVo;
import java.util.Collection;
import java.util.List;
public interface IHrmHeadcountPlanService {
HrmHeadcountPlanVo queryById(Long planId);
TableDataInfo<HrmHeadcountPlanVo> queryPageList(HrmHeadcountPlanBo bo, PageQuery pageQuery);
List<HrmHeadcountPlanVo> queryList(HrmHeadcountPlanBo bo);
Boolean insertByBo(HrmHeadcountPlanBo bo);
Boolean updateByBo(HrmHeadcountPlanBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmLeaveBalanceBo;
import com.klp.hrm.domain.vo.HrmLeaveBalanceVo;
import java.util.Collection;
import java.util.List;
public interface IHrmLeaveBalanceService {
HrmLeaveBalanceVo queryById(Long balId);
TableDataInfo<HrmLeaveBalanceVo> queryPageList(HrmLeaveBalanceBo bo, PageQuery pageQuery);
List<HrmLeaveBalanceVo> queryList(HrmLeaveBalanceBo bo);
Boolean insertByBo(HrmLeaveBalanceBo bo);
Boolean updateByBo(HrmLeaveBalanceBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmLeaveReqBo;
import com.klp.hrm.domain.vo.HrmLeaveReqVo;
import java.util.Collection;
import java.util.List;
public interface IHrmLeaveReqService {
HrmLeaveReqVo queryById(Long bizId);
TableDataInfo<HrmLeaveReqVo> queryPageList(HrmLeaveReqBo bo, PageQuery pageQuery);
List<HrmLeaveReqVo> queryList(HrmLeaveReqBo bo);
Boolean insertByBo(HrmLeaveReqBo bo);
Boolean updateByBo(HrmLeaveReqBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmOrgBo;
import com.klp.hrm.domain.vo.HrmOrgVo;
import java.util.Collection;
import java.util.List;
public interface IHrmOrgService {
HrmOrgVo queryById(Long orgId);
TableDataInfo<HrmOrgVo> queryPageList(HrmOrgBo bo, PageQuery pageQuery);
List<HrmOrgVo> queryList(HrmOrgBo bo);
Boolean insertByBo(HrmOrgBo bo);
Boolean updateByBo(HrmOrgBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmOvertimeReqBo;
import com.klp.hrm.domain.vo.HrmOvertimeReqVo;
import java.util.Collection;
import java.util.List;
public interface IHrmOvertimeReqService {
HrmOvertimeReqVo queryById(Long bizId);
TableDataInfo<HrmOvertimeReqVo> queryPageList(HrmOvertimeReqBo bo, PageQuery pageQuery);
List<HrmOvertimeReqVo> queryList(HrmOvertimeReqBo bo);
Boolean insertByBo(HrmOvertimeReqBo bo);
Boolean updateByBo(HrmOvertimeReqBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmPayPlanBo;
import com.klp.hrm.domain.vo.HrmPayPlanVo;
import java.util.Collection;
import java.util.List;
public interface IHrmPayPlanService {
HrmPayPlanVo queryById(Long planId);
TableDataInfo<HrmPayPlanVo> queryPageList(HrmPayPlanBo bo, PageQuery pageQuery);
List<HrmPayPlanVo> queryList(HrmPayPlanBo bo);
Boolean insertByBo(HrmPayPlanBo bo);
Boolean updateByBo(HrmPayPlanBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmPayRunBo;
import com.klp.hrm.domain.vo.HrmPayRunVo;
import java.util.Collection;
import java.util.List;
public interface IHrmPayRunService {
HrmPayRunVo queryById(Long runId);
TableDataInfo<HrmPayRunVo> queryPageList(HrmPayRunBo bo, PageQuery pageQuery);
List<HrmPayRunVo> queryList(HrmPayRunBo bo);
Boolean insertByBo(HrmPayRunBo bo);
Boolean updateByBo(HrmPayRunBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmPayslipBo;
import com.klp.hrm.domain.vo.HrmPayslipVo;
import java.util.Collection;
import java.util.List;
public interface IHrmPayslipService {
HrmPayslipVo queryById(Long slipId);
TableDataInfo<HrmPayslipVo> queryPageList(HrmPayslipBo bo, PageQuery pageQuery);
List<HrmPayslipVo> queryList(HrmPayslipBo bo);
Boolean insertByBo(HrmPayslipBo bo);
Boolean updateByBo(HrmPayslipBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmPositionBo;
import com.klp.hrm.domain.vo.HrmPositionVo;
import java.util.Collection;
import java.util.List;
public interface IHrmPositionService {
HrmPositionVo queryById(Long positionId);
TableDataInfo<HrmPositionVo> queryPageList(HrmPositionBo bo, PageQuery pageQuery);
List<HrmPositionVo> queryList(HrmPositionBo bo);
Boolean insertByBo(HrmPositionBo bo);
Boolean updateByBo(HrmPositionBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmPunchBo;
import com.klp.hrm.domain.vo.HrmPunchVo;
import java.util.Collection;
import java.util.List;
public interface IHrmPunchService {
HrmPunchVo queryById(Long punchId);
TableDataInfo<HrmPunchVo> queryPageList(HrmPunchBo bo, PageQuery pageQuery);
List<HrmPunchVo> queryList(HrmPunchBo bo);
Boolean insertByBo(HrmPunchBo bo);
Boolean updateByBo(HrmPunchBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmScheduleBo;
import com.klp.hrm.domain.vo.HrmScheduleVo;
import java.util.Collection;
import java.util.List;
public interface IHrmScheduleService {
HrmScheduleVo queryById(Long schedId);
TableDataInfo<HrmScheduleVo> queryPageList(HrmScheduleBo bo, PageQuery pageQuery);
List<HrmScheduleVo> queryList(HrmScheduleBo bo);
Boolean insertByBo(HrmScheduleBo bo);
Boolean updateByBo(HrmScheduleBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,40 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmSealReqBo;
import com.klp.hrm.domain.bo.HrmSealStampBo;
import com.klp.hrm.domain.vo.HrmSealReqVo;
import java.util.Collection;
import java.util.List;
public interface IHrmSealReqService {
HrmSealReqVo queryById(Long bizId);
TableDataInfo<HrmSealReqVo> queryPageList(HrmSealReqBo bo, PageQuery pageQuery);
List<HrmSealReqVo> queryList(HrmSealReqBo bo);
Boolean insertByBo(HrmSealReqBo bo);
Boolean updateByBo(HrmSealReqBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 简单状态更新draft/running/approved/rejected/canceled
*/
Boolean updateStatus(Long bizId, String status);
/**
* Java 盖章,返回盖章后文件 URL
*/
String stampWithJava(Long bizId, HrmSealStampBo cmd);
/**
* Python 盖章占位(调用外部服务)
*/
String stampWithPython(Long bizId, HrmSealStampBo cmd);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmShiftBo;
import com.klp.hrm.domain.vo.HrmShiftVo;
import java.util.Collection;
import java.util.List;
public interface IHrmShiftService {
HrmShiftVo queryById(Long shiftId);
TableDataInfo<HrmShiftVo> queryPageList(HrmShiftBo bo, PageQuery pageQuery);
List<HrmShiftVo> queryList(HrmShiftBo bo);
Boolean insertByBo(HrmShiftBo bo);
Boolean updateByBo(HrmShiftBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmStatSnapshotBo;
import com.klp.hrm.domain.vo.HrmStatSnapshotVo;
import java.util.Collection;
import java.util.List;
public interface IHrmStatSnapshotService {
HrmStatSnapshotVo queryById(Long snapId);
TableDataInfo<HrmStatSnapshotVo> queryPageList(HrmStatSnapshotBo bo, PageQuery pageQuery);
List<HrmStatSnapshotVo> queryList(HrmStatSnapshotBo bo);
Boolean insertByBo(HrmStatSnapshotBo bo);
Boolean updateByBo(HrmStatSnapshotBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.service;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.bo.HrmTravelReqBo;
import com.klp.hrm.domain.vo.HrmTravelReqVo;
import java.util.Collection;
import java.util.List;
public interface IHrmTravelReqService {
HrmTravelReqVo queryById(Long bizId);
TableDataInfo<HrmTravelReqVo> queryPageList(HrmTravelReqBo bo, PageQuery pageQuery);
List<HrmTravelReqVo> queryList(HrmTravelReqBo bo);
Boolean insertByBo(HrmTravelReqBo bo);
Boolean updateByBo(HrmTravelReqBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmAttendCalc;
import com.klp.hrm.domain.bo.HrmAttendCalcBo;
import com.klp.hrm.domain.vo.HrmAttendCalcVo;
import com.klp.hrm.mapper.HrmAttendCalcMapper;
import com.klp.hrm.service.IHrmAttendCalcService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmAttendCalcServiceImpl implements IHrmAttendCalcService {
private final HrmAttendCalcMapper baseMapper;
@Override
public HrmAttendCalcVo queryById(Long calcId) {
return baseMapper.selectVoById(calcId);
}
@Override
public TableDataInfo<HrmAttendCalcVo> queryPageList(HrmAttendCalcBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmAttendCalc> lqw = buildQueryWrapper(bo);
Page<HrmAttendCalcVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmAttendCalcVo> queryList(HrmAttendCalcBo bo) {
LambdaQueryWrapper<HrmAttendCalc> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmAttendCalcBo bo) {
HrmAttendCalc add = BeanUtil.toBean(bo, HrmAttendCalc.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmAttendCalcBo bo) {
HrmAttendCalc update = BeanUtil.toBean(bo, HrmAttendCalc.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmAttendCalc> buildQueryWrapper(HrmAttendCalcBo bo) {
LambdaQueryWrapper<HrmAttendCalc> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCalcId() != null, HrmAttendCalc::getCalcId, bo.getCalcId());
lqw.eq(bo.getEmpId() != null, HrmAttendCalc::getEmpId, bo.getEmpId());
lqw.eq(bo.getWorkDate() != null, HrmAttendCalc::getWorkDate, bo.getWorkDate());
lqw.eq(bo.getShiftId() != null, HrmAttendCalc::getShiftId, bo.getShiftId());
lqw.eq(bo.getStatus() != null, HrmAttendCalc::getStatus, bo.getStatus());
return lqw;
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmCertificate;
import com.klp.hrm.domain.bo.HrmCertificateBo;
import com.klp.hrm.domain.vo.HrmCertificateVo;
import com.klp.hrm.mapper.HrmCertificateMapper;
import com.klp.hrm.service.IHrmCertificateService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmCertificateServiceImpl implements IHrmCertificateService {
private final HrmCertificateMapper baseMapper;
@Override
public HrmCertificateVo queryById(Long certId) {
return baseMapper.selectVoById(certId);
}
@Override
public TableDataInfo<HrmCertificateVo> queryPageList(HrmCertificateBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmCertificate> lqw = buildQueryWrapper(bo);
Page<HrmCertificateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmCertificateVo> queryList(HrmCertificateBo bo) {
LambdaQueryWrapper<HrmCertificate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmCertificateBo bo) {
HrmCertificate add = BeanUtil.toBean(bo, HrmCertificate.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmCertificateBo bo) {
HrmCertificate update = BeanUtil.toBean(bo, HrmCertificate.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmCertificate> buildQueryWrapper(HrmCertificateBo bo) {
LambdaQueryWrapper<HrmCertificate> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCertId() != null, HrmCertificate::getCertId, bo.getCertId());
lqw.eq(bo.getEmpId() != null, HrmCertificate::getEmpId, bo.getEmpId());
lqw.like(bo.getCertName() != null, HrmCertificate::getCertName, bo.getCertName());
lqw.like(bo.getCertNo() != null, HrmCertificate::getCertNo, bo.getCertNo());
lqw.eq(bo.getIssuedBy() != null, HrmCertificate::getIssuedBy, bo.getIssuedBy());
return lqw;
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmContract;
import com.klp.hrm.domain.bo.HrmContractBo;
import com.klp.hrm.domain.vo.HrmContractVo;
import com.klp.hrm.mapper.HrmContractMapper;
import com.klp.hrm.service.IHrmContractService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmContractServiceImpl implements IHrmContractService {
private final HrmContractMapper baseMapper;
@Override
public HrmContractVo queryById(Long contractId) {
return baseMapper.selectVoById(contractId);
}
@Override
public TableDataInfo<HrmContractVo> queryPageList(HrmContractBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmContract> lqw = buildQueryWrapper(bo);
Page<HrmContractVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmContractVo> queryList(HrmContractBo bo) {
LambdaQueryWrapper<HrmContract> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmContractBo bo) {
HrmContract add = BeanUtil.toBean(bo, HrmContract.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmContractBo bo) {
HrmContract update = BeanUtil.toBean(bo, HrmContract.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmContract> buildQueryWrapper(HrmContractBo bo) {
LambdaQueryWrapper<HrmContract> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getContractId() != null, HrmContract::getContractId, bo.getContractId());
lqw.eq(bo.getEmpId() != null, HrmContract::getEmpId, bo.getEmpId());
lqw.like(bo.getContractNo() != null, HrmContract::getContractNo, bo.getContractNo());
lqw.eq(bo.getContractType() != null, HrmContract::getContractType, bo.getContractType());
lqw.eq(bo.getStatus() != null, HrmContract::getStatus, bo.getStatus());
return lqw;
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmEmpOrgPosition;
import com.klp.hrm.domain.bo.HrmEmpOrgPositionBo;
import com.klp.hrm.domain.vo.HrmEmpOrgPositionVo;
import com.klp.hrm.mapper.HrmEmpOrgPositionMapper;
import com.klp.hrm.service.IHrmEmpOrgPositionService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmEmpOrgPositionServiceImpl implements IHrmEmpOrgPositionService {
private final HrmEmpOrgPositionMapper baseMapper;
@Override
public HrmEmpOrgPositionVo queryById(Long relId) {
return baseMapper.selectVoById(relId);
}
@Override
public TableDataInfo<HrmEmpOrgPositionVo> queryPageList(HrmEmpOrgPositionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmEmpOrgPosition> lqw = buildQueryWrapper(bo);
Page<HrmEmpOrgPositionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmEmpOrgPositionVo> queryList(HrmEmpOrgPositionBo bo) {
LambdaQueryWrapper<HrmEmpOrgPosition> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmEmpOrgPositionBo bo) {
HrmEmpOrgPosition add = BeanUtil.toBean(bo, HrmEmpOrgPosition.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmEmpOrgPositionBo bo) {
HrmEmpOrgPosition update = BeanUtil.toBean(bo, HrmEmpOrgPosition.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmEmpOrgPosition> buildQueryWrapper(HrmEmpOrgPositionBo bo) {
LambdaQueryWrapper<HrmEmpOrgPosition> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getRelId() != null, HrmEmpOrgPosition::getRelId, bo.getRelId());
lqw.eq(bo.getEmpId() != null, HrmEmpOrgPosition::getEmpId, bo.getEmpId());
lqw.eq(bo.getOrgId() != null, HrmEmpOrgPosition::getOrgId, bo.getOrgId());
lqw.eq(bo.getPositionId() != null, HrmEmpOrgPosition::getPositionId, bo.getPositionId());
lqw.eq(bo.getIsPrimary() != null, HrmEmpOrgPosition::getIsPrimary, bo.getIsPrimary());
return lqw;
}
}

View File

@@ -0,0 +1,75 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmEmployee;
import com.klp.hrm.domain.bo.HrmEmployeeBo;
import com.klp.hrm.domain.vo.HrmEmployeeVo;
import com.klp.hrm.mapper.HrmEmployeeMapper;
import com.klp.hrm.service.IHrmEmployeeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmEmployeeServiceImpl implements IHrmEmployeeService {
private final HrmEmployeeMapper baseMapper;
@Override
public HrmEmployeeVo queryById(Long empId) {
return baseMapper.selectVoById(empId);
}
@Override
public TableDataInfo<HrmEmployeeVo> queryPageList(HrmEmployeeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmEmployee> lqw = buildQueryWrapper(bo);
Page<HrmEmployeeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmEmployeeVo> queryList(HrmEmployeeBo bo) {
LambdaQueryWrapper<HrmEmployee> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmEmployeeBo bo) {
HrmEmployee add = BeanUtil.toBean(bo, HrmEmployee.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmEmployeeBo bo) {
HrmEmployee update = BeanUtil.toBean(bo, HrmEmployee.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmEmployee> buildQueryWrapper(HrmEmployeeBo bo) {
LambdaQueryWrapper<HrmEmployee> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getEmpId() != null, HrmEmployee::getEmpId, bo.getEmpId());
lqw.like(bo.getEmpNo() != null, HrmEmployee::getEmpNo, bo.getEmpNo());
lqw.like(bo.getEmpName() != null, HrmEmployee::getEmpName, bo.getEmpName());
lqw.eq(bo.getStatus() != null, HrmEmployee::getStatus, bo.getStatus());
lqw.eq(bo.getMainOrgId() != null, HrmEmployee::getMainOrgId, bo.getMainOrgId());
lqw.eq(bo.getMainPositionId() != null, HrmEmployee::getMainPositionId, bo.getMainPositionId());
lqw.orderByAsc(HrmEmployee::getEmpNo);
return lqw;
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFlowAction;
import com.klp.hrm.domain.bo.HrmFlowActionBo;
import com.klp.hrm.domain.vo.HrmFlowActionVo;
import com.klp.hrm.mapper.HrmFlowActionMapper;
import com.klp.hrm.service.IHrmFlowActionService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmFlowActionServiceImpl implements IHrmFlowActionService {
private final HrmFlowActionMapper baseMapper;
@Override
public HrmFlowActionVo queryById(Long actionId) {
return baseMapper.selectVoById(actionId);
}
@Override
public TableDataInfo<HrmFlowActionVo> queryPageList(HrmFlowActionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFlowAction> lqw = buildQueryWrapper(bo);
Page<HrmFlowActionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFlowActionVo> queryList(HrmFlowActionBo bo) {
LambdaQueryWrapper<HrmFlowAction> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFlowActionBo bo) {
HrmFlowAction add = BeanUtil.toBean(bo, HrmFlowAction.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFlowActionBo bo) {
HrmFlowAction update = BeanUtil.toBean(bo, HrmFlowAction.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmFlowAction> buildQueryWrapper(HrmFlowActionBo bo) {
LambdaQueryWrapper<HrmFlowAction> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getActionId() != null, HrmFlowAction::getActionId, bo.getActionId());
lqw.eq(bo.getTaskId() != null, HrmFlowAction::getTaskId, bo.getTaskId());
lqw.eq(bo.getInstId() != null, HrmFlowAction::getInstId, bo.getInstId());
lqw.eq(bo.getAction() != null, HrmFlowAction::getAction, bo.getAction());
lqw.eq(bo.getActionUserId() != null, HrmFlowAction::getActionUserId, bo.getActionUserId());
return lqw;
}
}

View File

@@ -0,0 +1,125 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFlowInstance;
import com.klp.hrm.domain.HrmFlowNode;
import com.klp.hrm.domain.HrmFlowTask;
import com.klp.hrm.domain.HrmFormData;
import com.klp.hrm.domain.bo.HrmFlowStartBo;
import com.klp.hrm.domain.bo.HrmFlowInstanceBo;
import com.klp.hrm.domain.vo.HrmFlowInstanceVo;
import com.klp.hrm.mapper.HrmFlowInstanceMapper;
import com.klp.hrm.mapper.HrmFlowNodeMapper;
import com.klp.hrm.mapper.HrmFlowTaskMapper;
import com.klp.hrm.mapper.HrmFormDataMapper;
import com.klp.hrm.service.IHrmFlowInstanceService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@RequiredArgsConstructor
@Service
public class HrmFlowInstanceServiceImpl implements IHrmFlowInstanceService {
private final HrmFlowInstanceMapper baseMapper;
private final HrmFlowNodeMapper nodeMapper;
private final HrmFlowTaskMapper taskMapper;
private final HrmFormDataMapper formDataMapper;
@Override
public HrmFlowInstanceVo queryById(Long instId) {
return baseMapper.selectVoById(instId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long startInstance(HrmFlowStartBo bo) {
// 找首节点
HrmFlowNode firstNode = nodeMapper.selectOne(Wrappers.<HrmFlowNode>lambdaQuery()
.eq(HrmFlowNode::getTplId, bo.getTplId())
.orderByAsc(HrmFlowNode::getOrderNo)
.last("limit 1"));
if (firstNode == null) {
throw new RuntimeException("流程模板无节点,无法启动");
}
// 创建实例
HrmFlowInstance inst = new HrmFlowInstance();
inst.setTplId(bo.getTplId());
inst.setBizType(bo.getBizType());
inst.setBizId(bo.getBizId());
inst.setStatus("running");
inst.setCurrentNodeId(firstNode.getNodeId());
inst.setStartUserId(bo.getStartUserId());
baseMapper.insert(inst);
// 保存表单
if (bo.getContentJson() != null) {
HrmFormData form = new HrmFormData();
form.setBizType(bo.getBizType());
form.setBizId(bo.getBizId());
form.setContentJson(bo.getContentJson());
formDataMapper.insert(form);
}
// 创建首个待办
HrmFlowTask task = new HrmFlowTask();
task.setInstId(inst.getInstId());
task.setNodeId(firstNode.getNodeId());
task.setAssigneeUserId(Objects.requireNonNullElse(bo.getStartUserId(), 0L));
task.setStatus("pending");
taskMapper.insert(task);
return inst.getInstId();
}
@Override
public TableDataInfo<HrmFlowInstanceVo> queryPageList(HrmFlowInstanceBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFlowInstance> lqw = buildQueryWrapper(bo);
Page<HrmFlowInstanceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFlowInstanceVo> queryList(HrmFlowInstanceBo bo) {
LambdaQueryWrapper<HrmFlowInstance> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFlowInstanceBo bo) {
HrmFlowInstance add = BeanUtil.toBean(bo, HrmFlowInstance.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFlowInstanceBo bo) {
HrmFlowInstance update = BeanUtil.toBean(bo, HrmFlowInstance.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmFlowInstance> buildQueryWrapper(HrmFlowInstanceBo bo) {
LambdaQueryWrapper<HrmFlowInstance> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getInstId() != null, HrmFlowInstance::getInstId, bo.getInstId());
lqw.eq(bo.getTplId() != null, HrmFlowInstance::getTplId, bo.getTplId());
lqw.eq(bo.getBizType() != null, HrmFlowInstance::getBizType, bo.getBizType());
lqw.eq(bo.getBizId() != null, HrmFlowInstance::getBizId, bo.getBizId());
lqw.eq(bo.getStatus() != null, HrmFlowInstance::getStatus, bo.getStatus());
return lqw;
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFlowNode;
import com.klp.hrm.domain.bo.HrmFlowNodeBo;
import com.klp.hrm.domain.vo.HrmFlowNodeVo;
import com.klp.hrm.mapper.HrmFlowNodeMapper;
import com.klp.hrm.service.IHrmFlowNodeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmFlowNodeServiceImpl implements IHrmFlowNodeService {
private final HrmFlowNodeMapper baseMapper;
@Override
public HrmFlowNodeVo queryById(Long nodeId) {
return baseMapper.selectVoById(nodeId);
}
@Override
public TableDataInfo<HrmFlowNodeVo> queryPageList(HrmFlowNodeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFlowNode> lqw = buildQueryWrapper(bo);
Page<HrmFlowNodeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFlowNodeVo> queryList(HrmFlowNodeBo bo) {
LambdaQueryWrapper<HrmFlowNode> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFlowNodeBo bo) {
HrmFlowNode add = BeanUtil.toBean(bo, HrmFlowNode.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFlowNodeBo bo) {
HrmFlowNode update = BeanUtil.toBean(bo, HrmFlowNode.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmFlowNode> buildQueryWrapper(HrmFlowNodeBo bo) {
LambdaQueryWrapper<HrmFlowNode> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getNodeId() != null, HrmFlowNode::getNodeId, bo.getNodeId());
lqw.eq(bo.getTplId() != null, HrmFlowNode::getTplId, bo.getTplId());
lqw.eq(bo.getOrderNo() != null, HrmFlowNode::getOrderNo, bo.getOrderNo());
lqw.eq(bo.getNodeType() != null, HrmFlowNode::getNodeType, bo.getNodeType());
lqw.eq(bo.getApproverRule() != null, HrmFlowNode::getApproverRule, bo.getApproverRule());
return lqw;
}
}

View File

@@ -0,0 +1,202 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFlowTask;
import com.klp.hrm.domain.HrmFlowAction;
import com.klp.hrm.domain.HrmFlowInstance;
import com.klp.hrm.domain.HrmFlowNode;
import com.klp.hrm.domain.bo.HrmFlowTaskBo;
import com.klp.hrm.domain.bo.HrmSealStampBo;
import com.klp.hrm.domain.vo.HrmFlowTaskVo;
import com.klp.hrm.mapper.HrmFlowActionMapper;
import com.klp.hrm.mapper.HrmFlowInstanceMapper;
import com.klp.hrm.mapper.HrmFlowNodeMapper;
import com.klp.hrm.mapper.HrmFlowTaskMapper;
import com.klp.hrm.service.IHrmFlowTaskService;
import com.klp.hrm.service.IHrmSealReqService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@RequiredArgsConstructor
@Service
public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService {
private final HrmFlowTaskMapper baseMapper;
private final HrmFlowActionMapper actionMapper;
private final HrmFlowInstanceMapper instanceMapper;
private final HrmFlowNodeMapper nodeMapper;
private final IHrmSealReqService sealReqService;
@Override
public HrmFlowTaskVo queryById(Long taskId) {
return baseMapper.selectVoById(taskId);
}
@Override
public TableDataInfo<HrmFlowTaskVo> queryPageList(HrmFlowTaskBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFlowTask> lqw = buildQueryWrapper(bo);
Page<HrmFlowTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFlowTaskVo> queryList(HrmFlowTaskBo bo) {
LambdaQueryWrapper<HrmFlowTask> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFlowTaskBo bo) {
HrmFlowTask add = BeanUtil.toBean(bo, HrmFlowTask.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFlowTaskBo bo) {
HrmFlowTask update = BeanUtil.toBean(bo, HrmFlowTask.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean approve(Long taskId, Long actionUserId, String remark, HrmSealStampBo stampBo) {
HrmFlowTask task = baseMapper.selectById(taskId);
if (task == null) {
return false;
}
HrmFlowInstance inst = instanceMapper.selectById(task.getInstId());
if (inst == null) {
return false;
}
HrmFlowNode currentNode = nodeMapper.selectById(task.getNodeId());
if (currentNode == null) {
return false;
}
// 记录动作
saveAction(taskId, inst.getInstId(), "approve", remark, actionUserId);
// 完成当前任务
task.setStatus("approved");
baseMapper.updateById(task);
// 查找下一节点
HrmFlowNode next = nodeMapper.selectOne(Wrappers.<HrmFlowNode>lambdaQuery()
.eq(HrmFlowNode::getTplId, inst.getTplId())
.gt(HrmFlowNode::getOrderNo, currentNode.getOrderNo())
.orderByAsc(HrmFlowNode::getOrderNo)
.last("limit 1"));
if (next != null) {
inst.setCurrentNodeId(next.getNodeId());
inst.setStatus("running");
instanceMapper.updateById(inst);
HrmFlowTask nextTask = new HrmFlowTask();
nextTask.setInstId(inst.getInstId());
nextTask.setNodeId(next.getNodeId());
nextTask.setAssigneeUserId(Objects.requireNonNullElse(actionUserId, 0L));
nextTask.setStatus("pending");
baseMapper.insert(nextTask);
} else {
// 末节点通过
inst.setStatus("approved");
inst.setCurrentNodeId(null);
instanceMapper.updateById(inst);
// 若业务为用印,更新用印状态为已批准
if ("seal".equalsIgnoreCase(inst.getBizType())) {
sealReqService.updateStatus(inst.getBizId(), "approved");
if (stampBo != null) {
sealReqService.stampWithJava(inst.getBizId(), stampBo);
}
}
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean reject(Long taskId, Long actionUserId, String remark) {
HrmFlowTask task = baseMapper.selectById(taskId);
if (task == null) {
return false;
}
HrmFlowInstance inst = instanceMapper.selectById(task.getInstId());
if (inst == null) {
return false;
}
saveAction(taskId, inst.getInstId(), "reject", remark, actionUserId);
task.setStatus("rejected");
baseMapper.updateById(task);
inst.setStatus("rejected");
instanceMapper.updateById(inst);
if ("seal".equalsIgnoreCase(inst.getBizType())) {
sealReqService.updateStatus(inst.getBizId(), "rejected");
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean withdraw(Long taskId, Long actionUserId, String remark) {
HrmFlowTask task = baseMapper.selectById(taskId);
if (task == null) {
return false;
}
HrmFlowInstance inst = instanceMapper.selectById(task.getInstId());
if (inst == null) {
return false;
}
saveAction(taskId, inst.getInstId(), "withdraw", remark, actionUserId);
task.setStatus("withdraw");
baseMapper.updateById(task);
// 撤回后重新生成当前节点待办实例回到running
inst.setStatus("running");
instanceMapper.updateById(inst);
HrmFlowTask reTask = new HrmFlowTask();
reTask.setInstId(inst.getInstId());
reTask.setNodeId(task.getNodeId());
reTask.setAssigneeUserId(Objects.requireNonNullElse(actionUserId, task.getAssigneeUserId()));
reTask.setStatus("pending");
baseMapper.insert(reTask);
if ("seal".equalsIgnoreCase(inst.getBizType())) {
sealReqService.updateStatus(inst.getBizId(), "running");
}
return true;
}
private void saveAction(Long taskId, Long instId, String action, String remark, Long userId) {
HrmFlowAction log = new HrmFlowAction();
log.setTaskId(taskId);
log.setInstId(instId);
log.setAction(action);
log.setRemark(remark);
log.setActionUserId(userId);
log.setCreateTime(LocalDateTime.now());
actionMapper.insert(log);
}
private LambdaQueryWrapper<HrmFlowTask> buildQueryWrapper(HrmFlowTaskBo bo) {
LambdaQueryWrapper<HrmFlowTask> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getTaskId() != null, HrmFlowTask::getTaskId, bo.getTaskId());
lqw.eq(bo.getInstId() != null, HrmFlowTask::getInstId, bo.getInstId());
lqw.eq(bo.getNodeId() != null, HrmFlowTask::getNodeId, bo.getNodeId());
lqw.eq(bo.getAssigneeUserId() != null, HrmFlowTask::getAssigneeUserId, bo.getAssigneeUserId());
lqw.eq(bo.getStatus() != null, HrmFlowTask::getStatus, bo.getStatus());
return lqw;
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFlowTemplate;
import com.klp.hrm.domain.bo.HrmFlowTemplateBo;
import com.klp.hrm.domain.vo.HrmFlowTemplateVo;
import com.klp.hrm.mapper.HrmFlowTemplateMapper;
import com.klp.hrm.service.IHrmFlowTemplateService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmFlowTemplateServiceImpl implements IHrmFlowTemplateService {
private final HrmFlowTemplateMapper baseMapper;
@Override
public HrmFlowTemplateVo queryById(Long tplId) {
return baseMapper.selectVoById(tplId);
}
@Override
public TableDataInfo<HrmFlowTemplateVo> queryPageList(HrmFlowTemplateBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFlowTemplate> lqw = buildQueryWrapper(bo);
Page<HrmFlowTemplateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFlowTemplateVo> queryList(HrmFlowTemplateBo bo) {
LambdaQueryWrapper<HrmFlowTemplate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFlowTemplateBo bo) {
HrmFlowTemplate add = BeanUtil.toBean(bo, HrmFlowTemplate.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFlowTemplateBo bo) {
HrmFlowTemplate update = BeanUtil.toBean(bo, HrmFlowTemplate.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmFlowTemplate> buildQueryWrapper(HrmFlowTemplateBo bo) {
LambdaQueryWrapper<HrmFlowTemplate> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getTplId() != null, HrmFlowTemplate::getTplId, bo.getTplId());
lqw.like(bo.getTplCode() != null, HrmFlowTemplate::getTplCode, bo.getTplCode());
lqw.like(bo.getTplName() != null, HrmFlowTemplate::getTplName, bo.getTplName());
lqw.eq(bo.getBizType() != null, HrmFlowTemplate::getBizType, bo.getBizType());
lqw.eq(bo.getVersion() != null, HrmFlowTemplate::getVersion, bo.getVersion());
lqw.eq(bo.getEnabled() != null, HrmFlowTemplate::getEnabled, bo.getEnabled());
return lqw;
}
}

View File

@@ -0,0 +1,71 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmFormData;
import com.klp.hrm.domain.bo.HrmFormDataBo;
import com.klp.hrm.domain.vo.HrmFormDataVo;
import com.klp.hrm.mapper.HrmFormDataMapper;
import com.klp.hrm.service.IHrmFormDataService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmFormDataServiceImpl implements IHrmFormDataService {
private final HrmFormDataMapper baseMapper;
@Override
public HrmFormDataVo queryById(Long formId) {
return baseMapper.selectVoById(formId);
}
@Override
public TableDataInfo<HrmFormDataVo> queryPageList(HrmFormDataBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmFormData> lqw = buildQueryWrapper(bo);
Page<HrmFormDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmFormDataVo> queryList(HrmFormDataBo bo) {
LambdaQueryWrapper<HrmFormData> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmFormDataBo bo) {
HrmFormData add = BeanUtil.toBean(bo, HrmFormData.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmFormDataBo bo) {
HrmFormData update = BeanUtil.toBean(bo, HrmFormData.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmFormData> buildQueryWrapper(HrmFormDataBo bo) {
LambdaQueryWrapper<HrmFormData> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getFormId() != null, HrmFormData::getFormId, bo.getFormId());
lqw.eq(bo.getBizType() != null, HrmFormData::getBizType, bo.getBizType());
lqw.eq(bo.getBizId() != null, HrmFormData::getBizId, bo.getBizId());
return lqw;
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmGrade;
import com.klp.hrm.domain.bo.HrmGradeBo;
import com.klp.hrm.domain.vo.HrmGradeVo;
import com.klp.hrm.mapper.HrmGradeMapper;
import com.klp.hrm.service.IHrmGradeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmGradeServiceImpl implements IHrmGradeService {
private final HrmGradeMapper baseMapper;
@Override
public HrmGradeVo queryById(Long gradeId) {
return baseMapper.selectVoById(gradeId);
}
@Override
public TableDataInfo<HrmGradeVo> queryPageList(HrmGradeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmGrade> lqw = buildQueryWrapper(bo);
Page<HrmGradeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmGradeVo> queryList(HrmGradeBo bo) {
LambdaQueryWrapper<HrmGrade> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmGradeBo bo) {
HrmGrade add = BeanUtil.toBean(bo, HrmGrade.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmGradeBo bo) {
HrmGrade update = BeanUtil.toBean(bo, HrmGrade.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmGrade> buildQueryWrapper(HrmGradeBo bo) {
LambdaQueryWrapper<HrmGrade> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getGradeId() != null, HrmGrade::getGradeId, bo.getGradeId());
lqw.like(bo.getGradeCode() != null, HrmGrade::getGradeCode, bo.getGradeCode());
lqw.like(bo.getGradeName() != null, HrmGrade::getGradeName, bo.getGradeName());
lqw.orderByAsc(HrmGrade::getLevelNo);
return lqw;
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmHeadcountPlan;
import com.klp.hrm.domain.bo.HrmHeadcountPlanBo;
import com.klp.hrm.domain.vo.HrmHeadcountPlanVo;
import com.klp.hrm.mapper.HrmHeadcountPlanMapper;
import com.klp.hrm.service.IHrmHeadcountPlanService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmHeadcountPlanServiceImpl implements IHrmHeadcountPlanService {
private final HrmHeadcountPlanMapper baseMapper;
@Override
public HrmHeadcountPlanVo queryById(Long planId) {
return baseMapper.selectVoById(planId);
}
@Override
public TableDataInfo<HrmHeadcountPlanVo> queryPageList(HrmHeadcountPlanBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmHeadcountPlan> lqw = buildQueryWrapper(bo);
Page<HrmHeadcountPlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmHeadcountPlanVo> queryList(HrmHeadcountPlanBo bo) {
LambdaQueryWrapper<HrmHeadcountPlan> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmHeadcountPlanBo bo) {
HrmHeadcountPlan add = BeanUtil.toBean(bo, HrmHeadcountPlan.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmHeadcountPlanBo bo) {
HrmHeadcountPlan update = BeanUtil.toBean(bo, HrmHeadcountPlan.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmHeadcountPlan> buildQueryWrapper(HrmHeadcountPlanBo bo) {
LambdaQueryWrapper<HrmHeadcountPlan> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPlanId() != null, HrmHeadcountPlan::getPlanId, bo.getPlanId());
lqw.eq(bo.getOrgId() != null, HrmHeadcountPlan::getOrgId, bo.getOrgId());
lqw.eq(bo.getPositionId() != null, HrmHeadcountPlan::getPositionId, bo.getPositionId());
lqw.eq(bo.getYear() != null, HrmHeadcountPlan::getYear, bo.getYear());
lqw.eq(bo.getMonth() != null, HrmHeadcountPlan::getMonth, bo.getMonth());
lqw.orderByDesc(HrmHeadcountPlan::getYear).orderByDesc(HrmHeadcountPlan::getMonth);
return lqw;
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmLeaveBalance;
import com.klp.hrm.domain.bo.HrmLeaveBalanceBo;
import com.klp.hrm.domain.vo.HrmLeaveBalanceVo;
import com.klp.hrm.mapper.HrmLeaveBalanceMapper;
import com.klp.hrm.service.IHrmLeaveBalanceService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmLeaveBalanceServiceImpl implements IHrmLeaveBalanceService {
private final HrmLeaveBalanceMapper baseMapper;
@Override
public HrmLeaveBalanceVo queryById(Long balId) {
return baseMapper.selectVoById(balId);
}
@Override
public TableDataInfo<HrmLeaveBalanceVo> queryPageList(HrmLeaveBalanceBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmLeaveBalance> lqw = buildQueryWrapper(bo);
Page<HrmLeaveBalanceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmLeaveBalanceVo> queryList(HrmLeaveBalanceBo bo) {
LambdaQueryWrapper<HrmLeaveBalance> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmLeaveBalanceBo bo) {
HrmLeaveBalance add = BeanUtil.toBean(bo, HrmLeaveBalance.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmLeaveBalanceBo bo) {
HrmLeaveBalance update = BeanUtil.toBean(bo, HrmLeaveBalance.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmLeaveBalance> buildQueryWrapper(HrmLeaveBalanceBo bo) {
LambdaQueryWrapper<HrmLeaveBalance> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBalId() != null, HrmLeaveBalance::getBalId, bo.getBalId());
lqw.eq(bo.getEmpId() != null, HrmLeaveBalance::getEmpId, bo.getEmpId());
lqw.eq(bo.getLeaveType() != null, HrmLeaveBalance::getLeaveType, bo.getLeaveType());
lqw.eq(bo.getExpireDate() != null, HrmLeaveBalance::getExpireDate, bo.getExpireDate());
return lqw;
}
}

View File

@@ -0,0 +1,78 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmLeaveReq;
import com.klp.hrm.domain.bo.HrmLeaveReqBo;
import com.klp.hrm.domain.vo.HrmLeaveReqVo;
import com.klp.hrm.mapper.HrmLeaveReqMapper;
import com.klp.hrm.service.IHrmLeaveReqService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
private final HrmLeaveReqMapper baseMapper;
@Override
public HrmLeaveReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
}
@Override
public TableDataInfo<HrmLeaveReqVo> queryPageList(HrmLeaveReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmLeaveReq> lqw = buildQueryWrapper(bo);
Page<HrmLeaveReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmLeaveReqVo> queryList(HrmLeaveReqBo bo) {
LambdaQueryWrapper<HrmLeaveReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmLeaveReqBo bo) {
HrmLeaveReq add = BeanUtil.toBean(bo, HrmLeaveReq.class);
add.setStatus(defaultStatus(add.getStatus()));
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmLeaveReqBo bo) {
HrmLeaveReq update = BeanUtil.toBean(bo, HrmLeaveReq.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmLeaveReq> buildQueryWrapper(HrmLeaveReqBo bo) {
LambdaQueryWrapper<HrmLeaveReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmLeaveReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmLeaveReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getLeaveType() != null, HrmLeaveReq::getLeaveType, bo.getLeaveType());
lqw.eq(bo.getStatus() != null, HrmLeaveReq::getStatus, bo.getStatus());
lqw.eq(bo.getStartTime() != null, HrmLeaveReq::getStartTime, bo.getStartTime());
return lqw;
}
private String defaultStatus(String status) {
return status == null ? "draft" : status;
}
}

View File

@@ -0,0 +1,82 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmOrg;
import com.klp.hrm.domain.bo.HrmOrgBo;
import com.klp.hrm.domain.vo.HrmOrgVo;
import com.klp.hrm.mapper.HrmOrgMapper;
import com.klp.hrm.service.IHrmOrgService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmOrgServiceImpl implements IHrmOrgService {
private final HrmOrgMapper baseMapper;
@Override
public HrmOrgVo queryById(Long orgId) {
return baseMapper.selectVoById(orgId);
}
@Override
public TableDataInfo<HrmOrgVo> queryPageList(HrmOrgBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmOrg> lqw = buildQueryWrapper(bo);
Page<HrmOrgVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmOrgVo> queryList(HrmOrgBo bo) {
LambdaQueryWrapper<HrmOrg> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmOrgBo bo) {
HrmOrg add = BeanUtil.toBean(bo, HrmOrg.class);
validEntityBeforeSave(add);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmOrgBo bo) {
HrmOrg update = BeanUtil.toBean(bo, HrmOrg.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
// 可按需添加校验
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmOrg> buildQueryWrapper(HrmOrgBo bo) {
LambdaQueryWrapper<HrmOrg> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getOrgId() != null, HrmOrg::getOrgId, bo.getOrgId());
lqw.eq(bo.getParentId() != null, HrmOrg::getParentId, bo.getParentId());
lqw.like(bo.getOrgCode() != null, HrmOrg::getOrgCode, bo.getOrgCode());
lqw.like(bo.getOrgName() != null, HrmOrg::getOrgName, bo.getOrgName());
lqw.eq(bo.getOrgType() != null, HrmOrg::getOrgType, bo.getOrgType());
lqw.eq(bo.getStatus() != null, HrmOrg::getStatus, bo.getStatus());
lqw.orderByAsc(HrmOrg::getParentId).orderByAsc(HrmOrg::getOrderNum);
return lqw;
}
private void validEntityBeforeSave(HrmOrg entity) {
// 可添加唯一性校验: org_code
}
}

View File

@@ -0,0 +1,78 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmOvertimeReq;
import com.klp.hrm.domain.bo.HrmOvertimeReqBo;
import com.klp.hrm.domain.vo.HrmOvertimeReqVo;
import com.klp.hrm.mapper.HrmOvertimeReqMapper;
import com.klp.hrm.service.IHrmOvertimeReqService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmOvertimeReqServiceImpl implements IHrmOvertimeReqService {
private final HrmOvertimeReqMapper baseMapper;
@Override
public HrmOvertimeReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
}
@Override
public TableDataInfo<HrmOvertimeReqVo> queryPageList(HrmOvertimeReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmOvertimeReq> lqw = buildQueryWrapper(bo);
Page<HrmOvertimeReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmOvertimeReqVo> queryList(HrmOvertimeReqBo bo) {
LambdaQueryWrapper<HrmOvertimeReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmOvertimeReqBo bo) {
HrmOvertimeReq add = BeanUtil.toBean(bo, HrmOvertimeReq.class);
add.setStatus(defaultStatus(add.getStatus()));
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmOvertimeReqBo bo) {
HrmOvertimeReq update = BeanUtil.toBean(bo, HrmOvertimeReq.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmOvertimeReq> buildQueryWrapper(HrmOvertimeReqBo bo) {
LambdaQueryWrapper<HrmOvertimeReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmOvertimeReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmOvertimeReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getOtType() != null, HrmOvertimeReq::getOtType, bo.getOtType());
lqw.eq(bo.getStatus() != null, HrmOvertimeReq::getStatus, bo.getStatus());
lqw.eq(bo.getStartTime() != null, HrmOvertimeReq::getStartTime, bo.getStartTime());
return lqw;
}
private String defaultStatus(String status) {
return status == null ? "draft" : status;
}
}

View File

@@ -0,0 +1,70 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmPayPlan;
import com.klp.hrm.domain.bo.HrmPayPlanBo;
import com.klp.hrm.domain.vo.HrmPayPlanVo;
import com.klp.hrm.mapper.HrmPayPlanMapper;
import com.klp.hrm.service.IHrmPayPlanService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmPayPlanServiceImpl implements IHrmPayPlanService {
private final HrmPayPlanMapper baseMapper;
@Override
public HrmPayPlanVo queryById(Long planId) {
return baseMapper.selectVoById(planId);
}
@Override
public TableDataInfo<HrmPayPlanVo> queryPageList(HrmPayPlanBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmPayPlan> lqw = buildQueryWrapper(bo);
Page<HrmPayPlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmPayPlanVo> queryList(HrmPayPlanBo bo) {
LambdaQueryWrapper<HrmPayPlan> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmPayPlanBo bo) {
HrmPayPlan add = BeanUtil.toBean(bo, HrmPayPlan.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmPayPlanBo bo) {
HrmPayPlan update = BeanUtil.toBean(bo, HrmPayPlan.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmPayPlan> buildQueryWrapper(HrmPayPlanBo bo) {
LambdaQueryWrapper<HrmPayPlan> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPlanId() != null, HrmPayPlan::getPlanId, bo.getPlanId());
lqw.like(bo.getPlanName() != null, HrmPayPlan::getPlanName, bo.getPlanName());
return lqw;
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmPayRun;
import com.klp.hrm.domain.bo.HrmPayRunBo;
import com.klp.hrm.domain.vo.HrmPayRunVo;
import com.klp.hrm.mapper.HrmPayRunMapper;
import com.klp.hrm.service.IHrmPayRunService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmPayRunServiceImpl implements IHrmPayRunService {
private final HrmPayRunMapper baseMapper;
@Override
public HrmPayRunVo queryById(Long runId) {
return baseMapper.selectVoById(runId);
}
@Override
public TableDataInfo<HrmPayRunVo> queryPageList(HrmPayRunBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmPayRun> lqw = buildQueryWrapper(bo);
Page<HrmPayRunVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmPayRunVo> queryList(HrmPayRunBo bo) {
LambdaQueryWrapper<HrmPayRun> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmPayRunBo bo) {
HrmPayRun add = BeanUtil.toBean(bo, HrmPayRun.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmPayRunBo bo) {
HrmPayRun update = BeanUtil.toBean(bo, HrmPayRun.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmPayRun> buildQueryWrapper(HrmPayRunBo bo) {
LambdaQueryWrapper<HrmPayRun> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getRunId() != null, HrmPayRun::getRunId, bo.getRunId());
lqw.like(bo.getPeriod() != null, HrmPayRun::getPeriod, bo.getPeriod());
lqw.eq(bo.getStatus() != null, HrmPayRun::getStatus, bo.getStatus());
lqw.eq(bo.getPlanId() != null, HrmPayRun::getPlanId, bo.getPlanId());
return lqw;
}
}

View File

@@ -0,0 +1,77 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmPayslip;
import com.klp.hrm.domain.bo.HrmPayslipBo;
import com.klp.hrm.domain.vo.HrmPayslipVo;
import com.klp.hrm.mapper.HrmPayslipMapper;
import com.klp.hrm.service.IHrmPayslipService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmPayslipServiceImpl implements IHrmPayslipService {
private final HrmPayslipMapper baseMapper;
@Override
public HrmPayslipVo queryById(Long slipId) {
return baseMapper.selectVoById(slipId);
}
@Override
public TableDataInfo<HrmPayslipVo> queryPageList(HrmPayslipBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmPayslip> lqw = buildQueryWrapper(bo);
Page<HrmPayslipVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmPayslipVo> queryList(HrmPayslipBo bo) {
LambdaQueryWrapper<HrmPayslip> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmPayslipBo bo) {
HrmPayslip add = BeanUtil.toBean(bo, HrmPayslip.class);
add.setStatus(defaultStatus(add.getStatus()));
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmPayslipBo bo) {
HrmPayslip update = BeanUtil.toBean(bo, HrmPayslip.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmPayslip> buildQueryWrapper(HrmPayslipBo bo) {
LambdaQueryWrapper<HrmPayslip> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getSlipId() != null, HrmPayslip::getSlipId, bo.getSlipId());
lqw.eq(bo.getRunId() != null, HrmPayslip::getRunId, bo.getRunId());
lqw.eq(bo.getEmpId() != null, HrmPayslip::getEmpId, bo.getEmpId());
lqw.eq(bo.getStatus() != null, HrmPayslip::getStatus, bo.getStatus());
return lqw;
}
private String defaultStatus(String status) {
return status == null ? "issued" : status;
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmPosition;
import com.klp.hrm.domain.bo.HrmPositionBo;
import com.klp.hrm.domain.vo.HrmPositionVo;
import com.klp.hrm.mapper.HrmPositionMapper;
import com.klp.hrm.service.IHrmPositionService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmPositionServiceImpl implements IHrmPositionService {
private final HrmPositionMapper baseMapper;
@Override
public HrmPositionVo queryById(Long positionId) {
return baseMapper.selectVoById(positionId);
}
@Override
public TableDataInfo<HrmPositionVo> queryPageList(HrmPositionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmPosition> lqw = buildQueryWrapper(bo);
Page<HrmPositionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmPositionVo> queryList(HrmPositionBo bo) {
LambdaQueryWrapper<HrmPosition> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmPositionBo bo) {
HrmPosition add = BeanUtil.toBean(bo, HrmPosition.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmPositionBo bo) {
HrmPosition update = BeanUtil.toBean(bo, HrmPosition.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmPosition> buildQueryWrapper(HrmPositionBo bo) {
LambdaQueryWrapper<HrmPosition> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPositionId() != null, HrmPosition::getPositionId, bo.getPositionId());
lqw.like(bo.getPositionCode() != null, HrmPosition::getPositionCode, bo.getPositionCode());
lqw.like(bo.getPositionName() != null, HrmPosition::getPositionName, bo.getPositionName());
lqw.eq(bo.getGradeId() != null, HrmPosition::getGradeId, bo.getGradeId());
lqw.eq(bo.getStatus() != null, HrmPosition::getStatus, bo.getStatus());
lqw.orderByAsc(HrmPosition::getOrderNum);
return lqw;
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmPunch;
import com.klp.hrm.domain.bo.HrmPunchBo;
import com.klp.hrm.domain.vo.HrmPunchVo;
import com.klp.hrm.mapper.HrmPunchMapper;
import com.klp.hrm.service.IHrmPunchService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmPunchServiceImpl implements IHrmPunchService {
private final HrmPunchMapper baseMapper;
@Override
public HrmPunchVo queryById(Long punchId) {
return baseMapper.selectVoById(punchId);
}
@Override
public TableDataInfo<HrmPunchVo> queryPageList(HrmPunchBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmPunch> lqw = buildQueryWrapper(bo);
Page<HrmPunchVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmPunchVo> queryList(HrmPunchBo bo) {
LambdaQueryWrapper<HrmPunch> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmPunchBo bo) {
HrmPunch add = BeanUtil.toBean(bo, HrmPunch.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmPunchBo bo) {
HrmPunch update = BeanUtil.toBean(bo, HrmPunch.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmPunch> buildQueryWrapper(HrmPunchBo bo) {
LambdaQueryWrapper<HrmPunch> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPunchId() != null, HrmPunch::getPunchId, bo.getPunchId());
lqw.eq(bo.getEmpId() != null, HrmPunch::getEmpId, bo.getEmpId());
lqw.eq(bo.getPunchTime() != null, HrmPunch::getPunchTime, bo.getPunchTime());
lqw.eq(bo.getSource() != null, HrmPunch::getSource, bo.getSource());
return lqw;
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmSchedule;
import com.klp.hrm.domain.bo.HrmScheduleBo;
import com.klp.hrm.domain.vo.HrmScheduleVo;
import com.klp.hrm.mapper.HrmScheduleMapper;
import com.klp.hrm.service.IHrmScheduleService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmScheduleServiceImpl implements IHrmScheduleService {
private final HrmScheduleMapper baseMapper;
@Override
public HrmScheduleVo queryById(Long schedId) {
return baseMapper.selectVoById(schedId);
}
@Override
public TableDataInfo<HrmScheduleVo> queryPageList(HrmScheduleBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmSchedule> lqw = buildQueryWrapper(bo);
Page<HrmScheduleVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmScheduleVo> queryList(HrmScheduleBo bo) {
LambdaQueryWrapper<HrmSchedule> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmScheduleBo bo) {
HrmSchedule add = BeanUtil.toBean(bo, HrmSchedule.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmScheduleBo bo) {
HrmSchedule update = BeanUtil.toBean(bo, HrmSchedule.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmSchedule> buildQueryWrapper(HrmScheduleBo bo) {
LambdaQueryWrapper<HrmSchedule> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getSchedId() != null, HrmSchedule::getSchedId, bo.getSchedId());
lqw.eq(bo.getEmpId() != null, HrmSchedule::getEmpId, bo.getEmpId());
lqw.eq(bo.getWorkDate() != null, HrmSchedule::getWorkDate, bo.getWorkDate());
lqw.eq(bo.getShiftId() != null, HrmSchedule::getShiftId, bo.getShiftId());
return lqw;
}
}

View File

@@ -0,0 +1,212 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.IoUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.exception.ServiceException;
import com.klp.hrm.config.StampProperties;
import com.klp.hrm.domain.HrmSealReq;
import com.klp.hrm.domain.bo.HrmSealReqBo;
import com.klp.hrm.domain.bo.HrmSealStampBo;
import com.klp.hrm.domain.bo.HrmFlowStartBo;
import com.klp.hrm.domain.vo.HrmSealReqVo;
import com.klp.hrm.mapper.HrmSealReqMapper;
import com.klp.hrm.service.IHrmFlowInstanceService;
import com.klp.hrm.service.IHrmSealReqService;
import com.klp.oss.core.OssClient;
import com.klp.oss.entity.UploadResult;
import com.klp.oss.factory.OssFactory;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Collection;
import java.util.List;
/**
* 用印申请 服务实现
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class HrmSealReqServiceImpl implements IHrmSealReqService {
private final HrmSealReqMapper baseMapper;
private final StampProperties stampProperties;
private final IHrmFlowInstanceService flowInstanceService;
@Override
public HrmSealReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
}
@Override
public TableDataInfo<HrmSealReqVo> queryPageList(HrmSealReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmSealReq> lqw = buildQueryWrapper(bo);
Page<HrmSealReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmSealReqVo> queryList(HrmSealReqBo bo) {
LambdaQueryWrapper<HrmSealReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmSealReqBo bo) {
HrmSealReq add = BeanUtil.toBean(bo, HrmSealReq.class);
add.setStatus(defaultStatus(add.getStatus()));
validEntityBeforeSave(add);
boolean ok = baseMapper.insert(add) > 0;
// 提交即发起流程(可选)
if (ok && bo.getFlowTplId() != null) {
HrmFlowStartBo start = new HrmFlowStartBo();
start.setTplId(bo.getFlowTplId());
start.setBizType("seal");
start.setBizId(add.getBizId());
start.setStartUserId(bo.getStartUserId());
start.setContentJson(bo.getContentJson());
flowInstanceService.startInstance(start);
// 更新状态为流转中
updateStatus(add.getBizId(), "running");
}
return ok;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmSealReqBo bo) {
if (bo.getBizId() == null) {
throw new ServiceException("bizId不能为空");
}
HrmSealReq update = BeanUtil.toBean(bo, HrmSealReq.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
// 可添加业务校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateStatus(Long bizId, String status) {
HrmSealReq req = new HrmSealReq();
req.setBizId(bizId);
req.setStatus(status);
return baseMapper.updateById(req) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String stampWithJava(Long bizId, HrmSealStampBo cmd) {
if (!Boolean.TRUE.equals(stampProperties.getJavaService().getEnabled())) {
throw new ServiceException("Java盖章未启用");
}
String resultUrl = doPdfStamp(cmd);
// 更新回执状态/附件占位
HrmSealReq update = new HrmSealReq();
update.setBizId(bizId);
update.setReceiptStatus("done");
update.setReceiptFileIds(resultUrl);
baseMapper.updateById(update);
return resultUrl;
}
@Override
public String stampWithPython(Long bizId, HrmSealStampBo cmd) {
if (!Boolean.TRUE.equals(stampProperties.getPythonService().isEnabled())) {
throw new ServiceException("Python盖章未启用");
}
// TODO: 调用外部Python服务用户未提供接口保留占位
throw new ServiceException("Python盖章接口未实现");
}
private LambdaQueryWrapper<HrmSealReq> buildQueryWrapper(HrmSealReqBo bo) {
LambdaQueryWrapper<HrmSealReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmSealReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmSealReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getSealType() != null, HrmSealReq::getSealType, bo.getSealType());
lqw.eq(bo.getStatus() != null, HrmSealReq::getStatus, bo.getStatus());
lqw.orderByDesc(HrmSealReq::getCreateTime);
return lqw;
}
private void validEntityBeforeSave(HrmSealReq entity) {
// 预留数据校验,如唯一约束
}
private String defaultStatus(String status) {
return status == null ? "draft" : status;
}
private String doPdfStamp(HrmSealStampBo cmd) {
try (InputStream pdfIn = getObject(cmd.getTargetFileUrl());
InputStream imgIn = getObject(cmd.getStampImageUrl());
PDDocument document = PDDocument.load(pdfIn);
ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
int pageIndex = cmd.getPageNo() - 1;
if (pageIndex < 0 || pageIndex >= document.getNumberOfPages()) {
throw new ServiceException("页码超出范围");
}
PDPage page = document.getPage(pageIndex);
PDRectangle mediaBox = page.getMediaBox();
byte[] imgBytes = IoUtil.readBytes(imgIn);
PDImageXObject image = PDImageXObject.createFromByteArray(document, imgBytes, "stamp");
float width = cmd.getWidthPx() != null ? cmd.getWidthPx() : image.getWidth();
float height = cmd.getHeightPx() != null ? cmd.getHeightPx() : image.getHeight();
float x = cmd.getXPx();
float y = cmd.getYPx();
// 保证不越界
if (x + width > mediaBox.getWidth()) {
width = mediaBox.getWidth() - x;
}
if (y + height > mediaBox.getHeight()) {
height = mediaBox.getHeight() - y;
}
try (PDPageContentStream contentStream = new PDPageContentStream(document, page,
PDPageContentStream.AppendMode.APPEND, true, true)) {
contentStream.drawImage(image, x, y, width, height);
}
document.save(bos);
OssClient storage = OssFactory.instance();
UploadResult uploadResult = storage.uploadSuffix(bos.toByteArray(), ".pdf", "application/pdf");
return uploadResult.getUrl();
} catch (ServiceException se) {
throw se;
} catch (Exception e) {
log.error("PDF盖章失败", e);
throw new ServiceException("PDF盖章失败: " + e.getMessage());
}
}
private InputStream getObject(String url) {
OssClient storage = OssFactory.instance();
return storage.getObjectContent(url);
}
}

View File

@@ -0,0 +1,72 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmShift;
import com.klp.hrm.domain.bo.HrmShiftBo;
import com.klp.hrm.domain.vo.HrmShiftVo;
import com.klp.hrm.mapper.HrmShiftMapper;
import com.klp.hrm.service.IHrmShiftService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmShiftServiceImpl implements IHrmShiftService {
private final HrmShiftMapper baseMapper;
@Override
public HrmShiftVo queryById(Long shiftId) {
return baseMapper.selectVoById(shiftId);
}
@Override
public TableDataInfo<HrmShiftVo> queryPageList(HrmShiftBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmShift> lqw = buildQueryWrapper(bo);
Page<HrmShiftVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmShiftVo> queryList(HrmShiftBo bo) {
LambdaQueryWrapper<HrmShift> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmShiftBo bo) {
HrmShift add = BeanUtil.toBean(bo, HrmShift.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmShiftBo bo) {
HrmShift update = BeanUtil.toBean(bo, HrmShift.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmShift> buildQueryWrapper(HrmShiftBo bo) {
LambdaQueryWrapper<HrmShift> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getShiftId() != null, HrmShift::getShiftId, bo.getShiftId());
lqw.like(bo.getShiftCode() != null, HrmShift::getShiftCode, bo.getShiftCode());
lqw.like(bo.getShiftName() != null, HrmShift::getShiftName, bo.getShiftName());
lqw.eq(bo.getIsNight() != null, HrmShift::getIsNight, bo.getIsNight());
return lqw;
}
}

View File

@@ -0,0 +1,71 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmStatSnapshot;
import com.klp.hrm.domain.bo.HrmStatSnapshotBo;
import com.klp.hrm.domain.vo.HrmStatSnapshotVo;
import com.klp.hrm.mapper.HrmStatSnapshotMapper;
import com.klp.hrm.service.IHrmStatSnapshotService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmStatSnapshotServiceImpl implements IHrmStatSnapshotService {
private final HrmStatSnapshotMapper baseMapper;
@Override
public HrmStatSnapshotVo queryById(Long snapId) {
return baseMapper.selectVoById(snapId);
}
@Override
public TableDataInfo<HrmStatSnapshotVo> queryPageList(HrmStatSnapshotBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmStatSnapshot> lqw = buildQueryWrapper(bo);
Page<HrmStatSnapshotVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmStatSnapshotVo> queryList(HrmStatSnapshotBo bo) {
LambdaQueryWrapper<HrmStatSnapshot> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmStatSnapshotBo bo) {
HrmStatSnapshot add = BeanUtil.toBean(bo, HrmStatSnapshot.class);
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmStatSnapshotBo bo) {
HrmStatSnapshot update = BeanUtil.toBean(bo, HrmStatSnapshot.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmStatSnapshot> buildQueryWrapper(HrmStatSnapshotBo bo) {
LambdaQueryWrapper<HrmStatSnapshot> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getSnapId() != null, HrmStatSnapshot::getSnapId, bo.getSnapId());
lqw.eq(bo.getStatDate() != null, HrmStatSnapshot::getStatDate, bo.getStatDate());
lqw.eq(bo.getStatType() != null, HrmStatSnapshot::getStatType, bo.getStatType());
return lqw;
}
}

View File

@@ -0,0 +1,77 @@
package com.klp.hrm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.hrm.domain.HrmTravelReq;
import com.klp.hrm.domain.bo.HrmTravelReqBo;
import com.klp.hrm.domain.vo.HrmTravelReqVo;
import com.klp.hrm.mapper.HrmTravelReqMapper;
import com.klp.hrm.service.IHrmTravelReqService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@RequiredArgsConstructor
@Service
public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
private final HrmTravelReqMapper baseMapper;
@Override
public HrmTravelReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
}
@Override
public TableDataInfo<HrmTravelReqVo> queryPageList(HrmTravelReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmTravelReq> lqw = buildQueryWrapper(bo);
Page<HrmTravelReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<HrmTravelReqVo> queryList(HrmTravelReqBo bo) {
LambdaQueryWrapper<HrmTravelReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(HrmTravelReqBo bo) {
HrmTravelReq add = BeanUtil.toBean(bo, HrmTravelReq.class);
add.setStatus(defaultStatus(add.getStatus()));
return baseMapper.insert(add) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(HrmTravelReqBo bo) {
HrmTravelReq update = BeanUtil.toBean(bo, HrmTravelReq.class);
return baseMapper.updateById(update) > 0;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
return baseMapper.deleteBatchIds(ids) > 0;
}
private LambdaQueryWrapper<HrmTravelReq> buildQueryWrapper(HrmTravelReqBo bo) {
LambdaQueryWrapper<HrmTravelReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmTravelReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmTravelReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getStatus() != null, HrmTravelReq::getStatus, bo.getStatus());
lqw.eq(bo.getStartTime() != null, HrmTravelReq::getStartTime, bo.getStartTime());
return lqw;
}
private String defaultStatus(String status) {
return status == null ? "draft" : status;
}
}