核算基础公式

This commit is contained in:
钱涛 2022-04-11 20:46:25 +08:00
parent a069447f02
commit 43d97d87b3
11 changed files with 33 additions and 120 deletions

View File

@ -2,7 +2,7 @@ package com.engine.salary.biz;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.mapper.salarysob.SalarySobMapper;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
@ -11,7 +11,7 @@ import java.util.List;
public class SalarySobBiz {
public SalarySobPO getById(Long id) {
SalarySobMapper mapper = SqlProxyHandle.getProxy(SalarySobMapper.class);
SalarySobMapper mapper = MapperProxyFactory.getProxy(SalarySobMapper.class);
return mapper.getById(id);
}

View File

@ -20,7 +20,7 @@ import com.engine.salary.mapper.datacollection.AttendQuoteFieldMapper;
import com.engine.salary.service.*;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import com.weaver.excel.formula.api.entity.FormulaVar;
import org.apache.commons.collections4.CollectionUtils;
@ -43,7 +43,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
// private SIAccountService siAccountService;
private AttendQuoteFieldMapper getAttendQuoteFieldMapper() {
return SqlProxyHandle.getProxy(AttendQuoteFieldMapper.class);
return MapperProxyFactory.getProxy(AttendQuoteFieldMapper.class);
}

View File

@ -19,7 +19,7 @@ import com.engine.salary.service.*;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.PageUtil;
import com.engine.salary.util.valid.ValidUtil;
@ -45,7 +45,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
private SalaryAcctEmployeeMapper salaryAcctEmployeeMapper;
private SalaryAcctEmployeeMapper getSalaryAcctEmployeeMapper() {
return SqlProxyHandle.getProxy(SalaryAcctEmployeeMapper.class);
return MapperProxyFactory.getProxy(SalaryAcctEmployeeMapper.class);
}
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {

View File

@ -21,7 +21,7 @@ import com.engine.salary.service.SalarySobService;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.PageUtil;
import com.engine.salary.util.valid.ValidUtil;
@ -46,7 +46,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
private SalaryAcctRecordMapper getSalaryAcctRecordMapper() {
return SqlProxyHandle.getProxy(SalaryAcctRecordMapper.class);
return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class);
}
private SalarySobService getSalarySobService(User user) {

View File

@ -4,7 +4,7 @@ import com.engine.core.impl.Service;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultTempPO;
import com.engine.salary.mapper.salaryacct.SalaryAcctResultTempMapper;
import com.engine.salary.service.SalaryAcctResultTempService;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -23,7 +23,7 @@ import java.util.List;
public class SalaryAcctResultTempServiceImpl extends Service implements SalaryAcctResultTempService {
private SalaryAcctResultTempMapper getSalaryAcctResultTempMapper(){
return SqlProxyHandle.getProxy(SalaryAcctResultTempMapper.class);
return MapperProxyFactory.getProxy(SalaryAcctResultTempMapper.class);
}

View File

@ -17,7 +17,7 @@ import com.engine.salary.mapper.archive.SalaryArchiveMapper;
import com.engine.salary.mapper.archive.SalaryArchiveTaxAgentMapper;
import com.engine.salary.service.SalaryArchiveTaxAgentService;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelUtil;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.PageUtil;
@ -43,7 +43,7 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA
private static final Logger log = LoggerFactory.getLogger(SalaryArchiveTaxAgentServiceImpl.class);
private SalaryArchiveTaxAgentMapper getSalaryArchiveTaxAgentMapper() {
return SqlProxyHandle.getProxy(SalaryArchiveTaxAgentMapper.class);
return MapperProxyFactory.getProxy(SalaryArchiveTaxAgentMapper.class);
}
private TaxAgentBiz taxAgentService = new TaxAgentBiz();
@ -97,7 +97,7 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA
SalaryArchiveTaxAgentSaveParam.checkParam(saveParam);
// 薪资档案
SalaryArchiveMapper salaryArchiveMapper = SqlProxyHandle.getProxy(SalaryArchiveMapper.class);
SalaryArchiveMapper salaryArchiveMapper = MapperProxyFactory.getProxy(SalaryArchiveMapper.class);
SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(saveParam.getSalaryArchiveId());
// 获取当前已生效
SalaryArchiveTaxAgentPO effectiveTaxAgent = getEffectiveTaxAgent(saveParam.getSalaryArchiveId());

View File

@ -11,7 +11,7 @@ import com.engine.salary.mapper.salarysob.SalarySobAdjustRuleMapper;
import com.engine.salary.mapper.salarysob.SalarySobMapper;
import com.engine.salary.service.SalarySobAdjustRuleService;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.SalarySqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.valid.ValidUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.ibatis.session.SqlSession;
@ -54,7 +54,7 @@ public class SalarySobAdjustRuleServiceImpl extends Service implements SalarySob
//开启事务
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalarySobMapper salarySobMapper = SalarySqlProxyHandle.getProxy(SalarySobMapper.class, sqlSession);
SalarySobMapper salarySobMapper = MapperProxyFactory.getProxy(SalarySobMapper.class);
// 查询薪资账套
SalarySobPO salarySobPO = salarySobMapper.getById(saveParam.getSalarySobId());
@ -62,7 +62,7 @@ public class SalarySobAdjustRuleServiceImpl extends Service implements SalarySob
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除"));
}
// 删除之前的调薪计薪规则
SalarySobAdjustRuleMapper salarySobAdjustRuleMapper = SalarySqlProxyHandle.getProxy(SalarySobAdjustRuleMapper.class, sqlSession);
SalarySobAdjustRuleMapper salarySobAdjustRuleMapper = MapperProxyFactory.getProxy(SalarySobAdjustRuleMapper.class);
salarySobAdjustRuleMapper.deleteBySalarySobIds(Collections.singleton(saveParam.getSalarySobId()));
// 保存参数转换成薪资账套的调薪计薪规则po
List<SalarySobAdjustRulePO> salarySobAdjustRulePOS = SalarySobAdjustRuleBO.convert2PO(saveParam, (long)user.getUID());

View File

@ -7,7 +7,7 @@ import com.engine.salary.entity.taxrate.TaxRateBase;
import com.engine.salary.mapper.SysTaxRateBaseMapper;
import com.engine.salary.mapper.TaxRateBaseMapper;
import com.engine.salary.service.TaxRateBaseService;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.springframework.beans.BeanUtils;
@ -20,12 +20,12 @@ public class TaxRateBaseServiceImpl extends Service implements TaxRateBaseServic
private SysTaxRateBaseMapper getSysTaxRateBaseMapper(){
return SqlProxyHandle.getProxy(SysTaxRateBaseMapper.class);
return MapperProxyFactory.getProxy(SysTaxRateBaseMapper.class);
}
private TaxRateBaseMapper getTaxRateBaseMapper(){
return SqlProxyHandle.getProxy(TaxRateBaseMapper.class);
return MapperProxyFactory.getProxy(TaxRateBaseMapper.class);
}
@Override

View File

@ -6,7 +6,7 @@ import com.engine.salary.entity.taxrate.TaxRateDetail;
import com.engine.salary.mapper.SysTaxRateDetailMapper;
import com.engine.salary.mapper.TaxRateDetailMapper;
import com.engine.salary.service.TaxRateDetailService;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.db.MapperProxyFactory;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
@ -25,11 +25,11 @@ import java.util.stream.Collectors;
public class TaxRateDetailServiceImpl extends Service implements TaxRateDetailService {
private TaxRateDetailMapper getTaxRateDetailMapper(){
return SqlProxyHandle.getProxy(TaxRateDetailMapper.class);
return MapperProxyFactory.getProxy(TaxRateDetailMapper.class);
}
private SysTaxRateDetailMapper getSysTaxRateDetailMapper(){
return SqlProxyHandle.getProxy(SysTaxRateDetailMapper.class);
return MapperProxyFactory.getProxy(SysTaxRateDetailMapper.class);
}

View File

@ -10,16 +10,13 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* @author zhangjian
* @date 2017-8-25 下午5:41:17
*/
public class SqlProxyHandle implements InvocationHandler {
public class MapperProxyFactory implements InvocationHandler {
private Class clazz;
private boolean isAutoCommit = true;
private boolean enableTransactions = false;
private SqlSession session;
public SqlProxyHandle(Class clazz) {
public MapperProxyFactory(Class clazz) {
this.clazz = clazz;
}
@ -28,12 +25,11 @@ public class SqlProxyHandle implements InvocationHandler {
if (this.session == null) {
this.session = MyBatisFactory.sqlSessionFactory.openSession();
}
// System.out.println(MyBatisFactory.getSql(this.clazz, method.getName(), args[0]));
try {
Object target = session.getMapper(clazz);
return method.invoke(target, args);
} finally {
if (isAutoCommit) {
if (!enableTransactions) {
session.commit();
session.close();
}
@ -41,7 +37,7 @@ public class SqlProxyHandle implements InvocationHandler {
}
public Object getProxy() {
if (!isAutoCommit)
if (enableTransactions)
this.session = MyBatisFactory.sqlSessionFactory.openSession();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?>[] interfaces = new Class<?>[1];
@ -50,7 +46,7 @@ public class SqlProxyHandle implements InvocationHandler {
}
public Object getProxy(boolean isAutoCommit) {
this.isAutoCommit = isAutoCommit;
this.enableTransactions = isAutoCommit;
return this.getProxy();
}
@ -69,12 +65,12 @@ public class SqlProxyHandle implements InvocationHandler {
}
public static <T> T getProxy(Class<T> clazz) {
SqlProxyHandle handle = new SqlProxyHandle(clazz);
MapperProxyFactory handle = new MapperProxyFactory(clazz);
return (T) handle.getProxy();
}
public static <T> T getProxy(Class<T> clazz, boolean isAutoSubmit) {
SqlProxyHandle handle = new SqlProxyHandle(clazz);
return (T) handle.getProxy(isAutoSubmit);
public static <T> T getProxy(Class<T> clazz, boolean enableTransactions) {
MapperProxyFactory handle = new MapperProxyFactory(clazz);
return (T) handle.getProxy(enableTransactions);
}
}

View File

@ -1,83 +0,0 @@
package com.engine.salary.util.db;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class SalarySqlProxyHandle implements InvocationHandler {
private Class clazz;
private boolean enableTransactions = false;
private SqlSession session;
public SalarySqlProxyHandle() {
}
public SalarySqlProxyHandle(Class clazz) {
this.clazz = clazz;
}
public SalarySqlProxyHandle(Class clazz, boolean enableTransactions) {
this.clazz = clazz;
this.enableTransactions = enableTransactions;
}
public SalarySqlProxyHandle(Class clazz, boolean enableTransactions, SqlSession session) {
this.clazz = clazz;
this.enableTransactions = enableTransactions;
this.session = session;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Exception {
if (this.session == null) {
this.session = MyBatisFactory.sqlSessionFactory.openSession();
}
try {
Object target = session.getMapper(clazz);
Object invoke = method.invoke(target, args);
if (!enableTransactions) {
session.commit();
}
return invoke;
} finally {
if (!enableTransactions) {
this.session.close();
}
}
}
public Object getProxy() {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?>[] interfaces = new Class<?>[1];
interfaces[0] = this.clazz;
return Proxy.newProxyInstance(loader, interfaces, this);
}
public void commit() {
if (this.session != null) {
this.session.commit();
this.session.close();
}
}
public void rollback() {
if (this.session != null) {
this.session.rollback();
this.session.close();
}
}
public static <T> T getProxy(Class<T> clazz) {
SalarySqlProxyHandle handle = new SalarySqlProxyHandle(clazz);
return (T) handle.getProxy();
}
public static <T> T getProxy(Class<T> clazz, SqlSession sqlSession) {
SalarySqlProxyHandle handle = new SalarySqlProxyHandle(clazz, true, sqlSession);
return (T) handle.getProxy();
}
}