Merge branch 'feature/qt' into develop

This commit is contained in:
钱涛 2022-04-06 13:23:20 +08:00
commit 9b7f1e69b3
5 changed files with 87 additions and 10 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.SalarySqlProxyHandle;
import com.engine.salary.util.db.SqlProxyHandle;
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 = SalarySqlProxyHandle.getProxy(SalarySobMapper.class);
SalarySobMapper mapper = SqlProxyHandle.getProxy(SalarySobMapper.class);
return mapper.getById(id);
}

View File

@ -232,12 +232,14 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
public String deleteSalaryItem(Long salaryArchiveItemId) {
SalaryArchiveItemPO salaryArchiveItem = salaryArchiveItemMapper.getById(salaryArchiveItemId);
if (salaryArchiveItem == null) {
return StringUtils.EMPTY;
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "参数错误,薪资项目不存在或已被删除"));
}
if (salaryArchiveItem.getEffectiveTime().after(new Date())) {
salaryArchiveItem.setDeleteType(1);
// 删除未生效数据
salaryArchiveItemMapper.updateById(salaryArchiveItem);
}else{
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "该薪资项目已生效不可删除"));
}
return StringUtils.EMPTY;
}

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.SalarySqlProxyHandle;
import com.engine.salary.util.db.SqlProxyHandle;
import com.engine.salary.util.excel.ExcelUtil;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.PageUtil;
@ -41,8 +41,8 @@ import java.util.*;
**/
public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryArchiveTaxAgentService {
private static final Logger log = LoggerFactory.getLogger(SalaryArchiveTaxAgentServiceImpl.class);
private SalaryArchiveMapper salaryArchiveMapper = SalarySqlProxyHandle.getProxy(SalaryArchiveMapper.class);
private SalaryArchiveTaxAgentMapper salaryArchiveTaxAgentMapper = SalarySqlProxyHandle.getProxy(SalaryArchiveTaxAgentMapper.class);
private SalaryArchiveMapper salaryArchiveMapper = SqlProxyHandle.getProxy(SalaryArchiveMapper.class);
private SalaryArchiveTaxAgentMapper salaryArchiveTaxAgentMapper = SqlProxyHandle.getProxy(SalaryArchiveTaxAgentMapper.class);
private TaxAgentBiz taxAgentService = new TaxAgentBiz();
// private SalaryBatchService salaryBatchService;
@ -83,16 +83,19 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA
*/
@Override
public SalaryArchiveTaxAgentPO getEffectiveTaxAgent(Long salaryArchiveId) {
SalaryArchiveTaxAgentMapper salaryArchiveTaxAgentMapper = SqlProxyHandle.getProxy(SalaryArchiveTaxAgentMapper.class);
List<SalaryArchiveTaxAgentPO> effectiveTaxAgentList = salaryArchiveTaxAgentMapper.getEffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam.builder().salaryArchiveId(salaryArchiveId).effectiveTime(new Date()).build());
return CollectionUtils.isNotEmpty(effectiveTaxAgentList) ? effectiveTaxAgentList.get(0) : null;
}
@Override
public String saveTaxAgent(SalaryArchiveTaxAgentSaveParam saveParam) {
// 校验参数
SalaryArchiveTaxAgentSaveParam.checkParam(saveParam);
// 薪资档案
SalaryArchiveMapper salaryArchiveMapper = SqlProxyHandle.getProxy(SalaryArchiveMapper.class);
SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(saveParam.getSalaryArchiveId());
// 获取当前已生效
SalaryArchiveTaxAgentPO effectiveTaxAgent = getEffectiveTaxAgent(saveParam.getSalaryArchiveId());

View File

@ -7,7 +7,7 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class SalarySqlProxyHandle<T> implements InvocationHandler {
public class SalarySqlProxyHandle implements InvocationHandler {
private Class clazz;
private boolean enableTransactions = false;
private SqlSession session;
@ -44,16 +44,16 @@ public class SalarySqlProxyHandle<T> implements InvocationHandler {
return invoke;
} finally {
if (!enableTransactions) {
session.close();
this.session.close();
}
}
}
public T getProxy() {
public Object getProxy() {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?>[] interfaces = new Class<?>[1];
interfaces[0] = this.clazz;
return (T) Proxy.newProxyInstance(loader, interfaces, this);
return Proxy.newProxyInstance(loader, interfaces, this);
}

View File

@ -0,0 +1,72 @@
/**
*
*/
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;
/**
* @author zhangjian
* @date 2017-8-25 下午5:41:17
*/
public class SqlProxyHandle implements InvocationHandler{
private Class clazz;
private boolean isAutoCommit = true;
private SqlSession session;
public SqlProxyHandle(Class clazz) {
this.clazz = clazz;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Exception {
if(isAutoCommit) {
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) {
session.commit();
session.close();
}
}
}
public Object getProxy() {
if(!isAutoCommit)
this.session = MyBatisFactory.sqlSessionFactory.openSession();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?>[] interfaces = new Class<?>[1];
interfaces[0] = this.clazz;
return Proxy.newProxyInstance(loader, interfaces, this);
}
public Object getProxy(boolean isAutoCommit) {
this.isAutoCommit = isAutoCommit;
return this.getProxy();
}
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) {
SqlProxyHandle handle = new SqlProxyHandle(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);
}
}