package com.engine.salary.biz; import com.engine.salary.entity.salaryBill.dto.SalaryMySalaryBillListDTO; import com.engine.salary.entity.salaryBill.dto.SalarySendDetailListDTO; import com.engine.salary.entity.salaryBill.dto.SalarySendInfoListDTO; import com.engine.salary.entity.salaryBill.param.SalaryBillQueryParam; import com.engine.salary.entity.salaryBill.param.SalarySendDetailQueryParam; import com.engine.salary.entity.salaryBill.param.SalarySendInfoQueryParam; import com.engine.salary.entity.salaryBill.po.SalarySendInfoPO; import com.engine.salary.mapper.salarybill.SalarySendInfoMapper; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; public class SalarySendInfoBiz { /** * 查询工资单发放信息列表 */ public List list(SalarySendInfoQueryParam param) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); return mapper.list(param); } finally { sqlSession.close(); } } /** * 工资单发放 * * @param po * @param salarySendId * @param statusList * @param ids */ public void updateGrantWithdraw(SalarySendInfoPO po, Long salarySendId, List statusList, Collection ids) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); mapper.updateGrantWithdraw(po, salarySendId, statusList, ids); sqlSession.commit(); } finally { sqlSession.close(); } } /** * 根据现有字段查询 * * @param params * @return */ public List listSome(@Param("param") SalarySendInfoPO params) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); return mapper.listSome(params); } finally { sqlSession.close(); } } public void updateById(SalarySendInfoPO po) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); mapper.updateIgnoreNull(po); sqlSession.commit(); } finally { sqlSession.close(); } } /** * 工资单发放详情列表 * * @param param * @param otherSalaryAccRecordIds * @return */ public List detailList(@Param("param") SalarySendDetailQueryParam param, @Param("otherSalaryAccRecordIds") Set otherSalaryAccRecordIds) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); return mapper.detailList(param, otherSalaryAccRecordIds); } finally { sqlSession.close(); } } /** * 我的工资单列表详情 * * @param queryParam * @return */ public List mySalaryBillList(SalaryBillQueryParam queryParam) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); return mapper.mySalaryBillList(queryParam); } finally { sqlSession.close(); } } public void batchInsert(List salarySendInfos) { if (CollectionUtils.isEmpty(salarySendInfos)) { return; } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); List> partition = Lists.partition(salarySendInfos, 100); partition.forEach(mapper::batchInsert); sqlSession.commit(); } finally { sqlSession.close(); } } public List listSalaryAccRecordIds(SalarySendDetailQueryParam queryParam) { if (null == queryParam) { return Collections.emptyList(); } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySendInfoMapper mapper = sqlSession.getMapper(SalarySendInfoMapper.class); return mapper.listSalaryAccRecordIds(queryParam); } finally { sqlSession.close(); } } }