提交 57c6cc0f 编写于 作者: L luojing

修复多人同时打卡时后台更新数据锁死

上级 3a6187dc
package com.x.attendance.assemble.control;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
/**
......
......@@ -5,11 +5,9 @@ import com.x.attendance.assemble.control.service.*;
import com.x.attendance.entity.AttendanceStatisticRequireLog;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.attendance.entity.AttendanceWorkDayConfig;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.queue.AbstractQueue;
import net.sf.ehcache.Ehcache;
import java.util.List;
import java.util.Map;
......@@ -28,7 +26,6 @@ public class QueueAttendanceDetailStatistic extends AbstractQueue<String> {
AttendanceStatisticalCycleServiceAdv statisticalCycleServiceAdv = new AttendanceStatisticalCycleServiceAdv();
AttendanceStatisticRequireLog log = statisticRequireLogServiceAdv.get(logId);
Ehcache cache = ApplicationCache.instance().getCache( AttendanceStatisticalCycle.class);
if( log != null ){
logger.debug("system try to statistic attendance detail, logId:" + logId );
AttendanceStatisticalCycle attendanceStatisticalCycle = null;
......
......@@ -7,13 +7,9 @@ import com.x.attendance.assemble.control.service.AttendanceWorkDayConfigServiceA
import com.x.attendance.entity.AttendanceDetail;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.attendance.entity.AttendanceWorkDayConfig;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.queue.AbstractQueue;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import java.util.List;
import java.util.Map;
......
......@@ -5,7 +5,6 @@ import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -14,7 +14,6 @@ import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.bean.WrapCopierFactory;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -3,13 +3,11 @@ package com.x.attendance.assemble.control.jaxrs.attendancestatisticalcycle;
import com.x.attendance.assemble.common.date.DateOperation;
import com.x.attendance.assemble.control.service.UserManagerService;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.Cache;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import net.sf.ehcache.Ehcache;
public class BaseAction extends StandardJaxrsAction{
protected Ehcache cache = ApplicationCache.instance().getCache( AttendanceStatisticalCycle.class);
protected Cache.CacheCategory cache = new Cache.CacheCategory( AttendanceStatisticalCycle.class);
protected UserManagerService userManagerService = new UserManagerService();
protected DateOperation dateOperation = new DateOperation();
......
......@@ -2,12 +2,10 @@ package com.x.attendance.assemble.control.jaxrs.attendanceworkdayconfig;
import javax.servlet.http.HttpServletRequest;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.attendance.entity.AttendanceWorkDayConfig;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -14,7 +14,6 @@ import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.bean.WrapCopierFactory;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -7,11 +7,9 @@ import javax.servlet.http.HttpServletRequest;
import com.x.attendance.assemble.control.ThisApplication;
import com.x.attendance.entity.AttendanceSelfHoliday;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -10,7 +10,6 @@ import com.x.attendance.entity.AttendanceSelfHoliday;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......
......@@ -4,16 +4,11 @@ import com.google.gson.JsonElement;
import com.x.attendance.assemble.control.ExceptionWrapInConvert;
import com.x.attendance.assemble.control.ThisApplication;
import com.x.attendance.entity.AttendanceSelfHoliday;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.AbstractPersistenceProperties;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.annotation.CheckPersist;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.CacheManager;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
......@@ -25,13 +20,9 @@ import com.x.base.core.project.organization.Unit;
import com.x.base.core.project.tools.ListTools;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.Column;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class ActionSave extends BaseAction {
......
......@@ -5,14 +5,12 @@ import com.x.attendance.assemble.control.service.AttendanceSelfHolidayServiceAdv
import com.x.attendance.assemble.control.service.AttendanceStatisticalCycleServiceAdv;
import com.x.attendance.assemble.control.service.UserManagerService;
import com.x.attendance.entity.AttendanceSelfHoliday;
import com.x.attendance.entity.AttendanceStatisticalCycle;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.cache.Cache;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import net.sf.ehcache.Ehcache;
public class BaseAction extends StandardJaxrsAction{
protected Ehcache cache = ApplicationCache.instance().getCache( AttendanceSelfHoliday.class);
protected Cache.CacheCategory cache = new Cache.CacheCategory( AttendanceSelfHoliday.class);
protected UserManagerService userManagerService = new UserManagerService();
protected AttendanceStatisticalCycleServiceAdv attendanceStatisticCycleServiceAdv = new AttendanceStatisticalCycleServiceAdv();
protected AttendanceDetailAnalyseServiceAdv attendanceDetailAnalyseServiceAdv = new AttendanceDetailAnalyseServiceAdv();
......
......@@ -7,16 +7,12 @@ import java.util.List;
import java.util.Map;
import com.x.attendance.assemble.control.ThisApplication;
import com.x.base.core.project.cache.ApplicationCache;
import com.x.base.core.project.tools.ListTools;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import org.apache.commons.lang3.StringUtils;
import com.x.attendance.assemble.common.date.DateOperation;
import com.x.attendance.assemble.control.Business;
import com.x.attendance.assemble.control.factory.AttendanceStatisticRequireLogFactory;
import com.x.attendance.assemble.control.jaxrs.attendancedetail.AttendanceCycles;
import com.x.attendance.entity.AttendanceDetail;
import com.x.attendance.entity.AttendanceScheduleSetting;
import com.x.attendance.entity.AttendanceSelfHoliday;
......
......@@ -307,6 +307,7 @@ public class AttendanceDetailServiceAdv {
}
if( detail_old == null ) {
detail.setBatchName( "FromMobile_" + dateOperation.getNowTimeChar() );
detail.setRecordStatus(1);
emc.beginTransaction( AttendanceDetail.class );
emc.persist( detail , CheckPersistType.all );
emc.commit();
......@@ -314,15 +315,17 @@ public class AttendanceDetailServiceAdv {
}else {
emc.beginTransaction( AttendanceDetail.class );
detail.copyTo( detail_old, JpaObject.FieldsUnmodify);
detail_old.setRecordStatus(1);
emc.check( detail_old , CheckPersistType.all );
emc.commit();
}
/*可能引起多人同时打卡时commit error
emc.beginTransaction( AttendanceDetailMobile.class );
for( AttendanceDetailMobile detailMobile : mobileDetails ) {
detailMobile.setRecordStatus(1);
emc.check( detailMobile , CheckPersistType.all );
}
emc.commit();
emc.commit();*/
//分析保存好的考勤数据
try {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册