This commit is contained in:
2023-11-16 22:35:22 +08:00
parent c3866047c0
commit aff150852a
12 changed files with 2394 additions and 26 deletions

1160
resources.sql Normal file

File diff suppressed because it is too large Load Diff

20
script/genSQL.groovy Normal file
View File

@@ -0,0 +1,20 @@
def execute = """C:\\Program Files\\PostgreSQL\\15\\bin\\pg_dump.exe -d coal_master -h 127.0.0.1 -p 5432 -U postgres -a --inserts -t t_permission -t t_resource -t t_permission_resources --column-inserts """
.execute(["PGPASSWORD=abc@123"], new File("../"))
def insertSQL = execute.text.split("\n").findAll { it.startsWith("INSERT") }.collect {it.replace("INSERT INTO public.", "INSERT INTO ")}
insertSQL.add(0, """
truncate table t_permission;
truncate table t_permission_resources;
truncate table t_resource;
""")
def lastVersion = new File("../src/main/resources/db/migration/").listFiles().findAll { it.name.matches("V\\d+__.+") }.collect { it.name.split("_")[0].substring(1).toInteger() }.sort().last()
(new File("../src/main/resources/db/migration/V${lastVersion+1}__resourceAll.sql")).text = insertSQL.join("\n")

View File

@@ -21,7 +21,9 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -31,6 +33,7 @@ import java.util.Arrays;
@Aspect
@Component
@Slf4j
@Order(value = 100)
public class ControllerAop {
@Autowired SessionService sessionService;
@@ -49,6 +52,7 @@ public class ControllerAop {
@SneakyThrows
@Around("controllerMethods()")
@Transactional
public Object call(ProceedingJoinPoint proceedingJoinPoint) {
Method method = ((MethodSignature) proceedingJoinPoint.getSignature()).getMethod();

View File

@@ -26,7 +26,7 @@ import java.lang.reflect.Method;
@Aspect
@Component
@Slf4j
@Order
@Order(value = 200)
public class OrgScopeAop {
private static final ThreadLocal<Boolean> orgScope = new ThreadLocal<>();

View File

@@ -35,11 +35,7 @@ import org.springframework.core.annotation.Order;
import org.springframework.http.server.PathContainer;
import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.UnexpectedRollbackException;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.pattern.PathPatternParser;
@@ -74,18 +70,13 @@ public class AuthFilter extends OncePerRequestFilter {
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
TransactionTemplate transactionTemplate =
new TransactionTemplate(
transactionManager,
new DefaultTransactionDefinition(
TransactionDefinition.PROPAGATION_REQUIRED));
try {
transactionTemplate.executeWithoutResult(
getTransactionStatusConsumer(request, response, filterChain));
} catch (UnexpectedRollbackException e) {
getTransactionStatusConsumer(request, response, filterChain).accept(null);
} catch (Exception e) {
logger.warn(e);
logger.info("系统异常", e);
writeResponse(new BizException("系统异常"), response);
}
}

View File

@@ -11,4 +11,5 @@ import java.time.LocalDate;
@Repository
public interface MeterDayLogRepository extends BaseRepository<MeterDayLogEntity> {
void deleteByMeterAndTimeGreaterThanEqual(MeterEntity meter, LocalDate localDate);
void deleteByMeter(MeterEntity meter);
}

View File

@@ -85,7 +85,7 @@ public class MeterDayLogService extends BaseService<MeterDayLogEntity, MeterDayL
MeterEntity meter = new MeterEntity();
meter.setId(meterId);
repository.deleteByMeterAndTimeGreaterThanEqual(meter, time.toLocalDate());
repository.deleteByMeter(meter);
Query nativeQuery =
entityManager.createNativeQuery(
@@ -95,11 +95,10 @@ public class MeterDayLogService extends BaseService<MeterDayLogEntity, MeterDayL
meter_id,
sum(usage) as value
from t_meter_log
where meter_id = :meterId and time >= :time group by cast(DATE_TRUNC('day', time) as date), meter_id
where meter_id = :meterId group by cast(DATE_TRUNC('day', time) as date), meter_id
""");
nativeQuery.setParameter("meterId", meterId);
nativeQuery.setParameter("time", time);
nativeQuery
.getResultList()
@@ -126,7 +125,7 @@ public class MeterDayLogService extends BaseService<MeterDayLogEntity, MeterDayL
from (
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_day_log where meter_id = :meterId and time >=:time
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_day_log where meter_id = :meterId
) tb
where tb.id = ta.id
@@ -135,7 +134,6 @@ public class MeterDayLogService extends BaseService<MeterDayLogEntity, MeterDayL
""");
nativeQuery2.setParameter("meterId", meterId);
nativeQuery2.setParameter("time", time.toLocalDate());
nativeQuery2.executeUpdate();

View File

@@ -111,7 +111,7 @@ public class MeterLogService extends BaseService<MeterLogEntity, MeterLogReposit
from (
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_log where meter_id = :meterId and time >= :time
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_log where meter_id = :meterId
) tb
where tb.id = ta.id
@@ -120,7 +120,7 @@ public class MeterLogService extends BaseService<MeterLogEntity, MeterLogReposit
""");
nativeQuery.setParameter("meterId", meterId);
nativeQuery.setParameter("time", time);
// nativeQuery.setParameter("time", time);
StopWatch stopWatch = new StopWatch();
stopWatch.start("syncMeterLog");

View File

@@ -9,4 +9,5 @@ import org.springframework.stereotype.Repository;
@Repository
public interface MeterMonthLogRepository extends BaseRepository<MeterMonthLogEntity> {
long deleteByMeterAndTimeGreaterThanEqual(MeterEntity meter, java.time.LocalDate time);
long deleteByMeter(MeterEntity meter);
}

View File

@@ -81,7 +81,7 @@ public class MeterMonthLogService
MeterEntity meter = new MeterEntity();
meter.setId(meterId);
repository.deleteByMeterAndTimeGreaterThanEqual(meter, time.toLocalDate());
repository.deleteByMeter(meter);
Query nativeQuery =
entityManager.createNativeQuery(
@@ -91,11 +91,10 @@ public class MeterMonthLogService
meter_id,
sum(usage) as value
from t_meter_log
where meter_id = :meterId and time >= :time group by cast(DATE_TRUNC('month', time) as date), meter_id
where meter_id = :meterId group by cast(DATE_TRUNC('month', time) as date), meter_id
""");
nativeQuery.setParameter("meterId", meterId);
nativeQuery.setParameter("time", time);
nativeQuery
.getResultList()
@@ -122,7 +121,7 @@ public class MeterMonthLogService
from (
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_month_log where meter_id = :meterId and time >=:time
select id, time, value, COALESCE(lag(value) over (order by time), value ) as previous_value from t_meter_month_log where meter_id = :meterId
) tb
where tb.id = ta.id
@@ -131,7 +130,6 @@ public class MeterMonthLogService
""");
nativeQuery2.setParameter("meterId", meterId);
nativeQuery2.setParameter("time", time.toLocalDate());
nativeQuery2.executeUpdate();
}

View File

@@ -33,6 +33,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -41,6 +42,7 @@ import java.util.stream.Collectors;
@Service
@Slf4j
@Transactional()
public class PermissionService extends BaseService<PermissionEntity, PermissionRepository> {
@Autowired PermissionRepository repository;

File diff suppressed because it is too large Load Diff