package com.engine.salary.biz; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.dto.AddUpDeductionDTO; import com.engine.salary.entity.datacollection.dto.AddUpDeductionRecordDTO; import com.engine.salary.entity.datacollection.param.AddUpDeductionQueryParam; import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; import weaver.general.BaseBean; import java.util.ArrayList; import java.util.List; public class AddUpDeductionBiz extends BaseBean { private final EncryptUtil encryptUtil = new EncryptUtil(); /** * 关联查询查询列表 * * @param param * @return */ public List list(AddUpDeductionQueryParam param) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List list = mapper.list(param); encryptUtil.decryptList(list, AddUpDeductionDTO.class); SalaryI18nUtil.i18nList(list); return list; } finally { sqlSession.close(); } } /** * 条件查询 * * @param param * @return */ public List listSome(AddUpDeduction param) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); if (CollectionUtils.isNotEmpty(param.getEmployeeIds())) { List addUpDeductions = new ArrayList<>(); List> partition = Lists.partition(param.getEmployeeIds(), 500); partition.forEach(l -> { param.setEmployeeIds(l); addUpDeductions.addAll(mapper.listSome(param)); }); return encryptUtil.decryptList(addUpDeductions, AddUpDeduction.class); } else { List addUpDeductions = mapper.listSome(param); return encryptUtil.decryptList(addUpDeductions, AddUpDeduction.class); } } finally { sqlSession.close(); } } /** * 根据id获取 * * @param id * @return */ public AddUpDeduction getById(Long id) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); AddUpDeduction byId = mapper.getById(id); return encryptUtil.decrypt(byId, AddUpDeduction.class); } finally { sqlSession.close(); } } /** * 详情列表 * * @param param * @return */ public List recordList(AddUpDeductionQueryParam param) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List addUpDeductionRecordStrDTOS = mapper.recordList(param); encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); SalaryI18nUtil.i18nList(addUpDeductionRecordStrDTOS); return addUpDeductionRecordStrDTOS; } finally { sqlSession.close(); } } /** * 批量插入 * * @param param * @return */ public void batchSave(List param) { if (CollectionUtils.isEmpty(param)) { return; } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); encryptUtil.encryptList(param, AddUpDeduction.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::insertData); sqlSession.commit(); } finally { sqlSession.close(); } } /** * 批量插入 * * @param param * @return */ public void batchUpdate(List param) { if (CollectionUtils.isEmpty(param)) { return; } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); encryptUtil.encryptList(param, AddUpDeduction.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::updateData); sqlSession.commit(); } finally { sqlSession.close(); } } public void batchDeleteByIDS(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List> partition = Lists.partition(ids, 100); partition.forEach(mapper::deleteData); sqlSession.commit(); } finally { sqlSession.close(); } } }