Merge branch 'feature/qt' into develop
This commit is contained in:
commit
9b7f1e69b3
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue